Loogle!
Result
Found 181 declarations mentioning Prod.fst, LT.lt and Prod.snd. Of these, 16 match your pattern(s).
- Finset.offDiag_filter_lt_eq_filter_le 📋 Mathlib.Data.Finset.Prod
{ι : Type u_4} [PartialOrder ι] [DecidableEq ι] [DecidableLE ι] [DecidableLT ι] (s : Finset ι) : {i ∈ s.offDiag | i.1 < i.2} = {i ∈ s.offDiag | i.1 ≤ i.2} - Finset.sum_sym2_filter_not_isDiag 📋 Mathlib.Algebra.BigOperators.Sym
{ι : Type u_1} {α : Type u_2} [LinearOrder ι] [AddCommMonoid α] (s : Finset ι) (p : Sym2 ι → α) : ∑ i ∈ s.sym2 with ¬i.IsDiag, p i = ∑ i ∈ s.offDiag with i.1 < i.2, p s(i.1, i.2) - CategoryTheory.Limits.MultispanShape.ofLinearOrder_L 📋 Mathlib.CategoryTheory.Limits.Shapes.Multiequalizer
(ι : Type w) [LinearOrder ι] : (CategoryTheory.Limits.MultispanShape.ofLinearOrder ι).L = ↑{x | x.1 < x.2} - CategoryTheory.Limits.MultispanIndex.toLinearOrder_left 📋 Mathlib.CategoryTheory.Limits.Shapes.Multiequalizer
{C : Type u} [CategoryTheory.Category.{v, u} C] {ι : Type w} (I : CategoryTheory.Limits.MultispanIndex (CategoryTheory.Limits.MultispanShape.prod ι) C) [LinearOrder ι] (j : (CategoryTheory.Limits.MultispanShape.ofLinearOrder ι).L) : I.toLinearOrder.left j = I.left ↑j - CategoryTheory.Limits.MultispanShape.ofLinearOrder_fst 📋 Mathlib.CategoryTheory.Limits.Shapes.Multiequalizer
(ι : Type w) [LinearOrder ι] (x : ↑{x | x.1 < x.2}) : (CategoryTheory.Limits.MultispanShape.ofLinearOrder ι).fst x = (↑x).1 - CategoryTheory.Limits.MultispanShape.ofLinearOrder_snd 📋 Mathlib.CategoryTheory.Limits.Shapes.Multiequalizer
(ι : Type w) [LinearOrder ι] (x : ↑{x | x.1 < x.2}) : (CategoryTheory.Limits.MultispanShape.ofLinearOrder ι).snd x = (↑x).2 - CategoryTheory.Limits.WalkingMultispan.inclusionOfLinearOrder_obj 📋 Mathlib.CategoryTheory.Limits.Shapes.Multiequalizer
(ι : Type w) [LinearOrder ι] (x : CategoryTheory.Limits.WalkingMultispan (CategoryTheory.Limits.MultispanShape.ofLinearOrder ι)) : (CategoryTheory.Limits.WalkingMultispan.inclusionOfLinearOrder ι).obj x = match x with | CategoryTheory.Limits.WalkingMultispan.left a => CategoryTheory.Limits.WalkingMultispan.left ↑a | CategoryTheory.Limits.WalkingMultispan.right b => CategoryTheory.Limits.WalkingMultispan.right b - CategoryTheory.Limits.MultispanIndex.toLinearOrder_fst 📋 Mathlib.CategoryTheory.Limits.Shapes.Multiequalizer
{C : Type u} [CategoryTheory.Category.{v, u} C] {ι : Type w} (I : CategoryTheory.Limits.MultispanIndex (CategoryTheory.Limits.MultispanShape.prod ι) C) [LinearOrder ι] (j : (CategoryTheory.Limits.MultispanShape.ofLinearOrder ι).L) : I.toLinearOrder.fst j = I.fst ↑j - CategoryTheory.Limits.MultispanIndex.toLinearOrder_snd 📋 Mathlib.CategoryTheory.Limits.Shapes.Multiequalizer
{C : Type u} [CategoryTheory.Category.{v, u} C] {ι : Type w} (I : CategoryTheory.Limits.MultispanIndex (CategoryTheory.Limits.MultispanShape.prod ι) C) [LinearOrder ι] (j : (CategoryTheory.Limits.MultispanShape.ofLinearOrder ι).L) : I.toLinearOrder.snd j = I.snd ↑j - CategoryTheory.Limits.MultispanIndex.toLinearOrderMultispanIso_hom_app 📋 Mathlib.CategoryTheory.Limits.Shapes.Multiequalizer
{C : Type u} [CategoryTheory.Category.{v, u} C] {ι : Type w} (I : CategoryTheory.Limits.MultispanIndex (CategoryTheory.Limits.MultispanShape.prod ι) C) [LinearOrder ι] (X : CategoryTheory.Limits.WalkingMultispan (CategoryTheory.Limits.MultispanShape.ofLinearOrder ι)) : I.toLinearOrderMultispanIso.hom.app X = (match X with | CategoryTheory.Limits.WalkingMultispan.left a => CategoryTheory.Iso.refl (I.left ↑a) | CategoryTheory.Limits.WalkingMultispan.right a => CategoryTheory.Iso.refl (I.right a)).hom - CategoryTheory.Limits.MultispanIndex.toLinearOrderMultispanIso_inv_app 📋 Mathlib.CategoryTheory.Limits.Shapes.Multiequalizer
{C : Type u} [CategoryTheory.Category.{v, u} C] {ι : Type w} (I : CategoryTheory.Limits.MultispanIndex (CategoryTheory.Limits.MultispanShape.prod ι) C) [LinearOrder ι] (X : CategoryTheory.Limits.WalkingMultispan (CategoryTheory.Limits.MultispanShape.ofLinearOrder ι)) : I.toLinearOrderMultispanIso.inv.app X = (match X with | CategoryTheory.Limits.WalkingMultispan.left a => CategoryTheory.Iso.refl (I.left ↑a) | CategoryTheory.Limits.WalkingMultispan.right a => CategoryTheory.Iso.refl (I.right a)).inv - CategoryTheory.Limits.WalkingMultispan.inclusionOfLinearOrder_map 📋 Mathlib.CategoryTheory.Limits.Shapes.Multiequalizer
(ι : Type w) [LinearOrder ι] {x y : CategoryTheory.Limits.WalkingMultispan (CategoryTheory.Limits.MultispanShape.ofLinearOrder ι)} (f : x ⟶ y) : (CategoryTheory.Limits.WalkingMultispan.inclusionOfLinearOrder ι).map f = match x, y, f with | x, .(x), CategoryTheory.Limits.WalkingMultispan.Hom.id .(x) => CategoryTheory.CategoryStruct.id (match x with | CategoryTheory.Limits.WalkingMultispan.left a => CategoryTheory.Limits.WalkingMultispan.left ↑a | CategoryTheory.Limits.WalkingMultispan.right b => CategoryTheory.Limits.WalkingMultispan.right b) | .(CategoryTheory.Limits.WalkingMultispan.left b), .(CategoryTheory.Limits.WalkingMultispan.right ((CategoryTheory.Limits.MultispanShape.ofLinearOrder ι).fst b)), CategoryTheory.Limits.WalkingMultispan.Hom.fst b => CategoryTheory.Limits.WalkingMultispan.Hom.fst ↑b | .(CategoryTheory.Limits.WalkingMultispan.left b), .(CategoryTheory.Limits.WalkingMultispan.right ((CategoryTheory.Limits.MultispanShape.ofLinearOrder ι).snd b)), CategoryTheory.Limits.WalkingMultispan.Hom.snd b => CategoryTheory.Limits.WalkingMultispan.Hom.snd ↑b - isOpen_lt_prod 📋 Mathlib.Topology.Order.OrderClosed
{α : Type u} [TopologicalSpace α] [LinearOrder α] [OrderClosedTopology α] : IsOpen {p | p.1 < p.2} - measurableSet_lt' 📋 Mathlib.MeasureTheory.Constructions.BorelSpace.Order
{α : Type u_1} [TopologicalSpace α] {mα : MeasurableSpace α} [OpensMeasurableSpace α] [LinearOrder α] [OrderClosedTopology α] [SecondCountableTopology α] : MeasurableSet {p | p.1 < p.2} - nullMeasurableSet_lt' 📋 Mathlib.MeasureTheory.Constructions.BorelSpace.Order
{α : Type u_1} [TopologicalSpace α] {mα : MeasurableSpace α} [OpensMeasurableSpace α] [LinearOrder α] [OrderClosedTopology α] [SecondCountableTopology α] {μ : MeasureTheory.Measure (α × α)} : MeasureTheory.NullMeasurableSet {p | p.1 < p.2} μ - Affine.Simplex.Scalene.eq_1 📋 Mathlib.Analysis.Normed.Affine.Simplex
{R : Type u_1} {V : Type u_2} {P : Type u_3} [Ring R] [SeminormedAddCommGroup V] [PseudoMetricSpace P] [Module R V] [NormedAddTorsor V P] {n : ℕ} (s : Affine.Simplex R P n) : s.Scalene = Function.Injective fun i => dist (s.points (↑i).1) (s.points (↑i).2)
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 19971e9
serving mathlib revision f167e8d