private void CalculatePathExpression() { pathExprs = new List <Expr>(); foreach (var expr in assumes) { ExprHelper.FlattenAnd(expr, pathExprs); } foreach (var assignment in assignments) { // If a variable is forward and backward assigned, we might // have a substitution for the lhs here. if (!varToExpr.TryGetValue(assignment.Var, out Expr x)) { x = Expr.Ident(assignment.Var); } pathExprs.Add(Expr.Eq(x, assignment.Expr)); } }