public void BVSGE() { 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.BVSGE(x, y)); var asBVSLT = ExprUtil.AsBVSLT(e); Assert.IsNotNull(asBVSLT); Assert.AreSame(x, asBVSLT.Args[0]); Assert.AreSame(y, asBVSLT.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.BVSLT(arg0, arg1); var result = cfb.BVSLT(arg0, arg1); CheckIsBoolType(result); CheckIsBoolType(simpleResult); Assert.IsNull(ExprUtil.AsLiteral(result)); Assert.IsNotNull(ExprUtil.AsBVSLT(result)); Assert.IsTrue(ExprUtil.StructurallyEqual(result, simpleResult)); }