Loogle!
Result
Found 19 declarations mentioning FreeAddMonoid.map.
- FreeAddMonoid.map 📋 Mathlib.Algebra.FreeMonoid.Basic
{α : Type u_1} {β : Type u_2} (f : α → β) : FreeAddMonoid α →+ FreeAddMonoid β - FreeAddMonoid.map_id 📋 Mathlib.Algebra.FreeMonoid.Basic
{α : Type u_1} : FreeAddMonoid.map id = AddMonoidHom.id (FreeAddMonoid α) - FreeAddMonoid.map_surjective 📋 Mathlib.Algebra.FreeMonoid.Basic
{α : Type u_1} {β : Type u_2} {f : α → β} : Function.Surjective ⇑(FreeAddMonoid.map f) ↔ Function.Surjective f - FreeAddMonoid.map_of 📋 Mathlib.Algebra.FreeMonoid.Basic
{α : Type u_1} {β : Type u_2} (f : α → β) (x : α) : (FreeAddMonoid.map f) (FreeAddMonoid.of x) = FreeAddMonoid.of (f x) - FreeAddMonoid.map_comp 📋 Mathlib.Algebra.FreeMonoid.Basic
{α : Type u_1} {β : Type u_2} {γ : Type u_3} (g : β → γ) (f : α → β) : FreeAddMonoid.map (g ∘ f) = (FreeAddMonoid.map g).comp (FreeAddMonoid.map f) - FreeAddMonoid.mem_map 📋 Mathlib.Algebra.FreeMonoid.Basic
{α : Type u_1} {β : Type u_2} {f : α → β} {a : FreeAddMonoid α} {m : β} : m ∈ (FreeAddMonoid.map f) a ↔ ∃ n ∈ a, f n = m - FreeAddMonoid.ofList_map 📋 Mathlib.Algebra.FreeMonoid.Basic
{α : Type u_1} {β : Type u_2} (f : α → β) (xs : List α) : FreeAddMonoid.ofList (List.map f xs) = (FreeAddMonoid.map f) (FreeAddMonoid.ofList xs) - FreeAddMonoid.toList_map 📋 Mathlib.Algebra.FreeMonoid.Basic
{α : Type u_1} {β : Type u_2} (f : α → β) (xs : FreeAddMonoid α) : FreeAddMonoid.toList ((FreeAddMonoid.map f) xs) = List.map f (FreeAddMonoid.toList xs) - FreeAddMonoid.lift_of_comp_eq_map 📋 Mathlib.Algebra.FreeMonoid.Basic
{α : Type u_1} {β : Type u_2} (f : α → β) : (FreeAddMonoid.lift fun x => FreeAddMonoid.of (f x)) = FreeAddMonoid.map f - FreeAddMonoid.map.eq_1 📋 Mathlib.Algebra.FreeMonoid.Basic
{α : Type u_1} {β : Type u_2} (f : α → β) : FreeAddMonoid.map f = { toFun := fun l => FreeAddMonoid.ofList (List.map f (FreeAddMonoid.toList l)), map_zero' := ⋯, map_add' := ⋯ } - FreeAddMonoid.map_apply_map_symm_eq 📋 Mathlib.Algebra.FreeMonoid.Basic
{α : Type u_1} {β : Type u_2} {x : FreeAddMonoid β} (e : α ≃ β) : (FreeAddMonoid.map ⇑e) ((FreeAddMonoid.map ⇑e.symm) x) = x - FreeAddMonoid.map_symm_apply_map_eq 📋 Mathlib.Algebra.FreeMonoid.Basic
{α : Type u_1} {β : Type u_2} {x : FreeAddMonoid α} (e : α ≃ β) : (FreeAddMonoid.map ⇑e.symm) ((FreeAddMonoid.map ⇑e) x) = x - FreeAddMonoid.map_map 📋 Mathlib.Algebra.FreeMonoid.Basic
{α : Type u_1} {β : Type u_2} {f : α → β} {α₁ : Type u_6} {g : α₁ → α} {x : FreeAddMonoid α₁} : (FreeAddMonoid.map f) ((FreeAddMonoid.map g) x) = (FreeAddMonoid.map (f ∘ g)) x - FreeAddMonoid.freeAddMonoidCongr.eq_1 📋 Mathlib.Algebra.FreeMonoid.Basic
{α : Type u_6} {β : Type u_7} (e : α ≃ β) : FreeAddMonoid.freeAddMonoidCongr e = { toFun := ⇑(FreeAddMonoid.map ⇑e), invFun := ⇑(FreeAddMonoid.map ⇑e.symm), left_inv := ⋯, right_inv := ⋯, map_add' := ⋯ } - AddMonCat.free.eq_1 📋 Mathlib.Algebra.Category.MonCat.Adjunctions
: AddMonCat.free = { obj := fun α => AddMonCat.of (FreeAddMonoid α), map := fun {X Y} f => AddMonCat.ofHom (FreeAddMonoid.map f), map_id := AddMonCat.free._proof_17, map_comp := @AddMonCat.free._proof_18 } - PiTensorProduct.lifts_smul 📋 Mathlib.LinearAlgebra.PiTensorProduct
{ι : Type u_1} {R : Type u_4} [CommSemiring R] {s : ι → Type u_7} [(i : ι) → AddCommMonoid (s i)] [(i : ι) → Module R (s i)] {x : PiTensorProduct R fun i => s i} {p : FreeAddMonoid (R × ((i : ι) → s i))} (h : p ∈ x.lifts) (a : R) : (FreeAddMonoid.map fun y => (a * y.1, y.2)) p ∈ (a • x).lifts - PiTensorProduct.projectiveSeminormAux_smul 📋 Mathlib.Analysis.NormedSpace.PiTensorProduct.ProjectiveSeminorm
{ι : Type uι} [Fintype ι] {𝕜 : Type u𝕜} [NontriviallyNormedField 𝕜] {E : ι → Type uE} [(i : ι) → SeminormedAddCommGroup (E i)] (p : FreeAddMonoid (𝕜 × ((i : ι) → E i))) (a : 𝕜) : PiTensorProduct.projectiveSeminormAux ((FreeAddMonoid.map fun y => (a * y.1, y.2)) p) = ‖a‖ * PiTensorProduct.projectiveSeminormAux p - AddMonoid.Coprod.swap.eq_1 📋 Mathlib.GroupTheory.Coprod.Basic
(M : Type u_1) (N : Type u_2) [AddZeroClass M] [AddZeroClass N] : AddMonoid.Coprod.swap M N = AddMonoid.Coprod.clift (AddMonoid.Coprod.mk.comp (FreeAddMonoid.map Sum.swap)) ⋯ ⋯ ⋯ ⋯ - AddMonoid.Coprod.map.eq_1 📋 Mathlib.GroupTheory.Coprod.Basic
{M : Type u_1} {N : Type u_2} {M' : Type u_3} {N' : Type u_4} [AddZeroClass M] [AddZeroClass N] [AddZeroClass M'] [AddZeroClass N'] (f : M →+ M') (g : N →+ N') : AddMonoid.Coprod.map f g = AddMonoid.Coprod.clift (AddMonoid.Coprod.mk.comp (FreeAddMonoid.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