The Finsupp counterpart of Multiset.antidiagonal. #
The antidiagonal of s : α →₀ ℕ consists of
all pairs (t₁, t₂) : (α →₀ ℕ) × (α →₀ ℕ) such that t₁ + t₂ = s.
The Finsupp counterpart of Multiset.antidiagonal: the antidiagonal of
s : α →₀ ℕ consists of all pairs (t₁, t₂) : (α →₀ ℕ) × (α →₀ ℕ) such that t₁ + t₂ = s.
The finitely supported function antidiagonal s is equal to the multiplicities of these pairs.
Equations
Instances For
@[instance_reducible]
The antidiagonal of s : α →₀ ℕ is the finset of all pairs (t₁, t₂) : (α →₀ ℕ) × (α →₀ ℕ)
such that t₁ + t₂ = s.
Equations
- Finsupp.instHasAntidiagonal = { antidiagonal := fun (f : α →₀ ℕ) => f.antidiagonal'.support, mem_antidiagonal := ⋯ }
@[simp]
theorem Finsupp.prod_antidiagonal_swap {α : Type u} [DecidableEq α] {M : Type u_1} [CommMonoid M] (n : α →₀ ℕ) (f : (α →₀ ℕ) → (α →₀ ℕ) → M) :
theorem Finsupp.sum_antidiagonal_swap {α : Type u} [DecidableEq α] {M : Type u_1} [AddCommMonoid M] (n : α →₀ ℕ) (f : (α →₀ ℕ) → (α →₀ ℕ) → M) :
@[simp]
theorem Finsupp.antidiagonal_single {α : Type u} [DecidableEq α] (a : α) (n : ℕ) :
Finset.antidiagonal (single a n) = Finset.map ({ toFun := single a, inj' := ⋯ }.prodMap { toFun := single a, inj' := ⋯ }) (Finset.antidiagonal n)
theorem Finsupp.image_prodMap_embDomain_antidiagonal {α : Type u} [DecidableEq α] {β : Type u_1} [DecidableEq β] (f : α ↪ β) (y : α →₀ ℕ) :
Finset.image (Prod.map (embDomain f) (embDomain f)) (Finset.antidiagonal y) = Finset.antidiagonal (embDomain f y)
theorem Finsupp.image_sumElim_product_antidiagonal {α : Type u} [DecidableEq α] {β : Type u_1} [DecidableEq β] {x : α →₀ ℕ} {y : β →₀ ℕ} :