Documentation

Hironaka.Manifold.BlowUp.Lift

The lifting lemma: chart changes lift to the blow-up charts #

Conditions (1) and (2) of [BM88, Definition 4.1] determine the blowing-up uniquely up to an isomorphism commuting with the blow-down map. This rests on lifting a centre-preserving analytic isomorphism g between open subsets of π•œβΏ to the blow-up charts, the analytic heart of the construction of the blowing-up of a manifold and of its uniqueness. This file proves that lifting lemma in coordinates.

These are the inputs of the gluing of the blow-up charts into the blown-up manifold (Hironaka.Manifold.BlowUp.Atlas and the modules gluing the atlas). The lifting lemma is not proved in the source; the argument above is elementary.

Coordinate division on an open set #

noncomputable def Manifold.coordQuot {π•œ : Type} [RCLike π•œ] {n : β„•} (k : Fin n) (F : (Fin n β†’ π•œ) β†’ π•œ) (x : Fin n β†’ π•œ) :
π•œ

The canonical quotient of F by the coordinate x_k: F x / x_k off the hyperplane {x_k = 0}, the partial derivative βˆ‚_k F x on it.

Equations
Instances For
    theorem Manifold.coordQuot_of_ne {π•œ : Type} [RCLike π•œ] {n : β„•} (k : Fin n) (F : (Fin n β†’ π•œ) β†’ π•œ) {x : Fin n β†’ π•œ} (hx : x k β‰  0) :
    coordQuot k F x = F x / x k

    The quotient off the hyperplane is the literal quotient.

    theorem Manifold.coordQuot_of_eq {π•œ : Type} [RCLike π•œ] {n : β„•} (k : Fin n) (F : (Fin n β†’ π•œ) β†’ π•œ) {x : Fin n β†’ π•œ} (hx : x k = 0) :
    coordQuot k F x = (fderiv π•œ F x) (Pi.single k 1)

    The quotient on the hyperplane is the partial derivative.

    theorem Manifold.mul_coordQuot {π•œ : Type} [RCLike π•œ] {n : β„•} (k : Fin n) (F : (Fin n β†’ π•œ) β†’ π•œ) {N : Set (Fin n β†’ π•œ)} (h0 : βˆ€ x ∈ N, x k = 0 β†’ F x = 0) {x : Fin n β†’ π•œ} (hx : x ∈ N) :
    x k * coordQuot k F x = F x

    x_k Β· coordQuot k F x = F x for F vanishing on the hyperplane.

    theorem Manifold.eq_fderiv_of_eq_mul {π•œ : Type} [RCLike π•œ] {n : β„•} (k : Fin n) {G Q : (Fin n β†’ π•œ) β†’ π•œ} {U : Set (Fin n β†’ π•œ)} (hU : IsOpen U) (hQ : AnalyticOnNhd π•œ Q U) (h : βˆ€ y ∈ U, G y = y k * Q y) {y : Fin n β†’ π•œ} (hy : y ∈ U) (hyk : y k = 0) :
    (fderiv π•œ G y) (Pi.single k 1) = Q y

    If G = x_k Β· Q on an open set with Q analytic, then Q is the partial derivative of G on the hyperplane.

    theorem Manifold.analyticOnNhd_coordQuot {π•œ : Type} [RCLike π•œ] {n : β„•} (k : Fin n) (F : (Fin n β†’ π•œ) β†’ π•œ) {N : Set (Fin n β†’ π•œ)} (hN : IsOpen N) (hF : AnalyticOnNhd π•œ F N) (h0 : βˆ€ x ∈ N, x k = 0 β†’ F x = 0) :
    AnalyticOnNhd π•œ (coordQuot k F) N

    Coordinate division on an open set: the canonical quotient of an analytic function vanishing on the hyperplane {x_k = 0} is analytic. The division on a polydisc at the origin is translated to each point of the hyperplane.

    Tangency and the chain rule for centre-preserving maps #

    theorem Manifold.fderiv_apply_mem_of_preserves_center {π•œ : Type} [RCLike π•œ] {n c : β„•} (Οƒ Ο„ : Fin c β†ͺ Fin n) {h : (Fin n β†’ π•œ) β†’ Fin n β†’ π•œ} {U : Set (Fin n β†’ π•œ)} (hU : IsOpen U) (hh : AnalyticOnNhd π•œ h U) (hpres : βˆ€ y ∈ U, y ∈ blowUpCenter Οƒ β†’ h y ∈ blowUpCenter Ο„) {x : Fin n β†’ π•œ} (hx : x ∈ U) (hxc : x ∈ blowUpCenter Οƒ) {t : Fin n β†’ π•œ} (ht : βˆ€ (k : Fin c), t (Οƒ k) = 0) (k : Fin c) :
    (fderiv π•œ h x) t (Ο„ k) = 0

    A map carrying the coordinate subspace {x_Οƒ = 0} into {x_Ο„ = 0} near x has a derivative mapping the tangent vectors of the first into those of the second.

    theorem Manifold.fderiv_comp_fderiv_eq_id {π•œ : Type} [RCLike π•œ] {n : β„•} {g g' : (Fin n β†’ π•œ) β†’ Fin n β†’ π•œ} {V₁ Vβ‚‚ : Set (Fin n β†’ π•œ)} (hV₁ : IsOpen V₁) (hg : AnalyticOnNhd π•œ g V₁) (hg' : AnalyticOnNhd π•œ g' Vβ‚‚) (hmaps : βˆ€ x ∈ V₁, g x ∈ Vβ‚‚) (hgg' : βˆ€ x ∈ V₁, g' (g x) = x) {x : Fin n β†’ π•œ} (hx : x ∈ V₁) :
    fderiv π•œ g' (g x) ∘SL fderiv π•œ g x = ContinuousLinearMap.id π•œ (Fin n β†’ π•œ)

    Chain rule for a two-sided inverse on an open set: Dg'(g x) ∘ Dg(x) = id.

    The direction vector and the lift #

    noncomputable def Manifold.normalComp {π•œ : Type} [RCLike π•œ] {n c : β„•} (Οƒ Ο„ : Fin c β†ͺ Fin n) (i : Fin c) (g : (Fin n β†’ π•œ) β†’ Fin n β†’ π•œ) (k : Fin c) (u : Fin n β†’ π•œ) :
    π•œ

    The normal components of g ∘ Ο€_i in the target block Ο„.

    Equations
    Instances For
      noncomputable def Manifold.liftDir {π•œ : Type} [RCLike π•œ] {n c : β„•} (Οƒ Ο„ : Fin c β†ͺ Fin n) (i : Fin c) (g : (Fin n β†’ π•œ) β†’ Fin n β†’ π•œ) (k : Fin c) :
      (Fin n β†’ π•œ) β†’ π•œ

      The direction quotient D_k = (g ∘ Ο€_i)_{Ο„ k} / u_{Οƒ i}, canonical across {u_{Οƒ i} = 0}.

      Equations
      Instances For
        noncomputable def Manifold.liftMap {π•œ : Type} [RCLike π•œ] {n c : β„•} (Οƒ Ο„ : Fin c β†ͺ Fin n) (i : Fin c) (g : (Fin n β†’ π•œ) β†’ Fin n β†’ π•œ) (k : Fin c) (v : Fin n β†’ π•œ) :
        Fin n β†’ π•œ

        The lift of g from chart i (block Οƒ) to chart k (block Ο„): u'_{Ο„ k} = u_{Οƒ i} D_k, u'_{Ο„ l} = D_l / D_k, the coordinates off the block Ο„ those of g ∘ Ο€_i.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          theorem Manifold.liftMap_apply_k {π•œ : Type} [RCLike π•œ] {n c : β„•} {Οƒ Ο„ : Fin c β†ͺ Fin n} {i : Fin c} {g : (Fin n β†’ π•œ) β†’ Fin n β†’ π•œ} (k : Fin c) (v : Fin n β†’ π•œ) :
          liftMap Οƒ Ο„ i g k v (Ο„ k) = v (Οƒ i) * liftDir Οƒ Ο„ i g k v

          The lift at the target scaling slot: u'_{Ο„ k} = u_{Οƒ i} D_k.

          theorem Manifold.liftMap_apply_block {π•œ : Type} [RCLike π•œ] {n c : β„•} {Οƒ Ο„ : Fin c β†ͺ Fin n} {i : Fin c} {g : (Fin n β†’ π•œ) β†’ Fin n β†’ π•œ} {k l : Fin c} (hlk : l β‰  k) (v : Fin n β†’ π•œ) :
          liftMap Οƒ Ο„ i g k v (Ο„ l) = liftDir Οƒ Ο„ i g l v / liftDir Οƒ Ο„ i g k v

          The lift at a target ratio slot: u'_{Ο„ l} = D_l / D_k.

          theorem Manifold.liftMap_apply_off {π•œ : Type} [RCLike π•œ] {n c : β„•} {Οƒ Ο„ : Fin c β†ͺ Fin n} {i : Fin c} {g : (Fin n β†’ π•œ) β†’ Fin n β†’ π•œ} (k : Fin c) (v : Fin n β†’ π•œ) {j : Fin n} (hj : βˆ€ (l : Fin c), Ο„ l β‰  j) :
          liftMap Οƒ Ο„ i g k v j = g (blowUpChartMap Οƒ i v) j

          The lift off the target block: the coordinates of g ∘ Ο€_i.

          theorem Manifold.normalComp_eq_zero {π•œ : Type} [RCLike π•œ] {n c : β„•} {Οƒ Ο„ : Fin c β†ͺ Fin n} {i : Fin c} {g : (Fin n β†’ π•œ) β†’ Fin n β†’ π•œ} {V₁ : Set (Fin n β†’ π•œ)} (hc : βˆ€ x ∈ V₁, x ∈ blowUpCenter Οƒ ↔ g x ∈ blowUpCenter Ο„) (k : Fin c) {u : Fin n β†’ π•œ} (hu : blowUpChartMap Οƒ i u ∈ V₁) (h0 : u (Οƒ i) = 0) :
          normalComp Οƒ Ο„ i g k u = 0

          The normal components of g ∘ Ο€_i vanish on {u_{Οƒ i} = 0}.

          theorem Manifold.analyticOnNhd_normalComp {π•œ : Type} [RCLike π•œ] {n c : β„•} {Οƒ Ο„ : Fin c β†ͺ Fin n} {i : Fin c} {g : (Fin n β†’ π•œ) β†’ Fin n β†’ π•œ} {V₁ : Set (Fin n β†’ π•œ)} (hg : AnalyticOnNhd π•œ g V₁) (k : Fin c) :
          AnalyticOnNhd π•œ (normalComp Οƒ Ο„ i g k) (blowUpChartMap Οƒ i ⁻¹' V₁)

          The normal components of g ∘ Ο€_i are analytic.

          theorem Manifold.analyticOnNhd_liftDir {π•œ : Type} [RCLike π•œ] {n c : β„•} {Οƒ Ο„ : Fin c β†ͺ Fin n} {i : Fin c} {g : (Fin n β†’ π•œ) β†’ Fin n β†’ π•œ} {V₁ : Set (Fin n β†’ π•œ)} (hV₁ : IsOpen V₁) (hg : AnalyticOnNhd π•œ g V₁) (hc : βˆ€ x ∈ V₁, x ∈ blowUpCenter Οƒ ↔ g x ∈ blowUpCenter Ο„) (k : Fin c) :
          AnalyticOnNhd π•œ (liftDir Οƒ Ο„ i g k) (blowUpChartMap Οƒ i ⁻¹' V₁)

          The direction quotients are analytic on Ο€_i⁻¹(V₁).

          theorem Manifold.mul_liftDir {π•œ : Type} [RCLike π•œ] {n c : β„•} {Οƒ Ο„ : Fin c β†ͺ Fin n} {i : Fin c} {g : (Fin n β†’ π•œ) β†’ Fin n β†’ π•œ} {V₁ : Set (Fin n β†’ π•œ)} (hc : βˆ€ x ∈ V₁, x ∈ blowUpCenter Οƒ ↔ g x ∈ blowUpCenter Ο„) (k : Fin c) {u : Fin n β†’ π•œ} (hu : blowUpChartMap Οƒ i u ∈ V₁) :
          u (Οƒ i) * liftDir Οƒ Ο„ i g k u = g (blowUpChartMap Οƒ i u) (Ο„ k)

          u_{Οƒ i} Β· D_k(u) = (g ∘ Ο€_i)(u)_{Ο„ k}.

          theorem Manifold.exists_liftDir_ne_zero {π•œ : Type} [RCLike π•œ] {n c : β„•} {Οƒ Ο„ : Fin c β†ͺ Fin n} {i : Fin c} {g : (Fin n β†’ π•œ) β†’ Fin n β†’ π•œ} {V₁ Vβ‚‚ : Set (Fin n β†’ π•œ)} (hV₁ : IsOpen V₁) (hg : AnalyticOnNhd π•œ g V₁) (hc : βˆ€ x ∈ V₁, x ∈ blowUpCenter Οƒ ↔ g x ∈ blowUpCenter Ο„) (hVβ‚‚ : IsOpen Vβ‚‚) {g' : (Fin n β†’ π•œ) β†’ Fin n β†’ π•œ} (hg₁ : Set.BijOn g V₁ Vβ‚‚) (hg' : AnalyticOnNhd π•œ g' Vβ‚‚) (hgg' : βˆ€ x ∈ V₁, g' (g x) = x) {u : Fin n β†’ π•œ} (hu : blowUpChartMap Οƒ i u ∈ V₁) :
          βˆƒ (k : Fin c), liftDir Οƒ Ο„ i g k u β‰  0

          The direction vector is nonzero: some D_k(u) β‰  0.

          theorem Manifold.blowUpChartMap_liftMap {π•œ : Type} [RCLike π•œ] {n c : β„•} {Οƒ Ο„ : Fin c β†ͺ Fin n} {i : Fin c} {g : (Fin n β†’ π•œ) β†’ Fin n β†’ π•œ} {V₁ : Set (Fin n β†’ π•œ)} (hc : βˆ€ x ∈ V₁, x ∈ blowUpCenter Οƒ ↔ g x ∈ blowUpCenter Ο„) (k : Fin c) {v : Fin n β†’ π•œ} (hv : blowUpChartMap Οƒ i v ∈ V₁) (hk : liftDir Οƒ Ο„ i g k v β‰  0) :
          blowUpChartMap Ο„ k (liftMap Οƒ Ο„ i g k v) = g (blowUpChartMap Οƒ i v)

          The lift commutes with the blow-down: Ο€_k ∘ G = g ∘ Ο€_i where D_k β‰  0.

          theorem Manifold.analyticOnNhd_liftMap {π•œ : Type} [RCLike π•œ] {n c : β„•} {Οƒ Ο„ : Fin c β†ͺ Fin n} {i : Fin c} {g : (Fin n β†’ π•œ) β†’ Fin n β†’ π•œ} {V₁ : Set (Fin n β†’ π•œ)} (hV₁ : IsOpen V₁) (hg : AnalyticOnNhd π•œ g V₁) (hc : βˆ€ x ∈ V₁, x ∈ blowUpCenter Οƒ ↔ g x ∈ blowUpCenter Ο„) (k : Fin c) :
          AnalyticOnNhd π•œ (liftMap Οƒ Ο„ i g k) (blowUpChartMap Οƒ i ⁻¹' V₁ ∩ {v : Fin n β†’ π•œ | liftDir Οƒ Ο„ i g k v β‰  0})

          The lift is analytic where D_k β‰  0.

          theorem Manifold.exists_lift_blowUpChartMap {π•œ : Type} [RCLike π•œ] {n c : β„•} {Οƒ Ο„ : Fin c β†ͺ Fin n} {i : Fin c} {g : (Fin n β†’ π•œ) β†’ Fin n β†’ π•œ} {V₁ Vβ‚‚ : Set (Fin n β†’ π•œ)} (hV₁ : IsOpen V₁) (hg : AnalyticOnNhd π•œ g V₁) (hc : βˆ€ x ∈ V₁, x ∈ blowUpCenter Οƒ ↔ g x ∈ blowUpCenter Ο„) (hVβ‚‚ : IsOpen Vβ‚‚) {g' : (Fin n β†’ π•œ) β†’ Fin n β†’ π•œ} (hg₁ : Set.BijOn g V₁ Vβ‚‚) (hg' : AnalyticOnNhd π•œ g' Vβ‚‚) (hgg' : βˆ€ x ∈ V₁, g' (g x) = x) {u : Fin n β†’ π•œ} (hu : blowUpChartMap Οƒ i u ∈ V₁) :
          βˆƒ (k : Fin c) (N : Set (Fin n β†’ π•œ)) (G : (Fin n β†’ π•œ) β†’ Fin n β†’ π•œ), IsOpen N ∧ u ∈ N ∧ AnalyticOnNhd π•œ G N ∧ βˆ€ v ∈ N, blowUpChartMap Ο„ k (G v) = g (blowUpChartMap Οƒ i v)

          The lifting lemma, local form: every point of Ο€_i⁻¹(V₁) has a neighbourhood on which g ∘ Ο€_i factors analytically through some chart k of the target block. This is the analytic content of the uniqueness clause of [BM88, Definition 4.1].

          Uniqueness of lifts by density #

          theorem Manifold.subset_closure_ne {π•œ : Type} [RCLike π•œ] {n c : β„•} (Οƒ : Fin c β†ͺ Fin n) {i : Fin c} {N : Set (Fin n β†’ π•œ)} (hN : IsOpen N) :
          N βŠ† closure {v : Fin n β†’ π•œ | v ∈ N ∧ v (Οƒ i) β‰  0}

          The complement of the exceptional hyperplane is dense in every open set: a point with v_{Οƒ i} = 0 is a limit of points v + s e_{Οƒ i}, s β‰  0.

          theorem Manifold.eqOn_of_lift_blowUpChartMap {π•œ : Type} [RCLike π•œ] {n c : β„•} (Οƒ : Fin c β†ͺ Fin n) {i k : Fin c} {Ο„ : Fin c β†ͺ Fin n} {N : Set (Fin n β†’ π•œ)} (hN : IsOpen N) {g G₁ Gβ‚‚ : (Fin n β†’ π•œ) β†’ Fin n β†’ π•œ} (h₁ : ContinuousOn G₁ N) (hβ‚‚ : ContinuousOn Gβ‚‚ N) (hG₁ : βˆ€ v ∈ N, blowUpChartMap Ο„ k (G₁ v) = g (blowUpChartMap Οƒ i v)) (hGβ‚‚ : βˆ€ v ∈ N, blowUpChartMap Ο„ k (Gβ‚‚ v) = g (blowUpChartMap Οƒ i v)) (hinj : βˆ€ v ∈ N, v (Οƒ i) β‰  0 β†’ g (blowUpChartMap Οƒ i v) βˆ‰ blowUpCenter Ο„) :
          Set.EqOn G₁ Gβ‚‚ N

          Uniqueness of the lift: two continuous lifts of g through chart k on an open set agree. They agree off the exceptional hyperplane, where Ο€_k is injective (the lifts have G_v(Ο„ k) β‰  0 there because g carries the points off the centre off the centre), and the complement is dense.

          Congruence, the identity and the cocycle for the direction quotients #

          theorem Manifold.liftDir_congr {π•œ : Type} [RCLike π•œ] {n c : β„•} {Οƒ Ο„ : Fin c β†ͺ Fin n} {i : Fin c} {g₁ gβ‚‚ : (Fin n β†’ π•œ) β†’ Fin n β†’ π•œ} {V : Set (Fin n β†’ π•œ)} (hV : IsOpen V) (h : βˆ€ x ∈ V, g₁ x = gβ‚‚ x) (k : Fin c) {u : Fin n β†’ π•œ} (hu : blowUpChartMap Οƒ i u ∈ V) :
          liftDir Οƒ Ο„ i g₁ k u = liftDir Οƒ Ο„ i gβ‚‚ k u

          The direction quotients depend on g only near Ο€_i u.

          theorem Manifold.liftMap_congr {π•œ : Type} [RCLike π•œ] {n c : β„•} {Οƒ Ο„ : Fin c β†ͺ Fin n} {i : Fin c} {g₁ gβ‚‚ : (Fin n β†’ π•œ) β†’ Fin n β†’ π•œ} {V : Set (Fin n β†’ π•œ)} (hV : IsOpen V) (h : βˆ€ x ∈ V, g₁ x = gβ‚‚ x) (k : Fin c) {v : Fin n β†’ π•œ} (hv : blowUpChartMap Οƒ i v ∈ V) :
          liftMap Οƒ Ο„ i g₁ k v = liftMap Οƒ Ο„ i gβ‚‚ k v

          The lift depends on g only near Ο€_i v.

          theorem Manifold.analyticOnNhd_of_eqOn_id {π•œ : Type} [RCLike π•œ] {n : β„•} {g : (Fin n β†’ π•œ) β†’ Fin n β†’ π•œ} {V : Set (Fin n β†’ π•œ)} (hV : IsOpen V) (hid : βˆ€ x ∈ V, g x = x) :
          AnalyticOnNhd π•œ g V

          A map equal to the identity on an open set is analytic there.

          theorem Manifold.mem_center_iff_of_eqOn_id {π•œ : Type} [RCLike π•œ] {n c : β„•} {Οƒ : Fin c β†ͺ Fin n} {g : (Fin n β†’ π•œ) β†’ Fin n β†’ π•œ} {V : Set (Fin n β†’ π•œ)} (hid : βˆ€ x ∈ V, g x = x) (x : Fin n β†’ π•œ) :
          x ∈ V β†’ (x ∈ blowUpCenter Οƒ ↔ g x ∈ blowUpCenter Οƒ)

          A map equal to the identity on an open set preserves the centre there.

          theorem Manifold.liftDir_self_of_eqOn_id {π•œ : Type} [RCLike π•œ] {n c : β„•} {Οƒ : Fin c β†ͺ Fin n} {i : Fin c} {g : (Fin n β†’ π•œ) β†’ Fin n β†’ π•œ} {V : Set (Fin n β†’ π•œ)} (hV : IsOpen V) (hid : βˆ€ x ∈ V, g x = x) {u : Fin n β†’ π•œ} (hu : blowUpChartMap Οƒ i u ∈ V) :
          liftDir Οƒ Οƒ i g i u = 1

          Where g is the identity, D_i = 1.

          theorem Manifold.liftDir_of_eqOn_id {π•œ : Type} [RCLike π•œ] {n c : β„•} {Οƒ : Fin c β†ͺ Fin n} {i : Fin c} {g : (Fin n β†’ π•œ) β†’ Fin n β†’ π•œ} {V : Set (Fin n β†’ π•œ)} (hV : IsOpen V) (hid : βˆ€ x ∈ V, g x = x) {k : Fin c} (hk : k β‰  i) {u : Fin n β†’ π•œ} (hu : blowUpChartMap Οƒ i u ∈ V) :
          liftDir Οƒ Οƒ i g k u = u (Οƒ k)

          Where g is the identity, D_k = u_{Οƒ k} for k β‰  i.

          theorem Manifold.liftMap_eq_blowUpTransition {π•œ : Type} [RCLike π•œ] {n c : β„•} {Οƒ : Fin c β†ͺ Fin n} {i : Fin c} {g : (Fin n β†’ π•œ) β†’ Fin n β†’ π•œ} {V : Set (Fin n β†’ π•œ)} (hV : IsOpen V) (hid : βˆ€ x ∈ V, g x = x) (k : Fin c) {u : Fin n β†’ π•œ} (hu : blowUpChartMap Οƒ i u ∈ V) (hk : liftDir Οƒ Οƒ i g k u β‰  0) :
          liftMap Οƒ Οƒ i g k u = blowUpTransition Οƒ i k u

          The lift of (a map equal to) the identity from chart i to chart k is the transition map T_ik of Hironaka.Manifold.BlowUp.Charts.

          theorem Manifold.liftDir_comp {π•œ : Type} [RCLike π•œ] {n c : β„•} {Οƒ Ο„ ρ : Fin c β†ͺ Fin n} {i : Fin c} {g : (Fin n β†’ π•œ) β†’ Fin n β†’ π•œ} {V : Set (Fin n β†’ π•œ)} {g' : (Fin n β†’ π•œ) β†’ Fin n β†’ π•œ} {W : Set (Fin n β†’ π•œ)} (hV : IsOpen V) (hg : AnalyticOnNhd π•œ g V) (hc : βˆ€ x ∈ V, x ∈ blowUpCenter Οƒ ↔ g x ∈ blowUpCenter Ο„) (hW : IsOpen W) (hg' : AnalyticOnNhd π•œ g' W) (hc' : βˆ€ x ∈ W, x ∈ blowUpCenter Ο„ ↔ g' x ∈ blowUpCenter ρ) (hmaps : βˆ€ x ∈ V, g x ∈ W) (k l : Fin c) {u : Fin n β†’ π•œ} (hu : blowUpChartMap Οƒ i u ∈ V) (hk : liftDir Οƒ Ο„ i g k u β‰  0) :
          liftDir Οƒ ρ i (g' ∘ g) l u = liftDir Οƒ Ο„ i g k u * liftDir Ο„ ρ k g' l (liftMap Οƒ Ο„ i g k u)

          The cocycle of the direction quotients: for g followed by g', D^{g' ∘ g}_l(u) = D^g_k(u) · D^{g'}_l(G_k u) with G_k the lift of g to chart k.