public override bool Equals(object that) { if (that is ExprPair) { ExprPair thatPair = (ExprPair)that; return(this.Expr0.Equals(thatPair.Expr0) && this.Expr1.Equals(thatPair.Expr1)); } return(false); }
//////////////////////////////////////////////////////////////////////////// private VCExprVar AbstractWithVariable(VCExpr s, VCExpr t) { Contract.Requires(t != null); Contract.Requires(s != null); Contract.Requires((s.Type.Equals(t.Type))); Contract.Ensures(Contract.Result<VCExprVar>() != null); ExprPair pair = new ExprPair(s, t); if (!Representation.TryGetValue(pair, out var repr)) { repr = Gen.Variable("abs" + Representation.Count, s.Type); Representation.Add(pair, repr); } return cce.NonNull(repr); }