Skip to content

Commit 721c2a4

Browse files
authored
Merge pull request #364 from ftsrg/reachgsat
Handle RatExprs in MDDs
2 parents 6c6c686 + 08ef0f2 commit 721c2a4

File tree

3 files changed

+10
-5
lines changed

3 files changed

+10
-5
lines changed

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ buildscript {
2929

3030
allprojects {
3131
group = "hu.bme.mit.theta"
32-
version = "6.14.0"
32+
version = "6.14.1"
3333

3434
apply(from = rootDir.resolve("gradle/shared-with-buildSrc/mirrors.gradle.kts"))
3535
}

subprojects/common/analysis/src/main/java/hu/bme/mit/theta/analysis/algorithm/mdd/expressionnode/LitExprConverter.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@
3434
import hu.bme.mit.theta.core.type.fptype.FpType;
3535
import hu.bme.mit.theta.core.type.inttype.IntLitExpr;
3636
import hu.bme.mit.theta.core.type.inttype.IntType;
37+
import hu.bme.mit.theta.core.type.rattype.RatLitExpr;
38+
import hu.bme.mit.theta.core.type.rattype.RatType;
3739
import hu.bme.mit.theta.core.utils.BvUtils;
3840
import java.math.BigInteger;
3941

@@ -54,7 +56,9 @@ public static int toInt(LitExpr<?> litExpr) {
5456
var ret = BvUtils.neutralBvLitExprToBigInteger(bvLitExpr).intValue();
5557
return ret;
5658
}
57-
if (litExpr instanceof ArrayLitExpr<?, ?> || litExpr instanceof FpLitExpr) {
59+
if (litExpr instanceof ArrayLitExpr<?, ?>
60+
|| litExpr instanceof FpLitExpr
61+
|| litExpr instanceof RatLitExpr) {
5862
if (objToInt.get(litExpr) != null) {
5963
return objToInt.get(litExpr);
6064
}
@@ -82,7 +86,7 @@ public static LitExpr<?> toLitExpr(int integer, Type type) {
8286
return BvUtils.bigIntegerToNeutralBvLitExpr(
8387
BigInteger.valueOf(integer), ((BvType) type).getSize());
8488
}
85-
if (type instanceof ArrayType<?, ?> || type instanceof FpType) {
89+
if (type instanceof ArrayType<?, ?> || type instanceof FpType || type instanceof RatType) {
8690
return (LitExpr<?>) objToInt.inverse().get(integer);
8791
}
8892
if (type instanceof EnumType) {

subprojects/common/core/src/main/java/hu/bme/mit/theta/core/utils/ExprSimplifier.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import hu.bme.mit.theta.common.DispatchTable2;
2525
import hu.bme.mit.theta.common.Tuple2;
2626
import hu.bme.mit.theta.common.Utils;
27+
import hu.bme.mit.theta.common.container.Containers;
2728
import hu.bme.mit.theta.core.model.Valuation;
2829
import hu.bme.mit.theta.core.type.Expr;
2930
import hu.bme.mit.theta.core.type.LitExpr;
@@ -415,7 +416,7 @@ private Expr<BoolType> simplifyXor(final XorExpr expr, final Valuation val) {
415416
}
416417

417418
private Expr<BoolType> simplifyAnd(final AndExpr expr, final Valuation val) {
418-
final Set<Expr<BoolType>> ops = new HashSet<>();
419+
final Set<Expr<BoolType>> ops = Containers.createSet();
419420

420421
if (expr.getOps().isEmpty()) {
421422
return True();
@@ -445,7 +446,7 @@ private Expr<BoolType> simplifyAnd(final AndExpr expr, final Valuation val) {
445446
}
446447

447448
private Expr<BoolType> simplifyOr(final OrExpr expr, final Valuation val) {
448-
final Set<Expr<BoolType>> ops = new HashSet<>();
449+
final Set<Expr<BoolType>> ops = Containers.createSet();
449450

450451
if (expr.getOps().isEmpty()) {
451452
return True();

0 commit comments

Comments
 (0)