G.IsTour C means that C is a nonempty closed walk with no repeated edges
(but possibly repeated vertices).
- edge_nodup : C.edge.Nodup
- nonempty : C.Nonempty
- isClosed : C.IsClosed
The start and end vertex are the same
Instances For
G.IsCyclicWalk C means that C is a nonempty closed walk with no repeated vertices or
edges.
- edge_nodup : C.edge.Nodup
There are no repeated vertices except for the first and last.
Instances For
If C has at least three edges, then the assumption that C has distinct edges follows
from its distinct vertices, so is not needed.
Dedup preserves being a trail (walk with distinct edges).
Applying dedup to the tail of a tour gives a cycle.
WList.cycleBypass fixes exactly the paths and cyclic walks among trails.
An alternative version of IsCyclicWalk.exists_isPath where the tail and the head
of the cycle are explictly given as paths.
Deleting a vertex from the graph of a nontrivial cycle gives the graph of a path.
Deleting an edge from the graph of a cycle gives the graph of a path.
If P is nontrivial, then the edge assumption from IsPath.cons_isCyclicWalk isn't needed.
Decompositions of cyclic walks #
A member of a nontrivial decomposition of a cyclic walk is a path.
The initial vertices of the pieces in a nonempty decomposition of a cyclic walk are distinct.
Distinct pieces in a nonempty decomposition of a cyclic walk have disjoint interiors.
No internal vertex of a piece in a nonempty cyclic decomposition is the initial vertex of another piece.