author | wenzelm |
Tue, 28 Jan 2025 11:29:42 +0100 | |
changeset 82003 | abb40413c1e7 |
parent 77406 | c2013f617a70 |
permissions | -rw-r--r-- |
77406
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
1 |
(* Title: Simple Groups |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
2 |
Author: Jakob von Raumer, Karlsruhe Institute of Technology |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
3 |
Maintainer: Jakob von Raumer <jakob.raumer@student.kit.edu> |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
4 |
*) |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
5 |
|
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
6 |
theory SimpleGroups |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
7 |
imports Coset "HOL-Computational_Algebra.Primes" |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
8 |
begin |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
9 |
|
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
10 |
section \<open>Simple Groups\<close> |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
11 |
|
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
12 |
locale simple_group = group + |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
13 |
assumes order_gt_one: "order G > 1" |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
14 |
assumes no_real_normal_subgroup: "\<And>H. H \<lhd> G \<Longrightarrow> (H = carrier G \<or> H = {\<one>})" |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
15 |
|
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
16 |
lemma (in simple_group) is_simple_group: "simple_group G" |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
17 |
by (rule simple_group_axioms) |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
18 |
|
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
19 |
text \<open>Simple groups are non-trivial.\<close> |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
20 |
|
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
21 |
lemma (in simple_group) simple_not_triv: "carrier G \<noteq> {\<one>}" |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
22 |
using order_gt_one unfolding order_def by auto |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
23 |
|
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
24 |
text \<open>Every group of prime order is simple\<close> |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
25 |
|
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
26 |
lemma (in group) prime_order_simple: |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
27 |
assumes prime: "prime (order G)" |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
28 |
shows "simple_group G" |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
29 |
proof |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
30 |
from prime show "1 < order G" |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
31 |
unfolding prime_nat_iff by auto |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
32 |
next |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
33 |
fix H |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
34 |
assume "H \<lhd> G" |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
35 |
hence HG: "subgroup H G" unfolding normal_def by simp |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
36 |
hence "card H dvd order G" |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
37 |
by (metis dvd_triv_right lagrange) |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
38 |
with prime have "card H = 1 \<or> card H = order G" |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
39 |
unfolding prime_nat_iff by simp |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
40 |
thus "H = carrier G \<or> H = {\<one>}" |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
41 |
proof |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
42 |
assume "card H = 1" |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
43 |
moreover from HG have "\<one> \<in> H" by (metis subgroup.one_closed) |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
44 |
ultimately show ?thesis by (auto simp: card_Suc_eq) |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
45 |
next |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
46 |
assume "card H = order G" |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
47 |
moreover from HG have "H \<subseteq> carrier G" unfolding subgroup_def by simp |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
48 |
moreover from prime have "finite (carrier G)" |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
49 |
using order_gt_0_iff_finite by force |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
50 |
ultimately show ?thesis |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
51 |
unfolding order_def by (metis card_subset_eq) |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
52 |
qed |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
53 |
qed |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
54 |
|
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
55 |
text \<open>Being simple is a property that is preserved by isomorphisms.\<close> |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
56 |
|
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
57 |
lemma (in simple_group) iso_simple: |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
58 |
assumes H: "group H" |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
59 |
assumes iso: "\<phi> \<in> iso G H" |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
60 |
shows "simple_group H" |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
61 |
unfolding simple_group_def simple_group_axioms_def |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
62 |
proof (intro conjI strip H) |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
63 |
from iso have "order G = order H" unfolding iso_def order_def using bij_betw_same_card by auto |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
64 |
with order_gt_one show "1 < order H" by simp |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
65 |
next |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
66 |
have inv_iso: "(inv_into (carrier G) \<phi>) \<in> iso H G" using iso |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
67 |
by (simp add: iso_set_sym) |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
68 |
fix N |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
69 |
assume NH: "N \<lhd> H" |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
70 |
then interpret Nnormal: normal N H by simp |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
71 |
define M where "M = (inv_into (carrier G) \<phi>) ` N" |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
72 |
hence MG: "M \<lhd> G" |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
73 |
using inv_iso NH H by (metis is_group iso_normal_subgroup) |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
74 |
have surj: "\<phi> ` carrier G = carrier H" |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
75 |
using iso unfolding iso_def bij_betw_def by simp |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
76 |
hence MN: "\<phi> ` M = N" |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
77 |
unfolding M_def using Nnormal.subset image_inv_into_cancel by metis |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
78 |
then have "N = {\<one>\<^bsub>H\<^esub>}" if "M = {\<one>}" |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
79 |
using Nnormal.subgroup_axioms subgroup.one_closed that by force |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
80 |
then show "N = carrier H \<or> N = {\<one>\<^bsub>H\<^esub>}" |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
81 |
by (metis MG MN no_real_normal_subgroup surj) |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
82 |
qed |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
83 |
|
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
84 |
text \<open>As a corollary of this: Factorizing a group by itself does not result in a simple group!\<close> |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
85 |
|
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
86 |
lemma (in group) self_factor_not_simple: "\<not> simple_group (G Mod (carrier G))" |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
87 |
proof |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
88 |
assume assm: "simple_group (G Mod (carrier G))" |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
89 |
with self_factor_iso simple_group.iso_simple have "simple_group (G\<lparr>carrier := {\<one>}\<rparr>)" |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
90 |
using subgroup_imp_group triv_subgroup by blast |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
91 |
thus False |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
92 |
using simple_group.simple_not_triv by force |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
93 |
qed |
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
94 |
|
c2013f617a70
Importation of basic group theory results, due to Jakob von Raumer from his AFP entry Jordan-Hölder Theorem
paulson <lp15@cam.ac.uk>
parents:
diff
changeset
|
95 |
end |