src/HOL/Analysis/Henstock_Kurzweil_Integration.thy
changeset 80175 200107cdd3ac
parent 80052 35b2143aeec6
--- a/src/HOL/Analysis/Henstock_Kurzweil_Integration.thy	Sun May 05 15:31:08 2024 +0100
+++ b/src/HOL/Analysis/Henstock_Kurzweil_Integration.thy	Mon May 06 14:39:33 2024 +0100
@@ -2915,18 +2915,13 @@
   have g0: "Dg 0 = g"
     using \<open>p > 0\<close>
     by (auto simp add: Dg_def field_split_simps g_def split: if_split_asm)
-  {
-    fix m
-    assume "p > Suc m"
-    hence "p - Suc m = Suc (p - Suc (Suc m))"
-      by auto
-    hence "real (p - Suc m) * fact (p - Suc (Suc m)) = fact (p - Suc m)"
-      by auto
-  } note fact_eq = this
+  have fact_eq: "real (p - Suc m) * fact (p - Suc (Suc m)) = fact (p - Suc m)" 
+    if "p > Suc m" for m
+    by (metis Suc_diff_Suc fact_Suc that)
   have Dg: "\<And>m t. m < p \<Longrightarrow> a \<le> t \<Longrightarrow> t \<le> b \<Longrightarrow>
     (Dg m has_vector_derivative Dg (Suc m) t) (at t within {a..b})"
-    unfolding Dg_def
-    by (auto intro!: derivative_eq_intros simp: has_vector_derivative_def fact_eq field_split_simps)
+    unfolding Dg_def  has_vector_derivative_def
+    by (auto intro!: derivative_eq_intros simp: fact_eq divide_simps simp del: of_nat_diff)
   let ?sum = "\<lambda>t. \<Sum>i<p. (- 1) ^ i *\<^sub>R Dg i t *\<^sub>R Df (p - Suc i) t"
   from sum_prod_derivatives_has_vector_derivative[of _ Dg _ _ _ Df,
       OF \<open>p > 0\<close> g0 Dg f0 Df]