src/FOL/ex/Miniscope.thy
changeset 68536 e14848001c4c
parent 61489 b8d375aee0df
child 69590 e65314985426
equal deleted inserted replaced
68523:ccacc84e0251 68536:e14848001c4c
    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)"