-
Notifications
You must be signed in to change notification settings - Fork 299
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
[Merged by Bors] - fix(tactic/lint/simp): only head-beta reduce, don't whnf #4237
Conversation
|
||
|
||
-- However injectivity lemmas can still be marked simp, | ||
-- even though injective is reducible and unfolds to a bad simp lemma: |
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.
What do you mean by "bad" here?
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.
Bad in the sense of the simp_var_head
linter (which this file tests). If you unfold injective f
, then you get ∀ x y, f x = f y → x = y
where the left-hand side x
is a variable. This is bad because the simplifier code doesn't support this, and the linter makes sure we don't mark it as a simp lemma.
This lemma can never fire anyhow because of the `a ∈ s` condition, where `a` does not occur on the lhs.
bors merge |
This is necessary to accept simp lemmas like `injective reverse`.
Pull request successfully merged into master. Build succeeded: |
This is necessary to accept simp lemmas like
injective reverse
.See #4222 for motivation.
I don't know if this will break anything.