public static string ToString(VCExpr /*!*/ e, LineariserOptions /*!*/ options, UniqueNamer /*!*/ namer) { Contract.Requires(e != null); Contract.Requires(options != null); Contract.Requires(namer != null); Contract.Ensures(Contract.Result <string>() != null); StringWriter sw = new StringWriter(); SimplifyLikeExprLineariser lin = new SimplifyLikeExprLineariser(sw, namer); lin.Linearise(e, options); return(sw.ToString()); }
private void WriteApplication(string termOp, string predOp, IEnumerable <VCExpr /*!*/> /*!*/ args, LineariserOptions options, bool argsAsTerms) { Contract.Requires(options != null); Contract.Requires(predOp != null); Contract.Requires(termOp != null); Contract.Requires(cce.NonNullElements(args));// change the AsTerm option for the arguments? wr.Write("({0}", options.AsTerm ? termOp : predOp); LineariserOptions newOptions = options.SetAsTerm(argsAsTerms); foreach (VCExpr e in args) { Contract.Assert(e != null); wr.Write(" "); ExprLineariser.Linearise(e, newOptions); } wr.Write(")"); }