Documentation

TauCeti.LowDimTopology.DehnSurgery.Slope

Slopes on a framed boundary torus #

A slope on the boundary torus T of a knot or link complement is the datum needed to specify a Dehn filling: the isotopy class of an unoriented essential simple closed curve on T, equivalently a primitive class in H₁(T; ℤ) taken modulo sign (Rolfsen, Knots and Links, Chapter 9). This is basis-free: it refers only to the homology group H₁(T; ℤ), an abstract rank-two free ℤ-module, with no coordinates chosen. Once T is framed by an ordered basis (μ, λ) of meridian and longitude, H₁(T; ℤ) is identified with ℤ × ℤ (first coordinate the μ-coefficient, second the λ-coefficient) and every slope acquires a value p / q ∈ ℚ ∪ {∞}, the ratio of its coordinates; the filling then sends the solid torus's meridian to p · μ + q · λ.

This file builds the slope arithmetic for the framed model. It keeps two objects distinct: the sign-quotient Slope, which is basis-free, and the ℚ ∪ {∞} parametrisation, which depends on a basis. So TauCeti.Slope M is the set of primitive classes modulo sign in an abstract ℤ-module M, and every framing-dependent notion — meridian, longitude, value, and the bijection slopeEquiv — belongs to TauCeti.FramedBoundaryTorus, which carries its own ordered basis. For a topological boundary torus, H₁(T; ℤ) is BoundaryTorus.firstHomology, its degree-one singular homology; the framed boundary torus of a knot exterior is built in TauCeti.LowDimTopology.DehnSurgery.Framing, as TauCeti.IsSolidTorusNeighborhood.framedBoundaryTorus via TauCeti.FramedBoundaryTorus.ofHomeomorph.

Primitivity of v : M is expressed basis-freely: v is primitive when some ℤ-linear functional M →ₗ[ℤ] ℤ sends it to 1, so v splits off a copy of ℤ. Over the standard lattice ℤ × ℤ this is exactly coprimality of the two coordinates, and that concrete arithmetic supplies the ℚ ∪ {∞} bijection through any framing's coordinate isomorphism.

Main definitions #

Main results #

ℚ ∪ {∞} is Mathlib's one-point extension OnePoint ℚ from Mathlib/Topology/Compactification/OnePoint/Basic.lean; the reduced-fraction bookkeeping reuses Mathlib's Rat normalisation (Rat.num_div_den, Rat.num_div_eq_of_coprime, Rat.den_div_eq_of_coprime).

Primitive classes and the basis-free slope type #

The Quotient model of Slope, and the bodies of the maps into and out of it, are implementation details: the underlying setoid is private and the bodies stay unexposed, so consumers work through the public defining equations (Slope.congr_mk, Slope.value_mk, slopeOfValue_infty, slopeEquivStd_apply, …). Those equations are proved by a parenthesised (rfl), which keeps them ordinary propositional lemmas instead of implicitly @[defeq] ones; an exported @[defeq] theorem would have to expose every definition it unfolds.

def TauCeti.Slope (M : Type u_3) [AddCommGroup M] :
Type u_3

A slope on a boundary torus with homology M: a primitive homology class taken modulo the sign action, i.e. an unoriented essential simple closed curve up to isotopy. This is basis-free — it refers only to the abstract module M, not to any choice of meridian-longitude basis.

