@@ -19,8 +19,7 @@ open import Data.Product as Product
1919 using (_,_)
2020open import Level using (Level)
2121open import Relation.Binary.Definitions using (Reflexive)
22- open import Relation.Binary.Morphism.Construct.Product
23- using (proj₁; proj₂; <_,_>)
22+ import Relation.Binary.Morphism.Construct.Product as RP
2423
2524private
2625 variable
@@ -40,15 +39,15 @@ module Magma (M : RawMagma a ℓ₁) (N : RawMagma b ℓ₂) where
4039
4140 isMagmaHomomorphism : IsMagmaHomomorphism (rawMagma M N) M Product.proj₁
4241 isMagmaHomomorphism = record
43- { isRelHomomorphism = proj₁
42+ { isRelHomomorphism = RP. proj₁
4443 ; homo = λ _ _ → refl
4544 }
4645
4746 module Proj₂ (refl : Reflexive N._≈_) where
4847
4948 isMagmaHomomorphism : IsMagmaHomomorphism (rawMagma M N) N Product.proj₂
5049 isMagmaHomomorphism = record
51- { isRelHomomorphism = proj₂
50+ { isRelHomomorphism = RP. proj₂
5251 ; homo = λ _ _ → refl
5352 }
5453
@@ -59,13 +58,34 @@ module Magma (M : RawMagma a ℓ₁) (N : RawMagma b ℓ₂) where
5958 IsMagmaHomomorphism P N h →
6059 IsMagmaHomomorphism P (rawMagma M N) (Product.< f , h >)
6160 isMagmaHomomorphism F H = record
62- { isRelHomomorphism = < F.isRelHomomorphism , H.isRelHomomorphism >
61+ { isRelHomomorphism = RP. < F.isRelHomomorphism , H.isRelHomomorphism >
6362 ; homo = λ x y → F.homo x y , H.homo x y
6463 }
6564 where
6665 module F = IsMagmaHomomorphism F
6766 module H = IsMagmaHomomorphism H
6867
68+ -- Package for export
69+ module Magma-Export {M : RawMagma a ℓ₁} {N : RawMagma b ℓ₂} where
70+ open Magma
71+
72+ private
73+ module M = RawMagma M
74+ module N = RawMagma N
75+
76+ module _ {refl : Reflexive M._≈_} where
77+ proj₁ = Proj₁.isMagmaHomomorphism M M refl
78+
79+ module _ {refl : Reflexive N._≈_} where
80+ proj₂ = Proj₂.isMagmaHomomorphism M N refl
81+
82+ module _ {P : RawMagma c ℓ₃} where
83+
84+ private
85+ module P = RawMagma P
86+
87+ <_,_> = Pair.isMagmaHomomorphism M N P
88+
6989------------------------------------------------------------------------
7090-- Monoids
7191
@@ -107,3 +127,24 @@ module Monoid (M : RawMonoid a ℓ₁) (N : RawMonoid b ℓ₂) where
107127 where
108128 module F = IsMonoidHomomorphism F
109129 module H = IsMonoidHomomorphism H
130+
131+ -- Package for export
132+ module Monoid-Export {M : RawMonoid a ℓ₁} {N : RawMonoid b ℓ₂} where
133+ open Monoid
134+
135+ private
136+ module M = RawMonoid M
137+ module N = RawMonoid N
138+
139+ module _ {refl : Reflexive M._≈_} where
140+ proj₁ = Proj₁.isMonoidHomomorphism M M refl
141+
142+ module _ {refl : Reflexive N._≈_} where
143+ proj₂ = Proj₂.isMonoidHomomorphism M N refl
144+
145+ module _ {P : RawMonoid c ℓ₃} where
146+
147+ private
148+ module P = RawMonoid P
149+
150+ <_,_> = Pair.isMonoidHomomorphism M N P
0 commit comments