Skip to content

Refactor reachability proof strategies #1932

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
merged 23 commits into from
Jul 7, 2020

Conversation

ttuegel
Copy link
Contributor

@ttuegel ttuegel commented Jun 29, 2020


Reviewer checklist
  • Test coverage: stack test --coverage
  • Public API documentation: stack haddock

ttuegel added 5 commits June 29, 2020 12:19
We would like to use the same terminology as the domain experts, which is "check
implication".
The ProofState associated type family is always instantiated at the concrete
ProofState type, so this was a meaningless layer of indirection.
The associated type family Prim was only ever instantiated at a single type.
The function checkImplication returns a CheckImplicationResult instead of a
ProofState. This follows a principle from domain-driven design: the function
indicates its own result (CheckImplicationResult) instead of telling the caller
what to do next (ProofState). The code is more flexible because checkImplication
now does not need to know anything about the caller.
@ttuegel ttuegel force-pushed the issue-1665--refactor branch from 776c91d to 2abc638 Compare June 29, 2020 17:20
ttuegel and others added 13 commits June 29, 2020 12:35
This acts to separate the domain model from the application code.
This change extracts application code from the domain model.
Now, the only instance of transitionRule is the canonical instance. This
instance _defines_ reachability proving and the individual types of reachability
claims may only define how they implement each step.
This change reinforces the separation between the application and domain model
code.
This makes the one-path strategy like the all-path strategy.
The strategy belongs to and is common to all reachability proofs.
@ttuegel ttuegel force-pushed the issue-1665--refactor branch from d247113 to d63d128 Compare July 2, 2020 01:11
@ttuegel ttuegel requested a review from ana-pantilie July 2, 2020 02:50
@ttuegel ttuegel marked this pull request as ready for review July 2, 2020 02:50
@rv-jenkins rv-jenkins merged commit e0d6539 into runtimeverification:master Jul 7, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants