-
Notifications
You must be signed in to change notification settings - Fork 251
[ refactor ] weaken type of Relation.Nullary.Negation.Core.contradiction-irr
#2785
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minor but important change. Well spotted.
Thanks! But mostly I'm annoyed with myself that this kind of downstream consequence of my introduction and refactoring of |
contradiction-irr a ¬a = ⊥-elim-irr (¬a a) | ||
|
||
contradiction : A → ¬ A → Whatever | ||
contradiction a = contradiction-irr a | ||
contradiction a ¬a = contradiction-irr a ¬a |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Was this changed forced? And if so, is this therefore a breaking change?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Two good questions, to which my evasive, equivocating answers would be: "yes, but...; no, but..."
- re: the change itself: yes, the eta-expansion was forced because of the (lack of!) subtyping issue between
A → B
and.A → B
, BUT the original definition could have been written in eta-expanded form, with equivalent semantics, so it's really an artefact of the (my!) lazy choice not to have done so originally...; - re: is it
breaking
: I would argue no, in terms of the behaviour of the exported definition ofcontradiction
itself, as there is no difference to the type, or uses, or call-sites ofcontradiction
; as tocontradiction-irr
, yes, indeed so as to enable [ add ] new name forflip
ped version ofRelation.Nullary.Negation.Core.contradiction
#2784 [ deprecate ]Data.Fin.Base.lower₁
in favour ofData.Fin.Base.lower
#2786 [ refactor ] makei ≢ j
argument toData.Fin.Base.punchOut
irrelevant #2790 downstream, BUT I would argue that it is abug
that we didn't follow through on the consequences of⊥
isRecomputable
#2199
As in the CHANGELOG
, I regard this as a minor improvement
: non-breaking, but arguably better move the commentary to non-backwards compatible
(at least for the downstream consequences, because the unfolding behaviour of the proposed revised function definitions changes subtly)?
While the suggestion been punted before, I might still argue that the type of contradiction
itself should be changed to .A → .(¬ A) → Whatever
, but I thought that would be a step too far here... but perhaps one way out is simply to agree here and now that that is what we will do for v3.0 (and get rid of contradiction-irr
completely!), and I'll move the milestone on the downstream PRs, but I don't want to have to relitigate these things for a third time then... ;-)
For justification, see
CHANGELOG
: this is really a consequence of #2199 and subsequent refactorings ofRelation.Nullary.Recomputable{.Properties}
. Cf. #2346 which might be worth re-opening?Very little is affected, except that
contradiction
now needs to be eta-expanded because there is no subtyping betweenA → B
and.A → B
.For candidate use, see the discussion in #2783 .