OAI/Combinatorics/PlanarL1/Stem.lean
22 declarations, 0 contain sorry, 0 declared as axioms
- lemma
OAI.PlanarL1.Topology.segment_splitline 12 - lemma
OAI.PlanarL1.Topology.convex_frontier_segment_atline 43 - lemma
OAI.PlanarL1.Topology.ExteriorPorts.spoke_intersectionline 62 - lemma
OAI.PlanarL1.Topology.ExteriorPorts.spoke_disjointline 72 - def
OAI.PlanarL1.Topology.ExteriorPorts.restrictline 80 - lemma
OAI.PlanarL1.Topology.ExteriorPorts.obstacles_closedline 88 - lemma
OAI.PlanarL1.Topology.SegmentChain.piece_subset_traceline 97 - lemma
OAI.PlanarL1.Topology.SegmentChain.first_segment_subsetline 102 - lemma
OAI.PlanarL1.Topology.SegmentChain.cut_not_startline 105 - lemma
OAI.PlanarL1.Topology.SegmentChain.cut_not_nextline 113 - lemma
OAI.PlanarL1.Topology.SegmentChain.cut_avoids_startline 123 - lemma
OAI.PlanarL1.Topology.SegmentChain.exit_frontierline 142Source documentation
A literal cut of the first polygonal piece at the boundary of a convex neighborhood. All of the residual path is outside, except for that port.
lemma exit_frontier (hP : P.IsSimple) {T : Set ℂ} (hT : Convex ℝ T) (hop : IsOpen T) (hx : x∈T) (htail : Disjoint (closure T) P.tail.trace) : ∃ q : ℂ, ∃ hq : q∈segment ℝ x (P.vertex 1), q∈frontier T ∧ q≠P.vertex 1 ∧ q≠x ∧ (∀ z∈(P.cutFirst q hq).trace, z∈closure T → z=q) := by …Mentions: OAI.PlanarL1.Topology.SegmentChain.trace
- structure
OAI.PlanarL1.Topology.DiskCoreline 184Source documentation
A literal finite polyline core in a bounded convex disk, with specified leaf ports on its boundary. These data are constructed by the surgeries.
structure DiskCore (G : SimpleGraph V) (B : Set V) where …
- def
OAI.PlanarL1.Topology.DiskCore.restrictline 199 - lemma
OAI.PlanarL1.Topology.DiskCore.spoke_subsetline 202 - lemma
OAI.PlanarL1.Topology.DiskCore.alignline 207Source documentation
Align the first residual piece with a new disk center, without consuming any bend. A thin capsule avoids every other stem and the fixed obstacle.
lemma align [Finite V] {target : V → ℂ} (E : ExteriorPorts C.drawing.point target B C.disk) (hleaf : ∀ w∈B, ∀ u u', G.Adj w u → G.Adj w u' → u=u') {v : V} (hv : v∈B) {K : Set ℂ} (hK : IsClosed K) (hCK : Disjoint (closure C.disk) K) {n : ℕ} (P : SegmentChain (E.region v) (C.drawing.point v) (target v) (n+1)) (hP : P.IsSimple) : ∃ C' : DiskCore G B, ∃ E' : ExteriorPorts C'.drawing.point target B C'.disk, ∃ P' : SegmentChain (E'.region v) (C'.drawing.point v) (target v) (n+1), P'.IsSimple ∧ C'.drawing.point v∈segment ℝ C'.center (P'.vertex 1) ∧ Disjoint (closure C'.disk) K ∧ …Mentions: OAI.PlanarL1.Topology.ExteriorPorts, OAI.PlanarL1.Topology.SegmentChain, OAI.PlanarL1.Topology.DiskCore
- lemma
OAI.PlanarL1.Topology.DiskCore.finish_stemline 298 - lemma
OAI.PlanarL1.Topology.DiskCore.bend_stemline 357Source documentation
Consuming one radial piece and cutting the next strictly decreases the number of residual polygonal pieces. All other external stems remain disjoint.
lemma bend_stem (E : ExteriorPorts C.drawing.point target B C.disk) (hleaf : ∀ w∈B, ∀ u u', G.Adj w u → G.Adj w u' → u=u') {v : V} (hv : v∈B) {K : Set ℂ} (hK : IsClosed K) (hCK : Disjoint (closure C.disk) K) (hEK : ∀ z∈E.region v, z∈K → z=target v) {n : ℕ} (P : SegmentChain (E.region v) (C.drawing.point v) (target v) (n+1+1)) (hP : P.IsSimple) (hrad : C.drawing.point v∈segment ℝ C.center (P.vertex 1)) : ∃ C' : DiskCore G B, ∃ E' : ExteriorPorts C'.drawing.point target B C'.disk, ∃ P' : SegmentChain (E'.region v) (C'.drawing.point v) (target v) (n+1), P'.IsSimple ∧ C'.drawing.point v∈segment ℝ C'.center (P'.vertex 1) ∧ Disjoint (closure C'.disk) K ∧ …Mentions: OAI.PlanarL1.Topology.ExteriorPorts, OAI.PlanarL1.Topology.SegmentChain, OAI.PlanarL1.Topology.DiskCore
- lemma
OAI.PlanarL1.Topology.DiskCore.absorb_radialline 479Source documentation
A radial initial piece plus the finitely many bends of a simple polygonal stem can be swallowed while the other stems remain genuine exterior routes.
lemma absorb_radial (E : ExteriorPorts C.drawing.point target B C.disk) (hleaf : ∀ w∈B, ∀ u u', G.Adj w u → G.Adj w u' → u=u') {v : V} (hv : v∈B) {K : Set ℂ} (hK : IsClosed K) (hCK : Disjoint (closure C.disk) K) (hEK : Disjoint (E.region v) K) {n : ℕ} (P : SegmentChain (E.region v) (C.drawing.point v) (target v) (n+1)) (hP : P.IsSimple) (hrad : C.drawing.point v∈segment ℝ C.center (P.vertex 1)) : ∃ C' : DiskCore G (B \ {v}), ∃ E' : ExteriorPorts C'.drawing.point target (B \ {v}) C'.disk, C'.drawing.point v=target v ∧ C'.drawing.point v∈C'.disk ∧ Disjoint (closure C'.disk) K ∧ (∀ w∈B \ {v}, ∀ z∈E'.region w, z∈K → z∈E.region w) := by …Mentions: OAI.PlanarL1.Topology.ExteriorPorts, OAI.PlanarL1.Topology.SegmentChain, OAI.PlanarL1.Topology.DiskCore
- lemma
OAI.PlanarL1.Topology.DiskCore.absorb_stemline 509Source documentation
Absorb an arbitrary finite polygonal exterior stem into the disk. The selected leaf reaches its actual exterior target, which becomes interior; other ports and their external connections survive, without introducing new intersections with any fixed closed obstacle disjoint from the route.
lemma absorb_stem (E : ExteriorPorts C.drawing.point target B C.disk) (hleaf : ∀ w∈B, ∀ u u', G.Adj w u → G.Adj w u' → u=u') {v : V} (hv : v∈B) {K : Set ℂ} (hK : IsClosed K) (hCK : Disjoint (closure C.disk) K) (hEK : Disjoint (E.region v) K) : ∃ C' : DiskCore G (B \ {v}), ∃ E' : ExteriorPorts C'.drawing.point target (B \ {v}) C'.disk, C'.drawing.point v=target v ∧ C'.drawing.point v∈C'.disk ∧ Disjoint (closure C'.disk) K ∧ (∀ w∈B \ {v}, ∀ z∈E'.region w, z∈K → z∈E.region w) := by …Mentions: OAI.PlanarL1.Topology.ExteriorPorts, OAI.PlanarL1.Topology.DiskCore
- lemma
OAI.PlanarL1.Topology.DiskCore.prepare_radialline 547Source documentation
Before the last radial piece is swallowed, all of a closed external barrier, including the target vertex itself, can remain outside the disk.
lemma prepare_radial (E : ExteriorPorts C.drawing.point target B C.disk) (hleaf : ∀ w∈B, ∀ u u', G.Adj w u → G.Adj w u' → u=u') {v : V} (hv : v∈B) {K : Set ℂ} (hK : IsClosed K) (hCK : Disjoint (closure C.disk) K) (hEK : ∀ z∈E.region v, z∈K → z=target v) {n : ℕ} (P : SegmentChain (E.region v) (C.drawing.point v) (target v) (n+1)) (hP : P.IsSimple) (hrad : C.drawing.point v∈segment ℝ C.center (P.vertex 1)) : ∃ C' : DiskCore G B, ∃ E' : ExteriorPorts C'.drawing.point target B C'.disk, segment ℝ (C'.drawing.point v) (target v) ⊆ E'.region v ∧ C'.drawing.point v∈segment ℝ C'.center (target v) ∧ Disjoint (closure C'.disk) K ∧ …Mentions: OAI.PlanarL1.Topology.ExteriorPorts, OAI.PlanarL1.Topology.SegmentChain, OAI.PlanarL1.Topology.DiskCore
- lemma
OAI.PlanarL1.Topology.DiskCore.prepare_stemline 574