Loogle!
Result
Found 266 declarations mentioning List and Fin. Of these, only the first 200 are shown.
- List.get π Init.Prelude
{Ξ± : Type u} (as : List Ξ±) : Fin as.length β Ξ± - List.findFinIdx? π Init.Data.List.Basic
{Ξ± : Type u} (p : Ξ± β Bool) (l : List Ξ±) : Option (Fin l.length) - List.finIdxOf? π Init.Data.List.Basic
{Ξ± : Type u} [BEq Ξ±] (a : Ξ±) (l : List Ξ±) : Option (Fin l.length) - List.findFinIdx?.go π Init.Data.List.Basic
{Ξ± : Type u} (p : Ξ± β Bool) (l l' : List Ξ±) (i : β) (h : l'.length + i = l.length) : Option (Fin l.length) - List.sizeOf_get π Init.Data.List.BasicAux
{Ξ± : Type u_1} [SizeOf Ξ±] (as : List Ξ±) (i : Fin as.length) : sizeOf (as.get i) < sizeOf as - List.get_last π Init.Data.List.BasicAux
{Ξ± : Type u_1} {a : Ξ±} {as : List Ξ±} {i : Fin (as ++ [a]).length} (h : Β¬βi < as.length) : (as ++ [a]).get i = a - List.get_mem π Init.Data.List.Lemmas
{Ξ± : Type u_1} (l : List Ξ±) (n : Fin l.length) : l.get n β l - List.get_cons_succ' π Init.Data.List.Lemmas
{Ξ± : Type u_1} {a : Ξ±} {as : List Ξ±} {i : Fin as.length} : (a :: as).get i.succ = as.get i - List.get_of_mem π Init.Data.List.Lemmas
{Ξ± : Type u_1} {a : Ξ±} {l : List Ξ±} (h : a β l) : β n, l.get n = a - List.mem_iff_get π Init.Data.List.Lemmas
{Ξ± : Type u_1} {a : Ξ±} {l : List Ξ±} : a β l β β n, l.get n = a - List.get_eq_getElem π Init.Data.List.Lemmas
{Ξ± : Type u_1} {l : List Ξ±} {i : Fin l.length} : l.get i = l[βi] - List.get_of_eq π Init.Data.List.Lemmas
{Ξ± : Type u_1} {l l' : List Ξ±} (h : l = l') (i : Fin l.length) : l.get i = l'.get β¨βi, β―β© - List.get_cons_zero π Init.Data.List.Lemmas
{Ξ±β : Type u_1} {a : Ξ±β} {l : List Ξ±β} : (a :: l).get 0 = a - List.ofFn π Init.Data.List.OfFn
{Ξ± : Type u_1} {n : β} (f : Fin n β Ξ±) : List Ξ± - List.ofFnM π Init.Data.List.OfFn
{m : Type u_1 β Type u_2} {Ξ± : Type u_1} {n : β} [Monad m] (f : Fin n β m Ξ±) : m (List Ξ±) - List.ofFn_zero π Init.Data.List.OfFn
{Ξ± : Type u_1} {f : Fin 0 β Ξ±} : List.ofFn f = [] - List.ofFn_eq_nil_iff π Init.Data.List.OfFn
{n : β} {Ξ± : Type u_1} {f : Fin n β Ξ±} : List.ofFn f = [] β n = 0 - List.idRun_ofFnM π Init.Data.List.OfFn
{n : β} {Ξ± : Type u_1} {f : Fin n β Id Ξ±} : (List.ofFnM f).run = List.ofFn fun i => (f i).run - List.mem_ofFn π Init.Data.List.OfFn
{Ξ± : Type u_1} {n : β} {f : Fin n β Ξ±} {a : Ξ±} : a β List.ofFn f β β i, f i = a - Fin.foldr_cons_eq_append π Init.Data.List.OfFn
{n : β} {Ξ± : Type u_1} {f : Fin n β Ξ±} {xs : List Ξ±} : Fin.foldr n (fun i xs => f i :: xs) xs = List.ofFn f ++ xs - List.ofFnM_zero π Init.Data.List.OfFn
{m : Type u_1 β Type u_2} {Ξ± : Type u_1} [Monad m] [LawfulMonad m] {f : Fin 0 β m Ξ±} : List.ofFnM f = pure [] - Fin.foldl_cons_eq_append π Init.Data.List.OfFn
{n : β} {Ξ± : Type u_1} {f : Fin n β Ξ±} {xs : List Ξ±} : Fin.foldl n (fun xs i => f i :: xs) xs = (List.ofFn f).reverse ++ xs - List.ofFnM_pure π Init.Data.List.OfFn
{m : Type u_1 β Type u_2} {Ξ± : Type u_1} [Monad m] [LawfulMonad m] {n : β} {f : Fin n β Ξ±} : (List.ofFnM fun i => pure (f i)) = pure (List.ofFn f) - List.ofFnM_pure_comp π Init.Data.List.OfFn
{m : Type u_1 β Type u_2} {Ξ± : Type u_1} [Monad m] [LawfulMonad m] {n : β} {f : Fin n β Ξ±} : List.ofFnM (pure β f) = pure (List.ofFn f) - List.getElem_ofFn π Init.Data.List.OfFn
{n : β} {Ξ± : Type u_1} {i : β} {f : Fin n β Ξ±} (h : i < (List.ofFn f).length) : (List.ofFn f)[i] = f β¨i, β―β© - List.getElem?_ofFn π Init.Data.List.OfFn
{n : β} {Ξ± : Type u_1} {i : β} {f : Fin n β Ξ±} : (List.ofFn f)[i]? = if h : i < n then some (f β¨i, hβ©) else none - List.ofFn_succ_last π Init.Data.List.OfFn
{Ξ± : Type u_1} {n : β} {f : Fin (n + 1) β Ξ±} : List.ofFn f = (List.ofFn fun i => f i.castSucc) ++ [f (Fin.last n)] - List.ofFn_add π Init.Data.List.OfFn
{Ξ± : Type u_1} {n m : β} {f : Fin (n + m) β Ξ±} : List.ofFn f = (List.ofFn fun i => f (Fin.castLE β― i)) ++ List.ofFn fun i => f (Fin.natAdd n i) - List.head_ofFn π Init.Data.List.OfFn
{Ξ± : Type u_1} {n : β} {f : Fin n β Ξ±} (h : List.ofFn f β []) : (List.ofFn f).head h = f β¨0, β―β© - List.getLast_ofFn π Init.Data.List.OfFn
{Ξ± : Type u_1} {n : β} {f : Fin n β Ξ±} (h : List.ofFn f β []) : (List.ofFn f).getLast h = f β¨n - 1, β―β© - List.ofFn_succ π Init.Data.List.OfFn
{Ξ± : Type u_1} {n : β} {f : Fin (n + 1) β Ξ±} : List.ofFn f = f 0 :: List.ofFn fun i => f i.succ - List.ofFnM_succ_last π Init.Data.List.OfFn
{m : Type u_1 β Type u_2} {Ξ± : Type u_1} {n : β} [Monad m] [LawfulMonad m] {f : Fin (n + 1) β m Ξ±} : List.ofFnM f = do let as β List.ofFnM fun i => f i.castSucc let a β f (Fin.last n) pure (as ++ [a]) - List.ofFnM_add π Init.Data.List.OfFn
{k : β} {Ξ± : Type u_1} {n : β} {m : Type u_1 β Type u_2} [Monad m] [LawfulMonad m] {f : Fin (n + k) β m Ξ±} : List.ofFnM f = do let as β List.ofFnM fun i => f (Fin.castLE β― i) let bs β List.ofFnM fun i => f (Fin.natAdd n i) pure (as ++ bs) - List.isSome_findFinIdx? π Init.Data.List.Find
{Ξ± : Type u_1} {l : List Ξ±} {p : Ξ± β Bool} : (List.findFinIdx? p l).isSome = l.any p - List.finIdxOf?.eq_1 π Init.Data.List.Find
{Ξ± : Type u} [BEq Ξ±] (a : Ξ±) : List.finIdxOf? a = List.findFinIdx? fun x => x == a - List.isSome_finIdxOf? π Init.Data.List.Find
{Ξ± : Type u_1} [BEq Ξ±] [PartialEquivBEq Ξ±] {l : List Ξ±} {a : Ξ±} : (List.finIdxOf? a l).isSome = l.contains a - List.isNone_finIdxOf? π Init.Data.List.Find
{Ξ± : Type u_1} [BEq Ξ±] [PartialEquivBEq Ξ±] {l : List Ξ±} {a : Ξ±} : (List.finIdxOf? a l).isNone = !l.contains a - List.findFinIdx?.eq_1 π Init.Data.List.Find
{Ξ± : Type u} (p : Ξ± β Bool) (l : List Ξ±) : List.findFinIdx? p l = List.findFinIdx?.go p l l 0 β― - List.findIdx?_eq_map_findFinIdx?_val π Init.Data.List.Find
{Ξ± : Type u_1} {xs : List Ξ±} {p : Ξ± β Bool} : List.findIdx? p xs = Option.map (fun x => βx) (List.findFinIdx? p xs) - List.idxOf?_eq_map_finIdxOf?_val π Init.Data.List.Find
{Ξ± : Type u_1} [BEq Ξ±] {xs : List Ξ±} {a : Ξ±} : List.idxOf? a xs = Option.map (fun x => βx) (List.finIdxOf? a xs) - List.finIdxOf?_eq_none_iff π Init.Data.List.Find
{Ξ± : Type u_1} [BEq Ξ±] [LawfulBEq Ξ±] {l : List Ξ±} {a : Ξ±} : List.finIdxOf? a l = none β a β l - List.findFinIdx?_eq_none_iff π Init.Data.List.Find
{Ξ± : Type u_1} {l : List Ξ±} {p : Ξ± β Bool} : List.findFinIdx? p l = none β β x β l, Β¬p x = true - List.isNone_findFinIdx? π Init.Data.List.Find
{Ξ± : Type u_1} {l : List Ξ±} {p : Ξ± β Bool} : (List.findFinIdx? p l).isNone = l.all fun x => decide Β¬p x = true - List.findFinIdx?.go.eq_1 π Init.Data.List.Find
{Ξ± : Type u} (p : Ξ± β Bool) (l : List Ξ±) (x : β) (x_1 : [].length + x = l.length) : List.findFinIdx?.go p l [] x x_1 = none - List.findIdx?_go_eq_map_findFinIdx?_go_val π Init.Data.List.Find
{Ξ± : Type u_1} {l xs : List Ξ±} {p : Ξ± β Bool} {i : β} {h : xs.length + i = l.length} : List.findIdx?.go p xs i = Option.map (fun x => βx) (List.findFinIdx?.go p l xs i h) - List.findFinIdx?_subtype π Init.Data.List.Find
{Ξ± : Type u_1} {p : Ξ± β Prop} {l : List { x // p x }} {f : { x // p x } β Bool} {g : Ξ± β Bool} (hf : β (x : Ξ±) (h : p x), f β¨x, hβ© = g x) : List.findFinIdx? f l = Option.map (fun i => Fin.cast β― i) (List.findFinIdx? g l.unattach) - List.findFinIdx?.go.eq_2 π Init.Data.List.Find
{Ξ± : Type u} (p : Ξ± β Bool) (l : List Ξ±) (x : β) (a : Ξ±) (l_1 : List Ξ±) (x_1 : (a :: l_1).length + x = l.length) : List.findFinIdx?.go p l (a :: l_1) x x_1 = if p a = true then some β¨x, β―β© else List.findFinIdx?.go p l l_1 (x + 1) β― - List.findFinIdx?.go.congr_simp π Init.Data.List.Find
{Ξ± : Type u} (p pβ : Ξ± β Bool) (e_p : p = pβ) (l l' l'β : List Ξ±) (e_l' : l' = l'β) (i iβ : β) (e_i : i = iβ) (h : l'.length + i = l.length) : List.findFinIdx?.go p l l' i h = List.findFinIdx?.go pβ l l'β iβ β― - List.finIdxOf?_cons π Init.Data.List.Find
{Ξ± : Type u_1} {b : Ξ±} [BEq Ξ±] {a : Ξ±} {xs : List Ξ±} : List.finIdxOf? b (a :: xs) = if (a == b) = true then some β¨0, β―β© else Option.map (fun x => x.succ) (List.finIdxOf? b xs) - List.findFinIdx?_cons π Init.Data.List.Find
{Ξ± : Type u_1} {p : Ξ± β Bool} {x : Ξ±} {xs : List Ξ±} : List.findFinIdx? p (x :: xs) = if p x = true then some 0 else Option.map Fin.succ (List.findFinIdx? p xs) - List.finIdxOf?_eq_some_iff π Init.Data.List.Find
{Ξ± : Type u_1} [BEq Ξ±] [LawfulBEq Ξ±] {l : List Ξ±} {a : Ξ±} {i : Fin l.length} : List.finIdxOf? a l = some i β l[i] = a β§ β j < i, Β¬l[j] = a - List.findFinIdx?_eq_some_iff π Init.Data.List.Find
{Ξ± : Type u_1} {xs : List Ξ±} {p : Ξ± β Bool} {i : Fin xs.length} : List.findFinIdx? p xs = some i β p xs[i] = true β§ β (j : Fin xs.length) (hji : j < i), Β¬p xs[j] = true - List.findFinIdx?.go.eq_def π Init.Data.List.Find
{Ξ± : Type u} (p : Ξ± β Bool) (l xβ : List Ξ±) (xβΒΉ : β) (xβΒ² : xβ.length + xβΒΉ = l.length) : List.findFinIdx?.go p l xβ xβΒΉ xβΒ² = match xβ, xβΒΉ, xβΒ² with | [], x, x_1 => none | a :: l_1, i, h => if p a = true then some β¨i, β―β© else List.findFinIdx?.go p l l_1 (i + 1) β― - List.findFinIdx?_append π Init.Data.List.Find
{Ξ± : Type u_1} {xs ys : List Ξ±} {p : Ξ± β Bool} : List.findFinIdx? p (xs ++ ys) = (Option.map (Fin.castLE β―) (List.findFinIdx? p xs)).or (Option.map (Fin.cast β―) (Option.map (Fin.natAdd xs.length) (List.findFinIdx? p ys))) - List.findFinIdx?_eq_pmap_findIdx? π Init.Data.List.Find
{Ξ± : Type u_1} {xs : List Ξ±} {p : Ξ± β Bool} : List.findFinIdx? p xs = Option.pmap (fun i m => β¨i, β―β©) (List.findIdx? p xs) β― - List.findFinIdx?_toArray π Init.Data.List.ToArray
{Ξ± : Type u_1} (p : Ξ± β Bool) (l : List Ξ±) : Array.findFinIdx? p l.toArray = List.findFinIdx? p l - List.finIdxOf?_toArray π Init.Data.List.ToArray
{Ξ± : Type u_1} [BEq Ξ±] (a : Ξ±) (l : List Ξ±) : l.toArray.finIdxOf? a = List.finIdxOf? a l - Array.getElem_fin_eq_getElem_toList π Init.Data.Array.Lemmas
{Ξ± : Type u_1} {xs : Array Ξ±} {i : Fin xs.size} : xs[i] = xs.toList[i] - List.finRange π Init.Data.List.FinRange
(n : β) : List (Fin n) - List.finRange_reverse π Init.Data.List.FinRange
{n : β} : (List.finRange n).reverse = List.map Fin.rev (List.finRange n) - List.finRange_zero π Init.Data.List.FinRange
: List.finRange 0 = [] - List.getElem_finRange π Init.Data.List.FinRange
{n i : β} (h : i < (List.finRange n).length) : (List.finRange n)[i] = Fin.cast β― β¨i, hβ© - List.finRange_succ π Init.Data.List.FinRange
{n : β} : List.finRange (n + 1) = 0 :: List.map Fin.succ (List.finRange n) - List.ofFnM_succ π Init.Data.List.FinRange
{m : Type u_1 β Type u_2} {Ξ± : Type u_1} {n : β} [Monad m] [LawfulMonad m] {f : Fin (n + 1) β m Ξ±} : List.ofFnM f = do let a β f 0 let as β List.ofFnM fun i => f i.succ pure (a :: as) - List.finRange_succ_last π Init.Data.List.FinRange
{n : β} : List.finRange (n + 1) = List.map Fin.castSucc (List.finRange n) ++ [Fin.last n] - Array.toList_ofFn π Init.Data.Array.OfFn
{n : β} {Ξ± : Type u_1} {f : Fin n β Ξ±} : (Array.ofFn f).toList = List.ofFn f - Array.toList_ofFnM π Init.Data.Array.OfFn
{m : Type u_1 β Type u_2} {n : β} {Ξ± : Type u_1} [Monad m] [LawfulMonad m] {f : Fin n β m Ξ±} : Array.toList <$> Array.ofFnM f = List.ofFnM f - List.mapFinIdx_eq_ofFn π Init.Data.List.MapIdx
{Ξ± : Type u_1} {Ξ² : Type u_2} {as : List Ξ±} {f : (i : β) β Ξ± β i < as.length β Ξ²} : as.mapFinIdx f = List.ofFn fun i => f (βi) as[i] β― - List.map_getElem_sublist π Init.Data.List.Nat.Pairwise
{Ξ± : Type u_1} {l : List Ξ±} {is : List (Fin l.length)} (h : List.Pairwise (fun x1 x2 => x1 < x2) is) : (List.map (fun x => l[x]) is).Sublist l - List.sublist_eq_map_getElem π Init.Data.List.Nat.Pairwise
{Ξ± : Type u_1} {l l' : List Ξ±} (h : l'.Sublist l) : β is, l' = List.map (fun x => l[x]) is β§ List.Pairwise (fun x1 x2 => x1 < x2) is - Vector.toList_ofFn π Init.Data.Vector.Lemmas
{n : β} {Ξ± : Type u_1} {f : Fin n β Ξ±} : (Vector.ofFn f).toList = List.ofFn f - Vector.toList_ofFnM π Init.Data.Vector.OfFn
{m : Type u_1 β Type u_2} {n : β} {Ξ± : Type u_1} [Monad m] [LawfulMonad m] {f : Fin n β m Ξ±} : Vector.toList <$> Vector.ofFnM f = List.ofFnM f - Std.Tactic.BVDecide.LRAT.Internal.DefaultFormula.existsRatHint_of_ratHintsExhaustive π Std.Tactic.BVDecide.LRAT.Internal.Formula.RatAddSound
{n : β} (f : Std.Tactic.BVDecide.LRAT.Internal.DefaultFormula n) (f_readyForRatAdd : f.ReadyForRatAdd) (pivot : Std.Sat.Literal (Std.Tactic.BVDecide.LRAT.Internal.PosFin n)) (ratHints : Array (β Γ Array β)) (ratHintsExhaustive_eq_true : f.ratHintsExhaustive pivot ratHints = true) (c' : Std.Tactic.BVDecide.LRAT.Internal.DefaultClause n) (c'_in_f : c' β f.toList) (negPivot_in_c' : pivot.negate β Std.Tactic.BVDecide.LRAT.Internal.Clause.toList c') : β i, f.clauses[ratHints[i].1]! = some c' - Batteries.Linter.UnnecessarySeqFocus.getPath π Batteries.Linter.UnnecessarySeqFocus
: Lean.Elab.Info β Lean.PersistentArray Lean.Elab.InfoTree β List ((n : β) Γ Fin n) β Option Lean.Elab.Info - List.pairwise_iff_get π Batteries.Data.List.Pairwise
{Ξ±β : Type u_1} {R : Ξ±β β Ξ±β β Prop} {l : List Ξ±β} : List.Pairwise R l β β (i j : Fin l.length), i < j β R (l.get i) (l.get j) - List.finRange.eq_1 π Batteries.Data.Char.Basic
(n : β) : List.finRange n = List.ofFn fun i => i - List.mem_finRange π Batteries.Data.Char.Basic
{n : β} (a : Fin n) : a β List.finRange n - List.cons_get_drop_succ π Mathlib.Data.List.TakeDrop
{Ξ± : Type u} {l : List Ξ±} {n : Fin l.length} : l.get n :: List.drop (βn + 1) l = List.drop (βn) l - List.get_reverse' π Mathlib.Data.List.Basic
{Ξ± : Type u} (l : List Ξ±) (n : Fin l.reverse.length) (hn' : l.length - 1 - βn < l.length) : l.reverse.get n = l.get β¨l.length - 1 - βn, hn'β© - List.get_attach π Mathlib.Data.List.Basic
{Ξ± : Type u} (l : List Ξ±) (i : Fin l.attach.length) : β(l.attach.get i) = l.get β¨βi, β―β© - List.get_eq_getElem? π Mathlib.Data.List.Basic
{Ξ± : Type u} (l : List Ξ±) (i : Fin l.length) : l.get i = l[i]?.get β― - List.nodup_iff_injective_get π Mathlib.Data.List.Nodup
{Ξ± : Type u} {l : List Ξ±} : l.Nodup β Function.Injective l.get - List.get_idxOf π Mathlib.Data.List.Nodup
{Ξ± : Type u} [DecidableEq Ξ±] {l : List Ξ±} (H : l.Nodup) (i : Fin l.length) : List.idxOf (l.get i) l = βi - List.get_bijective_iff π Mathlib.Data.List.Nodup
{Ξ± : Type u} {l : List Ξ±} [DecidableEq Ξ±] : Function.Bijective l.get β β (a : Ξ±), List.count a l = 1 - List.not_nodup_of_get_eq_of_ne π Mathlib.Data.List.Nodup
{Ξ± : Type u} (xs : List Ξ±) (n m : Fin xs.length) (h : xs.get n = xs.get m) (hne : n β m) : Β¬xs.Nodup - List.Nodup.get_inj_iff π Mathlib.Data.List.Nodup
{Ξ± : Type u} {l : List Ξ±} (h : l.Nodup) {i j : Fin l.length} : l.get i = l.get j β i = j - List.Nodup.erase_get π Mathlib.Data.List.Nodup
{Ξ± : Type u} [DecidableEq Ξ±] {l : List Ξ±} (hl : l.Nodup) (i : Fin l.length) : l.erase (l.get i) = l.eraseIdx βi - List.nodup_iff_injective_getElem π Mathlib.Data.List.Nodup
{Ξ± : Type u} {l : List Ξ±} : l.Nodup β Function.Injective fun i => l[βi] - List.getElem_bijective_iff π Mathlib.Data.List.Nodup
{Ξ± : Type u} {l : List Ξ±} [DecidableEq Ξ±] : (Function.Bijective fun n => l[n]) β β (a : Ξ±), List.count a l = 1 - Set.range_list_get π Mathlib.Data.Set.List
{Ξ± : Type u_1} (l : List Ξ±) : Set.range l.get = {x | x β l} - List.get_inits π Mathlib.Data.List.Infix
{Ξ± : Type u_1} (l : List Ξ±) (n : Fin l.inits.length) : l.inits.get n = List.take (βn) l - List.get_tails π Mathlib.Data.List.Infix
{Ξ± : Type u_1} (l : List Ξ±) (n : Fin l.tails.length) : l.tails.get n = List.drop (βn) l - List.get_cyclicPermutations π Mathlib.Data.List.Rotate
{Ξ± : Type u} (l : List Ξ±) (n : Fin l.cyclicPermutations.length) : l.cyclicPermutations.get n = l.rotate βn - List.get_rotate π Mathlib.Data.List.Rotate
{Ξ± : Type u} (l : List Ξ±) (n : β) (k : Fin (l.rotate n).length) : (l.rotate n).get k = l.get β¨(βk + n) % l.length, β―β© - List.get_rotate_one π Mathlib.Data.List.Rotate
{Ξ± : Type u} (l : List Ξ±) (k : Fin (l.rotate 1).length) : (l.rotate 1).get k = l.get β¨(βk + 1) % l.length, β―β© - List.get_eq_get_rotate π Mathlib.Data.List.Rotate
{Ξ± : Type u} (l : List Ξ±) (n : β) (k : Fin l.length) : l.get k = (l.rotate n).get β¨(l.length - n % l.length + βk) % l.length, β―β© - List.equivSigmaTuple π Mathlib.Data.List.OfFn
{Ξ± : Type u} : List Ξ± β (n : β) Γ (Fin n β Ξ±) - List.ofFn_injective π Mathlib.Data.List.OfFn
{Ξ± : Type u} {n : β} : Function.Injective List.ofFn - List.ofFn_const π Mathlib.Data.List.OfFn
{Ξ± : Type u} (n : β) (c : Ξ±) : (List.ofFn fun x => c) = List.replicate n c - List.ofFnRec π Mathlib.Data.List.OfFn
{Ξ± : Type u} {C : List Ξ± β Sort u_1} (h : (n : β) β (f : Fin n β Ξ±) β C (List.ofFn f)) (l : List Ξ±) : C l - List.forall_iff_forall_tuple π Mathlib.Data.List.OfFn
{Ξ± : Type u} {P : List Ξ± β Prop} : (β (l : List Ξ±), P l) β β (n : β) (f : Fin n β Ξ±), P (List.ofFn f) - List.ofFn_inj π Mathlib.Data.List.OfFn
{Ξ± : Type u} {n : β} {f g : Fin n β Ξ±} : List.ofFn f = List.ofFn g β f = g - List.exists_iff_exists_tuple π Mathlib.Data.List.OfFn
{Ξ± : Type u} {P : List Ξ± β Prop} : (β l, P l) β β n f, P (List.ofFn f) - List.forall_mem_ofFn_iff π Mathlib.Data.List.OfFn
{Ξ± : Type u} {n : β} {f : Fin n β Ξ±} {P : Ξ± β Prop} : (β i β List.ofFn f, P i) β β (j : Fin n), P (f j) - List.ofFn_comp' π Mathlib.Data.List.OfFn
{Ξ± : Type u} {Ξ² : Type u_1} {n : β} (f : Fin n β Ξ±) (g : Ξ± β Ξ²) : (List.ofFn fun i => g (f i)) = List.map g (List.ofFn f) - List.ofFn_succ' π Mathlib.Data.List.OfFn
{Ξ± : Type u} {n : β} (f : Fin n.succ β Ξ±) : List.ofFn f = (List.ofFn fun i => f i.castSucc).concat (f (Fin.last n)) - List.map_ofFn π Mathlib.Data.List.OfFn
{Ξ± : Type u} {Ξ² : Type u_1} {n : β} (f : Fin n β Ξ±) (g : Ξ± β Ξ²) : List.map g (List.ofFn f) = List.ofFn (g β f) - List.mem_ofFn' π Mathlib.Data.List.OfFn
{Ξ± : Type u} {n : β} (f : Fin n β Ξ±) (a : Ξ±) : a β List.ofFn f β a β Set.range f - List.ofFn_congr π Mathlib.Data.List.OfFn
{Ξ± : Type u} {m n : β} (h : m = n) (f : Fin m β Ξ±) : List.ofFn f = List.ofFn fun i => f (Fin.cast β― i) - List.ofFnRec_ofFn π Mathlib.Data.List.OfFn
{Ξ± : Type u} {C : List Ξ± β Sort u_1} (h : (n : β) β (f : Fin n β Ξ±) β C (List.ofFn f)) {n : β} (f : Fin n β Ξ±) : List.ofFnRec h (List.ofFn f) = h n f - List.ofFn_fin_repeat π Mathlib.Data.List.OfFn
{Ξ± : Type u} {m : β} (a : Fin m β Ξ±) (n : β) : List.ofFn (Fin.repeat n a) = (List.replicate n (List.ofFn a)).flatten - List.ofFn_inj' π Mathlib.Data.List.OfFn
{Ξ± : Type u} {m n : β} {f : Fin m β Ξ±} {g : Fin n β Ξ±} : List.ofFn f = List.ofFn g β β¨m, fβ© = β¨n, gβ© - List.ofFn_fin_append π Mathlib.Data.List.OfFn
{Ξ± : Type u} {m n : β} (a : Fin m β Ξ±) (b : Fin n β Ξ±) : List.ofFn (Fin.append a b) = List.ofFn a ++ List.ofFn b - List.ofFn_cons π Mathlib.Data.List.OfFn
{Ξ± : Type u} {n : β} (a : Ξ±) (f : Fin n β Ξ±) : List.ofFn (Fin.cons a f) = a :: List.ofFn f - List.ofFn_getElem π Mathlib.Data.List.OfFn
{Ξ± : Type u} (l : List Ξ±) : (List.ofFn fun i => l[βi]) = l - List.ofFn_getElem_eq_map π Mathlib.Data.List.OfFn
{Ξ± : Type u} {Ξ² : Type u_1} (l : List Ξ±) (f : Ξ± β Ξ²) : (List.ofFn fun i => f l[βi]) = List.map f l - List.equivSigmaTuple_apply_fst π Mathlib.Data.List.OfFn
{Ξ± : Type u} (l : List Ξ±) : (List.equivSigmaTuple l).fst = l.length - List.getLast_ofFn_succ π Mathlib.Data.List.OfFn
{Ξ± : Type u} {n : β} (f : Fin n.succ β Ξ±) : (List.ofFn f).getLast β― = f (Fin.last n) - List.equivSigmaTuple_apply_snd π Mathlib.Data.List.OfFn
{Ξ± : Type u} (l : List Ξ±) (aβ : Fin l.length) : (List.equivSigmaTuple l).snd aβ = l.get aβ - List.equivSigmaTuple_symm_apply π Mathlib.Data.List.OfFn
{Ξ± : Type u} (f : (n : β) Γ (Fin n β Ξ±)) : List.equivSigmaTuple.symm f = List.ofFn f.snd - List.ofFn_mul π Mathlib.Data.List.OfFn
{Ξ± : Type u} {m n : β} (f : Fin (m * n) β Ξ±) : List.ofFn f = (List.ofFn fun i => List.ofFn fun j => f β¨βi * n + βj, β―β©).flatten - List.ofFn_mul' π Mathlib.Data.List.OfFn
{Ξ± : Type u} {m n : β} (f : Fin (m * n) β Ξ±) : List.ofFn f = (List.ofFn fun i => List.ofFn fun j => f β¨m * βi + βj, β―β©).flatten - List.map_coe_finRange π Mathlib.Data.List.FinRange
(n : β) : List.map Fin.val (List.finRange n) = List.range n - List.ofFn_id π Mathlib.Data.List.FinRange
(n : β) : List.ofFn id = List.finRange n - List.finRange_eq_nil π Mathlib.Data.List.FinRange
{n : β} : List.finRange n = [] β n = 0 - List.ofFn_eq_map π Mathlib.Data.List.FinRange
{Ξ± : Type u} {n : β} {f : Fin n β Ξ±} : List.ofFn f = List.map f (List.finRange n) - List.finRange_map_get π Mathlib.Data.List.FinRange
{Ξ± : Type u} (l : List Ξ±) : List.map l.get (List.finRange l.length) = l - List.ofFn_eq_pmap π Mathlib.Data.List.FinRange
{Ξ± : Type u} {n : β} {f : Fin n β Ξ±} : List.ofFn f = List.pmap (fun i hi => f β¨i, hiβ©) (List.range n) β― - List.finRange_map_getElem π Mathlib.Data.List.FinRange
{Ξ± : Type u} (l : List Ξ±) : List.map (fun x => l[βx]) (List.finRange l.length) = l - List.finRange_succ_eq_map π Mathlib.Data.List.FinRange
(n : β) : List.finRange n.succ = 0 :: List.map Fin.succ (List.finRange n) - List.finRange_eq_pmap_range π Mathlib.Data.List.FinRange
(n : β) : List.finRange n = List.pmap Fin.mk (List.range n) β― - Fin.univ_image_get π Mathlib.Data.Fintype.Basic
{Ξ± : Type u_1} [DecidableEq Ξ±] (l : List Ξ±) : Finset.image l.get Finset.univ = l.toFinset - Fin.univ_image_get' π Mathlib.Data.Fintype.Basic
{Ξ± : Type u_1} {Ξ² : Type u_2} [DecidableEq Ξ²] (l : List Ξ±) (f : Ξ± β Ξ²) : Finset.image (fun x => f (l.get x)) Finset.univ = (List.map f l).toFinset - Fin.univ_image_getElem' π Mathlib.Data.Fintype.Basic
{Ξ± : Type u_1} {Ξ² : Type u_2} [DecidableEq Ξ²] (l : List Ξ±) (f : Ξ± β Ξ²) : Finset.image (fun i => f l[βi]) Finset.univ = (List.map f l).toFinset - List.Sorted.rel_get_of_lt π Mathlib.Data.List.Sort
{Ξ± : Type u} {r : Ξ± β Ξ± β Prop} {l : List Ξ±} (h : List.Sorted r l) {a b : Fin l.length} (hab : a < b) : r (l.get a) (l.get b) - List.Sorted.rel_get_of_le π Mathlib.Data.List.Sort
{Ξ± : Type u} {r : Ξ± β Ξ± β Prop} [IsRefl Ξ± r] {l : List Ξ±} (h : List.Sorted r l) {a b : Fin l.length} (hab : a β€ b) : r (l.get a) (l.get b) - List.Nodup.getEquivOfForallMemList π Mathlib.Data.List.NodupEquivFin
{Ξ± : Type u_1} [DecidableEq Ξ±] (l : List Ξ±) (nd : l.Nodup) (h : β (x : Ξ±), x β l) : Fin l.length β Ξ± - List.Nodup.getEquiv π Mathlib.Data.List.NodupEquivFin
{Ξ± : Type u_1} [DecidableEq Ξ±] (l : List Ξ±) (H : l.Nodup) : Fin l.length β { x // x β l } - List.Nodup.getBijectionOfForallMemList π Mathlib.Data.List.NodupEquivFin
{Ξ± : Type u_1} (l : List Ξ±) (nd : l.Nodup) (h : β (x : Ξ±), x β l) : { f // Function.Bijective f } - List.Sorted.get_mono π Mathlib.Data.List.NodupEquivFin
{Ξ± : Type u_1} [Preorder Ξ±] {l : List Ξ±} (h : List.Sorted (fun x1 x2 => x1 β€ x2) l) : Monotone l.get - List.Sorted.get_strictMono π Mathlib.Data.List.NodupEquivFin
{Ξ± : Type u_1} [Preorder Ξ±] {l : List Ξ±} (h : List.Sorted (fun x1 x2 => x1 < x2) l) : StrictMono l.get - List.Nodup.getBijectionOfForallMemList_coe π Mathlib.Data.List.NodupEquivFin
{Ξ± : Type u_1} (l : List Ξ±) (nd : l.Nodup) (h : β (x : Ξ±), x β l) (i : Fin l.length) : β(List.Nodup.getBijectionOfForallMemList l nd h) i = l.get i - List.Sorted.getIso π Mathlib.Data.List.NodupEquivFin
{Ξ± : Type u_1} [Preorder Ξ±] [DecidableEq Ξ±] (l : List Ξ±) (H : List.Sorted (fun x1 x2 => x1 < x2) l) : Fin l.length βo { x // x β l } - List.duplicate_iff_exists_distinct_get π Mathlib.Data.List.NodupEquivFin
{Ξ± : Type u_1} {l : List Ξ±} {x : Ξ±} : List.Duplicate x l β β n m, β (_ : n < m), x = l.get n β§ x = l.get m - List.Nodup.getEquivOfForallMemList_apply π Mathlib.Data.List.NodupEquivFin
{Ξ± : Type u_1} [DecidableEq Ξ±] (l : List Ξ±) (nd : l.Nodup) (h : β (x : Ξ±), x β l) (i : Fin l.length) : (List.Nodup.getEquivOfForallMemList l nd h) i = l.get i - List.Nodup.getEquivOfForallMemList_symm_apply_val π Mathlib.Data.List.NodupEquivFin
{Ξ± : Type u_1} [DecidableEq Ξ±] (l : List Ξ±) (nd : l.Nodup) (h : β (x : Ξ±), x β l) (a : Ξ±) : β((List.Nodup.getEquivOfForallMemList l nd h).symm a) = List.idxOf a l - List.Nodup.getEquiv_apply_coe π Mathlib.Data.List.NodupEquivFin
{Ξ± : Type u_1} [DecidableEq Ξ±] (l : List Ξ±) (H : l.Nodup) (i : Fin l.length) : β((List.Nodup.getEquiv l H) i) = l.get i - List.sublist_iff_exists_fin_orderEmbedding_get_eq π Mathlib.Data.List.NodupEquivFin
{Ξ± : Type u_1} {l l' : List Ξ±} : l.Sublist l' β β f, β (ix : Fin l.length), l.get ix = l'.get (f ix) - List.Nodup.getEquiv_symm_apply_val π Mathlib.Data.List.NodupEquivFin
{Ξ± : Type u_1} [DecidableEq Ξ±] (l : List Ξ±) (H : l.Nodup) (x : { x // x β l }) : β((List.Nodup.getEquiv l H).symm x) = List.idxOf (βx) l - List.Sorted.coe_getIso_apply π Mathlib.Data.List.NodupEquivFin
{Ξ± : Type u_1} [Preorder Ξ±] {l : List Ξ±} [DecidableEq Ξ±] (H : List.Sorted (fun x1 x2 => x1 < x2) l) {i : Fin l.length} : β((List.Sorted.getIso l H) i) = l.get i - List.Sorted.coe_getIso_symm_apply π Mathlib.Data.List.NodupEquivFin
{Ξ± : Type u_1} [Preorder Ξ±] {l : List Ξ±} [DecidableEq Ξ±] (H : List.Sorted (fun x1 x2 => x1 < x2) l) {x : { x // x β l }} : β((List.Sorted.getIso l H).symm x) = List.idxOf (βx) l - List.Vector.toList_ofFn π Mathlib.Data.Vector.Basic
{Ξ± : Type u_1} {n : β} (f : Fin n β Ξ±) : (List.Vector.ofFn f).toList = List.ofFn f - List.Vector.toList_set π Mathlib.Data.Vector.Basic
{Ξ± : Type u_1} {n : β} (v : List.Vector Ξ± n) (i : Fin n) (a : Ξ±) : (v.set i a).toList = v.toList.set (βi) a - List.Vector.set.eq_1 π Mathlib.Data.Vector.Basic
{Ξ± : Type u_1} {n : β} (v : List.Vector Ξ± n) (i : Fin n) (a : Ξ±) : v.set i a = β¨(βv).set (βi) a, β―β© - List.Vector.eraseIdx_val π Mathlib.Data.Vector.Basic
{Ξ± : Type u_1} {n : β} {i : Fin n} {v : List.Vector Ξ± n} : β(List.Vector.eraseIdx i v) = (βv).eraseIdx βi - List.Vector.insertIdx_val π Mathlib.Data.Vector.Basic
{Ξ± : Type u_1} {n : β} {a : Ξ±} {i : Fin (n + 1)} {v : List.Vector Ξ± n} : β(List.Vector.insertIdx a i v) = (βv).insertIdx (βi) a - Fin.prod_univ_get π Mathlib.Algebra.BigOperators.Fin
{M : Type u_2} [CommMonoid M] (l : List M) : β i, l[βi] = l.prod - Fin.prod_univ_getElem π Mathlib.Algebra.BigOperators.Fin
{M : Type u_2} [CommMonoid M] (l : List M) : β i, l[βi] = l.prod - Fin.sum_univ_get π Mathlib.Algebra.BigOperators.Fin
{M : Type u_2} [AddCommMonoid M] (l : List M) : β i, l[βi] = l.sum - Fin.sum_univ_getElem π Mathlib.Algebra.BigOperators.Fin
{M : Type u_2} [AddCommMonoid M] (l : List M) : β i, l[βi] = l.sum - Fin.prod_univ_fun_getElem π Mathlib.Algebra.BigOperators.Fin
{ΞΉ : Type u_1} {M : Type u_2} [CommMonoid M] (l : List ΞΉ) (f : ΞΉ β M) : β i, f l[βi] = (List.map f l).prod - Fin.prod_univ_get' π Mathlib.Algebra.BigOperators.Fin
{ΞΉ : Type u_1} {M : Type u_2} [CommMonoid M] (l : List ΞΉ) (f : ΞΉ β M) : β i, f l[βi] = (List.map f l).prod - Fin.sum_univ_fun_getElem π Mathlib.Algebra.BigOperators.Fin
{ΞΉ : Type u_1} {M : Type u_2} [AddCommMonoid M] (l : List ΞΉ) (f : ΞΉ β M) : β i, f l[βi] = (List.map f l).sum - Fin.sum_univ_get' π Mathlib.Algebra.BigOperators.Fin
{ΞΉ : Type u_1} {M : Type u_2} [AddCommMonoid M] (l : List ΞΉ) (f : ΞΉ β M) : β i, f l[βi] = (List.map f l).sum - List.alternatingProd_eq_finset_prod π Mathlib.Algebra.BigOperators.Fin
{G : Type u_3} [DivisionCommMonoid G] (L : List G) : L.alternatingProd = β i, L[i] ^ (-1) ^ βi - List.alternatingSum_eq_finset_sum π Mathlib.Algebra.BigOperators.Fin
{G : Type u_3} [SubtractionCommMonoid G] (L : List G) : L.alternatingSum = β i, (-1) ^ βi β’ L[i] - Fin.sort_univ π Mathlib.Data.Finset.Sort
(n : β) : Finset.sort (fun x y => x β€ y) Finset.univ = List.finRange n - Finset.listMap_orderEmbOfFin_finRange π Mathlib.Data.Finset.Sort
{Ξ± : Type u_1} [LinearOrder Ξ±] (s : Finset Ξ±) {k : β} (h : s.card = k) : List.map (β(s.orderEmbOfFin h)) (List.finRange k) = Finset.sort (fun x1 x2 => x1 β€ x2) s - Finset.orderEmbOfFin_apply π Mathlib.Data.Finset.Sort
{Ξ± : Type u_1} [LinearOrder Ξ±] (s : Finset Ξ±) {k : β} (h : s.card = k) (i : Fin k) : (s.orderEmbOfFin h) i = (Finset.sort (fun x1 x2 => x1 β€ x2) s)[i] - Composition.blocksFun_mem_blocks π Mathlib.Combinatorics.Enumerative.Composition
{n : β} (c : Composition n) (i : Fin c.length) : c.blocksFun i β c.blocks - Composition.blocksFun_congr π Mathlib.Combinatorics.Enumerative.Composition
{nβ nβ : β} (cβ : Composition nβ) (cβ : Composition nβ) (iβ : Fin cβ.length) (iβ : Fin cβ.length) (hn : nβ = nβ) (hc : cβ.blocks = cβ.blocks) (hi : βiβ = βiβ) : cβ.blocksFun iβ = cβ.blocksFun iβ - Equiv.Perm.signAux_eq_signAux2 π Mathlib.GroupTheory.Perm.Sign
{Ξ± : Type u} [DecidableEq Ξ±] {n : β} (l : List Ξ±) (f : Equiv.Perm Ξ±) (e : Ξ± β Fin n) (_h : β (x : Ξ±), f x β x β x β l) : Equiv.Perm.signAux ((e.symm.trans f).trans e) = Equiv.Perm.signAux2 l f - RelSeries.fromListIsChain_toFun π Mathlib.Order.RelSeries
{Ξ± : Type u_1} {r : SetRel Ξ± Ξ±} (x : List Ξ±) (x_ne_nil : x β []) (hx : List.IsChain (fun x1 x2 => (x1, x2) β r) x) (i : Fin (x.length - 1 + 1)) : (RelSeries.fromListIsChain x x_ne_nil hx).toFun i = x[Fin.cast β― i] - RelSeries.toList_getElem_eq_apply π Mathlib.Order.RelSeries
{Ξ± : Type u_1} {r : SetRel Ξ± Ξ±} (p : RelSeries r) (i : Fin (p.length + 1)) : p.toList[βi] = p.toFun i - RelSeries.getLast_toList π Mathlib.Order.RelSeries
{Ξ± : Type u_1} {r : SetRel Ξ± Ξ±} (p : RelSeries r) : p.toList.getLast β― = p.last - Matrix.Pivot.listTransvecCol π Mathlib.LinearAlgebra.Matrix.Transvection
{π : Type u_3} [Field π] {r : β} (M : Matrix (Fin r β Unit) (Fin r β Unit) π) : List (Matrix (Fin r β Unit) (Fin r β Unit) π) - Matrix.Pivot.listTransvecRow π Mathlib.LinearAlgebra.Matrix.Transvection
{π : Type u_3} [Field π] {r : β} (M : Matrix (Fin r β Unit) (Fin r β Unit) π) : List (Matrix (Fin r β Unit) (Fin r β Unit) π) - Matrix.Pivot.listTransvecCol.eq_1 π Mathlib.LinearAlgebra.Matrix.Transvection
{π : Type u_3} [Field π] {r : β} (M : Matrix (Fin r β Unit) (Fin r β Unit) π) : Matrix.Pivot.listTransvecCol M = List.ofFn fun i => Matrix.transvection (Sum.inl i) (Sum.inr ()) (-M (Sum.inl i) (Sum.inr ()) / M (Sum.inr ()) (Sum.inr ())) - Matrix.Pivot.listTransvecRow.eq_1 π Mathlib.LinearAlgebra.Matrix.Transvection
{π : Type u_3} [Field π] {r : β} (M : Matrix (Fin r β Unit) (Fin r β Unit) π) : Matrix.Pivot.listTransvecRow M = List.ofFn fun i => Matrix.transvection (Sum.inr ()) (Sum.inl i) (-M (Sum.inr ()) (Sum.inl i) / M (Sum.inr ()) (Sum.inr ())) - Matrix.Pivot.listTransvecCol_getElem π Mathlib.LinearAlgebra.Matrix.Transvection
{π : Type u_3} [Field π] {r : β} (M : Matrix (Fin r β Unit) (Fin r β Unit) π) {i : β} (h : i < (Matrix.Pivot.listTransvecCol M).length) : (Matrix.Pivot.listTransvecCol M)[i] = Matrix.transvection (Sum.inl β¨i, β―β©) (Sum.inr ()) (-M (Sum.inl β¨i, β―β©) (Sum.inr ()) / M (Sum.inr ()) (Sum.inr ())) - Matrix.Pivot.listTransvecRow_getElem π Mathlib.LinearAlgebra.Matrix.Transvection
{π : Type u_3} [Field π] {r : β} (M : Matrix (Fin r β Unit) (Fin r β Unit) π) {i : β} (h : i < (Matrix.Pivot.listTransvecRow M).length) : (Matrix.Pivot.listTransvecRow M)[i] = Matrix.transvection (Sum.inr ()) (Sum.inl β¨i, β―β©) (-M (Sum.inr ()) (Sum.inl β¨i, β―β©) / M (Sum.inr ()) (Sum.inr ())) - Matrix.Pivot.exists_isTwoBlockDiagonal_list_transvec_mul_mul_list_transvec π Mathlib.LinearAlgebra.Matrix.Transvection
{π : Type u_3} [Field π] {r : β} (M : Matrix (Fin r β Unit) (Fin r β Unit) π) : β L L', ((List.map Matrix.TransvectionStruct.toMatrix L).prod * M * (List.map Matrix.TransvectionStruct.toMatrix L').prod).IsTwoBlockDiagonal - Matrix.Pivot.exists_isTwoBlockDiagonal_of_ne_zero π Mathlib.LinearAlgebra.Matrix.Transvection
{π : Type u_3} [Field π] {r : β} (M : Matrix (Fin r β Unit) (Fin r β Unit) π) (hM : M (Sum.inr ()) (Sum.inr ()) β 0) : β L L', ((List.map Matrix.TransvectionStruct.toMatrix L).prod * M * (List.map Matrix.TransvectionStruct.toMatrix L').prod).IsTwoBlockDiagonal - Matrix.Pivot.exists_list_transvec_mul_mul_list_transvec_eq_diagonal_induction π Mathlib.LinearAlgebra.Matrix.Transvection
{π : Type u_3} [Field π] {r : β} (IH : β (M : Matrix (Fin r) (Fin r) π), β Lβ Lβ' Dβ, (List.map Matrix.TransvectionStruct.toMatrix Lβ).prod * M * (List.map Matrix.TransvectionStruct.toMatrix Lβ').prod = Matrix.diagonal Dβ) (M : Matrix (Fin r β Unit) (Fin r β Unit) π) : β L L' D, (List.map Matrix.TransvectionStruct.toMatrix L).prod * M * (List.map Matrix.TransvectionStruct.toMatrix L').prod = Matrix.diagonal D - List.Nat.antidiagonalTuple π Mathlib.Data.Fin.Tuple.NatAntidiagonal
(k aβ : β) : List (Fin k β β) - List.Nat.antidiagonalTuple.eq_2 π Mathlib.Data.Fin.Tuple.NatAntidiagonal
(n : β) : List.Nat.antidiagonalTuple 0 n.succ = [] - List.Nat.antidiagonalTuple_zero_succ π Mathlib.Data.Fin.Tuple.NatAntidiagonal
(n : β) : List.Nat.antidiagonalTuple 0 (n + 1) = [] - List.Nat.antidiagonalTuple_zero_zero π Mathlib.Data.Fin.Tuple.NatAntidiagonal
: List.Nat.antidiagonalTuple 0 0 = [![]] - List.Nat.antidiagonalTuple.eq_1 π Mathlib.Data.Fin.Tuple.NatAntidiagonal
: List.Nat.antidiagonalTuple 0 0 = [![]] - List.Nat.mem_antidiagonalTuple π Mathlib.Data.Fin.Tuple.NatAntidiagonal
{n k : β} {x : Fin k β β} : x β List.Nat.antidiagonalTuple k n β β i, x i = n - List.Nat.antidiagonalTuple_zero_right π Mathlib.Data.Fin.Tuple.NatAntidiagonal
(k : β) : List.Nat.antidiagonalTuple k 0 = [0] - List.Nat.antidiagonalTuple_one π Mathlib.Data.Fin.Tuple.NatAntidiagonal
(n : β) : List.Nat.antidiagonalTuple 1 n = [![n]] - List.Nat.antidiagonalTuple_two π Mathlib.Data.Fin.Tuple.NatAntidiagonal
(n : β) : List.Nat.antidiagonalTuple 2 n = List.map (fun i => ![i.1, i.2]) (List.Nat.antidiagonal n) - List.Nat.antidiagonalTuple.eq_3 π Mathlib.Data.Fin.Tuple.NatAntidiagonal
(xβ k : β) : List.Nat.antidiagonalTuple k.succ xβ = List.flatMap (fun ni => List.map (fun x => Fin.cons ni.1 x) (List.Nat.antidiagonalTuple k ni.2)) (List.Nat.antidiagonal xβ) - Nat.finMulAntidiag_existsUnique_prime_dvd π Mathlib.Algebra.Order.Antidiag.Nat
{d n p : β} (hn : Squarefree n) (hp : p β n.primeFactorsList) (f : Fin d β β) (hf : f β d.finMulAntidiag n) : β! i, p β£ f i - List.toFinsupp_apply_fin π Mathlib.Data.List.ToFinsupp
{M : Type u_1} [Zero M] (l : List M) [DecidablePred fun x => l.getD x 0 β 0] (n : Fin l.length) : l.toFinsupp βn = l[n] - SimplexCategoryGenRel.IsAdmissible.head π Mathlib.AlgebraicTopology.SimplexCategory.GeneratorsRelations.NormalForms
{m : β} (a : β) (L : List β) (hl : SimplexCategoryGenRel.IsAdmissible m (a :: L)) : Fin (m + 1) - SimplexCategoryGenRel.IsAdmissible.getElemAsFin π Mathlib.AlgebraicTopology.SimplexCategory.GeneratorsRelations.NormalForms
{m : β} {L : List β} (hl : SimplexCategoryGenRel.IsAdmissible m L) (k : β) (hK : k < L.length) : Fin (m + k + 1) - SimplexCategoryGenRel.IsAdmissible.head.congr_simp π Mathlib.AlgebraicTopology.SimplexCategory.GeneratorsRelations.NormalForms
{m : β} (a aβ : β) (e_a : a = aβ) (L Lβ : List β) (e_L : L = Lβ) (hl : SimplexCategoryGenRel.IsAdmissible m (a :: L)) : SimplexCategoryGenRel.IsAdmissible.head a L hl = SimplexCategoryGenRel.IsAdmissible.head aβ Lβ β― - SimplexCategoryGenRel.simplicialEvalΟ_of_isAdmissible π Mathlib.AlgebraicTopology.SimplexCategory.GeneratorsRelations.NormalForms
(L : List β) (mβ mβ : β) (hL : SimplexCategoryGenRel.IsAdmissible mβ L) (hk : mβ + L.length = mβ) (j : β) (hj : j < mβ + 1) : β((SimplexCategory.Hom.toOrderHom (SimplexCategoryGenRel.toSimplexCategory.map (SimplexCategoryGenRel.standardΟ L hk))) β¨j, hjβ©) = SimplexCategoryGenRel.simplicialEvalΟ L j
About
Loogle searches Lean and Mathlib definitions and theorems.
You can use Loogle from within the Lean4 VSCode language extension
using (by default) Ctrl-K Ctrl-S. 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 ?a
If 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 ?b
By 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_tsum
even though the hypothesisf i < g i
is not the last.
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.
This is Loogle revision ee8c038
serving mathlib revision 3aa3aca