src/FOL/IFOL.thy
changeset 71919 2e7df6774373
parent 71839 0bbe0866b7e6
child 71959 ee2c7f0dd1be
equal deleted inserted replaced
71918:4e0a58818edc 71919:2e7df6774373
   825   \<open>P \<and> (Q \<or> R) \<longleftrightarrow> P \<and> Q \<or> P \<and> R\<close>
   825   \<open>P \<and> (Q \<or> R) \<longleftrightarrow> P \<and> Q \<or> P \<and> R\<close>
   826   \<open>(Q \<or> R) \<and> P \<longleftrightarrow> Q \<and> P \<or> R \<and> P\<close>
   826   \<open>(Q \<or> R) \<and> P \<longleftrightarrow> Q \<and> P \<or> R \<and> P\<close>
   827   \<open>(P \<or> Q \<longrightarrow> R) \<longleftrightarrow> (P \<longrightarrow> R) \<and> (Q \<longrightarrow> R)\<close>
   827   \<open>(P \<or> Q \<longrightarrow> R) \<longleftrightarrow> (P \<longrightarrow> R) \<and> (Q \<longrightarrow> R)\<close>
   828   by iprover+
   828   by iprover+
   829 
   829 
       
   830 lemma subst_all:
       
   831   \<open>(\<And>x. x = a \<Longrightarrow> PROP P(x)) \<equiv> PROP P(a)\<close>
       
   832 proof (rule equal_intr_rule)
       
   833   assume *: \<open>\<And>x. x = a \<Longrightarrow> PROP P(x)\<close>
       
   834   show \<open>PROP P(a)\<close>
       
   835     by (rule *) (rule refl)
       
   836 next
       
   837   fix x
       
   838   assume \<open>PROP P(a)\<close> and \<open>x = a\<close>
       
   839   from \<open>x = a\<close> have \<open>x \<equiv> a\<close>
       
   840     by (rule eq_reflection)
       
   841   with \<open>PROP P(a)\<close> show \<open>PROP P(x)\<close>
       
   842     by simp
       
   843 qed
       
   844 
       
   845 lemma subst_all':
       
   846   \<open>(\<And>x. a = x \<Longrightarrow> PROP P(x)) \<equiv> PROP P(a)\<close>
       
   847 proof (rule equal_intr_rule)
       
   848   assume *: \<open>\<And>x. a = x \<Longrightarrow> PROP P(x)\<close>
       
   849   show \<open>PROP P(a)\<close>
       
   850     by (rule *) (rule refl)
       
   851 next
       
   852   fix x
       
   853   assume \<open>PROP P(a)\<close> and \<open>a = x\<close>
       
   854   from \<open>a = x\<close> have \<open>a \<equiv> x\<close>
       
   855     by (rule eq_reflection)
       
   856   with \<open>PROP P(a)\<close> show \<open>PROP P(x)\<close>
       
   857     by simp
       
   858 qed
       
   859 
   830 
   860 
   831 subsubsection \<open>Conversion into rewrite rules\<close>
   861 subsubsection \<open>Conversion into rewrite rules\<close>
   832 
   862 
   833 lemma P_iff_F: \<open>\<not> P \<Longrightarrow> (P \<longleftrightarrow> False)\<close>
   863 lemma P_iff_F: \<open>\<not> P \<Longrightarrow> (P \<longleftrightarrow> False)\<close>
   834   by iprover
   864   by iprover