@@ -301,6 +301,22 @@ record AbelianGroup c ℓ : Set (suc (c ⊔ ℓ)) where
301
301
-- Bundles with 2 binary operations
302
302
------------------------------------------------------------------------
303
303
304
+ record RawLattice c ℓ : Set (suc (c ⊔ ℓ)) where
305
+ infixr 7 _∧_
306
+ infixr 6 _∨_
307
+ infix 4 _≈_
308
+ field
309
+ Carrier : Set c
310
+ _≈_ : Rel Carrier ℓ
311
+ _∧_ : Op₂ Carrier
312
+ _∨_ : Op₂ Carrier
313
+
314
+ ∨-rawMagma : RawMagma c ℓ
315
+ ∨-rawMagma = record { _≈_ = _≈_; _∙_ = _∨_ }
316
+
317
+ ∧-rawMagma : RawMagma c ℓ
318
+ ∧-rawMagma = record { _≈_ = _≈_; _∙_ = _∧_ }
319
+
304
320
record Lattice c ℓ : Set (suc (c ⊔ ℓ)) where
305
321
infixr 7 _∧_
306
322
infixr 6 _∨_
@@ -314,6 +330,15 @@ record Lattice c ℓ : Set (suc (c ⊔ ℓ)) where
314
330
315
331
open IsLattice isLattice public
316
332
333
+ rawLattice : RawLattice c ℓ
334
+ rawLattice = record
335
+ { _≈_ = _≈_
336
+ ; _∧_ = _∧_
337
+ ; _∨_ = _∨_
338
+ }
339
+
340
+ open RawLattice rawLattice using (∨-rawMagma; ∧-rawMagma)
341
+
317
342
setoid : Setoid _ _
318
343
setoid = record { isEquivalence = isEquivalence }
319
344
@@ -334,13 +359,40 @@ record DistributiveLattice c ℓ : Set (suc (c ⊔ ℓ)) where
334
359
lattice : Lattice _ _
335
360
lattice = record { isLattice = isLattice }
336
361
337
- open Lattice lattice public using (setoid)
362
+ open Lattice lattice public using (rawLattice; setoid)
338
363
339
364
340
365
------------------------------------------------------------------------
341
366
-- Bundles with 2 binary operations & 1 element
342
367
------------------------------------------------------------------------
343
368
369
+ record RawNearSemiring c ℓ : Set (suc (c ⊔ ℓ)) where
370
+ infixl 7 _*_
371
+ infixl 6 _+_
372
+ infix 4 _≈_
373
+ field
374
+ Carrier : Set c
375
+ _≈_ : Rel Carrier ℓ
376
+ _+_ : Op₂ Carrier
377
+ _*_ : Op₂ Carrier
378
+ 0# : Carrier
379
+
380
+ +-rawMonoid : RawMonoid c ℓ
381
+ +-rawMonoid = record
382
+ { _≈_ = _≈_
383
+ ; _∙_ = _+_
384
+ ; ε = 0#
385
+ }
386
+
387
+ open RawMonoid +-rawMonoid public
388
+ using () renaming (rawMagma to +-rawMagma)
389
+
390
+ *-rawMagma : RawMagma c ℓ
391
+ *-rawMagma = record
392
+ { _≈_ = _≈_
393
+ ; _∙_ = _*_
394
+ }
395
+
344
396
record NearSemiring c ℓ : Set (suc (c ⊔ ℓ)) where
345
397
infixl 7 _*_
346
398
infixl 6 _+_
@@ -355,6 +407,14 @@ record NearSemiring c ℓ : Set (suc (c ⊔ ℓ)) where
355
407
356
408
open IsNearSemiring isNearSemiring public
357
409
410
+ rawNearSemiring : RawNearSemiring _ _
411
+ rawNearSemiring = record
412
+ { _≈_ = _≈_
413
+ ; _+_ = _+_
414
+ ; _*_ = _*_
415
+ ; 0# = 0#
416
+ }
417
+
358
418
+-monoid : Monoid _ _
359
419
+-monoid = record { isMonoid = +-isMonoid }
360
420
@@ -398,6 +458,7 @@ record SemiringWithoutOne c ℓ : Set (suc (c ⊔ ℓ)) where
398
458
( +-rawMagma; +-magma; +-semigroup
399
459
; +-rawMonoid; +-monoid
400
460
; *-rawMagma; *-magma; *-semigroup
461
+ ; rawNearSemiring
401
462
)
402
463
403
464
+-commutativeMonoid : CommutativeMonoid _ _
@@ -432,7 +493,7 @@ record CommutativeSemiringWithoutOne c ℓ : Set (suc (c ⊔ ℓ)) where
432
493
( +-rawMagma; +-magma; +-semigroup; +-commutativeSemigroup
433
494
; *-rawMagma; *-magma; *-semigroup
434
495
; +-rawMonoid; +-monoid; +-commutativeMonoid
435
- ; nearSemiring
496
+ ; nearSemiring; rawNearSemiring
436
497
)
437
498
438
499
------------------------------------------------------------------------
@@ -444,12 +505,30 @@ record RawSemiring c ℓ : Set (suc (c ⊔ ℓ)) where
444
505
infixl 6 _+_
445
506
infix 4 _≈_
446
507
field
447
- Carrier : Set c
448
- _≈_ : Rel Carrier ℓ
449
- _+_ : Op₂ Carrier
450
- _*_ : Op₂ Carrier
451
- 0# : Carrier
452
- 1# : Carrier
508
+ Carrier : Set c
509
+ _≈_ : Rel Carrier ℓ
510
+ _+_ : Op₂ Carrier
511
+ _*_ : Op₂ Carrier
512
+ 0# : Carrier
513
+ 1# : Carrier
514
+
515
+ rawNearSemiring : RawNearSemiring c ℓ
516
+ rawNearSemiring = record
517
+ { _≈_ = _≈_
518
+ ; _+_ = _+_
519
+ ; _*_ = _*_
520
+ ; 0# = 0#
521
+ }
522
+
523
+ open RawNearSemiring rawNearSemiring public
524
+ using (+-rawMonoid; +-rawMagma; *-rawMagma)
525
+
526
+ *-rawMonoid : RawMonoid c ℓ
527
+ *-rawMonoid = record
528
+ { _≈_ = _≈_
529
+ ; _∙_ = _*_
530
+ ; ε = 1#
531
+ }
453
532
454
533
455
534
record SemiringWithoutAnnihilatingZero c ℓ : Set (suc (c ⊔ ℓ)) where
@@ -469,6 +548,18 @@ record SemiringWithoutAnnihilatingZero c ℓ : Set (suc (c ⊔ ℓ)) where
469
548
open IsSemiringWithoutAnnihilatingZero
470
549
isSemiringWithoutAnnihilatingZero public
471
550
551
+ rawSemiring : RawSemiring c ℓ
552
+ rawSemiring = record
553
+ { _≈_ = _≈_
554
+ ; _+_ = _+_
555
+ ; _*_ = _*_
556
+ ; 0# = 0#
557
+ ; 1# = 1#
558
+ }
559
+
560
+ open RawSemiring rawSemiring public
561
+ using (rawNearSemiring)
562
+
472
563
+-commutativeMonoid : CommutativeMonoid _ _
473
564
+-commutativeMonoid =
474
565
record { isCommutativeMonoid = +-isCommutativeMonoid }
@@ -487,8 +578,7 @@ record SemiringWithoutAnnihilatingZero c ℓ : Set (suc (c ⊔ ℓ)) where
487
578
*-monoid = record { isMonoid = *-isMonoid }
488
579
489
580
open Monoid *-monoid public
490
- using ()
491
- renaming
581
+ using () renaming
492
582
( rawMagma to *-rawMagma
493
583
; magma to *-magma
494
584
; semigroup to *-semigroup
@@ -511,15 +601,6 @@ record Semiring c ℓ : Set (suc (c ⊔ ℓ)) where
511
601
512
602
open IsSemiring isSemiring public
513
603
514
- rawSemiring : RawSemiring _ _
515
- rawSemiring = record
516
- { _≈_ = _≈_
517
- ; _+_ = _+_
518
- ; _*_ = _*_
519
- ; 0# = 0#
520
- ; 1# = 1#
521
- }
522
-
523
604
semiringWithoutAnnihilatingZero : SemiringWithoutAnnihilatingZero _ _
524
605
semiringWithoutAnnihilatingZero = record
525
606
{ isSemiringWithoutAnnihilatingZero =
@@ -533,6 +614,7 @@ record Semiring c ℓ : Set (suc (c ⊔ ℓ)) where
533
614
; *-rawMagma; *-magma; *-semigroup
534
615
; +-rawMonoid; +-monoid; +-commutativeMonoid
535
616
; *-rawMonoid; *-monoid
617
+ ; rawNearSemiring ; rawSemiring
536
618
)
537
619
538
620
semiringWithoutOne : SemiringWithoutOne _ _
@@ -618,9 +700,9 @@ record RawRing c ℓ : Set (suc (c ⊔ ℓ)) where
618
700
619
701
*-rawMonoid : RawMonoid c ℓ
620
702
*-rawMonoid = record
621
- { _≈_ = _≈_
622
- ; _∙_ = _*_
623
- ; ε = 1#
703
+ { _≈_ = _≈_
704
+ ; _∙_ = _*_
705
+ ; ε = 1#
624
706
}
625
707
626
708
record Ring c ℓ : Set (suc (c ⊔ ℓ)) where
0 commit comments