Loogle!
Result
Found 348 declarations mentioning Nat.choose. Of these, only the first 200 are shown.
- Nat.choose π Mathlib.Data.Nat.Choose.Basic
: β β β β β - Nat.choose_eq_fast_choose π Mathlib.Data.Nat.Choose.Basic
: Nat.choose = Nat.fast_choose - Nat.choose_mono π Mathlib.Data.Nat.Choose.Basic
(b : β) : Monotone fun a => a.choose b - Nat.choose_one_right π Mathlib.Data.Nat.Choose.Basic
(n : β) : n.choose 1 = n - Nat.choose_self π Mathlib.Data.Nat.Choose.Basic
(n : β) : n.choose n = 1 - Nat.choose_le_succ π Mathlib.Data.Nat.Choose.Basic
(a c : β) : a.choose c β€ a.succ.choose c - Nat.choose_succ_self π Mathlib.Data.Nat.Choose.Basic
(n : β) : n.choose n.succ = 0 - Nat.choose_zero_right π Mathlib.Data.Nat.Choose.Basic
(n : β) : n.choose 0 = 1 - Nat.choose_zero_succ π Mathlib.Data.Nat.Choose.Basic
(k : β) : Nat.choose 0 k.succ = 0 - Nat.choose_eq_zero_of_lt π Mathlib.Data.Nat.Choose.Basic
{n k : β} : n < k β n.choose k = 0 - Nat.choose_le_choose π Mathlib.Data.Nat.Choose.Basic
{a b : β} (c : β) (h : a β€ b) : a.choose c β€ b.choose c - Nat.choose_ne_zero π Mathlib.Data.Nat.Choose.Basic
{n k : β} (h : k β€ n) : n.choose k β 0 - Nat.choose_eq_zero_iff π Mathlib.Data.Nat.Choose.Basic
{n k : β} : n.choose k = 0 β n < k - Nat.choose_ne_zero_iff π Mathlib.Data.Nat.Choose.Basic
{n k : β} : n.choose k β 0 β k β€ n - Nat.choose_pos π Mathlib.Data.Nat.Choose.Basic
{n k : β} : k β€ n β 0 < n.choose k - Nat.choose_eq_descFactorial_div_factorial π Mathlib.Data.Nat.Choose.Basic
(n k : β) : n.choose k = n.descFactorial k / k.factorial - Nat.descFactorial_eq_factorial_mul_choose π Mathlib.Data.Nat.Choose.Basic
(n k : β) : n.descFactorial k = k.factorial * n.choose k - Nat.choose_le_add π Mathlib.Data.Nat.Choose.Basic
(a b c : β) : a.choose c β€ (a + b).choose c - Nat.choose_le_middle π Mathlib.Data.Nat.Choose.Basic
(r n : β) : n.choose r β€ n.choose (n / 2) - Nat.choose_succ_succ π Mathlib.Data.Nat.Choose.Basic
(n k : β) : n.succ.choose k.succ = n.choose k + n.choose k.succ - Nat.choose_symm π Mathlib.Data.Nat.Choose.Basic
{n k : β} (hk : k β€ n) : n.choose (n - k) = n.choose k - Nat.choose_symm_of_eq_add π Mathlib.Data.Nat.Choose.Basic
{n a b : β} (h : n = a + b) : n.choose a = n.choose b - Nat.choose_eq_one_iff π Mathlib.Data.Nat.Choose.Basic
{n k : β} : n.choose k = 1 β k = 0 β¨ n = k - Nat.choose_symm_add π Mathlib.Data.Nat.Choose.Basic
{a b : β} : (a + b).choose a = (a + b).choose b - Nat.multichoose_eq π Mathlib.Data.Nat.Choose.Basic
(n k : β) : n.multichoose k = (n + k - 1).choose k - Nat.choose_succ_self_right π Mathlib.Data.Nat.Choose.Basic
(n : β) : (n + 1).choose n = n + 1 - Nat.ascFactorial_eq_factorial_mul_choose π Mathlib.Data.Nat.Choose.Basic
(n k : β) : (n + 1).ascFactorial k = k.factorial * (n + k).choose k - Nat.ascFactorial_eq_factorial_mul_choose' π Mathlib.Data.Nat.Choose.Basic
(n k : β) : n.ascFactorial k = k.factorial * (n + k - 1).choose k - Nat.choose_eq_asc_factorial_div_factorial π Mathlib.Data.Nat.Choose.Basic
(n k : β) : (n + k).choose k = (n + 1).ascFactorial k / k.factorial - Nat.choose_eq_asc_factorial_div_factorial' π Mathlib.Data.Nat.Choose.Basic
(n k : β) : (n + k - 1).choose k = n.ascFactorial k / k.factorial - Nat.choose_eq_factorial_div_factorial π Mathlib.Data.Nat.Choose.Basic
{n k : β} (hk : k β€ n) : n.choose k = n.factorial / (k.factorial * (n - k).factorial) - Nat.choose_le_succ_of_lt_half_left π Mathlib.Data.Nat.Choose.Basic
{r n : β} (h : r < n / 2) : n.choose r β€ n.choose (r + 1) - Nat.choose_mul_factorial_mul_factorial π Mathlib.Data.Nat.Choose.Basic
{n k : β} : k β€ n β n.choose k * k.factorial * (n - k).factorial = n.factorial - Nat.add_choose π Mathlib.Data.Nat.Choose.Basic
(i j : β) : (i + j).choose j = (i + j).factorial / (i.factorial * j.factorial) - Nat.add_choose_mul_factorial_mul_factorial π Mathlib.Data.Nat.Choose.Basic
(i j : β) : (i + j).choose j * i.factorial * j.factorial = (i + j).factorial - Nat.choose_two_right π Mathlib.Data.Nat.Choose.Basic
(n : β) : n.choose 2 = n * (n - 1) / 2 - Nat.choose_mul π Mathlib.Data.Nat.Choose.Basic
{n k s : β} (hsk : s β€ k) : n.choose k * k.choose s = n.choose s * (n - s).choose (k - s) - Nat.choose_succ_left π Mathlib.Data.Nat.Choose.Basic
(n k : β) (hk : 0 < k) : (n + 1).choose k = n.choose (k - 1) + n.choose k - Nat.choose_succ_succ' π Mathlib.Data.Nat.Choose.Basic
(n k : β) : (n + 1).choose (k + 1) = n.choose k + n.choose (k + 1) - Nat.choose_succ_right_eq π Mathlib.Data.Nat.Choose.Basic
(n k : β) : n.choose (k + 1) * (k + 1) = n.choose k * (n - k) - Nat.choose_mul_right π Mathlib.Data.Nat.Choose.Basic
{m n : β} (hn : n β 0) : (m * n).choose n = m * (m * n - 1).choose (n - 1) - Nat.choose_symm_half π Mathlib.Data.Nat.Choose.Basic
(m : β) : (2 * m + 1).choose (m + 1) = (2 * m + 1).choose m - Nat.choose_mul_succ_eq π Mathlib.Data.Nat.Choose.Basic
(n k : β) : n.choose k * (n + 1) = (n + 1).choose k * (n + 1 - k) - Nat.add_one_mul_choose_eq π Mathlib.Data.Nat.Choose.Basic
(n k : β) : (n + 1) * n.choose k = (n + 1).choose (k + 1) * (k + 1) - Nat.choose_eq_choose_pred_add π Mathlib.Data.Nat.Choose.Basic
{n k : β} (hn : 0 < n) (hk : 0 < k) : n.choose k = (n - 1).choose (k - 1) + (n - 1).choose k - Nat.choose_succ_right π Mathlib.Data.Nat.Choose.Basic
(n k : β) (hn : 0 < n) : n.choose (k + 1) = (n - 1).choose k + (n - 1).choose (k + 1) - Nat.choose_mul_add π Mathlib.Data.Nat.Choose.Basic
{m n : β} (hn : n β 0) : (m * n + n).choose n = (m + 1) * (m * n + n - 1).choose (n - 1) - Finset.card_product_filter_lt π Mathlib.Data.Finset.Prod
{Ξ± : Type u_1} {s : Finset Ξ±} [LinearOrder Ξ±] : {x β s ΓΛ’ s | x.1 < x.2}.card = s.card.choose 2 - Fintype.card_product_filter_lt π Mathlib.Data.Fintype.Prod
{Ξ± : Type u_1} [Fintype Ξ±] [LinearOrder Ξ±] : {x | x.1 < x.2}.card = (Fintype.card Ξ±).choose 2 - List.length_sublistsLen π Mathlib.Data.List.Sublists
{Ξ± : Type u} (n : β) (l : List Ξ±) : (List.sublistsLen n l).length = l.length.choose n - Multiset.card_powersetCard π Mathlib.Data.Multiset.Powerset
{Ξ± : Type u_1} (n : β) (s : Multiset Ξ±) : (Multiset.powersetCard n s).card = s.card.choose n - Finset.card_powersetCard π Mathlib.Data.Finset.Powerset
{Ξ± : Type u_1} (n : β) (s : Finset Ξ±) : (Finset.powersetCard n s).card = s.card.choose n - Finset.card_filter_powersetCard_subset π Mathlib.Data.Finset.Powerset
{Ξ± : Type u_1} [DecidableEq Ξ±] (s t : Finset Ξ±) (n : β) (hst : s β t) (hsn : s.card β€ n) : {x β Finset.powersetCard n t | s β x}.card = (t.card - s.card).choose (n - s.card) - Fintype.card_finset_len π Mathlib.Data.Fintype.Powerset
{Ξ± : Type u_1} [Fintype Ξ±] (k : β) : Fintype.card { s // s.card = k } = (Fintype.card Ξ±).choose k - Set.ncard_powerset_ncard π Mathlib.Data.Set.Card
{Ξ± : Type u_1} {s : Set Ξ±} (hs : s.Finite) (n : β) : {t | t β s β§ t.ncard = n}.ncard = s.ncard.choose n - Nat.sum_range_multichoose π Mathlib.Data.Nat.Choose.Sum
(n k : β) : β i β Finset.range (n + 1), k.multichoose i = (n + k).choose k - Nat.sum_range_choose π Mathlib.Data.Nat.Choose.Sum
(n : β) : β m β Finset.range (n + 1), n.choose m = 2 ^ n - Nat.sum_Icc_choose π Mathlib.Data.Nat.Choose.Sum
(n k : β) : β m β Finset.Icc k n, m.choose k = (n + 1).choose (k + 1) - Nat.choose_middle_le_pow π Mathlib.Data.Nat.Choose.Sum
(n : β) : (2 * n + 1).choose n β€ 4 ^ n - Finset.sum_powerset_apply_card π Mathlib.Data.Nat.Choose.Sum
{Ξ± : Type u_2} {Ξ² : Type u_3} [AddCommMonoid Ξ±] (f : β β Ξ±) {x : Finset Ξ²} : β m β x.powerset, f m.card = β m β Finset.range (x.card + 1), x.card.choose m β’ f m - Finset.sum_antidiagonal_choose_add π Mathlib.Data.Nat.Choose.Sum
(d n : β) : β ij β Finset.HasAntidiagonal.antidiagonal n, (d + ij.2).choose d = (d + n + 1).choose (d + 1) - Nat.sum_range_choose_halfway π Mathlib.Data.Nat.Choose.Sum
(m : β) : β i β Finset.range (m + 1), (2 * m + 1).choose i = 4 ^ m - Int.alternating_sum_range_choose_of_ne π Mathlib.Data.Nat.Choose.Sum
{n : β} (h0 : n β 0) : β m β Finset.range (n + 1), (-1) ^ m * β(n.choose m) = 0 - Nat.four_pow_le_two_mul_add_one_mul_central_binom π Mathlib.Data.Nat.Choose.Sum
(n : β) : 4 ^ n β€ (2 * n + 1) * (2 * n).choose n - Nat.sum_range_add_choose π Mathlib.Data.Nat.Choose.Sum
(n k : β) : β i β Finset.range (n + 1), (i + k).choose k = (n + k + 1).choose (k + 1) - Nat.sum_range_mul_choose π Mathlib.Data.Nat.Choose.Sum
(n : β) : β i β Finset.range (n + 1), i * n.choose i = n * 2 ^ (n - 1) - Int.alternating_sum_range_choose π Mathlib.Data.Nat.Choose.Sum
{n : β} : β m β Finset.range (n + 1), (-1) ^ m * β(n.choose m) = if n = 0 then 1 else 0 - Int.alternating_sum_range_choose_eq_choose π Mathlib.Data.Nat.Choose.Sum
{n m : β} : β k β Finset.range (m + 1), (-1) ^ k * β((n + 1).choose k) = (-1) ^ m * β(n.choose m) - Commute.add_pow' π Mathlib.Data.Nat.Choose.Sum
{R : Type u_1} [Semiring R] {x y : R} (h : Commute x y) (n : β) : (x + y) ^ n = β m β Finset.HasAntidiagonal.antidiagonal n, n.choose m.1 β’ (x ^ m.1 * y ^ m.2) - Commute.add_pow π Mathlib.Data.Nat.Choose.Sum
{R : Type u_1} [Semiring R] {x y : R} (h : Commute x y) (n : β) : (x + y) ^ n = β m β Finset.range (n + 1), x ^ m * y ^ (n - m) * β(n.choose m) - add_pow π Mathlib.Data.Nat.Choose.Sum
{R : Type u_1} [CommSemiring R] (x y : R) (n : β) : (x + y) ^ n = β m β Finset.range (n + 1), x ^ m * y ^ (n - m) * β(n.choose m) - Finset.prod_antidiagonal_pow_choose_succ π Mathlib.Data.Nat.Choose.Sum
{M : Type u_2} [CommMonoid M] (f : β β β β M) (n : β) : β ij β Finset.HasAntidiagonal.antidiagonal (n + 1), f ij.1 ij.2 ^ (n + 1).choose ij.1 = (β ij β Finset.HasAntidiagonal.antidiagonal n, f ij.1 (ij.2 + 1) ^ n.choose ij.1) * β ij β Finset.HasAntidiagonal.antidiagonal n, f (ij.1 + 1) ij.2 ^ n.choose ij.2 - Finset.sum_antidiagonal_choose_succ_nsmul π Mathlib.Data.Nat.Choose.Sum
{M : Type u_2} [AddCommMonoid M] (f : β β β β M) (n : β) : β ij β Finset.HasAntidiagonal.antidiagonal (n + 1), (n + 1).choose ij.1 β’ f ij.1 ij.2 = β ij β Finset.HasAntidiagonal.antidiagonal n, n.choose ij.1 β’ f ij.1 (ij.2 + 1) + β ij β Finset.HasAntidiagonal.antidiagonal n, n.choose ij.2 β’ f (ij.1 + 1) ij.2 - Finset.prod_pow_choose_succ π Mathlib.Data.Nat.Choose.Sum
{M : Type u_2} [CommMonoid M] (f : β β β β M) (n : β) : β i β Finset.range (n + 2), f i (n + 1 - i) ^ (n + 1).choose i = (β i β Finset.range (n + 1), f i (n + 1 - i) ^ n.choose i) * β i β Finset.range (n + 1), f (i + 1) (n - i) ^ n.choose i - Finset.sum_choose_succ_nsmul π Mathlib.Data.Nat.Choose.Sum
{M : Type u_2} [AddCommMonoid M] (f : β β β β M) (n : β) : β i β Finset.range (n + 2), (n + 1).choose i β’ f i (n + 1 - i) = β i β Finset.range (n + 1), n.choose i β’ f i (n + 1 - i) + β i β Finset.range (n + 1), n.choose i β’ f (i + 1) (n - i) - Finset.sum_antidiagonal_choose_succ_mul π Mathlib.Data.Nat.Choose.Sum
{R : Type u_1} [NonAssocSemiring R] (f : β β β β R) (n : β) : β ij β Finset.HasAntidiagonal.antidiagonal (n + 1), β((n + 1).choose ij.1) * f ij.1 ij.2 = β ij β Finset.HasAntidiagonal.antidiagonal n, β(n.choose ij.1) * f ij.1 (ij.2 + 1) + β ij β Finset.HasAntidiagonal.antidiagonal n, β(n.choose ij.2) * f (ij.1 + 1) ij.2 - sub_pow π Mathlib.Data.Nat.Choose.Sum
{R : Type u_1} [CommRing R] (x y : R) (n : β) : (x - y) ^ n = β m β Finset.range (n + 1), (-1) ^ (m + n) * x ^ m * y ^ (n - m) * β(n.choose m) - Finset.sum_choose_succ_mul π Mathlib.Data.Nat.Choose.Sum
{R : Type u_1} [NonAssocSemiring R] (f : β β β β R) (n : β) : β i β Finset.range (n + 2), β((n + 1).choose i) * f i (n + 1 - i) = β i β Finset.range (n + 1), β(n.choose i) * f i (n + 1 - i) + β i β Finset.range (n + 1), β(n.choose i) * f (i + 1) (n - i) - Polynomial.coeff_X_add_one_pow π Mathlib.Algebra.Polynomial.Coeff
(R : Type u_1) [Semiring R] (n k : β) : ((Polynomial.X + 1) ^ n).coeff k = β(n.choose k) - Polynomial.coeff_one_add_X_pow π Mathlib.Algebra.Polynomial.Coeff
(R : Type u_1) [Semiring R] (n k : β) : ((1 + Polynomial.X) ^ n).coeff k = β(n.choose k) - Polynomial.coeff_X_add_C_pow π Mathlib.Algebra.Polynomial.Coeff
{R : Type u} [Semiring R] (r : R) (n k : β) : ((Polynomial.X + Polynomial.C r) ^ n).coeff k = r ^ (n - k) * β(n.choose k) - Polynomial.one_add_X_pow_sub_X_pow π Mathlib.Algebra.Polynomial.Coeff
{S : Type u_1} [CommRing S] (d : β) : (1 + Polynomial.X) ^ d - Polynomial.X ^ d = β i β Finset.range d, d.choose i β’ Polynomial.X ^ i - Polynomial.eval_monomial_one_add_sub π Mathlib.Algebra.Polynomial.Eval.Degree
{S : Type v} [CommRing S] (d : β) (y : S) : Polynomial.eval (1 + y) ((Polynomial.monomial d) (βd + 1)) - Polynomial.eval y ((Polynomial.monomial d) (βd + 1)) = β x_1 β Finset.range (d + 1), β((d + 1).choose x_1) * (βx_1 * y ^ (x_1 - 1)) - Polynomial.geom_sum_X_comp_X_add_one_eq_sum π Mathlib.RingTheory.Polynomial.Basic
{R : Type u} [Semiring R] (n : β) : (β i β Finset.range n, Polynomial.X ^ i).comp (Polynomial.X + 1) = β i β Finset.range n, β(n.choose (i + 1)) * Polynomial.X ^ i - Nat.choose_le_descFactorial π Mathlib.Data.Nat.Choose.Bounds
(n k : β) : n.choose k β€ n.descFactorial k - Nat.choose_le_pow π Mathlib.Data.Nat.Choose.Bounds
(n k : β) : n.choose k β€ n ^ k - Nat.choose_lt_descFactorial π Mathlib.Data.Nat.Choose.Bounds
{n k : β} (hk : 2 β€ k) (hkn : k β€ n) : n.choose k < n.descFactorial k - Nat.choose_le_two_pow π Mathlib.Data.Nat.Choose.Bounds
(n k : β) : n.choose k β€ 2 ^ n - Nat.choose_lt_two_pow π Mathlib.Data.Nat.Choose.Bounds
(n k : β) (p : 0 < n) : n.choose k < 2 ^ n - Nat.choose_succ_le_two_pow π Mathlib.Data.Nat.Choose.Bounds
(n k : β) : (n + 1).choose k β€ 2 ^ n - Nat.choose_lt_pow π Mathlib.Data.Nat.Choose.Bounds
{n k : β} (hn : n β 0) (hk : 2 β€ k) : n.choose k < n ^ k - Nat.choose_add_le_add_one_pow π Mathlib.Data.Nat.Choose.Bounds
(n k : β) : (n + k).choose k β€ (n + 1) ^ k - Nat.choose_le_sub_pow π Mathlib.Data.Nat.Choose.Bounds
(n k : β) : n.choose k β€ (n + 1 - k) ^ k - Nat.choose_le_pow_div π Mathlib.Data.Nat.Choose.Bounds
{Ξ± : Type u_1} [Semifield Ξ±] [LinearOrder Ξ±] [IsStrictOrderedRing Ξ±] (r n : β) : β(n.choose r) β€ βn ^ r / βr.factorial - Nat.choose_lt_pow_div π Mathlib.Data.Nat.Choose.Bounds
{Ξ± : Type u_1} [Semifield Ξ±] [LinearOrder Ξ±] [IsStrictOrderedRing Ξ±] {n k : β} (hn : n β 0) (hk : 2 β€ k) : β(n.choose k) < βn ^ k / βk.factorial - Nat.pow_le_choose π Mathlib.Data.Nat.Choose.Bounds
{Ξ± : Type u_1} [Semifield Ξ±] [LinearOrder Ξ±] [IsStrictOrderedRing Ξ±] (r n : β) : β(n + 1 - r) ^ r / βr.factorial β€ β(n.choose r) - Nat.centralBinom_eq_two_mul_choose π Mathlib.Data.Nat.Choose.Central
(n : β) : n.centralBinom = (2 * n).choose n - Nat.choose_le_centralBinom π Mathlib.Data.Nat.Choose.Central
(r n : β) : (2 * n).choose r β€ n.centralBinom - List.sum_fixedLengthDigits_sum π Mathlib.Data.Nat.Digits.Lemmas
{b : β} (hb : 1 < b) (l : β) : β L β List.fixedLengthDigits hb l, L.sum = l * b ^ (l - 1) * b.choose 2 - Nat.sum_sum_digits_eq π Mathlib.Data.Nat.Digits.Lemmas
{b : β} (hb : 1 < b) (l : β) : β x β Finset.range (b ^ l), (b.digits x).sum = l * b ^ (l - 1) * b.choose 2 - Nat.factorization_choose_le_log π Mathlib.Data.Nat.Choose.Factorization
{p n k : β} : (n.choose k).factorization p β€ Nat.log p n - Nat.factorization_choose_eq_zero_of_lt π Mathlib.Data.Nat.Choose.Factorization
{p n k : β} (h : n < p) : (n.choose k).factorization p = 0 - Nat.pow_factorization_choose_le π Mathlib.Data.Nat.Choose.Factorization
{p n k : β} (hn : 0 < n) : p ^ (n.choose k).factorization p β€ n - Nat.factorization_choose_le_one π Mathlib.Data.Nat.Choose.Factorization
{p n k : β} (p_large : n < p ^ 2) : (n.choose k).factorization p β€ 1 - Nat.prod_pow_factorization_choose π Mathlib.Data.Nat.Choose.Factorization
(n k : β) (hkn : k β€ n) : β p β Finset.range (n + 1), p ^ (n.choose k).factorization p = n.choose k - Nat.factorization_choose_of_lt_three_mul π Mathlib.Data.Nat.Choose.Factorization
{p n k : β} (hp' : p β 2) (hk : p β€ k) (hk' : p β€ n - k) (hn : n < 3 * p) : (n.choose k).factorization p = 0 - Nat.factorization_le_factorization_choose_add π Mathlib.Data.Nat.Choose.Factorization
{p n k : β} : k β€ n β k β 0 β n.factorization p β€ (n.choose k).factorization p + k.factorization p - Nat.factorization_choose_prime_pow π Mathlib.Data.Nat.Choose.Factorization
{p n k : β} (hp : Nat.Prime p) (hkn : k β€ p ^ n) (hk0 : k β 0) : ((p ^ n).choose k).factorization p = n - k.factorization p - Nat.factorization_choose_prime_pow_add_factorization π Mathlib.Data.Nat.Choose.Factorization
{p n k : β} (hp : Nat.Prime p) (hkn : k β€ p ^ n) (hk0 : k β 0) : ((p ^ n).choose k).factorization p + k.factorization p = n - Nat.factorization_choose' π Mathlib.Data.Nat.Choose.Factorization
{p n k b : β} (hp : Nat.Prime p) (hnb : Nat.log p (n + k) < b) : ((n + k).choose k).factorization p = {i β Finset.Ico 1 b | p ^ i β€ k % p ^ i + n % p ^ i}.card - Nat.factorization_choose π Mathlib.Data.Nat.Choose.Factorization
{p n k b : β} (hp : Nat.Prime p) (hkn : k β€ n) (hnb : Nat.log p n < b) : (n.choose k).factorization p = {i β Finset.Ico 1 b | p ^ i β€ k % p ^ i + (n - k) % p ^ i}.card - Nat.Prime.emultiplicity_le_emultiplicity_choose_add π Mathlib.Data.Nat.Multiplicity
{p : β} (hp : Nat.Prime p) (n k : β) : emultiplicity p n β€ emultiplicity p (n.choose k) + emultiplicity p k - Nat.Prime.dvd_choose_pow π Mathlib.Data.Nat.Multiplicity
{p n k : β} (hp : Nat.Prime p) (hk : k β 0) (hkp : k β p ^ n) : p β£ (p ^ n).choose k - Nat.Prime.dvd_choose_pow_iff π Mathlib.Data.Nat.Multiplicity
{p n k : β} (hp : Nat.Prime p) : p β£ (p ^ n).choose k β k β 0 β§ k β p ^ n - Nat.Prime.emultiplicity_choose_prime_pow π Mathlib.Data.Nat.Multiplicity
{p n k : β} (hp : Nat.Prime p) (hkn : k β€ p ^ n) (hk0 : k β 0) : emultiplicity p ((p ^ n).choose k) = β(n - multiplicity p k) - Nat.Prime.emultiplicity_choose_prime_pow_add_emultiplicity π Mathlib.Data.Nat.Multiplicity
{p n k : β} (hp : Nat.Prime p) (hkn : k β€ p ^ n) (hk0 : k β 0) : emultiplicity p ((p ^ n).choose k) + emultiplicity p k = βn - Nat.Prime.emultiplicity_choose' π Mathlib.Data.Nat.Multiplicity
{p n k b : β} (hp : Nat.Prime p) (hnb : Nat.log p (n + k) < b) : emultiplicity p ((n + k).choose k) = β{i β Finset.Ico 1 b | p ^ i β€ k % p ^ i + n % p ^ i}.card - Nat.Prime.emultiplicity_choose π Mathlib.Data.Nat.Multiplicity
{p n k b : β} (hp : Nat.Prime p) (hkn : k β€ n) (hnb : Nat.log p n < b) : emultiplicity p (n.choose k) = β{i β Finset.Ico 1 b | p ^ i β€ k % p ^ i + (n - k) % p ^ i}.card - Commute.add_pow_prime_eq' π Mathlib.Algebra.CharP.Lemmas
{R : Type u_1} [Semiring R] {p : β} (hp : Nat.Prime p) {x y : R} (h : Commute x y) : (x + y) ^ p = x ^ p + y ^ p + βp * β k β Finset.Ioo 0 p, x ^ k * y ^ (p - k) * β(p.choose k / p) - add_pow_prime_eq' π Mathlib.Algebra.CharP.Lemmas
{R : Type u_1} [CommSemiring R] {p : β} (hp : Nat.Prime p) (x y : R) : (x + y) ^ p = x ^ p + y ^ p + βp * β k β Finset.Ioo 0 p, x ^ k * y ^ (p - k) * β(p.choose k / p) - Commute.add_pow_prime_eq π Mathlib.Algebra.CharP.Lemmas
{R : Type u_1} [Semiring R] {p : β} (hp : Nat.Prime p) {x y : R} (h : Commute x y) : (x + y) ^ p = x ^ p + y ^ p + βp * x * y * β k β Finset.Ioo 0 p, x ^ (k - 1) * y ^ (p - k - 1) * β(p.choose k / p) - add_pow_prime_eq π Mathlib.Algebra.CharP.Lemmas
{R : Type u_1} [CommSemiring R] {p : β} (hp : Nat.Prime p) (x y : R) : (x + y) ^ p = x ^ p + y ^ p + βp * x * y * β k β Finset.Ioo 0 p, x ^ (k - 1) * y ^ (p - k - 1) * β(p.choose k / p) - Commute.add_pow_prime_pow_eq' π Mathlib.Algebra.CharP.Lemmas
{R : Type u_1} [Semiring R] {p : β} (hp : Nat.Prime p) {x y : R} (h : Commute x y) (n : β) : (x + y) ^ p ^ n = x ^ p ^ n + y ^ p ^ n + βp * β k β Finset.Ioo 0 (p ^ n), x ^ k * y ^ (p ^ n - k) * β((p ^ n).choose k / p) - add_pow_prime_pow_eq' π Mathlib.Algebra.CharP.Lemmas
{R : Type u_1} [CommSemiring R] {p : β} (hp : Nat.Prime p) (x y : R) (n : β) : (x + y) ^ p ^ n = x ^ p ^ n + y ^ p ^ n + βp * β k β Finset.Ioo 0 (p ^ n), x ^ k * y ^ (p ^ n - k) * β((p ^ n).choose k / p) - Commute.add_pow_prime_pow_eq π Mathlib.Algebra.CharP.Lemmas
{R : Type u_1} [Semiring R] {p : β} (hp : Nat.Prime p) {x y : R} (h : Commute x y) (n : β) : (x + y) ^ p ^ n = x ^ p ^ n + y ^ p ^ n + βp * x * y * β k β Finset.Ioo 0 (p ^ n), x ^ (k - 1) * y ^ (p ^ n - k - 1) * β((p ^ n).choose k / p) - add_pow_prime_pow_eq π Mathlib.Algebra.CharP.Lemmas
{R : Type u_1} [CommSemiring R] {p : β} (hp : Nat.Prime p) (x y : R) (n : β) : (x + y) ^ p ^ n = x ^ p ^ n + y ^ p ^ n + βp * x * y * β k β Finset.Ioo 0 (p ^ n), x ^ (k - 1) * y ^ (p ^ n - k - 1) * β((p ^ n).choose k / p) - Polynomial.iterate_derivative_eq_factorial_smul_sum π Mathlib.Algebra.Polynomial.Derivative
{R : Type u} [Semiring R] (p : Polynomial R) (k : β) : (βPolynomial.derivative)^[k] p = k.factorial β’ β x β ((βPolynomial.derivative)^[k] p).support, Polynomial.C ((x + k).choose k β’ p.coeff (x + k)) * Polynomial.X ^ x - Polynomial.iterate_derivative_mul π Mathlib.Algebra.Polynomial.Derivative
{R : Type u} [Semiring R] {n : β} (p q : Polynomial R) : (βPolynomial.derivative)^[n] (p * q) = β k β Finset.range n.succ, n.choose k β’ ((βPolynomial.derivative)^[n - k] p * (βPolynomial.derivative)^[k] q) - Polynomial.iterate_derivative_mul_X_pow π Mathlib.Algebra.Polynomial.Derivative
{R : Type u} [CommSemiring R] (n m : β) (p : Polynomial R) : (βPolynomial.derivative)^[n] (p * Polynomial.X ^ m) = β k β Finset.range (min m n).succ, (n.choose k * m.descFactorial k) β’ ((βPolynomial.derivative)^[n - k] p * Polynomial.X ^ (m - k)) - Finset.prod_powersetCard π Mathlib.Algebra.BigOperators.Group.Finset.Powerset
{Ξ± : Type u_1} {Ξ² : Type u_2} [CommMonoid Ξ²] (n : β) (s : Finset Ξ±) (f : β β Ξ²) : β t β Finset.powersetCard n s, f t.card = f n ^ s.card.choose n - Finset.sum_powersetCard π Mathlib.Algebra.BigOperators.Group.Finset.Powerset
{Ξ± : Type u_1} {Ξ² : Type u_2} [AddCommMonoid Ξ²] (n : β) (s : Finset Ξ±) (f : β β Ξ²) : β t β Finset.powersetCard n s, f t.card = s.card.choose n β’ f n - List.length_sym2 π Mathlib.Data.List.Sym
{Ξ± : Type u_1} {xs : List Ξ±} : xs.sym2.length = (xs.length + 1).choose 2 - Multiset.card_sym2 π Mathlib.Data.Multiset.Sym
{Ξ± : Type u_1} {m : Multiset Ξ±} : m.sym2.card = (m.card + 1).choose 2 - Finset.card_sym2 π Mathlib.Data.Finset.Sym
{Ξ± : Type u_1} (s : Finset Ξ±) : s.sym2.card = (s.card + 1).choose 2 - Nat.cast_choose π Mathlib.Data.Nat.Choose.Cast
(K : Type u_1) [DivisionSemiring K] [CharZero K] {a b : β} (h : a β€ b) : β(b.choose a) = βb.factorial / (βa.factorial * β(b - a).factorial) - Nat.cast_add_choose π Mathlib.Data.Nat.Choose.Cast
(K : Type u_1) [DivisionSemiring K] [CharZero K] {a b : β} : β((a + b).choose a) = β(a + b).factorial / (βa.factorial * βb.factorial) - Nat.cast_choose_two π Mathlib.Data.Nat.Choose.Cast
(K : Type u_1) [DivisionRing K] [NeZero 2] (a : β) : β(a.choose 2) = βa * (βa - 1) / 2 - Nat.add_choose_eq π Mathlib.Data.Nat.Choose.Vandermonde
(m n k : β) : (m + n).choose k = β ij β Finset.HasAntidiagonal.antidiagonal k, m.choose ij.1 * n.choose ij.2 - Nat.sum_range_choose_sq π Mathlib.Data.Nat.Choose.Vandermonde
(n : β) : β i β Finset.range (n + 1), n.choose i ^ 2 = (2 * n).choose n - Polynomial.hasseDeriv_coeff π Mathlib.Algebra.Polynomial.HasseDeriv
{R : Type u_1} [Semiring R] (k : β) (f : Polynomial R) (n : β) : ((Polynomial.hasseDeriv k) f).coeff n = β((n + k).choose k) * f.coeff (n + k) - Polynomial.hasseDeriv_apply π Mathlib.Algebra.Polynomial.HasseDeriv
{R : Type u_1} [Semiring R] (k : β) (f : Polynomial R) : (Polynomial.hasseDeriv k) f = f.sum fun i r => (Polynomial.monomial (i - k)) (β(i.choose k) * r) - Polynomial.hasseDeriv_monomial π Mathlib.Algebra.Polynomial.HasseDeriv
{R : Type u_1} [Semiring R] (k n : β) (r : R) : (Polynomial.hasseDeriv k) ((Polynomial.monomial n) r) = (Polynomial.monomial (n - k)) (β(n.choose k) * r) - Polynomial.hasseDeriv_comp π Mathlib.Algebra.Polynomial.HasseDeriv
{R : Type u_1} [Semiring R] (k l : β) : Polynomial.hasseDeriv k ββ Polynomial.hasseDeriv l = (k + l).choose k β’ Polynomial.hasseDeriv (k + l) - Set.powersetCard.card π Mathlib.Data.Set.PowersetCard
(Ξ± : Type u_1) (n : β) : Nat.card β(Set.powersetCard Ξ± n) = (Nat.card Ξ±).choose n - Nat.fib_succ_eq_sum_choose π Mathlib.Data.Nat.Fib.Basic
(n : β) : Nat.fib (n + 1) = β p β Finset.HasAntidiagonal.antidiagonal n, p.1.choose p.2 - fwdDiff_choose π Mathlib.Algebra.Group.ForwardDiff
{R : Type u_3} [CommRing R] (j : β) : (fwdDiff 1 fun x => β(x.choose (j + 1))) = fun x => β(x.choose j) - fwdDiff_iter_choose π Mathlib.Algebra.Group.ForwardDiff
{R : Type u_3} [CommRing R] (j k : β) : ((fwdDiff 1)^[k] fun x => β(x.choose (k + j))) = fun x => β(x.choose j) - fwdDiff_iter_choose_zero π Mathlib.Algebra.Group.ForwardDiff
{R : Type u_3} [CommRing R] (m n : β) : (fwdDiff 1)^[n] (fun x => β(x.choose m)) 0 = if n = m then 1 else 0 - shift_eq_sum_fwdDiff_iter π Mathlib.Algebra.Group.ForwardDiff
{M : Type u_1} {G : Type u_2} [AddCommMonoid M] [AddCommGroup G] (h : M) (f : M β G) (n : β) (y : M) : f (y + n β’ h) = β k β Finset.range (n + 1), n.choose k β’ (fwdDiff h)^[k] f y - sum_range_shift_eq_sum_fwdDiff_iter π Mathlib.Algebra.Group.ForwardDiff
{M : Type u_1} {G : Type u_2} [AddCommMonoid M] [AddCommGroup G] (h : M) (f : M β G) (y : M) (n : β) : β k β Finset.range n, f (y + k β’ h) = β k β Finset.range n, n.choose (k + 1) β’ (fwdDiff h)^[k] f y - fwdDiff_iter_eq_sum_shift π Mathlib.Algebra.Group.ForwardDiff
{M : Type u_1} {G : Type u_2} [AddCommMonoid M] [AddCommGroup G] (h : M) (f : M β G) (n : β) (y : M) : (fwdDiff h)^[n] f y = β k β Finset.range (n + 1), ((-1) ^ (n - k) * β(n.choose k)) β’ f (y + k β’ h) - LieModule.toEnd_pow_lie π Mathlib.Algebra.Lie.OfAssociative
(R : Type u) {L : Type v} {M : Type w} [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] (x y : L) (z : M) (n : β) : ((LieModule.toEnd R L M) x ^ n) β y, zβ = β ij β Finset.HasAntidiagonal.antidiagonal n, n.choose ij.1 β’ β ((LieAlgebra.ad R L) x ^ ij.1) y, ((LieModule.toEnd R L M) x ^ ij.2) zβ - LieAlgebra.ad_pow_lie π Mathlib.Algebra.Lie.OfAssociative
(R : Type u) {L : Type v} [CommRing R] [LieRing L] [LieAlgebra R L] (x y z : L) (n : β) : ((LieAlgebra.ad R L) x ^ n) β y, zβ = β ij β Finset.HasAntidiagonal.antidiagonal n, n.choose ij.1 β’ β ((LieAlgebra.ad R L) x ^ ij.1) y, ((LieAlgebra.ad R L) x ^ ij.2) zβ - LieDerivation.iterate_apply_lie π Mathlib.Algebra.Lie.Derivation.Basic
{R : Type u_1} {L : Type u_2} [CommRing R] [LieRing L] [LieAlgebra R L] (D : LieDerivation R L L) (n : β) (a b : L) : (βD)^[n] β a, bβ = β ij β Finset.HasAntidiagonal.antidiagonal n, n.choose ij.1 β’ β (βD)^[ij.1] a, (βD)^[ij.2] bβ - LieDerivation.iterate_apply_lie' π Mathlib.Algebra.Lie.Derivation.Basic
{R : Type u_1} {L : Type u_2} [CommRing R] [LieRing L] [LieAlgebra R L] (D : LieDerivation R L L) (n : β) (a b : L) : (βD)^[n] β a, bβ = β i β Finset.range (n + 1), n.choose i β’ β (βD)^[i] a, (βD)^[n - i] bβ - Nat.cast_choose_eq_descPochhammer_div π Mathlib.RingTheory.Polynomial.Pochhammer
(K : Type u_1) [DivisionRing K] [CharZero K] (a b : β) : β(a.choose b) = Polynomial.eval (βa) (descPochhammer K b) / βb.factorial - Nat.cast_choose_eq_ascPochhammer_div π Mathlib.RingTheory.Polynomial.Pochhammer
(K : Type u_1) [DivisionSemiring K] [CharZero K] (a b : β) : β(a.choose b) = Polynomial.eval (β(a - (b - 1))) (ascPochhammer K b) / βb.factorial - exteriorPower.finrank_eq π Mathlib.LinearAlgebra.ExteriorPower.Basis
(R : Type u_1) (M : Type u_3) (n : β) [CommRing R] [AddCommGroup M] [Module R M] [Module.Free R M] [Module.Finite R M] [Nontrivial R] : Module.finrank R β₯(β[R]^n M) = (Module.finrank R M).choose n - Nat.stirlingFirst_succ_self_left π Mathlib.Combinatorics.Enumerative.Stirling
(n : β) : (n + 1).stirlingFirst n = (n + 1).choose 2 - Nat.stirlingSecond_succ_self_left π Mathlib.Combinatorics.Enumerative.Stirling
(n : β) : (n + 1).stirlingSecond n = (n + 1).choose 2 - summable_choose_mul_geometric_of_norm_lt_one π Mathlib.Analysis.SpecificLimits.Normed
{R : Type u_4} [NormedRing R] [HasSummableGeomSeries R] (k : β) {r : R} (hr : βrβ < 1) : Summable fun n => β((n + k).choose k) * r ^ n - hasSum_choose_mul_geometric_of_norm_lt_one' π Mathlib.Analysis.SpecificLimits.Normed
{R : Type u_4} [NormedRing R] [HasSummableGeomSeries R] (k : β) {r : R} (hr : βrβ < 1) : HasSum (fun n => β((n + k).choose k) * r ^ n) (Ring.inverse (1 - r) ^ (k + 1)) - tsum_choose_mul_geometric_of_norm_lt_one' π Mathlib.Analysis.SpecificLimits.Normed
{R : Type u_4} [NormedRing R] [HasSummableGeomSeries R] (k : β) {r : R} (hr : βrβ < 1) : β' (n : β), β((n + k).choose k) * r ^ n = Ring.inverse (1 - r) ^ (k + 1) - hasSum_choose_mul_geometric_of_norm_lt_one π Mathlib.Analysis.SpecificLimits.Normed
{π : Type u_5} [NormedDivisionRing π] (k : β) {r : π} (hr : βrβ < 1) : HasSum (fun n => β((n + k).choose k) * r ^ n) (1 / (1 - r) ^ (k + 1)) - tsum_choose_mul_geometric_of_norm_lt_one π Mathlib.Analysis.SpecificLimits.Normed
{π : Type u_5} [NormedDivisionRing π] (k : β) {r : π} (hr : βrβ < 1) : β' (n : β), β((n + k).choose k) * r ^ n = 1 / (1 - r) ^ (k + 1) - Multiset.multinomial_cons π Mathlib.Data.Nat.Choose.Multinomial
(x : β) (m : Multiset β) : (x ::β m).multinomial = (x + m.sum).choose x * m.multinomial - List.multinomial_cons π Mathlib.Data.Nat.Choose.Multinomial
(x : β) (l : List β) : (x :: l).multinomial = (x + l.sum).choose x * l.multinomial - Nat.binomial_eq_choose π Mathlib.Data.Nat.Choose.Multinomial
{Ξ± : Type u_1} {f : Ξ± β β} {a b : Ξ±} [DecidableEq Ξ±] (h : a β b) : Nat.multinomial {a, b} f = (f a + f b).choose (f a) - Multiset.countPerms_filter_ne π Mathlib.Data.Nat.Choose.Multinomial
{Ξ± : Type u_1} [DecidableEq Ξ±] (a : Ξ±) (m : Multiset Ξ±) : m.countPerms = m.card.choose (Multiset.count a m) * (Multiset.filter (fun x => a β x) m).countPerms - Nat.multinomial_cons π Mathlib.Data.Nat.Choose.Multinomial
{Ξ± : Type u_1} {s : Finset Ξ±} {a : Ξ±} (ha : a β s) (f : Ξ± β β) : Nat.multinomial (Finset.cons a s ha) f = (f a + β i β s, f i).choose (f a) * Nat.multinomial s f - Multiset.multinomial_add π Mathlib.Data.Nat.Choose.Multinomial
(m m' : Multiset β) : (m + m').multinomial = (m + m').sum.choose m.sum * m.multinomial * m'.multinomial - Finsupp.multinomial_update π Mathlib.Data.Nat.Choose.Multinomial
{Ξ± : Type u_1} (a : Ξ±) (f : Ξ± ββ β) : f.multinomial = (f.sum fun x => id).choose (f a) * (f.update a 0).multinomial - Nat.multinomial_insert π Mathlib.Data.Nat.Choose.Multinomial
{Ξ± : Type u_1} {s : Finset Ξ±} {a : Ξ±} [DecidableEq Ξ±] (ha : a β s) (f : Ξ± β β) : Nat.multinomial (insert a s) f = (f a + β i β s, f i).choose (f a) * Nat.multinomial s f - Sym.countPerms_coe_fill_of_notMem π Mathlib.Data.Nat.Choose.Multinomial
{n : β} {Ξ± : Type u_1} [DecidableEq Ξ±] {m : Fin (n + 1)} {s : Sym Ξ± (n - βm)} {x : Ξ±} (hx : x β s) : (β(Sym.fill x m s)).countPerms = n.choose βm * (βs).countPerms - MvPolynomial.coeff_add_pow π Mathlib.Algebra.MvPolynomial.Coeff
{R : Type u_1} [CommSemiring R] (d : Fin 2 ββ β) (n : β) : MvPolynomial.coeff d ((MvPolynomial.X 0 + MvPolynomial.X 1) ^ n) = β(if (d 0, d 1) β Finset.HasAntidiagonal.antidiagonal n then n.choose (d 0) else 0) - Sym2.card π Mathlib.Data.Sym.Card
{Ξ± : Type u_2} [Fintype Ξ±] : Fintype.card (Sym2 Ξ±) = (Fintype.card Ξ± + 1).choose 2 - Sym.card_sym_eq_choose π Mathlib.Data.Sym.Card
{Ξ± : Type u_2} [Fintype Ξ±] (k : β) [Fintype (Sym Ξ± k)] : Fintype.card (Sym Ξ± k) = (Fintype.card Ξ± + k - 1).choose k - Sym2.card_image_offDiag π Mathlib.Data.Sym.Card
{Ξ± : Type u_1} [DecidableEq Ξ±] (s : Finset Ξ±) : (Finset.image (Function.uncurry Sym2.mk) s.offDiag).card = s.card.choose 2 - Sym2.card_subtype_not_diag π Mathlib.Data.Sym.Card
{Ξ± : Type u_1} [DecidableEq Ξ±] [Fintype Ξ±] : Fintype.card { a // Β¬a.IsDiag } = (Fintype.card Ξ±).choose 2 - Sym2.card_diagSet_compl π Mathlib.Data.Sym.Card
{Ξ± : Type u_1} [DecidableEq Ξ±] [Fintype Ξ±] : Fintype.card βSym2.diagSetαΆ = (Fintype.card Ξ±).choose 2 - Finset.card_finsuppAntidiag_nat_eq_choose π Mathlib.Algebra.Order.Antidiag.FinsuppEquiv
{ΞΉ : Type u_1} [DecidableEq ΞΉ] {s : Finset ΞΉ} (n : β) : (s.finsuppAntidiag n).card = (s.card + n - 1).choose n - PowerSeries.coeff_subst_X_zero_add_X_one π Mathlib.RingTheory.PowerSeries.Substitution
{R : Type u_2} [CommRing R] (f : PowerSeries R) (e : Fin 2 ββ β) : (MvPowerSeries.coeff e) (PowerSeries.subst (MvPowerSeries.X 0 + MvPowerSeries.X 1) f) = β((e 0 + e 1).choose (e 0)) * (PowerSeries.coeff (e 0 + e 1)) f - iteratedDeriv_fun_mul π Mathlib.Analysis.Calculus.IteratedDeriv.Lemmas
{π : Type u_1} [NontriviallyNormedField π] {n : β} {x : π} {πΈ : Type u_5} [NormedRing πΈ] [NormedAlgebra π πΈ] {f g : π β πΈ} (hf : ContDiffAt π (βn) f x) (hg : ContDiffAt π (βn) g x) : iteratedDeriv n (fun i => f i * g i) x = β i β Finset.range (n + 1), β(n.choose i) * iteratedDeriv i f x * iteratedDeriv (n - i) g x - iteratedDeriv_mul π Mathlib.Analysis.Calculus.IteratedDeriv.Lemmas
{π : Type u_1} [NontriviallyNormedField π] {n : β} {x : π} {πΈ : Type u_5} [NormedRing πΈ] [NormedAlgebra π πΈ] {f g : π β πΈ} (hf : ContDiffAt π (βn) f x) (hg : ContDiffAt π (βn) g x) : iteratedDeriv n (f * g) x = β i β Finset.range (n + 1), β(n.choose i) * iteratedDeriv i f x * iteratedDeriv (n - i) g x - iteratedDerivWithin_mul π Mathlib.Analysis.Calculus.IteratedDeriv.Lemmas
{π : Type u_1} [NontriviallyNormedField π] {n : β} {x : π} {s : Set π} (hx : x β s) (h : UniqueDiffOn π s) {πΈ : Type u_5} [NormedRing πΈ] [NormedAlgebra π πΈ] {f g : π β πΈ} (hf : ContDiffWithinAt π (βn) f s x) (hg : ContDiffWithinAt π (βn) g s x) : iteratedDerivWithin n (f * g) s x = β i β Finset.range (n + 1), β(n.choose i) * iteratedDerivWithin i f s x * iteratedDerivWithin (n - i) g s x - iteratedDerivWithin_smul π Mathlib.Analysis.Calculus.IteratedDeriv.Lemmas
{π : Type u_1} [NontriviallyNormedField π] {F : Type u_2} [NormedAddCommGroup F] [NormedSpace π F] {n : β} {x : π} {s : Set π} (hx : x β s) (h : UniqueDiffOn π s) {πΈ : Type u_5} [NormedRing πΈ] [NormedAlgebra π πΈ] [Module πΈ F] [IsBoundedSMul πΈ F] [IsScalarTower π πΈ F] {f : π β πΈ} {g : π β F} (hf : ContDiffWithinAt π (βn) f s x) (hg : ContDiffWithinAt π (βn) g s x) : iteratedDerivWithin n (f β’ g) s x = β i β Finset.range (n + 1), n.choose i β’ iteratedDerivWithin i f s x β’ iteratedDerivWithin (n - i) g s x - Polynomial.coeff_le_of_roots_le π Mathlib.Topology.Algebra.Polynomial
{F : Type u_3} {K : Type u_4} [CommRing F] [NormedField K] {p : Polynomial F} {f : F β+* K} {B : β} (i : β) (h1 : p.Monic) (h2 : (Polynomial.map f p).Splits) (h3 : β z β (Polynomial.map f p).roots, βzβ β€ B) : β(Polynomial.map f p).coeff iβ β€ B ^ (p.natDegree - i) * β(p.natDegree.choose i) - Polynomial.coeff_bdd_of_roots_le π Mathlib.Topology.Algebra.Polynomial
{F : Type u_3} {K : Type u_4} [CommRing F] [NormedField K] {B : β} {d : β} (f : F β+* K) {p : Polynomial F} (h1 : p.Monic) (h2 : (Polynomial.map f p).Splits) (h3 : p.natDegree β€ d) (h4 : β z β (Polynomial.map f p).roots, βzβ β€ B) (i : β) : β(Polynomial.map f p).coeff iβ β€ max B 1 ^ d * β(d.choose (d / 2)) - NumberField.Embeddings.coeff_bdd_of_norm_le π Mathlib.NumberTheory.NumberField.InfinitePlace.Embeddings
{K : Type u_1} [Field K] [NumberField K] {A : Type u_2} [NormedField A] [IsAlgClosed A] [NormedAlgebra β A] {B : β} {x : K} (h : β (Ο : K β+* A), βΟ xβ β€ B) (i : β) : β(minpoly β x).coeff iβ β€ max B 1 ^ Module.finrank β K * β((Module.finrank β K).choose (Module.finrank β K / 2)) - sub_one_mul_padicValNat_choose_eq_sub_sum_digits π Mathlib.NumberTheory.Padics.PadicVal.Basic
{p k n : β} [hp : Fact (Nat.Prime p)] (h : k β€ n) : (p - 1) * padicValNat p (n.choose k) = (p.digits k).sum + (p.digits (n - k)).sum - (p.digits n).sum - sub_one_mul_padicValNat_choose_eq_sub_sum_digits' π Mathlib.NumberTheory.Padics.PadicVal.Basic
{p k n : β} [hp : Fact (Nat.Prime p)] : (p - 1) * padicValNat p ((n + k).choose k) = (p.digits k).sum + (p.digits n).sum - (p.digits (n + k)).sum - padicValNat_choose' π Mathlib.NumberTheory.Padics.PadicVal.Basic
{p n k b : β} [hp : Fact (Nat.Prime p)] (hnb : Nat.log p (n + k) < b) : padicValNat p ((n + k).choose k) = {i β Finset.Ico 1 b | p ^ i β€ k % p ^ i + n % p ^ i}.card - padicValNat_choose π Mathlib.NumberTheory.Padics.PadicVal.Basic
{p n k b : β} [hp : Fact (Nat.Prime p)] (hkn : k β€ n) (hnb : Nat.log p n < b) : padicValNat p (n.choose k) = {i β Finset.Ico 1 b | p ^ i β€ k % p ^ i + (n - k) % p ^ i}.card - Ring.choose_natCast π Mathlib.RingTheory.Binomial
{R : Type u_1} [NonAssocRing R] [Pow R β] [BinomialRing R] [NatPowAssoc R] (n k : β) : Ring.choose (βn) k = β(n.choose k) - Ring.choose_smul_choose π Mathlib.RingTheory.Binomial
{R : Type u_1} [NonAssocRing R] [Pow R β] [BinomialRing R] [NatPowAssoc R] (r : R) {n k : β} (hkn : k β€ n) : n.choose k β’ Ring.choose r n = Ring.choose r k * Ring.choose (r - βk) (n - k) - Ring.choose_add_smul_choose π Mathlib.RingTheory.Binomial
{R : Type u_1} [NonAssocRing R] [Pow R β] [BinomialRing R] [NatPowAssoc R] (r : R) (n k : β) : (n + k).choose k β’ Ring.choose (r + βk) (n + k) = Ring.choose (r + βk) k * Ring.choose r n - Ring.descPochhammer_smeval_add π Mathlib.RingTheory.Binomial
{R : Type u_1} [Ring R] {r s : R} (k : β) (h : Commute r s) : (descPochhammer β€ k).smeval (r + s) = β ij β Finset.HasAntidiagonal.antidiagonal k, β(k.choose ij.1) * ((descPochhammer β€ ij.1).smeval r * (descPochhammer β€ ij.2).smeval s) - Complex.one_div_one_sub_pow_hasFPowerSeriesOnBall_zero π Mathlib.Analysis.Analytic.Binomial
(a : β) : HasFPowerSeriesOnBall (fun x => 1 / (1 - x) ^ (a + 1)) (FormalMultilinearSeries.ofScalars β fun n => β((a + n).choose a)) 0 1 - Real.one_div_sub_pow_hasFPowerSeriesOnBall_zero π Mathlib.Analysis.Analytic.Binomial
(a : β) {r : β} (hr : r β 0) : HasFPowerSeriesOnBall (fun x => 1 / (r - x) ^ (a + 1)) (FormalMultilinearSeries.ofScalars β fun n => (r ^ (n + a + 1))β»ΒΉ * β((a + n).choose a)) 0 βrββ - Complex.one_div_sub_pow_hasFPowerSeriesOnBall_zero π Mathlib.Analysis.Analytic.Binomial
(a : β) {z : β} (hz : z β 0) : HasFPowerSeriesOnBall (fun x => 1 / (z - x) ^ (a + 1)) (FormalMultilinearSeries.ofScalars β fun n => (z ^ (n + a + 1))β»ΒΉ * β((a + n).choose a)) 0 βzββ
About
Loogle searches Lean and Mathlib definitions and theorems.
You can use Loogle from within the Lean4 VSCode language extension
using the Loogle command from the command palette. You can also try the
#loogle command from LeanSearchClient,
the CLI version, the Loogle
VS Code extension, the lean.nvim
integration or the Zulip bot.
Usage
Loogle finds definitions and lemmas in various ways:
By constant:
πReal.sin
finds all lemmas whose statement somehow mentions the sine function.By lemma name substring:
π"differ"
finds all lemmas that have"differ"somewhere in their lemma name.By subexpression:
π_ * (_ ^ _)
finds all lemmas whose statements somewhere include a product where the second argument is raised to some power.The pattern can also be non-linear, as in
πReal.sqrt ?a * Real.sqrt ?aIf the pattern has parameters, they are matched in any order. Both of these will find
List.map:
π(?a -> ?b) -> List ?a -> List ?b
πList ?a -> (?a -> ?b) -> List ?bBy main conclusion:
π|- tsum _ = _ * tsum _
finds all lemmas where the conclusion (the subexpression to the right of allβandβ) has the given shape.As before, if the pattern has parameters, they are matched against the hypotheses of the lemma in any order; for example,
π|- _ < _ β tsum _ < tsum _
will findtsum_lt_tsumeven though the hypothesisf i < g iis not the last.You can filter for definitions vs theorems: Using
β’ (_ : Type _)finds all definitions which provide data whileβ’ (_ : Prop)finds all theorems (and definitions of proofs).
If you pass more than one such search filter, separated by commas
Loogle will return lemmas which match all of them. The
search
π Real.sin, "two", tsum, _ * _, _ ^ _, |- _ < _ β _
would find all lemmas which mention the constants Real.sin
and tsum, have "two" as a substring of the
lemma name, include a product and a power somewhere in the type,
and have a hypothesis of the form _ < _ (if
there were any such lemmas). Metavariables (?a) are
assigned independently in each filter.
The #lucky button will directly send you to the
documentation of the first hit.
Source code
You can find the source code for this service at https://github.com/nomeata/loogle. The https://loogle.lean-lang.org/ service is provided by the Lean FRO. Please review the Lean FRO Terms of Use and Privacy Policy.
This is Loogle revision 9f11169 serving mathlib revision 69fae59