This instance will be upgraded to Heptapod 0.31.0 (final) on 2022-05-24 at 14:00 UTC+2 (a few minutes of down time)

Commit 97fc7f95 by immler

### renaming and moving theories about polynomials

parent 370db8240e5a
 ... ... @@ -3,7 +3,7 @@ section \Polynomials representing the Deep Network Model\ theory DL_Deep_Model_Poly imports DL_Deep_Model PP_More_MPoly Jordan_Normal_Form.Determinant imports DL_Deep_Model Polynomials.More_MPoly_Type Jordan_Normal_Form.Determinant begin definition "polyfun N f = (\p. vars p \ N \ (\x. insertion x p = f x))" ... ... @@ -68,7 +68,7 @@ lemma polyfun_single: assumes "i\N" shows "polyfun N (\x. x i)" proof - have "\f. insertion f (monom (PP_Poly_Mapping.single i 1) 1) = f i" using insertion_single by simp have "\f. insertion f (monom (Poly_Mapping.single i 1) 1) = f i" using insertion_single by simp then show ?thesis unfolding polyfun_def using vars_monom_single[of i 1 1] One_nat_def assms singletonD subset_eq by blast ... ...
 ... ... @@ -3,7 +3,10 @@ section \Lebesgue Measure of Polynomial Zero Sets\ theory Lebesgue_Zero_Set imports PP_MPoly PP_More_MPoly Lebesgue_Functional PP_Univariate imports Polynomials.More_MPoly_Type Lebesgue_Functional Polynomials.MPoly_Type_Univariate begin lemma measurable_insertion [measurable]: ... ... @@ -14,11 +17,11 @@ using assms proof (induction p rule:mpoly_induct) then show ?case proof (cases "a = 0") case True show ?thesis unfolding insertion_single `a = 0` PP_MPoly.monom.abs_eq single_zero show ?thesis unfolding insertion_single `a = 0` MPoly_Type.monom.abs_eq single_zero zero_mpoly.abs_eq[symmetric] insertion_zero by measurable next case False have "PP_Poly_Mapping.keys m \ {.. {..0` proof (induction m arbitrary:a rule:poly_mapping_induct) case (single x i a) ... ... @@ -33,10 +36,10 @@ using assms proof (induction p rule:mpoly_induct) qed next case (sum m1 m2 x i) then have "PP_Poly_Mapping.keys m1 \ PP_Poly_Mapping.keys m2 = {}" by simp then have "PP_Poly_Mapping.keys m1 \ PP_Poly_Mapping.keys m2 = PP_Poly_Mapping.keys (m1 + m2)" using keys_add by metis then have 1:"PP_Poly_Mapping.keys m1 \ {.. {.. Poly_Mapping.keys m2 = {}" by simp then have "Poly_Mapping.keys m1 \ Poly_Mapping.keys m2 = Poly_Mapping.keys (m1 + m2)" using keys_add by metis then have 1:"Poly_Mapping.keys m1 \ {.. {..0`] sum.IH(2)[OF 2, of 1, simplified] by measurable qed qed ... ... @@ -57,19 +60,19 @@ assumes "p \ 0" "vars p \ {..space (lborel_f n). insertion f p = 0} \ null_sets (lborel_f n)" using assms proof (induction n arbitrary:p) case 0 then have "vars p = {}" by simp then have "\f. insertion f p = PP_MPoly.coeff p 0" then have "vars p = {}" by simp then have "\f. insertion f p = MPoly_Type.coeff p 0" unfolding insertion_trivial[symmetric] using insertion_irrelevant_vars by blast have "\m. m\0 \ PP_MPoly.coeff p m = 0" have "\m. m\0 \ MPoly_Type.coeff p m = 0" proof (rule ccontr) fix m::"nat \\<^sub>0 nat" assume "m\0" "PP_MPoly.coeff p m \ 0" then obtain v where "PP_Poly_Mapping.lookup m v \ 0" using aux by auto then have "v\vars p" unfolding PP_More_MPoly.vars_def using `PP_MPoly.coeff p m \ 0` fix m::"nat \\<^sub>0 nat" assume "m\0" "MPoly_Type.coeff p m \ 0" then obtain v where "Poly_Mapping.lookup m v \ 0" using aux by auto then have "v\vars p" unfolding More_MPoly_Type.vars_def using `MPoly_Type.coeff p m \ 0` by (meson UN_I coeff_keys lookup_not_eq_zero_eq_in_keys) then show False using `vars p = {}` by auto qed then have "PP_MPoly.coeff p 0 \ 0" using `p \ 0` then have "MPoly_Type.coeff p 0 \ 0" using `p \ 0` by (metis coeff_all_0) then have "{f. insertion f p = 0} = {}" using `\f. insertion f p = PP_MPoly.coeff p 0` by auto then have "{f. insertion f p = 0} = {}" using `\f. insertion f p = MPoly_Type.coeff p 0` by auto then show ?case by auto next case (Suc n p) ... ... @@ -77,7 +80,7 @@ next text \Show that N is finite:\ then have "extract_var p n \ 0" using reduce_nested_mpoly_0 by (metis reduce_nested_mpoly_extract_var) let ?q = "\j. PP_MPoly.coeff (extract_var p n) j" let ?q = "\j. MPoly_Type.coeff (extract_var p n) j" obtain j where "?q j \ 0" using `extract_var p n \ 0` by (metis coeff_all_0) then have "finite {x. insertion (\_. x) (?q j) = 0}" ... ... @@ -92,13 +95,13 @@ text \Show that N is finite:\ proof fix x assume "x\N" then have "p_fix1 x = 0" using N_def by auto then have "\m. PP_MPoly.coeff (p_fix1 x) m = 0" by (metis PP_More_MPoly.coeff_monom monom_zero when_def) then have "\m. MPoly_Type.coeff (p_fix1 x) m = 0" by (metis More_MPoly_Type.coeff_monom monom_zero when_def) have "\j. insertion (\_. x) (?q j) = 0" using `\m. PP_MPoly.coeff (p_fix1 x) m = 0`[unfolded p_fix1_def coeff_replace_coeff[of "insertion (\_. x)", OF insertion_zero]] using `\m. MPoly_Type.coeff (p_fix1 x) m = 0`[unfolded p_fix1_def coeff_replace_coeff[of "insertion (\_. x)", OF insertion_zero]] by metis then show "x \ {x. \j. insertion (\_. x) (PP_MPoly.coeff (extract_var p n) j) = 0}" by blast then show "x \ {x. \j. insertion (\_. x) (MPoly_Type.coeff (extract_var p n) j) = 0}" by blast qed then have "finite N" by (simp add: \finite {x. \j. insertion (\_. x) (PP_MPoly.coeff (extract_var p n) j) = 0}\ finite_subset) then have "finite N" by (simp add: \finite {x. \j. insertion (\_. x) (MPoly_Type.coeff (extract_var p n) j) = 0}\ finite_subset) text \Use the IH:\ ... ...
 ... ... @@ -41,6 +41,8 @@ session "Deep_Learning_Lib" (AFP) = "HOL-Probability" + session "Deep_Learning" (AFP) = "Deep_Learning_Lib" + options [timeout = 600] sessions Polynomials theories DL_Fundamental_Theorem_Network_Capacity document_files ... ...
 ... ... @@ -3,12 +3,14 @@ section \Computing Gr\"obner Bases\ theory Computations imports Groebner_Bases Polynomials.Poly_Lists "HOL-Library.AList" imports Groebner_Bases Polynomials.MPoly_Type_Class_FMap begin text \We now compute concrete Gr\"obner bases w.r.t. both the purely lexicographic and the degree-lexicographic term order, making use of the implementation of multivariate polynomials in @{theory "Poly_Lists"}.\ @{theory "MPoly_Type_Class_FMap"}.\ subsection \Lexicographic Order\ ... ... @@ -310,6 +312,6 @@ lemma ]" by eval hide_const (open) Poly_Lists.X Poly_Lists.Y Poly_Lists.Z hide_const (open) MPoly_Type_Class_FMap.X MPoly_Type_Class_FMap.Y MPoly_Type_Class_FMap.Z end (* theory *)
 ... ... @@ -3,7 +3,7 @@ section \Gr\"obner Bases\ theory Groebner_Bases imports Polynomials.Abstract_Poly Confluence imports Polynomials.MPoly_Type_Class Confluence begin text \This theory provides the main results about Gr\"obner bases of multivariate polynomials. ... ... @@ -304,7 +304,7 @@ proof - hence c: "lookup (tail p) (t + lp f) = lookup p (t + lp f)" using lookup_tail[of p] by simp show ?thesis proof (intro red_setI[OF \f \ F\]) show "red_single p (q + PP_Poly_Mapping.single (lp p) (lc p)) f t" unfolding red_single_def show "red_single p (q + Poly_Mapping.single (lp p) (lc p)) f t" unfolding red_single_def proof (intro conjI, fact) from ct c show "lookup p (t + lp f) \ 0" by simp next ... ...
 ... ... @@ -4,8 +4,7 @@ session Groebner_Bases (AFP) = Polynomials + options [timeout = 600] theories [document = false] "Abstract-Rewriting.Abstract_Rewriting" Polynomials.Abstract_Poly Polynomials.Poly_Lists Polynomials.MPoly_Type_Class_FMap theories Computations document_files ... ...