src/HOL/Induct/Comb.thy
changeset 69597 ff784d5a5bfb
parent 67443 3abf6a722518
child 71591 8e4d542f041b
equal deleted inserted replaced
69596:c8a2755bf220 69597:ff784d5a5bfb
   125 lemma Ap_reduce2 [intro]: "x \<rightarrow> y \<Longrightarrow> z\<bullet>x \<rightarrow> z\<bullet>y"
   125 lemma Ap_reduce2 [intro]: "x \<rightarrow> y \<Longrightarrow> z\<bullet>x \<rightarrow> z\<bullet>y"
   126 apply (erule rtrancl_induct)
   126 apply (erule rtrancl_induct)
   127 apply (blast intro: rtrancl_trans)+
   127 apply (blast intro: rtrancl_trans)+
   128 done
   128 done
   129 
   129 
   130 text \<open>Counterexample to the diamond property for @{term "x \<rightarrow>\<^sup>1 y"}\<close>
   130 text \<open>Counterexample to the diamond property for \<^term>\<open>x \<rightarrow>\<^sup>1 y\<close>\<close>
   131 
   131 
   132 lemma not_diamond_contract: "~ diamond(contract)"
   132 lemma not_diamond_contract: "~ diamond(contract)"
   133 by (unfold diamond_def, metis S_contractE contract.K) 
   133 by (unfold diamond_def, metis S_contractE contract.K) 
   134 
   134 
   135 
   135 
   167 apply (erule parcontract.induct, fast+)
   167 apply (erule parcontract.induct, fast+)
   168 done
   168 done
   169 
   169 
   170 text \<open>
   170 text \<open>
   171   \<^medskip>
   171   \<^medskip>
   172   Equivalence of @{prop "p \<rightarrow> q"} and @{prop "p \<Rrightarrow> q"}.
   172   Equivalence of \<^prop>\<open>p \<rightarrow> q\<close> and \<^prop>\<open>p \<Rrightarrow> q\<close>.
   173 \<close>
   173 \<close>
   174 
   174 
   175 lemma contract_subset_parcontract: "contract \<subseteq> parcontract"
   175 lemma contract_subset_parcontract: "contract \<subseteq> parcontract"
   176 by (auto, erule contract.induct, blast+)
   176 by (auto, erule contract.induct, blast+)
   177 
   177