theory Exact_Sequence importsElementary_Groups begin
ction \<open>Definitions\<close>
inductive exact_seq imports Solvable_Groups
unity " group_hom G2 f\java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
:
G Hh g carrier
inductive_simps exact_seq_end_iff [simp]: "exact_seq ([G,H], (g # q))"
inductive_simps exact_seq_cons_iff [simp]: java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 lemma assumes
( G1 f thus
(\<open>(\<open>indent=3 notation=\<open>mixfix exact_seq\<close>\<close>_ / \<longlongrightarrow>\<index> _)\<close> [1000, 60]).unity where" assume "\<noteq> 0" hence "i \<ge> Suc 0" by simp
subsection \<open>Basic Properties\<close>
lemma exact_seq_length1: "exact_seq t \ length (fst t) = Suc (length (snd t))" by (induct t rule: exact_seq.induct) auto
lemma exact_seq_length2: "exact_seq t \ length (snd t) \ Suc 0" by (induct t rule Suc_le_D. by ? using.IHsimp
lemma dropped_seq_is_exact_seqjava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 "exact_seq (G ) "i:natlength shows"exact_seq (drop i G, drop i F)"
proof- : " ( # ,)\\<^bsub>g1\<^esub> G2 \\<^bsub>g2\<^esub> G3" using that proof" ` carrierG1) kernelG2G3" case(nity f ?java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35 by add.) next case (extension ift and t
() assume"i = case( G1 G2 f) using exact_seq
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8 assume"i \ 0" hence "i \ Suc 0" by simp then"kk using Suc_le_D extension. thusandSuc qed
thus ) qed
lemma (2 [OF() auto assumes q shows" i =G! G! ( i) #(G S ( i)) " using exact_seq_length1[OF assms(1)] dropped_seq_is_exact_seq
exact_seq_length2(]assms(simpdrop_Suc
lemma exact_seq_imp_exact_hom le_imp_less_Sucprod()) "exact_seq (G1 #,)\\<^bsub>g1\<^esub> G2 \\<^bsub>g2\<^esub> G3" "g1 `(carrier G1) =k G2 G3 " proof exact_seq_imp_exact_hom "G !i"" (Suc i)""G ! (Suc(uci))" lq by uto have"(hd (tl (snd t))) ` (carrier (hd (tl (tl (fst t))))) =
kernel if" t"andjava.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 85 usingproof() proof ( case (unity G1G2) case (unity G1 G2 f) thenshow ? showcasebyauto next casecase( Gl Hh show group_hom_axioms_def qed with assms qedshowthesisusingaux_lemma assms
lemma assumes " "(F!( )) carrier(G!( (Suc )) kernel ( !(uci)! )( !i" proof - have exact_seq F "i using2[OF)byjava.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57 obtain where"drop i G = (G ! thenobtainl
a dropF=F! i # F!Suc#q" by (metis Cons_nth_drop_Suc Suc_less_eq " i F ( i #q"
le_eq_less_or_eq prodsel) thus ?thesis using[OFassms, of]assms2)
exact_seq_imp_exact_hom[of "G ! i""G ! (Suc i)""G ! (Suc (thus ?thesis qed
lemma exact_seq_imp_group_hom : assumes"exact_seq ((G # l, q)) \\<^bsub>g\<^esub> H" shows"group_hom G H g"
proof- have aux_lemma: "group_hom (hd (tl (fst t))) usingdropped_seq_is_exact_seq[OF assms(1), of ] (2)
sing proof (induction)
subsection then ?case auto next case (extension G l g then ?caseunfolding group_hom_axioms_def qed show ? "exact_seq ([G1][ by simp qedandinj_onG1
a: assumesexact_seq,F"and "( : )<length
- proofassumeG2 " G2"
length i F using assms2) [OFassmsauto thenobtain l q[ (1), " 0"]
drop =G! ) # java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50 and [ assms),of by simp by metis Suc_leI exact_seq_length1
le_eq_less_or_eq le_imp_less_Sucjava.lang.StringIndexOutOfBoundsException: Range [12, 2) out of bounds for length 33
? using dropped_seq_is_exact_seq " ( G2) carrier G3"
exact_seq_imp_group_hom G i G Suc) lqFi" bybysimp qed
subsectionsolvableand :" "byauto
lemma exact_seq_solvable_imp :
exact_seq][)\<\^bsub\<^esub> G2 \<longlongrightarrow>\<^bsub>g2\<^esub> G3" andg1carrier and"g2 ` (carrier G2) = carrier G3" showsG2 proof - assume G2 [OF g2 assms have"group_hom G1 G2exact_seq_imp_exact_hom[OF assms(1) G3 auto using java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 hence"solvable G1" using"inj_on g1 (carrier )"
moreover" G2G2 G3 g2" using exact_seq_imp_group_hom_arbitrary[OF assms(1), ofshows( G1\<and> (solvable G3) \<longleftrightarrow> solvable G2"
java.lang.StringIndexOutOfBoundsException: Range [62, 21) out of bounds for length 21 using.surj_hom_imp_solvable G2 g2assmsG2 simp ultimatelyassumesCB] qed
lemma exact_seq_solvable_recip : assumes"exact_seq ([G1],[]) \\<^bsub>g1\<^esub> G2 \\<^bsub>g2\<^esub> G3"
java.lang.StringIndexOutOfBoundsException: Range [29, 2) out of bounds for length 29 and"g2 ` (carrier G2) = carrier G3" shows"(solvable G1) \ (solvable G3) \ solvable G2" proof - assume"(solvable G1) \ (solvable G3)" hence (auto : group_homimage_from_trivial_grouptrivial_group_def hom_one
g1G1" g2 group_hom java.lang.StringIndexOutOfBoundsException: Range [57, 56) out of bounds for length 60
[ () " 0" apply( simp hom_def) showdone using[ g2()java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
[OF1 G1 by qed
proposition
exact_seq_imp_triviality: and"inj_on g1 (carrier G1)" and
b (, lifting. bij_betw_def ) using exact_seq_solvable_recip
: "exact_seq ([ED,,,],[k,gf)java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 proof assume C: ex
assms inj_on apply (x,) apply (simp "ij\java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41 done f GCf with Cshow
auto.image_from_trivial_group) apply (auto simp by add group_hom_axioms_def done next assume ?rhs with assms show"trivial_group C" applysimp:trivial_group_def by( group_hom.trivial_hom_iff group_hom_def qed
lemma exact_seq_imp_triviality: 'where"h by (metis (no_types, lifting .hh ) " hjava.lang.StringIndexOutOfBoundsException: Index 90 out of bounds for length 90
lemmae: "exact_seq homgf: ? \ hom G (C \\ D)"
u ex add
lemma exact_sequence_sum_lemmaij assumes( simp homij
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9 and\<open>i \<in> hom A G\<close> \<open>h' \<in> hom C A\<close> have "x \<otimes>\<^bsub>G\<^esub> inv\<^bsub>G\<^esub>(i(h'(f x))) \<in> kernel G C f"' ) and gjk: "\x. x \ carrier B \ g(j x) = k x" shows"( have "i (h' (f x)) \\<^bsub>G\<^esub> (x \\<^bsub>G\<^esub> inv\<^bsub>G\<^esub> i (h' (f x))) = x \\<^bsub>G\<^esub> (i (h' (f x)) \\<^bsub>G\<^esub> inv\<^bsub>G\<^esub> i (h' (f x)))"
(is" by java.lang.StringIndexOutOfBoundsException: Index 110 out of bounds for length 110 proofrule interpret comm_group G by (rule <open>h' \<in> hom C A\<close> hom_in_carrier x by fastforce interpret" \ (\(x, y). i x \\<^bsub>G\<^esub> j y) ` (carrier A \ carrier B)" using ex by (simp addusingapply( simp)
: G g using ex rule_tac bexI) interpret i: meson using ex by (simp add interpret j: group_hom B G j using ex by (simp apply( group [ f java.lang.NullPointerException have: kernel carrier group "i using ex by (auto simp metis . fih) then'h\java.lang.StringIndexOutOfBoundsException: Index 85 out of bounds for length 85 and java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 using h by (\openPorted
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 unfolding case_prod_unfold apply hom_group_mult using ex simp_allunfolded) show homgf: "?gf \ hom G (C \\ D)" by add show"applysimp: epi_iff_subset group_homintrogroup_hom.kernel_to_trivial_group group_hom_axioms.introjava.lang.StringIndexOutOfBoundsException: Index 107 out of bounds for length 107
short_exact_sequence_iff
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9 assumex xjava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
( exI
withthat add singleton_group_def byhave" { have'( )\ by (meson \<open>h' \<in> hom C A\<close> x f.hom_closed hom_in_carrier i.hom_closed inv_closed m_lcomm) alsohave"\ = x" using\<open>h' \<in> hom C A\<close> hom_in_carrier x by fastforce add group_hom_axioms_def) finally java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 using x y apply (clarsimp
java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42 applyrule_tac java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41 by ( \<open>h' \<in> hom C A\<close> f.hom_closed hom_in_carrier) apply imp show"(\z. (f z, g z)) \ (\(x, y). i x \\<^bsub>G\<^esub> j y) \ Group.iso (A \\ B) (C \\ D)" apply (rule group.iso_eq (, lifting.image_from_trivial_group.java.lang.StringIndexOutOfBoundsException: Index 84 out of bounds for length 84 using apply (auto simp:java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
pply . f. fih) applyandKB 1:"H\java.lang.StringIndexOutOfBoundsException: Index 103 out of bounds for length 103 done qed
subsection \<open>Splitting lemmas and Short exact sequences\<close>: KB text\<open>Ported from HOL Light by LCP\<close>
lemma short_exact_sequenceD: " A BCf g " ([,,C,[,]) using assms apply (auto simp: short_exact_sequence_def group_hom_def group_hom_axioms_def) apply( addepi_iff_subset group_hom group_hom. group_hom_axioms) by (metis (no_types, liftinghavegroup" B" groupC and:" BCg ` by (auto simp: group_hom_axioms_def)
hom_one mem_Collect_eq trivial_group_def
lemma short_exact_sequence_iff have" H B "java.lang.StringIndexOutOfBoundsException: Index 129 out of bounds for length 129
bmetis" ( B ) ( C(`carrier B)" if"exact_seq (metisassms3) fABHsubgroupE1) BCimg_is_subgroup .set_mult_ker_hom(2) ker_eq subgroup.carrier_subgroup_generated_subgroup)
- show ?thesis simp group_hom_axioms_def unfolding short_exact_sequence_def proof exIjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27 have"kernel A (singleton_group \\<^bsub>A\<^esub>) (\x. \\<^bsub>A\<^esub>) = f ` carrier B" using that by (simp that.Hcarrier_subgroup_generated_subset moreover CBg \one using that group_hom.inj_iff_trivial_ker mon_def by fastforce ultimatelyshow"exact_seq ([singleton_group (one A), A, B, C, singleton_group (one C)], [\x. \\<^bsub>A\<^esub>, f, g, id])" using that by (simp add: group_hom_def group_hom_axioms_def group.id_hom_singleton) qed auto qed thenshow ?thesis usingby blast qed
lemma: assumesqed showsg using assms"" gKBC byauto applysimp by (metis (no_types, lifting) group_hom.image_from_trivial_group group_hom.iso_iff
group_hom.kernel_to_trivial_group group_hom.trivial_ker_imp_inj group_hom_axioms.intro group_hom_def hom_carrier inj_on_one_iff')
lemma splitting_sublemma_gen:
a exshort_exact_sequence "and:"`carrier
subgroup 1H shows"g \ iso (subgroup_generated B K) (subgroup_generated C(g ` carrier B))" proof - interpret KB: subgroup K B proof interpretusing sh [ex using java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20 interpreth C= C( arrier
ex add ) have"group A""group B""group applyjava.lang.StringIndexOutOfBoundsException: Range [14, 10) out of bounds for length 14 using short_exact_sequenceD ex
: kernel using ex byjava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 thenassumes [,,A,gf) and f:"f' \ hom B A" and iso: "(f' \ f) \ iso A A" usingby simp: group_hom) show ?thesis unfoldingiso_iff proof (intro conjI) showg\<in> hom (subgroup_generated B K) (subgroup_generated C(g ` carrier B))" by( ker_eq \<open>subgroup K B\<close> eq gBC.hom_between_subgroups gBC.set_mult_ker_hom(2) order_refl subgroup.subset) show"g ` carrier (subgroup_generated B K) = carrier (subgroup_generatedgroup_hom_axioms_def) by (metis assms(3) eq fAB.H "group A"" B"" : " B Cg=f A" interpret gKBC: group_hom "subgroup_generated have :"f Ajava.lang.StringIndexOutOfBoundsException: Index 149 out of bounds for length 149 apply (auto simp: group_hom_def group_hom_axioms_def interpret': B Af' by (simp add: using assms by (auto: group_hom_def)
x \<one>\<^bsub>B\<^esub>"
x:" carrier (subgroup_generated B K)" and "g x = \\<^bsub>C\<^esub>" for xin (subgroup_generated B ) "g x =x = \<one>\<^bsub>C\<^esub>" for x proof -java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7 have:"x using thatjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22 moreoverhave"x \ H"
fimauto ultimately C by 1 Int_iff KB subsetCE qed showusing ( simp'.subgroup_kernel) using"*" gKBC qed qed
lemma splitting_sublemma: assumes" ([C, g,)"and f' "f \ hom B A" and"subgroupK B"and1 " K \ {one B}" and eq: "set_mult B H K = carrier B" shows"f \ iso A (subgroup_generated B H)" (is ?f)
g proof - show ?f using [OF] apply (clarsimp simp add"f \ iso A (subgroup_generated B H)" "g \ iso (subgroup_generated B K) C" using fim group.iso_onto_image by blast have"C = subgroup_generated C(g ` carrier B)" using short_exact_sequenceD [OF ex] apply simp by (metis epi_iff_subset group gBCgroup_homBCg usingby ( addgroup_hom_defgroup_hom_axioms_def using [OF by (metis "1"\<open>subgroup K B\<close> eq fim splitting_sublemma_gen)usingby(auto: group_hom_def) qedusingby (uto simp introgroup [OF
lemma that [OF 'iso surj) assumes ex: "exact_seq ([C,B,A], [g,f]java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 and injf: "inj_on f (carrier A)"and surj K java.lang.NullPointerException obtains "\ iso A (subgroup_generated B H)""g \ iso (subgroup_generated B K) C" proof - interpret gBC: group_hom B C g using ex by short_exact_sequenceD[ ex by(simp : group_hom_axioms_def have"group A" [OF] by( add group_hom_axioms_def usingexsimp group_hom_axioms_def) thenhave" \bsub>B\<^esub> g' ` carrier C = carrier B" using" A"groupgroup interpretB = carrier" using assms by (autousinggroup_semidirect_sum_ker_image[f g g CCB]short_exact_sequenceDOF ex] let ?H = "f ` carrier A" letK kernel f show thesis proof show"?H \ B" by (simp add: gBC.normal_kernel flip "kernel B C \ (g' ` carrier C) \ {\\<^bsub>B\<^esub>}" "(kernel B C g) <#>\<^bsub>B\<^esub> (g' ` carrier C) = carrier B" show"?K \ B" by (rule f'by (auto simp: *) show? <> ?K\<>java.lang.StringIndexOutOfBoundsException: Index 104 out of bounds for length 104
* byjava.lang.StringIndexOutOfBoundsException: Range [21, 22) out of bounds for length 21 show"f \ Group.iso A (subgroup_generated B ?H)" using ex by (simp add: by( add .His_group gBCgroup_homgroup_hom_axioms_def have C: "C = subgroup_generated C(g ` carrier B)"
surj simp: gBC) show"g \ Group.iso (subgroup_generated B ?K) C" apply (subst C)
splitting_sublemma_gen[ exrefl] using * by (auto ex short_exact_sequenceB f g' g hom C B" and gg': "\z. z \ carrier C \ g(g' z) = z"in CBandgg java.lang.StringIndexOutOfBoundsException: Index 141 out of bounds for length 141 qed qed
lemma - assumes ex: " *: " A"" B"groupC" and inv: "(\x. x \ carrier A \ f'(f x) = x)" and injf: "inj_on f (carrier A)"andby simp_all'java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40 obtains H K where"H \ B" "K \ B" "H \ K \ {one B}" "set_mult B H K = carrier B" "f \ iso A (subgroup_generated B H)" "g \ iso (subgroup_generated B K) C" proof interpret fAB: group_hom A B f using ex by simp interpret gBC: group_hom B C g using ex by (simp add: group_hom_def group_hom_axioms_def) have"group A""group B""group C"and kerg: "kernel B C g = f ` carrier A" using ex by (auto simp: group_hom_def group_hom_axioms_def) have iso: "f' \ f \ Group.iso A A" using ex by (auto simp: inv intro: group.iso_eq [OF \<open>group A\<close> id_iso]) show thesis by (metis that splitting_lemma_left_gen [OF ex f' iso injf surj]) qed
lemma splitting_lemma_right_gen: assumes ex: "short_exact_sequence C B A g f"and g': "g'\<in> hom C B" and iso: "(g \<circ> g') \<in> iso C C" obtains H K where"H \ B" "subgroup K B" "H \ K \ {one B}" "set_mult B H K = carrier B" "f \ iso A (subgroup_generated B H)" "g \ iso (subgroup_generated B K) C" proof interpret fAB: group_hom A B f using short_exact_sequenceD [OF ex] by (simp add: group_hom_def group_hom_axioms_def) interpret gBC: group_hom B C g using short_exact_sequenceD [OF ex] by (simp add: group_hom_def group_hom_axioms_def) have *: "f ` carrier A \ g' ` carrier C = {\\<^bsub>B\<^esub>}" "f ` carrier A <#>\<^bsub>B\<^esub> g' ` carrier C = carrier B" "group A""group B""group C" "kernel B C g = f ` carrier A" using group_semidirect_sum_ker_image [of g g' C C B] short_exact_sequenceD [OF ex] by (simp_all add: g' iso group_hom_def) show"kernel B C g \ B" by (simp add: gBC.normal_kernel) show"(kernel B C g) \ (g' ` carrier C) \ {\\<^bsub>B\<^esub>}" "(kernel B C g) <#>\<^bsub>B\<^esub> (g' ` carrier C) = carrier B" by (auto simp: *) show"f \ Group.iso A (subgroup_generated B (kernel B C g))" by (metis "*"(6) fAB.group_hom_axioms group.iso_onto_image group_hom_def short_exact_sequenceD [OF ex]) show"subgroup (g' ` carrier C) B" using splitting_sublemma by (simp add: fAB.H.is_group g' gBC.is_group group_hom.img_is_subgroup group_hom_axioms_def group_hom_def) thenshow"g \ Group.iso (subgroup_generated B (g' ` carrier C)) C" by (metis (no_types, lifting) iso_iff fAB.H.hom_from_subgroup_generated gBC.homh image_comp inj_on_imageI iso subgroup.carrier_subgroup_generated_subgroup) qed
lemma splitting_lemma_right: assumes ex: "short_exact_sequence C B A g f"and g': "g'\<in> hom C B" and gg': "\<And>z. z \<in> carrier C \<Longrightarrow> g(g' z) = z" obtains H K where"H \ B" "subgroup K B" "H \ K \ {one B}" "set_mult B H K = carrier B" "f \ iso A (subgroup_generated B H)" "g \ iso (subgroup_generated B K) C" proof - have *: "group A""group B""group C" using group_semidirect_sum_ker_image [of g g' C C B] short_exact_sequenceD [OF ex] by (simp_all add: g' group_hom_def) show thesis apply (rule splitting_lemma_right_gen [OF ex g' group.iso_eq [OF _ id_iso]]) using * apply (auto simp: gg' intro: that) done 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 ist noch experimentell.