Finite sets in a sigma type #
This file defines a few Finset constructions on Σ i, α i.
Main declarations #
Finset.sigma: Given a finsetsinιand finsetst iin eachα i,s.sigma tis the finset of the dependent sumΣ i, α iFinset.sigmaLift: Lifts mapsα i → β i → Finset (γ i)to a mapΣ i, α i → Σ i, β i → Finset (Σ i, γ i).
TODO #
Finset.sigmaLift can be generalized to any alternative functor. But to make the generalization
worth it, we must first refactor the functor library so that the alternative instance for Finset
is computable and universe-polymorphic.
theorem
Finset.Aesop.sigma_nonempty_of_exists_nonempty
{ι : Type u_1}
{α : ι → Type u_2}
{s : Finset ι}
{t : (i : ι) → Finset (α i)}
:
Alias of the reverse direction of Finset.sigma_nonempty.
theorem
Finset.pairwiseDisjoint_map_sigmaMk
{ι : Type u_1}
{α : ι → Type u_2}
{s : Finset ι}
{t : (i : ι) → Finset (α i)}
:
(↑s).PairwiseDisjoint fun (i : ι) => map (Function.Embedding.sigmaMk i) (t i)
@[simp]
theorem
Finset.disjiUnion_map_sigma_mk
{ι : Type u_1}
{α : ι → Type u_2}
{s : Finset ι}
{t : (i : ι) → Finset (α i)}
:
theorem
Finset.sigma_eq_biUnion
{ι : Type u_1}
{α : ι → Type u_2}
[DecidableEq ((i : ι) × α i)]
(s : Finset ι)
(t : (i : ι) → Finset (α i))
:
def
Finset.sigmaLift
{ι : Type u_1}
{α : ι → Type u_2}
{β : ι → Type u_3}
{γ : ι → Type u_4}
[DecidableEq ι]
(f : ⦃i : ι⦄ → α i → β i → Finset (γ i))
(a : Sigma α)
(b : Sigma β)
:
Lifts maps α i → β i → Finset (γ i) to a map Σ i, α i → Σ i, β i → Finset (Σ i, γ i).
Equations
- Finset.sigmaLift f a b = if h : a.fst = b.fst then Finset.map (Function.Embedding.sigmaMk b.fst) (f (h ▸ a.snd) b.snd) else ∅
Instances For
theorem
Finset.mem_sigmaLift
{ι : Type u_1}
{α : ι → Type u_2}
{β : ι → Type u_3}
{γ : ι → Type u_4}
[DecidableEq ι]
(f : ⦃i : ι⦄ → α i → β i → Finset (γ i))
(a : Sigma α)
(b : Sigma β)
(x : Sigma γ)
:
@[deprecated Finset.notMem_sigmaLift_of_ne_left (since := "2025-05-23")]
theorem
Finset.not_mem_sigmaLift_of_ne_left
{ι : Type u_1}
{α : ι → Type u_2}
{β : ι → Type u_3}
{γ : ι → Type u_4}
[DecidableEq ι]
(f : ⦃i : ι⦄ → α i → β i → Finset (γ i))
(a : Sigma α)
(b : Sigma β)
(x : Sigma γ)
(h : a.fst ≠ x.fst)
:
x ∉ sigmaLift f a b
Alias of Finset.notMem_sigmaLift_of_ne_left.
@[deprecated Finset.notMem_sigmaLift_of_ne_right (since := "2025-05-23")]
theorem
Finset.not_mem_sigmaLift_of_ne_right
{ι : Type u_1}
{α : ι → Type u_2}
{β : ι → Type u_3}
{γ : ι → Type u_4}
[DecidableEq ι]
(f : ⦃i : ι⦄ → α i → β i → Finset (γ i))
{a : Sigma α}
(b : Sigma β)
{x : Sigma γ}
(h : b.fst ≠ x.fst)
:
x ∉ sigmaLift f a b
Alias of Finset.notMem_sigmaLift_of_ne_right.