Loogle!
Result
Found 6 declarations mentioning Exists and Quot.
- Quot.exists_rep π Init.Core
{Ξ± : Sort u} {r : Ξ± β Ξ± β Prop} (q : Quot r) : β a, Quot.mk r a = q - Std.Iterators.IterM.QuotStep.restrict π Std.Data.Iterators.Lemmas.Equivalence.StepCongr
{Ξ± : Type u_1} {m : Type u_1 β Type u_2} {Ξ² : Type u_1} [Std.Iterators.Iterator Ξ± m Ξ²] [Monad m] [LawfulMonad m] {it : Std.IterM m Ξ²} (step : { s // β s', s = (βs').bundledQuotient }) : it.QuotStep - Std.Iterators.IterM.Equiv.exists_step_of_step π Std.Data.Iterators.Lemmas.Equivalence.StepCongr
{Ξ±β : Type u_1} {m : Type u_1 β Type u_2} {Ξ² Ξ±β : Type u_1} [Std.Iterators.Iterator Ξ±β m Ξ²] [Std.Iterators.Iterator Ξ±β m Ξ²] [Monad m] [LawfulMonad m] {ita : Std.IterM m Ξ²} {itb : Std.IterM m Ξ²} (h : ita.Equiv itb) (s : ita.Step) : β s', (βs).bundledQuotient = (βs').bundledQuotient - Std.Iterators.IterStep.restrict_bundle π Std.Data.Iterators.Lemmas.Equivalence.StepCongr
{Ξ±β : Type u_1} {m : Type u_1 β Type u_2} {Ξ² Ξ±β : Type u_1} [Std.Iterators.Iterator Ξ±β m Ξ²] [Std.Iterators.Iterator Ξ±β m Ξ²] [Monad m] [LawfulMonad m] {ita : Std.IterM m Ξ²} {step : Std.Iterators.IterStep (Std.IterM m Ξ²) Ξ²} {h : β s, step.bundledQuotient = (βs).bundledQuotient} : Std.Iterators.IterM.QuotStep.restrict β¨step.bundledQuotient, hβ© = Quot.mk (fun sβ sβ => (βsβ).bundledQuotient = (βsβ).bundledQuotient) h.choose - Std.Iterators.IterM.QuotStep.transportAlongEquiv.eq_1 π Std.Data.Iterators.Lemmas.Equivalence.StepCongr
{Ξ±β : Type u_1} {m : Type u_1 β Type u_2} {Ξ² Ξ±β : Type u_1} [Std.Iterators.Iterator Ξ±β m Ξ²] [Std.Iterators.Iterator Ξ±β m Ξ²] [Monad m] [LawfulMonad m] {ita : Std.IterM m Ξ²} {itb : Std.IterM m Ξ²} (h : ita.Equiv itb) : Std.Iterators.IterM.QuotStep.transportAlongEquiv h = Quot.lift (fun sβ => have this := β―; Quot.mk (fun sβ sβ => (βsβ).bundledQuotient = (βsβ).bundledQuotient) this.choose) β― - Multiset.exists_multiset_eq_map_quot_mk π Mathlib.Data.Multiset.MapFold
{Ξ± : Type u_1} {r : Ξ± β Ξ± β Prop} (s : Multiset (Quot r)) : β t, s = Multiset.map (Quot.mk r) t
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 e086424
serving mathlib revision fd96d2d