Skip to content

Conversation

rkaminsk
Copy link
Member

@rkaminsk rkaminsk commented Jun 3, 2022

Compute intervals by computing bounds for linear equations given by comparison literals to extend safety. The examples below give an overview of contexts where this feature is applicable.

% conjunction
2 { p(1..3) } 3.
q :- p(X): 1 <= X <= 3.
% disjunction
p(X): 1 <= X <= 3.
% head aggregate
2 { p(X): 1 <= X <= 3 } 3.
2 #count { X: p(X): 1 <= X <= 3 } 3.
% body aggregate
2 { p(1..3) } 3.
q :- 2 { p(X): 1 <= X <= 3 } 3.
q :- 2 #count { X: p(X), 1 <= X <= 3 } 3.
% rule
0 { p(1..3) } 2.
q :- p(X), 1 <= X <= 3.

@rkaminsk rkaminsk linked an issue Jun 3, 2022 that may be closed by this pull request
rkaminsk added 5 commits June 7, 2022 16:32
- remove unused beforeRewrite logic
- introdcue ie contexts for nested solving
- this provides the basic infrastructure to implement bound computation
  for the remaining language constructs
- the tests for the ie solver should be extended for nested scopes
- this commit also refactors head aggregate elements
- tests are still missing
@rkaminsk rkaminsk force-pushed the feature/extend-safety branch 2 times, most recently from 1f796a1 to 79e75ea Compare June 10, 2022 16:20
@rkaminsk rkaminsk force-pushed the feature/extend-safety branch from 0683928 to cbf4384 Compare June 19, 2022 11:44
@rkaminsk rkaminsk self-assigned this Jun 20, 2022
@rkaminsk rkaminsk merged commit 8084ebd into wip Jun 20, 2022
@rkaminsk rkaminsk deleted the feature/extend-safety branch June 28, 2022 12:25
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.

Extend safety by computing intervals from comparisons
1 participant