(* Title: HOL/Algebra/Bij.thy Author: Florian Kammueller, with new proofs by L C Paulson
*)
theory Bij imports begin
section \<open>Bijections of a Set, Permutation and Automorphism Groups\<close>
definition
Bij :: "'a set \ ('a \ 'a) set" \<comment> \<open>Only extensional functions, since otherwise we get too many.\<close> where"Bij S = extensional S \ {f. bij_betw f S S}"
definition
BijGroup :: "'a set \ ('a \ 'a) monoid" where"BijGroup S = \<lparr>carrier = Bij S,
mult = \<lambda>g \<in> Bij S. \<lambda>f \<in> Bij S. compose S g f,
one = \<lambda>x \<in> S. x\<rparr>"
declare Id_compose [simp] compose_Id [simp]
lemma Bij_imp_extensional: "f \ Bij S \ f \ extensional S"
section
lemma: "f\<> Bij S \ f \ S \ S" by (auto simp add: Bij_def bij_betw_imp_funcset)
subsection
lemma restrict_inv_into_Bij by (simp add: Bij_def bij_betw_inv_into "BijS=extensional S \ {f. bij_betw f S S}"
lemma id_Bij: "(\x\S. x) \ Bij S " by(auto simp:Bij_def inj_on_def
lemmamult\<lambda>g \<in> Bij S. \<lambda>f \<in> Bij S. compose S g f, by one = \<lambda>x \<in> S. x\<rparr>"
lemma Bij_compose_restrict_eq:
by( add: Bij_def compose_inv_into_id
theoremgroup_BijGroup: "group(BijGroup S)" apply (java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 apply java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4 apply (auto simp: compose_Bij id_Bij Bij_imp_funcset compose_assoc[]) apply( intro Bij_compose_restrict_eq restrict_inv_into_Bij by ( simpadd BijGroup_def)
subsection\<open>Automorphisms Form a Group\<close>
assumex\<in> auto G" "y \<in> auto G"
(imp add bij_betw_definv_into_into
lemma Bij_inv_into_lemmaby( simpjava.lang.StringIndexOutOfBoundsException: Range [22, 20) out of bounds for length 71 assumes and x
x\<in> auto G" proof"\<^bsub>BijGroup(carrier G)<^esub> x \ auto G" have"h ` S (simp del: restrict_apply by ( (no_types Bij_def assms)bij_betw_def) with\<open>x \<in> S\<close> \<open>y \<in> S\<close> have "\<exists>x'\<in>S. \<exists>y'\<in>S. x = h x' \<and> y = h y'" by auto thenshow ( add AutoGroup_def.subgroup_is_group using assms by (auto simp add: ) qed
definition
auto :: "('a, 'b) monoid_scheme \ ('a \ 'a) set" where"auto G = hom G G \ Bij (carrier G)"
lemma (in group) id_in_auto: "(\x \ carrier G. x) \ auto G" by (simp add: auto_def hom_def restrictI group.axioms id_Bij)
lemma (in group) mult_funcset: "mult G \ carrier G \ carrier G \ carrier G" by (simp add: Pi_I group.axioms)
lemma (in group) restrict_inv_into_hom: "\h \ hom G G; h \ Bij (carrier G)\ \<Longrightarrow> restrict (inv_into (carrier G) h) (carrier G) \<in> hom G G" by (simp add: hom_def Bij_inv_into_mem restrictI mult_funcset
group.axioms Bij_inv_into_lemma)
lemma inv_BijGroup: "f \ Bij S \ m_inv (BijGroup S) f = (\x \ S. (inv_into S f) x)" apply (rule group.inv_equality [OF group_BijGroup]) apply (simp_all add:BijGroup_def restrict_inv_into_Bij Bij_compose_restrict_eq) done
lemma (in group) subgroup_auto: "subgroup (auto G) (BijGroup (carrier G))" proof (rule subgroup.intro) show"auto G \ carrier (BijGroup (carrier G))" by (force simp add: auto_def BijGroup_def) next fix x y assume"x \ auto G" "y \ auto G" thus"x \\<^bsub>BijGroup (carrier G)\<^esub> y \ auto G" by (force simp add: BijGroup_def is_group auto_def Bij_imp_funcset
group.hom_compose compose_Bij) next show"\\<^bsub>BijGroup (carrier G)\<^esub> \ auto G" by (simp add: BijGroup_def id_in_auto) next fix x assume"x \ auto G" thus"inv\<^bsub>BijGroup (carrier G)\<^esub> x \ auto G" by (simp del: restrict_apply
add: inv_BijGroup auto_def restrict_inv_into_Bij restrict_inv_into_hom) qed
theorem (in group) AutoGroup: "group (AutoGroup G)" by (simp add: AutoGroup_def subgroup.subgroup_is_group subgroup_auto
group_BijGroup)
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.5Bemerkung:
¤
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.