Loogle!
Result
Found 1831 declarations whose name contains "Batteries". Of these, only the first 200 are shown.
- Batteries.Util.LibraryNote.LibraryNoteEntry 📋 Batteries.Util.LibraryNote
: Type - Batteries.Util.LibraryNote.commandLibrary_note___ 📋 Batteries.Util.LibraryNote
: Lean.ParserDescr - Batteries.Util.LibraryNote.instInhabitedLibraryNoteEntry 📋 Batteries.Util.LibraryNote
: Inhabited Batteries.Util.LibraryNote.LibraryNoteEntry - Batteries.Util.LibraryNote.libraryNoteExt 📋 Batteries.Util.LibraryNote
: Lean.SimplePersistentEnvExtension Batteries.Util.LibraryNote.LibraryNoteEntry (Array Batteries.Util.LibraryNote.LibraryNoteEntry) - Batteries.Tactic.unreachable 📋 Batteries.Tactic.Unreachable
: Lean.ParserDescr - Batteries.Tactic.unreachableConv 📋 Batteries.Tactic.Unreachable
: Lean.ParserDescr - Batteries.Linter.UnreachableTactic.unreachableTacticLinter 📋 Batteries.Linter.UnreachableTactic
: Lean.Linter - Batteries.Linter.UnreachableTactic.M 📋 Batteries.Linter.UnreachableTactic
(α : Type) : Type - Batteries.Linter.UnreachableTactic.getLinterUnreachableTactic 📋 Batteries.Linter.UnreachableTactic
(o : Lean.Linter.LinterOptions) : Bool - Batteries.Linter.UnreachableTactic.ignoreTacticKindsRef 📋 Batteries.Linter.UnreachableTactic
: IO.Ref Lean.NameHashSet - Batteries.Linter.linter.unreachableTactic 📋 Batteries.Linter.UnreachableTactic
: Lean.Option Bool - Batteries.Linter.UnreachableTactic.addIgnoreTacticKind 📋 Batteries.Linter.UnreachableTactic
(kind : Lean.SyntaxNodeKind) : IO Unit - Batteries.Linter.UnreachableTactic.eraseUsedTactics 📋 Batteries.Linter.UnreachableTactic
: Lean.Elab.InfoTree → Batteries.Linter.UnreachableTactic.M Unit - Batteries.Linter.UnreachableTactic.isIgnoreTacticKind 📋 Batteries.Linter.UnreachableTactic
(ignoreTacticKinds : Lean.NameHashSet) (k : Lean.SyntaxNodeKind) : Bool - Batteries.Linter.UnreachableTactic.eraseUsedTacticsList 📋 Batteries.Linter.UnreachableTactic
(trees : Lean.PersistentArray Lean.Elab.InfoTree) : Batteries.Linter.UnreachableTactic.M Unit - Batteries.Linter.UnreachableTactic.getTactics 📋 Batteries.Linter.UnreachableTactic
(ignoreTacticKinds : Lean.NameHashSet) (isTacKind : Lean.SyntaxNodeKind → Bool) (stx : Lean.Syntax) : Batteries.Linter.UnreachableTactic.M Unit - Batteries.Linter.UnnecessarySeqFocus.Entry 📋 Batteries.Linter.UnnecessarySeqFocus
: Type - Batteries.Linter.UnnecessarySeqFocus.multigoalAttr 📋 Batteries.Linter.UnnecessarySeqFocus
: Lean.TagAttributeExtra - Batteries.Linter.UnnecessarySeqFocus.unnecessarySeqFocusLinter 📋 Batteries.Linter.UnnecessarySeqFocus
: Lean.Linter - Batteries.Linter.UnnecessarySeqFocus.getLinterUnnecessarySeqFocus 📋 Batteries.Linter.UnnecessarySeqFocus
(o : Lean.Linter.LinterOptions) : Bool - Batteries.Linter.UnnecessarySeqFocus.isSeqFocus 📋 Batteries.Linter.UnnecessarySeqFocus
(k : Lean.SyntaxNodeKind) : Bool - Batteries.Linter.linter.unnecessarySeqFocus 📋 Batteries.Linter.UnnecessarySeqFocus
: Lean.Option Bool - Batteries.Linter.UnnecessarySeqFocus.Entry.stx 📋 Batteries.Linter.UnnecessarySeqFocus
(self : Batteries.Linter.UnnecessarySeqFocus.Entry) : Lean.Syntax - Batteries.Linter.UnnecessarySeqFocus.Entry.used 📋 Batteries.Linter.UnnecessarySeqFocus
(self : Batteries.Linter.UnnecessarySeqFocus.Entry) : Bool - Batteries.Linter.UnnecessarySeqFocus.M 📋 Batteries.Linter.UnnecessarySeqFocus
(ω α : Type) : Type - Batteries.Linter.UnnecessarySeqFocus.Entry.mk 📋 Batteries.Linter.UnnecessarySeqFocus
(stx : Lean.Syntax) (used : Bool) : Batteries.Linter.UnnecessarySeqFocus.Entry - Batteries.Linter.UnnecessarySeqFocus.getTactics 📋 Batteries.Linter.UnnecessarySeqFocus
{ω : Type} (stx : Lean.Syntax) : Batteries.Linter.UnnecessarySeqFocus.M ω Unit - Batteries.Linter.UnnecessarySeqFocus.markUsedTactics 📋 Batteries.Linter.UnnecessarySeqFocus
(env : Lean.Environment) {ω : Type} : Lean.Elab.InfoTree → Batteries.Linter.UnnecessarySeqFocus.M ω Unit - Batteries.Linter.UnnecessarySeqFocus.markUsedTacticsList 📋 Batteries.Linter.UnnecessarySeqFocus
(env : Lean.Environment) {ω : Type} (trees : Lean.PersistentArray Lean.Elab.InfoTree) : Batteries.Linter.UnnecessarySeqFocus.M ω Unit - Batteries.Linter.UnnecessarySeqFocus.getPath 📋 Batteries.Linter.UnnecessarySeqFocus
: Lean.Elab.Info → Lean.PersistentArray Lean.Elab.InfoTree → List ((n : ℕ) × Fin n) → Option Lean.Elab.Info - Batteries.Linter.UnnecessarySeqFocus.Entry.mk.injEq 📋 Batteries.Linter.UnnecessarySeqFocus
(stx : Lean.Syntax) (used : Bool) (stx✝ : Lean.Syntax) (used✝ : Bool) : ({ stx := stx, used := used } = { stx := stx✝, used := used✝ }) = (stx = stx✝ ∧ used = used✝) - Batteries.Linter.UnnecessarySeqFocus.Entry.mk.sizeOf_spec 📋 Batteries.Linter.UnnecessarySeqFocus
(stx : Lean.Syntax) (used : Bool) : sizeOf { stx := stx, used := used } = 1 + sizeOf stx + sizeOf used - Batteries.Tactic.byContra 📋 Batteries.Tactic.Init
: Lean.ParserDescr - Batteries.Tactic.exacts 📋 Batteries.Tactic.Init
: Lean.ParserDescr - Batteries.Tactic.tacticAbsurd_ 📋 Batteries.Tactic.Init
: Lean.ParserDescr - Batteries.Tactic.tacticEapply_ 📋 Batteries.Tactic.Init
: Lean.ParserDescr - Batteries.Tactic.tacticFapply_ 📋 Batteries.Tactic.Init
: Lean.ParserDescr - Batteries.Tactic.tacticSplit_ands 📋 Batteries.Tactic.Init
: Lean.ParserDescr - Batteries.Tactic.tactic_ 📋 Batteries.Tactic.Init
: Lean.ParserDescr - Batteries.Tactic.triv 📋 Batteries.Tactic.Init
: Lean.ParserDescr - Batteries.Tactic.Conv.equals 📋 Batteries.Tactic.Init
: Lean.ParserDescr - Batteries.Tactic.Conv.exact 📋 Batteries.Tactic.Init
: Lean.ParserDescr - Batteries.Tactic.seq_focus 📋 Batteries.Tactic.SeqFocus
: Lean.TrailingParserDescr - Batteries.Tactic.«tacticMap_tacs[_;]» 📋 Batteries.Tactic.SeqFocus
: Lean.ParserDescr - Batteries.TotalBLE 📋 Batteries.Classes.Order
{α : Sort u_1} (le : α → α → Bool) : Prop - Std.instOrientedCmpFlipOrdering_batteries 📋 Batteries.Classes.Order
{α✝ : Type u_1} {cmp : α✝ → α✝ → Ordering} [inst : Std.OrientedCmp cmp] : Std.OrientedCmp (flip cmp) - Std.instTransCmpFlipOrdering_batteries 📋 Batteries.Classes.Order
{α✝ : Type u_1} {cmp : α✝ → α✝ → Ordering} [inst : Std.TransCmp cmp] : Std.TransCmp (flip cmp) - Std.instOrientedCmpCompareOnOfOrientedOrd_batteries 📋 Batteries.Classes.Order
{β : Type u_1} {α : Type u_2} [Ord β] [Std.OrientedOrd β] (f : α → β) : Std.OrientedCmp (compareOn f) - Std.instTransCmpCompareOnOfTransOrd_batteries 📋 Batteries.Classes.Order
{β : Type u_1} {α : Type u_2} [Ord β] [Std.TransOrd β] (f : α → β) : Std.TransCmp (compareOn f) - Std.instOrientedCmpCompareLex_batteries 📋 Batteries.Classes.Order
{α✝ : Type u_1} {cmp₁ cmp₂ : α✝ → α✝ → Ordering} [inst₁ : Std.OrientedCmp cmp₁] [inst₂ : Std.OrientedCmp cmp₂] : Std.OrientedCmp (compareLex cmp₁ cmp₂) - Std.instTransCmpCompareLex_batteries 📋 Batteries.Classes.Order
{α✝ : Type u_1} {cmp₁ cmp₂ : α✝ → α✝ → Ordering} [inst₁ : Std.TransCmp cmp₁] [inst₂ : Std.TransCmp cmp₂] : Std.TransCmp (compareLex cmp₁ cmp₂) - Batteries.TotalBLE.mk 📋 Batteries.Classes.Order
{α : Sort u_1} {le : α → α → Bool} (total : ∀ {a b : α}, le a b = true ∨ le b a = true) : Batteries.TotalBLE le - Batteries.TotalBLE.total 📋 Batteries.Classes.Order
{α : Sort u_1} {le : α → α → Bool} [self : Batteries.TotalBLE le] {a b : α} : le a b = true ∨ le b a = true - Batteries.compareOfLessAndEq_eq_lt 📋 Batteries.Classes.Order
{α : Type u_1} {x y : α} [LT α] [Decidable (x < y)] [DecidableEq α] : compareOfLessAndEq x y = Ordering.lt ↔ x < y - Batteries.OrientedOrd 📋 Batteries.Classes.Deprecated
(α : Type u_1) [Ord α] : Prop - Batteries.TransOrd 📋 Batteries.Classes.Deprecated
(α : Type u_1) [Ord α] : Prop - Batteries.OrientedCmp 📋 Batteries.Classes.Deprecated
{α : Sort u_1} (cmp : α → α → Ordering) : Prop - Batteries.TransCmp 📋 Batteries.Classes.Deprecated
{α : Sort u_1} (cmp : α → α → Ordering) : Prop - Batteries.BEqOrd 📋 Batteries.Classes.Deprecated
(α : Type u_1) [BEq α] [Ord α] : Prop - Batteries.LEOrd 📋 Batteries.Classes.Deprecated
(α : Type u_1) [LE α] [Ord α] : Prop - Batteries.LTOrd 📋 Batteries.Classes.Deprecated
(α : Type u_1) [LT α] [Ord α] : Prop - Batteries.BEqCmp 📋 Batteries.Classes.Deprecated
{α : Type u_1} [BEq α] (cmp : α → α → Ordering) : Prop - Batteries.LECmp 📋 Batteries.Classes.Deprecated
{α : Type u_1} [LE α] (cmp : α → α → Ordering) : Prop - Batteries.LTCmp 📋 Batteries.Classes.Deprecated
{α : Type u_1} [LT α] (cmp : α → α → Ordering) : Prop - Batteries.LawfulOrd 📋 Batteries.Classes.Deprecated
(α : Type u_1) [LE α] [LT α] [BEq α] [Ord α] : Prop - Batteries.TransCmp.toOrientedCmp 📋 Batteries.Classes.Deprecated
{α : Sort u_1} {cmp : α → α → Ordering} [self : Batteries.TransCmp cmp] : Batteries.OrientedCmp cmp - Batteries.LawfulCmp 📋 Batteries.Classes.Deprecated
{α : Type u_1} [LE α] [LT α] [BEq α] (cmp : α → α → Ordering) : Prop - Batteries.OrientedOrd.instOpposite 📋 Batteries.Classes.Deprecated
{α : Type u_1} [ord : Ord α] [inst : Batteries.OrientedOrd α] : Batteries.OrientedOrd α - Batteries.TransOrd.instOpposite 📋 Batteries.Classes.Deprecated
{α : Type u_1} [ord : Ord α] [inst : Batteries.TransOrd α] : Batteries.TransOrd α - Batteries.LECmp.toOrientedCmp 📋 Batteries.Classes.Deprecated
{α : Type u_1} {inst✝ : LE α} {cmp : α → α → Ordering} [self : Batteries.LECmp cmp] : Batteries.OrientedCmp cmp - Batteries.LTCmp.toOrientedCmp 📋 Batteries.Classes.Deprecated
{α : Type u_1} {inst✝ : LT α} {cmp : α → α → Ordering} [self : Batteries.LTCmp cmp] : Batteries.OrientedCmp cmp - Batteries.OrientedOrd.eq_1 📋 Batteries.Classes.Deprecated
(α : Type u_1) [Ord α] : Batteries.OrientedOrd α = Batteries.OrientedCmp compare - Batteries.TransOrd.eq_1 📋 Batteries.Classes.Deprecated
(α : Type u_1) [Ord α] : Batteries.TransOrd α = Batteries.TransCmp compare - Batteries.instOrientedCmpFlipOrdering 📋 Batteries.Classes.Deprecated
{α✝ : Sort u_1} {cmp : α✝ → α✝ → Ordering} [inst : Batteries.OrientedCmp cmp] : Batteries.OrientedCmp (flip cmp) - Batteries.instTransCmpFlipOrdering 📋 Batteries.Classes.Deprecated
{α✝ : Sort u_1} {cmp : α✝ → α✝ → Ordering} [inst : Batteries.TransCmp cmp] : Batteries.TransCmp (flip cmp) - Batteries.OrientedCmp.cmp_refl 📋 Batteries.Classes.Deprecated
{α✝ : Sort u_1} {cmp : α✝ → α✝ → Ordering} {x : α✝} [Batteries.OrientedCmp cmp] : cmp x x = Ordering.eq - Batteries.instOrientedCmpCompareOnOfOrientedOrd 📋 Batteries.Classes.Deprecated
{β : Type u_1} {α : Sort u_2} [Ord β] [Batteries.OrientedOrd β] (f : α → β) : Batteries.OrientedCmp (compareOn f) - Batteries.instTransCmpCompareOnOfTransOrd 📋 Batteries.Classes.Deprecated
{β : Type u_1} {α : Sort u_2} [Ord β] [Batteries.TransOrd β] (f : α → β) : Batteries.TransCmp (compareOn f) - Batteries.OrientedOrd.instOn 📋 Batteries.Classes.Deprecated
{β : Type u_1} {α : Type u_2} [ord : Ord β] [Batteries.OrientedOrd β] (f : α → β) : Batteries.OrientedOrd α - Batteries.TransOrd.instOn 📋 Batteries.Classes.Deprecated
{β : Type u_1} {α : Type u_2} [ord : Ord β] [Batteries.TransOrd β] (f : α → β) : Batteries.TransOrd α - Batteries.OrientedOrd.instOrdLex' 📋 Batteries.Classes.Deprecated
{α : Type u_1} (ord₁ ord₂ : Ord α) [Batteries.OrientedOrd α] [Batteries.OrientedOrd α] : Batteries.OrientedOrd α - Batteries.TransOrd.instOrdLex' 📋 Batteries.Classes.Deprecated
{α : Type u_1} (ord₁ ord₂ : Ord α) [Batteries.TransOrd α] [Batteries.TransOrd α] : Batteries.TransOrd α - Batteries.OrientedCmp.mk 📋 Batteries.Classes.Deprecated
{α : Sort u_1} {cmp : α → α → Ordering} (symm : ∀ (x y : α), (cmp x y).swap = cmp y x) : Batteries.OrientedCmp cmp - Batteries.OrientedCmp.symm 📋 Batteries.Classes.Deprecated
{α : Sort u_1} {cmp : α → α → Ordering} [self : Batteries.OrientedCmp cmp] (x y : α) : (cmp x y).swap = cmp y x - Batteries.LawfulCmp.toTransCmp 📋 Batteries.Classes.Deprecated
{α : Type u_1} {inst✝ : LE α} {inst✝¹ : LT α} {inst✝² : BEq α} {cmp : α → α → Ordering} [self : Batteries.LawfulCmp cmp] : Batteries.TransCmp cmp - Batteries.instOrientedCmpCompareLex 📋 Batteries.Classes.Deprecated
{α✝ : Sort u_1} {cmp₁ cmp₂ : α✝ → α✝ → Ordering} [inst₁ : Batteries.OrientedCmp cmp₁] [inst₂ : Batteries.OrientedCmp cmp₂] : Batteries.OrientedCmp (compareLex cmp₁ cmp₂) - Batteries.instTransCmpCompareLex 📋 Batteries.Classes.Deprecated
{α✝ : Sort u_1} {cmp₁ cmp₂ : α✝ → α✝ → Ordering} [inst₁ : Batteries.TransCmp cmp₁] [inst₂ : Batteries.TransCmp cmp₂] : Batteries.TransCmp (compareLex cmp₁ cmp₂) - Batteries.LawfulCmp.toBEqCmp 📋 Batteries.Classes.Deprecated
{α : Type u_1} {inst✝ : LE α} {inst✝¹ : LT α} {inst✝² : BEq α} {cmp : α → α → Ordering} [self : Batteries.LawfulCmp cmp] : Batteries.BEqCmp cmp - Batteries.LawfulCmp.toLECmp 📋 Batteries.Classes.Deprecated
{α : Type u_1} [LE α] [LT α] [BEq α] {cmp : α → α → Ordering} [self : Batteries.LawfulCmp cmp] : Batteries.LECmp cmp - Batteries.LawfulCmp.toLTCmp 📋 Batteries.Classes.Deprecated
{α : Type u_1} [LE α] [LT α] [BEq α] {cmp : α → α → Ordering} [self : Batteries.LawfulCmp cmp] : Batteries.LTCmp cmp - Batteries.OrientedCmp.gt_asymm 📋 Batteries.Classes.Deprecated
{α✝ : Sort u_1} {cmp : α✝ → α✝ → Ordering} {x y : α✝} [Batteries.OrientedCmp cmp] (h : cmp x y = Ordering.gt) : cmp y x ≠ Ordering.gt - Batteries.OrientedCmp.lt_asymm 📋 Batteries.Classes.Deprecated
{α✝ : Sort u_1} {cmp : α✝ → α✝ → Ordering} {x y : α✝} [Batteries.OrientedCmp cmp] (h : cmp x y = Ordering.lt) : cmp y x ≠ Ordering.lt - Batteries.OrientedOrd.instLexOrd 📋 Batteries.Classes.Deprecated
{α : Type u_1} {β : Type u_2} [Ord α] [Ord β] [Batteries.OrientedOrd α] [Batteries.OrientedOrd β] : Batteries.OrientedOrd (α × β) - Batteries.OrientedOrd.instOrdLex 📋 Batteries.Classes.Deprecated
{α : Type u_1} {β : Type u_2} [oα : Ord α] [oβ : Ord β] [Batteries.OrientedOrd α] [Batteries.OrientedOrd β] : Batteries.OrientedOrd (α × β) - Batteries.TransOrd.instLexOrd 📋 Batteries.Classes.Deprecated
{α : Type u_1} {β : Type u_2} [Ord α] [Ord β] [Batteries.TransOrd α] [Batteries.TransOrd β] : Batteries.TransOrd (α × β) - Batteries.TransOrd.instOrdLex 📋 Batteries.Classes.Deprecated
{α : Type u_1} {β : Type u_2} [oα : Ord α] [oβ : Ord β] [Batteries.TransOrd α] [Batteries.TransOrd β] : Batteries.TransOrd (α × β) - Batteries.OrientedCmp.cmp_eq_eq_symm 📋 Batteries.Classes.Deprecated
{α✝ : Sort u_1} {cmp : α✝ → α✝ → Ordering} {x y : α✝} [Batteries.OrientedCmp cmp] : cmp x y = Ordering.eq ↔ cmp y x = Ordering.eq - Batteries.OrientedCmp.cmp_eq_gt 📋 Batteries.Classes.Deprecated
{α✝ : Sort u_1} {cmp : α✝ → α✝ → Ordering} {x y : α✝} [Batteries.OrientedCmp cmp] : cmp x y = Ordering.gt ↔ cmp y x = Ordering.lt - Batteries.OrientedCmp.cmp_ne_gt 📋 Batteries.Classes.Deprecated
{α✝ : Sort u_1} {cmp : α✝ → α✝ → Ordering} {x y : α✝} [Batteries.OrientedCmp cmp] : cmp x y ≠ Ordering.gt ↔ cmp y x ≠ Ordering.lt - Batteries.TransCmp.cmp_congr_left' 📋 Batteries.Classes.Deprecated
{α✝ : Sort u_1} {cmp : α✝ → α✝ → Ordering} [Batteries.TransCmp cmp] {x y : α✝} (xy : cmp x y = Ordering.eq) : cmp x = cmp y - Batteries.LECmp.cmp_iff_ge 📋 Batteries.Classes.Deprecated
{α : Type u_1} {cmp : α → α → Ordering} {x y : α} [LE α] [Batteries.LECmp cmp] : cmp x y ≠ Ordering.lt ↔ y ≤ x - Batteries.LECmp.cmp_iff_le 📋 Batteries.Classes.Deprecated
{α : Type u_1} {inst✝ : LE α} {cmp : α → α → Ordering} [self : Batteries.LECmp cmp] {x y : α} : cmp x y ≠ Ordering.gt ↔ x ≤ y - Batteries.LTCmp.cmp_iff_gt 📋 Batteries.Classes.Deprecated
{α : Type u_1} {cmp : α → α → Ordering} {x y : α} [LT α] [Batteries.LTCmp cmp] : cmp x y = Ordering.gt ↔ y < x - Batteries.LTCmp.cmp_iff_lt 📋 Batteries.Classes.Deprecated
{α : Type u_1} {inst✝ : LT α} {cmp : α → α → Ordering} [self : Batteries.LTCmp cmp] {x y : α} : cmp x y = Ordering.lt ↔ x < y - Batteries.TransCmp.cmp_congr_left 📋 Batteries.Classes.Deprecated
{α✝ : Sort u_1} {cmp : α✝ → α✝ → Ordering} [Batteries.TransCmp cmp] {x y z : α✝} (xy : cmp x y = Ordering.eq) : cmp x z = cmp y z - Batteries.TransCmp.cmp_congr_right 📋 Batteries.Classes.Deprecated
{α✝ : Sort u_1} {cmp : α✝ → α✝ → Ordering} [Batteries.TransCmp cmp] {y z x : α✝} (yz : cmp y z = Ordering.eq) : cmp x y = cmp x z - Batteries.BEqCmp.cmp_iff_eq 📋 Batteries.Classes.Deprecated
{α : Type u_1} {cmp : α → α → Ordering} {x y : α} [BEq α] [LawfulBEq α] [Batteries.BEqCmp cmp] : cmp x y = Ordering.eq ↔ x = y - Batteries.BEqCmp.cmp_iff_beq 📋 Batteries.Classes.Deprecated
{α : Type u_1} {inst✝ : BEq α} {cmp : α → α → Ordering} [self : Batteries.BEqCmp cmp] {x y : α} : cmp x y = Ordering.eq ↔ (x == y) = true - Batteries.BEqCmp.mk 📋 Batteries.Classes.Deprecated
{α : Type u_1} [BEq α] {cmp : α → α → Ordering} (cmp_iff_beq : ∀ {x y : α}, cmp x y = Ordering.eq ↔ (x == y) = true) : Batteries.BEqCmp cmp - Batteries.LECmp.mk 📋 Batteries.Classes.Deprecated
{α : Type u_1} [LE α] {cmp : α → α → Ordering} [toOrientedCmp : Batteries.OrientedCmp cmp] (cmp_iff_le : ∀ {x y : α}, cmp x y ≠ Ordering.gt ↔ x ≤ y) : Batteries.LECmp cmp - Batteries.LTCmp.mk 📋 Batteries.Classes.Deprecated
{α : Type u_1} [LT α] {cmp : α → α → Ordering} [toOrientedCmp : Batteries.OrientedCmp cmp] (cmp_iff_lt : ∀ {x y : α}, cmp x y = Ordering.lt ↔ x < y) : Batteries.LTCmp cmp - Batteries.TransCmp.ge_trans 📋 Batteries.Classes.Deprecated
{α✝ : Sort u_1} {cmp : α✝ → α✝ → Ordering} [Batteries.TransCmp cmp] {x y z : α✝} (h₁ : cmp x y ≠ Ordering.lt) (h₂ : cmp y z ≠ Ordering.lt) : cmp x z ≠ Ordering.lt - Batteries.TransCmp.gt_trans 📋 Batteries.Classes.Deprecated
{α✝ : Sort u_1} {cmp : α✝ → α✝ → Ordering} [Batteries.TransCmp cmp] {x y z : α✝} (h₁ : cmp x y = Ordering.gt) (h₂ : cmp y z = Ordering.gt) : cmp x z = Ordering.gt - Batteries.TransCmp.le_lt_trans 📋 Batteries.Classes.Deprecated
{α✝ : Sort u_1} {cmp : α✝ → α✝ → Ordering} [Batteries.TransCmp cmp] {x y z : α✝} (h₁ : cmp x y ≠ Ordering.gt) (h₂ : cmp y z = Ordering.lt) : cmp x z = Ordering.lt - Batteries.TransCmp.le_trans 📋 Batteries.Classes.Deprecated
{α : Sort u_1} {cmp : α → α → Ordering} [self : Batteries.TransCmp cmp] {x y z : α} : cmp x y ≠ Ordering.gt → cmp y z ≠ Ordering.gt → cmp x z ≠ Ordering.gt - Batteries.TransCmp.lt_le_trans 📋 Batteries.Classes.Deprecated
{α✝ : Sort u_1} {cmp : α✝ → α✝ → Ordering} [Batteries.TransCmp cmp] {x y z : α✝} (h₁ : cmp x y = Ordering.lt) (h₂ : cmp y z ≠ Ordering.gt) : cmp x z = Ordering.lt - Batteries.TransCmp.lt_trans 📋 Batteries.Classes.Deprecated
{α✝ : Sort u_1} {cmp : α✝ → α✝ → Ordering} [Batteries.TransCmp cmp] {x y z : α✝} (h₁ : cmp x y = Ordering.lt) (h₂ : cmp y z = Ordering.lt) : cmp x z = Ordering.lt - Batteries.LawfulCmp.cmp_iff_le 📋 Batteries.Classes.Deprecated
{α : Type u_1} {inst✝ : LE α} {inst✝¹ : LT α} {inst✝² : BEq α} {cmp : α → α → Ordering} [self : Batteries.LawfulCmp cmp] {x y : α} : cmp x y ≠ Ordering.gt ↔ x ≤ y - Batteries.LawfulCmp.cmp_iff_lt 📋 Batteries.Classes.Deprecated
{α : Type u_1} {inst✝ : LE α} {inst✝¹ : LT α} {inst✝² : BEq α} {cmp : α → α → Ordering} [self : Batteries.LawfulCmp cmp] {x y : α} : cmp x y = Ordering.lt ↔ x < y - Batteries.TransCmp.mk 📋 Batteries.Classes.Deprecated
{α : Sort u_1} {cmp : α → α → Ordering} [toOrientedCmp : Batteries.OrientedCmp cmp] (le_trans : ∀ {x y z : α}, cmp x y ≠ Ordering.gt → cmp y z ≠ Ordering.gt → cmp x z ≠ Ordering.gt) : Batteries.TransCmp cmp - Batteries.BEqCmp.compareOfLessAndEq 📋 Batteries.Classes.Deprecated
{α : Type u_1} [LT α] [DecidableRel LT.lt] [DecidableEq α] [BEq α] [LawfulBEq α] (lt_irrefl : ∀ (x : α), ¬x < x) : Batteries.BEqCmp fun x1 x2 => compareOfLessAndEq x1 x2 - Batteries.LTCmp.eq_compareOfLessAndEq 📋 Batteries.Classes.Deprecated
{α : Type u_1} {cmp : α → α → Ordering} [LT α] [DecidableEq α] [BEq α] [LawfulBEq α] [Batteries.BEqCmp cmp] [Batteries.LTCmp cmp] (x y : α) [Decidable (x < y)] : cmp x y = compareOfLessAndEq x y - Batteries.LawfulCmp.mk 📋 Batteries.Classes.Deprecated
{α : Type u_1} [LE α] [LT α] [BEq α] {cmp : α → α → Ordering} [toTransCmp : Batteries.TransCmp cmp] [toBEqCmp : Batteries.BEqCmp cmp] (cmp_iff_lt : ∀ {x y : α}, cmp x y = Ordering.lt ↔ x < y) (cmp_iff_le : ∀ {x y : α}, cmp x y ≠ Ordering.gt ↔ x ≤ y) : Batteries.LawfulCmp cmp - Batteries.TransCmp.compareOfLessAndEq 📋 Batteries.Classes.Deprecated
{α : Type u_1} [LT α] [DecidableRel LT.lt] [DecidableEq α] (lt_irrefl : ∀ (x : α), ¬x < x) (lt_trans : ∀ {x y z : α}, x < y → y < z → x < z) (lt_antisymm : ∀ {x y : α}, ¬x < y → ¬y < x → x = y) : Batteries.TransCmp fun x1 x2 => compareOfLessAndEq x1 x2 - Batteries.LTCmp.compareOfLessAndEq 📋 Batteries.Classes.Deprecated
{α : Type u_1} [LT α] [DecidableRel LT.lt] [DecidableEq α] (lt_irrefl : ∀ (x : α), ¬x < x) (lt_trans : ∀ {x y z : α}, x < y → y < z → x < z) (lt_antisymm : ∀ {x y : α}, ¬x < y → ¬y < x → x = y) : Batteries.LTCmp fun x1 x2 => compareOfLessAndEq x1 x2 - Batteries.TransCmp.compareOfLessAndEq_of_le 📋 Batteries.Classes.Deprecated
{α : Type u_1} [LT α] [LE α] [DecidableRel LT.lt] [DecidableEq α] (lt_irrefl : ∀ (x : α), ¬x < x) (lt_trans : ∀ {x y z : α}, x < y → y < z → x < z) (not_lt : ∀ {x y : α}, ¬x < y → y ≤ x) (le_antisymm : ∀ {x y : α}, x ≤ y → y ≤ x → x = y) : Batteries.TransCmp fun x1 x2 => compareOfLessAndEq x1 x2 - Batteries.LTCmp.compareOfLessAndEq_of_le 📋 Batteries.Classes.Deprecated
{α : Type u_1} [LT α] [DecidableRel LT.lt] [DecidableEq α] [LE α] (lt_irrefl : ∀ (x : α), ¬x < x) (lt_trans : ∀ {x y z : α}, x < y → y < z → x < z) (not_lt : ∀ {x y : α}, ¬x < y → y ≤ x) (le_antisymm : ∀ {x y : α}, x ≤ y → y ≤ x → x = y) : Batteries.LTCmp fun x1 x2 => compareOfLessAndEq x1 x2 - Batteries.LECmp.compareOfLessAndEq 📋 Batteries.Classes.Deprecated
{α : Type u_1} [LT α] [DecidableRel LT.lt] [DecidableEq α] [LE α] (lt_irrefl : ∀ (x : α), ¬x < x) (lt_trans : ∀ {x y z : α}, x < y → y < z → x < z) (not_lt : ∀ {x y : α}, ¬x < y ↔ y ≤ x) (le_antisymm : ∀ {x y : α}, x ≤ y → y ≤ x → x = y) : Batteries.LECmp fun x1 x2 => compareOfLessAndEq x1 x2 - Batteries.LawfulCmp.compareOfLessAndEq 📋 Batteries.Classes.Deprecated
{α : Type u_1} [LT α] [DecidableRel LT.lt] [DecidableEq α] [BEq α] [LawfulBEq α] [LE α] (lt_irrefl : ∀ (x : α), ¬x < x) (lt_trans : ∀ {x y z : α}, x < y → y < z → x < z) (not_lt : ∀ {x y : α}, ¬x < y ↔ y ≤ x) (le_antisymm : ∀ {x y : α}, x ≤ y → y ≤ x → x = y) : Batteries.LawfulCmp fun x1 x2 => compareOfLessAndEq x1 x2 - Batteries.machineApplicableDeprecated 📋 Batteries.CodeAction.Deprecated
: Lean.TagDeclarationExtension - Batteries.CodeAction.deprecatedCodeActionProvider 📋 Batteries.CodeAction.Deprecated
: Lean.Server.CodeActionProvider - Batteries.Tactic.Alias.AliasInfo 📋 Batteries.Tactic.Alias
: Type - Batteries.Tactic.Alias.alias 📋 Batteries.Tactic.Alias
: Lean.ParserDescr - Batteries.Tactic.Alias.aliasLR 📋 Batteries.Tactic.Alias
: Lean.ParserDescr - Batteries.Tactic.Alias.instInhabitedAliasInfo 📋 Batteries.Tactic.Alias
: Inhabited Batteries.Tactic.Alias.AliasInfo - Batteries.Tactic.Alias.AliasInfo.forward 📋 Batteries.Tactic.Alias
(n : Lean.Name) : Batteries.Tactic.Alias.AliasInfo - Batteries.Tactic.Alias.AliasInfo.name 📋 Batteries.Tactic.Alias
: Batteries.Tactic.Alias.AliasInfo → Lean.Name - Batteries.Tactic.Alias.AliasInfo.plain 📋 Batteries.Tactic.Alias
(n : Lean.Name) : Batteries.Tactic.Alias.AliasInfo - Batteries.Tactic.Alias.AliasInfo.reverse 📋 Batteries.Tactic.Alias
(n : Lean.Name) : Batteries.Tactic.Alias.AliasInfo - Batteries.Tactic.Alias.AliasInfo.toString 📋 Batteries.Tactic.Alias
: Batteries.Tactic.Alias.AliasInfo → String - Batteries.Tactic.Alias.mkIffMpApp 📋 Batteries.Tactic.Alias
(mp : Bool) (ty prf : Lean.Expr) : Lean.MetaM Lean.Expr - Batteries.Tactic.Alias.aliasExt 📋 Batteries.Tactic.Alias
: Lean.SimpleScopedEnvExtension (Lean.Name × Batteries.Tactic.Alias.AliasInfo) (Lean.NameMap Batteries.Tactic.Alias.AliasInfo) - Batteries.Tactic.Alias.setDeprecatedTarget 📋 Batteries.Tactic.Alias
(target : Lean.Name) (arr : Array Lean.Elab.Attribute) : Array Lean.Elab.Attribute × Bool - Batteries.Tactic.Alias.setAliasInfo 📋 Batteries.Tactic.Alias
{m : Type → Type} [Lean.MonadEnv m] (info : Batteries.Tactic.Alias.AliasInfo) (declName : Lean.Name) : m Unit - Batteries.Tactic.Alias.getAliasInfo 📋 Batteries.Tactic.Alias
{m : Type → Type} [Monad m] [Lean.MonadEnv m] (name : Lean.Name) : m (Option Batteries.Tactic.Alias.AliasInfo) - Batteries.Tactic.Alias.AliasInfo.forward.injEq 📋 Batteries.Tactic.Alias
(n n✝ : Lean.Name) : (Batteries.Tactic.Alias.AliasInfo.forward n = Batteries.Tactic.Alias.AliasInfo.forward n✝) = (n = n✝) - Batteries.Tactic.Alias.AliasInfo.plain.injEq 📋 Batteries.Tactic.Alias
(n n✝ : Lean.Name) : (Batteries.Tactic.Alias.AliasInfo.plain n = Batteries.Tactic.Alias.AliasInfo.plain n✝) = (n = n✝) - Batteries.Tactic.Alias.AliasInfo.reverse.injEq 📋 Batteries.Tactic.Alias
(n n✝ : Lean.Name) : (Batteries.Tactic.Alias.AliasInfo.reverse n = Batteries.Tactic.Alias.AliasInfo.reverse n✝) = (n = n✝) - Batteries.Tactic.Alias.AliasInfo.forward.sizeOf_spec 📋 Batteries.Tactic.Alias
(n : Lean.Name) : sizeOf (Batteries.Tactic.Alias.AliasInfo.forward n) = 1 + sizeOf n - Batteries.Tactic.Alias.AliasInfo.plain.sizeOf_spec 📋 Batteries.Tactic.Alias
(n : Lean.Name) : sizeOf (Batteries.Tactic.Alias.AliasInfo.plain n) = 1 + sizeOf n - Batteries.Tactic.Alias.AliasInfo.reverse.sizeOf_spec 📋 Batteries.Tactic.Alias
(n : Lean.Name) : sizeOf (Batteries.Tactic.Alias.AliasInfo.reverse n) = 1 + sizeOf n - Batteries.CodeAction.TacticCodeAction 📋 Batteries.CodeAction.Attr
: Type - Batteries.CodeAction.TacticCodeActionEntry 📋 Batteries.CodeAction.Attr
: Type - Batteries.CodeAction.TacticCodeActions 📋 Batteries.CodeAction.Attr
: Type - Batteries.CodeAction.TacticSeqCodeAction 📋 Batteries.CodeAction.Attr
: Type - Batteries.CodeAction.tactic_code_action 📋 Batteries.CodeAction.Attr
: Lean.ParserDescr - Batteries.CodeAction.instInhabitedTacticCodeActionEntry 📋 Batteries.CodeAction.Attr
: Inhabited Batteries.CodeAction.TacticCodeActionEntry - Batteries.CodeAction.instInhabitedTacticCodeActions 📋 Batteries.CodeAction.Attr
: Inhabited Batteries.CodeAction.TacticCodeActions - Batteries.CodeAction.TacticCodeActionEntry.declName 📋 Batteries.CodeAction.Attr
(self : Batteries.CodeAction.TacticCodeActionEntry) : Lean.Name - Batteries.CodeAction.mkTacticCodeAction 📋 Batteries.CodeAction.Attr
(n : Lean.Name) : Lean.ImportM Batteries.CodeAction.TacticCodeAction - Batteries.CodeAction.mkTacticSeqCodeAction 📋 Batteries.CodeAction.Attr
(n : Lean.Name) : Lean.ImportM Batteries.CodeAction.TacticSeqCodeAction - Batteries.CodeAction.TacticCodeActionEntry.tacticKinds 📋 Batteries.CodeAction.Attr
(self : Batteries.CodeAction.TacticCodeActionEntry) : Array Lean.Name - Batteries.CodeAction.TacticCodeActions.onAnyTactic 📋 Batteries.CodeAction.Attr
(self : Batteries.CodeAction.TacticCodeActions) : Array Batteries.CodeAction.TacticCodeAction - Batteries.CodeAction.TacticCodeActionEntry.mk 📋 Batteries.CodeAction.Attr
(declName : Lean.Name) (tacticKinds : Array Lean.Name) : Batteries.CodeAction.TacticCodeActionEntry - Batteries.CodeAction.TacticCodeActions.onTactic 📋 Batteries.CodeAction.Attr
(self : Batteries.CodeAction.TacticCodeActions) : Lean.NameMap (Array Batteries.CodeAction.TacticCodeAction) - Batteries.CodeAction.TacticCodeActions.insert 📋 Batteries.CodeAction.Attr
(self : Batteries.CodeAction.TacticCodeActions) (tacticKinds : Array Lean.Name) (action : Batteries.CodeAction.TacticCodeAction) : Batteries.CodeAction.TacticCodeActions - Batteries.CodeAction.TacticCodeActions.mk 📋 Batteries.CodeAction.Attr
(onAnyTactic : Array Batteries.CodeAction.TacticCodeAction) (onTactic : Lean.NameMap (Array Batteries.CodeAction.TacticCodeAction)) : Batteries.CodeAction.TacticCodeActions - Batteries.CodeAction.mkTacticCodeAction.unsafe_1 📋 Batteries.CodeAction.Attr
(n : Lean.Name) (env : Lean.Environment) (opts : Lean.Options) : ExceptT String Id Batteries.CodeAction.TacticCodeAction - Batteries.CodeAction.mkTacticCodeAction.unsafe_impl_3 📋 Batteries.CodeAction.Attr
(n : Lean.Name) (env : Lean.Environment) (opts : Lean.Options) : ExceptT String Id Batteries.CodeAction.TacticCodeAction - Batteries.CodeAction.mkTacticSeqCodeAction.unsafe_1 📋 Batteries.CodeAction.Attr
(n : Lean.Name) (env : Lean.Environment) (opts : Lean.Options) : ExceptT String Id Batteries.CodeAction.TacticSeqCodeAction - Batteries.CodeAction.mkTacticSeqCodeAction.unsafe_impl_3 📋 Batteries.CodeAction.Attr
(n : Lean.Name) (env : Lean.Environment) (opts : Lean.Options) : ExceptT String Id Batteries.CodeAction.TacticSeqCodeAction - Batteries.CodeAction.tacticCodeActionExt 📋 Batteries.CodeAction.Attr
: Lean.PersistentEnvExtension Batteries.CodeAction.TacticCodeActionEntry (Batteries.CodeAction.TacticCodeActionEntry × Batteries.CodeAction.TacticCodeAction) (Array Batteries.CodeAction.TacticCodeActionEntry × Batteries.CodeAction.TacticCodeActions) - Batteries.CodeAction.tacticSeqCodeActionExt 📋 Batteries.CodeAction.Attr
: Lean.PersistentEnvExtension Lean.Name (Lean.Name × Batteries.CodeAction.TacticSeqCodeAction) (Array Lean.Name × Array Batteries.CodeAction.TacticSeqCodeAction) - Batteries.CodeAction.TacticCodeActionEntry.mk.injEq 📋 Batteries.CodeAction.Attr
(declName : Lean.Name) (tacticKinds : Array Lean.Name) (declName✝ : Lean.Name) (tacticKinds✝ : Array Lean.Name) : ({ declName := declName, tacticKinds := tacticKinds } = { declName := declName✝, tacticKinds := tacticKinds✝ }) = (declName = declName✝ ∧ tacticKinds = tacticKinds✝) - Batteries.CodeAction.TacticCodeActions.mk.injEq 📋 Batteries.CodeAction.Attr
(onAnyTactic : Array Batteries.CodeAction.TacticCodeAction) (onTactic : Lean.NameMap (Array Batteries.CodeAction.TacticCodeAction)) (onAnyTactic✝ : Array Batteries.CodeAction.TacticCodeAction) (onTactic✝ : Lean.NameMap (Array Batteries.CodeAction.TacticCodeAction)) : ({ onAnyTactic := onAnyTactic, onTactic := onTactic } = { onAnyTactic := onAnyTactic✝, onTactic := onTactic✝ }) = (onAnyTactic = onAnyTactic✝ ∧ onTactic = onTactic✝) - Batteries.CodeAction.TacticCodeActionEntry.mk.sizeOf_spec 📋 Batteries.CodeAction.Attr
(declName : Lean.Name) (tacticKinds : Array Lean.Name) : sizeOf { declName := declName, tacticKinds := tacticKinds } = 1 + sizeOf declName + sizeOf tacticKinds - Batteries.CodeAction.TacticCodeActions.mk.sizeOf_spec 📋 Batteries.CodeAction.Attr
(onAnyTactic : Array Batteries.CodeAction.TacticCodeAction) (onTactic : Lean.NameMap (Array Batteries.CodeAction.TacticCodeAction)) : sizeOf { onAnyTactic := onAnyTactic, onTactic := onTactic } = 1 + sizeOf onAnyTactic + sizeOf onTactic - Batteries.CodeAction.tacticCodeActionProvider 📋 Batteries.CodeAction.Basic
: Lean.Server.CodeActionProvider - Batteries.CodeAction.addSubgoalsAction 📋 Batteries.CodeAction.Misc
: Batteries.CodeAction.TacticCodeAction - Batteries.CodeAction.addSubgoalsSeqAction 📋 Batteries.CodeAction.Misc
: Batteries.CodeAction.TacticSeqCodeAction - Batteries.CodeAction.casesExpand 📋 Batteries.CodeAction.Misc
: Batteries.CodeAction.TacticCodeAction - Batteries.CodeAction.eqnStub 📋 Batteries.CodeAction.Misc
: Lean.CodeAction.HoleCodeAction - Batteries.CodeAction.instanceStub 📋 Batteries.CodeAction.Misc
: Lean.CodeAction.HoleCodeAction - Batteries.CodeAction.removeAfterDoneAction 📋 Batteries.CodeAction.Misc
: Batteries.CodeAction.TacticCodeAction - Batteries.CodeAction.startTacticStub 📋 Batteries.CodeAction.Misc
: Lean.CodeAction.HoleCodeAction - Batteries.CodeAction.holeKindToHoleString 📋 Batteries.CodeAction.Misc
(elaborator : Lean.Name) (synthName : String) : String - Batteries.CodeAction.findStack? 📋 Batteries.CodeAction.Misc
(root target : Lean.Syntax) : Option Lean.Syntax.Stack - Batteries.CodeAction.findTermInfo? 📋 Batteries.CodeAction.Misc
(node : Lean.Elab.InfoTree) (stx : Lean.Term) : Option Lean.Elab.TermInfo - Batteries.CodeAction.getExplicitArgs 📋 Batteries.CodeAction.Misc
: Lean.Expr → Array Lean.Name → Array Lean.Name - Batteries.CodeAction.instanceStub.isAutofillable 📋 Batteries.CodeAction.Misc
(env : Lean.Environment) (fieldInfo : Lean.StructureFieldInfo) (stack : List Lean.Name) : Bool - Batteries.CodeAction.getElimExprNames 📋 Batteries.CodeAction.Misc
(elimType : Lean.Expr) : Lean.MetaM (Array (Lean.Name × Array Lean.Name)) - Batteries.CodeAction.addSubgoalsActionCore 📋 Batteries.CodeAction.Misc
(params : Lean.Lsp.CodeActionParams) (i : ℕ) (stk : Lean.Syntax.Stack) (goals : List Lean.MVarId) : Lean.Server.RequestM (Array Lean.Server.LazyCodeAction) - Batteries.CodeAction.instanceStub.collectFields 📋 Batteries.CodeAction.Misc
(env : Lean.Environment) (structName : Lean.Name) (fields : Array (Lean.Name × Bool)) (stack : List Lean.Name) : Array (Lean.Name × Bool) - List.instInterOfBEq_batteries 📋 Batteries.Data.List.Basic
{α : Type u_1} [BEq α] : Inter (List α) - List.instUnionOfBEq_batteries 📋 Batteries.Data.List.Basic
{α : Type u_1} [BEq α] : Union (List α) - List.instStreamProdNat_batteries 📋 Batteries.Data.List.Matcher
(α : Type u_1) : Stream (List α × ℕ) α - Batteries.CodeAction.matchExpand 📋 Batteries.CodeAction.Match
: Lean.CodeAction.CommandCodeAction - Batteries.CodeAction.isMatchTerm 📋 Batteries.CodeAction.Match
: Lean.Elab.Info → Bool - Batteries.CodeAction.getMatchHeaderRange? 📋 Batteries.CodeAction.Match
(matchStx : Lean.Syntax) : Option String.Range - Batteries.CodeAction.findAllInfos 📋 Batteries.CodeAction.Match
(p : Lean.Elab.Info → Bool) (t : Lean.Elab.InfoTree) : Array Lean.Elab.Info
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 06e7f72
serving mathlib revision 3df560d