Documentation

Mathlib.Data.Finset.Fin

Finsets in Fin n #

A few constructions for Finsets in Fin n.

Main declarations #

def Finset.attachFin (s : Finset ℕ) {n : ℕ} (h : ∀ m ∈ s, m < n) :

Given a Finset s of ℕ contained in {0,..., n-1}, the corresponding Finset in Fin n is s.attachFin h where h is a proof that all elements of s are less than n.

Equations
Instances For
    @[simp]
    theorem Finset.mem_attachFin {n : ℕ} {s : Finset ℕ} (h : ∀ m ∈ s, m < n) {a : Fin n} :
    a ∈ s.attachFin h ↔ ↑a ∈ s
    @[simp]
    theorem Finset.coe_attachFin {n : ℕ} {s : Finset ℕ} (h : ∀ m ∈ s, m < n) :
    ↑(s.attachFin h) = Fin.val ⁻¹' ↑s
    @[simp]
    theorem Finset.card_attachFin {n : ℕ} (s : Finset ℕ) (h : ∀ m ∈ s, m < n) :
    @[simp]
    theorem Finset.image_val_attachFin {n : ℕ} {s : Finset ℕ} (h : ∀ m ∈ s, m < n) :
    @[simp]
    theorem Finset.map_valEmbedding_attachFin {n : ℕ} {s : Finset ℕ} (h : ∀ m ∈ s, m < n) :
    @[simp]
    theorem Finset.attachFin_subset_attachFin_iff {n : ℕ} {s t : Finset ℕ} (hs : ∀ m ∈ s, m < n) (ht : ∀ m ∈ t, m < n) :
    s.attachFin hs ⊆ t.attachFin ht ↔ s ⊆ t
    theorem Finset.attachFin_subset_attachFin {n : ℕ} {s t : Finset ℕ} (hst : s ⊆ t) (ht : ∀ m ∈ t, m < n) :
    @[simp]
    theorem Finset.attachFin_ssubset_attachFin_iff {n : ℕ} {s t : Finset ℕ} (hs : ∀ m ∈ s, m < n) (ht : ∀ m ∈ t, m < n) :
    s.attachFin hs ⊂ t.attachFin ht ↔ s ⊂ t
    theorem Finset.attachFin_ssubset_attachFin {n : ℕ} {s t : Finset ℕ} (hst : s ⊂ t) (ht : ∀ m ∈ t, m < n) :
    @[deprecated Finset.attachFin (since := "2025-04-08")]
    def Finset.fin (n : ℕ) (s : Finset ℕ) :

    Given a finset s of natural numbers and a bound n, s.fin n is the finset of all elements of s less than n.

    This definition was introduced to define a LocallyFiniteOrder instance on Fin n. Later, this instance was rewritten using a more efficient attachFin. Since this definition had no other uses in the library, it was deprecated.

    Equations
    Instances For
      @[simp, deprecated Finset.mem_attachFin (since := "2025-04-08")]
      theorem Finset.mem_fin {n : ℕ} {s : Finset ℕ} (a : Fin n) :
      a ∈ Finset.fin n s ↔ ↑a ∈ s
      @[simp, deprecated Finset.coe_attachFin (since := "2025-04-08")]
      theorem Finset.coe_fin (n : ℕ) (s : Finset ℕ) :
      ↑(Finset.fin n s) = Fin.val ⁻¹' ↑s
      @[deprecated Finset.attachFin_subset_attachFin (since := "2025-04-08")]
      @[deprecated Finset.attachFin_subset_attachFin (since := "2025-04-08")]
      theorem Finset.fin_subset_fin (n : ℕ) {s t : Finset ℕ} (h : s ⊆ t) :
      @[simp, deprecated Finset.map_valEmbedding_attachFin (since := "2025-04-08")]
      theorem Finset.fin_map {n : ℕ} {s : Finset ℕ} :
      map Fin.valEmbedding (Finset.fin n s) = {x ∈ s | x < n}
      @[deprecated "No replacement" (since := "2025-04-08")]
      theorem Finset.attachFin_eq_fin {n : ℕ} {s : Finset ℕ} (h : ∀ m ∈ s, m < n) :