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