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 *********************)
17 set "baseuri" "cic:/matita/CoRN-Decl/algebra/CMonoids".
21 (* $Id: CMonoids.v,v 1.3 2004/04/07 15:07:57 lcf Exp $ *)
23 (*#* printing Zero %\ensuremath{\mathbf0}% #0# *)
25 include "algebra/CSemiGroups.ma".
30 * Monoids %\label{section:monoids}%
31 ** Definition of monoids
34 inline "cic:/CoRN/algebra/CMonoids/is_rht_unit.con".
38 inline "cic:/CoRN/algebra/CMonoids/is_lft_unit.con".
41 Implicit Arguments is_lft_unit [S].
47 Implicit Arguments is_rht_unit [S].
50 inline "cic:/CoRN/algebra/CMonoids/is_CMonoid.ind".
52 inline "cic:/CoRN/algebra/CMonoids/CMonoid.ind".
54 coercion "cic:/matita/CoRN-Decl/algebra/CMonoids/cm_crr.con" 0 (* compounds *).
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.
73 inline "cic:/CoRN/algebra/CMonoids/nonZeroP.con".
78 Implicit Arguments nonZeroP [M].
83 %\begin{convention}% Let [M] be a monoid.
88 Section CMonoid_axioms.
91 inline "cic:/CoRN/algebra/CMonoids/M.var".
93 inline "cic:/CoRN/algebra/CMonoids/CMonoid_is_CMonoid.con".
95 inline "cic:/CoRN/algebra/CMonoids/cm_rht_unit.con".
97 inline "cic:/CoRN/algebra/CMonoids/cm_lft_unit.con".
105 %\begin{convention}% Let [M] be a monoid.
110 Section CMonoid_basics.
113 inline "cic:/CoRN/algebra/CMonoids/M.var".
115 inline "cic:/CoRN/algebra/CMonoids/cm_rht_unit_unfolded.con".
117 inline "cic:/CoRN/algebra/CMonoids/cm_lft_unit_unfolded.con".
120 Hint Resolve cm_rht_unit_unfolded cm_lft_unit_unfolded: algebra.
123 inline "cic:/CoRN/algebra/CMonoids/cm_unit_unique_lft.con".
125 inline "cic:/CoRN/algebra/CMonoids/cm_unit_unique_rht.con".
127 (* Begin_SpecReals *)
130 The proof component of the monoid is irrelevant.
133 inline "cic:/CoRN/algebra/CMonoids/is_CMonoid_proof_irr.con".
140 Let [P] a predicate on [M] containing [Zero] and closed under [[+]].
148 inline "cic:/CoRN/algebra/CMonoids/P.var".
150 inline "cic:/CoRN/algebra/CMonoids/Punit.var".
152 inline "cic:/CoRN/algebra/CMonoids/op_pres_P.var".
154 inline "cic:/CoRN/algebra/CMonoids/subcrr.con".
156 inline "cic:/CoRN/algebra/CMonoids/ismon_scrr.con".
158 inline "cic:/CoRN/algebra/CMonoids/Build_SubCMonoid.con".
169 Hint Resolve cm_rht_unit_unfolded cm_lft_unit_unfolded: algebra.