-
Notifications
You must be signed in to change notification settings - Fork 268
Expand file tree
/
Copy pathGroup.agda
More file actions
40 lines (28 loc) · 1.13 KB
/
Group.agda
File metadata and controls
40 lines (28 loc) · 1.13 KB
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
------------------------------------------------------------------------
-- The Agda standard library
--
-- Definition of subgroups
------------------------------------------------------------------------
{-# OPTIONS --safe --cubical-compatible #-}
open import Algebra.Bundles using (Group; RawGroup)
module Algebra.Construct.Sub.Group {c ℓ} (G : Group c ℓ) where
private
module G = Group G
open import Algebra.Structures using (IsGroup)
open import Algebra.Morphism.Structures using (IsGroupMonomorphism)
import Algebra.Morphism.GroupMonomorphism as GroupMonomorphism
open import Level using (suc; _⊔_)
record Subgroup c′ ℓ′ : Set (c ⊔ ℓ ⊔ suc (c′ ⊔ ℓ′)) where
field
Sub : RawGroup c′ ℓ′
private
module Sub = RawGroup Sub
field
ι : Sub.Carrier → G.Carrier
ι-monomorphism : IsGroupMonomorphism Sub G.rawGroup ι
module ι = IsGroupMonomorphism ι-monomorphism
isGroup : IsGroup Sub._≈_ Sub._∙_ Sub.ε Sub._⁻¹
isGroup = GroupMonomorphism.isGroup ι-monomorphism G.isGroup
group : Group _ _
group = record { isGroup = isGroup }
open Group group public hiding (isGroup)