X-Git-Url: http://matita.cs.unibo.it/gitweb/?p=helm.git;a=blobdiff_plain;f=matita%2Fcontribs%2FCoRN-Decl%2Falgebra%2FCSemiGroups.ma;fp=matita%2Fcontribs%2FCoRN-Decl%2Falgebra%2FCSemiGroups.ma;h=e107fad247c01236a9549baa9a3c6c23b1eb5dc3;hp=0000000000000000000000000000000000000000;hb=f61af501fb4608cc4fb062a0864c774e677f0d76;hpb=58ae1809c352e71e7b5530dc41e2bfc834e1aef1 diff --git a/matita/contribs/CoRN-Decl/algebra/CSemiGroups.ma b/matita/contribs/CoRN-Decl/algebra/CSemiGroups.ma new file mode 100644 index 000000000..e107fad24 --- /dev/null +++ b/matita/contribs/CoRN-Decl/algebra/CSemiGroups.ma @@ -0,0 +1,199 @@ +(**************************************************************************) +(* ___ *) +(* ||M|| *) +(* ||A|| A project by Andrea Asperti *) +(* ||T|| *) +(* ||I|| Developers: *) +(* ||T|| The HELM team. *) +(* ||A|| http://helm.cs.unibo.it *) +(* \ / *) +(* \ / This file is distributed under the terms of the *) +(* v GNU General Public License Version 2 *) +(* *) +(**************************************************************************) + +(* This file was automatically generated: do not edit *********************) + +set "baseuri" "cic:/matita/CoRN-Decl/algebra/CSemiGroups". + +include "CoRN.ma". + +(* $Id: CSemiGroups.v,v 1.8 2004/04/22 14:49:43 lcf Exp $ *) + +(*#* printing [+] %\ensuremath+% #+# *) + +(*#* printing {+} %\ensuremath+% #+# *) + +include "algebra/CSetoidInc.ma". + +(* Begin_SpecReals *) + +(*#* *Semigroups + +**Definition of the notion of semigroup +*) + +inline "cic:/CoRN/algebra/CSemiGroups/is_CSemiGroup.con". + +inline "cic:/CoRN/algebra/CSemiGroups/CSemiGroup.ind". + +coercion cic:/matita/CoRN-Decl/algebra/CSemiGroups/csg_crr.con 0 (* compounds *). + +(*#* +%\begin{nameconvention}% +In the %{\em %names%}% of lemmas, we will denote [[+]] with [plus]. +%\end{nameconvention}% +*) + +(* UNEXPORTED +Implicit Arguments csg_op [c]. +*) + +(* NOTATION +Infix "[+]" := csg_op (at level 50, left associativity). +*) + +(* End_SpecReals *) + +(*#* **Semigroup axioms +The axiomatic properties of a semi group. + +%\begin{convention}% Let [G] be a semi-group. +%\end{convention}% +*) + +(* UNEXPORTED +Section CSemiGroup_axioms +*) + +alias id "G" = "cic:/CoRN/algebra/CSemiGroups/CSemiGroup_axioms/G.var". + +inline "cic:/CoRN/algebra/CSemiGroups/CSemiGroup_is_CSemiGroup.con". + +inline "cic:/CoRN/algebra/CSemiGroups/plus_assoc.con". + +(* UNEXPORTED +End CSemiGroup_axioms +*) + +(* Begin_SpecReals *) + +(*#* **Semigroup basics + +%\begin{convention}% +Let [G] be a semi-group. +%\end{convention}% +*) + +(* UNEXPORTED +Section CSemiGroup_basics +*) + +alias id "G" = "cic:/CoRN/algebra/CSemiGroups/CSemiGroup_basics/G.var". + +(* End_SpecReals *) + +inline "cic:/CoRN/algebra/CSemiGroups/plus_assoc_unfolded.con". + +(* UNEXPORTED +End CSemiGroup_basics +*) + +(* End_SpecReals *) + +(* UNEXPORTED +Hint Resolve plus_assoc_unfolded: algebra. +*) + +(*#* **Functional operations +We can also define a similar addition operator, which will be denoted by [{+}], on partial functions. + +%\begin{convention}% Whenever possible, we will denote the functional construction corresponding to an algebraic operation by the same symbol enclosed in curly braces. +%\end{convention}% + +At this stage, we will always consider automorphisms; we %{\em %could%}% treat this in a more general setting, but we feel that it wouldn't really be a useful effort. + +%\begin{convention}% Let [G:CSemiGroup] and [F,F':(PartFunct G)] and denote by [P] and [Q], respectively, the predicates characterizing their domains. +%\end{convention}% +*) + +(* UNEXPORTED +Section Part_Function_Plus +*) + +alias id "G" = "cic:/CoRN/algebra/CSemiGroups/Part_Function_Plus/G.var". + +alias id "F" = "cic:/CoRN/algebra/CSemiGroups/Part_Function_Plus/F.var". + +alias id "F'" = "cic:/CoRN/algebra/CSemiGroups/Part_Function_Plus/F'.var". + +(* begin hide *) + +inline "cic:/CoRN/algebra/CSemiGroups/Part_Function_Plus/P.con" "Part_Function_Plus__". + +inline "cic:/CoRN/algebra/CSemiGroups/Part_Function_Plus/Q.con" "Part_Function_Plus__". + +(* end hide *) + +inline "cic:/CoRN/algebra/CSemiGroups/part_function_plus_strext.con". + +inline "cic:/CoRN/algebra/CSemiGroups/Fplus.con". + +(*#* +%\begin{convention}% Let [R:G->CProp]. +%\end{convention}% +*) + +alias id "R" = "cic:/CoRN/algebra/CSemiGroups/Part_Function_Plus/R.var". + +inline "cic:/CoRN/algebra/CSemiGroups/included_FPlus.con". + +inline "cic:/CoRN/algebra/CSemiGroups/included_FPlus'.con". + +inline "cic:/CoRN/algebra/CSemiGroups/included_FPlus''.con". + +(* UNEXPORTED +End Part_Function_Plus +*) + +(* UNEXPORTED +Implicit Arguments Fplus [G]. +*) + +(* NOTATION +Infix "{+}" := Fplus (at level 50, left associativity). +*) + +(* UNEXPORTED +Hint Resolve included_FPlus : included. +*) + +(* UNEXPORTED +Hint Immediate included_FPlus' included_FPlus'' : included. +*) + +(*#* **Subsemigroups +%\begin{convention}% +Let [csg] a semi-group and [P] a non-empty +predicate on the semi-group which is preserved by [[+]]. +%\end{convention}% +*) + +(* UNEXPORTED +Section SubCSemiGroups +*) + +alias id "csg" = "cic:/CoRN/algebra/CSemiGroups/SubCSemiGroups/csg.var". + +alias id "P" = "cic:/CoRN/algebra/CSemiGroups/SubCSemiGroups/P.var". + +alias id "op_pres_P" = "cic:/CoRN/algebra/CSemiGroups/SubCSemiGroups/op_pres_P.var". + +inline "cic:/CoRN/algebra/CSemiGroups/SubCSemiGroups/subcrr.con" "SubCSemiGroups__". + +inline "cic:/CoRN/algebra/CSemiGroups/Build_SubCSemiGroup.con". + +(* UNEXPORTED +End SubCSemiGroups +*) +