(motive : Lean.Meta.Match.Pattern → Sort u_1) →
  (x : Lean.Meta.Match.Pattern) →
    ((e : Lean.Expr) → motive (Lean.Meta.Match.Pattern.inaccessible e)) →
      ((n : Lean.Name) →
          (us : List Lean.Level) →
            (ps : List Lean.Expr) →
              (fs : List Lean.Meta.Match.Pattern) → motive (Lean.Meta.Match.Pattern.ctor n us ps fs)) →
        ((e : Lean.Expr) → motive (Lean.Meta.Match.Pattern.val e)) →
          ((t : Lean.Expr) → (xs : List Lean.Meta.Match.Pattern) → motive (Lean.Meta.Match.Pattern.arrayLit t xs)) →
            ((fvarId : Lean.FVarId) → motive (Lean.Meta.Match.Pattern.var fvarId)) →
              ((fvarId : Lean.FVarId) →
                  (p : Lean.Meta.Match.Pattern) →
                    (hId : Lean.FVarId) → motive (Lean.Meta.Match.Pattern.as fvarId p hId)) →
                motive x