1 (**************************************************************************)
4 (* ||A|| A project by Andrea Asperti *)
6 (* ||I|| Developers: *)
7 (* ||T|| The HELM team. *)
8 (* ||A|| http://helm.cs.unibo.it *)
10 (* \ / This file is distributed under the terms of the *)
11 (* v GNU General Public License Version 2 *)
13 (**************************************************************************)
15 (* This file was automatically generated: do not edit *********************)
19 (* $Id: CMonoids.v,v 1.3 2004/04/07 15:07:57 lcf Exp $ *)
21 (*#* printing Zero %\ensuremath{\mathbf0}% #0# *)
23 include "algebra/CSemiGroups.ma".
28 * Monoids %\label{section:monoids}%
29 ** Definition of monoids
32 inline procedural "cic:/CoRN/algebra/CMonoids/is_rht_unit.con" as definition.
36 inline procedural "cic:/CoRN/algebra/CMonoids/is_lft_unit.con" as definition.
39 Implicit Arguments is_lft_unit [S].
45 Implicit Arguments is_rht_unit [S].
48 inline procedural "cic:/CoRN/algebra/CMonoids/is_CMonoid.ind".
50 inline procedural "cic:/CoRN/algebra/CMonoids/CMonoid.ind".
53 cic:/matita/CoRN-Procedural/algebra/CMonoids/cm_crr.con
57 %\begin{nameconvention}%
58 In the names of lemmas, we will denote [Zero] with [zero].
59 We denote [ [#] Zero] in the names of lemmas by [ap_zero]
60 (and not, e.g.%\% [nonzero]).
61 %\end{nameconvention}%
67 The predicate "non-zero" is defined.
68 In lemmas we will continue to write [x [#] Zero], rather than
69 [(nonZeroP x)], but the predicate is useful for some high-level definitions,
70 e.g. for the setoid of non-zeros.
74 Notation Zero := (cm_unit _).
77 inline procedural "cic:/CoRN/algebra/CMonoids/nonZeroP.con" as definition.
82 Implicit Arguments nonZeroP [M].
87 %\begin{convention}% Let [M] be a monoid.
92 Section CMonoid_axioms
96 cic:/CoRN/algebra/CMonoids/CMonoid_axioms/M.var
99 inline procedural "cic:/CoRN/algebra/CMonoids/CMonoid_is_CMonoid.con" as lemma.
101 inline procedural "cic:/CoRN/algebra/CMonoids/cm_rht_unit.con" as lemma.
103 inline procedural "cic:/CoRN/algebra/CMonoids/cm_lft_unit.con" as lemma.
111 %\begin{convention}% Let [M] be a monoid.
116 Section CMonoid_basics
120 cic:/CoRN/algebra/CMonoids/CMonoid_basics/M.var
123 inline procedural "cic:/CoRN/algebra/CMonoids/cm_rht_unit_unfolded.con" as lemma.
125 inline procedural "cic:/CoRN/algebra/CMonoids/cm_lft_unit_unfolded.con" as lemma.
128 Hint Resolve cm_rht_unit_unfolded cm_lft_unit_unfolded: algebra.
131 inline procedural "cic:/CoRN/algebra/CMonoids/cm_unit_unique_lft.con" as lemma.
133 inline procedural "cic:/CoRN/algebra/CMonoids/cm_unit_unique_rht.con" as lemma.
135 (* Begin_SpecReals *)
138 The proof component of the monoid is irrelevant.
141 inline procedural "cic:/CoRN/algebra/CMonoids/is_CMonoid_proof_irr.con" as lemma.
148 Let [P] a predicate on [M] containing [Zero] and closed under [[+]].
157 cic:/CoRN/algebra/CMonoids/CMonoid_basics/SubCMonoids/P.var
161 cic:/CoRN/algebra/CMonoids/CMonoid_basics/SubCMonoids/Punit.var
165 cic:/CoRN/algebra/CMonoids/CMonoid_basics/SubCMonoids/op_pres_P.var
168 inline procedural "cic:/CoRN/algebra/CMonoids/CMonoid_basics/SubCMonoids/subcrr.con" "CMonoid_basics__SubCMonoids__" as definition.
170 inline procedural "cic:/CoRN/algebra/CMonoids/ismon_scrr.con" as lemma.
172 inline procedural "cic:/CoRN/algebra/CMonoids/Build_SubCMonoid.con" as definition.
183 Hint Resolve cm_rht_unit_unfolded cm_lft_unit_unfolded: algebra.