src/HOL/Decision_Procs/Ferrack.thy
changeset 82292 5d91cca0aaf3
parent 74397 e80c4cde6064
--- a/src/HOL/Decision_Procs/Ferrack.thy	Sun Mar 16 12:03:47 2025 +0000
+++ b/src/HOL/Decision_Procs/Ferrack.thy	Sun Mar 16 17:02:27 2025 +0000
@@ -1021,10 +1021,8 @@
 qed (auto simp add: disj_def imp_def iff_def conj_def)
 
 lemma simpfm_qf: "qfree p \<Longrightarrow> qfree (simpfm p)"
-  apply (induct p rule: simpfm.induct)
-  apply (auto simp add: Let_def)
-  apply (case_tac "simpnum a", auto)+
-  done
+  by (induct p rule: simpfm.induct) (auto simp: Let_def split: num.splits)
+
 
 fun prep :: "fm \<Rightarrow> fm"
 where
@@ -1256,17 +1254,11 @@
 proof (induct p rule: minusinf.induct)
   case (1 p q)
   then show ?case
-    apply auto
-    apply (rule_tac x= "min z za" in exI)
-    apply auto
-    done
+    by (fastforce simp: intro: exI [where x= "min _ _"])
 next
   case (2 p q)
   then show ?case
-    apply auto
-    apply (rule_tac x= "min z za" in exI)
-    apply auto
-    done
+    by (fastforce simp: intro: exI [where x= "min _ _"])
 next
   case (3 c e)
   from 3 have nb: "numbound0 e" by simp
@@ -1386,17 +1378,11 @@
 proof (induct p rule: isrlfm.induct)
   case (1 p q)
   then show ?case
-    apply auto
-    apply (rule_tac x= "max z za" in exI)
-    apply auto
-    done
+    by (fastforce simp: intro: exI [where x= "max _ _"])
 next
   case (2 p q)
   then show ?case
-    apply auto
-    apply (rule_tac x= "max z za" in exI)
-    apply auto
-    done
+    by (fastforce simp: intro: exI [where x= "max _ _"])
 next
   case (3 c e)
   from 3 have nb: "numbound0 e" by simp
@@ -2195,12 +2181,7 @@
       \<in> (\<lambda>((t, n), s, m). (Inum (x # bs) t / real_of_int n + Inum (x # bs) s / real_of_int m) / 2) `
          (set U \<times> set U)"
     using mnz nnz th
-    apply (auto simp add: th add_divide_distrib algebra_simps split_def image_def)
-    apply (rule_tac x="(s,m)" in bexI)
-    apply simp_all
-    apply (rule_tac x="(t,n)" in bexI)
-    apply (simp_all add: mult.commute)
-    done
+    by (force simp add: th add_divide_distrib algebra_simps split_def image_def)
 next
   fix t n s m
   assume tnU: "(t, n) \<in> set U" and smU: "(s, m) \<in> set U"
@@ -2271,10 +2252,7 @@
     from tnU smU UU' have "?g ((t, n), (s, m)) \<in> ?f ` U'"
       by blast
     then have "\<exists>(t',n') \<in> U'. ?g ((t, n), (s, m)) = ?f (t', n')"
-      apply auto
-      apply (rule_tac x="(a, b)" in bexI)
-      apply auto
-      done
+      by fastforce
     then obtain t' n' where tnU': "(t',n') \<in> U'" and th: "?g ((t, n), (s, m)) = ?f (t', n')"
       by blast
     from U' tnU' have tnb': "numbound0 t'" and np': "real_of_int n' > 0"
@@ -2296,10 +2274,7 @@
     from tnU' UU' have "?f (t', n') \<in> ?g ` (U \<times> U)"
       by blast
     then have "\<exists>((t,n),(s,m)) \<in> U \<times> U. ?f (t', n') = ?g ((t, n), (s, m))"
-      apply auto
-      apply (rule_tac x="(a,b)" in bexI)
-      apply auto
-      done
+      by force
     then obtain t n s m where tnU: "(t, n) \<in> U" and smU: "(s, m) \<in> U" and
       th: "?f (t', n') = ?g ((t, n), (s, m))"
       by blast
@@ -2361,10 +2336,7 @@
       from that have "(t,n) \<in> set ?SS"
         by simp
       then have "\<exists>(t',n') \<in> set ?S. simp_num_pair (t', n') = (t, n)"
-        apply (auto simp add: split_def simp del: map_map)
-        apply (rule_tac x="((aa,ba),(ab,bb))" in bexI)
-        apply simp_all
-        done
+        by (force simp add: split_def simp del: map_map)
       then obtain t' n' where tn'S: "(t', n') \<in> set ?S" and tns: "simp_num_pair (t', n') = (t, n)"
         by blast
       from tn'S Snb have tnb: "numbound0 t'" and np: "n' > 0"