ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Ordinal.nmul_le_iff₃'
theorem nmul_le_iff₃' :
    a ⨳ (b ⨳ c) ≤ d ↔
      ∀ a' < a, ∀ b' < b, ∀ c' < c,
        a' ⨳ (b ⨳ c) ♯ a ⨳ (b' ⨳ c) ♯ a ⨳ (b ⨳ c') ♯ a' ⨳ (b' ⨳ c') <
          d ♯ a' ⨳ (b' ⨳ c) ♯ a' ⨳ (b ⨳ c') ♯ a ⨳ (b' ⨳ c') 
Arguments: {a b c d : Ordinal.{u}}
Goal: a ⨳ (b ⨳ c) ≤ d ↔
  ∀ a' < a,
    ∀ b' < b,
      ∀ c' < c,
        a' ⨳ (b ⨳ c) ♯ a ⨳ (b' ⨳ c) ♯ a ⨳ (b ⨳ c') ♯ a' ⨳ (b' ⨳ c') < d ♯ a' ⨳ (b' ⨳ c) ♯ a' ⨳ (b ⨳ c') ♯ a ⨳ (b' ⨳ c')
-- Ordinal.nmul_assoc
theorem nmul_assoc : ∀ a b c, a ⨳ b ⨳ c = a ⨳ (b ⨳ c)
  
Arguments: (a b c : Ordinal.{u_1})
Goal: a ⨳ b ⨳ c = a ⨳ (b ⨳ c)
-- Ordinal.nmul_eq_mul
theorem nmul_eq_mul (a b) : a ⨳ b = toOrdinal (toNatOrdinal a * toNatOrdinal b) 
Arguments: (a b : Ordinal.{u_1})
Goal: a ⨳ b = NatOrdinal.toOrdinal (Ordinal.toNatOrdinal a * Ordinal.toNatOrdinal b)
-- Ordinal.nmul_nadd_one
theorem nmul_nadd_one : ∀ a b, a ⨳ (b ♯ 1) = a ⨳ b ♯ a 
Arguments: (a b : Ordinal.{u_1})
Goal: a ⨳ (b ♯ 1) = a ⨳ b ♯ a
-- Ordinal.nadd_one_nmul
theorem nadd_one_nmul : ∀ a b, (a ♯ 1) ⨳ b = a ⨳ b ♯ b 
Arguments: (a b : Ordinal.{u_1})
Goal: (a ♯ 1) ⨳ b = a ⨳ b ♯ b
-- Ordinal.nmul_succ
theorem nmul_succ (a b) : a ⨳ succ b = a ⨳ b ♯ a 
Arguments: (a b : Ordinal.{u_1})
Goal: a ⨳ Order.succ b = a ⨳ b ♯ a
-- Ordinal.succ_nmul
theorem succ_nmul (a b) : succ a ⨳ b = a ⨳ b ♯ b 
Arguments: (a b : Ordinal.{u_1})
Goal: Order.succ a ⨳ b = a ⨳ b ♯ b
-- Ordinal.nmul_add_one
theorem nmul_add_one : ∀ a b, a ⨳ (b + 1) = a ⨳ b ♯ a 
Arguments: (a b : Ordinal.{u_1})
Goal: a ⨳ (b + 1) = a ⨳ b ♯ a
-- Ordinal.add_one_nmul
theorem add_one_nmul : ∀ a b, (a + 1) ⨳ b = a ⨳ b ♯ b 
Arguments: (a b : Ordinal.{u_1})
Goal: (a + 1) ⨳ b = a ⨳ b ♯ b
-- NatOrdinal.mul_le_nmul
theorem mul_le_nmul (a b : Ordinal.{u}) : a * b ≤ a ⨳ b 
Arguments: (a b : Ordinal.{u})
Goal: a * b ≤ a ⨳ b
-- SzemerediRegularity.le_stepBound
theorem le_stepBound : id ≤ stepBound 
Goal: id ≤ SzemerediRegularity.stepBound
-- SzemerediRegularity.stepBound_mono
theorem stepBound_mono : Monotone stepBound 
Goal: Monotone SzemerediRegularity.stepBound
-- SzemerediRegularity.stepBound_pos_iff
theorem stepBound_pos_iff {n : ℕ} : 0 < stepBound n ↔ 0 < n 
Arguments: {n : ℕ}
Goal: 0 < SzemerediRegularity.stepBound n ↔ 0 < n
-- SzemerediRegularity.coe_stepBound
@[norm_cast] lemma coe_stepBound {α : Type*} [Semiring α] (n : ℕ) :
    (stepBound n : α) = n * 4 ^ n 
