]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/matita/library/algebra/semigroups.ma
1. Back to nicer (and more comprehensible) notation (that cannot be used
[helm.git] / helm / matita / library / algebra / semigroups.ma
index 93a139ca760e5113f6b87d00a8f09d5552861e48..64c2d13c9670f4e66a94448fb414895a1dfaeb34 100644 (file)
@@ -22,32 +22,37 @@ definition isSemiGroup ≝
 record SemiGroup : Type ≝
  { carrier: Type;
    op: carrier → carrier → carrier;
-   properties: isSemiGroup carrier op
+   semigroup_properties: isSemiGroup carrier op
  }.
  
 coercion cic:/matita/algebra/semigroups/carrier.con.
 
-notation "hvbox(a break * \sub S b)" 
+notation "hvbox(a break \middot \sub S b)" 
   left associative with precedence 55
 for @{ 'ptimes $S $a $b }.
 
-interpretation "Semigroup operation" 'times a b =
+notation "hvbox(a break \middot b)" 
+  left associative with precedence 55
+for @{ 'ptimesi $a $b }.
+
+interpretation "Semigroup operation" 'ptimesi a b =
  (cic:/matita/algebra/semigroups/op.con _ a b).
 
+(* too ugly
 interpretation "Semigroup operation" 'ptimes S a b =
- (cic:/matita/algebra/semigroups/op.con S a b).
+ (cic:/matita/algebra/semigroups/op.con S a b). *)
 
 definition is_left_unit ≝
- λS:SemiGroup. λe:S. ∀x:S. e * x = x.
+ λS:SemiGroup. λe:S. ∀x:S. e·x = x.
  
 definition is_right_unit ≝
- λS:SemiGroup. λe:S. ∀x:S. x * e = x.
+ λS:SemiGroup. λe:S. ∀x:S. x·e = x.
 
 theorem is_left_unit_to_is_right_unit_to_eq:
- ∀S:SemiGroup. ∀e1,e2:S.
-  is_left_unit ? e1 → is_right_unit ? e2 → e1=e2.
+ ∀S:SemiGroup. ∀e,e':S.
+  is_left_unit ? e → is_right_unit ? e' → e=e'.
  intros;
- rewrite < (H e2);
- rewrite < (H1 e1) in \vdash (? ? % ?);
+ rewrite < (H e');
+ rewrite < (H1 e) in \vdash (? ? % ?);
  reflexivity.
-qed.
\ No newline at end of file
+qed.