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 support for variable domains #17

Merged
merged 25 commits into from
Jan 31, 2024
Merged

Add support for variable domains #17

merged 25 commits into from
Jan 31, 2024

Conversation

ondrej33
Copy link
Member

In this pull request, we add support for directly restricting quantified variables' domains in HCTL formulae. These variable domains behave the same way as wild-card propositions introduced in #9, and they are evaluated to an arbitrary (coloured) set given by the user. The syntax is following: !{x} in %domain%:, and the same goes for other quantifiers. This way, the user can directly restrict the domain of every {x} encountered during bottom-up computation (makes the formula more readable and speeds up the computation).

The following equivalences hold:

  • !{x} in %A%: phi = !{x}: %A% & phi
  • 3{x} in %A%: @{x}: phi = 3{x}: @{x}: %A% & phi
  • V{x} in %A%: @{x}: phi = V{x}: @{x}: %A% => phi

These changes are now also available as part of the tool itself, not just the library. The model checker can now load an archive with BDDs to be substituted for the wild-card properties and variable domains. It can also generate an archive with resulting BDDs.

Furthermore, this PR includes some refactoring, mainly related to syntax trees and the test suite.

Copy link

codecov bot commented Jan 31, 2024

Codecov Report

Attention: 63 lines in your changes are missing coverage. Please review.

Comparison is base (941bc1a) 89.39% compared to head (d9fb9f4) 87.18%.

Files Patch % Lines
src/generate_output.rs 0.00% 15 Missing ⚠️
src/load_inputs.rs 0.00% 15 Missing ⚠️
src/analysis.rs 65.51% 10 Missing ⚠️
src/evaluation/algorithm.rs 92.30% 6 Missing ⚠️
src/evaluation/eval_context.rs 66.66% 5 Missing ⚠️
src/preprocessing/tokenizer.rs 87.50% 5 Missing ⚠️
src/preprocessing/hctl_tree.rs 91.89% 3 Missing ⚠️
src/preprocessing/utils.rs 95.34% 2 Missing ⚠️
src/evaluation/mark_duplicates.rs 97.14% 1 Missing ⚠️
src/preprocessing/operator_enums.rs 50.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master      #17      +/-   ##
==========================================
- Coverage   89.39%   87.18%   -2.22%     
==========================================
  Files          24       26       +2     
  Lines         792      944     +152     
==========================================
+ Hits          708      823     +115     
- Misses         84      121      +37     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@ondrej33 ondrej33 merged commit fd684c1 into master Jan 31, 2024
5 of 7 checks passed
@ondrej33 ondrej33 deleted the dev-variable-domains branch January 31, 2024 12:46
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