Loogle!
Result
Found 19 declarations mentioning Relation.Map.
- Relation.Map 📋 Mathlib.Logic.Relation
{α : Type u_1} {β : Type u_2} {γ : Type u_3} {δ : Type u_4} (r : α → β → Prop) (f : α → γ) (g : β → δ) : γ → δ → Prop - Relation.map_id_id 📋 Mathlib.Logic.Relation
{α : Type u_1} {β : Type u_2} (r : α → β → Prop) : Relation.Map r id id = r - Relation.map_symmetric 📋 Mathlib.Logic.Relation
{α : Type u_1} {β : Type u_2} {r : α → α → Prop} (hr : Symmetric r) (f : α → β) : Symmetric (Relation.Map r f f) - Relation.map_reflexive 📋 Mathlib.Logic.Relation
{α : Type u_1} {β : Type u_2} {r : α → α → Prop} (hr : Reflexive r) {f : α → β} (hf : Function.Surjective f) : Reflexive (Relation.Map r f f) - Relation.map_transitive 📋 Mathlib.Logic.Relation
{α : Type u_1} {β : Type u_2} {r : α → α → Prop} (hr : Transitive r) {f : α → β} (hf : ∀ (x y : α), f x = f y → r x y) : Transitive (Relation.Map r f f) - Relation.map_equivalence 📋 Mathlib.Logic.Relation
{α : Type u_1} {β : Type u_2} {r : α → α → Prop} (hr : Equivalence r) (f : α → β) (hf : Function.Surjective f) (hf_ker : ∀ (x y : α), f x = f y → r x y) : Equivalence (Relation.Map r f f) - Relation.map_apply_apply 📋 Mathlib.Logic.Relation
{α : Type u_1} {β : Type u_2} {γ : Type u_3} {δ : Type u_4} {f : α → γ} {g : β → δ} (hf : Function.Injective f) (hg : Function.Injective g) (r : α → β → Prop) (a : α) (b : β) : Relation.Map r f g (f a) (g b) ↔ r a b - Relation.map_mono 📋 Mathlib.Logic.Relation
{α : Type u_1} {β : Type u_2} {γ : Type u_3} {δ : Type u_4} {r s : α → β → Prop} {f : α → γ} {g : β → δ} (h : ∀ (x : α) (y : β), r x y → s x y) (x : γ) (y : δ) : Relation.Map r f g x y → Relation.Map s f g x y - Relation.map_apply 📋 Mathlib.Logic.Relation
{α : Type u_1} {β : Type u_2} {γ : Type u_3} {δ : Type u_4} {r : α → β → Prop} {f : α → γ} {g : β → δ} {c : γ} {d : δ} : Relation.Map r f g c d ↔ ∃ a b, r a b ∧ f a = c ∧ g b = d - Relation.instDecidableMapOfExistsAndEq 📋 Mathlib.Logic.Relation
{α : Type u_1} {β : Type u_2} {γ : Type u_3} {δ : Type u_4} {r : α → β → Prop} {f : α → γ} {g : β → δ} {c : γ} {d : δ} [Decidable (∃ a b, r a b ∧ f a = c ∧ g b = d)] : Decidable (Relation.Map r f g c d) - Relation.Map.eq_1 📋 Mathlib.Logic.Relation
{α : Type u_1} {β : Type u_2} {γ : Type u_3} {δ : Type u_4} (r : α → β → Prop) (f : α → γ) (g : β → δ) (c : γ) (d : δ) : Relation.Map r f g c d = ∃ a b, r a b ∧ f a = c ∧ g b = d - Relation.map_map 📋 Mathlib.Logic.Relation
{α : Type u_1} {β : Type u_2} {γ : Type u_3} {δ : Type u_4} {ε : Type u_5} {ζ : Type u_6} (r : α → β → Prop) (f₁ : α → γ) (g₁ : β → δ) (f₂ : γ → ε) (g₂ : δ → ζ) : Relation.Map (Relation.Map r f₁ g₁) f₂ g₂ = Relation.Map r (f₂ ∘ f₁) (g₂ ∘ g₁) - AddCon.mapGen.eq_1 📋 Mathlib.GroupTheory.Congruence.Hom
{M : Type u_1} {N : Type u_2} [Add M] [Add N] {c : AddCon M} (f : M → N) : AddCon.mapGen f = addConGen (Relation.Map (⇑c) f f) - Con.mapGen.eq_1 📋 Mathlib.GroupTheory.Congruence.Hom
{M : Type u_1} {N : Type u_2} [Mul M] [Mul N] {c : Con M} (f : M → N) : Con.mapGen f = conGen (Relation.Map (⇑c) f f) - Sym2.fromRel_relationMap 📋 Mathlib.Data.Sym.Sym2
{α : Type u_1} {β : Type u_2} {r : α → α → Prop} (hr : Symmetric r) (f : α → β) : Sym2.fromRel ⋯ = Sym2.map f '' Sym2.fromRel hr - SimpleGraph.instDecidableMapAdj 📋 Mathlib.Combinatorics.SimpleGraph.Maps
{V : Type u_1} {W : Type u_2} (G : SimpleGraph V) {f : V ↪ W} {a b : W} [Decidable (Relation.Map G.Adj (⇑f) (⇑f) a b)] : Decidable ((SimpleGraph.map f G).Adj a b) - SimpleGraph.Subgraph.map_adj 📋 Mathlib.Combinatorics.SimpleGraph.Subgraph
{V : Type u} {W : Type v} {G : SimpleGraph V} {G' : SimpleGraph W} (f : G →g G') (H : G.Subgraph) (a✝ a✝¹ : W) : (SimpleGraph.Subgraph.map f H).Adj a✝ a✝¹ = Relation.Map H.Adj (⇑f) (⇑f) a✝ a✝¹ - SimpleGraph.Subgraph.map.eq_1 📋 Mathlib.Combinatorics.SimpleGraph.Subgraph
{V : Type u} {W : Type v} {G : SimpleGraph V} {G' : SimpleGraph W} (f : G →g G') (H : G.Subgraph) : SimpleGraph.Subgraph.map f H = { verts := ⇑f '' H.verts, Adj := Relation.Map H.Adj ⇑f ⇑f, adj_sub := ⋯, edge_vert := ⋯, symm := ⋯ } - RingCon.coe_ofMatrix_eq_relationMap 📋 Mathlib.LinearAlgebra.Matrix.Ideal
{R : Type u_1} {n : Type u_2} [NonAssocSemiring R] [Fintype n] [DecidableEq n] {c : RingCon (Matrix n n R)} (i j : n) : ⇑c.ofMatrix = Relation.Map (⇑c) (fun x => x i j) fun x => x i j
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