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; }