Documentation

Mathlib.Order.Interval.Finset.Fin

Finite intervals in Fin n #

This file proves that Fin n is a LocallyFiniteOrder and calculates the cardinality of its intervals as Finsets and Fintypes.

Locally finite order etc instances #

Equations
  • One or more equations did not get rendered due to their size.
@[simp]
theorem Fin.attachFin_Icc {n : } (a b : Fin n) :
(Finset.Icc a b).attachFin = Finset.Icc a b
@[simp]
theorem Fin.attachFin_Ico {n : } (a b : Fin n) :
(Finset.Ico a b).attachFin = Finset.Ico a b
@[simp]
theorem Fin.attachFin_Ioc {n : } (a b : Fin n) :
(Finset.Ioc a b).attachFin = Finset.Ioc a b
@[simp]
theorem Fin.attachFin_Ioo {n : } (a b : Fin n) :
(Finset.Ioo a b).attachFin = Finset.Ioo a b
@[simp]
theorem Fin.attachFin_uIcc {n : } (a b : Fin n) :
(Finset.uIcc a b).attachFin = Finset.uIcc a b
@[simp]
theorem Fin.attachFin_Ico_eq_Ici {n : } (a : Fin n) :
(Finset.Ico (↑a) n).attachFin = Finset.Ici a
@[simp]
theorem Fin.attachFin_Ioo_eq_Ioi {n : } (a : Fin n) :
(Finset.Ioo (↑a) n).attachFin = Finset.Ioi a
@[simp]
theorem Fin.attachFin_Iic {n : } (a : Fin n) :
@[simp]
theorem Fin.attachFin_Iio {n : } (a : Fin n) :
@[deprecated Fin.attachFin_Icc (since := "2025-04-06")]
theorem Fin.Icc_eq_finset_subtype {n : } (a b : Fin n) :
Finset.Icc a b = Finset.fin n (Finset.Icc a b)
@[deprecated Fin.attachFin_Ico (since := "2025-04-06")]
theorem Fin.Ico_eq_finset_subtype {n : } (a b : Fin n) :
Finset.Ico a b = Finset.fin n (Finset.Ico a b)
@[deprecated Fin.attachFin_Ioc (since := "2025-04-06")]
theorem Fin.Ioc_eq_finset_subtype {n : } (a b : Fin n) :
Finset.Ioc a b = Finset.fin n (Finset.Ioc a b)
@[deprecated Fin.attachFin_Ioo (since := "2025-04-06")]
theorem Fin.Ioo_eq_finset_subtype {n : } (a b : Fin n) :
Finset.Ioo a b = Finset.fin n (Finset.Ioo a b)
@[deprecated Fin.attachFin_uIcc (since := "2025-04-06")]
theorem Fin.uIcc_eq_finset_subtype {n : } (a b : Fin n) :
@[deprecated Fin.attachFin_Ico_eq_Ici (since := "2025-04-06")]
theorem Fin.Ici_eq_finset_subtype {n : } (a : Fin n) :
@[deprecated Fin.attachFin_Ioo_eq_Ioi (since := "2025-04-06")]
theorem Fin.Ioi_eq_finset_subtype {n : } (a : Fin n) :
@[deprecated Fin.attachFin_Iic (since := "2025-04-06")]
@[deprecated Fin.attachFin_Iio (since := "2025-04-06")]

Images under Fin.val #

@[simp]
theorem Fin.finsetImage_val_Icc {n : } (a b : Fin n) :
@[simp]
theorem Fin.finsetImage_val_Ico {n : } (a b : Fin n) :
@[simp]
theorem Fin.finsetImage_val_Ioc {n : } (a b : Fin n) :
@[simp]
theorem Fin.finsetImage_val_Ioo {n : } (a b : Fin n) :
@[simp]
theorem Fin.finsetImage_val_uIcc {n : } (a b : Fin n) :
@[simp]
@[simp]

Finset.map along Fin.valEmbedding #

@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[deprecated Fin.map_valEmbedding_uIcc (since := "2025-04-08")]

Alias of Fin.map_valEmbedding_uIcc.

Image under Fin.castLE #

@[simp]
theorem Fin.finsetImage_castLE_Icc {n m : } (a b : Fin n) (h : n m) :
@[simp]
theorem Fin.finsetImage_castLE_Ico {n m : } (a b : Fin n) (h : n m) :
@[simp]
theorem Fin.finsetImage_castLE_Ioc {n m : } (a b : Fin n) (h : n m) :
@[simp]
theorem Fin.finsetImage_castLE_Ioo {n m : } (a b : Fin n) (h : n m) :
@[simp]
theorem Fin.finsetImage_castLE_uIcc {n m : } (a b : Fin n) (h : n m) :
@[simp]
theorem Fin.finsetImage_castLE_Iic {n m : } (a : Fin n) (h : n m) :
@[simp]
theorem Fin.finsetImage_castLE_Iio {n m : } (a : Fin n) (h : n m) :

Finset.map along Fin.castLEEmb #

@[simp]
theorem Fin.map_castLEEmb_Icc {n m : } (a b : Fin n) (h : n m) :
@[simp]
theorem Fin.map_castLEEmb_Ico {n m : } (a b : Fin n) (h : n m) :
@[simp]
theorem Fin.map_castLEEmb_Ioc {n m : } (a b : Fin n) (h : n m) :
@[simp]
theorem Fin.map_castLEEmb_Ioo {n m : } (a b : Fin n) (h : n m) :
@[simp]
theorem Fin.map_castLEEmb_uIcc {n m : } (a b : Fin n) (h : n m) :
@[simp]
theorem Fin.map_castLEEmb_Iic {n m : } (a : Fin n) (h : n m) :
@[simp]
theorem Fin.map_castLEEmb_Iio {n m : } (a : Fin n) (h : n m) :

Images under Fin.castAdd #

@[simp]
theorem Fin.finsetImage_castAdd_Icc {n : } (m : ) (i j : Fin n) :
@[simp]
theorem Fin.finsetImage_castAdd_Ico {n : } (m : ) (i j : Fin n) :
@[simp]
theorem Fin.finsetImage_castAdd_Ioc {n : } (m : ) (i j : Fin n) :
@[simp]
theorem Fin.finsetImage_castAdd_Ioo {n : } (m : ) (i j : Fin n) :
@[simp]
theorem Fin.finsetImage_castAdd_uIcc {n : } (m : ) (i j : Fin n) :
@[simp]
theorem Fin.finsetImage_castAdd_Ici {n : } (m : ) [NeZero m] (i : Fin n) :
@[simp]
theorem Fin.finsetImage_castAdd_Ioi {n : } (m : ) [NeZero m] (i : Fin n) :
@[simp]
@[simp]

Finset.map along Fin.castAddEmb #

@[simp]
theorem Fin.map_castAddEmb_Icc {n : } (m : ) (i j : Fin n) :
@[simp]
theorem Fin.map_castAddEmb_Ico {n : } (m : ) (i j : Fin n) :
@[simp]
theorem Fin.map_castAddEmb_Ioc {n : } (m : ) (i j : Fin n) :
@[simp]
theorem Fin.map_castAddEmb_Ioo {n : } (m : ) (i j : Fin n) :
@[simp]
theorem Fin.map_castAddEmb_uIcc {n : } (m : ) (i j : Fin n) :
@[simp]
theorem Fin.map_castAddEmb_Ici {n : } (m : ) [NeZero m] (i : Fin n) :
@[simp]
theorem Fin.map_castAddEmb_Ioi {n : } (m : ) [NeZero m] (i : Fin n) :
@[simp]
@[simp]

Images under Fin.cast #

@[simp]
theorem Fin.finsetImage_cast_Icc {n m : } (h : n = m) (i j : Fin n) :
@[simp]
theorem Fin.finsetImage_cast_Ico {n m : } (h : n = m) (i j : Fin n) :
@[simp]
theorem Fin.finsetImage_cast_Ioc {n m : } (h : n = m) (i j : Fin n) :
@[simp]
theorem Fin.finsetImage_cast_Ioo {n m : } (h : n = m) (i j : Fin n) :
@[simp]
theorem Fin.finsetImage_cast_uIcc {n m : } (h : n = m) (i j : Fin n) :
@[simp]
theorem Fin.finsetImage_cast_Ici {n m : } (h : n = m) (i : Fin n) :
@[simp]
theorem Fin.finsetImage_cast_Ioi {n m : } (h : n = m) (i : Fin n) :
@[simp]
theorem Fin.finsetImage_cast_Iic {n m : } (h : n = m) (i : Fin n) :
@[simp]
theorem Fin.finsetImage_cast_Iio {n m : } (h : n = m) (i : Fin n) :

Finset.map along finCongr #