Arguments: {α : Type u_1} [Semiring α] (n : ℕ)
Goal: ↑(SzemerediRegularity.stepBound n) = ↑n * 4 ^ n
-- _private.Mathlib.Combinatorics.SimpleGraph.Regularity.Bound.0.SzemerediRegularity.Positivity.eps_pos
private theorem eps_pos {ε : ℝ} {n : ℕ} (h : 100 ≤ (4 : ℝ) ^ n * ε ^ 5) : 0 < ε 
Arguments: {ε : ℝ} {n : ℕ} (h : 100 ≤ 4 ^ n * ε ^ 5)
Goal: 0 < ε
-- _private.Mathlib.Combinatorics.SimpleGraph.Regularity.Bound.0.SzemerediRegularity.Positivity.m_pos
private theorem m_pos [Nonempty α] (hPα : P.parts.card * 16 ^ P.parts.card ≤ card α) : 0 < m 
Arguments: {α : Type u_1} [DecidableEq α] [Fintype α] {P : Finpartition Finset.univ} [Nonempty α] (hPα : P.parts.card * 16 ^ P.parts.card ≤ Fintype.card α)
Goal: 0 < m
-- SzemerediRegularity.m_pos
theorem m_pos [Nonempty α] (hPα : P.parts.card * 16 ^ P.parts.card ≤ card α) : 0 < m 
Arguments: {α : Type u_1} [DecidableEq α] [Fintype α] {P : Finpartition Finset.univ} [Nonempty α] (hPα : P.parts.card * 16 ^ P.parts.card ≤ Fintype.card α)
Goal: 0 < m
-- SzemerediRegularity.coe_m_add_one_pos
theorem coe_m_add_one_pos : 0 < (m : ℝ) + 1 
Arguments: {α : Type u_1} [DecidableEq α] [Fintype α] {P : Finpartition Finset.univ}
Goal: 0 < ↑m + 1
-- SzemerediRegularity.one_le_m_coe
theorem one_le_m_coe [Nonempty α] (hPα : P.parts.card * 16 ^ P.parts.card ≤ card α) : (1 : ℝ) ≤ m 
Arguments: {α : Type u_1} [DecidableEq α] [Fintype α] {P : Finpartition Finset.univ} [Nonempty α] (hPα : P.parts.card * 16 ^ P.parts.card ≤ Fintype.card α)
Goal: 1 ≤ ↑m
-- SzemerediRegularity.eps_pow_five_pos
theorem eps_pow_five_pos (hPε : 100 ≤ (4 : ℝ) ^ P.parts.card * ε ^ 5) : ↑0 < ε ^ 5 
Arguments: {α : Type u_1} [DecidableEq α] [Fintype α] {P : Finpartition Finset.univ} {ε : ℝ} (hPε : 100 ≤ 4 ^ P.parts.card * ε ^ 5)
Goal: 0 < ε ^ 5
-- SzemerediRegularity.eps_pos
theorem eps_pos (hPε : 100 ≤ (4 : ℝ) ^ P.parts.card * ε ^ 5) : 0 < ε 
Arguments: {α : Type u_1} [DecidableEq α] [Fintype α] {P : Finpartition Finset.univ} {ε : ℝ} (hPε : 100 ≤ 4 ^ P.parts.card * ε ^ 5)
Goal: 0 < ε
-- SzemerediRegularity.hundred_div_ε_pow_five_le_m
theorem hundred_div_ε_pow_five_le_m [Nonempty α] (hPα : P.parts.card * 16 ^ P.parts.card ≤ card α)
    (hPε : 100 ≤ (4 : ℝ) ^ P.parts.card * ε ^ 5) : 100 / ε ^ 5 ≤ m 
Arguments: {α : Type u_1} [DecidableEq α] [Fintype α] {P : Finpartition Finset.univ} {ε : ℝ} [Nonempty α] (hPα : P.parts.card * 16 ^ P.parts.card ≤ Fintype.card α) (hPε : 100 ≤ 4 ^ P.parts.card * ε ^ 5)
Goal: 100 / ε ^ 5 ≤ ↑m
-- SzemerediRegularity.hundred_le_m
theorem hundred_le_m [Nonempty α] (hPα : P.parts.card * 16 ^ P.parts.card ≤ card α)
    (hPε : 100 ≤ (4 : ℝ) ^ P.parts.card * ε ^ 5) (hε : ε ≤ 1) : 100 ≤ m 
Arguments: {α : Type u_1} [DecidableEq α] [Fintype α] {P : Finpartition Finset.univ} {ε : ℝ} [Nonempty α] (hPα : P.parts.card * 16 ^ P.parts.card ≤ Fintype.card α) (hPε : 100 ≤ 4 ^ P.parts.card * ε ^ 5) (hε : ε ≤ 1)
Goal: 100 ≤ m
-- SzemerediRegularity.a_add_one_le_four_pow_parts_card
theorem a_add_one_le_four_pow_parts_card : a + 1 ≤ 4 ^ P.parts.card 
Arguments: {α : Type u_1} [DecidableEq α] [Fintype α] {P : Finpartition Finset.univ}
Goal: a + 1 ≤ 4 ^ P.parts.card
-- SzemerediRegularity.card_aux₁
theorem card_aux₁ (hucard : u.card = m * 4 ^ P.parts.card + a) :
    (4 ^ P.parts.card - a) * m + a * (m + 1) = u.card 
