]> matita.cs.unibo.it Git - helm.git/blob - helm/software/matita/contribs/CoRN-Procedural/algebra/CGroups.mma
Procedural: explicit flavour specification for constants is now working
[helm.git] / helm / software / matita / contribs / CoRN-Procedural / algebra / CGroups.mma
1 (**************************************************************************)
2 (*       ___                                                              *)
3 (*      ||M||                                                             *)
4 (*      ||A||       A project by Andrea Asperti                           *)
5 (*      ||T||                                                             *)
6 (*      ||I||       Developers:                                           *)
7 (*      ||T||         The HELM team.                                      *)
8 (*      ||A||         http://helm.cs.unibo.it                             *)
9 (*      \   /                                                             *)
10 (*       \ /        This file is distributed under the terms of the       *)
11 (*        v         GNU General Public License Version 2                  *)
12 (*                                                                        *)
13 (**************************************************************************)
14
15 (* This file was automatically generated: do not edit *********************)
16
17 include "CoRN.ma".
18
19 (* $Id: CGroups.v,v 1.9 2004/04/23 10:00:52 lcf Exp $ *)
20
21 (*#* printing [-] %\ensuremath-% #−# *)
22
23 (*#* printing [--] %\ensuremath-% #−# *)
24
25 (*#* printing {-} %\ensuremath-% #−# *)
26
27 (*#* printing {--} %\ensuremath-% #−# *)
28
29 include "algebra/CMonoids.ma".
30
31 (* Begin_SpecReals *)
32
33 (*#*
34 * Groups
35 ** Definition of the notion of Group
36 *)
37
38 inline procedural "cic:/CoRN/algebra/CGroups/is_inverse.con" as definition.
39
40 (* UNEXPORTED
41 Implicit Arguments is_inverse [S].
42 *)
43
44 inline procedural "cic:/CoRN/algebra/CGroups/is_CGroup.con" as definition.
45
46 inline procedural "cic:/CoRN/algebra/CGroups/CGroup.ind".
47
48 (* COERCION
49 cic:/matita/CoRN-Procedural/algebra/CGroups/cg_crr.con
50 *)
51
52 (* End_SpecReals *)
53
54 (* Begin_SpecReals *)
55
56 (* UNEXPORTED
57 Implicit Arguments cg_inv [c].
58 *)
59
60 (* NOTATION
61 Notation "[--] x" := (cg_inv x) (at level 2, right associativity).
62 *)
63
64 inline procedural "cic:/CoRN/algebra/CGroups/cg_minus.con" as definition.
65
66 (*#*
67 %\begin{nameconvention}%
68 In the names of lemmas, we will denote [[--] ] with [inv],
69 and [ [-] ] with [minus].
70 %\end{nameconvention}%
71 *)
72
73 (* UNEXPORTED
74 Implicit Arguments cg_minus [G].
75 *)
76
77 (* NOTATION
78 Infix "[-]" := cg_minus (at level 50, left associativity).
79 *)
80
81 (* End_SpecReals *)
82
83 (*#*
84 ** Group axioms
85 %\begin{convention}% Let [G] be a group.
86 %\end{convention}%
87 *)
88
89 (* UNEXPORTED
90 Section CGroup_axioms
91 *)
92
93 alias id "G" = "cic:/CoRN/algebra/CGroups/CGroup_axioms/G.var".
94
95 inline procedural "cic:/CoRN/algebra/CGroups/cg_inverse.con" as lemma.
96
97 (* UNEXPORTED
98 End CGroup_axioms
99 *)
100
101 (*#*
102 ** Group basics
103 General properties of groups.
104 %\begin{convention}% Let [G] be a group.
105 %\end{convention}%
106 *)
107
108 (* UNEXPORTED
109 Section CGroup_basics
110 *)
111
112 alias id "G" = "cic:/CoRN/algebra/CGroups/CGroup_basics/G.var".
113
114 inline procedural "cic:/CoRN/algebra/CGroups/cg_rht_inv_unfolded.con" as lemma.
115
116 inline procedural "cic:/CoRN/algebra/CGroups/cg_lft_inv_unfolded.con" as lemma.
117
118 inline procedural "cic:/CoRN/algebra/CGroups/cg_minus_correct.con" as lemma.
119
120 (* UNEXPORTED
121 Hint Resolve cg_rht_inv_unfolded cg_lft_inv_unfolded cg_minus_correct:
122   algebra.
123 *)
124
125 inline procedural "cic:/CoRN/algebra/CGroups/cg_inverse'.con" as lemma.
126
127 (* Hints for Auto *)
128
129 inline procedural "cic:/CoRN/algebra/CGroups/cg_minus_unfolded.con" as lemma.
130
131 (* UNEXPORTED
132 Hint Resolve cg_minus_unfolded: algebra.
133 *)
134
135 inline procedural "cic:/CoRN/algebra/CGroups/cg_minus_wd.con" as lemma.
136
137 (* UNEXPORTED
138 Hint Resolve cg_minus_wd: algebra_c.
139 *)
140
141 inline procedural "cic:/CoRN/algebra/CGroups/cg_minus_strext.con" as lemma.
142
143 inline procedural "cic:/CoRN/algebra/CGroups/cg_minus_is_csetoid_bin_op.con" as definition.
144
145 inline procedural "cic:/CoRN/algebra/CGroups/grp_inv_assoc.con" as lemma.
146
147 (* UNEXPORTED
148 Hint Resolve grp_inv_assoc: algebra.
149 *)
150
151 inline procedural "cic:/CoRN/algebra/CGroups/cg_inv_unique.con" as lemma.
152
153 inline procedural "cic:/CoRN/algebra/CGroups/cg_inv_inv.con" as lemma.
154
155 (* UNEXPORTED
156 Hint Resolve cg_inv_inv: algebra.
157 *)
158
159 inline procedural "cic:/CoRN/algebra/CGroups/cg_cancel_lft.con" as lemma.
160
161 inline procedural "cic:/CoRN/algebra/CGroups/cg_cancel_rht.con" as lemma.
162
163 inline procedural "cic:/CoRN/algebra/CGroups/cg_inv_unique'.con" as lemma.
164
165 inline procedural "cic:/CoRN/algebra/CGroups/cg_inv_unique_2.con" as lemma.
166
167 inline procedural "cic:/CoRN/algebra/CGroups/cg_zero_inv.con" as lemma.
168
169 (* UNEXPORTED
170 Hint Resolve cg_zero_inv: algebra.
171 *)
172
173 inline procedural "cic:/CoRN/algebra/CGroups/cg_inv_zero.con" as lemma.
174
175 inline procedural "cic:/CoRN/algebra/CGroups/cg_inv_op.con" as lemma.
176
177 (*#*
178 Useful for interactive proof development.
179 *)
180
181 inline procedural "cic:/CoRN/algebra/CGroups/x_minus_x.con" as lemma.
182
183 (*#*
184 ** Sub-groups
185 %\begin{convention}% Let [P] be a predicate on [G] containing
186 [Zero] and closed under [[+]] and [[--] ].
187 %\end{convention}%
188 *)
189
190 (* UNEXPORTED
191 Section SubCGroups
192 *)
193
194 alias id "P" = "cic:/CoRN/algebra/CGroups/CGroup_basics/SubCGroups/P.var".
195
196 alias id "Punit" = "cic:/CoRN/algebra/CGroups/CGroup_basics/SubCGroups/Punit.var".
197
198 alias id "op_pres_P" = "cic:/CoRN/algebra/CGroups/CGroup_basics/SubCGroups/op_pres_P.var".
199
200 alias id "inv_pres_P" = "cic:/CoRN/algebra/CGroups/CGroup_basics/SubCGroups/inv_pres_P.var".
201
202 inline procedural "cic:/CoRN/algebra/CGroups/CGroup_basics/SubCGroups/subcrr.con" "CGroup_basics__SubCGroups__" as definition.
203
204 inline procedural "cic:/CoRN/algebra/CGroups/CGroup_basics/SubCGroups/subinv.con" "CGroup_basics__SubCGroups__" as definition.
205
206 inline procedural "cic:/CoRN/algebra/CGroups/isgrp_scrr.con" as lemma.
207
208 inline procedural "cic:/CoRN/algebra/CGroups/Build_SubCGroup.con" as definition.
209
210 (* UNEXPORTED
211 End SubCGroups
212 *)
213
214 (* UNEXPORTED
215 End CGroup_basics
216 *)
217
218 (* UNEXPORTED
219 Hint Resolve cg_rht_inv_unfolded cg_lft_inv_unfolded: algebra.
220 *)
221
222 (* UNEXPORTED
223 Hint Resolve cg_inv_inv cg_minus_correct cg_zero_inv cg_inv_zero: algebra.
224 *)
225
226 (* UNEXPORTED
227 Hint Resolve cg_minus_unfolded grp_inv_assoc cg_inv_op: algebra.
228 *)
229
230 (* UNEXPORTED
231 Hint Resolve cg_minus_wd: algebra_c.
232 *)
233
234 (*#*
235 ** Associative properties of groups
236 %\begin{convention}% Let [G] be a group.
237 %\end{convention}%
238 *)
239
240 (* UNEXPORTED
241 Section Assoc_properties
242 *)
243
244 alias id "G" = "cic:/CoRN/algebra/CGroups/Assoc_properties/G.var".
245
246 inline procedural "cic:/CoRN/algebra/CGroups/assoc_2.con" as lemma.
247
248 inline procedural "cic:/CoRN/algebra/CGroups/zero_minus.con" as lemma.
249
250 inline procedural "cic:/CoRN/algebra/CGroups/cg_cancel_mixed.con" as lemma.
251
252 inline procedural "cic:/CoRN/algebra/CGroups/plus_resp_eq.con" as lemma.
253
254 (* UNEXPORTED
255 End Assoc_properties
256 *)
257
258 (* UNEXPORTED
259 Hint Resolve assoc_2 minus_plus zero_minus cg_cancel_mixed plus_resp_eq:
260   algebra.
261 *)
262
263 (*#*
264 ** Apartness in Constructive Groups
265 Specific properties of apartness.
266 %\begin{convention}% Let [G] be a group.
267 %\end{convention}%
268 *)
269
270 (* UNEXPORTED
271 Section cgroups_apartness
272 *)
273
274 alias id "G" = "cic:/CoRN/algebra/CGroups/cgroups_apartness/G.var".
275
276 inline procedural "cic:/CoRN/algebra/CGroups/cg_add_ap_zero.con" as lemma.
277
278 inline procedural "cic:/CoRN/algebra/CGroups/op_rht_resp_ap.con" as lemma.
279
280 inline procedural "cic:/CoRN/algebra/CGroups/cg_ap_cancel_rht.con" as lemma.
281
282 inline procedural "cic:/CoRN/algebra/CGroups/plus_cancel_ap_rht.con" as lemma.
283
284 inline procedural "cic:/CoRN/algebra/CGroups/minus_ap_zero.con" as lemma.
285
286 inline procedural "cic:/CoRN/algebra/CGroups/zero_minus_apart.con" as lemma.
287
288 inline procedural "cic:/CoRN/algebra/CGroups/inv_resp_ap_zero.con" as lemma.
289
290 inline procedural "cic:/CoRN/algebra/CGroups/inv_resp_ap.con" as lemma.
291
292 inline procedural "cic:/CoRN/algebra/CGroups/minus_resp_ap_rht.con" as lemma.
293
294 inline procedural "cic:/CoRN/algebra/CGroups/minus_resp_ap_lft.con" as lemma.
295
296 inline procedural "cic:/CoRN/algebra/CGroups/minus_cancel_ap_rht.con" as lemma.
297
298 (* UNEXPORTED
299 End cgroups_apartness
300 *)
301
302 (* UNEXPORTED
303 Hint Resolve op_rht_resp_ap: algebra.
304 *)
305
306 (* UNEXPORTED
307 Hint Resolve minus_ap_zero zero_minus_apart inv_resp_ap_zero: algebra.
308 *)
309
310 (* UNEXPORTED
311 Section CGroup_Ops
312 *)
313
314 (*#*
315 ** Functional operations
316
317 As before, we lift our group operations to the function space of the group.
318
319 %\begin{convention}%
320 Let [G] be a group and [F,F':(PartFunct G)] with domains given respectively
321 by [P] and [Q].
322 %\end{convention}%
323 *)
324
325 alias id "G" = "cic:/CoRN/algebra/CGroups/CGroup_Ops/G.var".
326
327 alias id "F" = "cic:/CoRN/algebra/CGroups/CGroup_Ops/F.var".
328
329 alias id "F'" = "cic:/CoRN/algebra/CGroups/CGroup_Ops/F'.var".
330
331 (* begin hide *)
332
333 inline procedural "cic:/CoRN/algebra/CGroups/CGroup_Ops/P.con" "CGroup_Ops__" as definition.
334
335 inline procedural "cic:/CoRN/algebra/CGroups/CGroup_Ops/Q.con" "CGroup_Ops__" as definition.
336
337 (* end hide *)
338
339 (* UNEXPORTED
340 Section Part_Function_Inv
341 *)
342
343 inline procedural "cic:/CoRN/algebra/CGroups/part_function_inv_strext.con" as lemma.
344
345 inline procedural "cic:/CoRN/algebra/CGroups/Finv.con" as definition.
346
347 (* UNEXPORTED
348 End Part_Function_Inv
349 *)
350
351 (* UNEXPORTED
352 Section Part_Function_Minus
353 *)
354
355 inline procedural "cic:/CoRN/algebra/CGroups/part_function_minus_strext.con" as lemma.
356
357 inline procedural "cic:/CoRN/algebra/CGroups/Fminus.con" as definition.
358
359 (* UNEXPORTED
360 End Part_Function_Minus
361 *)
362
363 (*#*
364 %\begin{convention}% Let [R:G->CProp].
365 %\end{convention}%
366 *)
367
368 alias id "R" = "cic:/CoRN/algebra/CGroups/CGroup_Ops/R.var".
369
370 inline procedural "cic:/CoRN/algebra/CGroups/included_FInv.con" as lemma.
371
372 inline procedural "cic:/CoRN/algebra/CGroups/included_FInv'.con" as lemma.
373
374 inline procedural "cic:/CoRN/algebra/CGroups/included_FMinus.con" as lemma.
375
376 inline procedural "cic:/CoRN/algebra/CGroups/included_FMinus'.con" as lemma.
377
378 inline procedural "cic:/CoRN/algebra/CGroups/included_FMinus''.con" as lemma.
379
380 (* UNEXPORTED
381 End CGroup_Ops
382 *)
383
384 (* UNEXPORTED
385 Implicit Arguments Finv [G].
386 *)
387
388 (* NOTATION
389 Notation "{--} x" := (Finv x) (at level 2, right associativity).
390 *)
391
392 (* UNEXPORTED
393 Implicit Arguments Fminus [G].
394 *)
395
396 (* NOTATION
397 Infix "{-}" := Fminus (at level 50, left associativity).
398 *)
399
400 (* UNEXPORTED
401 Hint Resolve included_FInv included_FMinus : included.
402 *)
403
404 (* UNEXPORTED
405 Hint Immediate included_FInv' included_FMinus' included_FMinus'' : included.
406 *)
407