Theorems · Theorem · combinatorics
FinEnum.recEmptyOption_of_card_pos
∀ {P : Type u → Sort v} (finChoice : (n : ℕ) → Fin (n + 1))
(congr : {α β : Type u} → (x : FinEnum α) → (x_1 : FinEnum β) → FinEnum.card β = FinEnum.card α → P α → P β)
(empty : P PEmpty.{u + 1}) (option : {α : Type u} → FinEnum α → P α → P (Option α)) (α : Type u) [inst : FinEnum α]
(h : 0 < FinEnum.card α),
FinEnum.recEmptyOption finChoice (fun {α β} => congr) empty (fun {α} => option) α =
congr (FinEnum.insertNone (ULift.{u, 0} (Fin (FinEnum.card α - 1))) ↑↑(finChoice (FinEnum.card α - 1))) inst ⋯
(option ULift.instFinEnum
(FinEnum.recEmptyOption finChoice (fun {α β} => congr) empty (fun {α} => option)
(ULift.{u, 0} (Fin (FinEnum.card α - 1)))))For a type with positive card, the recursion principle evaluates to whatever
congr makes of the step result, where Option.none has been inserted into the
(finChoice (card α - 1))th rank of the enumeration.
- Defined in
- Mathlib.Data.FinEnum.Option
- Cited by
- 0 results in Mathlib
- Foundations
- Depth 65 from the axioms · uses propext, Classical.choice, Quot.sound
- Assumes
- FinEnum
Around this declaration
Dashed lines are statement dependencies; solid lines are citations in proofs.
Cites6
Mathlib declarations this one mentions in its statement or cites explicitly in its proof. Plumbing is filtered out.
- FinEnum.cardstatement and proof · cited by 32
- FinEnumstatement and proof · cited by 21
- FinEnum.insertNonestatement and proof · cited by 3
- FinEnum.recEmptyOptionstatement and proof · cited by 3
- FinEnum.recEmptyOption.eq_defproof · cited by 2
- FinEnum.card_finstatement and proof · cited by 1
Cited by0
Results whose statement or proof uses this declaration.
Nothing cites this yet.