Skip to content

Commit 1b7d503

Browse files
committed
Address comments
1 parent 95061ac commit 1b7d503

File tree

1 file changed

+75
-32
lines changed

1 file changed

+75
-32
lines changed

src/Algebra/Morphism/Construct/DirectProduct.agda

Lines changed: 75 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -9,58 +9,101 @@
99

1010
module Algebra.Morphism.Construct.DirectProduct where
1111

12-
open import Algebra.Bundles
12+
open import Algebra.Bundles using (RawMagma; RawMonoid)
13+
open import Algebra.Construct.DirectProduct using (rawMagma; rawMonoid)
1314
open import Algebra.Morphism.Structures
1415
using ( module MagmaMorphisms
1516
; module MonoidMorphisms
1617
)
17-
open import Data.Product
18+
open import Data.Product as Product
19+
using (_,_)
1820
open import Level using (Level)
1921
open import Relation.Binary.Definitions using (Reflexive)
20-
open import Algebra.Construct.DirectProduct
22+
open import Relation.Binary.Morphism.Construct.Product
23+
using (proj₁; proj₂; <_,_>)
2124

2225
private
2326
variable
24-
c ℓ : Level
27+
a b c ℓ₁ ℓ₂ ℓ₃ : Level
2528

2629
------------------------------------------------------------------------
2730
-- Magmas
2831

29-
module _ (M N : RawMagma c ℓ) (open RawMagma M) (refl : Reflexive _≈_) where
30-
open MagmaMorphisms (rawMagma M N) M
32+
module Magma (M : RawMagma a ℓ₁) (N : RawMagma b ℓ₂) where
33+
open MagmaMorphisms
3134

32-
isMagmaHomomorphism-proj₁ : IsMagmaHomomorphism proj₁
33-
isMagmaHomomorphism-proj₁ = record
34-
{ isRelHomomorphism = record { cong = λ {x} {y} z z .proj₁ }
35-
; homo = λ _ _ refl
36-
}
35+
private
36+
module M = RawMagma M
37+
module N = RawMagma N
3738

38-
module _ (M N : RawMagma c ℓ) (open RawMagma N) (refl : Reflexive _≈_) where
39-
open MagmaMorphisms (rawMagma M N) N
39+
module Proj₁ (refl : Reflexive M._≈_) where
4040

41-
isMagmaHomomorphism-proj₂ : IsMagmaHomomorphism proj₂
42-
isMagmaHomomorphism-proj₂ = record
43-
{ isRelHomomorphism = record { cong = λ {x} {y} z z .proj₂ }
44-
; homo = λ _ _ refl
45-
}
41+
isMagmaHomomorphism : IsMagmaHomomorphism (rawMagma M N) M Product.proj₁
42+
isMagmaHomomorphism = record
43+
{ isRelHomomorphism = proj₁
44+
; homo = λ _ _ refl
45+
}
46+
47+
module Proj₂ (refl : Reflexive N._≈_) where
48+
49+
isMagmaHomomorphism : IsMagmaHomomorphism (rawMagma M N) N Product.proj₂
50+
isMagmaHomomorphism = record
51+
{ isRelHomomorphism = proj₂
52+
; homo = λ _ _ refl
53+
}
54+
55+
module Pair (P : RawMagma c ℓ₃) where
56+
57+
isMagmaHomomorphism : {f h}
58+
IsMagmaHomomorphism P M f
59+
IsMagmaHomomorphism P N h
60+
IsMagmaHomomorphism P (rawMagma M N) (Product.< f , h >)
61+
isMagmaHomomorphism F H = record
62+
{ isRelHomomorphism = < F.isRelHomomorphism , H.isRelHomomorphism >
63+
; homo = λ x y F.homo x y , H.homo x y
64+
}
65+
where
66+
module F = IsMagmaHomomorphism F
67+
module H = IsMagmaHomomorphism H
4668

4769
------------------------------------------------------------------------
4870
-- Monoids
4971

50-
module _ (M N : RawMonoid c ℓ) (open RawMonoid M) (refl : Reflexive _≈_) where
51-
open MonoidMorphisms (rawMonoid M N) M
72+
module Monoid (M : RawMonoid a ℓ₁) (N : RawMonoid b ℓ₂) where
73+
open MonoidMorphisms
74+
75+
private
76+
module M = RawMonoid M
77+
module N = RawMonoid N
78+
79+
module Proj₁ (refl : Reflexive M._≈_) where
80+
81+
isMonoidHomomorphism : IsMonoidHomomorphism (rawMonoid M N) M Product.proj₁
82+
isMonoidHomomorphism = record
83+
{ isMagmaHomomorphism = Magma.Proj₁.isMagmaHomomorphism M.rawMagma N.rawMagma refl
84+
; ε-homo = refl
85+
}
86+
87+
module Proj₂ (refl : Reflexive N._≈_) where
88+
89+
isMonoidHomomorphism : IsMonoidHomomorphism (rawMonoid M N) N Product.proj₂
90+
isMonoidHomomorphism = record
91+
{ isMagmaHomomorphism = Magma.Proj₂.isMagmaHomomorphism M.rawMagma N.rawMagma refl
92+
; ε-homo = refl
93+
}
5294

53-
isMonoidHomomorphism-proj₁ : IsMonoidHomomorphism proj₁
54-
isMonoidHomomorphism-proj₁ = record
55-
{ isMagmaHomomorphism = isMagmaHomomorphism-proj₁ _ _ refl
56-
; ε-homo = refl
57-
}
95+
module Pair (P : RawMonoid c ℓ₃) where
5896

59-
module _ (M N : RawMonoid c ℓ) (open RawMonoid N) (refl : Reflexive _≈_) where
60-
open MonoidMorphisms (rawMonoid M N) N
97+
private
98+
module P = RawMonoid P
6199

62-
isMonoidHomomorphism-proj₂ : IsMonoidHomomorphism proj₂
63-
isMonoidHomomorphism-proj₂ = record
64-
{ isMagmaHomomorphism = isMagmaHomomorphism-proj₂ _ _ refl
65-
; ε-homo = refl
66-
}
100+
isMonoidHomomorphism : {f h}
101+
IsMonoidHomomorphism P M f
102+
IsMonoidHomomorphism P N h
103+
IsMonoidHomomorphism P (rawMonoid M N) (Product.< f , h >)
104+
isMonoidHomomorphism F H = record
105+
{ isMagmaHomomorphism = Magma.Pair.isMagmaHomomorphism M.rawMagma N.rawMagma P.rawMagma F.isMagmaHomomorphism H.isMagmaHomomorphism
106+
; ε-homo = F.ε-homo , H.ε-homo }
107+
where
108+
module F = IsMonoidHomomorphism F
109+
module H = IsMonoidHomomorphism H

0 commit comments

Comments
 (0)