package jayhorn.solver.spacer; import java.math.BigInteger; import com.microsoft.z3.BoolExpr; import jayhorn.solver.BoolType; import jayhorn.solver.ProverExpr; import jayhorn.solver.ProverType; class SpacerBoolExpr implements ProverExpr { protected final BoolExpr formula; SpacerBoolExpr(BoolExpr formula) { this.formula = formula; } public String toString() { return this.formula.toString(); } /** * Unpack the Z3 Expr * @return Z3 Expr for this Z3BoolExpr */ public BoolExpr getExpr() { return this.formula; } public ProverType getType() { return BoolType.INSTANCE; } public BigInteger getIntLiteralValue() { throw new RuntimeException(); } public boolean getBooleanLiteralValue() { throw new RuntimeException(); } public int hashCode() { return formula.hashCode(); } public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; SpacerBoolExpr other = (SpacerBoolExpr) obj; if (formula == null) { if (other.formula != null) return false; } else if (!formula.equals(other.formula)) return false; return true; } }