Arguments: {α : Type u_1} [DecidableEq α] [Fintype α] {P : Finpartition Finset.univ} {u : Finset α} (hucard : u.card = m * 4 ^ P.parts.card + a)
Goal: (4 ^ P.parts.card - a) * m + a * (m + 1) = u.card
-- SzemerediRegularity.card_aux₂
theorem card_aux₂ (hP : P.IsEquipartition) (hu : u ∈ P.parts)
    (hucard : ¬u.card = m * 4 ^ P.parts.card + a) :
    (4 ^ P.parts.card - (a + 1)) * m + (a + 1) * (m + 1) = u.card 
Arguments: {α : Type u_1} [DecidableEq α] [Fintype α] {P : Finpartition Finset.univ} {u : Finset α} (hP : P.IsEquipartition) (hu : u ∈ P.parts) (hucard : ¬u.card = m * 4 ^ P.parts.card + a)
Goal: (4 ^ P.parts.card - (a + 1)) * m + (a + 1) * (m + 1) = u.card
-- SzemerediRegularity.pow_mul_m_le_card_part
theorem pow_mul_m_le_card_part (hP : P.IsEquipartition) (hu : u ∈ P.parts) :
    (4 : ℝ) ^ P.parts.card * m ≤ u.card 
Arguments: {α : Type u_1} [DecidableEq α] [Fintype α] {P : Finpartition Finset.univ} {u : Finset α} (hP : P.IsEquipartition) (hu : u ∈ P.parts)
Goal: 4 ^ P.parts.card * ↑m ≤ ↑u.card
-- SzemerediRegularity.le_initialBound
theorem le_initialBound : l ≤ initialBound ε l 
Arguments: (ε : ℝ) (l : ℕ)
Goal: l ≤ SzemerediRegularity.initialBound ε l
-- SzemerediRegularity.seven_le_initialBound
theorem seven_le_initialBound : 7 ≤ initialBound ε l 
Arguments: (ε : ℝ) (l : ℕ)
Goal: 7 ≤ SzemerediRegularity.initialBound ε l
-- SzemerediRegularity.initialBound_pos
theorem initialBound_pos : 0 < initialBound ε l 
Arguments: (ε : ℝ) (l : ℕ)
Goal: 0 < SzemerediRegularity.initialBound ε l
-- SzemerediRegularity.hundred_lt_pow_initialBound_mul
theorem hundred_lt_pow_initialBound_mul {ε : ℝ} (hε : 0 < ε) (l : ℕ) :
    100 < ↑4 ^ initialBound ε l * ε ^ 5 
