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: Zmonoid.v,v 1.6 2004/04/08 08:20:33 lcf Exp $ *)
21 include "model/semigroups/Zsemigroup.ma".
23 include "algebra/CMonoids.ma".
25 (*#* **Examples of monoids: $\langle$#⟨#[Z],[[+]]$\rangle$#⟩# and $\langle$#⟨#[Z],[[*]]$\rangle$#⟩#
26 ***$\langle$#⟨#[Z],[[+]]$\rangle$#⟩#
27 We use the addition [ZERO] (defined in the standard library) as the
31 inline procedural "cic:/CoRN/model/monoids/Zmonoid/ZERO_as_rht_unit.con" as lemma.
33 inline procedural "cic:/CoRN/model/monoids/Zmonoid/ZERO_as_lft_unit.con" as lemma.
35 inline procedural "cic:/CoRN/model/monoids/Zmonoid/Z_is_CMonoid.con" as definition.
37 inline procedural "cic:/CoRN/model/monoids/Zmonoid/Z_as_CMonoid.con" as definition.
39 (*#* The term [Z_as_CMonoid] is of type [CMonoid]. Hence we have proven that [Z] is a constructive monoid.
41 ***$\langle$#⟨#[Z],[[*]]$\rangle$#⟩#
42 As the multiplicative unit we should use [`1`], which is [(POS xH)] in
43 the representation we have for integers.
46 inline procedural "cic:/CoRN/model/monoids/Zmonoid/ONE_as_rht_unit.con" as lemma.
48 inline procedural "cic:/CoRN/model/monoids/Zmonoid/ONE_as_lft_unit.con" as lemma.
50 inline procedural "cic:/CoRN/model/monoids/Zmonoid/Z_mul_is_CMonoid.con" as definition.
52 inline procedural "cic:/CoRN/model/monoids/Zmonoid/Z_mul_as_CMonoid.con" as definition.
54 (*#* The term [Z_mul_as_CMonoid] is another term of type [CMonoid]. *)