Skip to content

feat: add [grind homo] attribute - #14446

Merged
leodemoura merged 1 commit into
masterfrom
grind_homo_1
Jul 18, 2026
Merged

feat: add [grind homo] attribute#14446
leodemoura merged 1 commit into
masterfrom
grind_homo_1

Conversation

@leodemoura

Copy link
Copy Markdown
Member

This PR adds the attribute [grind homo]. This is just the first step. We are going to use it to implement the approach described at
https://hackmd.io/Qd0nkWdzQImVe7TDGSAGbA

It will replace the ToInt typeclasses used in grind.

Andres Erbsen (@andres-erbsen) has already successfully tried and prototyped this approach at
AeneasVerif/kraken#122

This PR adds the attribute `[grind homo]`. This is just the first step. We are going to use it to implement the approach described at
https://hackmd.io/Qd0nkWdzQImVe7TDGSAGbA

It will replace the `ToInt` typeclasses used in `grind`.
Andres Erbsen (@andres-erbsen) has already successfully tried and prototyped this approach at
AeneasVerif/kraken#122
@leodemoura
leodemoura requested a review from kim-em as a code owner July 18, 2026 17:44
@leodemoura leodemoura added the changelog-tactics User facing tactics label Jul 18, 2026
@leodemoura
leodemoura enabled auto-merge July 18, 2026 17:44
@leodemoura
leodemoura added this pull request to the merge queue Jul 18, 2026
@github-actions github-actions Bot added the toolchain-available A toolchain is available for this PR, at leanprover/lean4-pr-releases:pr-release-NNNN label Jul 18, 2026
@mathlib-lean-pr-testing

Copy link
Copy Markdown

Mathlib CI status (docs):

  • ❗ Batteries/Mathlib CI will not be attempted unless your PR branches off the nightly-with-mathlib branch. Try git rebase bb32c6c88fdea2807b442275dbc3b8709fa245a3 --onto 79bec6d064d8672cb10864cad3d9fd054b6917ae. You can force Mathlib CI using the force-mathlib-ci label. (2026-07-18 18:11:05)

@leanprover-bot

Copy link
Copy Markdown
Collaborator

Reference manual CI status:

  • ❗ Reference manual CI will not be attempted unless your PR branches off the nightly-with-manual branch. Try git rebase bb32c6c88fdea2807b442275dbc3b8709fa245a3 --onto 49ff95727f98d43984726b26742d17a1ceea9dd5. You can force reference manual CI using the force-manual-ci label. (2026-07-18 18:11:06)

Merged via the queue into master with commit 5fe1ea9 Jul 18, 2026
24 checks passed
pull Bot pushed a commit to DaviRain-Su/lean4 that referenced this pull request Jul 19, 2026
This PR adds the attribute `[grind homo_pred]`. This attribute is used
for a separate mechanism which complements `[grind homo]`. It is not a
rewrite set but an eager fact injector keyed by head symbol. Where
`[grind homo]`` rules translate terms, `[grind homo_pred]` theorems
generate new facts about terms the moment they enter the E-graph.

See leanprover#14446
robsimmons pushed a commit that referenced this pull request Jul 29, 2026
This PR adds the attribute `[grind homo]`. This is just the first step.
We are going to use it to implement the approach described at
https://hackmd.io/Qd0nkWdzQImVe7TDGSAGbA

It will replace the `ToInt` typeclasses used in `grind`. 

Andres Erbsen (@andres-erbsen) has already successfully tried and
prototyped this approach at
AeneasVerif/kraken#122
robsimmons pushed a commit that referenced this pull request Jul 29, 2026
This PR adds the attribute `[grind homo_pred]`. This attribute is used
for a separate mechanism which complements `[grind homo]`. It is not a
rewrite set but an eager fact injector keyed by head symbol. Where
`[grind homo]`` rules translate terms, `[grind homo_pred]` theorems
generate new facts about terms the moment they enter the E-graph.

See #14446
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog-tactics User facing tactics toolchain-available A toolchain is available for this PR, at leanprover/lean4-pr-releases:pr-release-NNNN

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants