{n : ℕ} →
  {F : TypeVec.{u} n → Type u_1} →
    {motive : MvQPF F → Sort u_2} →
      (t : MvQPF F) →
        ([toMvFunctor : MvFunctor F] →
            (P : MvPFunctor.{u} n) →
              (abs : {α : TypeVec.{u} n} → ↑P α → F α) →
                (repr : {α : TypeVec.{u} n} → F α → ↑P α) →
                  (abs_repr : ∀ {α : TypeVec.{u} n} (x : F α), abs (repr x) = x) →
                    (abs_map :
                        ∀ {α β : TypeVec.{u} n} (f : α.Arrow β) (p : ↑P α),
                          abs (MvFunctor.map f p) = MvFunctor.map f (abs p)) →
                      motive
                        { toMvFunctor := toMvFunctor, P := P, abs := abs, repr := repr, abs_repr := abs_repr,
                          abs_map := abs_map }) →
          motive t