Skip to content

Commit 63aeaf9

Browse files
committed
Fix Origins
1 parent f9e4624 commit 63aeaf9

3 files changed

Lines changed: 6 additions & 7 deletions

File tree

liquidjava-verifier/src/main/java/liquidjava/rj_language/opt/VCLogicalSimplification.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@ public static VCImplication apply(VCImplication implication) {
2525
Expression expression = implication.getRefinement().getExpression();
2626
Expression simplified = simplify(expression);
2727
if (!expression.equals(simplified)) {
28-
VCImplication result = new SimplifiedVCImplication(implication, new Predicate(simplified),
29-
implication.getOrigin());
28+
VCImplication result = new SimplifiedVCImplication(implication, new Predicate(simplified), implication);
3029
result.setNext(implication.getNext() == null ? null : implication.getNext().clone());
3130
return result;
3231
}

liquidjava-verifier/src/test/java/liquidjava/rj_language/opt/VCLogicalSimplificationTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,13 +87,13 @@ void recordsOriginWhenSimplifyingLaterImplication() {
8787
chain(expect("x > 0", "x > 0"), expect("y", "y || false")));
8888

8989
SimplifiedVCImplication simplifiedNext = assertInstanceOf(SimplifiedVCImplication.class, result.getNext());
90-
assertEquals("y || false", simplifiedNext.getOrigin().getRefinement().toString());
90+
assertEquals("y || false", simplifiedNext.getOrigin().getRefinement().getExpression().toDisplayString());
9191
}
9292

9393
@Test
94-
void preservesOriginFromExistingSimplifiedImplication() {
94+
void recordsCurrentImplicationAsOriginWhenSimplifyingExistingSimplifiedImplication() {
9595
VCImplication substituted = VCSubstitution.apply(vc("∀x:int. x == y", "x == x"));
9696

97-
assertSimplificationSteps(VCLogicalSimplification::apply, substituted, chain(expect("true", "∀x:int. x == x")));
97+
assertSimplificationSteps(VCLogicalSimplification::apply, substituted, chain(expect("true", "y == y")));
9898
}
9999
}

liquidjava-verifier/src/test/java/liquidjava/rj_language/opt/VCSimplificationTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ void simplifyOnceAppliesArithmeticBeforeLogicalSimplification() {
6464
VCImplication implication = vc("x + 0 == x");
6565

6666
assertSimplificationSteps(VCSimplification::simplifyOnce, implication, chain(expect("x == x", "x + 0 == x")),
67-
chain(expect("true", "x + 0 == x")));
67+
chain(expect("true", "x == x")));
6868
}
6969

7070
@Test
@@ -79,7 +79,7 @@ void simplifyAppliesLogicalStepsUntilFixedPoint() {
7979
VCImplication implication = vc("x && true && true");
8080

8181
assertSimplificationSteps(VCSimplification::simplifyOnce, implication,
82-
chain(expect("x && true", "x && true && true")), chain(expect("x", "x && true && true")));
82+
chain(expect("x && true", "x && true && true")), chain(expect("x", "x && true")));
8383
}
8484

8585
@Test

0 commit comments

Comments
 (0)