Arguments: {ε : ℝ} (hε : 0 < ε) (l : ℕ)
Goal: 100 < 4 ^ SzemerediRegularity.initialBound ε l * ε ^ 5
-- SzemerediRegularity.initialBound_le_bound
theorem initialBound_le_bound : initialBound ε l ≤ bound ε l 
Arguments: (ε : ℝ) (l : ℕ)
Goal: SzemerediRegularity.initialBound ε l ≤ SzemerediRegularity.bound ε l
-- SzemerediRegularity.le_bound
theorem le_bound : l ≤ bound ε l 
Arguments: (ε : ℝ) (l : ℕ)
Goal: l ≤ SzemerediRegularity.bound ε l
-- SzemerediRegularity.bound_pos
theorem bound_pos : 0 < bound ε l 
Arguments: (ε : ℝ) (l : ℕ)
Goal: 0 < SzemerediRegularity.bound ε l
-- SzemerediRegularity.mul_sq_le_sum_sq
theorem mul_sq_le_sum_sq (hst : s ⊆ t) (f : ι → 𝕜) (hs : x ^ 2 ≤ ((∑ i ∈ s, f i) / s.card) ^ 2)
    (hs' : (s.card : 𝕜) ≠ 0) : (s.card : 𝕜) * x ^ 2 ≤ ∑ i ∈ t, f i ^ 2 
Arguments: {ι : Type u_2} {𝕜 : Type u_3} [LinearOrderedField 𝕜] {s t : Finset ι} {x : 𝕜} (hst : s ⊆ t) (f : ι → 𝕜) (hs : x ^ 2 ≤ ((∑ i ∈ s, f i) / ↑s.card) ^ 2) (hs' : ↑s.card ≠ 0)
Goal: ↑s.card * x ^ 2 ≤ ∑ i ∈ t, f i ^ 2
-- SzemerediRegularity.add_div_le_sum_sq_div_card
theorem add_div_le_sum_sq_div_card (hst : s ⊆ t) (f : ι → 𝕜) (d : 𝕜) (hx : 0 ≤ x)
    (hs : x ≤ |(∑ i ∈ s, f i) / s.card - (∑ i ∈ t, f i) / t.card|)
    (ht : d ≤ ((∑ i ∈ t, f i) / t.card) ^ 2) :
    d + s.card / t.card * x ^ 2 ≤ (∑ i ∈ t, f i ^ 2) / t.card 
Arguments: {ι : Type u_2} {𝕜 : Type u_3} [LinearOrderedField 𝕜] {s t : Finset ι} {x : 𝕜} (hst : s ⊆ t) (f : ι → 𝕜) (d : 𝕜) (hx : 0 ≤ x) (hs : x ≤ |(∑ i ∈ s, f i) / ↑s.card - (∑ i ∈ t, f i) / ↑t.card|) (ht : d ≤ ((∑ i ∈ t, f i) / ↑t.card) ^ 2)
Goal: d + ↑s.card / ↑t.card * x ^ 2 ≤ (∑ i ∈ t, f i ^ 2) / ↑t.card
-- SimpleGraph.le_egirth
@[simp]
lemma le_egirth {n : ℕ∞} : n ≤ G.egirth ↔ ∀ a (w : G.Walk a a), w.IsCycle → n ≤ w.length 
Arguments: {α : Type u_1} {G : SimpleGraph α} {n : ℕ∞}
Goal: n ≤ G.egirth ↔ ∀ (a : α) (w : G.Walk a a), w.IsCycle → n ≤ ↑w.length
-- SimpleGraph.egirth_eq_top
@[simp]
lemma egirth_eq_top : G.egirth = ⊤ ↔ G.IsAcyclic 
Arguments: {α : Type u_1} {G : SimpleGraph α}
Goal: G.egirth = ⊤ ↔ G.IsAcyclic
-- SimpleGraph.egirth_anti
lemma egirth_anti : Antitone (egirth : SimpleGraph α → ℕ∞) 
Arguments: {α : Type u_1}
Goal: Antitone SimpleGraph.egirth
-- SimpleGraph.exists_egirth_eq_length
lemma exists_egirth_eq_length :
    (∃ (a : α) (w : G.Walk a a), w.IsCycle ∧ G.egirth = w.length) ↔ ¬ G.IsAcyclic 
Arguments: {α : Type u_1} {G : SimpleGraph α}
Goal: (∃ a w, w.IsCycle ∧ G.egirth = ↑w.length) ↔ ¬G.IsAcyclic
-- SimpleGraph.three_le_egirth
lemma three_le_egirth : 3 ≤ G.egirth 
Arguments: {α : Type u_1} {G : SimpleGraph α}
Goal: 3 ≤ G.egirth
-- SimpleGraph.egirth_bot
@[simp] lemma egirth_bot : egirth (⊥ : SimpleGraph α) = ⊤ 
Arguments: {α : Type u_1}
Goal: ⊥.egirth = ⊤
-- SimpleGraph.three_le_girth
lemma three_le_girth (hG : ¬ G.IsAcyclic) : 3 ≤ G.girth 
Arguments: {α : Type u_1} {G : SimpleGraph α} (hG : ¬G.IsAcyclic)
Goal: 3 ≤ G.girth
-- SimpleGraph.girth_eq_zero
lemma girth_eq_zero : G.girth = 0 ↔ G.IsAcyclic 
Arguments: {α : Type u_1} {G : SimpleGraph α}
Goal: G.girth = 0 ↔ G.IsAcyclic
-- SimpleGraph.girth_anti
lemma girth_anti {G' : SimpleGraph α} (hab : G ≤ G') (h : ¬ G.IsAcyclic) : G'.girth ≤ G.girth 
Arguments: {α : Type u_1} {G G' : SimpleGraph α} (hab : G ≤ G') (h : ¬G.IsAcyclic)
Goal: G'.girth ≤ G.girth
-- SimpleGraph.exists_girth_eq_length
lemma exists_girth_eq_length :
    (∃ (a : α) (w : G.Walk a a), w.IsCycle ∧ G.girth = w.length) ↔ ¬ G.IsAcyclic 
Arguments: {α : Type u_1} {G : SimpleGraph α}
Goal: (∃ a w, w.IsCycle ∧ G.girth = w.length) ↔ ¬G.IsAcyclic
-- SimpleGraph.girth_bot
@[simp] lemma girth_bot : girth (⊥ : SimpleGraph α) = 0 
Arguments: {α : Type u_1}
Goal: ⊥.girth = 0
-- SimpleGraph.Walk.instInhabited_default
@[simps]
instance Walk.instInhabited (v : V) : Inhabited (G.Walk v v) 
Arguments: {V : Type u} (G : SimpleGraph V) (v : V)
Goal: default = SimpleGraph.Walk.nil
-- SimpleGraph.Walk.copy_rfl_rfl
@[simp]
theorem copy_rfl_rfl {u v} (p : G.Walk u v) : p.copy rfl rfl = p 
Arguments: {V : Type u} {G : SimpleGraph V} {u v : V} (p : G.Walk u v)
Goal: p.copy ⋯ ⋯ = p
-- SimpleGraph.Walk.copy_copy
@[simp]
theorem copy_copy {u v u' v' u'' v''} (p : G.Walk u v)
    (hu : u = u') (hv : v = v') (hu' : u' = u'') (hv' : v' = v'') :
    (p.copy hu hv).copy hu' hv' = p.copy (hu.trans hu') (hv.trans hv') 
Arguments: {V : Type u} {G : SimpleGraph V} {u v u' v' u'' v'' : V} (p : G.Walk u v) (hu : u = u') (hv : v = v') (hu' : u' = u'') (hv' : v' = v'')
Goal: (p.copy hu hv).copy hu' hv' = p.copy ⋯ ⋯
-- SimpleGraph.Walk.copy_nil
@[simp]
theorem copy_nil {u u'} (hu : u = u') : (Walk.nil : G.Walk u u).copy hu hu = Walk.nil 
Arguments: {V : Type u} {G : SimpleGraph V} {u u' : V} (hu : u = u')
Goal: SimpleGraph.Walk.nil.copy hu hu = SimpleGraph.Walk.nil
-- SimpleGraph.Walk.copy_cons
theorem copy_cons {u v w u' w'} (h : G.Adj u v) (p : G.Walk v w) (hu : u = u') (hw : w = w') :
    (Walk.cons h p).copy hu hw = Walk.cons (hu ▸ h) (p.copy rfl hw) 
Arguments: {V : Type u} {G : SimpleGraph V} {u v w u' w' : V} (h : G.Adj u v) (p : G.Walk v w) (hu : u = u') (hw : w = w')
Goal: (SimpleGraph.Walk.cons h p).copy hu hw = SimpleGraph.Walk.cons ⋯ (p.copy ⋯ hw)
-- SimpleGraph.Walk.cons_copy
@[simp]
theorem cons_copy {u v w v' w'} (h : G.Adj u v) (p : G.Walk v' w') (hv : v' = v) (hw : w' = w) :
    Walk.cons h (p.copy hv hw) = (Walk.cons (hv ▸ h) p).copy rfl hw 
Arguments: {V : Type u} {G : SimpleGraph V} {u v w v' w' : V} (h : G.Adj u v) (p : G.Walk v' w') (hv : v' = v) (hw : w' = w)
Goal: SimpleGraph.Walk.cons h (p.copy hv hw) = (SimpleGraph.Walk.cons ⋯ p).copy ⋯ hw
-- SimpleGraph.Walk.exists_eq_cons_of_ne
theorem exists_eq_cons_of_ne {u v : V} (hne : u ≠ v) :
    ∀ (p : G.Walk u v), ∃ (w : V) (h : G.Adj u w) (p' : G.Walk w v), p = cons h p'
  
Arguments: {V : Type u} {G : SimpleGraph V} {u v : V} (hne : u ≠ v) (p : G.Walk u v)
Goal: ∃ w, ∃ (h : G.Adj u w), ∃ p', p = SimpleGraph.Walk.cons h p'
-- SimpleGraph.Walk.concat_eq_append
theorem concat_eq_append {u v w : V} (p : G.Walk u v) (h : G.Adj v w) :
    p.concat h = p.append (cons h nil) 
Arguments: {V : Type u} {G : SimpleGraph V} {u v w : V} (p : G.Walk u v) (h : G.Adj v w)
Goal: p.concat h = p.append (SimpleGraph.Walk.cons h SimpleGraph.Walk.nil)
-- SimpleGraph.Walk.getVert_zero
@[simp]
theorem getVert_zero {u v} (w : G.Walk u v) : w.getVert 0 = u 
Arguments: {V : Type u} {G : SimpleGraph V} {u v : V} (w : G.Walk u v)
Goal: w.getVert 0 = u
-- SimpleGraph.Walk.getVert_of_length_le
theorem getVert_of_length_le {u v} (w : G.Walk u v) {i : ℕ} (hi : w.length ≤ i) :
    w.getVert i = v 
Arguments: {V : Type u} {G : SimpleGraph V} {u v : V} (w : G.Walk u v) {i : ℕ} (hi : w.length ≤ i)
Goal: w.getVert i = v
-- SimpleGraph.Walk.getVert_length
@[simp]
theorem getVert_length {u v} (w : G.Walk u v) : w.getVert w.length = v 
Arguments: {V : Type u} {G : SimpleGraph V} {u v : V} (w : G.Walk u v)
Goal: w.getVert w.length = v
-- SimpleGraph.Walk.adj_getVert_succ
theorem adj_getVert_succ {u v} (w : G.Walk u v) {i : ℕ} (hi : i < w.length) :
    G.Adj (w.getVert i) (w.getVert (i + 1)) 
Arguments: {V : Type u} {G : SimpleGraph V} {u v : V} (w : G.Walk u v) {i : ℕ} (hi : i < w.length)
Goal: G.Adj (w.getVert i) (w.getVert (i + 1))
-- SimpleGraph.Walk.cons_getVert_succ
@[simp]
lemma cons_getVert_succ {u v w n} (p : G.Walk v w) (h : G.Adj u v) :
    (p.cons h).getVert (n + 1) = p.getVert n 
Arguments: {V : Type u} {G : SimpleGraph V} {u v w : V} {n : ℕ} (p : G.Walk v w) (h : G.Adj u v)
Goal: (SimpleGraph.Walk.cons h p).getVert (n + 1) = p.getVert n
-- SimpleGraph.Walk.cons_getVert
lemma cons_getVert {u v w n} (p : G.Walk v w) (h : G.Adj u v) (hn : n ≠ 0) :
    (p.cons h).getVert n = p.getVert (n - 1) 
Arguments: {V : Type u} {G : SimpleGraph V} {u v w : V} {n : ℕ} (p : G.Walk v w) (h : G.Adj u v) (hn : n ≠ 0)
Goal: (SimpleGraph.Walk.cons h p).getVert n = p.getVert (n - 1)
-- SimpleGraph.Walk.cons_append
@[simp]
theorem cons_append {u v w x : V} (h : G.Adj u v) (p : G.Walk v w) (q : G.Walk w x) :
    (cons h p).append q = cons h (p.append q) 
Arguments: {V : Type u} {G : SimpleGraph V} {u v w x : V} (h : G.Adj u v) (p : G.Walk v w) (q : G.Walk w x)
Goal: (SimpleGraph.Walk.cons h p).append q = SimpleGraph.Walk.cons h (p.append q)
-- SimpleGraph.Walk.cons_nil_append
@[simp]
theorem cons_nil_append {u v w : V} (h : G.Adj u v) (p : G.Walk v w) :
    (cons h nil).append p = cons h p 
Arguments: {V : Type u} {G : SimpleGraph V} {u v w : V} (h : G.Adj u v) (p : G.Walk v w)
Goal: (SimpleGraph.Walk.cons h SimpleGraph.Walk.nil).append p = SimpleGraph.Walk.cons h p
-- SimpleGraph.Walk.append_nil
@[simp]
theorem append_nil {u v : V} (p : G.Walk u v) : p.append nil = p 
Arguments: {V : Type u} {G : SimpleGraph V} {u v : V} (p : G.Walk u v)
Goal: p.append SimpleGraph.Walk.nil = p
-- SimpleGraph.Walk.nil_append
@[simp]
theorem nil_append {u v : V} (p : G.Walk u v) : nil.append p = p 
Arguments: {V : Type u} {G : SimpleGraph V} {u v : V} (p : G.Walk u v)
Goal: SimpleGraph.Walk.nil.append p = p
-- SimpleGraph.Walk.append_assoc
theorem append_assoc {u v w x : V} (p : G.Walk u v) (q : G.Walk v w) (r : G.Walk w x) :
    p.append (q.append r) = (p.append q).append r 
Arguments: {V : Type u} {G : SimpleGraph V} {u v w x : V} (p : G.Walk u v) (q : G.Walk v w) (r : G.Walk w x)
Goal: p.append (q.append r) = (p.append q).append r
-- SimpleGraph.Walk.append_copy_copy
@[simp]
theorem append_copy_copy {u v w u' v' w'} (p : G.Walk u v) (q : G.Walk v w)
    (hu : u = u') (hv : v = v') (hw : w = w') :
    (p.copy hu hv).append (q.copy hv hw) = (p.append q).copy hu hw 
Arguments: {V : Type u} {G : SimpleGraph V} {u v w u' v' w' : V} (p : G.Walk u v) (q : G.Walk v w) (hu : u = u') (hv : v = v') (hw : w = w')
Goal: (p.copy hu hv).append (q.copy hv hw) = (p.append q).copy hu hw
-- SimpleGraph.Walk.concat_nil
theorem concat_nil {u v : V} (h : G.Adj u v) : nil.concat h = cons h nil 
Arguments: {V : Type u} {G : SimpleGraph V} {u v : V} (h : G.Adj u v)
Goal: SimpleGraph.Walk.nil.concat h = SimpleGraph.Walk.cons h SimpleGraph.Walk.nil
-- SimpleGraph.Walk.concat_cons
@[simp]
theorem concat_cons {u v w x : V} (h : G.Adj u v) (p : G.Walk v w) (h' : G.Adj w x) :
    (cons h p).concat h' = cons h (p.concat h') 
Arguments: {V : Type u} {G : SimpleGraph V} {u v w x : V} (h : G.Adj u v) (p : G.Walk v w) (h' : G.Adj w x)
Goal: (SimpleGraph.Walk.cons h p).concat h' = SimpleGraph.Walk.cons h (p.concat h')
-- SimpleGraph.Walk.append_concat
theorem append_concat {u v w x : V} (p : G.Walk u v) (q : G.Walk v w) (h : G.Adj w x) :
    p.append (q.concat h) = (p.append q).concat h 
Arguments: {V : Type u} {G : SimpleGraph V} {u v w x : V} (p : G.Walk u v) (q : G.Walk v w) (h : G.Adj w x)
Goal: p.append (q.concat h) = (p.append q).concat h
-- SimpleGraph.Walk.concat_append
theorem concat_append {u v w x : V} (p : G.Walk u v) (h : G.Adj v w) (q : G.Walk w x) :
    (p.concat h).append q = p.append (cons h q) 
Arguments: {V : Type u} {G : SimpleGraph V} {u v w x : V} (p : G.Walk u v) (h : G.Adj v w) (q : G.Walk w x)
Goal: (p.concat h).append q = p.append (SimpleGraph.Walk.cons h q)
-- SimpleGraph.Walk.exists_cons_eq_concat
theorem exists_cons_eq_concat {u v w : V} (h : G.Adj u v) (p : G.Walk v w) :
    ∃ (x : V) (q : G.Walk u x) (h' : G.Adj x w), cons h p = q.concat h' 
Arguments: {V : Type u} {G : SimpleGraph V} {u v w : V} (h : G.Adj u v) (p : G.Walk v w)
Goal: ∃ x q, ∃ (h' : G.Adj x w), SimpleGraph.Walk.cons h p = q.concat h'
-- SimpleGraph.Walk.exists_concat_eq_cons
theorem exists_concat_eq_cons {u v w : V} :
    ∀ (p : G.Walk u v) (h : G.Adj v w),
      ∃ (x : V) (h' : G.Adj u x) (q : G.Walk x w), p.concat h = cons h' q
  
Arguments: {V : Type u} {G : SimpleGraph V} {u v w : V} (p : G.Walk u v) (h : G.Adj v w)
Goal: ∃ x, ∃ (h' : G.Adj u x), ∃ q, p.concat h = SimpleGraph.Walk.cons h' q
-- SimpleGraph.Walk.reverse_nil
@[simp]
theorem reverse_nil {u : V} : (nil : G.Walk u u).reverse = nil 
Arguments: {V : Type u} {G : SimpleGraph V} {u : V}
Goal: SimpleGraph.Walk.nil.reverse = SimpleGraph.Walk.nil
-- SimpleGraph.Walk.reverse_singleton
theorem reverse_singleton {u v : V} (h : G.Adj u v) : (cons h nil).reverse = cons (G.symm h) nil 
Arguments: {V : Type u} {G : SimpleGraph V} {u v : V} (h : G.Adj u v)
Goal: (SimpleGraph.Walk.cons h SimpleGraph.Walk.nil).reverse = SimpleGraph.Walk.cons ⋯ SimpleGraph.Walk.nil
-- SimpleGraph.Walk.cons_reverseAux
@[simp]
theorem cons_reverseAux {u v w x : V} (p : G.Walk u v) (q : G.Walk w x) (h : G.Adj w u) :
    (cons h p).reverseAux q = p.reverseAux (cons (G.symm h) q) 
Arguments: {V : Type u} {G : SimpleGraph V} {u v w x : V} (p : G.Walk u v) (q : G.Walk w x) (h : G.Adj w u)
Goal: (SimpleGraph.Walk.cons h p).reverseAux q = p.reverseAux (SimpleGraph.Walk.cons ⋯ q)
-- SimpleGraph.Walk.append_reverseAux
@[simp]
protected theorem append_reverseAux {u v w x : V}
    (p : G.Walk u v) (q : G.Walk v w) (r : G.Walk u x) :
    (p.append q).reverseAux r = q.reverseAux (p.reverseAux r) 
Arguments: {V : Type u} {G : SimpleGraph V} {u v w x : V} (p : G.Walk u v) (q : G.Walk v w) (r : G.Walk u x)
Goal: (p.append q).reverseAux r = q.reverseAux (p.reverseAux r)
-- SimpleGraph.Walk.reverseAux_append
@[simp]
protected theorem reverseAux_append {u v w x : V}
    (p : G.Walk u v) (q : G.Walk u w) (r : G.Walk w x) :
    (p.reverseAux q).append r = p.reverseAux (q.append r) 
Arguments: {V : Type u} {G : SimpleGraph V} {u v w x : V} (p : G.Walk u v) (q : G.Walk u w) (r : G.Walk w x)
Goal: (p.reverseAux q).append r = p.reverseAux (q.append r)
-- SimpleGraph.Walk.reverseAux_eq_reverse_append
protected theorem reverseAux_eq_reverse_append {u v w : V} (p : G.Walk u v) (q : G.Walk u w) :
    p.reverseAux q = p.reverse.append q 
Arguments: {V : Type u} {G : SimpleGraph V} {u v w : V} (p : G.Walk u v) (q : G.Walk u w)
Goal: p.reverseAux q = p.reverse.append q
-- SimpleGraph.Walk.reverse_cons
@[simp]
theorem reverse_cons {u v w : V} (h : G.Adj u v) (p : G.Walk v w) :
    (cons h p).reverse = p.reverse.append (cons (G.symm h) nil) 
Arguments: {V : Type u} {G : SimpleGraph V} {u v w : V} (h : G.Adj u v) (p : G.Walk v w)
Goal: (SimpleGraph.Walk.cons h p).reverse = p.reverse.append (SimpleGraph.Walk.cons ⋯ SimpleGraph.Walk.nil)
-- SimpleGraph.Walk.reverse_copy
@[simp]
theorem reverse_copy {u v u' v'} (p : G.Walk u v) (hu : u = u') (hv : v = v') :
    (p.copy hu hv).reverse = p.reverse.copy hv hu 
Arguments: {V : Type u} {G : SimpleGraph V} {u v u' v' : V} (p : G.Walk u v) (hu : u = u') (hv : v = v')
Goal: (p.copy hu hv).reverse = p.reverse.copy hv hu
-- SimpleGraph.Walk.reverse_append
@[simp]
theorem reverse_append {u v w : V} (p : G.Walk u v) (q : G.Walk v w) :
    (p.append q).reverse = q.reverse.append p.reverse 
Arguments: {V : Type u} {G : SimpleGraph V} {u v w : V} (p : G.Walk u v) (q : G.Walk v w)
Goal: (p.append q).reverse = q.reverse.append p.reverse
-- SimpleGraph.Walk.reverse_concat
@[simp]
theorem reverse_concat {u v w : V} (p : G.Walk u v) (h : G.Adj v w) :
    (p.concat h).reverse = cons (G.symm h) p.reverse 
Arguments: {V : Type u} {G : SimpleGraph V} {u v w : V} (p : G.Walk u v) (h : G.Adj v w)
Goal: (p.concat h).reverse = SimpleGraph.Walk.cons ⋯ p.reverse
-- SimpleGraph.Walk.reverse_reverse
@[simp]
theorem reverse_reverse {u v : V} (p : G.Walk u v) : p.reverse.reverse = p 
Arguments: {V : Type u} {G : SimpleGraph V} {u v : V} (p : G.Walk u v)
Goal: p.reverse.reverse = p
-- SimpleGraph.Walk.reverse_surjective
theorem reverse_surjective {u v : V} : Function.Surjective (reverse : G.Walk u v → _) 
Arguments: {V : Type u} {G : SimpleGraph V} {u v : V}
Goal: Function.Surjective SimpleGraph.Walk.reverse
-- SimpleGraph.Walk.reverse_injective
theorem reverse_injective {u v : V} : Function.Injective (reverse : G.Walk u v → _) 
Arguments: {V : Type u} {G : SimpleGraph V} {u v : V}
Goal: Function.Injective SimpleGraph.Walk.reverse
-- SimpleGraph.Walk.reverse_bijective
theorem reverse_bijective {u v : V} : Function.Bijective (reverse : G.Walk u v → _) 
Arguments: {V : Type u} {G : SimpleGraph V} {u v : V}
Goal: Function.Bijective SimpleGraph.Walk.reverse
-- SimpleGraph.Walk.length_nil
@[simp]
theorem length_nil {u : V} : (nil : G.Walk u u).length = 0 
Arguments: {V : Type u} {G : SimpleGraph V} {u : V}
Goal: SimpleGraph.Walk.nil.length = 0
-- SimpleGraph.Walk.length_cons
@[simp]
theorem length_cons {u v w : V} (h : G.Adj u v) (p : G.Walk v w) :
    (cons h p).length = p.length + 1 
Arguments: {V : Type u} {G : SimpleGraph V} {u v w : V} (h : G.Adj u v) (p : G.Walk v w)
Goal: (SimpleGraph.Walk.cons h p).length = p.length + 1
-- SimpleGraph.Walk.length_copy
@[simp]
theorem length_copy {u v u' v'} (p : G.Walk u v) (hu : u = u') (hv : v = v') :
    (p.copy hu hv).length = p.length 
Arguments: {V : Type u} {G : SimpleGraph V} {u v u' v' : V} (p : G.Walk u v) (hu : u = u') (hv : v = v')
Goal: (p.copy hu hv).length = p.length
-- SimpleGraph.Walk.length_append
@[simp]
theorem length_append {u v w : V} (p : G.Walk u v) (q : G.Walk v w) :
    (p.append q).length = p.length + q.length 
Arguments: {V : Type u} {G : SimpleGraph V} {u v w : V} (p : G.Walk u v) (q : G.Walk v w)
Goal: (p.append q).length = p.length + q.length