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

factor out simplification logic into What4.Simplify #385

Merged
merged 1 commit into from
May 14, 2024

Conversation

danmatichuk
Copy link
Collaborator

this is an attempt to standardize the simplifier functions into uniform "strategies" that can be combined together. Specifically, each strategy defines separate setup and execution phases. Strategies can be combined by combining these phases separately, so that their individual setup steps still only occur once in the resulting composite strategy.

this is motivated by an observation that multiple calls to a given simplification strategy (in the same
assumption context) should always use the same cache. However top-level entry point for simplifiers usually implicitly allocates a fresh cache. Multiple executions of that simplifier would therefore not use the same cache.

this is an attempt to standardize the simplifier functions into
uniform "strategies" that can be combined together.
Specifically, each strategy defines separate setup and execution
phases. Strategies can be combined by combining these phases
separately, so that their individual setup steps still only occur
once in the resulting composite strategy.

this is motivated by an observation that multiple calls to
a given simplification strategy (in the same
assumption context) should always use the same cache.
However top-level entry point for simplifiers usually
implicitly allocates a fresh cache. Multiple executions
of that simplifier would therefore not use the same cache.
@danmatichuk danmatichuk marked this pull request as ready for review May 14, 2024 19:20
@danmatichuk danmatichuk merged commit a8ecc54 into master May 14, 2024
2 checks passed
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.

None yet

1 participant