Loogle!
Result
Found 18 declarations mentioning FreeMonoid.map.
- FreeMonoid.map 📋 Mathlib.Algebra.FreeMonoid.Basic
{α : Type u_1} {β : Type u_2} (f : α → β) : FreeMonoid α →* FreeMonoid β - FreeMonoid.map_id 📋 Mathlib.Algebra.FreeMonoid.Basic
{α : Type u_1} : FreeMonoid.map id = MonoidHom.id (FreeMonoid α) - FreeMonoid.map_surjective 📋 Mathlib.Algebra.FreeMonoid.Basic
{α : Type u_1} {β : Type u_2} {f : α → β} : Function.Surjective ⇑(FreeMonoid.map f) ↔ Function.Surjective f - FreeMonoid.map_of 📋 Mathlib.Algebra.FreeMonoid.Basic
{α : Type u_1} {β : Type u_2} (f : α → β) (x : α) : (FreeMonoid.map f) (FreeMonoid.of x) = FreeMonoid.of (f x) - FreeMonoid.map_comp 📋 Mathlib.Algebra.FreeMonoid.Basic
{α : Type u_1} {β : Type u_2} {γ : Type u_3} (g : β → γ) (f : α → β) : FreeMonoid.map (g ∘ f) = (FreeMonoid.map g).comp (FreeMonoid.map f) - FreeMonoid.mem_map 📋 Mathlib.Algebra.FreeMonoid.Basic
{α : Type u_1} {β : Type u_2} {f : α → β} {a : FreeMonoid α} {m : β} : m ∈ (FreeMonoid.map f) a ↔ ∃ n ∈ a, f n = m - FreeMonoid.ofList_map 📋 Mathlib.Algebra.FreeMonoid.Basic
{α : Type u_1} {β : Type u_2} (f : α → β) (xs : List α) : FreeMonoid.ofList (List.map f xs) = (FreeMonoid.map f) (FreeMonoid.ofList xs) - FreeMonoid.toList_map 📋 Mathlib.Algebra.FreeMonoid.Basic
{α : Type u_1} {β : Type u_2} (f : α → β) (xs : FreeMonoid α) : FreeMonoid.toList ((FreeMonoid.map f) xs) = List.map f (FreeMonoid.toList xs) - FreeMonoid.lift_of_comp_eq_map 📋 Mathlib.Algebra.FreeMonoid.Basic
{α : Type u_1} {β : Type u_2} (f : α → β) : (FreeMonoid.lift fun x => FreeMonoid.of (f x)) = FreeMonoid.map f - FreeMonoid.map.eq_1 📋 Mathlib.Algebra.FreeMonoid.Basic
{α : Type u_1} {β : Type u_2} (f : α → β) : FreeMonoid.map f = { toFun := fun l => FreeMonoid.ofList (List.map f (FreeMonoid.toList l)), map_one' := ⋯, map_mul' := ⋯ } - FreeMonoid.map_apply_map_symm_eq 📋 Mathlib.Algebra.FreeMonoid.Basic
{α : Type u_1} {β : Type u_2} {x : FreeMonoid β} (e : α ≃ β) : (FreeMonoid.map ⇑e) ((FreeMonoid.map ⇑e.symm) x) = x - FreeMonoid.map_symm_apply_map_eq 📋 Mathlib.Algebra.FreeMonoid.Basic
{α : Type u_1} {β : Type u_2} {x : FreeMonoid α} (e : α ≃ β) : (FreeMonoid.map ⇑e.symm) ((FreeMonoid.map ⇑e) x) = x - FreeMonoid.map_map 📋 Mathlib.Algebra.FreeMonoid.Basic
{α : Type u_1} {β : Type u_2} {f : α → β} {α₁ : Type u_6} {g : α₁ → α} {x : FreeMonoid α₁} : (FreeMonoid.map f) ((FreeMonoid.map g) x) = (FreeMonoid.map (f ∘ g)) x - FreeMonoid.freeMonoidCongr.eq_1 📋 Mathlib.Algebra.FreeMonoid.Basic
{α : Type u_6} {β : Type u_7} (e : α ≃ β) : FreeMonoid.freeMonoidCongr e = { toFun := ⇑(FreeMonoid.map ⇑e), invFun := ⇑(FreeMonoid.map ⇑e.symm), left_inv := ⋯, right_inv := ⋯, map_mul' := ⋯ } - MonCat.free.eq_1 📋 Mathlib.Algebra.Category.MonCat.Adjunctions
: MonCat.free = { obj := fun α => MonCat.of (FreeMonoid α), map := fun {X Y} f => MonCat.ofHom (FreeMonoid.map f), map_id := MonCat.free._proof_15, map_comp := @MonCat.free._proof_16 } - Traversable.Free.map_eq_map 📋 Mathlib.Control.Fold
{α β : Type u} (f : α → β) (xs : List α) : f <$> xs = FreeMonoid.toList ((FreeMonoid.map f) (FreeMonoid.ofList xs)) - Monoid.Coprod.swap.eq_1 📋 Mathlib.GroupTheory.Coprod.Basic
(M : Type u_1) (N : Type u_2) [MulOneClass M] [MulOneClass N] : Monoid.Coprod.swap M N = Monoid.Coprod.clift (Monoid.Coprod.mk.comp (FreeMonoid.map Sum.swap)) ⋯ ⋯ ⋯ ⋯ - Monoid.Coprod.map.eq_1 📋 Mathlib.GroupTheory.Coprod.Basic
{M : Type u_1} {N : Type u_2} {M' : Type u_3} {N' : Type u_4} [MulOneClass M] [MulOneClass N] [MulOneClass M'] [MulOneClass N'] (f : M →* M') (g : N →* N') : Monoid.Coprod.map f g = Monoid.Coprod.clift (Monoid.Coprod.mk.comp (FreeMonoid.map (Sum.map ⇑f ⇑g))) ⋯ ⋯ ⋯ ⋯
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 bce1d65