@[simp]
theorem Fin.map_finCongr_Icc {n m : } (h : n = m) (i j : Fin n) :
@[simp]
theorem Fin.map_finCongr_Ico {n m : } (h : n = m) (i j : Fin n) :
@[simp]
theorem Fin.map_finCongr_Ioc {n m : } (h : n = m) (i j : Fin n) :
@[simp]
theorem Fin.map_finCongr_Ioo {n m : } (h : n = m) (i j : Fin n) :
@[simp]
theorem Fin.map_finCongr_uIcc {n m : } (h : n = m) (i j : Fin n) :
@[simp]
theorem Fin.map_finCongr_Ici {n m : } (h : n = m) (i : Fin n) :
@[simp]
theorem Fin.map_finCongr_Ioi {n m : } (h : n = m) (i : Fin n) :
@[simp]
theorem Fin.map_finCongr_Iic {n m : } (h : n = m) (i : Fin n) :
@[simp]
theorem Fin.map_finCongr_Iio {n m : } (h : n = m) (i : Fin n) :

Images under Fin.castSucc #

Finset.map along Fin.castSuccEmb #

Images under Fin.natAdd #

@[simp]
theorem Fin.finsetImage_natAdd_Icc {n : } (m : ) (i j : Fin n) :
@[simp]
theorem Fin.finsetImage_natAdd_Ico {n : } (m : ) (i j : Fin n) :
@[simp]
theorem Fin.finsetImage_natAdd_Ioc {n : } (m : ) (i j : Fin n) :
@[simp]
theorem Fin.finsetImage_natAdd_Ioo {n : } (m : ) (i j : Fin n) :
@[simp]
theorem Fin.finsetImage_natAdd_uIcc {n : } (m : ) (i j : Fin n) :
@[simp]
@[simp]

Finset.map along Fin.natAddEmb #

@[simp]
theorem Fin.map_natAddEmb_Icc {n : } (m : ) (i j : Fin n) :
@[simp]
theorem Fin.map_natAddEmb_Ico {n : } (m : ) (i j : Fin n) :
@[simp]
theorem Fin.map_natAddEmb_Ioc {n : } (m : ) (i j : Fin n) :
@[simp]
theorem Fin.map_natAddEmb_Ioo {n : } (m : ) (i j : Fin n) :
@[simp]
theorem Fin.map_natAddEmb_uIcc {n : } (m : ) (i j : Fin n) :
@[simp]
theorem Fin.map_natAddEmb_Ici {n : } (m : ) (i : Fin n) :
@[simp]
theorem Fin.map_natAddEmb_Ioi {n : } (m : ) (i : Fin n) :

Images under Fin.addNat #

@[simp]
theorem Fin.finsetImage_addNat_Icc {n : } (m : ) (i j : Fin n) :
Finset.image (fun (x : Fin n) => x.addNat m) (Finset.Icc i j) = Finset.Icc (i.addNat m) (j.addNat m)
@[simp]
theorem Fin.finsetImage_addNat_Ico {n : } (m : ) (i j : Fin n) :
Finset.image (fun (x : Fin n) => x.addNat m) (Finset.Ico i j) = Finset.Ico (i.addNat m) (j.addNat m)
@[simp]
theorem Fin.finsetImage_addNat_Ioc {n : } (m : ) (i j : Fin n) :
Finset.image (fun (x : Fin n) => x.addNat m) (Finset.Ioc i j) = Finset.Ioc (i.addNat m) (j.addNat m)
@[simp]
theorem Fin.finsetImage_addNat_Ioo {n : } (m : ) (i j : Fin n) :
Finset.image (fun (x : Fin n) => x.addNat m) (Finset.Ioo i j) = Finset.Ioo (i.addNat m) (j.addNat m)
@[simp]
theorem Fin.finsetImage_addNat_uIcc {n : } (m : ) (i j : Fin n) :
Finset.image (fun (x : Fin n) => x.addNat m) (Finset.uIcc i j) = Finset.uIcc (i.addNat m) (j.addNat m)
@[simp]
theorem Fin.finsetImage_addNat_Ici {n : } (m : ) (i : Fin n) :
Finset.image (fun (x : Fin n) => x.addNat m) (Finset.Ici i) = Finset.Ici (i.addNat m)
@[simp]
theorem Fin.finsetImage_addNat_Ioi {n : } (m : ) (i : Fin n) :
Finset.image (fun (x : Fin n) => x.addNat m) (Finset.Ioi i) = Finset.Ioi (i.addNat m)

Finset.map along Fin.addNatEmb #

