{motive : Lean.Core.State → Sort u} →
  (t : Lean.Core.State) →
    ((env : Lean.Environment) →
        (nextMacroScope : Lean.MacroScope) →
          (ngen : Lean.NameGenerator) →
            (auxDeclNGen : Lean.DeclNameGenerator) →
              (traceState : Lean.TraceState) →
                (cache : Lean.Core.Cache) →
                  (messages : Lean.MessageLog) →
                    (infoState : Lean.Elab.InfoState) →
                      (snapshotTasks : Array (Lean.Language.SnapshotTask Lean.Language.SnapshotTree)) →
                        motive
                          { env := env, nextMacroScope := nextMacroScope, ngen := ngen, auxDeclNGen := auxDeclNGen,
                            traceState := traceState, cache := cache, messages := messages, infoState := infoState,
                            snapshotTasks := snapshotTasks }) →
      motive t