@@ -48,6 +48,40 @@ record Magma c ℓ : Set (suc (c ⊔ ℓ)) where
48
48
using (_≉_)
49
49
50
50
51
+ record SelectiveMagma c ℓ : Set (suc (c ⊔ ℓ)) where
52
+ infixl 7 _∙_
53
+ infix 4 _≈_
54
+ field
55
+ Carrier : Set c
56
+ _≈_ : Rel Carrier ℓ
57
+ _∙_ : Op₂ Carrier
58
+ isSelectiveMagma : IsSelectiveMagma _≈_ _∙_
59
+
60
+ open IsSelectiveMagma isSelectiveMagma public
61
+
62
+ magma : Magma c ℓ
63
+ magma = record { isMagma = isMagma }
64
+
65
+ open Magma magma public using (rawMagma)
66
+
67
+
68
+ record CommutativeMagma c ℓ : Set (suc (c ⊔ ℓ)) where
69
+ infixl 7 _∙_
70
+ infix 4 _≈_
71
+ field
72
+ Carrier : Set c
73
+ _≈_ : Rel Carrier ℓ
74
+ _∙_ : Op₂ Carrier
75
+ isCommutativeMagma : IsCommutativeMagma _≈_ _∙_
76
+
77
+ open IsCommutativeMagma isCommutativeMagma public
78
+
79
+ magma : Magma c ℓ
80
+ magma = record { isMagma = isMagma }
81
+
82
+ open Magma magma public using (rawMagma)
83
+
84
+
51
85
record Semigroup c ℓ : Set (suc (c ⊔ ℓ)) where
52
86
infixl 7 _∙_
53
87
infix 4 _≈_
@@ -101,6 +135,9 @@ record CommutativeSemigroup c ℓ : Set (suc (c ⊔ ℓ)) where
101
135
open Semigroup semigroup public
102
136
using (_≉_; magma; rawMagma)
103
137
138
+ commutativeMagma : CommutativeMagma c ℓ
139
+ commutativeMagma = record { isCommutativeMagma = isCommutativeMagma }
140
+
104
141
105
142
record Semilattice c ℓ : Set (suc (c ⊔ ℓ)) where
106
143
infixr 7 _∧_
@@ -120,23 +157,6 @@ record Semilattice c ℓ : Set (suc (c ⊔ ℓ)) where
120
157
using (_≉_; rawMagma; magma; semigroup)
121
158
122
159
123
- record SelectiveMagma c ℓ : Set (suc (c ⊔ ℓ)) where
124
- infixl 7 _∙_
125
- infix 4 _≈_
126
- field
127
- Carrier : Set c
128
- _≈_ : Rel Carrier ℓ
129
- _∙_ : Op₂ Carrier
130
- isSelectiveMagma : IsSelectiveMagma _≈_ _∙_
131
-
132
- open IsSelectiveMagma isSelectiveMagma public
133
-
134
- magma : Magma c ℓ
135
- magma = record { isMagma = isMagma }
136
-
137
- open Magma magma public
138
- using (_≉_; rawMagma)
139
-
140
160
------------------------------------------------------------------------
141
161
-- Bundles with 1 binary operation & 1 element
142
162
------------------------------------------------------------------------
@@ -202,6 +222,9 @@ record CommutativeMonoid c ℓ : Set (suc (c ⊔ ℓ)) where
202
222
commutativeSemigroup : CommutativeSemigroup _ _
203
223
commutativeSemigroup = record { isCommutativeSemigroup = isCommutativeSemigroup }
204
224
225
+ open CommutativeSemigroup commutativeSemigroup public
226
+ using (commutativeMagma)
227
+
205
228
206
229
record IdempotentCommutativeMonoid c ℓ : Set (suc (c ⊔ ℓ)) where
207
230
infixl 7 _∙_
@@ -219,7 +242,10 @@ record IdempotentCommutativeMonoid c ℓ : Set (suc (c ⊔ ℓ)) where
219
242
commutativeMonoid = record { isCommutativeMonoid = isCommutativeMonoid }
220
243
221
244
open CommutativeMonoid commutativeMonoid public
222
- using (_≉_; rawMagma; magma; semigroup; rawMonoid; monoid)
245
+ using
246
+ ( _≉_; rawMagma; magma; commutativeMagma; semigroup; commutativeSemigroup
247
+ ; rawMonoid; monoid
248
+ )
223
249
224
250
225
251
-- Idempotent commutative monoids are also known as bounded lattices.
@@ -305,7 +331,7 @@ record AbelianGroup c ℓ : Set (suc (c ⊔ ℓ)) where
305
331
commutativeMonoid = record { isCommutativeMonoid = isCommutativeMonoid }
306
332
307
333
open CommutativeMonoid commutativeMonoid public
308
- using (commutativeSemigroup)
334
+ using (commutativeMagma; commutativeSemigroup)
309
335
310
336
311
337
------------------------------------------------------------------------
@@ -328,6 +354,7 @@ record RawLattice c ℓ : Set (suc (c ⊔ ℓ)) where
328
354
∧-rawMagma : RawMagma c ℓ
329
355
∧-rawMagma = record { _≈_ = _≈_; _∙_ = _∧_ }
330
356
357
+
331
358
record Lattice c ℓ : Set (suc (c ⊔ ℓ)) where
332
359
infixr 7 _∧_
333
360
infixr 6 _∨_
@@ -409,6 +436,7 @@ record RawNearSemiring c ℓ : Set (suc (c ⊔ ℓ)) where
409
436
; _∙_ = _*_
410
437
}
411
438
439
+
412
440
record NearSemiring c ℓ : Set (suc (c ⊔ ℓ)) where
413
441
infixl 7 _*_
414
442
infixl 6 _+_
@@ -481,7 +509,10 @@ record SemiringWithoutOne c ℓ : Set (suc (c ⊔ ℓ)) where
481
509
+-commutativeMonoid = record { isCommutativeMonoid = +-isCommutativeMonoid }
482
510
483
511
open CommutativeMonoid +-commutativeMonoid public
484
- using () renaming (commutativeSemigroup to +-commutativeSemigroup)
512
+ using () renaming
513
+ ( commutativeMagma to +-commutativeMagma
514
+ ; commutativeSemigroup to +-commutativeSemigroup
515
+ )
485
516
486
517
487
518
record CommutativeSemiringWithoutOne c ℓ : Set (suc (c ⊔ ℓ)) where
@@ -584,6 +615,7 @@ record SemiringWithoutAnnihilatingZero c ℓ : Set (suc (c ⊔ ℓ)) where
584
615
using (_≉_) renaming
585
616
( rawMagma to +-rawMagma
586
617
; magma to +-magma
618
+ ; commutativeMagma to +-commutativeMagma
587
619
; semigroup to +-semigroup
588
620
; commutativeSemigroup to +-commutativeSemigroup
589
621
; rawMonoid to +-rawMonoid
@@ -626,7 +658,7 @@ record Semiring c ℓ : Set (suc (c ⊔ ℓ)) where
626
658
open SemiringWithoutAnnihilatingZero
627
659
semiringWithoutAnnihilatingZero public
628
660
using
629
- ( _≉_; +-rawMagma; +-magma; +-semigroup; +-commutativeSemigroup
661
+ ( _≉_; +-rawMagma; +-magma; +-commutativeMagma; +- semigroup; +-commutativeSemigroup
630
662
; *-rawMagma; *-magma; *-semigroup
631
663
; +-rawMonoid; +-monoid; +-commutativeMonoid
632
664
; *-rawMonoid; *-monoid
@@ -661,7 +693,7 @@ record CommutativeSemiring c ℓ : Set (suc (c ⊔ ℓ)) where
661
693
662
694
open Semiring semiring public
663
695
using
664
- ( _≉_; +-rawMagma; +-magma; +-semigroup; +-commutativeSemigroup
696
+ ( _≉_; +-rawMagma; +-magma; +-commutativeMagma; +- semigroup; +-commutativeSemigroup
665
697
; *-rawMagma; *-magma; *-semigroup
666
698
; +-rawMonoid; +-monoid; +-commutativeMonoid
667
699
; *-rawMonoid; *-monoid
@@ -670,16 +702,17 @@ record CommutativeSemiring c ℓ : Set (suc (c ⊔ ℓ)) where
670
702
; rawSemiring
671
703
)
672
704
673
- *-commutativeSemigroup : CommutativeSemigroup _ _
674
- *-commutativeSemigroup = record
675
- { isCommutativeSemigroup = *-isCommutativeSemigroup
676
- }
677
-
678
705
*-commutativeMonoid : CommutativeMonoid _ _
679
706
*-commutativeMonoid = record
680
707
{ isCommutativeMonoid = *-isCommutativeMonoid
681
708
}
682
709
710
+ open CommutativeMonoid *-commutativeMonoid public
711
+ using () renaming
712
+ ( commutativeMagma to *-commutativeMagma
713
+ ; commutativeSemigroup to *-commutativeSemigroup
714
+ )
715
+
683
716
commutativeSemiringWithoutOne : CommutativeSemiringWithoutOne _ _
684
717
commutativeSemiringWithoutOne = record
685
718
{ isCommutativeSemiringWithoutOne = isCommutativeSemiringWithoutOne
@@ -701,6 +734,21 @@ record CancellativeCommutativeSemiring c ℓ : Set (suc (c ⊔ ℓ)) where
701
734
702
735
open IsCancellativeCommutativeSemiring isCancellativeCommutativeSemiring public
703
736
737
+ commutativeSemiring : CommutativeSemiring c ℓ
738
+ commutativeSemiring = record
739
+ { isCommutativeSemiring = isCommutativeSemiring
740
+ }
741
+
742
+ open CommutativeSemiring commutativeSemiring public
743
+ using
744
+ ( +-rawMagma; +-magma; +-commutativeMagma; +-semigroup; +-commutativeSemigroup
745
+ ; *-rawMagma; *-magma; *-commutativeMagma; *-semigroup; *-commutativeSemigroup
746
+ ; +-rawMonoid; +-monoid; +-commutativeMonoid
747
+ ; *-rawMonoid; *-monoid; *-commutativeMonoid
748
+ ; nearSemiring; semiringWithoutOne
749
+ ; semiringWithoutAnnihilatingZero
750
+ ; rawSemiring
751
+ )
704
752
705
753
------------------------------------------------------------------------
706
754
-- Bundles with 2 binary operations, 1 unary operation & 2 elements
@@ -762,7 +810,7 @@ record Ring c ℓ : Set (suc (c ⊔ ℓ)) where
762
810
763
811
open Semiring semiring public
764
812
using
765
- ( _≉_; +-rawMagma; +-magma; +-semigroup; +-commutativeSemigroup
813
+ ( _≉_; +-rawMagma; +-magma; +-commutativeMagma; +- semigroup; +-commutativeSemigroup
766
814
; *-rawMagma; *-magma; *-semigroup
767
815
; +-rawMonoid; +-monoid ; +-commutativeMonoid
768
816
; *-rawMonoid; *-monoid
@@ -812,8 +860,8 @@ record CommutativeRing c ℓ : Set (suc (c ⊔ ℓ)) where
812
860
813
861
open CommutativeSemiring commutativeSemiring public
814
862
using
815
- ( +-rawMagma; +-magma; +-semigroup; +-commutativeSemigroup
816
- ; *-rawMagma; *-magma; *-semigroup; *-commutativeSemigroup
863
+ ( +-rawMagma; +-magma; +-commutativeMagma; +- semigroup; +-commutativeSemigroup
864
+ ; *-rawMagma; *-magma; *-commutativeMagma; *- semigroup; *-commutativeSemigroup
817
865
; +-rawMonoid; +-monoid; +-commutativeMonoid
818
866
; *-rawMonoid; *-monoid; *-commutativeMonoid
819
867
; nearSemiring; semiringWithoutOne
0 commit comments