-
Notifications
You must be signed in to change notification settings - Fork 251
Open
Labels
additiondiscussioninstanceslibrary-designupstreamChanges induced by Agda upstreamChanges induced by Agda upstream
Milestone
Description
Now that it looks very likely we're going to use instance arguments for resolving NonZero
proofs we should explore whether it's possible and/or desirable to automatically create derived instances to further improve the user's experience:
Candidates:
NonZero m → NonZero n → NonZero (m * n)
NonZero m → NonZero n → NonZero (m / n)
NonZero p → NonZero (1/ p)
NonZero m → NonZero (gcd m n)
NonZero n → NonZero (gcd m n)
NonZero m → NonZero (m ^ n)
NonZero n → NonZero (s ◃ n)
(the latter two are an example of where one might get multiple instances for the same proof and where irrelevance would be useful)
A list of proofs that would benefit from these:
Data.Nat.LCM
- all of itData.Rational.Unnormalised.Properties
- *-cancelˡ-/ *-cancelʳ-/ 1/-involutive-≡ 1/-involutiveData.Rational.Normalised.Properties
- normalize-coprime, ↥-normalize, ↧-normalize, normalize-cong, normalize-nonNeg, normalize-pos, normalize-injective-≃, 0/n≡0Data.Integer.Properties
- *-cancelʳ-≡Data.Integer.Divisibility.Signed
- ∣ᵤ⇒∣System.Clock
- show
Metadata
Metadata
Assignees
Labels
additiondiscussioninstanceslibrary-designupstreamChanges induced by Agda upstreamChanges induced by Agda upstream