Instances For
    def TauCeti.Slope.mk {M : Type u_1} [AddCommGroup M] (v : M) (h : IsPrimitive v) :

    The slope represented by a primitive class v : M.

    Instances For
      theorem TauCeti.Slope.mk_eq_mk {M : Type u_1} [AddCommGroup M] {v w : M} (hv : IsPrimitive v) (hw : IsPrimitive w) (h : v = w ∨ v = -w) :
      mk v hv = mk w hw
      @[simp]
      theorem TauCeti.Slope.mk_eq_mk_iff {M : Type u_1} [AddCommGroup M] {v w : M} (hv : IsPrimitive v) (hw : IsPrimitive w) :
      mk v hv = mk w hw ↔ v = w ∨ v = -w

      Two primitive representatives define the same slope exactly when they agree up to sign.

      theorem TauCeti.Slope.induction_on {M : Type u_1} [AddCommGroup M] {C : Slope M → Prop} (s : Slope M) (h : ∀ (v : M) (hv : IsPrimitive v), C (mk v hv)) :
      C s
      def TauCeti.Slope.congr {M : Type u_1} {N : Type u_2} [AddCommGroup M] [AddCommGroup N] [Module ℤ M] [Module ℤ N] (φ : M ≃ₗ[ℤ] N) :

      A ℤ-linear equivalence M ≃ₗ[ℤ] N transports slopes bijectively; a framing's coordinate isomorphism uses this to carry a slope to the standard lattice.

      Instances For
        @[simp]
        theorem TauCeti.Slope.congr_mk {M : Type u_1} {N : Type u_2} [AddCommGroup M] [AddCommGroup N] [Module ℤ M] [Module ℤ N] (φ : M ≃ₗ[ℤ] N) (v : M) (h : IsPrimitive v) :
        (congr φ) (mk v h) = mk (φ v) ⋯
        @[simp]
        theorem TauCeti.Slope.congr_symm {M : Type u_1} {N : Type u_2} [AddCommGroup M] [AddCommGroup N] [Module ℤ M] [Module ℤ N] (φ : M ≃ₗ[ℤ] N) :

        Transporting slopes along φ and along φ.symm are inverse to one another.

        The standard lattice ℤ × ℤ #

        For the standard lattice ℤ × ℤ, primitivity is coprimality of the coordinates, and the reduced fraction p / q supplies the ℚ ∪ {∞} parametrisation. Every framing produces its own copy of this bijection through its coordinate isomorphism.

        Over ℤ × ℤ, a class is primitive exactly when its two coordinates are coprime.

        The first standard basis vector of ℤ × ℤ is primitive.

        The second standard basis vector of ℤ × ℤ is primitive.

        The reduced form (r.num, r.den) of a rational is a primitive class.

        A primitive class of ℤ × ℤ with vanishing second coordinate has first coordinate ±1.

        The value p / q ∈ ℚ ∪ {∞} of a class v = (p, q), taken to be ∞ when q = 0. This is the ratio of the meridian- and longitude-coordinates in a framing.

        Instances For
          @[simp]
          theorem TauCeti.slopeValue_of_snd_ne_zero {v : ℤ × ℤ} (hq : v.2 ≠ 0) :
          slopeValue v = ↑(↑v.1 / ↑v.2)

          The value of a class is unchanged by the sign action v ↦ -v.

          The ℚ ∪ {∞} value of a standard-lattice slope, the ratio of its coordinates.

          Instances For
            @[simp]

            The primitive class attached to a value in ℚ ∪ {∞}: the class (1, 0) for ∞, and the reduced fraction (r.num, r.den) for a rational r.

            Instances For
              @[simp]

              Reading off the value of a standard-lattice slope and rebuilding a slope from it recovers the original slope.

              The standard-lattice slope built from a value in ℚ ∪ {∞} has that value again.

              The standard slope parametrisation. For the standard lattice ℤ × ℤ, primitive homology classes modulo sign biject with ℚ ∪ {∞}: a reduced fraction p / q corresponds to the primitive class (p, q), with ∞ the class (1, 0). A framing produces the corresponding bijection on any boundary torus through its coordinate isomorphism (TauCeti.FramedBoundaryTorus.slopeEquiv).

              Instances For

                Boundary tori and framings #

                A framing supplies the coordinate isomorphism H₁(T; ℤ) ≃ ℤ × ℤ that turns the basis-free Slope into the ℚ ∪ {∞} parametrisation. The homology object and the ordered meridian-longitude basis are carried explicitly, keeping the basis-dependent notions (meridian, longitude, value, slopeEquiv) genuinely parametrised by the framing rather than globally canonical.

                A boundary torus is a topological space that is homeomorphic to the standard two-torus; no particular homeomorphism is chosen. Its first homology, rather than an unrelated abstract lattice, is the carrier on which slopes are defined.

                • carrier : Type

                  The underlying topological space.

                • topologicalSpace : TopologicalSpace self.carrier
                • parametrization : Nonempty (self.carrier ≃ₜ UnitAddTorus (Fin 2))

                  The assertion that the space is homeomorphic to the standard two-torus. Only the existence of such a homeomorphism is recorded, keeping this field a Prop, so it never obstructs equality: two boundary tori with the same carrier and the same topology are equal.

                Instances For
                  @[reducible, inline]

                  The first singular homology of a boundary torus with integer coefficients.

                  Instances For

                    A framed boundary torus: a boundary torus together with an ordered meridian-longitude basis (μ, λ) = (basis 0, basis 1) of its actual singular homology group. The framing is exactly this ordered basis; it is what identifies H₁(T; ℤ) with ℤ × ℤ and so what the ℚ ∪ {∞} parametrisation depends on.

                    Instances For
                      @[reducible, inline]

                      The first singular homology group of the underlying boundary torus.

                      Instances For

                        The coordinate isomorphism H₁(T; ℤ) ≃ ℤ × ℤ induced by the ordered basis (μ, λ), sending a class to its (μ, λ)-coordinates. This is the data that makes the parametrisation basis-dependent.

                        Instances For
                          @[simp]

                          The inverse coordinate isomorphism reads a pair of coordinates as the corresponding combination p · μ + q · λ of the framing basis.

                          The meridian slope μ = basis 0 of the framing.

                          Instances For

                            The longitude slope λ = basis 1 of the framing.

                            Instances For

                              The framing-dependent value p / q ∈ ℚ ∪ {∞} of a slope: the ratio of its (μ, λ)-coordinates. Different framings give different values, which is why this is an operation of the framing rather than of the basis-free Slope.

                              Instances For

                                The framed slope parametrisation. A framing makes primitive homology classes modulo sign biject with ℚ ∪ {∞}, a reduced fraction p / q corresponding to the class with (μ, λ)-coordinates (p, q) and ∞ to the meridian.

                                Instances For
                                  @[simp]

                                  The value of the slope of a primitive class is the ratio of its (μ, λ)-coordinates.

                                  @[simp]

                                  The framed parametrisation in the inverse direction. The slope with value x ∈ ℚ ∪ {∞} is the one whose (μ, λ)-coordinates are the standard reduced pair slopeOfValue x; for a rational p / q in lowest terms that is the class p · μ + q · λ, by TauCeti.FramedBoundaryTorus.coord_symm_apply.

                                  @[simp]

                                  The framed meridian has slope value ∞.

                                  @[simp]

                                  The framed longitude has slope value 0.

                                  A slope of finite value is not the meridian, whose value is ∞.

                                  Changing the longitude #

                                  The basis (μ, λ + n · μ) of H₁(T; ℤ).

                                  Instances For
                                    @[reducible, inline]

                                    The framing of the same torus with the same meridian μ and the longitude λ + n · μ. For the boundary torus of a knot exterior this is the framing changed by n twists about the meridian.

                                    This is reducible so that the torus of the new framing is that of T for consumers, and hence that classes of T.H are classes of (T.shiftLongitude n).H.

                                    Instances For
                                      @[simp]
                                      theorem TauCeti.FramedBoundaryTorus.coord_shiftLongitude (T : FramedBoundaryTorus) (n : ℤ) (x : T.H) :
                                      (T.shiftLongitude n).coord x = ((T.coord x).1 - n * (T.coord x).2, (T.coord x).2)

                                      The coordinates of a class for the shifted framing: p · μ + q · λ = (p - n q) · μ + q · (λ + n · μ).

                                      @[simp]

                                      The shifted framing keeps the meridian.

                                      @[simp]

                                      The longitude of the shifted framing is λ + n · μ.

                                      Slope values under a change of longitude. Replacing the longitude λ by λ + n · μ lowers every finite slope value by n and keeps ∞: the class p · μ + q · λ is (p - n q) · μ + q · (λ + n · μ).

                                      This is not a simp lemma: framings such as the preferred framing of a knot are reducible shiftLongitudes, and rewriting their values this way would preempt the lemmas stated for them.

                                      @[simp]

                                      Shifting the longitude by 0 leaves the framing unchanged.