-
Notifications
You must be signed in to change notification settings - Fork 43
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
Chopper: More fine grained dependency analysis for domain axioms #776
Conversation
I have a question about the axiom dependencies based on triggers: If an axiom has any trigger that does not require a specific domain function to be used, then... what are the dependencies? |
Co-authored-by: João Pereira <joaopereira.19@gmail.com>
Co-authored-by: João Pereira <joaopereira.19@gmail.com>
…all usages within quantified expression
…t/silver into fewolf_finer_chopper
@marcoeilers I assume you meant the axiom For the axiom |
This PR makes two changes to the chopper that I explain below:
Changes the dependency analysis for domain axioms
The PR changes how dependencies for domain axioms are defined. Before, for an axiom A, we added dependencies from all uses in A to A and from A to all uses in A. These dependencies have two issues:
The PR does the following changes:
Consider the following domain:
Previously, the dependencies were (omitting dependencies to D): A -> bar, A -> baz, bar -> A, baz -> A
With the PR the dependencies are instead: A -> bar, A -> baz, bar -> A
Makes the chopper extendable
In short, the PR changes all objects to traits. To avoid polluting the namespace, I moved the chopper into a separate package.
Changes to the code
Unfortunately, Github does not recognize that the new Chopper file is based on the previous one.
Below, I give a list of all code changes without changes to signatures (to replace objects with traits):
Edges.directUsages
method. The method is a non-transitive version ofEdges.usages
.ast.Domain
case of theEdges.dependencies
method. This case implements the change to the logic as described above.