OAI/GroupTheory/ArtinCAT0/Winding.lean
90 declarations, 0 contain sorry, 0 declared as axioms
- def
OAI.ArtinCAT0.TriangleMesh.passIndexline 9Source documentation
On a collapsed triangular face the two nonconstant sides are paired; on an uncollapsed face every side is a live terminal.
def passIndex (v : Fin 3 → Fin 3) (i : Fin 3) : Fin 3 := …
- lemma
OAI.ArtinCAT0.TriangleMesh.passIndex_activeline 12 - lemma
OAI.ArtinCAT0.TriangleMesh.passIndex_involutiveline 15 - lemma
OAI.ArtinCAT0.TriangleMesh.passIndex_fixed_iffline 18 - lemma
OAI.ArtinCAT0.TriangleMesh.passIndex_reversesline 21 - lemma
OAI.ArtinCAT0.TriangleMesh.passIndex_casesline 25 - lemma
OAI.ArtinCAT0.TriangleMesh.exists_constant_sideline 30 - lemma
OAI.ArtinCAT0.TriangleMesh.passIndex_after_constantline 33 - lemma
OAI.ArtinCAT0.TriangleMesh.sum_three_rotateline 36 - lemma
OAI.ArtinCAT0.TriangleMesh.sum_collapsedline 40 - structure
OAI.ArtinCAT0.TriangleMesh.SimplicialLabelingline 62Source documentation
Simplicial labels permit a face to map onto an edge or a vertex. The mate conditions retain the labelled side, not merely its group endpoints.
structure SimplicialLabeling where …
- def
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.Activeline 78 - def
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.Fullline 79 - abbrev
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.FullFaceline 80 - abbrev
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.ActiveDartline 81 - def
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.wireline 83 - lemma
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.full_activeline 91 - lemma
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.wire_fixed_iffline 97 - def
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.fullDartEquivline 105 - def
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.ZeroEdgeline 114Source documentation
Identify the endpoints of every constant side.
Quotincludes the reflexive, symmetric, and transitive closure automatically.def ZeroEdge (v w : V) : Prop := …
- abbrev
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.CollapsedVertexline 116 - def
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.qvertexline 118 - lemma
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.qvertex_zeroline 120 - lemma
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.collapsed_zeroline 124 - lemma
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.vertex_zeroline 129 - def
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.collapsedLabelline 135 - lemma
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.pass_tail_headline 137 - abbrev
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.WireColorline 157 - def
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.reverseColorline 159 - lemma
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.reverseColor_involutiveline 161 - def
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.wireColorline 165 - lemma
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.wireColor_mateline 169 - lemma
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.wireColor_passline 177 - def
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.fullOrderline 189 - lemma
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.fullOrder_applyline 192 - abbrev
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.oldDartline 195 - def
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.reducedMateline 197 - lemma
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.reducedMate_involutiveline 200 - def
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.reducedMeshline 205 - def
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.reducedLabelingline 217 - def
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.expandWeightline 226 - lemma
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.expandWeight_activeline 230 - lemma
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.expandWeight_zeroline 233 - lemma
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.expandWeight_mateline 236 - lemma
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.expandWeight_collapsedline 246 - lemma
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.expandWeight_fullline 259 - lemma
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.reducedMesh_exactline 266 - def
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.signedSumline 293 - theorem
OAI.ArtinCAT0.TriangleMesh.SimplicialLabeling.signed_counts_zeroline 299Source documentation
The sphere-counting dependency including every simplicial degeneracy. No unproved identification of a pinched diagram with a sphere is used.
theorem signed_counts_zero [Fintype F] (he : M.Exact) (w : TargetTriangle → ℤ) : L.signedSum w = 0 := by …Mentions: OAI.ArtinCAT0.TargetTriangle
- lemma
OAI.ArtinCAT0.mirrorPerm_sqline 312 - lemma
OAI.ArtinCAT0.mirrorGenerator_sqline 317 - lemma
OAI.ArtinCAT0.mirrorPerm_delta_sqline 327 - lemma
OAI.ArtinCAT0.mirrorGenerator_deltaline 335 - lemma
OAI.ArtinCAT0.mirrorGenerator_centerline 347 - lemma
OAI.ArtinCAT0.mirrorLinear_mulline 381 - lemma
OAI.ArtinCAT0.mirrorVector_invline 385 - lemma
OAI.ArtinCAT0.mirrorVector_boundedline 391 - lemma
OAI.ArtinCAT0.orbit_uniformly_denseline 415 - lemma
OAI.ArtinCAT0.orbit_chain_controlline 428Source documentation
A local bound on an orbit becomes a coarse linear global bound. The constant two only avoids a special case for zero length geodesics.
lemma orbit_chain_control (hG : GeometricAction G X) (y : X) {R C : ℝ} (hR : 0 ≤ R) (hC : 0 ≤ C) (hdense : ∀ p : X, ∃ s : G, dist p (s • y) ≤ R) (f : G → ℝ) (hlocal : ∀ s t : G, dist (s • y) (t • y) ≤ 2*R+1 → |f t-f s| ≤ C) (s t : G) : |f t-f s| ≤ 2*C*(1+dist (s • y) (t • y)) := by … - abbrev
OAI.ArtinCAT0.RayIndex.Pointline 499 - def
OAI.ArtinCAT0.RayIndex.detline 501 - def
OAI.ArtinCAT0.RayIndex.upwardline 503 - def
OAI.ArtinCAT0.RayIndex.edgeline 505 - def
OAI.ArtinCAT0.RayIndex.aboveline 507 - lemma
OAI.ArtinCAT0.RayIndex.edge_selfline 509 - lemma
OAI.ArtinCAT0.RayIndex.edge_reverseline 510 - lemma
OAI.ArtinCAT0.RayIndex.det_pos_of_cross_rightline 512 - lemma
OAI.ArtinCAT0.RayIndex.det_neg_of_cross_leftline 519 - lemma
OAI.ArtinCAT0.RayIndex.edge_rightline 526 - lemma
OAI.ArtinCAT0.RayIndex.edge_leftline 538 - lemma
OAI.ArtinCAT0.RayIndex.edge_highline 547 - lemma
OAI.ArtinCAT0.RayIndex.edge_lowline 550 - def
OAI.ArtinCAT0.RayIndex.faceline 553 - lemma
OAI.ArtinCAT0.RayIndex.face_eqline 555 - lemma
OAI.ArtinCAT0.RayIndex.face_rightline 560 - lemma
OAI.ArtinCAT0.RayIndex.face_leftline 565 - lemma
OAI.ArtinCAT0.RayIndex.face_highline 568 - lemma
OAI.ArtinCAT0.RayIndex.face_lowline 571 - lemma
OAI.ArtinCAT0.RayIndex.corner_order_casesline 574 - lemma
OAI.ArtinCAT0.RayIndex.face_permuteline 579 - lemma
OAI.ArtinCAT0.RayIndex.face_collapsedline 586 - lemma
OAI.ArtinCAT0.RayIndex.face_bboxline 599Source documentation
A nonzero local edge-index sum forces the coordinate bounding box to meet both axes. This avoids a separate topological winding-number API.
lemma face_bbox (p : Fin 3 → Point) (hp : face p ≠ 0) : (∃ i, (p i).1 ≤ 0) ∧ (∃ i, 0 ≤ (p i).1) ∧ (∃ i, (p i).2 ≤ 0) ∧ (∃ i, 0 < (p i).2) := by …Mentions: OAI.ArtinCAT0.RayIndex.Point, OAI.ArtinCAT0.RayIndex.face
- lemma
OAI.ArtinCAT0.RayIndex.face_localline 618 - lemma
OAI.ArtinCAT0.RayIndex.edge_mateline 632 - lemma
OAI.ArtinCAT0.RayIndex.patch_boundary_sumline 640Source documentation
Finite Stokes cancellation on any union of faces; no manifold hypotheses are needed because the oriented edge matching is explicit.
lemma patch_boundary_sum (P : F → Prop) [DecidablePred P] (p : V → Point) : (∑ f, if P f then face (fun i => p (M.tail (f,i))) else 0) = ∑ d : F × Fin 3, if P d.1 ∧ ¬ P (M.mate d).1 then edge (p (M.tail d)) (p (M.tail (TriangleMesh.rotate d))) else 0 := by …Mentions: OAI.ArtinCAT0.RayIndex.Point, OAI.ArtinCAT0.RayIndex.face, OAI.ArtinCAT0.RayIndex.edge, OAI.ArtinCAT0.TriangleMesh.rotate
- def
OAI.ArtinCAT0.RayIndex.occurrenceline 671 - def
OAI.ArtinCAT0.RayIndex.targetline 673 - lemma
OAI.ArtinCAT0.RayIndex.occurrence_fullline 676 - lemma
OAI.ArtinCAT0.RayIndex.occurrence_collapsedline 683 - theorem
OAI.ArtinCAT0.RayIndex.localized_zeroline 688