Skip to content

Commit eaf483e

Browse files
committed
Filter Known Assignments
1 parent cbfc085 commit eaf483e

1 file changed

Lines changed: 5 additions & 2 deletions

File tree

liquidjava-verifier/src/main/java/liquidjava/diagnostics/errors/RefinementError.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package liquidjava.diagnostics.errors;
22

3-
import java.util.ArrayList;
43
import java.util.List;
4+
import java.util.Set;
55
import java.util.stream.Collectors;
66

77
import liquidjava.diagnostics.TranslationTable;
8-
import liquidjava.processor.VCImplication;
98
import liquidjava.rj_language.Predicate;
9+
import liquidjava.rj_language.ast.Expression;
1010
import liquidjava.rj_language.ast.formatter.VariableFormatter;
1111
import liquidjava.rj_language.opt.VCSimplificationResult;
1212
import liquidjava.smt.Counterexample;
@@ -53,7 +53,10 @@ public Counterexample getCounterExamples() {
5353
return null;
5454

5555
List<String> binderNames = getFound().getBinders();
56+
Set<String> knownAssignments = getFound().getImplication().toPredicate().getExpression().getConjuncts().stream()
57+
.map(Expression::toString).collect(Collectors.toSet());
5658
var assignments = counterexample.assignments().stream().filter(a -> binderNames.contains(a.first()))
59+
.filter(a -> !knownAssignments.contains(a.first() + " == " + a.second()))
5760
.sorted((a, b) -> Integer.compare(binderNames.indexOf(a.first()), binderNames.indexOf(b.first())))
5861
.toList();
5962

0 commit comments

Comments
 (0)