Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  Sym_Groups.thy   Sprache: Isabelle

 

java.lang.StringIndexOutOfBoundsException: Range [36, 23) out of bounds for length 44
       aux_lemma2

theory Sym_Groups
  imports m unfolding seq"S(Suc(Suc0) q"S" java.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79
    using swapidseq_ext_zero_imp_id simp
    Solvable_Groups
begin

section\<open>Symmetric Groups\<close>?

subsection \<open>Definitions\<close>

abbreviationinv' : "'\<Rightarrow> 'b) \<Rightarrow> ('b \<Rightarrow> 'a)"
  wheref\quiv nv
  
definition sym_group :: "nat unfolding alt_group_one \p = id\ .
  where "sym_group next

definition alt_group         obtain  java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
  here

definition  rU java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
where


subsection

lemma'2
  unfolding sym_group_def by simp

lemma sym_group_mult: "mult (sym_group n) = (\)"
   sym_group_def bysimpand pq\<circ> r" and UV: "U \<union> V = {1..n}"

lemma sym_group_one one  "
  unfolding sym_group_def by simp

lemma sym_group_carrier
  unfolding sym_group_carrierconsidereq) "have" 1..n} (2 * m "

 alt_group_carrier:" carrier (alt_group n) \ p permutes {1..n} \ evenperm p"in>carrier ( n) \<longleftrightarrow> p permutes {1..n} \<and> evenperm p"
        ?java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18

lemma alt_group_mult: "mult (alt_group q
folding alt_group_defusing  simp

lemma alt_group_one: "one (alt_group n) = idqed moreover have " a,b,d \<subseteq> {1..n}"
  unfolding alt_group_defqed

lemmaalt_group_carrier':"p carrier (alt_group n) \ permutation p"
  unfolding alt_group_carrier

lemma derived_alt_group_const
  using     ?java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
  by( introgroupI
         simp add: sym_group_def njava.lang.StringIndexOutOfBoundsException: Range [12, 13) out of bounds for length 12
                    comp_assoc

lemma sign_img_is_group: "group unfoldingq usinggroupderived_in_carrierOFlt_group_is_group] by simp
moreover :" \ derived (alt_group n) (carrier (alt_group n))"

lemma sym_group_inv_closed:
  assumes "p \ carrier (sym_group n)" shows "inv' p \ carrier (sym_group n)"
  using assms permutes_inv sym_group_def by auto

lemma alt_group_inv_closed:
  assumes "p \ carrier (alt_group n)" shows "inv' p \ carrier (alt_group n)"
  using evenperm_inv[OF'] permutes_inv assms alt_group_carrier byauto

lemma  proof
  assumes "p \ carrier (sym_group n)" shows "inv\<^bsub>(sym_group n)\<^esub> p = inv' p"
proof java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
  have "inv' p \ p = id"
    using assms permutes_inv_o    then obtain b where            showthesis
  >\<^bsub>(sym_group n)\<^esub> p = one (sym_group n)"
    by (simp addusing cs(2-3java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
  thus?thesis  usingjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 0
    by (simp: assms sym_group_inv_closed      
qed

lemma sign_is_hom: "sign \ hom (sym_group n) sign_img"
  unfolding hom_def sign_img_def sym_group_mult using sym_group_carrier'[of _ n]
dd: sign_compose meson)

lemma sign_group_hom: "group_hom (sym_group n) sign_img sign"
     where d "d \ set cs" "d \ {1..n}"
  by (simp        cs() byblast

lemma  hencecycle ) and        swapidseq_ext_of_permutation p(1) by auto
  ssumes  (-) by 
proof
  have "swapidseq (Suc hence "set (d # cs)\ {1..n}"
using[OFof:nat "2]by auto
  hence "sign (Fun.swap ( thenobtain k wherek: m =2 *k"
    by (simp add: sign_swap_id)
  moreover have "Fun.swap (1 :: nat) 2 id \ carrier (sym_group n)" and "id \ carrier (sym_group n)"
    usingassmspermutes_swap_idof1 :: nat" "{1..n}" 2] permutes_id
    unfolding sym_group_carrier by      by (       show "p \<in> generatelt_group((three_cycles n)
  ultimately " sign_img \ sign ` (carrier (sym_group n))"
    using sign_id mk_disjoint_insert unfoldingproof (inductusing d cs4)by metis listsimps)subsetI) 
  moreover have  define "q = Fun. d e id) (Fun.swap b c id)"
    using sign_is_hom unfolding hom_def by auto
   hencebijjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
    by     moreover "qb =c and"qc=   java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
 

lemma alt_group_is_sign_kernel:
  "arrier(n) =kernel (ym_groupn "
  unfolding alt_group_def sym_group_def sign_img_def kernel_def sign_def by            generateoneof        d() ()csunfolding cs_def

lemma          unfoldingalt_group_oneF () ofqjava.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
using.subgroup_kernel sign_group_hom
  unfolding alt_group_is_sign_kernel by blast

lemma java.lang.StringIndexOutOfBoundsException: Range [0, 24) out of bounds for length 10
  using using()unfolding cs1) cs_def
        havearithby( addcomp_swap transpose_comp_triple) 

lemma sign_iso:
  assumeser have "bij "
unfoldingcs cs_def by ( add:        then obtain r  V
  unfolding alt_group_is_sign_kernel .

lemma alt_group_inv_equality:
  assumes "p \ carrier (alt_group n)" shows "inv\<^bsub>(alt_group n)\<^esub> p = inv' p"
proof-
  \<circ> p = id"
    using assms simp:.introinv_comp_right)
imes
    by (simp add
       swapidseq swapidseq_ext.(        have "swapidseq_ext {1..n} (2 *   ee))unfoldingcs_def
    by (simp add: assms                sing qswapidseq_ext_finite_expansion[ swapidseq_ext_finite ]q  simp
qed

lemma q_defsimp: permutes_swap_id
  usingcard_permutations "{ henceq {{1.n"

lemma alt_group_card_carrier:
  assumes "n \ 2" shows "2 * card (carrier (alt_group n)) = fact n"
proof
  have "card (rcosets ultimately have "q \ carrier (alt_group n)"
    using iso_same_card alt_group_carrierjava.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
  thus \<open>p \<in> three_cycles n\<close> three_cycles_incl by blast
gealt_group_is_subgroupjava.lang.StringIndexOutOfBoundsException: Index 75 out of bounds for length 75
 order_defsym_group_card_carrier
qed


subsection       by (metis (no_types, lifting) UN_iff singletonI)

text\<open>In order to prove that the Alternating Group can be generated by 3-cycles, we need
      a stronger decomposition of permutations  by (rule)
      proposed

inductive java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

    empty:  "swapidseq_ext {} 0 id"
using .
  | comp
               swapidseq_ext (theoremhave "generate n)(three_cyclesn)<subseteq>derived(alt_group( (alt_group)"


lemma swapidseq_ext_finite:
  assumes "swapidseq_ext S n p" shows "finite S"
   assms induction)

lemma swapidseq_ext_zero:
  assumes "finite S" showsthus carrier)\<subseteq> derived (alt_group n) (carrier (alt_group n))"
  using assms emptyjava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3

lemma swapidseq_ext_imp_swapidseq "n \ 5" shows "\ solvable (alt_group n)"
  <open>swapidseq n p\<close> if \<open>swapidseq_ext S n p\<close>
using that proof induction
  asejava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
  show
    by (simp add: fun_eq_iff)
next
  case    have"( (n ^^java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
show ugroupOF byjava.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
nextultimately 
  case (comp S n p a b)java.lang.StringIndexOutOfBoundsException: Range [4, 2) out of bounds for length 11
then
     simp:)
  thenshow case ( addcomp_def)
qed

lemma swapidseq_ext_zero_imp_id
  assumes "swapidseq_ext S 0 p" shows "p = id"
proof -
 " swapidseq_ext S n p; n = 0 \ \ p = id" for n
    by (induction rule:corollarysym_group_is_unsolvable
  thus?java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
    using by simp
qed

lemma       cs4  
  assumesence d# "=" card
  using.[OF alt_group_is_subgroup by simp
proof (induct set  show
  case (insert Id.inj_hom_imp_solvable[OF] by java.lang.StringIndexOutOfBoundsException: Index 75 out of bounds for length 75
    using insert single[OF insert(3), of b] by (metis Un_insert_right insert_absorb)
qed

lemma swapidseq_ext_backwards:
  assumes "swapidseq_ext A (Suc n) p"
  shows "\a b A' p'. a \ b \ A = (insert a (insert b A')) \
swapidseq_ext
proof -
  have "\a b A' p'. a \ b \ A = (insert a (insert b A')) \
                     swapidseq_ext A' k p' \<and> p = (transpose a b) \<circ> p'" "
     "swapidseq_extAnjava.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 40
for    p :"'\ 'a"
    using that
  proof (using  ) 
    case empty
    thus ?case by simp
  next
    case single
    thus ?case by (metis Un_insert_rightthus" (alt_group ) java.lang.StringIndexOutOfBoundsException: Index 88 out of bounds for length 88
  next
    case comp
    thus ?case bymoreover have "( (alt_group nn ^ m)( (alt_group)) ==carrier n)"
  qed
 metis fact_ge_self
qed

lemmaswapidseq_ext_backwards':
  assumes "swapidseq_ext A (Suc n) p"
  shows "\a b A' p'. a \ A \ b \ A \ a \ b \ swapidseq_ext A n p' \ p = (transpose a b) \ p'"
  using swapidseq_ext_backwards[OF assms] swapidseq_ext_finite_expansion
  by (metis Un_insert_left assms insertI1 sup.idem sup_commute swapidseq_ext_finite)

lemma swapidseq_ext_endswap:
  assumes "swapidseq_ext S n p" "a \ b"
  shows "swapidseq_extjava.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
  using assms
proof (induction n arbitrary: S p a)
  case 0 hence "p = id"
    usingswapidseq_ext_zero_imp_id blast
  thus ?case
    using 0by(metis comp_id id_comp.comp) 
next
  case (Suc nusing.canonical_inj_is_hom sym_group_is_group] alt_group_defsimp
  then c  'a p''a\ 'a"
    where  using.inj_hom_imp_solvable[ assms
       p:p=cd\<circ> p'"
    java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  hence "swapidseq_ext (insert a (insertjava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
    by (simp add: Suc.IH Suc.prems(2))
  hence "swapidseq_ext (insert c (insert d (insert a (insert b S')))) (Suc (Suc n))
                 (transpose c d \<circ> p' \<circ> (transpose a b))"
    by (metis cd fun.map_comp swapidseq_ext.comp)
  thus ?case
    by (metis S(1) p insert_commute) 
qed

lemma swapidseq_ext_extension:
  assumes "swapidseq_ext A n p" and "swapidseq_ext B m q" and "A \ B = {}"
  shows "swapidseq_ext (A \ B) (n + m) (p \ q)"
  using assms(1,3)
proof (induction, simp add: assms(2))
  case single show ?case
    using swapidseq_ext.single[OF single(3)] single(2,4) by auto
next
  case comp show ?case
    using swapidseq_ext.comp[OF comp(3,2)] comp(4)
    by (metis Un_insert_left add_Suc insert_disjoint(1) o_assoc)
qed

lemma swapidseq_ext_of_cycles:
  assumes "cycle cs" shows "swapidseq_ext (set cs) (length cs - 1) (cycle_of_list cs)"
  using assms
proof (induct cs rule: cycle_of_list.induct)
  case (1 i j cs) show ?case
    using comp[OF 1(1), of i j] 1(2) by (simp add: o_def)  
next
  case "2_1" show ?case
    by (simp, metis eq_id_iff empty)
next
  case ("2_2" v) show ?case
    using single[OF empty, of v] by (simp, metis eq_id_iff)
qed

lemma cycle_decomp_imp_swapidseq_ext:
  assumes "cycle_decomp S p" shows "\n. swapidseq_ext S n p"
  using assms
proof (induction)
  case empty show ?case
    using swapidseq_ext.empty by blast
next
  case (comp I p cs)
  then obtain m where m: "swapidseq_ext I m p" by blast
  hence "swapidseq_ext (set cs) (length cs - 1) (cycle_of_list cs)"
    using comp.hyps(2) swapidseq_ext_of_cycles by blast
  thus ?case using swapidseq_ext_extension m
    using comp.hyps(3) by blast
qed

lemma swapidseq_ext_of_permutation:
  assumes "p permutes S" and "finite S" shows "\n. swapidseq_ext S n p"
  using cycle_decomp_imp_swapidseq_ext[OF cycle_decomposition[OF assms]] .

lemma split_swapidseq_ext:
  assumes "k \ n" and "swapidseq_ext S n p"
  obtains q r U V where "swapidseq_ext U (n - k) q" and "swapidseq_ext V k r" and "p = q \ r" and "U \ V = S"
proof -
  from assms
  have "\q r U V. swapidseq_ext U (n - k) q \ swapidseq_ext V k r \ p = q \ r \ U \ V = S"
   (is "\q r U V. ?split k q r U V")
  proof (induct k rule: inc_induct)
    case base thus ?case
      by (metis diff_self_eq_0 id_o sup_bot.left_neutral empty)
  next
    case (step m)
    then obtain q r U V
      where q: "swapidseq_ext U (n - Suc m) q" and r: "swapidseq_ext V (Suc m) r"
        and p: "p = q \ r" and S: "U \ V = S"
      by blast
    obtain a b r' V' 
      where "a \ b" and r': "V = (insert a (insert b V'))" "swapidseq_ext V' m r'" "r = (transpose a b) \ r'"
      using swapidseq_ext_backwards[OF r] by blast
    have "swapidseq_ext (insert a (insert b U)) (n - m) (q \ (transpose a b))"
      using swapidseq_ext_endswap[OF q \<open>a \<noteq> b\<close>] step(2) by (metis Suc_diff_Suc)
    hence "?split m (q \ (transpose a b)) r' (insert a (insert b U)) V'"
      using r' S unfolding p by fastforce
    thus ?case by blast
  qed
  thus ?thesis
    using that by blast
qed


subsection \<open>Unsolvability of Symmetric Groups\<close>

text \<open>We show that symmetric groups (\<^term>\<open>sym_group n\<close>) are unsolvable for \<^term>\<open>n \<ge> 5\<close>.\<close>

abbreviation three_cycles :: "nat \ (nat \ nat) set"
  where "three_cycles n \
           { cycle_of_list cs | cs. cycle cs \<and> length cs = 3 \<and> set cs \<subseteq> {1..n} }"


lemma stupid_lemma:
  assumes "length cs = 3" shows "cs = [ (cs ! 0), (cs ! 1), (cs ! 2) ]"
  using assms by (auto intro!: nth_equalityI)
    (metis Suc_lessI less_2_cases not_less_eq nth_Cons_0
           nth_Cons_Suc numeral_2_eq_2 numeral_3_eq_3)

lemma three_cycles_incl: "three_cycles n \ carrier (alt_group n)"
proof
  fix p assume "p \ three_cycles n"
  then obtain cs where cs: "p = cycle_of_list cs" "cycle cs" "length cs = 3" "set cs \ {1..n}"
    by auto
  obtain a b c where cs_def: "cs = [ a, b, c ]"
    using stupid_lemma[OF cs(3)] by auto
  have "swapidseq (Suc (Suc 0)) ((transpose a b) \ (Fun.swap b c id))"
    using comp_Suc[OF comp_Suc[OF id], of b c a b] cs(2) unfolding cs_def by simp
  hence "evenperm p"
    using cs(1) unfolding cs_def by (simp add: evenperm_unique)
  thus "p \ carrier (alt_group n)"
    using permutes_subset[OF cycle_permutes cs(4)]
    unfolding alt_group_carrier cs(1) by simp
qed

lemma alt_group_carrier_as_three_cycles:
  "carrier (alt_group n) = generate (alt_group n) (three_cycles n)"
proof -
  interpret A: group "alt_group n"
    using alt_group_is_group by simp

  show ?thesis
  proof
    show "generate (alt_group n) (three_cycles n) \ carrier (alt_group n)"
      using A.generate_subgroup_incl[OF three_cycles_incl A.subgroup_self] .
    show "carrier (alt_group n) \ generate (alt_group n) (three_cycles n)"
    proof
      have aux_lemma1: "cycle_of_list [a, b, c] \ generate (alt_group n) (three_cycles n)"
        if "a \ b" "b \ c" "{ a, b, c } \ {1..n}"
        for q :: "nat \ nat" and a b c
      proof (cases)
        assume "c = a"
        hence "cycle_of_list [ a, b, c ] = id"
          by (simp add: swap_commute)
        thus "cycle_of_list [ a, b, c ] \ generate (alt_group n) (three_cycles n)"
          using one[of "alt_group n"unfolding alt_group_one by simp
      next
        assume "c \ a"
        have "distinct [a, b, c]"
          using \<open>a \<noteq> b\<close> and \<open>b \<noteq> c\<close> and \<open>c \<noteq> a\<close> by auto
        with \<open>{ a, b, c } \<subseteq> {1..n}\<close>
        show "cycle_of_list [ a, b, c ] \ generate (alt_group n) (three_cycles n)"
          by (intro incl) fastforce
      qed
    
      have aux_lemma2: "q \ generate (alt_group n) (three_cycles n)"
        if seq: "swapidseq_ext S (Suc (Suc 0)) q" and S: "S \ {1..n}"
        for S :: "nat set" and q :: "nat \ nat"
      proof -
        obtain a b q' where ab: "a \ b" "a \ S" "b \ S"
          and q': "swapidseq_ext S (Suc 0) q'" "q = (transpose a b) \<circ> q'"
          using swapidseq_ext_backwards'[OF seq] by auto
        obtain c d where cd"c \ d" "c \ S" "d \ S"
          and q: "q = (transpose a b) \ (Fun.swap c d id)"
          using swapidseq_ext_backwards'[OF q'(1)]
            swapidseq_ext_zero_imp_id
          unfolding q'(2)
          by fastforce

        consider (eq) "b = c" | (ineq) "b \ c" by auto
        thus ?thesis
        proof cases
          case eq
          then have "q = cycle_of_list [ a, b, d ]"
            unfolding q by simp
          moreover have "{ a, b, d } \ {1..n}"
            using ab cd S by blast
          ultimately show ?thesis
            using aux_lemma1[OF ab(1)] cd(1) eq by simp
        next
          case ineq
          hence "q = cycle_of_list [ a, b, c ] \ cycle_of_list [ b, c, d ]"
            unfolding q by (simp add: swap_nilpotent o_assoc)
          moreover have "{ a, b, c } \ {1..n}" and "{ b, c, d } \ {1..n}"
            using ab cd S by blast+
          ultimately show ?thesis
            using eng[OF aux_lemma1[OF ab(1) ineq] aux_lemma1[OF ineq cd(1)]]
            unfolding alt_group_mult by simp
        qed
      qed
      
      fix p assume "p \ carrier (alt_group n)" then have p: "p permutes {1..n}" "evenperm p"
        unfolding alt_group_carrier by auto
      obtain m where m: "swapidseq_ext {1..n} m p"
        using swapidseq_ext_of_permutation[OF p(1)] by auto
      have "even m"
        using swapidseq_ext_imp_swapidseq[OF m] p(2) evenperm_unique by blast
      then obtain k where k: "m = 2 * k"
        by auto
      show "p \ generate (alt_group n) (three_cycles n)"
        using m unfolding k
      proof (induct k arbitrary: p)
        case 0 then have "p = id"
          using swapidseq_ext_zero_imp_id by simp
        show ?case
          using generate.one[of "alt_group n" "three_cycles n"]
          unfolding alt_group_one \<open>p = id\<close> .
      next
        case (Suc m)
        have arith: "2 * (Suc m) - (Suc (Suc 0)) = 2 * m" and "Suc (Suc 0) \ 2 * Suc m"
          by auto
        then obtain q r U V
          where q: "swapidseq_ext U (2 * m) q" and r: "swapidseq_ext V (Suc (Suc 0)) r"
            and p: "p = q \ r" and UV: "U \ V = {1..n}"
          using split_swapidseq_ext[OF _ Suc(2), of "Suc (Suc 0)"unfolding arith by metis
        have "swapidseq_ext {1..n} (2 * m) q"
          using UV q swapidseq_ext_finite_expansion[OF swapidseq_ext_finite[OF r] q] by simp
        thus ?case
          using eng[OF Suc(1) aux_lemma2[OF r], of q] UV unfolding alt_group_mult p by blast
      qed
    qed
  qed
qed

theorem derived_alt_group_const:
  assumes "n \ 5" shows "derived (alt_group n) (carrier (alt_group n)) = carrier (alt_group n)"
proof
  show "derived (alt_group n) (carrier (alt_group n)) \ carrier (alt_group n)"
    using group.derived_in_carrier[OF alt_group_is_group] by simp
next
  have aux_lemma: "p \ derived (alt_group n) (carrier (alt_group n))"
    if "p \ three_cycles n" for p
  proof -
    obtain cs where cs: "p = cycle_of_list cs" "cycle cs" "length cs = 3" "set cs \ {1..n}"
      using \<open>p \<in> three_cycles n\<close> by auto
    then obtain a b c where cs_def: "cs = [ a, b, c ]"
      using stupid_lemma[OF cs(3)] by blast
    have "card (set cs) = 3"
      using cs(2-3)
      by (simp add: distinct_card)

    have "set cs \ {1..n}"
      using assms cs(3) unfolding sym[OF distinct_card[OF cs(2)]] by auto
    then obtain d where d: "d \ set cs" "d \ {1..n}"
      using cs(4) by blast

    hence "cycle (d # cs)" and "length (d # cs) = 4" and "card {1..n} = n"
      using cs(2-3) by auto 
    hence "set (d # cs) \ {1..n}"
      using assms unfolding sym[OF distinct_card[OF \<open>cycle (d # cs)\<close>]]
      by (metis Suc_n_not_le_n eval_nat_numeral(3)) 
    then obtain e where e: "e \ set (d # cs)" "e \ {1..n}"
      using d cs(4) by (metis insert_subset list.simps(15) subsetI subset_antisym) 

    define q where "q = (Fun.swap d e id) \ (Fun.swap b c id)"
    hence "bij q"
      by (simp add: bij_comp)
    moreover have "q b = c" and "q c = b"
      using d(1) e(1) unfolding q_def cs_def by simp+
    moreover have "q a = a"
      using d(1) e(1) cs(2) unfolding q_def cs_def by auto
    ultimately have "q \ p \ (inv' q) = cycle_of_list [ a, c, b ]"
      using conjugation_of_cycle[OF cs(2), of q]
      unfolding sym[OF cs(1)] unfolding cs_def by simp
    also have " ... = p \ p"
      using cs(2) unfolding cs(1) cs_def
      by (simp add: comp_swap swap_commute transpose_comp_triple) 
    finally have "q \ p \ (inv' q) = p \ p" .
    moreover have "bij p"
      unfolding cs(1) cs_def by (simp add: bij_comp)
    ultimately have p: "q \ p \ (inv' q) \ (inv' p) = p"
      by (simp add: bijection.intro bijection.inv_comp_right comp_assoc)

    have "swapidseq (Suc (Suc 0)) q"
      using comp_Suc[OF comp_Suc[OF id], of b c d e] e(1) cs(2)  unfolding q_def cs_def by auto
    hence "evenperm q"
      using even_Suc_Suc_iff evenperm_unique by blast
    moreover have "q permutes { d, e, b, c }"
      unfolding q_def by (simp add: permutes_compose permutes_swap_id)
    hence "q permutes {1..n}"
      using cs(4) d(2) e(2) permutes_subset unfolding cs_def by fastforce
    ultimately have "q \ carrier (alt_group n)"
      unfolding alt_group_carrier by simp
    moreover have "p \ carrier (alt_group n)"
      using \<open>p \<in> three_cycles n\<close> three_cycles_incl by blast
    ultimately have "p \ derived_set (alt_group n) (carrier (alt_group n))"
      using p alt_group_inv_equality unfolding alt_group_mult
      by (metis (no_types, lifting) UN_iff singletonI)
    thus "p \ derived (alt_group n) (carrier (alt_group n))"
      unfolding derived_def by (rule incl)
  qed

  interpret A: group "alt_group n"
    using alt_group_is_group .

  have "generate (alt_group n) (three_cycles n) \ derived (alt_group n) (carrier (alt_group n))"
    using A.generate_subgroup_incl[OF _ A.derived_is_subgroup] aux_lemma by (meson subsetI) 
  thus "carrier (alt_group n) \ derived (alt_group n) (carrier (alt_group n))"
    using alt_group_carrier_as_three_cycles by simp
qed

corollary alt_group_is_unsolvable:
  assumes "n \ 5" shows "\ solvable (alt_group n)"
proof (rule ccontr)
  assume "\ \ solvable (alt_group n)"
  then obtain m where "(derived (alt_group n) ^^ m) (carrier (alt_group n)) = { id }"
    using group.solvable_iff_trivial_derived_seq[OF alt_group_is_group] unfolding alt_group_one by blast
  moreover have "(derived (alt_group n) ^^ m) (carrier (alt_group n)) = carrier (alt_group n)"
    using derived_alt_group_const[OF assms] by (induct m) (auto)
  ultimately have card_eq_1: "card (carrier (alt_group n)) = 1"
    by simp
  have ge_2: "n \ 2"
    using assms by simp
  moreover have "2 = fact n"
    using alt_group_card_carrier[OF ge_2] unfolding card_eq_1
    by (metis fact_2 mult.right_neutral of_nat_fact)
  ultimately have "n = 2"
      by (metis antisym_conv fact_ge_self)
  thus False
    using assms by simp
qed

corollary sym_group_is_unsolvable:
  assumes "n \ 5" shows "\ solvable (sym_group n)"
proof -
  interpret Id: group_hom "alt_group n" "sym_group n" id
    using group.canonical_inj_is_hom[OF sym_group_is_group alt_group_is_subgroup] alt_group_def by simp
  show ?thesis
    using Id.inj_hom_imp_solvable alt_group_is_unsolvable[OF assms] by auto
qed

end

100%


¤ Dauer der Verarbeitung: 0.15 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

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.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge