@@ -2,8 +2,7 @@ module Cubical.Data.Int.Fast.Base where
22
33open import Cubical.Foundations.Prelude
44open import Cubical.Data.Nat as ℕ hiding (_+_ ; _·_)
5- open import Cubical.Data.Int.Base hiding (_ℕ-_ ; _+_ ; _-_ ; _·_ ; sumFinℤ ; sumFinℤId) public
6- open import Cubical.Data.Fin.Inductive.Base
5+ open import Cubical.Data.Int.Base hiding (_ℕ-_ ; _+_ ; _-_ ; _·_) public
76
87infixl 7 _·_
98infixl 6 _+_ _-_
@@ -16,25 +15,18 @@ _ℕ-_ : ℕ → ℕ → ℤ
1615m ℕ- n = ℕ-hlp (m ℕ.∸ n) (n ℕ.∸ m)
1716
1817_+_ : ℤ → ℤ → ℤ
19- pos m + pos n = pos (m ℕ.+ n)
20- negsuc m + negsuc n = negsuc (suc (m ℕ.+ n))
21- pos m + negsuc n = m ℕ- (suc n)
22- negsuc m + pos n = n ℕ- (suc m )
18+ pos n + pos n₁ = pos (n ℕ.+ n₁ )
19+ negsuc n + negsuc n₁ = negsuc (suc (n ℕ.+ n₁ ))
20+ pos n + negsuc n₁ = n ℕ- (suc n₁ )
21+ negsuc n + pos n₁ = n₁ ℕ- (suc n )
2322
2423_-_ : ℤ → ℤ → ℤ
2524m - n = m + (- n)
2625
2726_·_ : ℤ → ℤ → ℤ
28- pos m · pos n = pos (m ℕ.· n)
29- pos zero · negsuc n = pos zero
30- pos (suc m) · negsuc n = negsuc (predℕ (suc m ℕ.· suc n))
31- negsuc m · pos zero = pos zero
32- negsuc m · pos (suc n) = negsuc (predℕ (suc m ℕ.· suc n))
33- negsuc m · negsuc n = pos (suc m ℕ.· suc n)
34-
35- sumFinℤ : {n : ℕ} (f : Fin n → ℤ) → ℤ
36- sumFinℤ {n = n} f = sumFinGen {n = n} _+_ 0 f
37-
38- sumFinℤId : (n : ℕ) {f g : Fin n → ℤ}
39- → ((x : _) → f x ≡ g x) → sumFinℤ {n = n} f ≡ sumFinℤ {n = n} g
40- sumFinℤId n t i = sumFinℤ {n = n} λ x → t x i
27+ pos n · pos n₁ = pos (n ℕ.· n₁)
28+ pos zero · negsuc n₁ = pos zero
29+ pos (suc n) · negsuc n₁ = negsuc (predℕ (suc n ℕ.· suc n₁))
30+ negsuc n · pos zero = pos zero
31+ negsuc n · pos (suc n₁) = negsuc (predℕ (suc n ℕ.· suc n₁))
32+ negsuc n · negsuc n₁ = pos (suc n ℕ.· suc n₁)
0 commit comments