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

Validate DPOR data invariants #185

Merged
merged 2 commits into from
Feb 16, 2018
Merged

Validate DPOR data invariants #185

merged 2 commits into from
Feb 16, 2018

Conversation

barrucadu
Copy link
Owner

@barrucadu barrucadu commented Feb 8, 2018

Summary

Validates the DPOR data invariants & fixes an invariant violation in incorporateTrace.grow, where the taken decision was not included in the runnable set.

Related issues: #173

Checklist

  • Travis builds the PR successfully

@barrucadu
Copy link
Owner Author

barrucadu commented Feb 8, 2018

I'm pretty sure I could make four of these invariants correct-by-construction by dropping the to-do, done, and taken sets, and turning the runnable set into a map from thread IDs to:

data DPORThreadState = Todo Bool | Done (Maybe ThreadAction)

"Make illegal states unrepresentable" and all that. But I worry this would complicate logic elsewhere.

@barrucadu barrucadu changed the title Validate DPOR data invariants (wip) Validate DPOR data invariants Feb 9, 2018
@barrucadu barrucadu changed the title (wip) Validate DPOR data invariants Validate DPOR data invariants Feb 16, 2018
@barrucadu barrucadu merged commit 66a1562 into master Feb 16, 2018
@barrucadu barrucadu deleted the dpor-invariants branch February 16, 2018 22:05
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.

1 participant