-
Notifications
You must be signed in to change notification settings - Fork 432
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
refactor: back rfl
tactic primarily via apply_rfl
#3718
Conversation
(Likely needs a stage0 update after 8463000) |
09a7c21
to
4c5d6e3
Compare
rfl
tactic deal with Iff
via @[refl]
rfl
tactic only via apply_rfl
I am a bit confused now. After a stage0 update, so that
kicks in I would have expected that with
the new code is used reliably. Nevertheless
fails with
It seems to me that somehow the
in
is broken. Maybe I can work around that, do another stage0 update, and then it works… |
Your change changed the grammar, so you need to do an update-stage0 after it. The problem is that you removed a syntax node kind for the old refl, but conv and others from stage0 were elaborated with syntax quotations using |
leanprover-community-mathlib4-bot
commented
Mar 19, 2024
•
edited by leanprover-community-bot
Loading
edited by leanprover-community-bot
Mathlib CI status (docs):
|
I still see mathlib failures
which I did not expect. It seems that the |
8be1056
to
f33384c
Compare
f33384c
to
763ec08
Compare
763ec08
to
f552ba3
Compare
Remove fallback case of `rfl`, to expose good error message Keep eq_refl in the rfl macro, but put it second Improve error message Update some tests Typo
d11d548
to
a5edae3
Compare
rfl
tactic only via apply_rfl
rfl
tactic primarily via apply_rfl
(Edited…) Compared the wrong revisions. Actually no significant change, as expected: |
building upon #3714, this (almost) implements the second half of #3302.
The main effect is that we now get a better error message when
rfl
fails. Forinstead of the wall of text
we now get
Unfortunately, because of very subtle differences in semantics (which transparency setting is used when reducing the goal and whether the “implicit lambda” feature applies) I could not make this simply the only
rfl
implementation. Sorfl
remains a macro and is still expanded toeq_refl
(difference transparency setting) andexact Iff.rfl
andexact HEq.rfl
(implicit lambda) to not break existing code. This can be revised later, so this still closes: #3302.A user might still be puzzled why to terms are not defeq. Explaining that better (“reduced to… and reduces to… etc.”) would also be great, but that’s not specific to
rfl
, so better left for some other time.