| 
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