Ejemplo n.º 1
0
 private VCExpr MakeBinary(VCExprOp op, VCExpr [] args)
 {
     if (args.Count() == 0)
     {
         // with zero args we need the identity of the op
         if (op == VCExpressionGenerator.AndOp)
             return VCExpressionGenerator.True;
         if (op == VCExpressionGenerator.OrOp)
             return VCExpressionGenerator.False;
         if (op == VCExpressionGenerator.AddIOp)
         {
             Microsoft.Basetypes.BigNum x = Microsoft.Basetypes.BigNum.ZERO;
             return gen.Integer(x);
         }
         HandleProverError("Prover error: bad expression ");
         throw new BadExprFromProver();
     }
     var temp = args[0];
     for (int i = 1; i < args.Count(); i++)
         temp = gen.Function(op, temp, args[i]);
     return temp;
 }