Theorem: SimpleGraph.Walk.IsCycle.three_le_length
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: have ⟨⟨hp, hp'⟩, _⟩ := hp
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v✝ w x y v : V
p : G.Walk v v
hp : p.IsCycle
⊢ 3 ≤ p.length
state_after: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v✝ w x y v : V
p : G.Walk v v
hp✝ : p.IsCycle
hp : p.IsTrail
hp' : p ≠ nil
support_nodup✝ : p.support.tail.Nodup
⊢ 3 ≤ p.length

tactic: match p with
| .nil => simp at hp'
| .cons h .nil => simp at h
| .cons _ (.cons _ .nil) => simp at hp
| .cons _ (.cons _ (.cons _ _)) => simp_rw [SimpleGraph.Walk.length_cons]; omega
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v✝ w x y v : V
p : G.Walk v v
hp✝ : p.IsCycle
hp : p.IsTrail
hp' : p ≠ nil
support_nodup✝ : p.support.tail.Nodup
⊢ 3 ≤ p.length
state_after: no goals

tactic: simp at hp'
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v✝ w x y v : V
p : G.Walk v v
hp✝ : nil.IsCycle
hp : nil.IsTrail
hp' : nil ≠ nil
support_nodup✝ : nil.support.tail.Nodup
⊢ 3 ≤ nil.length
state_after: no goals

tactic: simp at h
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v✝ w x y v : V
p : G.Walk v v
h : G.Adj v v
hp✝ : (cons h nil).IsCycle
hp : (cons h nil).IsTrail
hp' : cons h nil ≠ nil
support_nodup✝ : (cons h nil).support.tail.Nodup
⊢ 3 ≤ (cons h nil).length
state_after: no goals

tactic: simp at hp
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v✝¹ w x y v : V
p : G.Walk v v
v✝ : V
h✝¹ : G.Adj v v✝
h✝ : G.Adj v✝ v
hp✝ : (cons h✝¹ (cons h✝ nil)).IsCycle
hp : (cons h✝¹ (cons h✝ nil)).IsTrail
hp' : cons h✝¹ (cons h✝ nil) ≠ nil
support_nodup✝ : (cons h✝¹ (cons h✝ nil)).support.tail.Nodup
⊢ 3 ≤ (cons h✝¹ (cons h✝ nil)).length
state_after: no goals

tactic: simp_rw [SimpleGraph.Walk.length_cons]
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v✝³ w x y v : V
p : G.Walk v v
v✝² : V
h✝² : G.Adj v v✝²
v✝¹ : V
h✝¹ : G.Adj v✝² v✝¹
v✝ : V
h✝ : G.Adj v✝¹ v✝
p✝ : G.Walk v✝ v
hp✝ : (cons h✝² (cons h✝¹ (cons h✝ p✝))).IsCycle
hp : (cons h✝² (cons h✝¹ (cons h✝ p✝))).IsTrail
hp' : cons h✝² (cons h✝¹ (cons h✝ p✝)) ≠ nil
support_nodup✝ : (cons h✝² (cons h✝¹ (cons h✝ p✝))).support.tail.Nodup
⊢ 3 ≤ (cons h✝² (cons h✝¹ (cons h✝ p✝))).length
state_after: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v✝³ w x y v : V
p : G.Walk v v
v✝² : V
h✝² : G.Adj v v✝²
v✝¹ : V
h✝¹ : G.Adj v✝² v✝¹
v✝ : V
h✝ : G.Adj v✝¹ v✝
p✝ : G.Walk v✝ v
hp✝ : (cons h✝² (cons h✝¹ (cons h✝ p✝))).IsCycle
hp : (cons h✝² (cons h✝¹ (cons h✝ p✝))).IsTrail
hp' : cons h✝² (cons h✝¹ (cons h✝ p✝)) ≠ nil
support_nodup✝ : (cons h✝² (cons h✝¹ (cons h✝ p✝))).support.tail.Nodup
⊢ 3 ≤ p✝.length + 1 + 1 + 1

tactic: omega
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v✝³ w x y v : V
p : G.Walk v v
v✝² : V
h✝² : G.Adj v v✝²
v✝¹ : V
h✝¹ : G.Adj v✝² v✝¹
v✝ : V
h✝ : G.Adj v✝¹ v✝
p✝ : G.Walk v✝ v
hp✝ : (cons h✝² (cons h✝¹ (cons h✝ p✝))).IsCycle
hp : (cons h✝² (cons h✝¹ (cons h✝ p✝))).IsTrail
hp' : cons h✝² (cons h✝¹ (cons h✝ p✝)) ≠ nil
support_nodup✝ : (cons h✝² (cons h✝¹ (cons h✝ p✝))).support.tail.Nodup
⊢ 3 ≤ p✝.length + 1 + 1 + 1
state_after: no goals