-
Notifications
You must be signed in to change notification settings - Fork 51
/
Copy pathGroup_definitions.v
45 lines (39 loc) · 1.71 KB
/
Group_definitions.v
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
(* Contribution to the Coq Library V6.3 (July 1999) *)
(****************************************************************************)
(* *)
(* Group Theory in Coq *)
(* *)
(* *)
(* Coq V5.10 *)
(* *)
(* Gilles Kahn *)
(* *)
(* INRIA *)
(* Sophia-Antipolis *)
(* *)
(* January 1996 *)
(* *)
(****************************************************************************)
Require Import Ensembles.
Require Import Laws.
Section group_definition.
Variable U : Type.
Record Group : Type := group
{G_ : Ensemble U;
star_ : U -> U -> U;
inv_ : U -> U;
e_ : U;
G0_ : endo_operation U G_ star_;
G1_ : associative U star_;
G2a_ : In U G_ e_;
G2b_ : left_neutral U star_ e_;
G2c_ : right_neutral U star_ e_;
G3a_ : endo_function U G_ inv_;
G3b_ : right_inverse U star_ inv_ e_;
G3c_ : left_inverse U star_ inv_ e_}.
Inductive subgroup (g1 g2 : Group) : Prop :=
Definition_of_subgroup :
Included U (G_ g1) (G_ g2) -> star_ g1 = star_ g2 -> subgroup g1 g2.
Definition Setsubgroup (E : Ensemble U) (Gr : Group) : Prop :=
ex (fun g : Group => subgroup g Gr /\ G_ g = E).
End group_definition.