src/HOL/Statespace/DistinctTreeProver.thy
changeset 62390 842917225d56
parent 58889 5b7a9633cfa8
child 63167 0909deb8059b
equal deleted inserted replaced
62380:29800666e526 62390:842917225d56
   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