Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 8 additions & 3 deletions Mathlib/Combinatorics/SimpleGraph/Paths.lean
Original file line number Diff line number Diff line change
Expand Up @@ -800,14 +800,19 @@ lemma edges_cycleBypass_subset : ∀ {w : G.Walk v v}, w.cycleBypass.edges ⊆ w
gcongr
exact edges_bypass_subset _

lemma IsTrail.isCycle_cycleBypass : ∀ {w : G.Walk v v}, w ≠ .nil → w.IsTrail → w.cycleBypass.IsCycle
| .cons (v := v') hvv' w, _, hw => by
lemma IsCircuit.isCycle_cycleBypass : ∀ {w : G.Walk v v}, w.IsCircuit → w.cycleBypass.IsCycle
| .cons (v := v') hvv' w, hw => by
dsimp [cycleBypass]
refine ⟨⟨(bypass_isPath _).isTrail.cons _ fun hvv' ↦ ?_, by simp⟩, ?_⟩
· simp only [isTrail_cons] at hw
· simp only [isCircuit_def, isTrail_cons, ne_eq, reduceCtorEq, not_false_eq_true,
and_true] at hw
exact hw.2 <| edges_bypass_subset _ hvv'
· simpa using (bypass_isPath _).support_nodup

lemma IsTrail.isCycle_cycleBypass {w : G.Walk v v} (hw : w ≠ .nil) (hw' : w.IsTrail) :
w.cycleBypass.IsCycle :=
(w.isCircuit_def.mpr ⟨hw', hw⟩).isCycle_cycleBypass

end Walk

/-! ### Mapping paths -/
Expand Down
Loading