∀ {n : ℕ} {α : Fin (n + 1) → Type u_1} (S : (i : Fin (n + 1)) → Finset (α i)) (P : ((i : Fin n) → α i.castSucc) → Prop)
  [inst : DecidablePred P],
  {r ∈ Fintype.piFinset S | P (Fin.init r)}.card =
    (S (Fin.last n)).card * {r ∈ Fintype.piFinset (Fin.init S) | P r}.card