Skip to content

Commit be0b179

Browse files
Switch Positive/Negative/etc. to use irrelevant instance arguments (#1581)
1 parent bfbb639 commit be0b179

File tree

7 files changed

+820
-708
lines changed

7 files changed

+820
-708
lines changed

CHANGELOG.md

Lines changed: 262 additions & 113 deletions
Large diffs are not rendered by default.

src/Data/Integer/Base.agda

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
module 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)
1818
open import Data.Empty using (⊥)
1919
open import Data.Unit.Base using (⊤)
2020
open import Data.Nat.Base as ℕ
@@ -127,23 +127,39 @@ _≤ᵇ_ : ℤ → ℤ → Bool
127127
NonZero : Pred ℤ 0ℓ
128128
NonZero 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

src/Data/Integer/DivMod.agda

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff 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

src/Data/Integer/Properties.agda

Lines changed: 185 additions & 218 deletions
Large diffs are not rendered by default.

src/Data/Nat/Base.agda

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,8 @@ record NonZero (n : ℕ) : Set where
8888
field
8989
nonZero : T (not (n ≡ᵇ 0))
9090

91+
-- Instances
92+
9193
instance
9294
nonZero : {n} NonZero (suc n)
9395
nonZero = _

src/Data/Rational/Properties.agda

Lines changed: 117 additions & 131 deletions
Large diffs are not rendered by default.

src/Data/Rational/Unnormalised/Properties.agda

Lines changed: 222 additions & 230 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)