Skip to content
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] - feat(tactic/abel): check for defeq of atoms instead of syntactic eq #8628

Closed
wants to merge 4 commits into from

Conversation

Vierkantor
Copy link
Collaborator

@Vierkantor Vierkantor commented Aug 11, 2021

I had a call to abel break after adding a new typeclass instance, and it turns out this was because two terms became defeq-but-not-syntactically-eq. This PR modifies the equality check in abel to follow the implementation in e.g. ring.

By default, abel now unifies atoms up to reducible, which should not have a huge impact on build times. Use abel! for trying to unify up to semireducible.

I also renamed the tactic.abel.cache to tactic.abel.context, since we store more things in there than a few elaborated terms. To appease the docstring linter, I added docs for all of the renamed defs.


Open in Gitpod

I still need to figure out what the default reducibility of `is_def_eq` will be
here, or whether this will make calls to `abel` significantly slower. The level
of reducibility should probably be a parameter to the tactic.
@Vierkantor Vierkantor added WIP Work in progress t-meta Tactics, attributes or user commands labels Aug 11, 2021
Use `abel!` for trying to unify up to `semireducible`.

Also renamed the `tactic.abel.cache` to `tactic.abel.context`, since we store
more things in there than a few elaborated terms.
I'll just do the ones that the linter complains about for now, and let someone
with more understanding of what `abel` does underneath the hood explain the rest.
@Vierkantor Vierkantor added awaiting-review The author would like community review of the PR and removed WIP Work in progress labels Aug 13, 2021
Copy link
Member

@robertylewis robertylewis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me!

bors d+

src/tactic/abel.lean Outdated Show resolved Hide resolved
src/tactic/abel.lean Show resolved Hide resolved
src/tactic/abel.lean Show resolved Hide resolved
@bors
Copy link

bors bot commented Aug 13, 2021

✌️ Vierkantor can now approve this pull request. To approve and merge a pull request, simply reply with bors r+. More detailed instructions are available here.

@github-actions github-actions bot added delegated The PR author may merge after reviewing final suggestions. and removed awaiting-review The author would like community review of the PR labels Aug 13, 2021
Co-authored-by: Rob Lewis <Rob.y.lewis@gmail.com>
@Vierkantor
Copy link
Collaborator Author

bors merge

bors bot pushed a commit that referenced this pull request Aug 16, 2021
…8628)

I had a call to `abel` break after adding a new typeclass instance, and it turns out this was because two terms became defeq-but-not-syntactically-eq. This PR modifies the equality check in `abel` to follow the implementation in e.g. `ring`.

By default, `abel` now unifies atoms up to `reducible`, which should not have a huge impact on build times. Use `abel!` for trying to unify up to `semireducible`.

I also renamed the `tactic.abel.cache` to `tactic.abel.context`, since we store more things in there than a few elaborated terms. To appease the docstring linter, I added docs for all of the renamed `def`s.



Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>
@github-actions github-actions bot added the ready-to-merge All that is left is for bors to build and merge this PR. (Remember you need to say `bors r+`.) label Aug 16, 2021
@bors
Copy link

bors bot commented Aug 16, 2021

Pull request successfully merged into master.

Build succeeded:

@bors bors bot changed the title feat(tactic/abel): check for defeq of atoms instead of syntactic eq [Merged by Bors] - feat(tactic/abel): check for defeq of atoms instead of syntactic eq Aug 16, 2021
@bors bors bot closed this Aug 16, 2021
@bors bors bot deleted the abel-defeq branch August 16, 2021 15:18
@digama0 digama0 added the modifies-tactic-syntax This PR adds a new interactive tactic or modifies the syntax of an existing tactic. label Jan 23, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
delegated The PR author may merge after reviewing final suggestions. modifies-tactic-syntax This PR adds a new interactive tactic or modifies the syntax of an existing tactic. ready-to-merge All that is left is for bors to build and merge this PR. (Remember you need to say `bors r+`.) t-meta Tactics, attributes or user commands
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants