File tree Expand file tree Collapse file tree 7 files changed +820
-708
lines changed Expand file tree Collapse file tree 7 files changed +820
-708
lines changed Load Diff Large diffs are not rendered by default.
Original file line number Diff line number Diff line change 1414
1515module Data.Integer.Base where
1616
17- open import Data.Bool.Base using (Bool; true; false)
17+ open import Data.Bool.Base using (Bool; T; true; false)
1818open import Data.Empty using (⊥)
1919open import Data.Unit.Base using (⊤)
2020open import Data.Nat.Base as ℕ
@@ -127,23 +127,39 @@ _≤ᵇ_ : ℤ → ℤ → Bool
127127NonZero : Pred ℤ 0ℓ
128128NonZero i = ℕ.NonZero ∣ i ∣
129129
130- Positive : Pred ℤ 0ℓ
131- Positive +[1+ n ] = ⊤
132- Positive +0 = ⊥
133- Positive -[1+ n ] = ⊥
130+ record Positive (i : ℤ) : Set where
131+ field
132+ pos : T (1ℤ ≤ᵇ i)
134133
135- Negative : Pred ℤ 0ℓ
136- Negative (+ n) = ⊥
137- Negative -[1+ n ] = ⊤
134+ record NonNegative (i : ℤ) : Set where
135+ field
136+ nonNeg : T (0ℤ ≤ᵇ i)
138137
139- NonPositive : Pred ℤ 0ℓ
140- NonPositive +[1+ n ] = ⊥
141- NonPositive +0 = ⊤
142- NonPositive -[1+ n ] = ⊤
138+ record NonPositive (i : ℤ) : Set where
139+ field
140+ nonPos : T (i ≤ᵇ 0ℤ)
143141
144- NonNegative : Pred ℤ 0ℓ
145- NonNegative (+ n) = ⊤
146- NonNegative -[1+ n ] = ⊥
142+ record Negative (i : ℤ) : Set where
143+ field
144+ neg : T (i ≤ᵇ -1ℤ)
145+
146+ -- Instances
147+
148+ instance
149+ pos : ∀ {n} → Positive +[1+ n ]
150+ pos = _
151+
152+ nonNeg : ∀ {n} → NonNegative (+ n)
153+ nonNeg = _
154+
155+ nonPos0 : NonPositive 0ℤ
156+ nonPos0 = _
157+
158+ nonPos : ∀ {n} → NonPositive -[1+ n ]
159+ nonPos = _
160+
161+ neg : ∀ {n} → Negative -[1+ n ]
162+ neg = _
147163
148164-- Constructors
149165
Original file line number Diff line number Diff line change @@ -90,7 +90,7 @@ a≡a%ℕn+[a/ℕn]*n n@(-[1+ _ ]) d with ∣ n ∣ ℕ.% d in eq
9090
9191[n/ℕd]*d≤n : ∀ n d .{{_ : ℕ.NonZero d}} → (n divℕ d) * + d ≤ n
9292[n/ℕd]*d≤n n d = let q = n divℕ d; r = n modℕ d in begin
93- q * + d ≤⟨ n≤m+n r ⟩
93+ q * + d ≤⟨ i≤j+i _ (+ r) ⟩
9494 + r + q * + d ≡˘⟨ a≡a%ℕn+[a/ℕn]*n n d ⟩
9595 n ∎
9696
Load Diff Large diffs are not rendered by default.
Original file line number Diff line number Diff line change @@ -88,6 +88,8 @@ record NonZero (n : ℕ) : Set where
8888 field
8989 nonZero : T (not (n ≡ᵇ 0 ))
9090
91+ -- Instances
92+
9193instance
9294 nonZero : ∀ {n} → NonZero (suc n)
9395 nonZero = _
Load Diff Large diffs are not rendered by default.
Load Diff Large diffs are not rendered by default.
You can’t perform that action at this time.
0 commit comments