# Big operators for NatAntidiagonal#

This file contains theorems relevant to big operators over Finset.NatAntidiagonal.

theorem Finset.Nat.prod_antidiagonal_succ {M : Type u_1} [] {n : } {f : M} :
pFinset.antidiagonal (n + 1), f p = f (0, n + 1) * p, f (p.1 + 1, p.2)
theorem Finset.Nat.sum_antidiagonal_succ {N : Type u_2} [] {n : } {f : N} :
pFinset.antidiagonal (n + 1), f p = f (0, n + 1) + p, f (p.1 + 1, p.2)
theorem Finset.Nat.sum_antidiagonal_swap {M : Type u_1} [] {n : } {f : M} :
p, f p.swap = p, f p
theorem Finset.Nat.prod_antidiagonal_swap {M : Type u_1} [] {n : } {f : M} :
p, f p.swap = p, f p
theorem Finset.Nat.prod_antidiagonal_succ' {M : Type u_1} [] {n : } {f : M} :
pFinset.antidiagonal (n + 1), f p = f (n + 1, 0) * p, f (p.1, p.2 + 1)
theorem Finset.Nat.sum_antidiagonal_succ' {N : Type u_2} [] {n : } {f : N} :
pFinset.antidiagonal (n + 1), f p = f (n + 1, 0) + p, f (p.1, p.2 + 1)
theorem Finset.Nat.sum_antidiagonal_subst {M : Type u_1} [] {n : } {f : M} :
p, f p n = p, f p (p.1 + p.2)
theorem Finset.Nat.prod_antidiagonal_subst {M : Type u_1} [] {n : } {f : M} :
p, f p n = p, f p (p.1 + p.2)
theorem Finset.Nat.sum_antidiagonal_eq_sum_range_succ_mk {M : Type u_3} [] (f : M) (n : ) :
ij, f ij = kFinset.range n.succ, f (k, n - k)
theorem Finset.Nat.prod_antidiagonal_eq_prod_range_succ_mk {M : Type u_3} [] (f : M) (n : ) :
ij, f ij = kFinset.range n.succ, f (k, n - k)
theorem Finset.Nat.sum_antidiagonal_eq_sum_range_succ {M : Type u_3} [] (f : M) (n : ) :
ij, f ij.1 ij.2 = kFinset.range n.succ, f k (n - k)

This lemma matches more generally than Finset.Nat.sum_antidiagonal_eq_sum_range_succ_mk when using rw ← .

theorem Finset.Nat.prod_antidiagonal_eq_prod_range_succ {M : Type u_3} [] (f : M) (n : ) :
ij, f ij.1 ij.2 = kFinset.range n.succ, f k (n - k)

This lemma matches more generally than Finset.Nat.prod_antidiagonal_eq_prod_range_succ_mk when using rw ← .