static Bpl.Trigger BplTriggerHeap(Translator translator, Bpl.IToken tok, Bpl.Expr e, Bpl.Expr /*?*/ optionalHeap, Bpl.Expr /*?*/ ePrime = null) { Contract.Requires(translator != null); Contract.Requires(tok != null); Contract.Requires(e != null); var exprs = new List <Bpl.Expr> { e }; if (ePrime != null) { exprs.Add(ePrime); } if (optionalHeap != null) { exprs.Add(translator.FunctionCall(tok, BuiltinFunction.IsGoodHeap, null, optionalHeap)); } return(new Bpl.Trigger(tok, true, exprs)); }