{P : Sort u} →
  {expr : Lean.Expr} →
    {proof? : Option Lean.Expr} →
      {cache : Bool} →
        {expr' : Lean.Expr} →
          {proof?' : Option Lean.Expr} →
            {cache' : Bool} →
              { expr := expr, proof? := proof?, cache := cache } =
                  { expr := expr', proof? := proof?', cache := cache' } →
                (expr = expr' → proof? = proof?' → cache = cache' → P) → P