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 |