2
{-# OPTIONS --no-irrelevant-projections #-}
4
module IrrelevantRecordFields where
9
data _≡_ {A : Set}(a : A) : A -> Set where
12
sym : {A : Set}{a b : A} → a ≡ b → b ≡ a
15
record SemiG : Set1 where
16
constructor _,_,_,_,_,_
21
.assoc : ∀ {x y z} -> x + (y + z) ≡ (x + y) + z
22
.leftUnit : ∀ {x} -> unit + x ≡ x
23
.rightUnit : ∀ {x} -> x + unit ≡ x
26
dual (M , e , _+_ , assoc , leftUnit , rightUnit) =
27
M , e , (λ x y -> y + x) , sym assoc , rightUnit , leftUnit
29
data _≡₁_ {A : Set1}(a : A) : A -> Set where
35
dual∘dual≡id : ∀ M -> dual (dual M) ≡₁ M
36
dual∘dual≡id M = refl {a = M}