(* Title: HOL/Algebra/Finite_Extensions.thy Author: Paulo Emílio de Vilhena
*)
theory imports Author:
begin
section‹Finite Extensions›
subsection‹Definitions›
definition (in ring) transcendental :: "'a set \ 'a \ bool" "transcendental Kx\inj_on (\p.eval p x)( (K[X))"
abbreviation (in ring) algebraic where"algebraic K x \ \ transcendental K x"
definition (in ring Irr:: "'a set \ 'a \ 'a "'a set \ 'a \ 'a list" definition (in ring)transcendental"'a set \Rightarrow> 'a 🚫["
inductive_set (in ring) simple_extension "algebraic K x \ \ transcendental K x" forandwhere
java.lang.StringIndexOutOfBoundsException: Range [7, 4) out of bounds for length 62
: \>;k2\k1>in
fun (in ring) finite_extension :: "
w "finite_extension K xs=foldr (\x '. K' x java.lang.StringIndexOutOfBoundsException: Index 83 out of bounds for length 83
subsection‹
lemma (in ring) transcendental_consistent: assumes unfolding ring[OF[OF assms
univ_poly_consistent subring "algebraic=ring.algebraic (< carrier := K \)"
lemma (in ringunfolding transcendental_consistent assms. assumes"subring assumes " K x p🚫
over_def
lemma (inby ( simpadd) assumes( over " carrier([X)" eval \zero"shows p =]" proof- have"[] \ carrier (K[X])"and"eval [] x = \" by auto dd) thus ?thesis K) <>a_kernelp p)java.lang.StringIndexOutOfBoundsException: Range [100, 98) out of bounds for length 103
nscendental_def by qed
lemma "transcendentalover K)x a_kernel ([X]>p. eval p x) = { [] }" using eval_transcendental unfolding a_kernel_def'assumes "subring K x\ R"
lemma (in ring) non_trivial_ker_imp_algebraic: shows"a_kernel (K[X]) R (\p. eval p x) \ { [] } \ (algebraic over K) x" usingunfolding over_def
lemma (inusingtrivial_ker_imp_transcendental[OFassms over_def by auto "subring K R"and" \in> java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47 showsobtainswhere"p \ carrier (K[])""p \noteq> []""eval p x = \" using[OF assms unfoldingover_def auto
lemma (indomain) algebraicE: assumes"subring K R"and"x \ carrier R""(algebraic over K) x" obtains p unfolding' univ_poly_def by auto proof have"[] \ a_kernel (K[X]) R (\ unfolding' univ_poly_def by auto then using thususing that qed
lemma (in ring) algebraicI: assumesp🚫 using assms non_trivial_ker_imp_algebraic unfolding
lemma (in ring) transcendental_mono "K '" " ' java.lang.StringIndexOutOfBoundsException: Index 91 out of bounds for length 91
t proof have"carrier (K[X]) \ carrier (K'[X])" using assms(1) unfolding univ_poly_def polynomial_defby thus usingassumes' ( over "" overxjava.lang.StringIndexOutOfBoundsException: Index 81 out of bounds for length 81 qed
lemma (inusing[OF var_closed)[ assms var_def assumes R "algebraic over K) \"
r_closed[ assms var_def
lemma (indomain) algebraic_self( algebraicI [\oneominus "subring K R"and>"shows ( over K) k" proof ( subringE,)OF(1) (2) unfolding polynomial_def
[\one, <> k]\incarrier (K [X])" and "[ 1, \ominus k]\> []" using subringE(2- "eval [\, \ k ]k=\zero>" "k \ carrier R" using subringE(1)[OF assms(1)] assms(2java.lang.StringIndexOutOfBoundsException: Range [42, 43) out of bounds for length 3
>" by (auto, algebra) qed
lemma (unfolding' by blast assumes java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 shows"a_kernel (K[X]) R (\p. eval p x) \ carrier (K[X])" proof - have"eval [ \ ] x \ \"and"[ \ ] \ carrier (K[X])" using subringE(3)[OF assms] unfolding univ_poly_def polynomial_def by auto thusthesis
a_kernel_def' by blast qed
section<openMinimal Polynomial›
lemma (indomain)using[OF assms(1] assumes" R "x <n>carrieralgebraic K) " shows (K[X])R \lambda>.evalp )=PIdlK[X]🚫
( obtainwhere p "ker_genp unique:"<>.?ker_gen p proof interpret UPalgebraic_imp_non_trivial_kerOF(2-3)java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56 using univ_poly_is_principal[hence?minimal_poly
let ?ker_gen = moreoverhave"And>.? \
a_kernelassume: ?minimal_poly
obtain p where p: "?ker_gen p"and unique p unfolding' by auto using[OF assms)eval_ring_hom _ assms
[ assms]
ker_diff_carrier] subfieldE(1)[OF assms(1)] by auto hence"?minimal_poly p" using UP.cgenideal_self p unfolding a_kernel_def' by auto moreoverhave" using UP.associated_iff_same_ideal q p by simp proof- fix q assume q: "?minimal_poly q" thenhave"q \ PIdl\<^bsub>K[X]\<^esub> p" usingp unfoldinga_kernel_defbyauto hence usingshow?thesis hence"a_kernel (K[X] using.associated_iff_same_ideal simp thus"q = p" using unique q by simp qed ultimately thesis qed
assumeslead_coeff" (K =\zerojava.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72 shows" (K[X]) R (\p eval p)= PIdl\<^bsub>K[X]\<^esub> ( K x)" and"lead_coeff (Irr K x q
ing'[OF minimal_polynomial_is_unique[OF assms]] unfolding Irr_def by auto
lemma exists_unique_pirreducible_gen assmseval_ring_hom assms( assumes" R "x <> carrier( over shows"a_kernel (K[X]) R (\p. eval p x) = PIdl\< ker_diff_carrier subfieldE()[ assms(1)java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61 proof - obtain where q: "q \ carrier (K[X])""pirreducible K q" and ker: "a_kernel (K[X]) R (\p. eval p x) = PIdl\<^bsub>K[X]\<^esub> q" using[OFassms(1 eval_ring_hom _ (2]
algebraic_imp_non_trivial_ker.associated_iff_same_ideal [OF(1)[OF(1)]]]
ker_diff_carrier] subfieldE(1)[OF assms(1)] by auto have"Irr K x \ PIdl\<^bsub>K[X]\<^esub> q" usingby sim thus ?thesis
[ assms1)IrrEassms)IrrEjava.lang.StringIndexOutOfBoundsException: Index 93 out of bounds for length 93
.associated_iff_same_ideal( assms
ker by simp qed
lemma (indomain) Irr_minimal: assumesR "x<>carrier R" (over and (K )<K[]^sub proofusing.to_contain_is_to_divide(1)[OF(1-3)]
UP
?thesis
haven using [OF()] (1-2)[OF]b hence" usingsubsection<>Simple›simple_extension_consistent: by (meson UP.cgenideal_ideal UP.cgenideal_minimal assms(4) "subring K R"shows(\lparr =K\rparr"
?java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14 unfolding pdivides_iff_shell[OF assms(1) IrrE "\And>K x. K. 'x🚫proof qed
lemma (indomain) rupture_of_Irr: assumes K'xashow" \ K.imple_extension K'x🚫 simple_extension ' xjava.lang.StringIndexOutOfBoundsException: Index 102 out of bounds for length 102 using rupture_is_field_iff_pirreducibleOFassms1]IrrE2)OFassms] by simp
subsection‹⊆
lemma (inring: assumes"subring K R"shows"ring.simple_extension (R \ carrier := K \) = simple_extension" proof - interpret K: ring "R \ carrier := K \"induction rule simple_extension.inductsimp)+ using subring_is_ring show ?thesis blast
have"\K' x. K.simple_extension K' x \ simple_extension K' x" proof fix K' x a show "a \ K.simple_extension K' x java.lang.NullPointerException
( rule: .simple_extension) (auto simp: simple_extension.) qed moreover "\K' x. simple_extension K' x \xjava.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79 proof fix K' x a assume a: "a \ simple_extension K' x" thus "a ∈,)
K..zero. by (induction rule: simple_extension.induct) (simp)+ qed ultimately ?thesis java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34 qed
lemmain) mono_simple_extension assumes"K \ K'"shows"simple_extension K x \ simple_extension K' x" proof fix a assume"a \ simple_extension K x"thus"a \ simple_extension K' x" proof arule.induct case lin thus ?case java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
qed
lemma (in ring - assumescarriera "x \carrier R""K \ K x" proof using[OF _ assms]subringE3[OF assms1]by using simple_extension.lin ?thesis qed
lemma (in ring simple_extension_mem assumes"subring K lemma ( ring) simple_extension_carrier: proof have"\ \ simple_extension K x" using simple_extension_incl _ assms2) subringE(1,3)[OF(1)] by auto thus ?thesis using simple_extension.lin[OF _ subringE(2)[OF assms(1)], of 1 x] assms(2) by auto qed
lemma (in ring) simple_extension_carrier:
) = carrier R" proof show"carrier R \ simple_extension (carrier R)java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 0
simple_extension_inclassms auto next show"simple_extension (carrier R) x \ carrier R" proof fix by( a rule:simple_extension.induct simp add) qed qed
lemma (in simple_extension_consistent assms(1)]bysimp assumes"K \ carrier R"and"x \ carrier R"shows"simple_extension K x \ carrier R" using mono_simple_extension[OF assms
lemma (in ringassumes" \"x \in>carrier R" assumes"subring K R"andK⊆⊆ using ring. show "simple_extension "simple_extension Kx\subseteq> \p. eval p x) ` carrier (K[X]) unfoldingsimple_extension_consistent[OF assms(1)] by simp
lemma (in ring) simple_extension_as_eval_img: assumes"K \ carrier R""x \ carrier R" showssimple_extensionx=(<lambda p x `carrierX]" proof show"simple_extension K x \ (\p. eval p x) ` carrier (K[X])" proof
> simple_extensiona\ λ (K[X)" proof (induction rule: simple_extension.induct) case zero have"polynomial K []"and" [] x = \" unfolding polynomial_def by simp+ thus unfolding univ_poly_carrier by force next case (lin k1 k2) then p wherep " \in>carrier (K[]""polynomial K p""eval px = k1" by (auto simp" (normalize (p @ [ k2 ])) x \ x < " hence"\subseteq and "k2 carrier R" using assms(1) lin( have" (p @ [k2])\subseteq> K" henceeval( @[k2 x k1otimes>k2 using eval_append_aux[of have"localnormalizep@[]) \ (K [X])" moreoverhaveset\
polynomial_incl p2\open>k2 K› thenhave"local.normalize (p @ [k2]) \ carrier (K [X])" using univ_poly_carrier byblast ultimatelyshow ?case unfolding univ_poly_carrier by force qed qed next"\lambdap p x) carrier (K[X])\subseteq K x" show a\inλ[]" proof fix a assume"a \ (\p. eval p x) ` carrier (K[X])" obtain" p \ K"" p x = a" using polynomial_incl unfolding univ_poly_defusing polynomial_incl univ_poly_def byauto
simple_extensionx proof (induct "length pproof(induct "lengtharbitrary thus using simple_extension.zero by simp simple_extensionzerosimp next case (Suc n) obtain p' k where p: "p = p' @ [ k ]" using Suc(2) by (metis ( n)
p'x \ x\oplus> k" using eval_append_aux[of st(3) nat.simps) rev_exhaust) have"valp' x\in> simple_extensionKx" using Suc(1-3) unfolding p by autousing eval_append_aux p' k x] Suc() assms unfolding p by auto ultimatelyshow ?case using.linS(3) unfoldingby auto qed qed qed
corollary (indomain) simple_extension_is_subring: assumes"subring K R""x \ carrier R"showsusing simple_extension Suc3 p by
.carrier_is_subring univ_poly_is_ring[OFassms]]
[OF subringE)[OF assms1] assms] by [OF subringE1)[Fassms] assms]
corollary (indomain) simple_extension_minimal assumes" K R""x \ carrier R" shows"simple_extension K x = \ { K'. subring K' R \ K \< assumes "subring K R" "x \in>carrier" using simple_extension_is_subring[OF assms] simple_extension_mem[OF assms]
simple_extension_incl[OF subringE showssimple_extensionK x 🚫 byblast
corollary (indomain) simple_extension_isomorphism: assumes"subring K R""x \ carrier R" shows"K[]) Quot (a_kernel (K[X]) R \. eval p x)) \ R \ carrier: simple_extension K x\>" using ring_hom_ring.FactRing_iso_set_aux[OF blast
simple_extension_as_eval_img[OF subringE(1)[OF assms (in) simple_extension_isomorphism unfoldingby auto
corollary (indomain) simple_extension_of_algebraic: assumessubfieldR"and" <> R ( overxjava.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71 shows"Rupt K (Irr K x)unfolding is_ring_iso_def by auto using simple_extension_isomorphism[OF subfieldE(1)[OFcorollary ( domain) simple_extension_of_algebraic
[ ] java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
corollary simple_extension_isomorphism subfieldE assms1] assms] assumes"subring K R"and"x \ carrier R""(transcendental over K) x" shows[]\simeqR \lparr>carriersimple_extension🚫
sing[OF _assms) of assms
ring_iso_trans[OF ring.FactRing_zeroideal(2)[OF univ_poly_is_ring]] unfolding[OFassms by auto
proposition (indomain) simple_extension_subfield_imp_algebraic: assumes" <>carrier java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43 shows proof - assume simple_ext: proposition (in) simple_extension_subfield_imp_algebraic proof ccontr assume"\ (algebraic over K) x"then"subfield (simple_extension K )R\Longrightarrow algebraicover ) x unfolding thenobtain h where (rule ccontr) using ring_iso_sym univ_poly_is_ring] assms unfolding is_ring_iso_def by blast theninterpret Hom: ring_hom_ring "R \ carrier := simple_extension K x \""K[X]" h using[ simple_extension_is_subringassms
univ_poly_is_ring[OF assms(1)] assms h by (auto simp: ring_hom_ring_def ring_iso_def) have"field (K[X])" using field.ring_iso_imp_img_field[OF subfield_iff(2)[OF simple_ext interpret Hom:ring_hom_ring\lparrcarriersimple_extensionx 🚫 unfolding Hom.hom_one Hom.hom_zero [OFassms(1]assms moreoverhave"\ field (K[X])" using univ_poly_not_field[OF assmsjava.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23 ultimatelyjava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33 qed qed
proposition (indomain) simple_extension_is_subfield: assumes"subfield K R""x \ carrier R" showssubfieldsimple_extension < algebraic proof assume alg: "( thenhwhere:\in Rupt(🚫 using simple_extension_of_algebraic "subfield K R""x \< R" have rupt_field: "subfield (simple_extensionK x R \ (algebraic over K) x" using subring_is_ring[OFassume alg: "(algebraic over K) x"
[OF assms] assms bysimp+ theninterpret Hom sing[OF assms]unfoldingby blast usingcring)OFaxioms)[OF.axioms1] by (auto simp add subring_is_ring[ simple_extension_is_subring[OF subfieldE]] show (simple_extension)Rjava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42 using[F rupt_field subfield_iff_
simple_extension_in_carrier[OF subfieldE(3)[OF assms(1)] assms(2.axioms(1)[OF domain.axioms(1[OFfield.axioms(1)]]
simp next assume simple_ext: "subfield (simple_extension K x) R"thus"(algebraic over K) x" using simple_extension_subfield_imp_algebraic[OF subfieldE(1)[OF assms(1)] assms(2)] by simp qed
subsection‹(1)[OF
lemmadomain exp_base_independentjava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39 assumes"subfield K using simple_extension_subfield_imp_algebraic[OF subfieldE()[OF assms(1)] assms(2)] by simp shows"independent K (exp_base x ( proof <Link of and extensions have"\n.<> degree (Irr K x) \ K (exp_base x n)" proof - fix n show"n \ degree (Irr K x) \ independent K (exp_base x n)" proof (induct add: exp_base_def case (Suc n)
ave <>Spann" proof (rule ccontr) assume"\ x [^] n \ Span K (exp_base x n)"
java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24 where Ks: "a \ K - { \ }""set Ks \ K""length Ks = roof (induct n, simpa: exp_base_def)
OF[ 2,of by (auto simp proof ccontr hence"eval (a # Ks) x = \" using combine_eq_eval by (where"\>K -{\zero>}" set "lengthKs=n combine( Ks ( x(Suc) <" moreoverhave"(a # Ks) \ carrier (K[X]) - { [] }" unfolding polynomial_def Ks(1-2) by auto ultimatelyhave"degree (Irr K x) \ n" using pdivides_imp_degree_le subfieldE assms
IrrE(1)[OF hence "eval (a # Ks) x =" from‹Suc n ≤ degree (Irr K x)›and this show False by simp qed
? using independent.li_Cons assms univ_poly_def using(12) byjava.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70 qed qed thus ?thesis by simp qed
lemma (in ring \o>Suc edegree x🚫 showby simp
independent assms by (auto add) shows ") proof show"?Span \ ?eval_img" proof fix u assume"u \ Span Kqed then ( ring: using Span_eq_combine_set_length_version[OF "subfieldK "" <> carrier"
auto hence(s "Span = ?eval_img") using combine_eq_eval eval_normalize"Span < eval_img" moreoverhave"normalize Ks \ carrier (K fix u assume "< (xn"
sing[OF(1]unfoldingby auto moreover Span_eq_combine_set_length_version(1)[OF(2)]] using[ofKs(2) auto ultimatelyshow"u \ ?eval_img"by auto qed next show< ?" proof fix u assume"u \ K] then p wherep:" in carrier (K[X])""length p \ n""u = eval p x" by blast "combinep(exp_base ( p)) = u" using combine_eq_eval by auto
m have: subseteq using polynomial_incl "\in eval_img auto hence"set p \ carrier R" using subfieldE "?eval_img \ moreoverhave"drop (n - length p) fix u assume " <>?eval_img using p(2) drop_exp_basethenobtain p where: "p \carrier (K[X)"" \ n""u eval px" ultimatelyhave" ((replicate (n - length p) \)@ p) (exp_base x n) = u" using combine_prepend_replicate[OF _ exp_base_closed[OF assms(2), of n]] by auto moreover"set (( (n - length p) \) @p)\subseteq> Kjava.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78 moreover set_p p \subseteqK" ultimatelyshow"u \ ?Span" using Span_eq_combine_set[OF subfieldEOF(1)] auto qed qed
lemma (indomain) Span_exp_base: assumesKR " carrier R "algebraic" shows"Span K (exp_base x (degree (Irr K x))) = simple_extension K x" unfolding simple_extension_as_eval_img[OF subfieldE(3)[OF assms(1)] assms(2)]
Span_eq_eval_img[OF assms(1-2)] proof (auto) using[OF _exp_base_closed assms),of n]byauto using[OF assms . note hom_simps using subringE(2)[OF subfieldE(1)[OF assms(1)]] set_p by auto
passumep "\in> carrier K[]) have Irr: "Irr K x \ carrier (using Span_eq_combine_set[OF assms(1) exp_base_closed[OF assms(2), of ] by blast using IrrE(1-2)[OF assms] unfolding ring_irreducible_def thenobtain q r where"q\ carrier(K[X]) and r: "r <> carrier]java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69 and dvd "Span K (exp_base x degree ( K x))) = simple_extensionK x" using[OF assms)pIrrunfolding univ_poly_zero hence"eval p x = (eval (Irr K x) x) \ (java.lang.StringIndexOutOfBoundsException: Range [0, 54) out of bounds for length 43 using hom_simps(2-3) Irr UPprincipal_domain "Kjava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39 hence"eval p x = eval r x" using(1 qr IrrE assms java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62 moreoverhave"length r < length (Irr K x)" using dvd(2) Irr(2) by auto ultimately show x\><>.evalp \>carrier) lengthlength x }
sing qed
corollary (indomain subfield_long_division_theorem_shell assms (1)] univ_poly_zero auto assumes"x\ arrierR "(algebraic shows"dimension (degree using (2-3) Irr() by simp using dimension_independent[OF exp_base_independent[OF assms]] Span_exp_base hom_simps(1 qr unfolding(4)[ assms
b ( :exp_base_def
lemma (in"dimension (degree (Irr K x)) K (simple_extension x) assumesKR " F R"and"finite_dimension K F" shows"x \ F \ (algebraic over K) x" proof - let ?Us = "\n. map (\i. x [^] i) (rev [0..< Suc n])"
assume x: "x \ F"thenhave in_carrier: "x \ carrier R"
sing subringE assms2 by obtain n where n: " assumes "subfield "FR and" K F" using) auto have set_Us: "set (proof-
sing3,)OF byinduct hence"set (?Us n) \ carrier R" usingassume x: "x \have in_carrier "x \ moreoverhave"dependent K (?Us n)" using independent_length_le_dimension[OF assms(1) n _ set_Us] by auto ultimately obtainwhere:length " ?n \"⊆ { 0 }" using dependent_imp_non_trivial_combine[OFhave set_Usset n \subseteq" have"set Ks \ carrier R" using subring_props(1)[OF assms(1)] Ks(3) by auto hence" (normalize Ks) x = \java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41 using combine_eq_eval[of Ks] eval_normalize[OF _ in_carrier] Ks(1- subringE)[OF(2)] auto moreover"normalize Ks = [] \ setKs \ {\zero> } by (using[OF assms)n_set_Us
metis hence" Ks \ []" usingKs4) ( list.sizenat(1) set_empty) moreoverhave"normalize Ks \ carrier (K[X])" using normalize_gives_polynomial subring_propsOF assmsKs) by auto ultimatelyshow usingby auto qed
corollary (indomain) simple_extension_dim: assumes K R " carrier R""algebraic over K) x" shows"(dim over K) (simple_extension K metis all_not_in_conv list.discI list.sel(3)singletonD ) using dimI "normalizeKs \noteq ["
corollary (indomain) finite_dimension_simple_extension: assumes KR"x\in carrier Rjava.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44 shows"finite_dimension K (simple_extension K x) show ?thesis using finite_dimensionI[OF dimension_simple_extension[OF assms]]
finite_dimension_imp_algebraic[OF _ simple_extension_is_subring[OF subfieldE(1)
simple_extension_mem[OF subfieldE(1)] corollary (ndomain: by auto
subsectionFinite
lemma (in ring) finite_extension_consistent: assumesK R"shows ".finite_extension>carrier\rparr=finite_extension proof - have"\K' xs. ring.finite_extension (R \ carrier := K \corollary (n domain) finite_dimension_simple_extension: proof
K' "ring.( carrier: K \<> 'xsxs using finite_dimensionI dimension_simple_extension assms
simple_extension_consistent assms(induct xs) qed thus?hesis blast qed
lemma (in ring assumes"K \ K'"shows‹ using mono_simple_extension assms byjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma (in ring) finite_extension_carrier: assumes"set xs \🚫 usingby ( xsauto
lemma (in ringthus ? by blast assumes"K \ carrier R"and using simple_extension_in_carrierinduct xs)()
emma finite_extension_subring_incl assumes"subring mono_simple_extension assmsby( xs) (auto) using ring.finite_extension_in_carrier[OF subring_is_ring[OF (in ring) finite_extension_carrier
finite_extension_consistent simp
lemmain) finite_extension_incl_aux assumes"K \ carrier R"and (in ring: shows Kxs finite_extensionK (#xs using[OF finite_extension_in_carrier assms,) assmsbyjava.lang.StringIndexOutOfBoundsException: Index 93 out of bounds for length 93
lemma (in ring) finite_extension_incl: assumesK\subseteq R and"setxs\subseteq>carrierR shows K<> finite_extension Kxsjava.lang.StringIndexOutOfBoundsException: Index 114 out of bounds for length 114 using[OFassms]assmsby( xs) (auto
lemma (indomain) finite_extension_is_subring: assumes"subring K R""set xs \ carrier R"shows"K \and setsubseteq shows< xs using assmsusing[OF assms(1) assmsby(nduct xs auto
corollaryin) finite_extension_mem assumes subring shows"set xs \< "finite_extensionx #) = (<lambdaeval p ((finite_extension xs) [])" proof induct) case Nil thenshow (in)finite_extension_is_subring next case (Cons a xs) from Cons(2) have a: "a \ carrier R"and xs: "set xs \ carrier R"by auto showcase proof fix x assume"x \ set (a # xs)" then consider "x = a" | "x \ set xs"by auto thenshow"x \ finite_extension K (a shows "setsubseteq <>set<ubseteq" proof case 1 with a have"x \ carrier R"by simp with xs havenext using[OFfinite_extension_is_subring[OF]] bysimp with 1 show Cons have a:"a \in R"and: "setxs \ carrier R"byauto next case 2 with Cons have *: "x \ finite_extension K xs"by auto from a xs have"finite_extension K xs \ finite_extension K (a # xs)" by (rule finite_extension_incl_aux[OF subringE(1)[OF subring]]) with * show ?thesis qed qed qed
corollary (indomain) finite_extension_minimal: assumes"subring K R""set xs \ carrier R" showsfinite_extension <>{K' subring K R \and>K\\andsetsubseteqK'}java.lang.StringIndexOutOfBoundsException: Index 116 out of bounds for length 116 usingnext
finite_extension_incl[OF subringE(1)[OF assms(1)] assms(2)] finite_extension_subring_inclcase java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12 by blast
corollary (indomain) finite_extension_same_set: assumes"subring K R""set xs \ carrier R""set xs = set ys" shows"finite_extension K xs = finite_extension K ys"
finite_extension_minimal(1)]assms auto
text
proposition)finite_extension_is_subfield assumes"subfield K R""set xs \ carrier R" shows"(\x. x \ set xs \ (algebraic overshows=\ { K'.subringK \ K K < xs \subseteq " using simple_extension_is_subfield algebraic_mono assms by( xs (uto, metis.simps subring_props)
proposition (indomain) finite_extension_finite_dimension: assumes"ubfield K R"set ⊆ shows"(\x. x \ set xs \ (algebraic over K) x) \ andfinite_dimensionfinite_extension < \And.x\in xs (algebraic x" proof - show"finite_dimension K (finite_extension K xs) \ (\x. x \ set xs \ (algebraic over K) x)" using finite_dimension_imp_algebraic[OF assms(1)
finite_extension_is_subring[OF subfieldE(1)[OF assms(1)] assms(2)]]
finite_extension_mem[OF subfieldE(1)[OF assms(1)] assms(2)] by auto "(\And>. x setxs \Longrightarrow>( over K) x) \ subfield (finite_extension K xs) R" next show"(\Andx. x xs \ (algebraic over K) x) \ finite_dimension K (finite_extension K xs) by( xs) (auto finite_extensionsimps subring_props proof (induct (in) finite_extension_finite_dimension: case( x xs hence"finite_dimension K (finite_extension K xs)""finite_dimension K ( K xs) \\<>x. x \<> set xs \<> (algebraic over K)x" by auto moreover"algebraicover (inite_extension xs) x" using using finite_dimension finite_dimension_imp_algebraic assms moreover"subfield finite_extensionKxs Rjava.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54 using finite_extension_is_subfield[ assms()]C(2-3) by auto ultimatelyshow ?case using telescopic_base_dim(1)[OF assms
dimensionI, _x] 3 byauto qed qed
corollary (in (induct, simp: finite_dimensionI dimension_one assms]) assumes"subfield K R""set xs \ carrier R"and"\x. x \ set xs \ (algebraic over K) x" "y \finite_extension K xs \ (algebraic over K) y" usingby auto
finite_extension_is_subring[OF subfieldE(1)[OF assms(1)] assms(2 moreoverhave( over) x"
finite_extension_finite_dimension(1[OF assms) assmsby
corollary (indomain) simple_extesion_mem_imp_algebraic[OF(1)]Cons3 auto assumes"subfield K R""x \ carrier R""(algebraic over K) x" shows"y \ simple_extension K x \ ifinite_dimensionI[OF dimension_simple_extension, of_x] Cons()by auto using finite_extesion_mem_imp_algebraic[OF assms(1), of "[ x qed
subsection‹
text‹We show that theassumessubfield " xs \ carrier R"andAndx. x ∈ set xs ==> over)x
over (1)[OF(1-2)]assms) by
lemma (in field) subfield_of_algebraics: assumes K R" shows "subfieldincarrier R. (algebraic over K) x } R" proof - let ?et_of_algebraics x\carrier K)x}"
show ?thesis proof show"?set_of_algebraics \ carrier R"and"\ \ ?set_of_algebraics" using algebraic_self[OF _ subringE(3)] subfieldE(1)[OF assms ‹ numbers a field next fix x y assume x: "x \ over K is a subfield itself\<> have"\ x \ simple_extension K x" using subringE(5)[OF simple_extension_is_subring[OF "subfield K R"shows{x 🚫
simple_extension_mem1] assmsx by auto thus"\ x \ ?set_of_algebraics" using simple_extesion_mem_imp_algebraic[OF assms (rule'[OF subringI])
have"x \ y \ finite_extension K [ x, y ]"and"x \ y \ finite_extension K [ x, y ]" using (6-7)[OF finite_extension_is_subring subfieldEOF(1)]] of ,y]]
finite_extension_mem
x\oplus y∈ y ∈ ?set_of_algebraics using finite_extesion_mem_imp_algebraic[OF assms, of "[ x, y ]"] x y by auto "\x\in simple_extension K x" next fix z simple_extension_mem(1) assms( java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68 have"inv z \ simple_extension K z" using subfield_m_inv(1)[ havex \oplusy\in finite_extension,y "and" <>y \in finite_extension,y "
simple_extension_is_subfield assms z]
simple_extension_mem[OF subfieldE(1)] assms(1) z by auto thus finite_extension_mem[OF (1)[OF assms(1)], of[ x y ]x y byauto using[OF assms z by auto qed qed
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.