]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/matita/library/algebra/groups.ma
more work on dama
[helm.git] / helm / software / matita / library / algebra / groups.ma
index 360e75c9f06d52c85e931e84f42eed4fa68bee76..aeb0d779ab98d46de7c0f24b1e6a37ca8b25eb44 100644 (file)
@@ -12,8 +12,6 @@
 (*                                                                        *)
 (**************************************************************************)
 
-set "baseuri" "cic:/matita/algebra/groups/".
-
 include "algebra/monoids.ma".
 include "nat/le_arith.ma".
 include "datatypes/bool.ma".
@@ -146,7 +144,7 @@ record morphism (G,G':Group) : Type ≝
    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 =
@@ -190,15 +188,15 @@ for @{ 'subgroupimage $H $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 =
@@ -237,7 +235,7 @@ definition left_coset_disjoint ≝
  λ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 }.
 
@@ -294,12 +292,33 @@ rewrite > (e_is_right_unit ? H);
 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.
+*)