equal
deleted
inserted
replaced
15 |
15 |
16 subsection \<open>Negation Normal Form\<close> |
16 subsection \<open>Negation Normal Form\<close> |
17 |
17 |
18 subsubsection \<open>de Morgan laws\<close> |
18 subsubsection \<open>de Morgan laws\<close> |
19 |
19 |
20 lemma demorgans: |
20 lemma demorgans1: |
21 "\<not> (P \<and> Q) \<longleftrightarrow> \<not> P \<or> \<not> Q" |
21 "\<not> (P \<and> Q) \<longleftrightarrow> \<not> P \<or> \<not> Q" |
22 "\<not> (P \<or> Q) \<longleftrightarrow> \<not> P \<and> \<not> Q" |
22 "\<not> (P \<or> Q) \<longleftrightarrow> \<not> P \<and> \<not> Q" |
23 "\<not> \<not> P \<longleftrightarrow> P" |
23 "\<not> \<not> P \<longleftrightarrow> P" |
|
24 by blast+ |
|
25 |
|
26 lemma demorgans2: |
24 "\<And>P. \<not> (\<forall>x. P(x)) \<longleftrightarrow> (\<exists>x. \<not> P(x))" |
27 "\<And>P. \<not> (\<forall>x. P(x)) \<longleftrightarrow> (\<exists>x. \<not> P(x))" |
25 "\<And>P. \<not> (\<exists>x. P(x)) \<longleftrightarrow> (\<forall>x. \<not> P(x))" |
28 "\<And>P. \<not> (\<exists>x. P(x)) \<longleftrightarrow> (\<forall>x. \<not> P(x))" |
26 by blast+ |
29 by blast+ |
|
30 |
|
31 lemmas demorgans = demorgans1 demorgans2 |
27 |
32 |
28 (*** Removal of --> and <-> (positive and negative occurrences) ***) |
33 (*** Removal of --> and <-> (positive and negative occurrences) ***) |
29 (*Last one is important for computing a compact CNF*) |
34 (*Last one is important for computing a compact CNF*) |
30 lemma nnf_simps: |
35 lemma nnf_simps: |
31 "(P \<longrightarrow> Q) \<longleftrightarrow> (\<not> P \<or> Q)" |
36 "(P \<longrightarrow> Q) \<longleftrightarrow> (\<not> P \<or> Q)" |