@[simp]
theorem Fin.map_addNatEmb_Icc {n : } (m : ) (i j : Fin n) :
@[simp]
theorem Fin.map_addNatEmb_Ico {n : } (m : ) (i j : Fin n) :
@[simp]
theorem Fin.map_addNatEmb_Ioc {n : } (m : ) (i j : Fin n) :
@[simp]
theorem Fin.map_addNatEmb_Ioo {n : } (m : ) (i j : Fin n) :
@[simp]
theorem Fin.map_addNatEmb_uIcc {n : } (m : ) (i j : Fin n) :
@[simp]
theorem Fin.map_addNatEmb_Ici {n : } (m : ) (i : Fin n) :
@[simp]
theorem Fin.map_addNatEmb_Ioi {n : } (m : ) (i : Fin n) :

Images under Fin.succ #

Finset.map along Fin.succEmb #

@[simp]
theorem Fin.map_succEmb_Icc {n : } (i j : Fin n) :
@[simp]
theorem Fin.map_succEmb_Ico {n : } (i j : Fin n) :
@[simp]
theorem Fin.map_succEmb_Ioc {n : } (i j : Fin n) :
@[simp]
theorem Fin.map_succEmb_Ioo {n : } (i j : Fin n) :
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]

Images under Fin.rev #

@[simp]
@[simp]
@[simp]
@[simp]

Finset.map along revPerm #

Cardinalities of the intervals #

@[simp]
theorem Fin.card_Icc {n : } (a b : Fin n) :
(Finset.Icc a b).card = b + 1 - a
@[simp]
theorem Fin.card_Ico {n : } (a b : Fin n) :
(Finset.Ico a b).card = b - a
@[simp]
theorem Fin.card_Ioc {n : } (a b : Fin n) :
(Finset.Ioc a b).card = b - a
@[simp]
theorem Fin.card_Ioo {n : } (a b : Fin n) :
(Finset.Ioo a b).card = b - a - 1
@[simp]
theorem Fin.card_uIcc {n : } (a b : Fin n) :
(Finset.uIcc a b).card = (b - a).natAbs + 1
@[simp]
theorem Fin.card_Ici {n : } (a : Fin n) :
(Finset.Ici a).card = n - a
@[simp]
theorem Fin.card_Ioi {n : } (a : Fin n) :
(Finset.Ioi a).card = n - 1 - a
@[simp]
theorem Fin.card_Iic {n : } (b : Fin n) :
(Finset.Iic b).card = b + 1
@[simp]
theorem Fin.card_Iio {n : } (b : Fin n) :
(Finset.Iio b).card = b
@[deprecated Fintype.card_Icc (since := "2025-03-28")]
theorem Fin.card_fintypeIcc {n : } (a b : Fin n) :
Fintype.card (Set.Icc a b) = b + 1 - a
@[deprecated Fintype.card_Ico (since := "2025-03-28")]
theorem Fin.card_fintypeIco {n : } (a b : Fin n) :
Fintype.card (Set.Ico a b) = b - a
@[deprecated Fintype.card_Ioc (since := "2025-03-28")]
theorem Fin.card_fintypeIoc {n : } (a b : Fin n) :
Fintype.card (Set.Ioc a b) = b - a
@[deprecated Fintype.card_Ioo (since := "2025-03-28")]
theorem Fin.card_fintypeIoo {n : } (a b : Fin n) :
Fintype.card (Set.Ioo a b) = b - a - 1
@[deprecated Fintype.card_uIcc (since := "2025-03-28")]
theorem Fin.card_fintype_uIcc {n : } (a b : Fin n) :
Fintype.card (Set.uIcc a b) = (b - a).natAbs + 1
@[deprecated Fintype.card_Ici (since := "2025-03-28")]
theorem Fin.card_fintypeIci {n : } (a : Fin n) :
Fintype.card (Set.Ici a) = n - a
@[deprecated Fintype.card_Ioi (since := "2025-03-28")]
theorem Fin.card_fintypeIoi {n : } (a : Fin n) :
Fintype.card (Set.Ioi a) = n - 1 - a
@[deprecated Fintype.card_Iic (since := "2025-03-28")]
theorem Fin.card_fintypeIic {n : } (b : Fin n) :
Fintype.card (Set.Iic b) = b + 1
@[deprecated Fintype.card_Iio (since := "2025-03-28")]
theorem Fin.card_fintypeIio {n : } (b : Fin n) :
Fintype.card (Set.Iio b) = b