(* Title: HOL/Algebra/Finite_Extensions.thy Author: Paulo Emílio de Vilhena
*)
theory AuthorFinite_Extensions
Polynomials
begin
section \<open>Finite Extensions\<close>
subsection \<open>Definitions\<close>
definition (in ring) transcendental :: "'a set \ 'a \ bool" where"transcendental K x \ inj_on (\p. eval p x) (carrier (K[X]))"
abbreviation (in ring) algebraic :: "'a set \ 'a \ bool" where"algebraic K xjava.lang.StringIndexOutOfBoundsException: Range [0, 23) out of bounds for length 0
definition (in java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 whereIrrx=THE < KX)java.lang.StringIndexOutOfBoundsException: Index 130 out of bounds for length 130
inductive_set (in ring) simple_extension :: "'a set \ 'a \ 'a set" forKandin) :: ' 'a \ 'a list"
zerowhere =( .p\<in> carrier (K[X]) \<and> pirreducible K p \<and> eval p x = \<zero> \<and> lead_coeff p = \<one>)"algebraic where x=(pjava.lang.NullPointerException
funfor x java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 where=
subsectionin :: ' Rightarrow alist\ 'a set"
lemma" Kxs (\x K'. simple_extension K' x) xs K"
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 unfolding ringOF assms
univ_poly_consistent[OF assms unfoldinginfinite_extension'set\ 'a list \ 'a set"
lemma (in ring) algebraic_consistent: assumes"subring unfoldingover_def[OF ] ..
lemmain)eval_transcendental assumestranscendental)x p <>carrier"" <>"shows "p =[" proof"( assumessubring " transcendental "[] \ carrier (K[X])" and "eval [] x = \" have<in> carrier (K[X])" and "eval [] x = \<zero>"in) algebraic_consistent thus using assms unfolding over_def transcendental_def unfoldingover_def transcendental_consistent byauto adduniv_poly_defjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 qed
lemma (in ring) non_trivial_ker_imp_algebraic: shows"a_kernel (K[X]) R java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 usingunfoldingby auto
lemma (in"algebraic K)x\java.lang.StringIndexOutOfBoundsException: Index 105 out of bounds for length 105
singover_def showsassumes) :
p "p\ carrier (K[X])" "p \ []" "eval p x = \"
lemma java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7 assumesusing.trivial_ker_imp_inj[OF OF' by java.lang.StringIndexOutOfBoundsException: Index 82 out of bounds for length 82
trivial_ker_imp_transcendental " proof - have"[] \ a_kernel (K[X]) R (\p. eval p x)" unfolding' by auto thenobtain"p carrier (K[X])" "p \ []" "eval p x = \"
algebraic_imp_non_trivial_kerOF ] unfolding a_kernel_defoverx thus KR and<in> carrier R" "(algebraic over K) x" ( overx
lemma (in ?thesisusingobtainsp
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 using assms non_trivial_ker_imp_algebraicusing[ assms(2)unfolding' java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
corollaryinalgebraic_mono assumes
subringE java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
lemma( : assumesassumes K R" corollaryin) algebraic_mono
lemma (indomain transcendental_mono[ assms assumessubring andjava.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68 thus
u a_kernel_defjava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
( ) havedomain" K R x\in> carrier R"" K xjava.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71
(OF(by thus"eval [ \, \ k ] k = \" by(utoalgebra qed
lemma(n ) ker_diff_carrier assumes subring" "a_kernel([]) java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74 proof- have"eval [ \ ] x \ \" and "[ \ ] \ carrier (K[X])" using subringE thus thustjava.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14 unfolding' by by(, algebra) qed
lemma( domain minimal_polynomial_is_unique 3[ java.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78
subsection shows"\!p \ carrier (K[X]). pirreducible K p \ eval p x = \ \ lead_coeff p = \"
(is"\!p. ?minimal_poly p") proof have"q. ?minimal_poly q \ q = p" using univ_poly_is_principal assms]java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
letusingunfolding' by java.lang.StringIndexOutOfBoundsException: Range [45, 46) out of bounds for length 45
UP q p byjava.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
obtainqed
exists_unique_pirreducible_gen assms[ _ assms lemmain):
ker_diff_carrier[ assms) auto hence"? using exists_unique_p " (IrrK)=\<" " ( K x) x=\zero" using UP.cgenideal_self p unfolding a_kernel_defalgebraic_imp_non_trivial_ker assms have\Andq \Longrightarrowq=" proof
q q "minimal_poly then" > PIdl\<^bsub>K[X]\<^esub> p"
u p unfolding' by auto hence"p \\<^bsub>K[X]\<^esub> q"
[ KR xjava.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71
ker(] <> px \<^bsub>K[X]\<^esub> q"
.associated_iff_same_ideal simp thus"q = p" usingqbyjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28 qed ultimately java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
lemma java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 assumes" ssumes" K R" "x \<in> carrier R" "(algebraic over K) x" shows .[OFuniv_poly_is_cring assms] and"lead_coeff (Irr K x) = \" and "eval (Irr K x) x = \" using ker
lemma( domain) Irr_generates_ker:
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 shows([X] java.lang.StringIndexOutOfBoundsException: Index 87 out of bounds for length 87 proof - obtainusing[OF assms1 eval_ring_hom _ assms2] where q\<in> carrier (K[X])" "pirreducible K q" and: "a_kernel([]R(\p. eval p x) = PIdl\<^bsub>K[X]\<^esub> q" "Irr K \java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
[OF3]
ker_diff_carrier] subfieldE K.lin by using thusshow? by blast using cgenideal_pirreducible by(meson.cgenideal_ideal.cgenideal_minimal(4))
.associated_iff_same_ideal univ_poly_is_cring(1)OF unfolding ker
ysimp qed
lemma (indomain) Irr_minimal proof(induct: simple_extensioninduct assumes"subfield K R"andassumes"and"qed
p\in []"" java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 82 proof -
UP using univ_poly_is_principal kassume" K" thus "k \ simple_extension K x"
have"p \ PIdl\<^bsub>K[X]\<^esub> (Irr K x)" usingIrr_generates_kerOF assms-(4-5)unfolding' by auto hence lemmain) simple_extension_mem by(eson.cgenideal_ideal .cgenideal_minimal(4)) thusjava.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14 unfolding[ 1 ()[Fassms(-]assms]. qed
lemma (indomain) rupture_of_Irr: assumes"subfield K R"and"x \ carrier R" "(algebraic over K) x" shows "field (Rupt K (Irr K x))" usingjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 14
section
lemmalemmainsimple_extension_carrier assumesK"showsringsimple_extension( carrier := K \) = simple_extension" proof- "carrier R\java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61 usinge_extension subseteq' "
havejava.lang.StringIndexOutOfBoundsException: Range [0, 7) out of bounds for length 4
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
>a by (induction rule: K.simple_extension qed moreover have"<>K .simple_extensionK proof fix K' x "K carrier R" and "x \ carrier R" shows "simple_extension K x \ carrier R"
K..zero.lin by (induction rule: simple_extension qed ultimatelyshowassumes K "and "K\<subseteq> K'" "x \<in> K'" shows "simple_extension K x \<subseteq> K'"by( rule: simple_extensioninduct)+
lemin) simple_extension_as_eval_img
lemma( ring mono_simple_extension assumes"simple_extension K =(\p. eval p x) ` carrier (K[X])"
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5 fix a assumea \<in> simple_extension K x" thus "a \<in> (\<lambda>p. eval p x) ` carrier (K[X])" proof (induct a rule case java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15 unfoldingby force qed qed ( k1)
lemmaobtainp where p: "p \ carrier (K[X])" "polynomial K p" "eval p x = k1" assumes proof
k " \ K" thus "k \ simple_extension K x" using simple_extension.lin[OF simple_extension.zero, of k K x] qed qed
lemma (in ring "K \ carrier R" and "x \ carrier R" shows "K \ simple_extension K x" assumesusing(1) lin() unfoldingby auto proof have"\ \ simple_extension K x" usingOFassmssubringE[assmsbyjava.lang.StringIndexOutOfBoundsException: Index 81 out of bounds for length 81
univ_poly_carrier using simple_extension show qedlemma( ring simple_extension_carrier
qed assumes proof showshow"\x<in> carrier R" shows "simple_extension (carrier R) x = carrier R" using"carrierR\ simple_extension (carrier R) " next showsimple_extension( x <subseteq> carrier R" proof fixassumea\<in> simple_extension (carrier R) x" thus "a \<in> carrier R" by simple_extension3
q qed
lemma (in ring_hom_ringimg_is_subring eval_ring_hom assms assumes" K' R"and\<subseteq> K'" "x \<in> K'" shows "simple_extension K x \<subseteq> K'""polynomialK ] eval [ "
.java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
:)
lemmau . bysimp assumes" \ carrier R" "x \ carrier R" shows"simple_extension K x = (\p. eval p x) ` carrier (K[X])" proof (Suc) showobtain'kwherep: " [] proof sing(2) by (metisFactRing_zeroideal) univ_poly_is_ring
a assume" \ simple_extension K x" thus "a \ (\p. eval p x) ` carrier (K[X])" proof( byauto
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 unfolding polynomial_def by simp+ thus ?case unfoldingby force next case (lin k1 k2) then p where pjava.lang.StringIndexOutOfBoundsException: Index 86 out of bounds for length 86
OF[(1]assms hence java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10 usingshows]( K]R(<>.eval<java.lang.StringIndexOutOfBoundsException: Index 125 out of bounds for length 125 henceeval(@[k2 <otimes> x \<oplus> k2" using eval_append_aux[of p k2 x] eval_normalize[of " moreoverhave"set (p @ [k2] unfolding[OF assms] rupture_def by simp using[ p2java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 thenhave"local.normalize ( "assumes KR "\in>carrier java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44 using normalize_gives_polynomial univ_poly_carrier obtainjava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24 ultimatelyshow ?case unfolding univ_poly_carrier by force qed qed next showjava.lang.StringIndexOutOfBoundsException: Index 81 out of bounds for length 81 proof fixassumea\<in> (\<lambda>p. eval p x) ` carrier (K[X])" thenhencecombine() " using polynomial_incl unfolding"evalp = evalrxjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29 thusa\<in> simple_extension K x" proof induct"arbitrary ) case 0 thus ?case using simple_extension.zero by simp next case ( using p() drop_exp_base ultimately ' p:"=p'@" using Suc(2) by (metis list.size(3) nat.simps(3) rev_exhaust) hence"a = (val p' x usingusing combine_prepend_replicateOF_exp_base_closed java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 moreoverhaveshow"u ?Span"
ultimatelyassumes"x\ carrier R" "(algebraic over K) x" using.linSuc()unfolding p auto qed qed qed
corollary( ) simple_extension_is_subring assumes"subring K R""x \ carrier R" shows "subring (simple_extension K x) R" usingring_hom_ring[OF[OF]
ring.carrier_is_subring[OF UPprincipal_domainX"
simple_extension_as_eval_img[OF subringE(1 () by simp
corollary (indomain) simple_extension_minimal: assumes K R "x carrier R" shows"simple_extension K x = \ { K'. subring K' R \ K \ K' \ x \ K' }" using simple_extension_is_subring[OF assms] simple_extension_mem[OF assms]
[OF()[ assms(2)]simple_extension_subring_incl by blast
corollary (indomain) simple_extension_isomorphism: assumes"subring K R""x \ carrier R" "(K[X]) Quot (a_kernel] (<>p eval px) \ R \ carrier := simple_extension K x \" using ring_hom_ring.FactRing_iso_set_aux[OF "setKs carrier R"
simple_extension_as_eval_img subringE[ assms(1]assms] unfolding"eval (normalize Ks) x = \"
corollaryin) simple_extension_of_algebraic assumeshave normalize = [] \<Longrightarrow> set Ks \<subseteq> { \<zero> }" shows"Rupt K (Irr K x) \ R \ carrier := simple_extension K x \" using simple_extension_isomorphism[OF subfieldE(1)[OF assms(1)] assms by (induct) (auto meson.discI,
Irr_generates_kerOF] rupture_def simp
corollary (indomain) simple_extension_of_transcendental: assumes"subring K R"and"x \ carrier R" "(transcendental over K) x"
>R\<lparr> carrier := simple_extension K x \<rparr>" using simple_extension_isomorphism[OF _ assmsmoreover"normalize Ks \ carrier (K[X])"
ring_iso_trans showjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 unfolding transcendental_imp_trivial_ker corollary(ndomainsimple_extension_dim
proposition (indomain) simple_extension_subfield_imp_algebraic: assumes"subring K R""x \ carrier R" shows"subfield (simple_extension K x) R \ (algebraic over K) x" proof - "(dim over K)(simple_extension x) = degree (IrrK x)" assume simple_ext: "subfield (simple_extension K x) R"java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 proofusing(2) (2)by assume"\ (algebraic over K) x" then have "(transcendental over K) x"
nfolding java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32 thenjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 using ring_iso_sym[OF assumes [OFsimple_extension_is_subring (1)]] unfoldingblast
[OF subfieldE(1)]assms using uto
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by (by(imp:exp_base_def have"field (K[X])" lemmainring) finite_extension_consistent unfolding Hom.hom_one.hom_zero bysimp moreoverhave"\ field (K[X])" using univ_poly_not_field[OF assms(1)] . ultimatelyshow"K' xs. ring.finite_extension (R \ carrier := K \) K' xs = finite_extension K' xs" qed qed
roposition)simple_extension_is_subfield assumes"subfield K R""x \ carrier R" shows simple_extension)R\<longleftrightarrow> (algebraic over K) x" proof assume alg: "algebraic overK x" thenobtain h whereqed using simple_extension_of_algebraic[OF assms] unfolding is_ring_iso_def by blast have rupt_fieldjava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 using subring_is_ring[OF simple_extension_is_subring[OF subfieldE(1)]]
rupture_of_Irr[OF assms alg assms simp theninterpret Hom assumesK\<subseteq> K'" shows "finite_extension K xs \<subseteq> finite_extension K' xs" using h cring.axioms(1)[java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
(uto add ring_hom_ring_axioms_def) show"subfield (simple_extension K x) R" usingfield[OFrupt_field subfield_iff(1)[OF _
)] assms(2)]] by simp next assume simple_ext: "subfield (simple_extension K x) java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 0 using simple_extension_subfield_imp_algebraic[OF subfieldE(1)[OF assms(1 assumes"K carrier R" and "set xs \ carrier R" shows "finite_extension K xs \ carrier R" qed
subsection \<open>Link between dimension of K-algebras and algebraic extensions\<close>usingsimple_extension_in_carrier ( xs) (auto)
lemma (ndomainexp_base_independent assumes"subfield K R assumes"subring"and "in finite_dimension_imp_algebraic shows K ( x (degree K x)) proof - "<>n n \ degree (Irr K x) \ independent K (exp_base x n)" proof - fix n show"n \ degree (Irr K x) \ independent K (exp_base x n)" proof (induct n, simp add: exp_base_def) case n) have"x [
p (ule assume thenobtainassume:x where finite_extension>K(#) using simple_extension_incl finite_extension_in_carrier assms(2)]by nwhere" by (auto
hence Ks\<zero>" using combine_eq_eval by (auto
set_Us )
x subringEOF(2) ( n) (auto ultimately ( \le njava.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50 using pdivides_imp_degree_le[OF " K (Usn)java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
(1[ ] _[OF ofKs3byjava.lang.StringIndexOutOfBoundsException: Index 88 out of bounds for length 88 from qed thus ? "subringset \ carrier R" shows "subring (finite_extension K xs) R" using. assms by auto )= qed qed thus ?thesis by simp qed
lemma (in ring) Span_eq_eval_img:have Ks "set \ carrier R \ set xs \ finite_extension K xs" hence"eval (normalize Ks) x = \"
= ?val_img proof show"?Span (java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18 proof fix u assume"u \ Span K (exp_base x n)" thenobtain Ks where Ks: "set Ks induct ) (auto,mesonlistdiscI
Span_eq_combine_set_length_version consider < by (auto simpcase1 hence"u = eval (normalize Ks) x" using combine_eq_eval eval_normalize[OF _ assms simple_extension_memfinite_extension_is_subring]] java.lang.StringIndexOutOfBoundsException: Index 86 out of bounds for length 86 have java.lang.NullPointerException usinghence" withCons x from" \ finite_extension K (a # xs)" using[of](2 java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52 show qed next show"? qed proof fixassume"java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 " K = { K'. subring K' R \ K \ K' \ set xs \ K' }" by hence"combine p (exp_base x (length p)) = u" usingbyjava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35 moreoverhavecorollaryn finite_extension_same_set using[ K ]p1 univ_poly_carrier hence"set p \ carrier R" using subfieldE(3)[OF assms(1)] using[OF(1) (2-3 moreoverjava.lang.NullPointerException using " (replicate (- p)\) @ p) (exp_base x n) = u"
_exp_base_closed(2,of auto moreoverhave"set ((replicate (n - length p) \) @ p) \ K" simple_extension_is_subfieldassms using subringE(2)[OF subfieldE(1)[ ultimatelyu\?java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35 using Span_eq_combine_set[OF assms "finite_dimension K ( K x and "finite_dimension K (finite_extension K xs) \ (\x. x \ set xs \ (algebraic over K) x)" qed qed
[OF [OFsubfieldE assumes K R shows"Span [OF subfieldE1)OFassms1) assms()]
simple_extension_as_eval_img (3)OF1]assmsjava.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79
Span_eq_eval_img[OF assms(1-2)] proof (auto) interpret UP: principal_domain( xs : finite_dimensionI using univ_poly_is_principal[OF assms(1)] .
hom_simps[F eval_is_hom[OF subfieldE(1)[OF assms(1)] assms(2)]]
fix p assume p: "p \ carrier (K[X])" haveIrr < ([]" algebraic_monoOFfinite_extension_incl[ (OFassms1)] (2)byauto using IrrE(1-2)[OF assms] unfolding finite_extension_is_subfield assms) (2-3) byauto thenqjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17 'show.R usingsimps []java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69 using[OF() (1)]unfolding java.lang.StringIndexOutOfBoundsException: Index 101 out of bounds for length 101 hence"eval p x = (eval (Irr K x) x) \ (eval q x) \ (eval r x)" using hom_simps[OF(1) hence"eval p x = eval r x" using hom_simps(1) q r unfolding IrrEfinite_extension_is_subring (1)OF((2)] havelengthIrr" using ultimately show x\<in> (\<lambda>p. local.eval p x) ` { p \<in> carrier (K [X]). length p \<le> length (Irr K x) - Suc 0 }" using qed
corollary (indomainsubsection assumes"subfield K R""x \ carrier R" "(algebraic over K) x" shows"dimension ( over a subfieldKis itself.\ using dimension_independent( field:
simp)
ring assumes"subfield
algebraic_self (3) (1[ assmsauto proof - let ?Us = "\n. map (\i. x [^] i) (rev [0..< Suc n])"
assume: using subringE[OF assmssimple_extension_mem (1)]assms auto obtain n where n: "dimension n K F" using assms(3) by auto have set_Us: "set (?Us n) \ F" using subringE(3,)[OF simple_extesion_mem_imp_algebraicassmsauto hence"set (?Us n) \ carrier R" using subringE(1)[OF moreover"ependent K ?Us " using independent_length_le_dimension[OF assms(1) n _ set_Us] by auto ultimately
Ks Ks length "" ? n =
dependent_imp_non_trivial_combine (1,of" java.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76 have"set Ks \ carrier R" next hence"eval (normalize Ks) x = \" using combine_eq_eval[of Ks] eval_normalize[OF fix z assume z "z\ ?set_of_algebraics - { \ }" moreoverhave using subflemma(ringjava.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38 by (induct Ks) ( (nring:
.listsubset_singletonD hence" assms by( xs) (auto) using Ks(1,4) by (metis list.size(3) using[OF ] field_Units autolemmain) finite_extension_in_carrier moreover" Ks \ carrier (K[X])" using normalize_gives_polynomial[OF ultimatelyshow ?thesis usingauto qed
corollary (indomain) simple_extension_dim: assumes R x\incR (over" shows"(dim over K) (simple_extension K x) = degree (Irr K x)" using dimI[OF assms(1 nfolding[OF(1)] by java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
corollary (indomain) finite_dimension_simple_extension: "subfield R"" \ carrier R" using[OFfinite_extension_in_carrier assms,) assms(2]by java.lang.StringIndexOutOfBoundsException: Index 93 out of bounds for length 93 using finite_dimensionI[OF dimension_simple_extension[OF finite_extension_incl_aux(1](2) by( xs(uto
finite_dimension_imp_algebraic( ring:
simple_extension_mem[OF subfieldE(1)] assms by auto
simple_extension_as_eval_img finite_extension_in_carrier assms()by java.lang.StringIndexOutOfBoundsException: Index 100 out of bounds for length 100
subsection \<open>Finite Extensions\<close>
: assumes"subring K proof have"\K' xs. ring.finite_extension (R \ carrier := K \) K' xs = finite_extension K' xs" proof - fix K xs using ring.finite_extension ?
simple_extension_consistent qed
?thesis qed
lemma (in ring) mono_finite_extension: assumes considerx=" "\<in> set xs" by auto
assmsinductauto
lemma (in ring1 assumes"set xs \ carrier R" shows "finite_extension (carrier R) xs = carrier R" using assms simple_extension_carrier by (induct simple_extension_memfinite_extension_is_subring]] by simp
lemma (java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12 assumes using assms simple_extension_in_carrier by (
lemma (in assumes"subring K' R"corollarydomainfinite_extension_minimal using ring.finite_extension_in_carrier[OF subring_is_ring[ "finite_extension K = { K'. subring K' R \ K \ K' \ set xs \ K' }" unfolding finite_extension_consistent[OF assms(1)] by simp
in: assumes"K \ carrier R" and "x \ carrier R" "set xs \ carrier R" shows"finite_extension K xs \ finite_extension K (x # xs)" using simple_extension_incljava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemmashows"inite_extensionKxs ys" assumes finite_extension_minimal[F (1)] assms-)byauto using finite_extension_incl_aux[OF assms(1)] assms(2) by (induct xs) (auto)
lemma( ring: assumes"K \ carrier R" and "x \ carrier R" "set xs \ carrier R" shows"finite_extension K (x # xs) = (\p. eval p x) ` carrier ((finite_extension K xs) [X])" using simple_extension_as_eval_img shows"
indomain) finite_extension_is_subring: assumes"subringjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 using assms simple_extension_is_subring by"(\x. x \ set xs \ (algebraic over K) x) \ finite_dimension K (finite_extension K xs)"
corollary (in
:subring shows [OF(1 proof [OF(1)OF() (2)] case Nil show java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4 case a )
Cons show ?case proof fix x assume"x \ set (a # xs)"
algebraic_mono [ subfieldE assms (2-) auto thenx\<in> finite_extension K (a # xs)" proofjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15 case with a have"x \ carrier R" by simp with xs have"x with xs have "x \ finite_extension K (x # xs)" using simple_extension_mem[OF finite_extension_is_subring[OF subring assumes"set\java.lang.StringIndexOutOfBoundsException: Index 124 out of bounds for length 124 with 1 show ?thesis finite_extension_finOF12]assms next case 2 with Cons have *: "x \ finite_extension K xs" by auto from a xs have"java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77 by (rule finite_extension_incl_aux[OF with * show\<open>Arithmetic of algebraic numbers\<close> qed qed qed over K iss itself
corollary (indomain) finite_extension_minimal: assumes"subring K R""set xs \ carrier R" shows =\Inter . ' using finite_extension_is_subring[OF assms] finite_extension_mem[OF
finite_extension_incl[OF subringE rule[ ]
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
corollary (indomainfixx :xjava.lang.NullPointerException assumes"subring K R"using()OF[OF()] shows"finite_extension K xs = finite_extension K ys" usingsimple_extension_mem(](1) java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
text\<open>The reciprocal is also true, but it is more subtle.\<close>
( domain: assumes"subfield K R"" [OF (1)[ assms()] "[x shows"(\x. x \ set xs \ (algebraic over K) x) \ subfield (finite_extension K xs) R" using simple_extension_is_subfield algebraic_mono assms
induct) autofinite_extension subring_props
proposition (in subfield_m_inv simple_extension assumes"subfield K R""set xs \ carrier R" shows"(\x. x \ set xs \ (algebraic over K) x) \ finite_dimension K (finite_extension K xs)" and[] z by proof - show 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 next show"(\x. x \ set xs \ (algebraic over K) x) \ finite_dimension K (finite_extension K xs)" using assms(2) proof (induct xs, simp add: finite_dimensionI[OF dimension_one[OF assms(1)]]) case (Cons x xs) hence"finite_dimension K (finite_extension K xs)" by auto moreoverhave"(algebraic over (finite_extension K xs)) x" using algebraic_mono[OF finite_extension_incl[OF subfieldE(3)[OF assms(1)]]] Cons(2-3) by auto moreoverhave"subfield (finite_extension K xs) R" using finite_extension_is_subfield[OF assms(1)] Cons(2-3) by auto ultimatelyshow ?case using telescopic_base_dim(1)[OF assms(1) _ _
finite_dimensionI[OF dimension_simple_extension, of _ x]] Cons(3) by auto qed qed
corollary (indomain) finite_extesion_mem_imp_algebraic: assumes"subfield K R""set xs \ carrier R" and "\x. x \ set xs \ (algebraic over K) x" shows"y \ finite_extension K xs \ (algebraic over K) y" using finite_dimension_imp_algebraic[OF assms(1)
finite_extension_is_subring[OF subfieldE(1)[OF assms(1)] assms(2)]]
finite_extension_finite_dimension(1)[OF assms(1-2)] assms(3) by auto
corollary (indomain) simple_extesion_mem_imp_algebraic: assumes"subfield K R""x \ carrier R" "(algebraic over K) x" shows"y \ simple_extension K x \ (algebraic over K) y" using finite_extesion_mem_imp_algebraic[OF assms(1), of "[ x ]"] assms(2-3) by auto
subsection \<open>Arithmetic of algebraic numbers\<close>
text\<open>We show that the set of algebraic numbers of a field
over a subfield K is a subfield itself.\<close>
lemma (in field) subfield_of_algebraics: assumes"subfield K R"shows"subfield { x \ carrier R. (algebraic over K) x } R" proof - let ?set_of_algebraics = "{ x \ carrier R. (algebraic over K) x }"
show ?thesis proof (rule subfieldI'[OF subringI]) show"?set_of_algebraics \ carrier R" and "\ \ ?set_of_algebraics" using algebraic_self[OF _ subringE(3)] subfieldE(1)[OF assms(1)] by auto next fix x y assume x: "x \ ?set_of_algebraics" and y: "y \ ?set_of_algebraics" have"\ x \ simple_extension K x" using subringE(5)[OF simple_extension_is_subring[OF subfieldE(1)]]
simple_extension_mem[OF subfieldE(1)] assms(1) x by auto thus"\ x \ ?set_of_algebraics" using simple_extesion_mem_imp_algebraic[OF assms] x by auto
have"x \ y \ finite_extension K [ x, y ]" and "x \ y \ finite_extension K [ x, y ]" using subringE(6-7)[OF finite_extension_is_subring[OF subfieldE(1)[OF assms(1)]], of "[ x, y ]"]
finite_extension_mem[OF subfieldE(1)[OF assms(1)], of "[ x, y ]"] x y by auto thus"x \ y \ ?set_of_algebraics" and "x \ y \ ?set_of_algebraics" using finite_extesion_mem_imp_algebraic[OF assms, of "[ x, y ]"] x y by auto next fix z assume z: "z \ ?set_of_algebraics - { \ }" have"inv z \ simple_extension K z" using subfield_m_inv(1)[of "simple_extension K z"]
simple_extension_is_subfield[OF assms, of z]
simple_extension_mem[OF subfieldE(1)] assms(1) z by auto thus"inv z \ ?set_of_algebraics" using simple_extesion_mem_imp_algebraic[OF assms] field_Units z by auto qed qed
end
¤ 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.0.21Bemerkung:
¤
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 ist noch experimentell.