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