@@ -187,6 +187,25 @@ record RawMonoid c ℓ : Set (suc (c ⊔ ℓ)) where
187
187
using (_≉_)
188
188
189
189
190
+ record UnitalMagma c ℓ : Set (suc (c ⊔ ℓ)) where
191
+ infixl 7 _∙_
192
+ infix 4 _≈_
193
+ field
194
+ Carrier : Set c
195
+ _≈_ : Rel Carrier ℓ
196
+ _∙_ : Op₂ Carrier
197
+ ε : Carrier
198
+ isUnitalMagma : IsUnitalMagma _≈_ _∙_ ε
199
+
200
+ open IsUnitalMagma isUnitalMagma public
201
+
202
+ magma : Magma c ℓ
203
+ magma = record { isMagma = isMagma }
204
+
205
+ open Magma magma public
206
+ using (_≉_; rawMagma)
207
+
208
+
190
209
record Monoid c ℓ : Set (suc (c ⊔ ℓ)) where
191
210
infixl 7 _∙_
192
211
infix 4 _≈_
@@ -208,6 +227,9 @@ record Monoid c ℓ : Set (suc (c ⊔ ℓ)) where
208
227
rawMonoid : RawMonoid _ _
209
228
rawMonoid = record { _≈_ = _≈_; _∙_ = _∙_; ε = ε}
210
229
230
+ unitalMagma : UnitalMagma _ _
231
+ unitalMagma = record { isUnitalMagma = isUnitalMagma }
232
+
211
233
212
234
record CommutativeMonoid c ℓ : Set (suc (c ⊔ ℓ)) where
213
235
infixl 7 _∙_
@@ -225,7 +247,7 @@ record CommutativeMonoid c ℓ : Set (suc (c ⊔ ℓ)) where
225
247
monoid = record { isMonoid = isMonoid }
226
248
227
249
open Monoid monoid public
228
- using (_≉_; rawMagma; magma; semigroup; rawMonoid)
250
+ using (_≉_; rawMagma; magma; semigroup; unitalMagma; rawMonoid)
229
251
230
252
commutativeSemigroup : CommutativeSemigroup _ _
231
253
commutativeSemigroup = record { isCommutativeSemigroup = isCommutativeSemigroup }
@@ -251,7 +273,8 @@ record IdempotentCommutativeMonoid c ℓ : Set (suc (c ⊔ ℓ)) where
251
273
252
274
open CommutativeMonoid commutativeMonoid public
253
275
using
254
- ( _≉_; rawMagma; magma; commutativeMagma; semigroup; commutativeSemigroup
276
+ ( _≉_; rawMagma; magma; unitalMagma; commutativeMagma
277
+ ; semigroup; commutativeSemigroup
255
278
; rawMonoid; monoid
256
279
)
257
280
@@ -292,6 +315,27 @@ record RawGroup c ℓ : Set (suc (c ⊔ ℓ)) where
292
315
using (_≉_; rawMagma)
293
316
294
317
318
+ record Quasigroup c ℓ : Set (suc (c ⊔ ℓ)) where
319
+ infix 8 _⁻¹
320
+ infixl 7 _∙_
321
+ infix 4 _≈_
322
+ field
323
+ Carrier : Set c
324
+ _≈_ : Rel Carrier ℓ
325
+ _∙_ : Op₂ Carrier
326
+ ε : Carrier
327
+ _⁻¹ : Op₁ Carrier
328
+ isQuasigroup : IsQuasigroup _≈_ _∙_ ε _⁻¹
329
+
330
+ open IsQuasigroup isQuasigroup public
331
+
332
+ magma : Magma _ _
333
+ magma = record { isMagma = isMagma }
334
+
335
+ open Magma magma public
336
+ using (_≉_; rawMagma)
337
+
338
+
295
339
record Group c ℓ : Set (suc (c ⊔ ℓ)) where
296
340
infix 8 _⁻¹
297
341
infixl 7 _∙_
@@ -313,7 +357,13 @@ record Group c ℓ : Set (suc (c ⊔ ℓ)) where
313
357
monoid = record { isMonoid = isMonoid }
314
358
315
359
open Monoid monoid public
316
- using (_≉_; rawMagma; magma; semigroup; rawMonoid)
360
+ using (_≉_; rawMagma; magma; semigroup; unitalMagma; rawMonoid)
361
+
362
+ quasigroup : Quasigroup c ℓ
363
+ quasigroup = record
364
+ { isQuasigroup = isQuasigroup
365
+ }
366
+
317
367
318
368
record AbelianGroup c ℓ : Set (suc (c ⊔ ℓ)) where
319
369
infix 8 _⁻¹
@@ -332,8 +382,10 @@ record AbelianGroup c ℓ : Set (suc (c ⊔ ℓ)) where
332
382
group : Group _ _
333
383
group = record { isGroup = isGroup }
334
384
335
- open Group group public
336
- using (_≉_; rawMagma; magma; semigroup; monoid; rawMonoid; rawGroup)
385
+ open Group group public using
386
+ (_≉_; rawMagma; magma; semigroup
387
+ ; rawMonoid; monoid; rawGroup; quasigroup
388
+ )
337
389
338
390
commutativeMonoid : CommutativeMonoid _ _
339
391
commutativeMonoid = record { isCommutativeMonoid = isCommutativeMonoid }
@@ -475,10 +527,11 @@ record NearSemiring c ℓ : Set (suc (c ⊔ ℓ)) where
475
527
476
528
open Monoid +-monoid public
477
529
using (_≉_) renaming
478
- ( rawMagma to +-rawMagma
479
- ; magma to +-magma
480
- ; semigroup to +-semigroup
481
- ; rawMonoid to +-rawMonoid
530
+ ( rawMagma to +-rawMagma
531
+ ; magma to +-magma
532
+ ; semigroup to +-semigroup
533
+ ; unitalMagma to +-unitalMagma
534
+ ; rawMonoid to +-rawMonoid
482
535
)
483
536
484
537
*-semigroup : Semigroup _ _
@@ -510,7 +563,7 @@ record SemiringWithoutOne c ℓ : Set (suc (c ⊔ ℓ)) where
510
563
511
564
open NearSemiring nearSemiring public
512
565
using
513
- ( _≉_; +-rawMagma; +-magma; +-semigroup
566
+ ( _≉_; +-rawMagma; +-magma; +-unitalMagma; +- semigroup
514
567
; +-rawMonoid; +-monoid
515
568
; *-rawMagma; *-magma; *-semigroup
516
569
; rawNearSemiring
@@ -548,7 +601,7 @@ record CommutativeSemiringWithoutOne c ℓ : Set (suc (c ⊔ ℓ)) where
548
601
549
602
open SemiringWithoutOne semiringWithoutOne public
550
603
using
551
- ( _≉_; +-rawMagma; +-magma; +-semigroup; +-commutativeSemigroup
604
+ ( _≉_; +-rawMagma; +-magma; +-unitalMagma; +- semigroup; +-commutativeSemigroup
552
605
; *-rawMagma; *-magma; *-semigroup
553
606
; +-rawMonoid; +-monoid; +-commutativeMonoid
554
607
; nearSemiring; rawNearSemiring
@@ -626,6 +679,7 @@ record SemiringWithoutAnnihilatingZero c ℓ : Set (suc (c ⊔ ℓ)) where
626
679
using (_≉_) renaming
627
680
( rawMagma to +-rawMagma
628
681
; magma to +-magma
682
+ ; unitalMagma to +-unitalMagma
629
683
; commutativeMagma to +-commutativeMagma
630
684
; semigroup to +-semigroup
631
685
; commutativeSemigroup to +-commutativeSemigroup
@@ -669,7 +723,8 @@ record Semiring c ℓ : Set (suc (c ⊔ ℓ)) where
669
723
open SemiringWithoutAnnihilatingZero
670
724
semiringWithoutAnnihilatingZero public
671
725
using
672
- ( _≉_; +-rawMagma; +-magma; +-commutativeMagma; +-semigroup; +-commutativeSemigroup
726
+ ( _≉_; +-rawMagma; +-magma; +-unitalMagma; +-commutativeMagma
727
+ ; +-semigroup; +-commutativeSemigroup
673
728
; *-rawMagma; *-magma; *-semigroup
674
729
; +-rawMonoid; +-monoid; +-commutativeMonoid
675
730
; *-rawMonoid; *-monoid
@@ -704,7 +759,8 @@ record CommutativeSemiring c ℓ : Set (suc (c ⊔ ℓ)) where
704
759
705
760
open Semiring semiring public
706
761
using
707
- ( _≉_; +-rawMagma; +-magma; +-commutativeMagma; +-semigroup; +-commutativeSemigroup
762
+ ( _≉_; +-rawMagma; +-magma; +-unitalMagma; +-commutativeMagma
763
+ ; +-semigroup; +-commutativeSemigroup
708
764
; *-rawMagma; *-magma; *-semigroup
709
765
; +-rawMonoid; +-monoid; +-commutativeMonoid
710
766
; *-rawMonoid; *-monoid
@@ -752,7 +808,8 @@ record CancellativeCommutativeSemiring c ℓ : Set (suc (c ⊔ ℓ)) where
752
808
753
809
open CommutativeSemiring commutativeSemiring public
754
810
using
755
- ( +-rawMagma; +-magma; +-commutativeMagma; +-semigroup; +-commutativeSemigroup
811
+ ( +-rawMagma; +-magma; +-unitalMagma; +-commutativeMagma
812
+ ; +-semigroup; +-commutativeSemigroup
756
813
; *-rawMagma; *-magma; *-commutativeMagma; *-semigroup; *-commutativeSemigroup
757
814
; +-rawMonoid; +-monoid; +-commutativeMonoid
758
815
; *-rawMonoid; *-monoid; *-commutativeMonoid
@@ -808,6 +865,7 @@ record RawRing c ℓ : Set (suc (c ⊔ ℓ)) where
808
865
; _⁻¹ = -_
809
866
}
810
867
868
+
811
869
record Ring c ℓ : Set (suc (c ⊔ ℓ)) where
812
870
infix 8 -_
813
871
infixl 7 _*_
@@ -833,7 +891,8 @@ record Ring c ℓ : Set (suc (c ⊔ ℓ)) where
833
891
834
892
open Semiring semiring public
835
893
using
836
- ( _≉_; +-rawMagma; +-magma; +-commutativeMagma; +-semigroup; +-commutativeSemigroup
894
+ ( _≉_; +-rawMagma; +-magma; +-unitalMagma; +-commutativeMagma
895
+ ; +-semigroup; +-commutativeSemigroup
837
896
; *-rawMagma; *-magma; *-semigroup
838
897
; +-rawMonoid; +-monoid ; +-commutativeMonoid
839
898
; *-rawMonoid; *-monoid
@@ -842,7 +901,7 @@ record Ring c ℓ : Set (suc (c ⊔ ℓ)) where
842
901
)
843
902
844
903
open AbelianGroup +-abelianGroup public
845
- using () renaming (group to +-group)
904
+ using () renaming (group to +-group; quasigroup to +-quasigroup )
846
905
847
906
rawRing : RawRing _ _
848
907
rawRing = record
@@ -875,15 +934,16 @@ record CommutativeRing c ℓ : Set (suc (c ⊔ ℓ)) where
875
934
ring : Ring _ _
876
935
ring = record { isRing = isRing }
877
936
878
- open Ring ring public using (_≉_; rawRing; +-group; +-abelianGroup)
937
+ open Ring ring public using (_≉_; rawRing; +-quasigroup; +- group; +-abelianGroup)
879
938
880
939
commutativeSemiring : CommutativeSemiring _ _
881
940
commutativeSemiring =
882
941
record { isCommutativeSemiring = isCommutativeSemiring }
883
942
884
943
open CommutativeSemiring commutativeSemiring public
885
944
using
886
- ( +-rawMagma; +-magma; +-commutativeMagma; +-semigroup; +-commutativeSemigroup
945
+ ( +-rawMagma; +-magma; +-unitalMagma; +-commutativeMagma
946
+ ; +-semigroup; +-commutativeSemigroup
887
947
; *-rawMagma; *-magma; *-commutativeMagma; *-semigroup; *-commutativeSemigroup
888
948
; +-rawMonoid; +-monoid; +-commutativeMonoid
889
949
; *-rawMonoid; *-monoid; *-commutativeMonoid
0 commit comments