OAI/Combinatorics/PlanarL1/Polygonal.lean
65 declarations, 0 contain sorry, 0 declared as axioms
- structure
OAI.PlanarL1.Topology.SegmentChainline 13Source documentation
A finite segment chain, represented by its value at every integer; only the first
length + 1values are used.structure SegmentChain (S : Set E) (x y : E) (length : ℕ) where …
- def
OAI.PlanarL1.Topology.SegmentChain.nilline 22 - def
OAI.PlanarL1.Topology.SegmentChain.appendline 28 - def
OAI.PlanarL1.Topology.SegmentChain.eraseLoopline 40Source documentation
Remove a closed loop in a segment chain.
noncomputable def eraseLoop (i j : ℕ) (hij : i<j) (hjn : j≤n) (heq : P.vertex i=P.vertex j) : SegmentChain S x y (n-j+i) where …Mentions: OAI.PlanarL1.Topology.SegmentChain
- def
OAI.PlanarL1.Topology.SegmentChain.shortcutline 68Source documentation
Replace several successive edges by one segment already known to lie in the permitted set.
noncomputable def shortcut (i j : ℕ) (hij : i<j) (hjn : j≤n) (hseg : segment ℝ (P.vertex i) (P.vertex j) ⊆ S) : SegmentChain S x y (n-j+i+1) where …Mentions: OAI.PlanarL1.Topology.SegmentChain
- def
OAI.PlanarL1.Topology.SegmentChain.shortcutAtline 92Source documentation
Delete the part between two intersecting, nonadjacent segments.
noncomputable def shortcutAt (i j : ℕ) (hij : i<j) (hjn : j<n) (z : E) (hzi : z ∈ segment ℝ (P.vertex i) (P.vertex (i+1))) (hzj : z ∈ segment ℝ (P.vertex j) (P.vertex (j+1))) : SegmentChain S x y (n-j+i+1) where …Mentions: OAI.PlanarL1.Topology.SegmentChain
- lemma
OAI.PlanarL1.Topology.PolygonallyJoined.exists_segmentChainline 125 - lemma
OAI.PlanarL1.Topology.collinear_segment_unionline 134Source documentation
A collinear broken segment covers the direct segment.
lemma collinear_segment_union {a b c : E} (h : Collinear ℝ ({a,b,c} : Set E)) : segment ℝ a c ⊆ segment ℝ a b ∪ segment ℝ b c := by … - lemma
OAI.PlanarL1.Topology.collinear_of_adjacent_overlapline 155Source documentation
Adjacent non-collinear segments have no intersection except their common endpoint. This elementary fact supplies loop erasure without a Jordan theorem.
lemma collinear_of_adjacent_overlap {a b c z : E} (hz : z ∈ segment ℝ a b) (hz' : z ∈ segment ℝ b c) (hne : z≠b) : Collinear ℝ ({a,b,c} : Set E) := by … - def
OAI.PlanarL1.Topology.SegmentChain.IsMinimalline 177 - def
OAI.PlanarL1.Topology.SegmentChain.IsSimpleline 180 - lemma
OAI.PlanarL1.Topology.SegmentChain.minimal_vertex_injectiveline 187 - lemma
OAI.PlanarL1.Topology.SegmentChain.minimal_nonadjacentline 198 - lemma
OAI.PlanarL1.Topology.SegmentChain.minimal_adjacentline 206 - lemma
OAI.PlanarL1.Topology.SegmentChain.minimal_simpleline 217 - lemma
OAI.PlanarL1.Topology.PolygonallyJoined.exists_simple_segmentChainline 227Source documentation
Every finite polygonal connection contains a simple finite polygonal connection with the same endpoints and no larger trace.
lemma PolygonallyJoined.exists_simple_segmentChain {S : Set E} {x y : E} (h : PolygonallyJoined S x y) : ∃ n, ∃ P : SegmentChain S x y n, P.IsSimple := by …Mentions: OAI.PlanarL1.Topology.PolygonallyJoined, OAI.PlanarL1.Topology.SegmentChain
- lemma
OAI.PlanarL1.Topology.PolygonallyJoined.monoline 243 - def
OAI.PlanarL1.Topology.SegmentChain.traceline 253Source documentation
The finite geometric trace, including the degenerate chain's endpoint.
def trace : Set E := {x} ∪ ⋃ i : Fin n, segment ℝ (P.vertex i) (P.vertex (i+1)) - lemma
OAI.PlanarL1.Topology.SegmentChain.trace_subsetline 255 - lemma
OAI.PlanarL1.Topology.SegmentChain.vertex_mem_traceline 261 - lemma
OAI.PlanarL1.Topology.SegmentChain.start_mem_traceline 269 - lemma
OAI.PlanarL1.Topology.SegmentChain.finish_mem_traceline 270 - lemma
OAI.PlanarL1.Topology.radial_segment_dist_leline 276 - def
OAI.PlanarL1.Topology.Drawing.portVertexline 286Source documentation
A boundary port and its incident vertex.
def portVertex (d : ForwardDart G) (b : Bool) : V := if b then d.val.snd else d.val.fst
Mentions: OAI.PlanarL1.Topology.ForwardDart
- def
OAI.PlanarL1.Topology.Drawing.portline 287 - def
OAI.PlanarL1.Topology.Drawing.headline 289 - lemma
OAI.PlanarL1.Topology.Drawing.port_sphereline 292 - lemma
OAI.PlanarL1.Topology.Drawing.head_distline 298 - lemma
OAI.PlanarL1.Topology.Drawing.ports_distinctline 302 - lemma
OAI.PlanarL1.Topology.Drawing.heads_intersectline 314 - lemma
OAI.PlanarL1.Topology.Drawing.vertex_mem_headline 334 - lemma
OAI.PlanarL1.Topology.Drawing.head_mem_obstacleline 344 - def
OAI.PlanarL1.Topology.Drawing.edgeRegionline 353 - lemma
OAI.PlanarL1.Topology.Drawing.region_joinedline 356 - lemma
OAI.PlanarL1.Topology.Drawing.region_vertexline 366 - lemma
OAI.PlanarL1.Topology.Drawing.regions_intersectline 376 - def
OAI.PlanarL1.Topology.SegmentChain.mapSetline 415 - lemma
OAI.PlanarL1.Topology.SegmentChain.mapSet_simpleline 421 - lemma
OAI.PlanarL1.Topology.SegmentChain.mapSet_traceline 422 - structure
OAI.PlanarL1.Topology.PLDrawingline 428Source documentation
A literal finite polyline drawing. Simplicity is a proved property of the finite segment chains, not an added planarity promise.
structure PLDrawing {V : Type} [LinearOrder V] (G : SimpleGraph V) where … - lemma
OAI.PlanarL1.Topology.Drawing.polygonalline 440Source documentation
Simultaneous polygonalization of a finite topological graph drawing. The original positions of all vertices are retained.
lemma Drawing.polygonal {V : Type} [Fintype V] [LinearOrder V] {G : SimpleGraph V} (D : Drawing G) : ∃ P : PLDrawing G, P.point=D.point := by …Mentions: OAI.PlanarL1.Topology.Drawing, OAI.PlanarL1.Topology.PLDrawing
- lemma
OAI.PlanarL1.Topology.polygonal_of_planarline 460 - lemma
OAI.PlanarL1.Topology.convex_frontier_radial_injectiveline 477Source documentation
Boundary points of a convex neighbourhood have a unique positive radial coordinate. This will keep the extended leaf ports disjoint when shrinking an embedded finite tree inside a convex merging region.
lemma convex_frontier_radial_injective {S : Set E} (hS : Convex ℝ S) (h0 : S ∈ nhds (0:E)) {p q : E} (hp : p ∈ frontier S) (hq : q ∈ frontier S) {s t : ℝ} (hs : 0<s) (ht : 0<t) (he : s • p=t • q) : s=t ∧ p=q := by … - lemma
OAI.PlanarL1.Topology.convex_frontier_tails_disjointline 491Source documentation
The outer radial tails from different ports never meet, including their endpoints.
lemma convex_frontier_tails_disjoint {S : Set E} (hS : Convex ℝ S) (h0 : S ∈ nhds (0:E)) {p q : E} (hp : p ∈ frontier S) (hq : q ∈ frontier S) (hpq : p≠q) {c : ℝ} (hc : 0<c) (hc1 : c≤1) : Disjoint (segment ℝ (c•p) p) (segment ℝ (c•q) q) := by … - lemma
OAI.PlanarL1.Topology.convex_frontier_tail_coreline 509 - lemma
OAI.PlanarL1.Topology.convex_tube_avoidingline 535Source documentation
A straight selected tree piece has an arbitrarily thin bounded convex merging region avoiding every closed nonincident obstacle.
lemma convex_tube_avoiding {a b : ℂ} {F : Set ℂ} (hF : IsClosed F) (hdisj : Disjoint (segment ℝ a b) F) : ∃ S : Set ℂ, Convex ℝ S ∧ IsOpen S ∧ Bornology.IsBounded S ∧ segment ℝ a b ⊆ S ∧ Disjoint (closure S) F := by … - lemma
OAI.PlanarL1.Topology.image_segment_smulline 555 - lemma
OAI.PlanarL1.Topology.PolygonallyJoined.smulline 562 - lemma
OAI.PlanarL1.Topology.SegmentChain.joined_traceline 572 - def
OAI.PlanarL1.Topology.PLDrawing.Incidentline 588 - lemma
OAI.PlanarL1.Topology.PLDrawing.leaf_incident_uniqueline 590 - def
OAI.PlanarL1.Topology.PLDrawing.expandedPointline 608 - def
OAI.PlanarL1.Topology.PLDrawing.portTailline 611 - def
OAI.PlanarL1.Topology.PLDrawing.expandedRegionline 613 - lemma
OAI.PlanarL1.Topology.PLDrawing.port_not_coreline 624 - lemma
OAI.PlanarL1.Topology.PLDrawing.expandedPoint_injectiveline 636 - lemma
OAI.PlanarL1.Topology.PLDrawing.newpoint_in_tailline 650 - lemma
OAI.PlanarL1.Topology.PLDrawing.newpoint_in_coreline 665 - lemma
OAI.PlanarL1.Topology.PLDrawing.expandedRegion_vertexline 679 - lemma
OAI.PlanarL1.Topology.PLDrawing.different_core_tailline 694 - lemma
OAI.PlanarL1.Topology.PLDrawing.different_tailsline 707 - lemma
OAI.PlanarL1.Topology.PLDrawing.expandedRegions_intersectline 716 - lemma
OAI.PlanarL1.Topology.PLDrawing.expandedPoint_mem_regionline 751 - lemma
OAI.PlanarL1.Topology.PLDrawing.expandedRegion_joinedline 764 - lemma
OAI.PlanarL1.Topology.PLDrawing.expand_leaf_portsline 789Source documentation
Inside a convex merging region, shrink the complete drawn core but retain all its distinct leaf ports. Extending each leaf radially introduces no intersections. The result is again an actual finite polyline drawing.
lemma expand_leaf_ports : ∃ Q : PLDrawing G, Q.point=P.expandedPoint B c ∧ ∀ d, (Q.chain d).trace ⊆ P.expandedRegion B c d := by …Mentions: OAI.PlanarL1.Topology.PLDrawing