{motive_1 : Lean.Language.SnapshotTree → Sort u} →
  {motive_2 : Array (Lean.Language.SnapshotTask Lean.Language.SnapshotTree) → Sort u} →
    {motive_3 : List (Lean.Language.SnapshotTask Lean.Language.SnapshotTree) → Sort u} →
      {motive_4 : Lean.Language.SnapshotTask Lean.Language.SnapshotTree → Sort u} →
        {motive_5 : Task Lean.Language.SnapshotTree → Sort u} →
          ((element : Lean.Language.Snapshot) →
              (children : Array (Lean.Language.SnapshotTask Lean.Language.SnapshotTree)) →
                motive_2 children → motive_1 { element := element, children := children }) →
            ((toList : List (Lean.Language.SnapshotTask Lean.Language.SnapshotTree)) →
                motive_3 toList → motive_2 { toList := toList }) →
              motive_3 [] →
                ((head : Lean.Language.SnapshotTask Lean.Language.SnapshotTree) →
                    (tail : List (Lean.Language.SnapshotTask Lean.Language.SnapshotTree)) →
                      motive_4 head → motive_3 tail → motive_3 (head :: tail)) →
                  ((stx? : Option Lean.Syntax) →
                      (reportingRange : Lean.Language.SnapshotTask.ReportingRange) →
                        (cancelTk? : Option IO.CancelToken) →
                          (task : Task Lean.Language.SnapshotTree) →
                            motive_5 task →
                              motive_4
                                { stx? := stx?, reportingRange := reportingRange, cancelTk? := cancelTk?,
                                  task := task }) →
                    ((get : Lean.Language.SnapshotTree) → motive_1 get → motive_5 { get := get }) →
                      (t : Task Lean.Language.SnapshotTree) → motive_5 t