(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/algebra/groups/".
-
include "algebra/monoids.ma".
include "nat/le_arith.ma".
include "datatypes/bool.ma".
f_morph: ∀x,y:G.image(x·y) = image x · image y
}.
-notation "hvbox(f˜ x)" with precedence 79
+notation "hvbox(f\tilde x)" with precedence 79
for @{ 'morimage $f $x }.
interpretation "Morphism image" 'morimage f x =
interpretation "Subgroup image" 'subgroupimage H x =
(cic:/matita/algebra/groups/image.con _ _
- (cic:/matita/algebra/groups/morphism_of_subgroup.con _ H) x).
+ (cic:/matita/algebra/groups/morphism_OF_subgroup.con _ H) x).
definition member_of_subgroup ≝
λG.λH:subgroup G.λx:G.∃y.x=y \sub H.
-notation "hvbox(x break ∈ H)" with precedence 79
+notation "hvbox(x break \in H)" with precedence 79
for @{ 'member_of $x $H }.
-notation "hvbox(x break ∉ H)" with precedence 79
+notation "hvbox(x break \notin H)" with precedence 79
for @{ 'not_member_of $x $H }.
interpretation "Member of subgroup" 'member_of x H =
λG.λC,C':left_coset G.
∀x.¬(((element ? C)·x \sub (subgrp ? C)) ∈ C').
-notation "hvbox(a break ∥ b)"
+notation "hvbox(a break \par b)"
non associative with precedence 45
for @{ 'disjoint $a $b }.
reflexivity.
qed.
+(*CSC: here the coercion Type_of_Group cannot be omitted. Why? *)
theorem in_x_mk_left_coset_x_H:
- ∀G.∀x:Type_of_Group G.∀H:subgroup G.x ∈ (x*H).
+ ∀G.∀x:Type_OF_Group G.∀H:subgroup G.x ∈ (x*H).
intros;
simplify;
apply (ex_intro ? ? 1);
rewrite > morphism_to_eq_f_1_1;
rewrite > (e_is_right_unit ? G);
reflexivity.
-qed.
\ No newline at end of file
+qed.
+
+(* Normal Subgroups *)
+
+record normal_subgroup (G:Group) : Type ≝
+ { ns_subgroup:> subgroup G;
+ normal:> ∀x:G.∀y:ns_subgroup.(x·y \sub ns_subgroup·x \sup -1) ∈ ns_subgroup
+ }.
+
+(*CSC: I have not defined yet right cosets
+theorem foo:
+ ∀G.∀H:normal_subgroup G.∀x.x*H=H*x.
+*)
+(*
+theorem member_of_left_coset_mk_left_coset_x_H_a_to_member_of_left_coset_mk_left_coset_y_H_b_to_member_of_left_coset_mk_left_coset_op_x_y_H_op_a_b:
+ ∀G.∀H:normal_subgroup G.∀x,y,a,b.
+ a ∈ (x*H) → b ∈ (y*H) → (a·b) ∈ ((x·y)*H).
+intros;
+simplify;
+qed.
+*)