Loogle!
Result
Found 124 declarations mentioning SimpleGraph.Walk.edges.
- SimpleGraph.Walk.edges š Mathlib.Combinatorics.SimpleGraph.Walk.Basic
{V : Type u} {G : SimpleGraph V} {u v : V} (p : G.Walk u v) : List (Sym2 V) - SimpleGraph.Walk.edges_injective š Mathlib.Combinatorics.SimpleGraph.Walk.Basic
{V : Type u} {G : SimpleGraph V} {u v : V} : Function.Injective SimpleGraph.Walk.edges - SimpleGraph.Walk.edges_nil š Mathlib.Combinatorics.SimpleGraph.Walk.Basic
{V : Type u} {G : SimpleGraph V} {u : V} : SimpleGraph.Walk.nil.edges = [] - SimpleGraph.Walk.length_edges š Mathlib.Combinatorics.SimpleGraph.Walk.Basic
{V : Type u} {G : SimpleGraph V} {u v : V} (p : G.Walk u v) : p.edges.length = p.length - SimpleGraph.Walk.edges_eq_nil š Mathlib.Combinatorics.SimpleGraph.Walk.Basic
{V : Type u} {G : SimpleGraph V} {v w : V} {p : G.Walk v w} : p.edges = [] ā p.Nil - SimpleGraph.Adj.edges_toWalk š Mathlib.Combinatorics.SimpleGraph.Walk.Basic
{V : Type u} {G : SimpleGraph V} {u v : V} (h : G.Adj u v) : h.toWalk.edges = [s(u, v)] - SimpleGraph.Walk.edges_eq_map_darts š Mathlib.Combinatorics.SimpleGraph.Walk.Basic
{V : Type u} {G : SimpleGraph V} {u v : V} (p : G.Walk u v) : p.edges = List.map SimpleGraph.Dart.edge p.darts - SimpleGraph.Walk.adj_of_mem_edges š Mathlib.Combinatorics.SimpleGraph.Walk.Basic
{V : Type u} {G : SimpleGraph V} {u v x y : V} (p : G.Walk u v) (h : s(x, y) ā p.edges) : G.Adj x y - SimpleGraph.Walk.edges_subset_edgeSet š Mathlib.Combinatorics.SimpleGraph.Walk.Basic
{V : Type u} {G : SimpleGraph V} {u v : V} (p : G.Walk u v) ā¦e : Sym2 V⦠: e ā p.edges ā e ā G.edgeSet - SimpleGraph.Walk.edges_eq_zipWith_support š Mathlib.Combinatorics.SimpleGraph.Walk.Basic
{V : Type u} {G : SimpleGraph V} {u v : V} {p : G.Walk u v} : p.edges = List.zipWith (fun x1 x2 => s(x1, x2)) p.support p.support.tail - SimpleGraph.Walk.mem_edgeSet š Mathlib.Combinatorics.SimpleGraph.Walk.Basic
{V : Type u} {G : SimpleGraph V} {u v : V} {p : G.Walk u v} {e : Sym2 V} : e ā p.edgeSet ā e ā p.edges - SimpleGraph.Walk.edges_cons š Mathlib.Combinatorics.SimpleGraph.Walk.Basic
{V : Type u} {G : SimpleGraph V} {u v w : V} (h : G.Adj u v) (p : G.Walk v w) : (SimpleGraph.Walk.cons h p).edges = s(u, v) :: p.edges - SimpleGraph.Walk.coe_edges_toFinset š Mathlib.Combinatorics.SimpleGraph.Walk.Basic
{V : Type u} {G : SimpleGraph V} [DecidableEq V] {u v : V} (p : G.Walk u v) : āp.edges.toFinset = p.edgeSet - SimpleGraph.Walk.mem_support_iff_exists_mem_edges š Mathlib.Combinatorics.SimpleGraph.Walk.Basic
{V : Type u} {G : SimpleGraph V} {u v w : V} {p : G.Walk u v} : w ā p.support ā w = v ⨠ā e ā p.edges, w ā e - SimpleGraph.Walk.mem_support_iff_exists_mem_edges_of_not_nil š Mathlib.Combinatorics.SimpleGraph.Walk.Basic
{V : Type u} {G : SimpleGraph V} {u v w : V} {p : G.Walk u v} (hnil : ¬p.Nil) : w ā p.support ā ā e ā p.edges, w ā e - SimpleGraph.Walk.edges_ofDarts š Mathlib.Combinatorics.SimpleGraph.Walk.Basic
{V : Type u} {G : SimpleGraph V} {l : List G.Dart} (hne : l ā []) (hchain : List.IsChain G.DartAdj l) : (SimpleGraph.Walk.ofDarts l hne hchain).edges = List.map SimpleGraph.Dart.edge l - SimpleGraph.Walk.getElem_edges_eq_edge_getElem_darts š Mathlib.Combinatorics.SimpleGraph.Walk.Basic
{V : Type u} {G : SimpleGraph V} {u v : V} {p : G.Walk u v} {i : ā} (h : i < p.edges.length) : p.edges[i] = p.darts[i].edge - SimpleGraph.Walk.edge_getElem_darts š Mathlib.Combinatorics.SimpleGraph.Walk.Basic
{V : Type u} {G : SimpleGraph V} {u v : V} {p : G.Walk u v} {i : ā} (h : i < p.darts.length) : p.darts[i].edge = p.edges[i] - SimpleGraph.Walk.mk_penultimate_end_mem_edges š Mathlib.Combinatorics.SimpleGraph.Walk.Traversal
{V : Type u} {G : SimpleGraph V} {v w : V} {p : G.Walk v w} (hnil : ¬p.Nil) : s(p.penultimate, w) ā p.edges - SimpleGraph.Walk.mk_start_snd_mem_edges š Mathlib.Combinatorics.SimpleGraph.Walk.Traversal
{V : Type u} {G : SimpleGraph V} {v w : V} {p : G.Walk v w} (hnil : ¬p.Nil) : s(v, p.snd) ā p.edges - SimpleGraph.Walk.getLast_edges_eq_mk_penultimate_end š Mathlib.Combinatorics.SimpleGraph.Walk.Traversal
{V : Type u} {G : SimpleGraph V} {v w : V} {p : G.Walk v w} (hp : p.edges ā []) : p.edges.getLast hp = s(p.penultimate, w) - SimpleGraph.Walk.head_edges_eq_mk_start_snd š Mathlib.Combinatorics.SimpleGraph.Walk.Traversal
{V : Type u} {G : SimpleGraph V} {v w : V} {p : G.Walk v w} (hp : p.edges ā []) : p.edges.head hp = s(v, p.snd) - SimpleGraph.Walk.mk_mem_edges_iff_exists š Mathlib.Combinatorics.SimpleGraph.Walk.Traversal
{V : Type u} {G : SimpleGraph V} {u v u' v' : V} (p : G.Walk u v) : s(u', v') ā p.edges ā ā i < p.length, s(p.getVert i, p.getVert (i + 1)) = s(u', v') - SimpleGraph.Walk.getElem_edges š Mathlib.Combinatorics.SimpleGraph.Walk.Traversal
{V : Type u} {G : SimpleGraph V} {u v : V} {p : G.Walk u v} {i : ā} (h : i < p.edges.length) : p.edges[i] = s(p.getVert i, p.getVert (i + 1)) - SimpleGraph.Walk.mk_penultimate_end_eq_getLast_edges š Mathlib.Combinatorics.SimpleGraph.Walk.Traversal
{V : Type u} {G : SimpleGraph V} {v w : V} {p : G.Walk v w} (hnil : ¬p.Nil) : s(p.penultimate, w) = p.edges.getLast ⯠- SimpleGraph.Walk.mk_start_snd_eq_head_edges š Mathlib.Combinatorics.SimpleGraph.Walk.Traversal
{V : Type u} {G : SimpleGraph V} {v w : V} {p : G.Walk v w} (hnil : ¬p.Nil) : s(v, p.snd) = p.edges.head ⯠- SimpleGraph.Walk.edges_nodup_of_support_nodup š Mathlib.Combinatorics.SimpleGraph.Walk.Operations
{V : Type u} {G : SimpleGraph V} {u v : V} {p : G.Walk u v} (h : p.support.Nodup) : p.edges.Nodup - SimpleGraph.Walk.edges_reverse š Mathlib.Combinatorics.SimpleGraph.Walk.Operations
{V : Type u} {G : SimpleGraph V} {u v : V} (p : G.Walk u v) : p.reverse.edges = p.edges.reverse - SimpleGraph.Walk.edges_dropLast š Mathlib.Combinatorics.SimpleGraph.Walk.Operations
{V : Type u} {G : SimpleGraph V} {u v : V} {p : G.Walk u v} : p.dropLast.edges = p.edges.dropLast - SimpleGraph.Walk.edges_tail š Mathlib.Combinatorics.SimpleGraph.Walk.Operations
{V : Type u} {G : SimpleGraph V} {u v : V} {p : G.Walk u v} : p.tail.edges = p.edges.tail - SimpleGraph.Walk.edges_drop š Mathlib.Combinatorics.SimpleGraph.Walk.Operations
{V : Type u} {G : SimpleGraph V} {u v : V} (p : G.Walk u v) (n : ā) : (p.drop n).edges = List.drop n p.edges - SimpleGraph.Walk.edges_take š Mathlib.Combinatorics.SimpleGraph.Walk.Operations
{V : Type u} {G : SimpleGraph V} {u v : V} (p : G.Walk u v) (n : ā) : (p.take n).edges = List.take n p.edges - SimpleGraph.Walk.fst_mem_support_of_mem_edges š Mathlib.Combinatorics.SimpleGraph.Walk.Operations
{V : Type u} {G : SimpleGraph V} {t u v w : V} (p : G.Walk v w) (he : s(t, u) ā p.edges) : t ā p.support - SimpleGraph.Walk.snd_mem_support_of_mem_edges š Mathlib.Combinatorics.SimpleGraph.Walk.Operations
{V : Type u} {G : SimpleGraph V} {t u v w : V} (p : G.Walk v w) (he : s(t, u) ā p.edges) : u ā p.support - SimpleGraph.Walk.edges_copy š Mathlib.Combinatorics.SimpleGraph.Walk.Operations
{V : Type u} {G : SimpleGraph V} {u v u' v' : V} (p : G.Walk u v) (hu : u = u') (hv : v = v') : (p.copy hu hv).edges = p.edges - SimpleGraph.Walk.edges_concat š Mathlib.Combinatorics.SimpleGraph.Walk.Operations
{V : Type u} {G : SimpleGraph V} {u v w : V} (p : G.Walk u v) (h : G.Adj v w) : (p.concat h).edges = p.edges.concat s(v, w) - SimpleGraph.Walk.mem_support_of_mem_edges š Mathlib.Combinatorics.SimpleGraph.Walk.Operations
{V : Type u} {G : SimpleGraph V} {u v w : V} {e : Sym2 V} {p : G.Walk u v} (he : e ā p.edges) (hv : w ā e) : w ā p.support - SimpleGraph.Walk.edges_append š Mathlib.Combinatorics.SimpleGraph.Walk.Operations
{V : Type u} {G : SimpleGraph V} {u v w : V} (p : G.Walk u v) (p' : G.Walk v w) : (p.append p').edges = p.edges ++ p'.edges - SimpleGraph.Walk.edges_mapLe_eq_edges š Mathlib.Combinatorics.SimpleGraph.Walk.Maps
{V : Type u} {G G' : SimpleGraph V} (h : G ⤠G') {u v : V} (p : G.Walk u v) : (SimpleGraph.Walk.mapLe h p).edges = p.edges - SimpleGraph.Walk.toDeleteEdge š Mathlib.Combinatorics.SimpleGraph.Walk.Maps
{V : Type u} {G : SimpleGraph V} {v w : V} (e : Sym2 V) (p : G.Walk v w) (hp : e ā p.edges) : (G.deleteEdges {e}).Walk v w - SimpleGraph.Walk.transfer š Mathlib.Combinatorics.SimpleGraph.Walk.Maps
{V : Type u} {G : SimpleGraph V} {u v : V} (p : G.Walk u v) (H : SimpleGraph V) (h : ā e ā p.edges, e ā H.edgeSet) : H.Walk u v - SimpleGraph.Walk.toDeleteEdges š Mathlib.Combinatorics.SimpleGraph.Walk.Maps
{V : Type u} {G : SimpleGraph V} (s : Set (Sym2 V)) {v w : V} (p : G.Walk v w) (hp : ā e ā p.edges, e ā s) : (G.deleteEdges s).Walk v w - SimpleGraph.Walk.length_transfer š Mathlib.Combinatorics.SimpleGraph.Walk.Maps
{V : Type u} {G : SimpleGraph V} {u v : V} (p : G.Walk u v) {H : SimpleGraph V} (hp : ā e ā p.edges, e ā H.edgeSet) : (p.transfer H hp).length = p.length - SimpleGraph.Walk.support_transfer š Mathlib.Combinatorics.SimpleGraph.Walk.Maps
{V : Type u} {G : SimpleGraph V} {u v : V} (p : G.Walk u v) {H : SimpleGraph V} (hp : ā e ā p.edges, e ā H.edgeSet) : (p.transfer H hp).support = p.support - SimpleGraph.Walk.edgeSet_transfer š Mathlib.Combinatorics.SimpleGraph.Walk.Maps
{V : Type u} {G : SimpleGraph V} {u v : V} (p : G.Walk u v) {H : SimpleGraph V} (hp : ā e ā p.edges, e ā H.edgeSet) : (p.transfer H hp).edgeSet = p.edgeSet - SimpleGraph.Walk.edges_transfer š Mathlib.Combinatorics.SimpleGraph.Walk.Maps
{V : Type u} {G : SimpleGraph V} {u v : V} (p : G.Walk u v) {H : SimpleGraph V} (hp : ā e ā p.edges, e ā H.edgeSet) : (p.transfer H hp).edges = p.edges - SimpleGraph.Walk.toDeleteEdges_nil š Mathlib.Combinatorics.SimpleGraph.Walk.Maps
{V : Type u} {G : SimpleGraph V} (s : Set (Sym2 V)) {v : V} (hp : ā e ā SimpleGraph.Walk.nil.edges, e ā s) : SimpleGraph.Walk.toDeleteEdges s SimpleGraph.Walk.nil hp = SimpleGraph.Walk.nil - SimpleGraph.Walk.transfer_eq_map_ofLE š Mathlib.Combinatorics.SimpleGraph.Walk.Maps
{V : Type u} {G : SimpleGraph V} {u v : V} (p : G.Walk u v) {H : SimpleGraph V} (hp : ā e ā p.edges, e ā H.edgeSet) (GH : G ⤠H) : p.transfer H hp = SimpleGraph.Walk.map (SimpleGraph.Hom.ofLE GH) p - SimpleGraph.Walk.reverse_transfer š Mathlib.Combinatorics.SimpleGraph.Walk.Maps
{V : Type u} {G : SimpleGraph V} {u v : V} (p : G.Walk u v) {H : SimpleGraph V} (hp : ā e ā p.edges, e ā H.edgeSet) : (p.transfer H hp).reverse = p.reverse.transfer H ⯠- SimpleGraph.Walk.edges_map š Mathlib.Combinatorics.SimpleGraph.Walk.Maps
{V : Type u} {V' : Type v} {G : SimpleGraph V} {G' : SimpleGraph V'} (f : G āg G') {u v : V} (p : G.Walk u v) : (SimpleGraph.Walk.map f p).edges = List.map (Sym2.map āf) p.edges - SimpleGraph.Walk.map_toDeleteEdges_eq š Mathlib.Combinatorics.SimpleGraph.Walk.Maps
{V : Type u} {G : SimpleGraph V} {v w : V} (s : Set (Sym2 V)) {p : G.Walk v w} (hp : ā e ā p.edges, e ā s) : SimpleGraph.Walk.map (SimpleGraph.Hom.ofLE āÆ) (SimpleGraph.Walk.toDeleteEdges s p hp) = p - SimpleGraph.Walk.transfer_append š Mathlib.Combinatorics.SimpleGraph.Walk.Maps
{V : Type u} {G : SimpleGraph V} {u v : V} (p : G.Walk u v) {H : SimpleGraph V} {w : V} (q : G.Walk v w) (hpq : ā e ā (p.append q).edges, e ā H.edgeSet) : (p.append q).transfer H hpq = (p.transfer H āÆ).append (q.transfer H āÆ) - SimpleGraph.Walk.transfer_transfer š Mathlib.Combinatorics.SimpleGraph.Walk.Maps
{V : Type u} {G : SimpleGraph V} {u v : V} (p : G.Walk u v) {H : SimpleGraph V} (hp : ā e ā p.edges, e ā H.edgeSet) {K : SimpleGraph V} (hp' : ā e ā (p.transfer H hp).edges, e ā K.edgeSet) : (p.transfer H hp).transfer K hp' = p.transfer K ⯠- SimpleGraph.Walk.toDeleteEdges_cons š Mathlib.Combinatorics.SimpleGraph.Walk.Maps
{V : Type u} {G : SimpleGraph V} (s : Set (Sym2 V)) {u v w : V} (h : G.Adj u v) (p : G.Walk v w) (hp : ā e ā (SimpleGraph.Walk.cons h p).edges, e ā s) : SimpleGraph.Walk.toDeleteEdges s (SimpleGraph.Walk.cons h p) hp = SimpleGraph.Walk.cons ⯠(SimpleGraph.Walk.toDeleteEdges s p āÆ) - SimpleGraph.Walk.IsSubwalk.edges_isInfix š Mathlib.Combinatorics.SimpleGraph.Walk.Subwalks
{V : Type u_1} {G : SimpleGraph V} {u v u' v' : V} {pā : G.Walk u v} {pā : G.Walk u' v'} (h : pā.IsSubwalk pā) : pā.edges <:+: pā.edges - SimpleGraph.Walk.IsSubwalk.edges_subset š Mathlib.Combinatorics.SimpleGraph.Walk.Subwalks
{V : Type u_1} {G : SimpleGraph V} {u v u' v' : V} {pā : G.Walk u v} {pā : G.Walk u' v'} (h : pā.IsSubwalk pā) : pā.edges ā pā.edges - SimpleGraph.Walk.infix_support_iff_mem_edges š Mathlib.Combinatorics.SimpleGraph.Walk.Subwalks
{V : Type u_1} {G : SimpleGraph V} {u v u' v' : V} {p : G.Walk u v} : [u', v'] <:+: p.support ⨠[v', u'] <:+: p.support ā s(u', v') ā p.edges - SimpleGraph.Walk.isSubwalk_toWalk_iff_mem_edges š Mathlib.Combinatorics.SimpleGraph.Walk.Subwalks
{V : Type u_1} {G : SimpleGraph V} {u v u' v' : V} {p : G.Walk u v} (h : G.Adj u' v') : h.toWalk.IsSubwalk p ⨠āÆ.toWalk.IsSubwalk p ā s(u', v') ā p.edges - SimpleGraph.Walk.rotate_edges š Mathlib.Combinatorics.SimpleGraph.Walk.Decomp
{V : Type u} {G : SimpleGraph V} {v : V} [DecidableEq V] (c : G.Walk v v) (u : V) (h : u ā c.support) : (c.rotate u h).edges ~r c.edges - SimpleGraph.Walk.edges_dropUntil_suffix_edges š Mathlib.Combinatorics.SimpleGraph.Walk.Decomp
{V : Type u} {G : SimpleGraph V} {v w u : V} [DecidableEq V] (p : G.Walk v w) (h : u ā p.support) : (p.dropUntil u h).edges <:+ p.edges - SimpleGraph.Walk.edges_takeUntil_prefix_edges š Mathlib.Combinatorics.SimpleGraph.Walk.Decomp
{V : Type u} {G : SimpleGraph V} {v w u : V} [DecidableEq V] (p : G.Walk v w) (h : u ā p.support) : (p.takeUntil u h).edges <+: p.edges - SimpleGraph.Walk.edges_dropUntil_subset š Mathlib.Combinatorics.SimpleGraph.Walk.Decomp
{V : Type u} {G : SimpleGraph V} {v w u : V} [DecidableEq V] (p : G.Walk v w) (h : u ā p.support) : (p.dropUntil u h).edges ā p.edges - SimpleGraph.Walk.edges_dropUntil_subset_edges š Mathlib.Combinatorics.SimpleGraph.Walk.Decomp
{V : Type u} {G : SimpleGraph V} {v w u : V} [DecidableEq V] (p : G.Walk v w) (h : u ā p.support) : (p.dropUntil u h).edges ā p.edges - SimpleGraph.Walk.edges_takeUntil_subset š Mathlib.Combinatorics.SimpleGraph.Walk.Decomp
{V : Type u} {G : SimpleGraph V} {v w u : V} [DecidableEq V] (p : G.Walk v w) (h : u ā p.support) : (p.takeUntil u h).edges ā p.edges - SimpleGraph.Walk.edges_takeUntil_subset_edges š Mathlib.Combinatorics.SimpleGraph.Walk.Decomp
{V : Type u} {G : SimpleGraph V} {v w u : V} [DecidableEq V] (p : G.Walk v w) (h : u ā p.support) : (p.takeUntil u h).edges ā p.edges - SimpleGraph.Walk.count_edges_takeUntil_le_one š Mathlib.Combinatorics.SimpleGraph.Walk.Decomp
{V : Type u} {G : SimpleGraph V} [DecidableEq V] {u v w : V} (p : G.Walk v w) (h : u ā p.support) (x : V) : List.count s(u, x) (p.takeUntil u h).edges ⤠1 - SimpleGraph.Walk.IsTrail.edges_nodup š Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} {p : G.Walk u v} (self : p.IsTrail) : p.edges.Nodup - SimpleGraph.Walk.IsTrail.mk š Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} {p : G.Walk u v} (edges_nodup : p.edges.Nodup) : p.IsTrail - SimpleGraph.Walk.isTrail_def š Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} (p : G.Walk u v) : p.IsTrail ā p.edges.Nodup - SimpleGraph.Walk.edges_cycleBypass_sublist_edges š Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {v : V} [DecidableEq V] (w : G.Walk v v) : w.cycleBypass.edges.Sublist w.edges - SimpleGraph.Walk.edges_bypass_sublist_edges š Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} [DecidableEq V] (p : G.Walk u v) : p.bypass.edges.Sublist p.edges - SimpleGraph.Walk.edges_cycleBypass_subset š Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {v : V} [DecidableEq V] (w : G.Walk v v) : w.cycleBypass.edges ā w.edges - SimpleGraph.Walk.edges_cycleBypass_subset_edges š Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {v : V} [DecidableEq V] (w : G.Walk v v) : w.cycleBypass.edges ā w.edges - SimpleGraph.Walk.edges_bypass_subset š Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} [DecidableEq V] (p : G.Walk u v) : p.bypass.edges ā p.edges - SimpleGraph.Walk.edges_bypass_subset_edges š Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} [DecidableEq V] (p : G.Walk u v) : p.bypass.edges ā p.edges - SimpleGraph.Path.notMem_edges_of_loop š Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {v : V} {e : Sym2 V} {p : G.Path v v} : e ā (āp).edges - SimpleGraph.Walk.IsPath.eq_penultimate_of_mem_edges š Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v w : V} {p : G.Walk u v} (hp : p.IsPath) (hmem : s(v, w) ā p.edges) : w = p.penultimate - SimpleGraph.Walk.IsPath.eq_snd_of_mem_edges š Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v w : V} {p : G.Walk u v} (hp : p.IsPath) (hmem : s(u, w) ā p.edges) : w = p.snd - SimpleGraph.Walk.IsPath.length_eq_one_of_mem_edges š Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} {p : G.Walk u v} (hp : p.IsPath) (h : s(u, v) ā p.edges) : p.length = 1 - SimpleGraph.Walk.IsTrail.count_edges_le_one š Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} [DecidableEq V] {u v : V} {p : G.Walk u v} (h : p.IsTrail) (e : Sym2 V) : List.count e p.edges ⤠1 - SimpleGraph.Path.mk'_mem_edges_singleton š Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} (h : G.Adj u v) : s(u, v) ā (ā(SimpleGraph.Path.singleton h)).edges - SimpleGraph.Walk.edges_toPath_subset š Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} [DecidableEq V] (p : G.Walk u v) : (āp.toPath).edges ā p.edges - SimpleGraph.Walk.edges_toPath_subset_edges š Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} [DecidableEq V] (p : G.Walk u v) : (āp.toPath).edges ā p.edges - SimpleGraph.Walk.cons_isCycle_iff š Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} (p : G.Walk v u) (h : G.Adj u v) : (SimpleGraph.Walk.cons h p).IsCycle ā p.IsPath ā§ s(u, v) ā p.edges - SimpleGraph.Walk.IsTrail.concat š Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v w : V} {p : G.Walk u v} (hp : p.IsTrail) (hadj : G.Adj v w) (hmem : s(v, w) ā p.edges) : (p.concat hadj).IsTrail - SimpleGraph.Walk.IsTrail.cons š Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u u' v : V} {w : G.Walk u' v} (hw : w.IsTrail) (hu : G.Adj u u') (hu' : s(u, u') ā w.edges) : (SimpleGraph.Walk.cons hu w).IsTrail - SimpleGraph.Walk.IsPath.eq_adj_toWalk_of_mem_edges š Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} {p : G.Walk u v} (hp : p.IsPath) (h : s(u, v) ā p.edges) : p = āÆ.toWalk - SimpleGraph.Walk.isTrail_concat š Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v w : V} {p : G.Walk u v} (hadj : G.Adj v w) : (p.concat hadj).IsTrail ā p.IsTrail ā§ s(v, w) ā p.edges - SimpleGraph.Walk.isTrail_cons š Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v w : V} (h : G.Adj u v) (p : G.Walk v w) : (SimpleGraph.Walk.cons h p).IsTrail ā p.IsTrail ā§ s(u, v) ā p.edges - SimpleGraph.Walk.isTrail_append š Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v w : V} (p : G.Walk u v) (q : G.Walk v w) : (p.append q).IsTrail ā p.IsTrail ā§ q.IsTrail ā§ p.edges.Disjoint q.edges - SimpleGraph.Walk.IsCycle.transfer š Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u : V} {H : SimpleGraph V} {q : G.Walk u u} (qc : q.IsCycle) (hq : ā e ā q.edges, e ā H.edgeSet) : (q.transfer H hq).IsCycle - SimpleGraph.Walk.IsCycle.toDeleteEdges š Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} (G : SimpleGraph V) {v : V} (s : Set (Sym2 V)) {p : G.Walk v v} (h : p.IsCycle) (hp : ā e ā p.edges, e ā s) : (SimpleGraph.Walk.toDeleteEdges s p hp).IsCycle - SimpleGraph.Walk.IsPath.transfer š Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} {H : SimpleGraph V} {p : G.Walk u v} (hp : ā e ā p.edges, e ā H.edgeSet) (pp : p.IsPath) : (p.transfer H hp).IsPath - SimpleGraph.Walk.IsTrail.disjoint_edges_takeUntil_dropUntil š Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} [DecidableEq V] {x : V} {w : G.Walk u v} (hw : w.IsTrail) (hx : x ā w.support) : (w.takeUntil x hx).edges.Disjoint (w.dropUntil x hx).edges - SimpleGraph.Walk.IsPath.toDeleteEdges š Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} (G : SimpleGraph V) {v w : V} (s : Set (Sym2 V)) {p : G.Walk v w} (h : p.IsPath) (hp : ā e ā p.edges, e ā s) : (SimpleGraph.Walk.toDeleteEdges s p hp).IsPath - SimpleGraph.Walk.IsTrail.count_edges_eq_one š Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} [DecidableEq V] {u v : V} {p : G.Walk u v} (h : p.IsTrail) {e : Sym2 V} (he : e ā p.edges) : List.count e p.edges = 1 - SimpleGraph.Walk.IsPath.disjoint_edges_of_disjoint_support š Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} {p : G.Walk u v} {q : G.Walk v u} (hp : p.IsPath) (hd : p.support.tail.Disjoint q.support.tail) (hl : p.length ā 1) : p.edges.Disjoint q.edges - SimpleGraph.Path.cons_isCycle š Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} (p : G.Path v u) (h : G.Adj u v) (he : s(u, v) ā (āp).edges) : (SimpleGraph.Walk.cons h āp).IsCycle - SimpleGraph.Path.count_edges_eq_one š Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} [DecidableEq V] {u v : V} {p : G.Path u v} (e : Sym2 V) (hw : e ā (āp).edges) : List.count e (āp).edges = 1 - SimpleGraph.Walk.toDeleteEdges_copy š Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} (G : SimpleGraph V) {v u u' v' : V} (s : Set (Sym2 V)) (p : G.Walk u v) (hu : u = u') (hv : v = v') (h : ā e ā (p.copy hu hv).edges, e ā s) : SimpleGraph.Walk.toDeleteEdges s (p.copy hu hv) h = (SimpleGraph.Walk.toDeleteEdges s p āÆ).copy hu hv - SimpleGraph.isBridge_iff_adj_and_forall_walk_mem_edges š Mathlib.Combinatorics.SimpleGraph.Connectivity.Connected
{V : Type u} {G : SimpleGraph V} {v w : V} : G.IsBridge s(v, w) ā ā (p : G.Walk v w), s(v, w) ā p.edges - SimpleGraph.isBridge_iff_forall_walk_mem_edges š Mathlib.Combinatorics.SimpleGraph.Connectivity.Connected
{V : Type u} {G : SimpleGraph V} {v w : V} : G.IsBridge s(v, w) ā ā (p : G.Walk v w), s(v, w) ā p.edges - SimpleGraph.IsBridge.notMem_edges_of_isCycle š Mathlib.Combinatorics.SimpleGraph.Connectivity.Connected
{V : Type u} {G : SimpleGraph V} {e : Sym2 V} {u : V} {p : G.Walk u u} (he : G.IsBridge e) (hp : p.IsCycle) : e ā p.edges - SimpleGraph.Walk.mem_edges_of_not_reachable_deleteEdges š Mathlib.Combinatorics.SimpleGraph.Connectivity.Connected
{V : Type u} {G : SimpleGraph V} {u v : V} (w : G.Walk u v) {e : Sym2 V} (huv : ¬(G.deleteEdges {e}).Reachable u v) : e ā w.edges - SimpleGraph.isBridge_iff_adj_and_forall_cycle_notMem š Mathlib.Combinatorics.SimpleGraph.Connectivity.Connected
{V : Type u} {G : SimpleGraph V} {e : Sym2 V} (he : e ā G.edgeSet) : G.IsBridge e ā ā ā¦u : V⦠(p : G.Walk u u), p.IsCycle ā e ā p.edges - SimpleGraph.isBridge_iff_forall_cycle_notMem š Mathlib.Combinatorics.SimpleGraph.Connectivity.Connected
{V : Type u} {G : SimpleGraph V} {e : Sym2 V} (he : e ā G.edgeSet) : G.IsBridge e ā ā ā¦u : V⦠(p : G.Walk u u), p.IsCycle ā e ā p.edges - SimpleGraph.isBridge_iff_mem_and_forall_cycle_notMem š Mathlib.Combinatorics.SimpleGraph.Connectivity.Connected
{V : Type u} {G : SimpleGraph V} {e : Sym2 V} (he : e ā G.edgeSet) : G.IsBridge e ā ā ā¦u : V⦠(p : G.Walk u u), p.IsCycle ā e ā p.edges - SimpleGraph.Walk.exists_mem_edges_of_not_reachable_deleteEdges š Mathlib.Combinatorics.SimpleGraph.Connectivity.Connected
{V : Type u} {G : SimpleGraph V} {u v : V} (w : G.Walk u v) {s : Set (Sym2 V)} (huv : ¬(G.deleteEdges s).Reachable u v) : ā e ā s, e ā w.edges - SimpleGraph.reachable_deleteEdges_iff_exists_walk š Mathlib.Combinatorics.SimpleGraph.Connectivity.Connected
{V : Type u} {G : SimpleGraph V} {v w v' w' : V} : (G.deleteEdges {s(v, w)}).Reachable v' w' ā ā p, s(v, w) ā p.edges - SimpleGraph.reachable_delete_edges_iff_exists_walk š Mathlib.Combinatorics.SimpleGraph.Connectivity.Connected
{V : Type u} {G : SimpleGraph V} {v w v' w' : V} : (G.deleteEdges {s(v, w)}).Reachable v' w' ā ā p, s(v, w) ā p.edges - SimpleGraph.adj_and_reachable_delete_edges_iff_exists_cycle š Mathlib.Combinatorics.SimpleGraph.Connectivity.Connected
{V : Type u} {G : SimpleGraph V} {v w : V} : G.Adj v w ā§ (G.deleteEdges {s(v, w)}).Reachable v w ā ā u p, p.IsCycle ā§ s(v, w) ā p.edges - SimpleGraph.Walk.IsTrail.not_mem_edges_of_not_reachable š Mathlib.Combinatorics.SimpleGraph.Connectivity.Connected
{V : Type u} {G : SimpleGraph V} {u v x y : V} {w : G.Walk u v} (hw : w.IsTrail) (huy : ¬(G.deleteEdges {s(x, y)}).Reachable u y) (hvy : ¬(G.deleteEdges {s(x, y)}).Reachable v y) : s(x, y) ā w.edges - SimpleGraph.reachable_deleteEdges_iff_exists_cycle.aux š Mathlib.Combinatorics.SimpleGraph.Connectivity.Connected
{V : Type u} {G : SimpleGraph V} [DecidableEq V] {u v w : V} (hb : ā (p : G.Walk v w), s(v, w) ā p.edges) (c : G.Walk u u) (hc : c.IsTrail) (he : s(v, w) ā c.edges) (hw : w ā (c.takeUntil v āÆ).support) : False - SimpleGraph.Walk.IsChordless.mem_edges š Mathlib.Combinatorics.SimpleGraph.Walk.Chord
{V : Type u_1} {G : SimpleGraph V} {u v : V} {p : G.Walk u v} (h : p.IsChordless) {u' v' : V} (hu' : u' ā p.support) (hv' : v' ā p.support) (hadj : G.Adj u' v') : s(u', v') ā p.edges - SimpleGraph.Walk.isChordless_iff_forall_mem_edges š Mathlib.Combinatorics.SimpleGraph.Walk.Chord
{V : Type u_1} {G : SimpleGraph V} {u v : V} {p : G.Walk u v} : p.IsChordless ā ā ā¦u' v' : Vā¦, u' ā p.support ā v' ā p.support ā G.Adj u' v' ā s(u', v') ā p.edges - SimpleGraph.Walk.isChord_sym2Mk š Mathlib.Combinatorics.SimpleGraph.Walk.Chord
{V : Type u_1} {G : SimpleGraph V} {u v : V} {p : G.Walk u v} {u' v' : V} : p.IsChord s(u', v') ā G.Adj u' v' ā§ s(u', v') ā p.edges ā§ u' ā p.support ā§ v' ā p.support - SimpleGraph.Walk.adj_toSubgraph_iff_mem_edges š Mathlib.Combinatorics.SimpleGraph.Connectivity.Subgraph
{V : Type u} {G : SimpleGraph V} {u v u' v' : V} {p : G.Walk u v} : p.toSubgraph.Adj u' v' ā s(u', v') ā p.edges - SimpleGraph.Walk.mem_edges_toSubgraph š Mathlib.Combinatorics.SimpleGraph.Connectivity.Subgraph
{V : Type u} {G : SimpleGraph V} {u v : V} (p : G.Walk u v) {e : Sym2 V} : e ā p.toSubgraph.edgeSet ā e ā p.edges - SimpleGraph.IsAcyclic.isPath_iff_isChain š Mathlib.Combinatorics.SimpleGraph.Acyclic
{V : Type u_1} {G : SimpleGraph V} (hG : G.IsAcyclic) {v w : V} (p : G.Walk v w) : p.IsPath ā List.IsChain (fun x1 x2 => x1 ā x2) p.edges - SimpleGraph.Walk.IsPath.isCycles_spanningCoe_toSubgraph_sup_edge š Mathlib.Combinatorics.SimpleGraph.Matching
{V : Type u_1} {G : SimpleGraph V} {u v : V} {p : G.Walk u v} (hp : p.IsPath) (h : u ā v) (hs : s(v, u) ā p.edges) : (p.toSubgraph.spanningCoe ā SimpleGraph.edge v u).IsCycles - SimpleGraph.Walk.IsEulerian.mem_edges_iff š Mathlib.Combinatorics.SimpleGraph.Trails
{V : Type u_1} {G : SimpleGraph V} [DecidableEq V] {u v : V} {p : G.Walk u v} (h : p.IsEulerian) {e : Sym2 V} : e ā p.edges ā e ā G.edgeSet - SimpleGraph.Walk.IsTrail.isEulerian_of_forall_mem š Mathlib.Combinatorics.SimpleGraph.Trails
{V : Type u_1} {G : SimpleGraph V} [DecidableEq V] {u v : V} {p : G.Walk u v} (h : p.IsTrail) (hc : ā e ā G.edgeSet, e ā p.edges) : p.IsEulerian - SimpleGraph.Walk.isEulerian_iff š Mathlib.Combinatorics.SimpleGraph.Trails
{V : Type u_1} {G : SimpleGraph V} [DecidableEq V] {u v : V} (p : G.Walk u v) : p.IsEulerian ā p.IsTrail ā§ ā e ā G.edgeSet, e ā p.edges - SimpleGraph.Walk.IsTrail.even_countP_edges_iff š Mathlib.Combinatorics.SimpleGraph.Trails
{V : Type u_1} {G : SimpleGraph V} [DecidableEq V] {u v : V} {p : G.Walk u v} (ht : p.IsTrail) (x : V) : Even (List.countP (fun e => decide (x ā e)) p.edges) ā u ā v ā x ā u ā§ x ā v
About
Loogle searches Lean and Mathlib definitions and theorems.
You can use Loogle from within the Lean4 VSCode language extension
using the Loogle command from the command palette. 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 ?aIf 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 ?bBy 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_tsumeven though the hypothesisf i < g iis not the last.You can filter for definitions vs theorems: Using
⢠(_ : Type _)finds all definitions which provide data while⢠(_ : Prop)finds all theorems (and definitions of proofs).
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. Please review the Lean FRO Terms of Use and Privacy Policy.
This is Loogle revision 9f11169 serving mathlib revision ce5dd8c