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