public void BVULE() { var cfb = GetConstantFoldingBuilder(); var x = GetVarAndIdExpr("x", Microsoft.Boogie.Type.GetBvType(4)).Item2; var y = GetVarAndIdExpr("y", Microsoft.Boogie.Type.GetBvType(4)).Item2; var e = cfb.Not(cfb.BVULE(x, y)); var asBVUGT = ExprUtil.AsBVUGT(e); Assert.IsNotNull(asBVUGT); Assert.AreSame(x, asBVUGT.Args[0]); Assert.AreSame(y, asBVUGT.Args[1]); }
public void NoFold() { var builders = GetSimpleAndConstantFoldingBuilder(); SimpleExprBuilder sfb = builders.Item1; ConstantFoldingExprBuilder cfb = builders.Item2; var arg0 = GetVarAndIdExpr("x", BasicType.GetBvType(8)).Item2; var arg1 = GetVarAndIdExpr("y", BasicType.GetBvType(8)).Item2; var simpleResult = sfb.BVUGT(arg0, arg1); var result = cfb.BVUGT(arg0, arg1); CheckIsBoolType(result); CheckIsBoolType(simpleResult); Assert.IsNull(ExprUtil.AsLiteral(result)); Assert.IsNotNull(ExprUtil.AsBVUGT(result)); Assert.IsTrue(ExprUtil.StructurallyEqual(result, simpleResult)); }