{motive : Lean.Meta.Grind.Canon.State → Sort u} →
  (t : Lean.Meta.Grind.Canon.State) →
    ((argMap : Lean.PHashMap (Lean.Expr × ℕ) (List (Lean.Expr × Lean.Expr))) →
        (canon proofCanon : Lean.PHashMap Lean.Expr Lean.Expr) →
          (canonArg : Lean.PHashMap Lean.Meta.Grind.CanonArgKey Lean.Expr) →
            motive { argMap := argMap, canon := canon, proofCanon := proofCanon, canonArg := canonArg }) →
      motive t