(motive : Lean.Meta.DiscrTree.Key → Mathlib.Tactic.Push.Head → Sort u_1) →
  (k : Lean.Meta.DiscrTree.Key) →
    (head : Mathlib.Tactic.Push.Head) →
      ((c : Lean.Name) →
          (a : ℕ) → (c' : Lean.Name) → motive (Lean.Meta.DiscrTree.Key.const c a) (Mathlib.Tactic.Push.Head.const c')) →
        (Unit → motive Lean.Meta.DiscrTree.Key.other Mathlib.Tactic.Push.Head.lambda) →
          (Unit → motive Lean.Meta.DiscrTree.Key.arrow Mathlib.Tactic.Push.Head.forall) →
            ((x : Lean.Meta.DiscrTree.Key) → (x_1 : Mathlib.Tactic.Push.Head) → motive x x_1) → motive k head