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

Add incremental forward reasoning #199

Merged
merged 1 commit into from
Feb 26, 2025
Merged

Add incremental forward reasoning #199

merged 1 commit into from
Feb 26, 2025

Conversation

JLimperg
Copy link
Collaborator

We introduce a new, incremental forward reasoning algorithm. "Incremental" means that the algorithm takes advantage of similarities between parent and child goals, i.e. a forward rule that was run on the parent goal is not re-run on the child goal unless the hypotheses that the rule was applied to have changed or disappeared.

The new algorithm is enabled by default and can be toggled with the aesop.dev.statefulForward option.

Breaking changes:

  • Forward rules (including destruct rules) always use reducible transparency and no longer support custom indexing modes.
  • destruct rules no longer clear non-propositional hypotheses.

See also
https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/Upcoming.20changes.20to.20Aesop.20forward.20rules

See the forward-code branch for the history of this feature.

closes #111

@JLimperg JLimperg enabled auto-merge February 26, 2025 16:18
@JLimperg JLimperg added this pull request to the merge queue Feb 26, 2025
@JLimperg JLimperg removed this pull request from the merge queue due to a manual request Feb 26, 2025
We introduce a new, incremental forward reasoning algorithm. "Incremental"
means that the algorithm takes advantage of similarities between parent
and child goals, i.e. a forward rule that was run on the parent goal is
not re-run on the child goal unless the hypotheses that the rule was
applied to have changed or disappeared.

The new algorithm is enabled by default and can be toggled with the
`aesop.dev.statefulForward` option.

Breaking changes:

- Forward rules (including destruct rules) always use `reducible`
  transparency and no longer support custom indexing modes.
- `destruct` rules no longer clear non-propositional hypotheses.

See also
https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/Upcoming.20changes.20to.20Aesop.20forward.20rules

See the `forward-code` branch for the history of this feature.

closes #111
@JLimperg JLimperg force-pushed the incremental-forward branch from 44d4ac5 to ee95b1e Compare February 26, 2025 16:23
@JLimperg JLimperg enabled auto-merge February 26, 2025 16:23
@JLimperg JLimperg added this pull request to the merge queue Feb 26, 2025
Merged via the queue into master with commit f92ce81 Feb 26, 2025
2 checks passed
@JLimperg JLimperg deleted the incremental-forward branch February 26, 2025 16:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Fast forward rules
1 participant