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/CGroups".
21 (* $Id: CGroups.v,v 1.9 2004/04/23 10:00:52 lcf Exp $ *)
23 (*#* printing [-] %\ensuremath-% #−# *)
25 (*#* printing [--] %\ensuremath-% #−# *)
27 (*#* printing {-} %\ensuremath-% #−# *)
29 (*#* printing {--} %\ensuremath-% #−# *)
31 include "algebra/CMonoids.ma".
37 ** Definition of the notion of Group
40 inline "cic:/CoRN/algebra/CGroups/is_inverse.con".
43 Implicit Arguments is_inverse [S].
46 inline "cic:/CoRN/algebra/CGroups/is_CGroup.con".
48 inline "cic:/CoRN/algebra/CGroups/CGroup.ind".
50 coercion cic:/matita/CoRN-Decl/algebra/CGroups/cg_crr.con 0 (* compounds *).
57 Implicit Arguments cg_inv [c].
61 Notation "[--] x" := (cg_inv x) (at level 2, right associativity).
64 inline "cic:/CoRN/algebra/CGroups/cg_minus.con".
67 %\begin{nameconvention}%
68 In the names of lemmas, we will denote [[--] ] with [inv],
69 and [ [-] ] with [minus].
70 %\end{nameconvention}%
74 Implicit Arguments cg_minus [G].
78 Infix "[-]" := cg_minus (at level 50, left associativity).
85 %\begin{convention}% Let [G] be a group.
93 inline "cic:/CoRN/algebra/CGroups/CGroup_axioms/G.var" "CGroup_axioms__".
95 inline "cic:/CoRN/algebra/CGroups/cg_inverse.con".
103 General properties of groups.
104 %\begin{convention}% Let [G] be a group.
109 Section CGroup_basics
112 inline "cic:/CoRN/algebra/CGroups/CGroup_basics/G.var" "CGroup_basics__".
114 inline "cic:/CoRN/algebra/CGroups/cg_rht_inv_unfolded.con".
116 inline "cic:/CoRN/algebra/CGroups/cg_lft_inv_unfolded.con".
118 inline "cic:/CoRN/algebra/CGroups/cg_minus_correct.con".
121 Hint Resolve cg_rht_inv_unfolded cg_lft_inv_unfolded cg_minus_correct:
125 inline "cic:/CoRN/algebra/CGroups/cg_inverse'.con".
129 inline "cic:/CoRN/algebra/CGroups/cg_minus_unfolded.con".
132 Hint Resolve cg_minus_unfolded: algebra.
135 inline "cic:/CoRN/algebra/CGroups/cg_minus_wd.con".
138 Hint Resolve cg_minus_wd: algebra_c.
141 inline "cic:/CoRN/algebra/CGroups/cg_minus_strext.con".
143 inline "cic:/CoRN/algebra/CGroups/cg_minus_is_csetoid_bin_op.con".
145 inline "cic:/CoRN/algebra/CGroups/grp_inv_assoc.con".
148 Hint Resolve grp_inv_assoc: algebra.
151 inline "cic:/CoRN/algebra/CGroups/cg_inv_unique.con".
153 inline "cic:/CoRN/algebra/CGroups/cg_inv_inv.con".
156 Hint Resolve cg_inv_inv: algebra.
159 inline "cic:/CoRN/algebra/CGroups/cg_cancel_lft.con".
161 inline "cic:/CoRN/algebra/CGroups/cg_cancel_rht.con".
163 inline "cic:/CoRN/algebra/CGroups/cg_inv_unique'.con".
165 inline "cic:/CoRN/algebra/CGroups/cg_inv_unique_2.con".
167 inline "cic:/CoRN/algebra/CGroups/cg_zero_inv.con".
170 Hint Resolve cg_zero_inv: algebra.
173 inline "cic:/CoRN/algebra/CGroups/cg_inv_zero.con".
175 inline "cic:/CoRN/algebra/CGroups/cg_inv_op.con".
178 Useful for interactive proof development.
181 inline "cic:/CoRN/algebra/CGroups/x_minus_x.con".
185 %\begin{convention}% Let [P] be a predicate on [G] containing
186 [Zero] and closed under [[+]] and [[--] ].
194 inline "cic:/CoRN/algebra/CGroups/CGroup_basics/SubCGroups/P.var" "CGroup_basics__SubCGroups__".
196 inline "cic:/CoRN/algebra/CGroups/CGroup_basics/SubCGroups/Punit.var" "CGroup_basics__SubCGroups__".
198 inline "cic:/CoRN/algebra/CGroups/CGroup_basics/SubCGroups/op_pres_P.var" "CGroup_basics__SubCGroups__".
200 inline "cic:/CoRN/algebra/CGroups/CGroup_basics/SubCGroups/inv_pres_P.var" "CGroup_basics__SubCGroups__".
202 inline "cic:/CoRN/algebra/CGroups/CGroup_basics/SubCGroups/subcrr.con" "CGroup_basics__SubCGroups__".
204 inline "cic:/CoRN/algebra/CGroups/CGroup_basics/SubCGroups/subinv.con" "CGroup_basics__SubCGroups__".
206 inline "cic:/CoRN/algebra/CGroups/isgrp_scrr.con".
208 inline "cic:/CoRN/algebra/CGroups/Build_SubCGroup.con".
219 Hint Resolve cg_rht_inv_unfolded cg_lft_inv_unfolded: algebra.
223 Hint Resolve cg_inv_inv cg_minus_correct cg_zero_inv cg_inv_zero: algebra.
227 Hint Resolve cg_minus_unfolded grp_inv_assoc cg_inv_op: algebra.
231 Hint Resolve cg_minus_wd: algebra_c.
235 ** Associative properties of groups
236 %\begin{convention}% Let [G] be a group.
241 Section Assoc_properties
244 inline "cic:/CoRN/algebra/CGroups/Assoc_properties/G.var" "Assoc_properties__".
246 inline "cic:/CoRN/algebra/CGroups/assoc_2.con".
248 inline "cic:/CoRN/algebra/CGroups/zero_minus.con".
250 inline "cic:/CoRN/algebra/CGroups/cg_cancel_mixed.con".
252 inline "cic:/CoRN/algebra/CGroups/plus_resp_eq.con".
259 Hint Resolve assoc_2 minus_plus zero_minus cg_cancel_mixed plus_resp_eq:
264 ** Apartness in Constructive Groups
265 Specific properties of apartness.
266 %\begin{convention}% Let [G] be a group.
271 Section cgroups_apartness
274 inline "cic:/CoRN/algebra/CGroups/cgroups_apartness/G.var" "cgroups_apartness__".
276 inline "cic:/CoRN/algebra/CGroups/cg_add_ap_zero.con".
278 inline "cic:/CoRN/algebra/CGroups/op_rht_resp_ap.con".
280 inline "cic:/CoRN/algebra/CGroups/cg_ap_cancel_rht.con".
282 inline "cic:/CoRN/algebra/CGroups/plus_cancel_ap_rht.con".
284 inline "cic:/CoRN/algebra/CGroups/minus_ap_zero.con".
286 inline "cic:/CoRN/algebra/CGroups/zero_minus_apart.con".
288 inline "cic:/CoRN/algebra/CGroups/inv_resp_ap_zero.con".
290 inline "cic:/CoRN/algebra/CGroups/inv_resp_ap.con".
292 inline "cic:/CoRN/algebra/CGroups/minus_resp_ap_rht.con".
294 inline "cic:/CoRN/algebra/CGroups/minus_resp_ap_lft.con".
296 inline "cic:/CoRN/algebra/CGroups/minus_cancel_ap_rht.con".
299 End cgroups_apartness
303 Hint Resolve op_rht_resp_ap: algebra.
307 Hint Resolve minus_ap_zero zero_minus_apart inv_resp_ap_zero: algebra.
315 ** Functional operations
317 As before, we lift our group operations to the function space of the group.
320 Let [G] be a group and [F,F':(PartFunct G)] with domains given respectively
325 inline "cic:/CoRN/algebra/CGroups/CGroup_Ops/G.var" "CGroup_Ops__".
327 inline "cic:/CoRN/algebra/CGroups/CGroup_Ops/F.var" "CGroup_Ops__".
329 inline "cic:/CoRN/algebra/CGroups/CGroup_Ops/F'.var" "CGroup_Ops__".
333 inline "cic:/CoRN/algebra/CGroups/CGroup_Ops/P.con" "CGroup_Ops__".
335 inline "cic:/CoRN/algebra/CGroups/CGroup_Ops/Q.con" "CGroup_Ops__".
340 Section Part_Function_Inv
343 inline "cic:/CoRN/algebra/CGroups/part_function_inv_strext.con".
345 inline "cic:/CoRN/algebra/CGroups/Finv.con".
348 End Part_Function_Inv
352 Section Part_Function_Minus
355 inline "cic:/CoRN/algebra/CGroups/part_function_minus_strext.con".
357 inline "cic:/CoRN/algebra/CGroups/Fminus.con".
360 End Part_Function_Minus
364 %\begin{convention}% Let [R:G->CProp].
368 inline "cic:/CoRN/algebra/CGroups/CGroup_Ops/R.var" "CGroup_Ops__".
370 inline "cic:/CoRN/algebra/CGroups/included_FInv.con".
372 inline "cic:/CoRN/algebra/CGroups/included_FInv'.con".
374 inline "cic:/CoRN/algebra/CGroups/included_FMinus.con".
376 inline "cic:/CoRN/algebra/CGroups/included_FMinus'.con".
378 inline "cic:/CoRN/algebra/CGroups/included_FMinus''.con".
385 Implicit Arguments Finv [G].
389 Notation "{--} x" := (Finv x) (at level 2, right associativity).
393 Implicit Arguments Fminus [G].
397 Infix "{-}" := Fminus (at level 50, left associativity).
401 Hint Resolve included_FInv included_FMinus : included.
405 Hint Immediate included_FInv' included_FMinus' included_FMinus'' : included.