Loogle!
Result
Found 138 declarations mentioning SimpleGraph.Walk.IsPath.
- SimpleGraph.Walk.IsPath π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} (p : G.Walk u v) : Prop - SimpleGraph.Walk.IsPath.nil π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u : V} : SimpleGraph.Walk.nil.IsPath - SimpleGraph.Walk.instDecidableIsPathOfDecidableEq π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} [DecidableEq V] {u v : V} (p : G.Walk u v) : Decidable p.IsPath - SimpleGraph.Adj.isPath_toWalk π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} (h : G.Adj u v) : h.toWalk.IsPath - SimpleGraph.Walk.IsPath.of_adj π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} (h : G.Adj u v) : h.toWalk.IsPath - SimpleGraph.Walk.isPath_iff_nil π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u : V} {p : G.Walk u u} : p.IsPath β p.Nil - SimpleGraph.Walk.IsPath.isTrail π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} {p : G.Walk u v} (self : p.IsPath) : p.IsTrail - SimpleGraph.Walk.bypass_isPath π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} [DecidableEq V] (p : G.Walk u v) : p.bypass.IsPath - SimpleGraph.Walk.IsPath.mk' π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} {p : G.Walk u v} (h : p.support.Nodup) : p.IsPath - SimpleGraph.Walk.IsPath.support_nodup π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} {p : G.Walk u v} (self : p.IsPath) : p.support.Nodup - SimpleGraph.Walk.isPath_def π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} (p : G.Walk u v) : p.IsPath β p.support.Nodup - SimpleGraph.Walk.isPath_iff_eq_nil π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u : V} {p : G.Walk u u} : p.IsPath β p = SimpleGraph.Walk.nil - SimpleGraph.Walk.IsPath.nil_iff_eq π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} {p : G.Walk u v} (hp : p.IsPath) : p.Nil β u = v - SimpleGraph.Walk.IsPath.reverse π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} {p : G.Walk u v} (h : p.IsPath) : p.reverse.IsPath - SimpleGraph.Walk.isPath_reverse_iff π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} (p : G.Walk u v) : p.reverse.IsPath β p.IsPath - SimpleGraph.Walk.IsCycle.isPath_dropLast π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u : V} {p : G.Walk u u} (h : p.IsCycle) : p.dropLast.IsPath - SimpleGraph.Walk.IsCycle.isPath_tail π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u : V} {p : G.Walk u u} (h : p.IsCycle) : p.tail.IsPath - SimpleGraph.Walk.IsPath.length_lt π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} [Fintype V] {u v : V} {p : G.Walk u v} (hp : p.IsPath) : p.length < Fintype.card V - SimpleGraph.Walk.IsPath.mk π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} {p : G.Walk u v} (isTrail : p.IsTrail) (support_nodup : p.support.Nodup) : p.IsPath - SimpleGraph.Walk.IsPath.bypass_eq_self π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} [DecidableEq V] {p : G.Walk u v} (hp : p.IsPath) : p.bypass = p - SimpleGraph.Walk.IsPath.dropLast π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} {p : G.Walk u v} (hp : p.IsPath) : p.dropLast.IsPath - SimpleGraph.Walk.IsPath.tail π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} {p : G.Walk u v} (hp : p.IsPath) : p.tail.IsPath - SimpleGraph.Path.isPath π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} (p : G.Path u v) : (βp).IsPath - SimpleGraph.Path.isTrail π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} (p : G.Path u v) : (βp).IsTrail - SimpleGraph.Walk.bypass_eq_self_iff_isPath π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} [DecidableEq V] {p : G.Walk u v} : p.bypass = p β p.IsPath - SimpleGraph.Path.nil_coe π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u : V} : βSimpleGraph.Path.nil = SimpleGraph.Walk.nil - SimpleGraph.Path.nodup_support π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} (p : G.Path u v) : (βp).support.Nodup - SimpleGraph.Walk.IsPath.drop π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} {p : G.Walk u v} (h : p.IsPath) (n : β) : (p.drop n).IsPath - SimpleGraph.Walk.IsPath.of_append_left π 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).IsPath β p.IsPath - SimpleGraph.Walk.IsPath.of_append_right π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v w : V} {p : G.Walk u v} {q : G.Walk v w} (h : (p.append q).IsPath) : q.IsPath - SimpleGraph.Walk.IsPath.of_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).IsPath β p.IsPath - SimpleGraph.Walk.IsPath.take π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} {p : G.Walk u v} (h : p.IsPath) (n : β) : (p.take n).IsPath - SimpleGraph.Walk.isPath_iff_isSubwalk_imp_nil π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} {p : G.Walk u v} : p.IsPath β β (v_1 : V) (w : G.Walk v_1 v_1), w.IsSubwalk p β w.Nil - SimpleGraph.Walk.isPath_of_isSubwalk π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {v w v' w' : V} {pβ : G.Walk v w} {pβ : G.Walk v' w'} (h : pβ.IsSubwalk pβ) (hβ : pβ.IsPath) : pβ.IsPath - SimpleGraph.Walk.IsPath.getVert_injOn π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} {p : G.Walk u v} (hp : p.IsPath) : Set.InjOn p.getVert {i | i β€ p.length} - SimpleGraph.Walk.IsPath.mapLe π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G G' : SimpleGraph V} (h : G β€ G') {u v : V} {p : G.Walk u v} : p.IsPath β (SimpleGraph.Walk.mapLe h p).IsPath - SimpleGraph.Walk.IsPath.of_mapLe π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G G' : SimpleGraph V} (h : G β€ G') {u v : V} {p : G.Walk u v} : (SimpleGraph.Walk.mapLe h p).IsPath β p.IsPath - SimpleGraph.Walk.isPath_mapLe π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G G' : SimpleGraph V} (h : G β€ G') {u v : V} {p : G.Walk u v} : (SimpleGraph.Walk.mapLe h p).IsPath β p.IsPath - SimpleGraph.Walk.mapLe_isPath π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G G' : SimpleGraph V} (h : G β€ G') {u v : V} {p : G.Walk u v} : (SimpleGraph.Walk.mapLe h p).IsPath β p.IsPath - SimpleGraph.Walk.IsPath.getVert_injOn_iff π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} (p : G.Walk u v) : Set.InjOn p.getVert {i | i β€ p.length} β p.IsPath - SimpleGraph.Walk.IsCycle.isPath_of_append_left π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} {p : G.Walk u v} {q : G.Walk v u} (h : Β¬q.Nil) (hcyc : (p.append q).IsCycle) : p.IsPath - SimpleGraph.Walk.IsCycle.isPath_of_append_right π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} {p : G.Walk u v} {q : G.Walk v u} (h : Β¬p.Nil) (hcyc : (p.append q).IsCycle) : q.IsPath - SimpleGraph.Walk.isPath_copy π Mathlib.Combinatorics.SimpleGraph.Paths
{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).IsPath β p.IsPath - SimpleGraph.Walk.IsCycle.isPath_drop π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u : V} {n : β} {p : G.Walk u u} (h : p.IsCycle) (hn : 0 < n) : (p.drop n).IsPath - SimpleGraph.Walk.IsCycle.isPath_take π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u : V} {n : β} {p : G.Walk u u} (h : p.IsCycle) (hn : n < p.length) : (p.take n).IsPath - SimpleGraph.Walk.IsPath.getVert_eq_start_iff_of_not_nil π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u w : V} {i : β} {p : G.Walk u w} (hp : p.IsPath) (h : Β¬p.Nil) : p.getVert i = u β i = 0 - SimpleGraph.Walk.IsCycle.isPath_takeUntil π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {v w : V} [DecidableEq V] {c : G.Walk v v} (hc : c.IsCycle) (h : w β c.support) : (c.takeUntil w h).IsPath - SimpleGraph.Walk.IsTrail.isPath_iff_isSubwalk_imp_not_isCycle π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} {p : G.Walk u v} (ht : p.IsTrail) : p.IsPath β β (v_1 : V) (w : G.Walk v_1 v_1), w.IsSubwalk p β Β¬w.IsCycle - 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.isCycle_iff_isPath_tail_and_le_length π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u : V} {p : G.Walk u u} : p.IsCycle β p.tail.IsPath β§ 3 β€ p.length - SimpleGraph.Walk.isPath_iff_injective_get_support π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} (p : G.Walk u v) : p.IsPath β Function.Injective fun x => p.support.get x - SimpleGraph.Walk.IsPath.dropUntil π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} [DecidableEq V] {u v w : V} {p : G.Walk v w} (hc : p.IsPath) (h : u β p.support) : (p.dropUntil u h).IsPath - SimpleGraph.Walk.IsPath.getVert_eq_start_iff π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u w : V} {i : β} {p : G.Walk u w} (hp : p.IsPath) (hi : i β€ p.length) : p.getVert i = u β i = 0 - SimpleGraph.Walk.IsPath.takeUntil π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} [DecidableEq V] {u v w : V} {p : G.Walk v w} (hc : p.IsPath) (h : u β p.support) : (p.takeUntil u h).IsPath - SimpleGraph.Walk.IsPath.getVert_eq_end_iff π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u w : V} {i : β} {p : G.Walk u w} (hp : p.IsPath) (hi : i β€ p.length) : p.getVert i = w β i = p.length - 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.IsPath.concat π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v w : V} {p : G.Walk u v} (hp : p.IsPath) (hw : w β p.support) (h : G.Adj v w) : (p.concat h).IsPath - SimpleGraph.Walk.IsPath.cons π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v w : V} {p : G.Walk v w} (hp : p.IsPath) (hu : u β p.support) {h : G.Adj u v} : (SimpleGraph.Walk.cons h p).IsPath - SimpleGraph.Path.singleton_coe π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} (h : G.Adj u v) : β(SimpleGraph.Path.singleton h) = SimpleGraph.Walk.cons h SimpleGraph.Walk.nil - 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.concat_isPath_iff π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v w : V} {p : G.Walk u v} (h : G.Adj v w) : (p.concat h).IsPath β p.IsPath β§ w β p.support - SimpleGraph.Walk.cons_isPath_iff π 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).IsPath β p.IsPath β§ u β p.support - SimpleGraph.Walk.isPath_concat π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v w : V} {p : G.Walk u v} (h : G.Adj v w) : (p.concat h).IsPath β p.IsPath β§ w β p.support - SimpleGraph.Walk.support_toPath_subset π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} [DecidableEq V] (p : G.Walk u v) : (βp.toPath).support β p.support - SimpleGraph.Walk.support_toPath_subset_support π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} [DecidableEq V] (p : G.Walk u v) : (βp.toPath).support β p.support - SimpleGraph.Walk.IsPath.drop_of_drop π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} {n k : β} {p : G.Walk u v} (h : (p.drop k).IsPath) (hle : k β€ n) : (p.drop n).IsPath - SimpleGraph.Walk.IsPath.take_of_take π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} {n k : β} {p : G.Walk u v} (h : (p.take k).IsPath) (hle : n β€ k) : (p.take n).IsPath - 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.darts_toPath_subset π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} [DecidableEq V] (p : G.Walk u v) : (βp.toPath).darts β p.darts - SimpleGraph.Walk.darts_toPath_subset_darts π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} [DecidableEq V] (p : G.Walk u v) : (βp.toPath).darts β p.darts - 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.endpoint_notMem_support_takeUntil π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v w : V} [DecidableEq V] {p : G.Walk u v} (hp : p.IsPath) (hw : w β p.support) (h : v β w) : v β (p.takeUntil w hw).support - SimpleGraph.Walk.IsPath.disjoint_support_of_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} (hpq : (p.append q).IsPath) (hq : Β¬q.Nil) : p.support.Disjoint q.tail.support - SimpleGraph.Path.reverse_coe π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} (p : G.Path u v) : βp.reverse = (βp).reverse - 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.IsPath.ne_of_mem_support_of_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} (hpq : (p.append q).IsPath) {x y : V} (hyv : y β v) (hx : x β p.support) (hy : y β q.support) : x β y - 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.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.Walk.exists_isPath_forall_isPath_length_le_length π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} (G : SimpleGraph V) [N : Nonempty V] [Finite βG.edgeSet] : β u v p, β (_ : p.IsPath), β (u' v' : V) (p' : G.Walk u' v'), p'.IsPath β p'.length β€ p.length - SimpleGraph.Walk.IsPath.of_map π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {V' : Type v} {G : SimpleGraph V} {G' : SimpleGraph V'} {f : G βg G'} {u v : V} {p : G.Walk u v} (hp : (SimpleGraph.Walk.map f p).IsPath) : p.IsPath - SimpleGraph.Path.count_support_eq_one π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} [DecidableEq V] {u v w : V} {p : G.Path u v} (hw : w β (βp).support) : List.count w (βp).support = 1 - 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.Walk.IsPath.mem_support_iff_exists_append π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v w : V} {p : G.Walk u v} (hp : p.IsPath) : w β p.support β β q r, q.IsPath β§ r.IsPath β§ p = q.append r - SimpleGraph.Walk.IsPath.isCycle_append π 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) (hq : q.IsPath) (h : p.support.tail.Disjoint q.support.tail) (hn : 1 < p.length β¨ 1 < q.length) : (p.append q).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.map_isPath_of_injective π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {V' : Type v} {G : SimpleGraph V} {G' : SimpleGraph V'} {f : G βg G'} {u v : V} {p : G.Walk u v} (hinj : Function.Injective βf) : p.IsPath β (SimpleGraph.Walk.map f p).IsPath - SimpleGraph.Walk.IsPath.map π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {V' : Type v} {G : SimpleGraph V} {G' : SimpleGraph V'} {f : G βg G'} {u v : V} {p : G.Walk u v} (hinj : Function.Injective βf) : p.IsPath β (SimpleGraph.Walk.map f p).IsPath - SimpleGraph.Walk.isPath_map_iff_of_injective π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {V' : Type v} {G : SimpleGraph V} {G' : SimpleGraph V'} {f : G βg G'} {u v : V} {p : G.Walk u v} (hinj : Function.Injective βf) : (SimpleGraph.Walk.map f p).IsPath β p.IsPath - SimpleGraph.Walk.map_isPath_iff_of_injective π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {V' : Type v} {G : SimpleGraph V} {G' : SimpleGraph V'} {f : G βg G'} {u v : V} {p : G.Walk u v} (hinj : Function.Injective βf) : (SimpleGraph.Walk.map f p).IsPath β p.IsPath - SimpleGraph.Walk.IsPath.exists_isCycle_of_ne π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} {p q : G.Walk u v} (hp : p.IsPath) (hq : q.IsPath) (h : p β q) : β u' v' p' q', p'.IsSubwalk p β§ q'.IsSubwalk q β§ (p'.append q'.reverse).IsCycle - SimpleGraph.Walk.IsPath.injOn_support_of_isPath_map π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {V' : Type v} {G : SimpleGraph V} {G' : SimpleGraph V'} {u v : V} {p : G.Walk u v} {f : G βg G'} (h : (SimpleGraph.Walk.map f p).IsPath) : Set.InjOn βf {w | w β p.support} - SimpleGraph.Walk.IsPath.exists_isCycle_length_le_add_of_ne π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} {p q : G.Walk u v} (hp : p.IsPath) (hq : q.IsPath) (h : p β q) : β w β p.support, w β q.support β§ β c, c.IsCycle β§ c.length β€ p.length + q.length - SimpleGraph.Walk.IsPath.exists_isCycle_sublist_of_ne π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {G : SimpleGraph V} {u v : V} {p q : G.Walk u v} (hp : p.IsPath) (hq : q.IsPath) (h : p β q) : β w β p.support, w β q.support β§ β c, c.IsCycle β§ c.support.Sublist (p.support ++ q.support.reverse.tail) - SimpleGraph.Path.mapEmbedding_coe π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {V' : Type v} {G : SimpleGraph V} {G' : SimpleGraph V'} (f : G βͺg G') {u v : V} (p : G.Path u v) : β(SimpleGraph.Path.mapEmbedding f p) = SimpleGraph.Walk.map f.toHom βp - SimpleGraph.Path.map_coe π Mathlib.Combinatorics.SimpleGraph.Paths
{V : Type u} {V' : Type v} {G : SimpleGraph V} {G' : SimpleGraph V'} (f : G βg G') (hinj : Function.Injective βf) {u v : V} (p : G.Path u v) : β(SimpleGraph.Path.map f hinj p) = SimpleGraph.Walk.map f βp - SimpleGraph.Connected.exists_isPath π Mathlib.Combinatorics.SimpleGraph.Connectivity.Connected
{V : Type u} {G : SimpleGraph V} (h : G.Connected) (u v : V) : β p, p.IsPath - SimpleGraph.Preconnected.exists_isPath π Mathlib.Combinatorics.SimpleGraph.Connectivity.Connected
{V : Type u} {G : SimpleGraph V} (h : G.Preconnected) (u v : V) : β p, p.IsPath - SimpleGraph.Reachable.exists_isPath π Mathlib.Combinatorics.SimpleGraph.Connectivity.Connected
{V : Type u} {G : SimpleGraph V} {u v : V} (hr : G.Reachable u v) : β p, p.IsPath - SimpleGraph.ConnectedComponent.lift π Mathlib.Combinatorics.SimpleGraph.Connectivity.Connected
{V : Type u} {G : SimpleGraph V} {Ξ² : Sort u_1} (f : V β Ξ²) (h : β (v w : V) (p : G.Walk v w), p.IsPath β f v = f w) : G.ConnectedComponent β Ξ² - SimpleGraph.ConnectedComponent.lift_mk π Mathlib.Combinatorics.SimpleGraph.Connectivity.Connected
{V : Type u} {G : SimpleGraph V} {Ξ² : Sort u_1} {f : V β Ξ²} {h : β (v w : V) (p : G.Walk v w), p.IsPath β f v = f w} {v : V} : SimpleGraph.ConnectedComponent.lift f h (G.connectedComponentMk v) = f v - SimpleGraph.ConnectedComponent.recOn π Mathlib.Combinatorics.SimpleGraph.Connectivity.Connected
{V : Type u} {G : SimpleGraph V} {motive : G.ConnectedComponent β Sort u_1} (c : G.ConnectedComponent) (f : (v : V) β motive (G.connectedComponentMk v)) (h : β (u v : V) (p : G.Walk u v), p.IsPath β β― βΈ f u = f v) : motive c - SimpleGraph.Walk.IsPath.snd_of_toSubgraph_adj π Mathlib.Combinatorics.SimpleGraph.Connectivity.Subgraph
{V : Type u} {G : SimpleGraph V} {u v v' : V} {p : G.Walk u v} (hp : p.IsPath) (hadj : p.toSubgraph.Adj u v') : p.snd = v' - SimpleGraph.Walk.IsPath.neighborSet_toSubgraph_endpoint π Mathlib.Combinatorics.SimpleGraph.Connectivity.Subgraph
{V : Type u} {G : SimpleGraph V} {u v : V} {p : G.Walk u v} (hp : p.IsPath) (hnp : Β¬p.Nil) : p.toSubgraph.neighborSet v = {p.penultimate} - SimpleGraph.Walk.IsPath.neighborSet_toSubgraph_startpoint π Mathlib.Combinatorics.SimpleGraph.Connectivity.Subgraph
{V : Type u} {G : SimpleGraph V} {u v : V} {p : G.Walk u v} (hp : p.IsPath) (hnp : Β¬p.Nil) : p.toSubgraph.neighborSet u = {p.snd} - SimpleGraph.Walk.IsPath.ncard_neighborSet_toSubgraph_internal_eq_two π Mathlib.Combinatorics.SimpleGraph.Connectivity.Subgraph
{V : Type u} {G : SimpleGraph V} {v u : V} {i : β} {p : G.Walk u v} (hp : p.IsPath) (h : i β 0) (h' : i < p.length) : (p.toSubgraph.neighborSet (p.getVert i)).ncard = 2 - SimpleGraph.Walk.IsPath.neighborSet_toSubgraph_internal π Mathlib.Combinatorics.SimpleGraph.Connectivity.Subgraph
{V : Type u} {G : SimpleGraph V} {v u : V} {i : β} {p : G.Walk u v} (hp : p.IsPath) (h : i β 0) (h' : i < p.length) : p.toSubgraph.neighborSet (p.getVert i) = {p.getVert (i - 1), p.getVert (i + 1)} - SimpleGraph.Walk.isPath_of_length_eq_dist π Mathlib.Combinatorics.SimpleGraph.Metric
{V : Type u_1} {G : SimpleGraph V} {u v : V} (p : G.Walk u v) (hp : p.length = G.dist u v) : p.IsPath - SimpleGraph.Connected.exists_path_of_dist π Mathlib.Combinatorics.SimpleGraph.Metric
{V : Type u_1} {G : SimpleGraph V} (hconn : G.Connected) (u v : V) : β p, p.IsPath β§ p.length = G.dist u v - SimpleGraph.Reachable.exists_path_of_dist π Mathlib.Combinatorics.SimpleGraph.Metric
{V : Type u_1} {G : SimpleGraph V} {u v : V} (hr : G.Reachable u v) : β p, p.IsPath β§ p.length = G.dist u v - SimpleGraph.Walk.IsPath.isContained_pathGraph π Mathlib.Combinatorics.SimpleGraph.Hasse
{V : Type u_3} {G : SimpleGraph V} {u v : V} {w : G.Walk u v} (hw : w.IsPath) : (SimpleGraph.pathGraph (w.length + 1)).IsContained G - SimpleGraph.Walk.IsPath.pathGraphCopy π Mathlib.Combinatorics.SimpleGraph.Hasse
{V : Type u_3} [DecidableEq V] {G : SimpleGraph V} {u v : V} {w : G.Walk u v} (hw : w.IsPath) : (SimpleGraph.pathGraph (w.length + 1)).Copy G - SimpleGraph.Walk.IsPath.pathGraphIsoToSubgraph π Mathlib.Combinatorics.SimpleGraph.Hasse
{V : Type u_3} [DecidableEq V] {G : SimpleGraph V} {u v : V} {w : G.Walk u v} (hw : w.IsPath) : SimpleGraph.pathGraph (w.length + 1) βg w.toSubgraph.coe - SimpleGraph.cycleGraph.isPath_tail_cycle π Mathlib.Combinatorics.SimpleGraph.CycleGraph
{n : β} : (SimpleGraph.cycleGraph.cycle n).tail.IsPath - SimpleGraph.IsTree.existsUnique_path π Mathlib.Combinatorics.SimpleGraph.Acyclic
{V : Type u_1} {G : SimpleGraph V} (hG : G.IsTree) (v w : V) : β! p, p.IsPath - SimpleGraph.IsAcyclic.isPath_iff_isTrail π Mathlib.Combinatorics.SimpleGraph.Acyclic
{V : Type u_1} {G : SimpleGraph V} (hG : G.IsAcyclic) {v w : V} (p : G.Walk v w) : p.IsPath β p.IsTrail - SimpleGraph.isTree_iff_existsUnique_path π Mathlib.Combinatorics.SimpleGraph.Acyclic
{V : Type u_1} {G : SimpleGraph V} : G.IsTree β Nonempty V β§ β (v w : V), β! p, p.IsPath - 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.IsAcyclic.eq_penultimate_of_adj_end π Mathlib.Combinatorics.SimpleGraph.Acyclic
{V : Type u_1} {G : SimpleGraph V} (h : G.IsAcyclic) {u v w : V} {p : G.Walk u v} (hp : p.IsPath) (hadj : G.Adj v w) (hsupp : w β p.support) : w = p.penultimate - SimpleGraph.IsAcyclic.eq_snd_of_adj_start π Mathlib.Combinatorics.SimpleGraph.Acyclic
{V : Type u_1} {G : SimpleGraph V} (h : G.IsAcyclic) {u v w : V} {p : G.Walk u v} (hp : p.IsPath) (hadj : G.Adj u w) (hsupp : w β p.support) : w = p.snd - SimpleGraph.IsAcyclic.mem_support_of_ne_mem_support_of_adj_of_isPath π Mathlib.Combinatorics.SimpleGraph.Acyclic
{V : Type u_1} {G : SimpleGraph V} (hG : G.IsAcyclic) {u v w : V} {p : G.Walk u v} {q : G.Walk u w} (hp : p.IsPath) (hq : q.IsPath) (hadj : G.Adj v w) (hv : v β q.support) : w β p.support - SimpleGraph.IsAcyclic.ne_mem_support_of_support_of_adj_of_isPath π Mathlib.Combinatorics.SimpleGraph.Acyclic
{V : Type u_1} {G : SimpleGraph V} (hG : G.IsAcyclic) {u v w : V} {p : G.Walk u v} {q : G.Walk u w} (hp : p.IsPath) (hq : q.IsPath) (hadj : G.Adj v w) (hw : w β p.support) : v β q.support - SimpleGraph.IsAcyclic.path_concat π Mathlib.Combinatorics.SimpleGraph.Acyclic
{V : Type u_1} {G : SimpleGraph V} (hG : G.IsAcyclic) {u v w : V} {p : G.Walk u v} {q : G.Walk u w} (hp : p.IsPath) (hq : q.IsPath) (hadj : G.Adj v w) (hv : v β q.support) : q = p.concat hadj - SimpleGraph.fintypeSubtypePathLength π Mathlib.Combinatorics.SimpleGraph.Walk.Counting
{V : Type u} (G : SimpleGraph V) [DecidableEq V] [G.LocallyFinite] (u v : V) (n : β) : Fintype { p // p.IsPath β§ p.length = n } - SimpleGraph.fintypeSubtypePathLengthLT π Mathlib.Combinatorics.SimpleGraph.Walk.Counting
{V : Type u} (G : SimpleGraph V) [DecidableEq V] [G.LocallyFinite] (u v : V) (n : β) : Fintype { p // p.IsPath β§ p.length < n } - SimpleGraph.fintypeSetPathLength π Mathlib.Combinatorics.SimpleGraph.Walk.Counting
{V : Type u} (G : SimpleGraph V) [DecidableEq V] [G.LocallyFinite] (u v : V) (n : β) : Fintype β{p | p.IsPath β§ p.length = n} - SimpleGraph.fintypeSetPathLengthLT π Mathlib.Combinatorics.SimpleGraph.Walk.Counting
{V : Type u} (G : SimpleGraph V) [DecidableEq V] [G.LocallyFinite] (u v : V) (n : β) : Fintype β{p | p.IsPath β§ p.length < n} - SimpleGraph.IsCycles.reachable_sdiff_toSubgraph_spanningCoe π Mathlib.Combinatorics.SimpleGraph.Matching
{V : Type u_1} {G : SimpleGraph V} [Finite V] {v w : V} (hcyc : G.IsCycles) (p : G.Walk v w) (hp : p.IsPath) : (G \ p.toSubgraph.spanningCoe).Reachable w v - SimpleGraph.IsCycles.snd_of_mem_support_of_isPath_of_adj π Mathlib.Combinatorics.SimpleGraph.Matching
{V : Type u_1} {G : SimpleGraph V} [Finite V] {v w w' : V} (hcyc : G.IsCycles) (p : G.Walk v w) (hw : w β w') (hw' : w' β p.support) (hp : p.IsPath) (hadj : G.Adj v w') : p.snd = w' - 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.IsHamiltonian.isPath π Mathlib.Combinatorics.SimpleGraph.Hamiltonian
{Ξ± : Type u_1} [DecidableEq Ξ±] {G : SimpleGraph Ξ±} {a b : Ξ±} {p : G.Walk a b} (hp : p.IsHamiltonian) : p.IsPath - SimpleGraph.Walk.IsPath.isHamiltonian_of_mem π Mathlib.Combinatorics.SimpleGraph.Hamiltonian
{Ξ± : Type u_1} [DecidableEq Ξ±] {G : SimpleGraph Ξ±} {a b : Ξ±} {p : G.Walk a b} (hp : p.IsPath) (hp' : β (w : Ξ±), w β p.support) : p.IsHamiltonian - SimpleGraph.Walk.IsPath.isHamiltonian_iff π Mathlib.Combinatorics.SimpleGraph.Hamiltonian
{Ξ± : Type u_1} [DecidableEq Ξ±] {G : SimpleGraph Ξ±} {a b : Ξ±} {p : G.Walk a b} (hp : p.IsPath) : p.IsHamiltonian β β (w : Ξ±), w β p.support - SimpleGraph.Walk.isHamiltonian_iff_isPath_and_length_eq π Mathlib.Combinatorics.SimpleGraph.Hamiltonian
{Ξ± : Type u_1} [DecidableEq Ξ±] {G : SimpleGraph Ξ±} {a b : Ξ±} {p : G.Walk a b} [Fintype Ξ±] : p.IsHamiltonian β p.IsPath β§ p.length = Fintype.card Ξ± - 1 - SimpleGraph.Walk.IsHamiltonian.injective_of_isPath_map π Mathlib.Combinatorics.SimpleGraph.Hamiltonian
{Ξ± : Type u_1} [DecidableEq Ξ±] {G : SimpleGraph Ξ±} {Ξ² : Type u_2} {H : SimpleGraph Ξ²} {a b : Ξ±} {p : G.Walk a b} {f : G βg H} (hp : p.IsHamiltonian) (h : (SimpleGraph.Walk.map f p).IsPath) : Function.Injective βf
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