Loogle!
Result
Found 832 declarations mentioning Finset.range. Of these, only the first 200 are shown.
- Finset.range π Mathlib.Data.Finset.Range
(n : β) : Finset β - Finset.range_val π Mathlib.Data.Finset.Range
(n : β) : (Finset.range n).val = Multiset.range n - Finset.range_mono π Mathlib.Data.Finset.Range
: Monotone Finset.range - Finset.strictMono_range π Mathlib.Data.Finset.Range
: StrictMono Finset.range - Multiset.toFinset_range π Mathlib.Data.Finset.Range
(n : β) : (Multiset.range n).toFinset = Finset.range n - Finset.Aesop.range_nonempty π Mathlib.Data.Finset.Range
{n : β} : n β 0 β (Finset.range n).Nonempty - Finset.nonempty_range_iff π Mathlib.Data.Finset.Range
{n : β} : (Finset.range n).Nonempty β n β 0 - Finset.range_nontrivial π Mathlib.Data.Finset.Range
{n : β} (hn : 1 < n) : (Finset.range n).Nontrivial - Finset.range_zero π Mathlib.Data.Finset.Range
: Finset.range 0 = β - Finset.notMem_range_self π Mathlib.Data.Finset.Range
{n : β} : n β Finset.range n - Finset.coe_range π Mathlib.Data.Finset.Range
(n : β) : β(Finset.range n) = Set.Iio n - Finset.nonempty_range_add_one π Mathlib.Data.Finset.Range
{n : β} : (Finset.range (n + 1)).Nonempty - Finset.exists_nat_subset_range π Mathlib.Data.Finset.Range
(s : Finset β) : β n, s β Finset.range n - notMemRangeEquiv π Mathlib.Data.Finset.Range
(k : β) : { n // n β Finset.range k } β β - Finset.mem_range_le π Mathlib.Data.Finset.Range
{n x : β} (hx : x β Finset.range n) : x β€ n - Finset.range_eq_empty_iff π Mathlib.Data.Finset.Range
{n : β} : Finset.range n = β β n = 0 - Finset.range_one π Mathlib.Data.Finset.Range
: Finset.range 1 = {0} - Finset.mem_range π Mathlib.Data.Finset.Range
{n m : β} : m β Finset.range n β m < n - Finset.mem_range_succ_iff π Mathlib.Data.Finset.Range
{a b : β} : a β Finset.range b.succ β a β€ b - Finset.range_subset_range π Mathlib.Data.Finset.Range
{n m : β} : Finset.range n β Finset.range m β n β€ m - Finset.self_mem_range_succ π Mathlib.Data.Finset.Range
(n : β) : n β Finset.range (n + 1) - Finset.range_add_one π Mathlib.Data.Finset.Range
{n : β} : Finset.range (n + 1) = insert n (Finset.range n) - Finset.mem_range_sub_ne_zero π Mathlib.Data.Finset.Range
{n x : β} (hx : x β Finset.range n) : n - x β 0 - Finset.range_subset π Mathlib.Data.Finset.Range
{n : β} {s : Finset β} : Finset.range n β s β β x < n, x β s - Finset.subset_range π Mathlib.Data.Finset.Range
{s : Finset β} {n : β} : s β Finset.range n β β x β s, x < n - coe_notMemRangeEquiv_symm π Mathlib.Data.Finset.Range
(k : β) : β(notMemRangeEquiv k).symm = fun j => β¨j + k, β―β© - coe_notMemRangeEquiv π Mathlib.Data.Finset.Range
(k : β) : β(notMemRangeEquiv k) = fun i => βi - k - Finset.range_inter_range π Mathlib.Data.Finset.Basic
(m n : β) : Finset.range m β© Finset.range n = Finset.range (min m n) - Finset.range_union_range π Mathlib.Data.Finset.Basic
(m n : β) : Finset.range m βͺ Finset.range n = Finset.range (max m n) - Finset.range_filter_eq π Mathlib.Data.Finset.Basic
{n m : β} : {x β Finset.range n | x = m} = if m < n then {m} else β - Finset.range_sdiff_zero π Mathlib.Data.Finset.Image
{n : β} : Finset.range (n + 1) \ {0} = Finset.image Nat.succ (Finset.range n) - Finset.range_add_one' π Mathlib.Data.Finset.Image
(n : β) : Finset.range (n + 1) = insert 0 (Finset.map { toFun := fun i => i + 1, inj' := β― } (Finset.range n)) - Finset.mem_range_iff_mem_finset_range_of_mod_eq' π Mathlib.Data.Finset.Image
{Ξ± : Type u_1} [DecidableEq Ξ±] {f : β β Ξ±} {a : Ξ±} {n : β} (hn : 0 < n) (h : β (i : β), f (i % n) = f i) : a β Set.range f β a β Finset.image (fun i => f i) (Finset.range n) - Finset.mem_range_iff_mem_finset_range_of_mod_eq π Mathlib.Data.Finset.Image
{Ξ± : Type u_1} [DecidableEq Ξ±] {f : β€ β Ξ±} {a : Ξ±} {n : β} (hn : 0 < n) (h : β (i : β€), f (i % βn) = f i) : a β Set.range f β a β Finset.image (fun i => f βi) (Finset.range n) - Finset.card_range π Mathlib.Data.Finset.Card
(n : β) : (Finset.range n).card = n - Finset.subset_range_sup_succ π Mathlib.Data.Finset.Lattice.Fold
(s : Finset β) : s β Finset.range (s.sup id).succ - Finset.powerset_card_biUnion π Mathlib.Data.Finset.Powerset
{Ξ± : Type u_1} [DecidableEq (Finset Ξ±)] (s : Finset Ξ±) : s.powerset = (Finset.range (s.card + 1)).biUnion fun i => Finset.powersetCard i s - Finset.powerset_card_disjiUnion π Mathlib.Data.Finset.Powerset
{Ξ± : Type u_1} (s : Finset Ξ±) : s.powerset = (Finset.range (s.card + 1)).disjiUnion (fun i => Finset.powersetCard i s) β― - List.toFinset_range π Mathlib.Order.Interval.Finset.Nat
(a : β) : (List.range a).toFinset = Finset.range a - Nat.Iio_eq_range π Mathlib.Order.Interval.Finset.Nat
(a : β) : Finset.Iio a = Finset.range a - Finset.range_eq_Ico π Mathlib.Order.Interval.Finset.Nat
(a : β) : Finset.range a = Finset.Ico 0 a - Nat.Ico_zero_eq_range π Mathlib.Order.Interval.Finset.Nat
(a : β) : Finset.Ico 0 a = Finset.range a - Nat.range_succ_eq_Iic π Mathlib.Order.Interval.Finset.Nat
(n : β) : Finset.range (n + 1) = Finset.Iic n - Nat.range_succ_eq_Icc_zero π Mathlib.Order.Interval.Finset.Nat
(n : β) : Finset.range (n + 1) = Finset.Icc 0 n - Finset.range_image_pred_top_sub π Mathlib.Order.Interval.Finset.Nat
(n : β) : Finset.image (fun j => n - 1 - j) (Finset.range n) = Finset.range n - Nat.image_Ico_mod π Mathlib.Order.Interval.Finset.Nat
(n a : β) : Finset.image (fun x => x % a) (Finset.Ico n (n + a)) = Finset.range a - Nat.range_eq_Icc_zero_sub_one π Mathlib.Order.Interval.Finset.Nat
(n : β) (hn : n β 0) : Finset.range n = Finset.Icc 0 (n - 1) - Finset.range_add_eq_union π Mathlib.Order.Interval.Finset.Nat
(a b : β) : Finset.range (a + b) = Finset.range a βͺ Finset.map (addLeftEmbedding a) (Finset.range b) - Finset.prod_range_zero π Mathlib.Algebra.BigOperators.Group.Finset.Defs
{M : Type u_3} [CommMonoid M] (f : β β M) : β k β Finset.range 0, f k = 1 - Finset.sum_range_zero π Mathlib.Algebra.BigOperators.Group.Finset.Defs
{M : Type u_3} [AddCommMonoid M] (f : β β M) : β k β Finset.range 0, f k = 0 - Finset.prod_range_one π Mathlib.Algebra.BigOperators.Group.Finset.Basic
{M : Type u_4} [CommMonoid M] (f : β β M) : β k β Finset.range 1, f k = f 0 - Finset.sum_range_one π Mathlib.Algebra.BigOperators.Group.Finset.Basic
{M : Type u_4} [AddCommMonoid M] (f : β β M) : β k β Finset.range 1, f k = f 0 - Finset.nsmul_eq_sum_const π Mathlib.Algebra.BigOperators.Group.Finset.Basic
{M : Type u_4} [AddCommMonoid M] (b : M) (n : β) : n β’ b = β _k β Finset.range n, b - Finset.pow_eq_prod_const π Mathlib.Algebra.BigOperators.Group.Finset.Basic
{M : Type u_4} [CommMonoid M] (b : M) (n : β) : b ^ n = β _k β Finset.range n, b - Finset.prod_range_succ π Mathlib.Algebra.BigOperators.Group.Finset.Basic
{M : Type u_4} [CommMonoid M] (f : β β M) (n : β) : β x β Finset.range (n + 1), f x = (β x β Finset.range n, f x) * f n - Finset.prod_range_succ_comm π Mathlib.Algebra.BigOperators.Group.Finset.Basic
{M : Type u_4} [CommMonoid M] (f : β β M) (n : β) : β x β Finset.range (n + 1), f x = f n * β x β Finset.range n, f x - Finset.sum_range_succ π Mathlib.Algebra.BigOperators.Group.Finset.Basic
{M : Type u_4} [AddCommMonoid M] (f : β β M) (n : β) : β x β Finset.range (n + 1), f x = β x β Finset.range n, f x + f n - Finset.sum_range_succ_comm π Mathlib.Algebra.BigOperators.Group.Finset.Basic
{M : Type u_4} [AddCommMonoid M] (f : β β M) (n : β) : β x β Finset.range (n + 1), f x = f n + β x β Finset.range n, f x - Finset.eventually_constant_prod π Mathlib.Algebra.BigOperators.Group.Finset.Basic
{M : Type u_4} [CommMonoid M] {u : β β M} {N : β} (hu : β n β₯ N, u n = 1) {n : β} (hn : N β€ n) : β k β Finset.range n, u k = β k β Finset.range N, u k - Finset.eventually_constant_sum π Mathlib.Algebra.BigOperators.Group.Finset.Basic
{M : Type u_4} [AddCommMonoid M] {u : β β M} {N : β} (hu : β n β₯ N, u n = 0) {n : β} (hn : N β€ n) : β k β Finset.range n, u k = β k β Finset.range N, u k - Finset.prod_flip π Mathlib.Algebra.BigOperators.Group.Finset.Basic
{M : Type u_4} [CommMonoid M] {n : β} (f : β β M) : β r β Finset.range (n + 1), f (n - r) = β k β Finset.range (n + 1), f k - Finset.sum_flip π Mathlib.Algebra.BigOperators.Group.Finset.Basic
{M : Type u_4} [AddCommMonoid M] {n : β} (f : β β M) : β r β Finset.range (n + 1), f (n - r) = β k β Finset.range (n + 1), f k - Finset.prod_range_add π Mathlib.Algebra.BigOperators.Group.Finset.Basic
{M : Type u_4} [CommMonoid M] (f : β β M) (n m : β) : β x β Finset.range (n + m), f x = (β x β Finset.range n, f x) * β x β Finset.range m, f (n + x) - Finset.prod_range_div π Mathlib.Algebra.BigOperators.Group.Finset.Basic
{G : Type u_3} [CommGroup G] (f : β β G) (n : β) : β i β Finset.range n, f (i + 1) / f i = f n / f 0 - Finset.prod_range_div' π Mathlib.Algebra.BigOperators.Group.Finset.Basic
{G : Type u_3} [CommGroup G] (f : β β G) (n : β) : β i β Finset.range n, f i / f (i + 1) = f 0 / f n - Finset.sum_range_add π Mathlib.Algebra.BigOperators.Group.Finset.Basic
{M : Type u_4} [AddCommMonoid M] (f : β β M) (n m : β) : β x β Finset.range (n + m), f x = β x β Finset.range n, f x + β x β Finset.range m, f (n + x) - Finset.sum_range_sub π Mathlib.Algebra.BigOperators.Group.Finset.Basic
{G : Type u_3} [AddCommGroup G] (f : β β G) (n : β) : β i β Finset.range n, (f (i + 1) - f i) = f n - f 0 - Finset.sum_range_sub' π Mathlib.Algebra.BigOperators.Group.Finset.Basic
{G : Type u_3} [AddCommGroup G] (f : β β G) (n : β) : β i β Finset.range n, (f i - f (i + 1)) = f 0 - f n - Finset.prod_range_add_div_prod_range π Mathlib.Algebra.BigOperators.Group.Finset.Basic
{G : Type u_3} [CommGroup G] (f : β β G) (n m : β) : (β k β Finset.range (n + m), f k) / β k β Finset.range n, f k = β k β Finset.range m, f (n + k) - Finset.prod_range_succ' π Mathlib.Algebra.BigOperators.Group.Finset.Basic
{M : Type u_4} [CommMonoid M] (f : β β M) (n : β) : β k β Finset.range (n + 1), f k = (β k β Finset.range n, f (k + 1)) * f 0 - Finset.sum_range_add_sub_sum_range π Mathlib.Algebra.BigOperators.Group.Finset.Basic
{G : Type u_3} [AddCommGroup G] (f : β β G) (n m : β) : β k β Finset.range (n + m), f k - β k β Finset.range n, f k = β k β Finset.range m, f (n + k) - Finset.sum_range_succ' π Mathlib.Algebra.BigOperators.Group.Finset.Basic
{M : Type u_4} [AddCommMonoid M] (f : β β M) (n : β) : β k β Finset.range (n + 1), f k = β k β Finset.range n, f (k + 1) + f 0 - Finset.eq_prod_range_div π Mathlib.Algebra.BigOperators.Group.Finset.Basic
{G : Type u_3} [CommGroup G] (f : β β G) (n : β) : f n = f 0 * β i β Finset.range n, f (i + 1) / f i - Finset.eq_sum_range_sub π Mathlib.Algebra.BigOperators.Group.Finset.Basic
{G : Type u_3} [AddCommGroup G] (f : β β G) (n : β) : f n = f 0 + β i β Finset.range n, (f (i + 1) - f i) - Finset.eq_prod_range_div' π Mathlib.Algebra.BigOperators.Group.Finset.Basic
{G : Type u_3} [CommGroup G] (f : β β G) (n : β) : f n = β i β Finset.range (n + 1), if i = 0 then f 0 else f i / f (i - 1) - Finset.eq_sum_range_sub' π Mathlib.Algebra.BigOperators.Group.Finset.Basic
{G : Type u_3} [AddCommGroup G] (f : β β G) (n : β) : f n = β i β Finset.range (n + 1), if i = 0 then f 0 else f i - f (i - 1) - Finset.prod_range_induction π Mathlib.Algebra.BigOperators.Group.Finset.Basic
{M : Type u_4} [CommMonoid M] (f s : β β M) (base : s 0 = 1) (n : β) (step : β k < n, s (k + 1) = s k * f k) : β k β Finset.range n, f k = s n - Finset.sum_range_induction π Mathlib.Algebra.BigOperators.Group.Finset.Basic
{M : Type u_4} [AddCommMonoid M] (f s : β β M) (base : s 0 = 0) (n : β) (step : β k < n, s (k + 1) = s k + f k) : β k β Finset.range n, f k = s n - Finset.sum_range_tsub π Mathlib.Algebra.BigOperators.Group.Finset.Basic
{M : Type u_4} [AddCommMonoid M] [PartialOrder M] [Sub M] [OrderedSub M] [AddLeftMono M] [AddLeftReflectLE M] [ExistsAddOfLE M] {f : β β M} (h : Monotone f) (n : β) : β i β Finset.range n, (f (i + 1) - f i) = f n - f 0 - Fin.prod_univ_eq_prod_range π Mathlib.Data.Fintype.BigOperators
{Ξ± : Type u_1} [CommMonoid Ξ±] (f : β β Ξ±) (n : β) : β i, f βi = β i β Finset.range n, f i - Fin.sum_univ_eq_sum_range π Mathlib.Data.Fintype.BigOperators
{Ξ± : Type u_1} [AddCommMonoid Ξ±] (f : β β Ξ±) (n : β) : β i, f βi = β i β Finset.range n, f i - Finset.prod_fin_eq_prod_range π Mathlib.Data.Fintype.BigOperators
{Ξ² : Type u_2} [CommMonoid Ξ²] {n : β} (c : Fin n β Ξ²) : β i, c i = β i β Finset.range n, if h : i < n then c β¨i, hβ© else 1 - Finset.sum_fin_eq_sum_range π Mathlib.Data.Fintype.BigOperators
{Ξ² : Type u_2} [AddCommMonoid Ξ²] {n : β} (c : Fin n β Ξ²) : β i, c i = β i β Finset.range n, if h : i < n then c β¨i, hβ© else 0 - Finset.prod_range_natCast_sub π Mathlib.Algebra.BigOperators.Ring.Finset
{R : Type u_4} [CommRing R] (n k : β) : β i β Finset.range k, (βn - βi) = β(β i β Finset.range k, (n - i)) - Finset.sum_range_succ_mul_sum_range_succ π Mathlib.Algebra.BigOperators.Ring.Finset
{R : Type u_4} [NonUnitalNonAssocSemiring R] (m n : β) (f g : β β R) : (β i β Finset.range (m + 1), f i) * β i β Finset.range (n + 1), g i = (β i β Finset.range m, f i) * β i β Finset.range n, g i + f m * β i β Finset.range n, g i + (β i β Finset.range m, f i) * g n + f m * g n - Multiset.sup_powerset_len π Mathlib.Algebra.Order.BigOperators.Group.Finset
{Ξ± : Type u_2} [DecidableEq Ξ±] (x : Multiset Ξ±) : ((Finset.range (x.card + 1)).sup fun k => Multiset.powersetCard k x) = x.powerset - Finset.image_fin_univ π Mathlib.Data.Fintype.Fin
{n : β} : Finset.image Fin.val Finset.univ = Finset.range n - Finset.sup_fin_univ π Mathlib.Data.Fintype.Fin
{Ξ± : Type u_1} [SemilatticeSup Ξ±] [OrderBot Ξ±] {n : β} (f : β β Ξ±) : (Finset.univ.sup fun n_1 => f βn_1) = (Finset.range n).sup f - Finset.prod_range π Mathlib.Algebra.BigOperators.Fin
{M : Type u_2} [CommMonoid M] {n : β} (f : β β M) : β i β Finset.range n, f i = β i, f βi - Finset.sum_range π Mathlib.Algebra.BigOperators.Fin
{M : Type u_2} [AddCommMonoid M] {n : β} (f : β β M) : β i β Finset.range n, f i = β i, f βi - partialSups_eq_sup'_range π Mathlib.Order.PartialSups
{Ξ± : Type u_1} [SemilatticeSup Ξ±] (f : β β Ξ±) (n : β) : (partialSups f) n = (Finset.range (n + 1)).sup' β― f - partialSups_eq_sup_range π Mathlib.Order.PartialSups
{Ξ± : Type u_1} [SemilatticeSup Ξ±] [OrderBot Ξ±] (f : β β Ξ±) (n : β) : (partialSups f) n = (Finset.range (n + 1)).sup f - partialSups_eq_sUnion_image π Mathlib.Order.PartialSups
{Ξ± : Type u_1} (s : β β Set Ξ±) (n : β) : (partialSups s) n = ββ β(Finset.image s (Finset.range (n + 1))) - partialSups_eq_biUnion_range π Mathlib.Order.PartialSups
{Ξ± : Type u_1} (s : β β Set Ξ±) (n : β) : (partialSups s) n = β i β Finset.range (n + 1), s i - orderIsoRangeOfLinearSuccPredArch π Mathlib.Order.SuccPred.LinearLocallyFinite
{ΞΉ : Type u_1} [LinearOrder ΞΉ] [SuccOrder ΞΉ] [PredOrder ΞΉ] [IsSuccArchimedean ΞΉ] [OrderBot ΞΉ] [OrderTop ΞΉ] : ΞΉ βo β₯(Finset.range ((toZ β₯ β€).toNat + 1)) - biUnion_range_succ_disjointed π Mathlib.Order.Disjointed
{Ξ± : Type u_3} (f : β β Set Ξ±) (n : β) : β i β Finset.range (n + 1), disjointed f i = (partialSups f) n - Finset.prod_eq_prod_range_sdiff π Mathlib.Algebra.Order.BigOperators.Group.LocallyFinite
{Ξ± : Type u_3} {Ξ² : Type u_4} [DecidableEq Ξ±] [CommMonoid Ξ²] (s : β β Finset Ξ±) (hs : Monotone s) (g : Ξ± β Ξ²) (n : β) : β i β s n, g i = (β i β s 0, g i) * β i β Finset.range n, β j β s (i + 1) \ s i, g j - Finset.sum_eq_sum_range_sdiff π Mathlib.Algebra.Order.BigOperators.Group.LocallyFinite
{Ξ± : Type u_3} {Ξ² : Type u_4} [DecidableEq Ξ±] [AddCommMonoid Ξ²] (s : β β Finset Ξ±) (hs : Monotone s) (g : Ξ± β Ξ²) (n : β) : β i β s n, g i = β i β s 0, g i + β i β Finset.range n, β j β s (i + 1) \ s i, g j - Finset.sum_range_id π Mathlib.Algebra.BigOperators.Intervals
(n : β) : β i β Finset.range n, i = n * (n - 1) / 2 - Finset.sum_range_id_mul_two π Mathlib.Algebra.BigOperators.Intervals
(n : β) : (β i β Finset.range n, i) * 2 = n * (n - 1) - Finset.prod_range_reflect π Mathlib.Algebra.BigOperators.Intervals
{M : Type u_3} [CommMonoid M] (f : β β M) (n : β) : β j β Finset.range n, f (n - 1 - j) = β j β Finset.range n, f j - Finset.sum_range_reflect π Mathlib.Algebra.BigOperators.Intervals
{M : Type u_3} [AddCommMonoid M] (f : β β M) (n : β) : β j β Finset.range n, f (n - 1 - j) = β j β Finset.range n, f j - Finset.prod_Ico_eq_prod_range π Mathlib.Algebra.BigOperators.Intervals
{M : Type u_3} [CommMonoid M] (f : β β M) (m n : β) : β k β Finset.Ico m n, f k = β k β Finset.range (n - m), f (m + k) - Finset.sum_Ico_eq_sum_range π Mathlib.Algebra.BigOperators.Intervals
{M : Type u_3} [AddCommMonoid M] (f : β β M) (m n : β) : β k β Finset.Ico m n, f k = β k β Finset.range (n - m), f (m + k) - Finset.prod_range_succ_div_prod π Mathlib.Algebra.BigOperators.Intervals
{M : Type u_4} (f : β β M) {n : β} [CommGroup M] : (β i β Finset.range (n + 1), f i) / β i β Finset.range n, f i = f n - Finset.prod_range_succ_div_top π Mathlib.Algebra.BigOperators.Intervals
{M : Type u_4} (f : β β M) {n : β} [CommGroup M] : (β i β Finset.range (n + 1), f i) / f n = β i β Finset.range n, f i - Finset.sum_range_succ_sub_sum π Mathlib.Algebra.BigOperators.Intervals
{M : Type u_4} (f : β β M) {n : β} [AddCommGroup M] : β i β Finset.range (n + 1), f i - β i β Finset.range n, f i = f n - Finset.sum_range_succ_sub_top π Mathlib.Algebra.BigOperators.Intervals
{M : Type u_4} (f : β β M) {n : β} [AddCommGroup M] : β i β Finset.range (n + 1), f i - f n = β i β Finset.range n, f i - Finset.prod_range_mul_prod_Ico π Mathlib.Algebra.BigOperators.Intervals
{M : Type u_3} [CommMonoid M] (f : β β M) {m n : β} (h : m β€ n) : (β k β Finset.range m, f k) * β k β Finset.Ico m n, f k = β k β Finset.range n, f k - Finset.sum_range_add_sum_Ico π Mathlib.Algebra.BigOperators.Intervals
{M : Type u_3} [AddCommMonoid M] (f : β β M) {m n : β} (h : m β€ n) : β k β Finset.range m, f k + β k β Finset.Ico m n, f k = β k β Finset.range n, f k - Finset.prod_Ico_eq_div π Mathlib.Algebra.BigOperators.Intervals
{Ξ΄ : Type u_4} [CommGroup Ξ΄] (f : β β Ξ΄) {m n : β} (h : m β€ n) : β k β Finset.Ico m n, f k = (β k β Finset.range n, f k) / β k β Finset.range m, f k - Finset.prod_range_eq_mul_Ico π Mathlib.Algebra.BigOperators.Intervals
{M : Type u_3} [CommMonoid M] (f : β β M) {n : β} (hn : 0 < n) : β x β Finset.range n, f x = f 0 * β x β Finset.Ico 1 n, f x - Finset.sum_Ico_eq_sub π Mathlib.Algebra.BigOperators.Intervals
{Ξ΄ : Type u_4} [AddCommGroup Ξ΄] (f : β β Ξ΄) {m n : β} (h : m β€ n) : β k β Finset.Ico m n, f k = β k β Finset.range n, f k - β k β Finset.range m, f k - Finset.sum_range_eq_add_Ico π Mathlib.Algebra.BigOperators.Intervals
{M : Type u_3} [AddCommMonoid M] (f : β β M) {n : β} (hn : 0 < n) : β x β Finset.range n, f x = f 0 + β x β Finset.Ico 1 n, f x - Finset.prod_range_div_prod_range π Mathlib.Algebra.BigOperators.Intervals
{G : Type u_4} [CommGroup G] {f : β β G} {n m : β} (hnm : n β€ m) : (β k β Finset.range m, f k) / β k β Finset.range n, f k = β k β Finset.range m with n β€ k, f k - Finset.sum_range_sub_sum_range π Mathlib.Algebra.BigOperators.Intervals
{G : Type u_4} [AddCommGroup G] {f : β β G} {n m : β} (hnm : n β€ m) : β k β Finset.range m, f k - β k β Finset.range n, f k = β k β Finset.range m with n β€ k, f k - Finset.prod_range_diag_flip π Mathlib.Algebra.BigOperators.Intervals
{M : Type u_3} [CommMonoid M] (n : β) (f : β β β β M) : β m β Finset.range n, β k β Finset.range (m + 1), f k (m - k) = β m β Finset.range n, β k β Finset.range (n - m), f m k - Finset.sum_range_diag_flip π Mathlib.Algebra.BigOperators.Intervals
{M : Type u_3} [AddCommMonoid M] (n : β) (f : β β β β M) : β m β Finset.range n, β k β Finset.range (m + 1), f k (m - k) = β m β Finset.range n, β k β Finset.range (n - m), f m k - Finset.prod_Ico_eq_mul_inv π Mathlib.Algebra.BigOperators.Intervals
{Ξ΄ : Type u_4} [CommGroup Ξ΄] (f : β β Ξ΄) {m n : β} (h : m β€ n) : β k β Finset.Ico m n, f k = (β k β Finset.range n, f k) * (β k β Finset.range m, f k)β»ΒΉ - Finset.sum_Ico_eq_add_neg π Mathlib.Algebra.BigOperators.Intervals
{Ξ΄ : Type u_4} [AddCommGroup Ξ΄] (f : β β Ξ΄) {m n : β} (h : m β€ n) : β k β Finset.Ico m n, f k = β k β Finset.range n, f k + -β k β Finset.range m, f k - Finset.Nat.antidiagonal_eq_image π Mathlib.Data.Finset.NatAntidiagonal
(n : β) : Finset.HasAntidiagonal.antidiagonal n = Finset.image (fun i => (i, n - i)) (Finset.range (n + 1)) - Finset.Nat.antidiagonal_eq_image' π Mathlib.Data.Finset.NatAntidiagonal
(n : β) : Finset.HasAntidiagonal.antidiagonal n = Finset.image (fun i => (n - i, i)) (Finset.range (n + 1)) - Finset.Nat.antidiagonal_eq_map π Mathlib.Data.Finset.NatAntidiagonal
(n : β) : Finset.HasAntidiagonal.antidiagonal n = Finset.map { toFun := fun i => (i, n - i), inj' := β― } (Finset.range (n + 1)) - Finset.Nat.antidiagonal_eq_map' π Mathlib.Data.Finset.NatAntidiagonal
(n : β) : Finset.HasAntidiagonal.antidiagonal n = Finset.map { toFun := fun i => (n - i, i), inj' := β― } (Finset.range (n + 1)) - Finset.Nat.prod_antidiagonal_eq_prod_range_succ_mk π Mathlib.Algebra.BigOperators.NatAntidiagonal
{M : Type u_2} [CommMonoid M] (f : β Γ β β M) (n : β) : β ij β Finset.HasAntidiagonal.antidiagonal n, f ij = β k β Finset.range n.succ, f (k, n - k) - Finset.Nat.sum_antidiagonal_eq_sum_range_succ_mk π Mathlib.Algebra.BigOperators.NatAntidiagonal
{M : Type u_2} [AddCommMonoid M] (f : β Γ β β M) (n : β) : β ij β Finset.HasAntidiagonal.antidiagonal n, f ij = β k β Finset.range n.succ, f (k, n - k) - Finset.Nat.prod_antidiagonal_eq_prod_range_succ π Mathlib.Algebra.BigOperators.NatAntidiagonal
{M : Type u_2} [CommMonoid M] (f : β β β β M) (n : β) : β ij β Finset.HasAntidiagonal.antidiagonal n, f ij.1 ij.2 = β k β Finset.range n.succ, f k (n - k) - Finset.Nat.sum_antidiagonal_eq_sum_range_succ π Mathlib.Algebra.BigOperators.NatAntidiagonal
{M : Type u_2} [AddCommMonoid M] (f : β β β β M) (n : β) : β ij β Finset.HasAntidiagonal.antidiagonal n, f ij.1 ij.2 = β k β Finset.range n.succ, f k (n - k) - 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 - 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 - 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.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.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_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) - 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) - Finset.sort_range π Mathlib.Data.Finset.Sort
(n : β) : ((Finset.range n).sort fun a b => a β€ b) = List.range n - Polynomial.eval_geom_sum π Mathlib.Algebra.Polynomial.Eval.Defs
{R : Type u_1} [CommSemiring R] {n : β} {x : R} : Polynomial.eval x (β i β Finset.range n, Polynomial.X ^ i) = β i β Finset.range n, x ^ i - 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.supp_subset_range π Mathlib.Algebra.Polynomial.Degree.Support
{R : Type u} {m : β} [Semiring R] {p : Polynomial R} (h : p.natDegree < m) : p.support β Finset.range m - Polynomial.supp_subset_range_natDegree_succ π Mathlib.Algebra.Polynomial.Degree.Support
{R : Type u} [Semiring R] {p : Polynomial R} : p.support β Finset.range (p.natDegree + 1) - Polynomial.sum_over_range' π Mathlib.Algebra.Polynomial.Degree.Support
{R : Type u} {S : Type v} [Semiring R] [AddCommMonoid S] (p : Polynomial R) {f : β β R β S} (h : β (n : β), f n 0 = 0) (n : β) (hn : p.natDegree < n) : p.sum f = β a β Finset.range n, f a (p.coeff a) - Polynomial.sum_over_range π Mathlib.Algebra.Polynomial.Degree.Support
{R : Type u} {S : Type v} [Semiring R] [AddCommMonoid S] (p : Polynomial R) {f : β β R β S} (h : β (n : β), f n 0 = 0) : p.sum f = β a β Finset.range (p.natDegree + 1), f a (p.coeff a) - Polynomial.as_sum_range' π Mathlib.Algebra.Polynomial.Degree.Support
{R : Type u} [Semiring R] (p : Polynomial R) (n : β) (hn : p.natDegree < n) : p = β i β Finset.range n, (Polynomial.monomial i) (p.coeff i) - Polynomial.as_sum_range π Mathlib.Algebra.Polynomial.Degree.Support
{R : Type u} [Semiring R] (p : Polynomial R) : p = β i β Finset.range (p.natDegree + 1), (Polynomial.monomial i) (p.coeff i) - Polynomial.as_sum_range_C_mul_X_pow' π Mathlib.Algebra.Polynomial.Degree.Support
{R : Type u} [Semiring R] (p : Polynomial R) {n : β} (hn : p.natDegree < n) : p = β i β Finset.range n, Polynomial.C (p.coeff i) * Polynomial.X ^ i - Polynomial.as_sum_range_C_mul_X_pow π Mathlib.Algebra.Polynomial.Degree.Support
{R : Type u} [Semiring R] (p : Polynomial R) : p = β i β Finset.range (p.natDegree + 1), Polynomial.C (p.coeff i) * Polynomial.X ^ i - Polynomial.eval_eq_sum_range' π Mathlib.Algebra.Polynomial.Eval.Degree
{R : Type u} [Semiring R] {p : Polynomial R} {n : β} (hn : p.natDegree < n) (x : R) : Polynomial.eval x p = β i β Finset.range n, p.coeff i * x ^ i - Polynomial.eval_eq_sum_range π Mathlib.Algebra.Polynomial.Eval.Degree
{R : Type u} [Semiring R] {p : Polynomial R} (x : R) : Polynomial.eval x p = β i β Finset.range (p.natDegree + 1), p.coeff i * x ^ i - Polynomial.evalβ_eq_sum_range' π Mathlib.Algebra.Polynomial.Eval.Degree
{R : Type u} {S : Type v} [Semiring R] [Semiring S] (f : R β+* S) {p : Polynomial R} {n : β} (hn : p.natDegree < n) (x : S) : Polynomial.evalβ f x p = β i β Finset.range n, f (p.coeff i) * x ^ i - Polynomial.evalβ_eq_sum_range π Mathlib.Algebra.Polynomial.Eval.Degree
{R : Type u} {S : Type v} [Semiring R] {p : Polynomial R} [Semiring S] (f : R β+* S) (x : S) : Polynomial.evalβ f x p = β i β Finset.range (p.natDegree + 1), f (p.coeff i) * 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.aeval_eq_sum_range' π Mathlib.Algebra.Polynomial.AlgebraMap
{R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] {p : Polynomial R} {n : β} (hn : p.natDegree < n) (x : S) : (Polynomial.aeval x) p = β i β Finset.range n, p.coeff i β’ x ^ i - Polynomial.aeval_eq_sum_range π Mathlib.Algebra.Polynomial.AlgebraMap
{R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] {p : Polynomial R} (x : S) : (Polynomial.aeval x) p = β i β Finset.range (p.natDegree + 1), p.coeff i β’ x ^ i - Polynomial.Monic.as_sum π Mathlib.Algebra.Polynomial.Monic
{R : Type u} [Semiring R] {p : Polynomial R} (hp : p.Monic) : p = Polynomial.X ^ p.natDegree + β i β Finset.range p.natDegree, Polynomial.C (p.coeff i) * Polynomial.X ^ i - geom_sum_zero π Mathlib.Algebra.Ring.GeomSum
{R : Type u_1} [Semiring R] (x : R) : β i β Finset.range 0, x ^ i = 0 - geom_sum_one π Mathlib.Algebra.Ring.GeomSum
{R : Type u_1} [Semiring R] (x : R) : β i β Finset.range 1, x ^ i = 1 - one_geom_sum π Mathlib.Algebra.Ring.GeomSum
{R : Type u_1} [Semiring R] (n : β) : β i β Finset.range n, 1 ^ i = βn - geom_sum_two π Mathlib.Algebra.Ring.GeomSum
{R : Type u_1} [Semiring R] {x : R} : β i β Finset.range 2, x ^ i = x + 1 - op_geom_sum π Mathlib.Algebra.Ring.GeomSum
{R : Type u_1} [Semiring R] (x : R) (n : β) : MulOpposite.op (β i β Finset.range n, x ^ i) = β i β Finset.range n, MulOpposite.op x ^ i - Nat.geomSum_eq π Mathlib.Algebra.Ring.GeomSum
{m : β} (hm : 2 β€ m) (n : β) : β k β Finset.range n, m ^ k = (m ^ n - 1) / (m - 1) - zero_geom_sum π Mathlib.Algebra.Ring.GeomSum
{R : Type u_1} [Semiring R] {n : β} : β i β Finset.range n, 0 ^ i = if n = 0 then 0 else 1 - neg_one_geom_sum π Mathlib.Algebra.Ring.GeomSum
{R : Type u_1} [Ring R] {n : β} : β i β Finset.range n, (-1) ^ i = if Even n then 0 else 1 - geom_sum_succ' π Mathlib.Algebra.Ring.GeomSum
{R : Type u_1} [Semiring R] {x : R} {n : β} : β i β Finset.range (n + 1), x ^ i = x ^ n + β i β Finset.range n, x ^ i - geom_sum_succ π Mathlib.Algebra.Ring.GeomSum
{R : Type u_1} [Semiring R] {x : R} {n : β} : β i β Finset.range (n + 1), x ^ i = x * β i β Finset.range n, x ^ i + 1 - RingHom.map_geom_sum π Mathlib.Algebra.Ring.GeomSum
{R : Type u_1} {S : Type u_2} [Semiring R] [Semiring S] (x : R) (n : β) (f : R β+* S) : f (β i β Finset.range n, x ^ i) = β i β Finset.range n, f x ^ i - geom_sumβ_with_one π Mathlib.Algebra.Ring.GeomSum
{R : Type u_1} [Semiring R] (x : R) (n : β) : β i β Finset.range n, x ^ i * 1 ^ (n - 1 - i) = β i β Finset.range n, x ^ i - geom_sum_mul π Mathlib.Algebra.Ring.GeomSum
{R : Type u_1} [Ring R] (x : R) (n : β) : (β i β Finset.range n, x ^ i) * (x - 1) = x ^ n - 1 - geom_sum_mul_neg π Mathlib.Algebra.Ring.GeomSum
{R : Type u_1} [Ring R] (x : R) (n : β) : (β i β Finset.range n, x ^ i) * (1 - x) = 1 - x ^ n - mul_geom_sum π Mathlib.Algebra.Ring.GeomSum
{R : Type u_1} [Ring R] (x : R) (n : β) : (x - 1) * β i β Finset.range n, x ^ i = x ^ n - 1 - mul_neg_geom_sum π Mathlib.Algebra.Ring.GeomSum
{R : Type u_1} [Ring R] (x : R) (n : β) : (1 - x) * β i β Finset.range n, x ^ i = 1 - x ^ n - geom_sumβ_self π Mathlib.Algebra.Ring.GeomSum
{R : Type u_1} [Semiring R] (x : R) (n : β) : β i β Finset.range n, x ^ i * x ^ (n - 1 - i) = βn * x ^ (n - 1) - geom_sum_mul_add π Mathlib.Algebra.Ring.GeomSum
{R : Type u_1} [Semiring R] (x : R) (n : β) : (β i β Finset.range n, (x + 1) ^ i) * x + 1 = (x + 1) ^ n - Commute.geom_sumβ_comm π Mathlib.Algebra.Ring.GeomSum
{R : Type u_1} [Semiring R] {x y : R} (n : β) (h : Commute x y) : β i β Finset.range n, x ^ i * y ^ (n - 1 - i) = β i β Finset.range n, y ^ i * x ^ (n - 1 - i) - geom_sumβ_comm π Mathlib.Algebra.Ring.GeomSum
{R : Type u_1} [CommSemiring R] (x y : R) (n : β) : β i β Finset.range n, x ^ i * y ^ (n - 1 - i) = β i β Finset.range n, y ^ i * x ^ (n - 1 - i) - Commute.geom_sumβ_mul_add π Mathlib.Algebra.Ring.GeomSum
{R : Type u_1} [Semiring R] {x y : R} (h : Commute x y) (n : β) : (β i β Finset.range n, (x + y) ^ i * y ^ (n - 1 - i)) * x + y ^ n = (x + y) ^ n - geom_sumβ_mul_add π Mathlib.Algebra.Ring.GeomSum
{R : Type u_1} [CommSemiring R] (x y : R) (n : β) : (β i β Finset.range n, (x + y) ^ i * y ^ (n - 1 - i)) * x + y ^ n = (x + y) ^ n - Commute.geom_sumβ_mul π Mathlib.Algebra.Ring.GeomSum
{R : Type u_1} [Ring R] {x y : R} (h : Commute x y) (n : β) : (β i β Finset.range n, x ^ i * y ^ (n - 1 - i)) * (x - y) = x ^ n - y ^ n - Commute.mul_geom_sumβ π Mathlib.Algebra.Ring.GeomSum
{R : Type u_1} [Ring R] {x y : R} (h : Commute x y) (n : β) : (x - y) * β i β Finset.range n, x ^ i * y ^ (n - 1 - i) = x ^ n - y ^ n - Commute.mul_neg_geom_sumβ π Mathlib.Algebra.Ring.GeomSum
{R : Type u_1} [Ring R] {x y : R} (h : Commute x y) (n : β) : (y - x) * β i β Finset.range n, x ^ i * y ^ (n - 1 - i) = y ^ n - x ^ n - geom_sumβ_mul π Mathlib.Algebra.Ring.GeomSum
{R : Type u_1} [CommRing R] (x y : R) (n : β) : (β i β Finset.range n, x ^ i * y ^ (n - 1 - i)) * (x - y) = x ^ n - y ^ n - geom_sum_mul_of_le_one π Mathlib.Algebra.Ring.GeomSum
{R : Type u_1} [CommSemiring R] [PartialOrder R] [AddLeftReflectLE R] [AddLeftMono R] [ExistsAddOfLE R] [Sub R] [OrderedSub R] {x : R} (hx : x β€ 1) (n : β) : (β i β Finset.range n, x ^ i) * (1 - x) = 1 - x ^ n - geom_sum_mul_of_one_le π Mathlib.Algebra.Ring.GeomSum
{R : Type u_1} [CommSemiring R] [PartialOrder R] [AddLeftReflectLE R] [AddLeftMono R] [ExistsAddOfLE R] [Sub R] [OrderedSub R] {x : R} (hx : 1 β€ x) (n : β) : (β i β Finset.range n, x ^ i) * (x - 1) = x ^ n - 1 - pow_sub_one_mul_geom_sum_eq_pow_sub_one_mul_geom_sum π Mathlib.Algebra.Ring.GeomSum
{R : Type u_1} [CommRing R] {x : R} {m n : β} : (x ^ m - 1) * β k β Finset.range n, x ^ k = (x ^ n - 1) * β k β Finset.range m, x ^ k - op_geom_sumβ π Mathlib.Algebra.Ring.GeomSum
{R : Type u_1} [Semiring R] (x y : R) (n : β) : β i β Finset.range n, MulOpposite.op y ^ (n - 1 - i) * MulOpposite.op x ^ i = β i β Finset.range n, MulOpposite.op y ^ i * MulOpposite.op x ^ (n - 1 - i) - geom_sumβ_mul_of_ge π Mathlib.Algebra.Ring.GeomSum
{R : Type u_1} [CommSemiring R] [PartialOrder R] [AddLeftReflectLE R] [AddLeftMono R] [ExistsAddOfLE R] [Sub R] [OrderedSub R] {x y : R} (hxy : y β€ x) (n : β) : (β i β Finset.range n, x ^ i * y ^ (n - 1 - i)) * (x - y) = x ^ n - y ^ n - geom_sumβ_mul_of_le π Mathlib.Algebra.Ring.GeomSum
{R : Type u_1} [CommSemiring R] [PartialOrder R] [AddLeftReflectLE R] [AddLeftMono R] [ExistsAddOfLE R] [Sub R] [OrderedSub R] {x y : R} (hxy : x β€ y) (n : β) : (β i β Finset.range n, x ^ i * y ^ (n - 1 - i)) * (y - x) = y ^ n - x ^ n - Commute.geom_sumβ_succ_eq π Mathlib.Algebra.Ring.GeomSum
{R : Type u_1} [Ring R] {x y : R} (h : Commute x y) {n : β} : β i β Finset.range (n + 1), x ^ i * y ^ (n - i) = x ^ n + y * β i β Finset.range n, x ^ i * y ^ (n - 1 - i) - RingHom.map_geom_sumβ π Mathlib.Algebra.Ring.GeomSum
{R : Type u_1} {S : Type u_2} [Semiring R] [Semiring S] (x y : R) (n : β) (f : R β+* S) : f (β i β Finset.range n, x ^ i * y ^ (n - 1 - i)) = β i β Finset.range n, f x ^ i * f y ^ (n - 1 - i) - geom_sumβ_succ_eq π Mathlib.Algebra.Ring.GeomSum
{R : Type u_1} [CommRing R] (x y : R) {n : β} : β i β Finset.range (n + 1), x ^ i * y ^ (n - i) = x ^ n + y * β i β Finset.range n, x ^ i * y ^ (n - 1 - i) - Polynomial.monic_geom_sum_X π Mathlib.RingTheory.Polynomial.Basic
{R : Type u} [Semiring R] {n : β} (hn : n β 0) : (β i β Finset.range n, Polynomial.X ^ i).Monic - Polynomial.Monic.geom_sum π Mathlib.RingTheory.Polynomial.Basic
{R : Type u} [Semiring R] {P : Polynomial R} (hP : P.Monic) (hdeg : 0 < P.natDegree) {n : β} (hn : n β 0) : (β i β Finset.range n, P ^ i).Monic - Polynomial.Monic.geom_sum' π Mathlib.RingTheory.Polynomial.Basic
{R : Type u} [Semiring R] {P : Polynomial R} (hP : P.Monic) (hdeg : 0 < P.degree) {n : β} (hn : n β 0) : (β i β Finset.range n, P ^ i).Monic
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 ce5dd8c