OAI/GroupTheory/Hyperbolic/Ribbons.lean
72 declarations, 0 contain sorry, 0 declared as axioms
- structure
OAI.Release075.AngleDiskCountsline 11Source documentation
The numerical incidence identities of a nonempty planar triangle disk, with boundary visits counted with multiplicity (including both sides of naked edges). All fields are finite counts or angle data. No group conclusion is assumed.
structure AngleDiskCounts where …
- def
OAI.Release075.AngleDiskCounts.curvatureline 27 - theorem
OAI.Release075.AngleDiskCounts.gauss_bonnetline 30Source documentation
Gauss--Bonnet includes repeated boundary visits and naked edges.
theorem gauss_bonnet : ∑ v, D.curvature v = 10 := by …
- theorem
OAI.Release075.AngleDiskCounts.cannot_have_geodesic_boundaryline 40Source documentation
Curvature obstruction for a boundary all of whose cyclic turns have link length >=π: an interior reduced link contributes >=2π and a single exterior visit contributes >=π. Multiple visits require no turn estimate.
theorem cannot_have_geodesic_boundary (hinterior : ∀ v, D.visits v = 0 → 10 ≤ D.angles v) (hboundary : ∀ v, D.visits v = 1 → 5 ≤ D.angles v) : False := by … - def
OAI.Release075.AngleDiskCounts.interiorline 60 - def
OAI.Release075.AngleDiskCounts.boundaryline 64 - def
OAI.Release075.AngleDiskCounts.boundaryLengthline 68 - theorem
OAI.Release075.AngleDiskCounts.vertices_partitionline 70 - theorem
OAI.Release075.AngleDiskCounts.boundary_card_le_lengthline 75 - theorem
OAI.Release075.AngleDiskCounts.face_vertex_formulaline 87Source documentation
The Euler/incidence formula in terms of interior and boundary vertices.
theorem face_vertex_formula : D.faces + D.boundaryLength + 2 = 2*D.interior.card + 2*D.boundary.card := by … - theorem
OAI.Release075.AngleDiskCounts.linear_face_boundline 95 - theorem
OAI.Release075.AngleDiskCounts.polygon_original_vertex_boundline 117Source documentation
For a simple geodesic polygon only its designated corners can contribute positive boundary curvature. Original interior vertices cost two angle units. This is the exact quantitative count used for uniform inradius.
theorem polygon_original_vertex_bound (original corners : Finset D.Vertex) (hvisits : ∀ v, D.visits v ≤ 1) (hcorner : ∀ v ∈ corners, D.visits v = 1) (horiginal : ∀ v ∈ original, D.visits v = 0) (hstrict : ∀ v ∈ original, 12 ≤ D.angles v) (hinterior : ∀ v, D.visits v = 0 → 10 ≤ D.angles v) (hboundary : ∀ v, D.visits v = 1 → v ∉ corners → 5 ≤ D.angles v) : 2*(original.card : ℝ) + 10 ≤ 5*corners.card := by … - structure
OAI.Release075.TriangleRibbonline 172Source documentation
An oriented combinatorial triangle filling. Darts are incoming at the corner they carry;
reverse * facerotates those corners about a vertex. This records finite incidence data, NOT existence of a filling for a nullword. Its single distinguished face is the prescribed exterior walk, including spurs.structure TriangleRibbon where …
- abbrev
OAI.Release075.TriangleRibbon.vertexPermline 189 - abbrev
OAI.Release075.TriangleRibbon.Vertexline 190 - abbrev
OAI.Release075.TriangleRibbon.Edgeline 191 - abbrev
OAI.Release075.TriangleRibbon.Faceline 192 - def
OAI.Release075.TriangleRibbon.weightline 194 - def
OAI.Release075.TriangleRibbon.cornerAngleline 196 - def
OAI.Release075.TriangleRibbon.visitsline 199 - def
OAI.Release075.TriangleRibbon.anglesline 202 - theorem
OAI.Release075.TriangleRibbon.cornerAngle_nonnegline 205 - theorem
OAI.Release075.TriangleRibbon.angles_nonnegline 209 - theorem
OAI.Release075.TriangleRibbon.card_face_fiberline 216 - theorem
OAI.Release075.TriangleRibbon.face_angle_sumline 221 - theorem
OAI.Release075.TriangleRibbon.dart_cardline 233 - theorem
OAI.Release075.TriangleRibbon.visits_sumline 236 - theorem
OAI.Release075.TriangleRibbon.exterior_countline 248 - theorem
OAI.Release075.TriangleRibbon.all_angles_sumline 257 - def
OAI.Release075.TriangleRibbon.countsline 277Source documentation
All arithmetic hypotheses of the earlier curvature identity are now derived from actual edge/face/vertex permutations and face-color bijections.
noncomputable def counts : AngleDiskCounts where …
Mentions: OAI.Release075.AngleDiskCounts
- def
OAI.Release075.SumWalk.leftline 295Source documentation
Forget the disjoint summand tag from a walk in the left component.
def left {a b : U} : (G.sum H).Walk (.inl a) (.inl b) → G.Walk a b | .nil => .nil | .cons (v := .inl _) h p => (left p).cons (SimpleGraph.sum_adj_inl.mp h) … - theorem
OAI.Release075.SumWalk.left_lengthline 300 - theorem
OAI.Release075.SumWalk.map_leftline 304 - theorem
OAI.Release075.SumWalk.left_reducedline 308 - def
OAI.Release075.SumWalk.rightline 320Source documentation
The right-component extraction is left extraction after the graph sum swap.
def right {a b : V} (p : (G.sum H).Walk (.inr a) (.inr b)) : H.Walk a b := … - theorem
OAI.Release075.SumWalk.right_lengthline 323 - theorem
OAI.Release075.SumWalk.right_reducedline 327 - theorem
OAI.Release075.IsBoundary.sameCycleline 339 - theorem
OAI.Release075.IsBoundary.mem_iff_sameCycleline 361 - theorem
OAI.Release075.PermCycles.three_color_bijectiveline 373 - abbrev
OAI.Release075.TriangleFilling.ActiveDartline 405 - def
OAI.Release075.TriangleFilling.activeReverseline 406 - def
OAI.Release075.TriangleFilling.activeNextline 407 - theorem
OAI.Release075.TriangleFilling.activeReverse_valline 409 - theorem
OAI.Release075.TriangleFilling.activeNext_valline 410 - theorem
OAI.Release075.TriangleFilling.activeReverse_involutiveline 412 - theorem
OAI.Release075.TriangleFilling.activeReverse_neline 417 - theorem
OAI.Release075.TriangleFilling.active_planarline 421 - theorem
OAI.Release075.TriangleFilling.active_componentsline 424 - theorem
OAI.Release075.TriangleFilling.active_componentCountline 435 - theorem
OAI.Release075.TriangleFilling.active_color_stepline 446 - def
OAI.Release075.TriangleFilling.activeColorline 450 - theorem
OAI.Release075.TriangleFilling.active_boundary_iffline 453 - def
OAI.Release075.TriangleFilling.ribbonline 460Source documentation
A nonempty labeled filling has its connected boundary component as an actual Euler-characteristic-one triangle ribbon. No geometric embedding is postulated.
noncomputable def ribbon (q : V ≃ Fin 3) (hf : ∀ a b c, face a b c → color a ≠ color b ∧ color b ≠ color c ∧ color c ≠ color a) (b : D.Dart) (hb : b ∈ D.boundary) : TriangleRibbon where …Mentions: OAI.Release075.TriangleRibbon
- def
OAI.Release075.SequenceWalk.walkline 497 - theorem
OAI.Release075.SequenceWalk.length_walkline 501 - theorem
OAI.Release075.SequenceWalk.getVert_walkline 506 - theorem
OAI.Release075.SequenceWalk.reduced_walkline 517 - theorem
OAI.Release075.PermCycles.class_filterline 531 - theorem
OAI.Release075.PermCycles.pow_card_orbitline 536 - theorem
OAI.Release075.PermCycles.pow_ne_of_lt_card_orbitline 540 - def
OAI.Release075.TriangleRibbon.IsOuterline 557 - def
OAI.Release075.TriangleRibbon.outerCornersline 559 - def
OAI.Release075.TriangleRibbon.innerCornersline 561 - theorem
OAI.Release075.TriangleRibbon.visits_clline 564 - theorem
OAI.Release075.TriangleRibbon.angles_clline 571 - theorem
OAI.Release075.TriangleRibbon.corner_countline 584 - theorem
OAI.Release075.TriangleRibbon.no_outer_of_visits_zeroline 590 - theorem
OAI.Release075.TriangleRibbon.unique_outer_of_visits_oneline 598 - theorem
OAI.Release075.TriangleRibbon.interior_angle_lowerline 617Source documentation
The full corner orbit at a vertex disjoint from the exterior is a genuinely reduced nonempty closed link walk.
theorem interior_angle_lower (M : ℝ) (hclosed : ∀ a (p : L.Walk (label a) (label a)), 0 < p.length → ReducedWalk p → M ≤ weight (R.color (cl R.vertexPerm a)) * p.length) (v : R.Vertex) (hv : R.visits v = 0) : M ≤ R.angles v := by …Mentions: OAI.Release075.ReducedWalk, OAI.Release075.TriangleRibbon.weight
- theorem
OAI.Release075.TriangleRibbon.boundary_angle_lowerline 656Source documentation
A vertex with exactly one exterior corner has a reduced interior-sector path from the outgoing boundary direction back to the incoming one.
theorem boundary_angle_lower (hboundary : ∀ a, R.IsOuter a → ∀ p : L.Walk (label (R.vertexPerm a)) (label a), ReducedWalk p → 5 ≤ weight (R.color (cl R.vertexPerm a)) * p.length) (v : R.Vertex) (hv : R.visits v = 1) : 5 ≤ R.angles v := by …Mentions: OAI.Release075.ReducedWalk, OAI.Release075.TriangleRibbon.weight
- theorem
OAI.Release075.TriangleRibbon.not_all_turns_geodesicline 707Source documentation
Gauss--Bonnet on the actual permutation ribbon now rules out a filling whose boundary turns are all separated by angle at least π in their target links.
theorem not_all_turns_geodesic (hclosed : ∀ a (p : L.Walk (label a) (label a)), 0 < p.length → ReducedWalk p → 10 ≤ weight (R.color (cl R.vertexPerm a)) * p.length) (hboundary : ∀ a, R.IsOuter a → ∀ p : L.Walk (label (R.vertexPerm a)) (label a), ReducedWalk p → 5 ≤ weight (R.color (cl R.vertexPerm a)) * p.length) : False := …Mentions: OAI.Release075.ReducedWalk, OAI.Release075.TriangleRibbon.weight