|
12 | 12 | module Data.Nat.Base where
|
13 | 13 |
|
14 | 14 | open import Algebra.Bundles.Raw using (RawMagma; RawMonoid; RawNearSemiring; RawSemiring)
|
| 15 | +open import Algebra.Definitions.RawMagma using (_∣ˡ_) |
15 | 16 | open import Data.Bool.Base using (Bool; true; false; T; not)
|
16 | 17 | open import Data.Parity.Base using (Parity; 0ℙ; 1ℙ)
|
| 18 | +open import Data.Product.Base using (_,_) |
17 | 19 | open import Level using (0ℓ)
|
18 | 20 | open import Relation.Binary.Core using (Rel)
|
19 | 21 | open import Relation.Binary.PropositionalEquality.Core
|
@@ -120,11 +122,59 @@ instance
|
120 | 122 | >-nonZero⁻¹ (suc n) = z<s
|
121 | 123 |
|
122 | 124 | ------------------------------------------------------------------------
|
123 |
| --- Arithmetic |
| 125 | +-- Raw bundles |
124 | 126 |
|
125 | 127 | open import Agda.Builtin.Nat public
|
126 | 128 | using (_+_; _*_) renaming (_-_ to _∸_)
|
127 | 129 |
|
| 130 | ++-rawMagma : RawMagma 0ℓ 0ℓ |
| 131 | ++-rawMagma = record |
| 132 | + { _≈_ = _≡_ |
| 133 | + ; _∙_ = _+_ |
| 134 | + } |
| 135 | + |
| 136 | ++-0-rawMonoid : RawMonoid 0ℓ 0ℓ |
| 137 | ++-0-rawMonoid = record |
| 138 | + { _≈_ = _≡_ |
| 139 | + ; _∙_ = _+_ |
| 140 | + ; ε = 0 |
| 141 | + } |
| 142 | + |
| 143 | +*-rawMagma : RawMagma 0ℓ 0ℓ |
| 144 | +*-rawMagma = record |
| 145 | + { _≈_ = _≡_ |
| 146 | + ; _∙_ = _*_ |
| 147 | + } |
| 148 | + |
| 149 | +*-1-rawMonoid : RawMonoid 0ℓ 0ℓ |
| 150 | +*-1-rawMonoid = record |
| 151 | + { _≈_ = _≡_ |
| 152 | + ; _∙_ = _*_ |
| 153 | + ; ε = 1 |
| 154 | + } |
| 155 | + |
| 156 | ++-*-rawNearSemiring : RawNearSemiring 0ℓ 0ℓ |
| 157 | ++-*-rawNearSemiring = record |
| 158 | + { Carrier = _ |
| 159 | + ; _≈_ = _≡_ |
| 160 | + ; _+_ = _+_ |
| 161 | + ; _*_ = _*_ |
| 162 | + ; 0# = 0 |
| 163 | + } |
| 164 | + |
| 165 | ++-*-rawSemiring : RawSemiring 0ℓ 0ℓ |
| 166 | ++-*-rawSemiring = record |
| 167 | + { Carrier = _ |
| 168 | + ; _≈_ = _≡_ |
| 169 | + ; _+_ = _+_ |
| 170 | + ; _*_ = _*_ |
| 171 | + ; 0# = 0 |
| 172 | + ; 1# = 1 |
| 173 | + } |
| 174 | + |
| 175 | +------------------------------------------------------------------------ |
| 176 | +-- Arithmetic |
| 177 | + |
128 | 178 | open import Agda.Builtin.Nat
|
129 | 179 | using (div-helper; mod-helper)
|
130 | 180 |
|
@@ -260,14 +310,12 @@ m >′ n = n <′ m
|
260 | 310 |
|
261 | 311 | ------------------------------------------------------------------------
|
262 | 312 | -- Another alternative definition of _≤_
|
| 313 | +infix 4 _≤″_ _<″_ _≥″_ _>″_ |
263 | 314 |
|
264 |
| -record _≤″_ (m n : ℕ) : Set where |
265 |
| - constructor less-than-or-equal |
266 |
| - field |
267 |
| - {k} : ℕ |
268 |
| - proof : m + k ≡ n |
| 315 | +_≤″_ : (m n : ℕ) → Set |
| 316 | +_≤″_ = _∣ˡ_ +-rawMagma |
269 | 317 |
|
270 |
| -infix 4 _≤″_ _<″_ _≥″_ _>″_ |
| 318 | +pattern less-than-or-equal {k} proof = k , proof |
271 | 319 |
|
272 | 320 | _<″_ : Rel ℕ 0ℓ
|
273 | 321 | m <″ n = suc m ≤″ n
|
@@ -316,51 +364,12 @@ compare (suc m) (suc n) with compare m n
|
316 | 364 | ... | equal m = equal (suc m)
|
317 | 365 | ... | greater n k = greater (suc n) k
|
318 | 366 |
|
319 |
| ------------------------------------------------------------------------- |
320 |
| --- Raw bundles |
321 |
| - |
322 |
| -+-rawMagma : RawMagma 0ℓ 0ℓ |
323 |
| -+-rawMagma = record |
324 |
| - { _≈_ = _≡_ |
325 |
| - ; _∙_ = _+_ |
326 |
| - } |
327 |
| - |
328 |
| -+-0-rawMonoid : RawMonoid 0ℓ 0ℓ |
329 |
| -+-0-rawMonoid = record |
330 |
| - { _≈_ = _≡_ |
331 |
| - ; _∙_ = _+_ |
332 |
| - ; ε = 0 |
333 |
| - } |
334 |
| - |
335 |
| -*-rawMagma : RawMagma 0ℓ 0ℓ |
336 |
| -*-rawMagma = record |
337 |
| - { _≈_ = _≡_ |
338 |
| - ; _∙_ = _*_ |
339 |
| - } |
340 |
| - |
341 |
| -*-1-rawMonoid : RawMonoid 0ℓ 0ℓ |
342 |
| -*-1-rawMonoid = record |
343 |
| - { _≈_ = _≡_ |
344 |
| - ; _∙_ = _*_ |
345 |
| - ; ε = 1 |
346 |
| - } |
347 | 367 |
|
348 |
| -+-*-rawNearSemiring : RawNearSemiring 0ℓ 0ℓ |
349 |
| -+-*-rawNearSemiring = record |
350 |
| - { Carrier = _ |
351 |
| - ; _≈_ = _≡_ |
352 |
| - ; _+_ = _+_ |
353 |
| - ; _*_ = _*_ |
354 |
| - ; 0# = 0 |
355 |
| - } |
| 368 | +------------------------------------------------------------------------ |
| 369 | +-- DEPRECATED NAMES |
| 370 | +------------------------------------------------------------------------ |
| 371 | +-- Please use the new names as continuing support for the old names is |
| 372 | +-- not guaranteed. |
356 | 373 |
|
357 |
| -+-*-rawSemiring : RawSemiring 0ℓ 0ℓ |
358 |
| -+-*-rawSemiring = record |
359 |
| - { Carrier = _ |
360 |
| - ; _≈_ = _≡_ |
361 |
| - ; _+_ = _+_ |
362 |
| - ; _*_ = _*_ |
363 |
| - ; 0# = 0 |
364 |
| - ; 1# = 1 |
365 |
| - } |
| 374 | +-- Version 2.0 |
366 | 375 |
|
0 commit comments