equal
deleted
inserted
replaced
132 with Node.hyps |
132 with Node.hyps |
133 have "set_of r' \<subseteq> set_of r" |
133 have "set_of r' \<subseteq> set_of r" |
134 by simp |
134 by simp |
135 with l'_l Some x_l_Some del |
135 with l'_l Some x_l_Some del |
136 show ?thesis |
136 show ?thesis |
137 by (auto split: split_if_asm) |
137 by (auto split: if_split_asm) |
138 next |
138 next |
139 case None |
139 case None |
140 with l'_l Some x_l_Some del |
140 with l'_l Some x_l_Some del |
141 show ?thesis |
141 show ?thesis |
142 by (fastforce split: split_if_asm) |
142 by (fastforce split: if_split_asm) |
143 qed |
143 qed |
144 next |
144 next |
145 case None |
145 case None |
146 note x_l_None = this |
146 note x_l_None = this |
147 show ?thesis |
147 show ?thesis |
150 with Node.hyps |
150 with Node.hyps |
151 have "set_of r' \<subseteq> set_of r" |
151 have "set_of r' \<subseteq> set_of r" |
152 by simp |
152 by simp |
153 with Some x_l_None del |
153 with Some x_l_None del |
154 show ?thesis |
154 show ?thesis |
155 by (fastforce split: split_if_asm) |
155 by (fastforce split: if_split_asm) |
156 next |
156 next |
157 case None |
157 case None |
158 with x_l_None del |
158 with x_l_None del |
159 show ?thesis |
159 show ?thesis |
160 by (fastforce split: split_if_asm) |
160 by (fastforce split: if_split_asm) |
161 qed |
161 qed |
162 qed |
162 qed |
163 qed |
163 qed |
164 |
164 |
165 lemma delete_Some_all_distinct: |
165 lemma delete_Some_all_distinct: |
219 by fastforce |
219 by fastforce |
220 next |
220 next |
221 case None |
221 case None |
222 with x_l_None del dist_l dist_r d dist_l_r |
222 with x_l_None del dist_l dist_r d dist_l_r |
223 show ?thesis |
223 show ?thesis |
224 by (fastforce split: split_if_asm) |
224 by (fastforce split: if_split_asm) |
225 qed |
225 qed |
226 qed |
226 qed |
227 qed |
227 qed |
228 |
228 |
229 lemma delete_None_set_of_conv: "delete x t = None = (x \<notin> set_of t)" |
229 lemma delete_None_set_of_conv: "delete x t = None = (x \<notin> set_of t)" |
255 from Node.hyps (2) [OF Some] |
255 from Node.hyps (2) [OF Some] |
256 obtain x_r: "x \<in> set_of r" "x \<notin> set_of r'" |
256 obtain x_r: "x \<in> set_of r" "x \<notin> set_of r'" |
257 by simp |
257 by simp |
258 from x_r x_l Some x_l_Some del |
258 from x_r x_l Some x_l_Some del |
259 show ?thesis |
259 show ?thesis |
260 by (clarsimp split: split_if_asm) |
260 by (clarsimp split: if_split_asm) |
261 next |
261 next |
262 case None |
262 case None |
263 then have "x \<notin> set_of r" |
263 then have "x \<notin> set_of r" |
264 by (simp add: delete_None_set_of_conv) |
264 by (simp add: delete_None_set_of_conv) |
265 with x_l None x_l_Some del |
265 with x_l None x_l_Some del |
266 show ?thesis |
266 show ?thesis |
267 by (clarsimp split: split_if_asm) |
267 by (clarsimp split: if_split_asm) |
268 qed |
268 qed |
269 next |
269 next |
270 case None |
270 case None |
271 note x_l_None = this |
271 note x_l_None = this |
272 then have x_notin_l: "x \<notin> set_of l" |
272 then have x_notin_l: "x \<notin> set_of l" |
277 from Node.hyps (2) [OF Some] |
277 from Node.hyps (2) [OF Some] |
278 obtain x_r: "x \<in> set_of r" "x \<notin> set_of r'" |
278 obtain x_r: "x \<in> set_of r" "x \<notin> set_of r'" |
279 by simp |
279 by simp |
280 from x_r x_notin_l Some x_l_None del |
280 from x_r x_notin_l Some x_l_None del |
281 show ?thesis |
281 show ?thesis |
282 by (clarsimp split: split_if_asm) |
282 by (clarsimp split: if_split_asm) |
283 next |
283 next |
284 case None |
284 case None |
285 then have "x \<notin> set_of r" |
285 then have "x \<notin> set_of r" |
286 by (simp add: delete_None_set_of_conv) |
286 by (simp add: delete_None_set_of_conv) |
287 with None x_l_None x_notin_l del |
287 with None x_l_None x_notin_l del |
288 show ?thesis |
288 show ?thesis |
289 by (clarsimp split: split_if_asm) |
289 by (clarsimp split: if_split_asm) |
290 qed |
290 qed |
291 qed |
291 qed |
292 qed |
292 qed |
293 |
293 |
294 |
294 |