equal
deleted
inserted
replaced
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 |