Documentation

CslibFrontier.Foundations.Geometry.Polygonal.Route

Finite polygonal routes in the plane #

A route has a positive finite number of actual straight real segments in the complex plane. Segment parameters include all real numbers in [0,1]. Simplicity identifies only adjacent segment endpoints and, for a closed route, its first and last parameter. In particular it excludes degenerate segments, retracing, tangencies and nonadjacent contacts.

This is original finite geometric infrastructure, with no numerical genus certificate or topological drawing theorem among its data or hypotheses.

Main definitions #

A nonempty finite segment chain. bends + 1 is its number of segments; extra collinear vertices are permitted. IsSimple allows closure only between the first and last parameters.

  • bends : ℕ

    Number of internal listed points.

  • point : Fin (self.bends + 2) → ℂ

    Listed points, including both ends.

Instances For
    @[reducible, inline]

    The number of actual segments.

    Instances For

      First listed point.

      Instances For

        Last listed point.

        Instances For

          The endpoint selected by a dart's Boolean end tag.

          Instances For
            noncomputable def Cslib.Polygonal.Route.eval (p : Route) (i : Fin p.segments) (t : ℝ) :

            The actual i-th segment, with its full real affine parameter.

            Instances For

              The parameter on the entire chain, identifying successive segment endpoints.

              Instances For
                def Cslib.Polygonal.Route.AtEnd (p : Route) (i : Fin p.segments) (t : ℝ) (b : Bool) :

                A parameter is at one of the two ends of the entire chain.

                Instances For
                  noncomputable def Cslib.Polygonal.Route.support (p : Route) :

                  All real points on all listed segments.

                  Instances For
                    theorem Cslib.Polygonal.Route.at_mem_support (p : Route) (i : Fin p.segments) {t : ℝ} (ht : t ∈ Set.Icc 0 1) :
                    p.eval i t ∈ p.support

                    Every segment parameter belongs to the continuous support.

                    theorem Cslib.Polygonal.Route.mem_support_iff (p : Route) (z : ℂ) :
                    z ∈ p.support ↔ ∃ (i : Fin p.segments), ∃ t ∈ Set.Icc 0 1, p.eval i t = z

                    Membership in the support means membership at an actual real segment parameter.

                    theorem Cslib.Polygonal.Route.position_mem (p : Route) (i : Fin p.segments) {t : ℝ} (ht : t ∈ Set.Icc 0 1) :

                    The chain parameter stays in its closed global interval.

                    theorem Cslib.Polygonal.Route.at_eq_start (p : Route) (i : Fin p.segments) {t : ℝ} (ht : t ∈ Set.Icc 0 1) (h : p.position i t = 0) :
                    p.eval i t = p.start

                    At the first chain parameter the segment point is the first listed point.

                    theorem Cslib.Polygonal.Route.at_eq_finish (p : Route) (i : Fin p.segments) {t : ℝ} (ht : t ∈ Set.Icc 0 1) (h : p.position i t = ↑p.segments) :
                    p.eval i t = p.finish

                    At the last chain parameter the segment point is the last listed point.

                    theorem Cslib.Polygonal.Route.at_eq_endpoint (p : Route) (i : Fin p.segments) {t : ℝ} (ht : t ∈ Set.Icc 0 1) (b : Bool) (h : p.AtEnd i t b) :
                    p.eval i t = p.endpoint b

                    The point of a parameter at a selected end is that endpoint.

                    Equal points have equal global parameters, except for the two ends of a closed route. This tests the actual continuum of each segment, not only the listed points.

                    Instances For

                      Every actual segment of a simple route is nondegenerate.

                      Outgoing vector of the first segment at the first end, or the reversed last segment at the last end. Thus loops still have two separately defined geometric germs.

                      Instances For

                        A simple route has nonzero outgoing germs at both ends.