Documentation

TauCeti.RingTheory.FormalGroup.Hom.Basic

Homomorphisms and isomorphisms of formal group laws #

A homomorphism is a power series with zero constant term carrying one formal group law to another. Composition is substitution. An isomorphism carries a specified inverse homomorphism; it is strict when its linear coefficient is one. These maps act on the native power-series points, including points with nilpotent, not necessarily zero, constant coefficient.

The homomorphism defect f(F(X, Y)) - G(f(X), f(Y)) (FormalGroup.homDefect) of a power series f measures how far f is from a homomorphism: it vanishes exactly for homomorphisms (TauCeti.FormalGroupHom.homDefect_toPowerSeries, TauCeti.FormalGroupHom.ofHomDefectEqZero). At substitutable x, y the defect is f(F(x, y)) - G(f(x), f(y)) (FormalGroup.subst_homDefect); in particular it is f(F(X, Y)) - G(f(X), f(Y)) (FormalGroup.homDefect_eq_sub_subst_pair). The defect of X is the difference F - G (FormalGroup.homDefect_X). Towards the additive formal group law the defect is additive in f (FormalGroup.homDefect_𝔾ₐ_sub) and vanishes to the order of f (FormalGroup.le_order_homDefect_𝔾ₐ). Towards an arbitrary formal group law, the defects of two series with zero constant term that agree below degree n agree below degree n (FormalGroup.le_order_homDefect_sub), and replacing f by f + c Xⁿ changes the defect in degree n by c ((X + Y)ⁿ - Xⁿ - Yⁿ) (FormalGroup.homogeneousComponent_homDefect_add_sub).

Base change along a ring homomorphism φ : R →+* S applies φ to the coefficients of the series: TauCeti.FormalGroupHom.map and TauCeti.FormalGroupIso.map carry homomorphisms and isomorphisms between F and G to ones between F.map φ and G.map φ, compatibly with identities, composition, inverses and strictness. Base change along the identity ring homomorphism does nothing, and successive base changes agree with base change along the composite.

The bundles TauCeti.FormalGroupHom, TauCeti.FormalGroupIso, and TauCeti.FormalGroupIso.IsStrict are adapted from Wenrong Zou's Mathlib PR #38213 (https://github.com/leanprover-community/mathlib4/pull/38213). The action on points here uses Mathlib's native FormalGroup.Point carrier and formal substitution, not evaluation in an arbitrary topological algebra.

noncomputable def FormalGroup.homDefect {R : Type u_1} [CommRing R] (F G : FormalGroup R) (f : PowerSeries R) :

The homomorphism defect f(F(X, Y)) - G(f(X), f(Y)) of a power series f with respect to formal group laws F and G. It vanishes exactly when f satisfies the homomorphism equation (FormalGroup.homDefect_eq_zero_iff), and its order measures to which degree f is a homomorphism from F to G.

Instances For

    Unfold the homomorphism defect.

    The homomorphism defect vanishes exactly when f satisfies the homomorphism equation.

    The homomorphism defect at substitutable x, y is g(F(x, y)) - G(g(x), g(y)).

    @[simp]

    The homomorphism defect of X is the difference F - G of the formal group laws.

    The homomorphism defect towards the additive formal group law is the additivity defect f(F(X, Y)) - f(X) - f(Y).

    The homomorphism defect towards the additive formal group law is additive in the series.

    theorem FormalGroup.le_order_homDefect_𝔾ₐ {R : Type u_1} [CommRing R] (F : FormalGroup R) {g : PowerSeries R} {n : ℕ} (hg : ↑n ≤ g.order) :

    The homomorphism defect of g towards the additive formal group law vanishes to the order of g.

    The homomorphism defect of f, with G evaluated at the pair (f(X), f(Y)).

    @[simp]
    theorem FormalGroup.homDefect_zero {R : Type u_1} [CommRing R] {F G : FormalGroup R} :
    F.homDefect G 0 = 0

    The homomorphism defect of zero vanishes.

    The coefficients of G(x, z) - G(y, w) in degrees at most n are those of (x - y) + (z - w), when x - y and z - w have order at least n.

    The degree-n part of G(x, z) - G(y, w) is that of (x - y) + (z - w), when x - y and z - w have order at least n.

    theorem FormalGroup.le_order_homDefect_sub {R : Type u_1} [CommRing R] {F G : FormalGroup R} {f g : PowerSeries R} (hg : PowerSeries.constantCoeff g = 0) {n : ℕ} (hfg : ↑n ≤ (f - g).order) :
    ↑n ≤ (F.homDefect G f - F.homDefect G g).order

    The homomorphism defects of two series agreeing below degree n agree below degree n.

    The lowest-degree part of the change of the homomorphism defect under f ↦ f + c Xⁿ is c ((X + Y)ⁿ - Xⁿ - Yⁿ).

    structure TauCeti.FormalGroupHom {R : Type u_1} [CommRing R] (F G : FormalGroup R) :
    Type u_1

    A homomorphism of formal group laws is a series f with zero constant term such that f(F(X,Y)) = G(f(X),f(Y)).

    Instances For
      theorem TauCeti.FormalGroupHom.ext {R : Type u_1} {inst✝ : CommRing R} {F G : FormalGroup R} {x y : FormalGroupHom F G} (toPowerSeries : x.toPowerSeries = y.toPowerSeries) :
      x = y
      theorem TauCeti.FormalGroupHom.ext_iff {R : Type u_1} {inst✝ : CommRing R} {F G : FormalGroup R} {x y : FormalGroupHom F G} :
      def TauCeti.FormalGroupHom.ofSourceEq {R : Type u_1} [CommRing R] {F G F' : FormalGroup R} (e : F = F') (f : FormalGroupHom F G) :

      Transport a homomorphism along an equality of source formal groups.

      Instances For

        The series of a formal group homomorphism can be substituted.

        The homomorphism equation after substituting any admissible coordinate family.

        @[simp]

        A homomorphism of formal group laws has zero homomorphism defect.

        A power series without constant term whose homomorphism defect vanishes, as a homomorphism of formal group laws.

        Instances For

          A substitution inverse of a formal group homomorphism is a homomorphism.

          Instances For
            noncomputable def TauCeti.FormalGroupHom.id {R : Type u_1} [CommRing R] (F : FormalGroup R) :

            The identity homomorphism has underlying series X.

            Instances For
              noncomputable def TauCeti.FormalGroupHom.comp {R : Type u_1} [CommRing R] {F G H : FormalGroup R} (g : FormalGroupHom G H) (f : FormalGroupHom F G) :

              Composition of formal group homomorphisms, with the outer map first.

              Instances For
                @[simp]
                theorem TauCeti.FormalGroupHom.id_comp {R : Type u_1} [CommRing R] {F G : FormalGroup R} (f : FormalGroupHom F G) :
                (id G).comp f = f
                @[simp]
                theorem TauCeti.FormalGroupHom.comp_id {R : Type u_1} [CommRing R] {F G : FormalGroup R} (f : FormalGroupHom F G) :
                f.comp (id F) = f
                theorem TauCeti.FormalGroupHom.comp_assoc {R : Type u_1} [CommRing R] {F G H K : FormalGroup R} (h : FormalGroupHom H K) (g : FormalGroupHom G H) (f : FormalGroupHom F G) :
                (h.comp g).comp f = h.comp (g.comp f)

                Composition of formal group homomorphisms is associative.

                A left substitution inverse and a right substitution inverse of the same homomorphism agree.

                Linear coefficients multiply under composition.

                noncomputable def TauCeti.FormalGroupHom.applyPoint {R : Type u_1} [CommRing R] {F G : FormalGroup R} (f : FormalGroupHom F G) {σ : Type u_2} (x : F.Point σ) :
                G.Point σ

                Apply a homomorphism to a native formal power-series point by substitution.

                Instances For
                  @[simp]
                  theorem TauCeti.FormalGroupHom.applyPoint_val {R : Type u_1} [CommRing R] {F G : FormalGroup R} (f : FormalGroupHom F G) {σ : Type u_2} (x : F.Point σ) :
                  @[simp]
                  theorem TauCeti.FormalGroupHom.applyPoint_zero {R : Type u_1} [CommRing R] {F G : FormalGroup R} (f : FormalGroupHom F G) {σ : Type u_2} :
                  @[simp]
                  theorem TauCeti.FormalGroupHom.applyPoint_add {R : Type u_1} [CommRing R] {F G : FormalGroup R} (f : FormalGroupHom F G) {σ : Type u_2} (x y : F.Point σ) :
                  noncomputable def TauCeti.FormalGroupHom.toAddMonoidHom {R : Type u_1} [CommRing R] {F G : FormalGroup R} (f : FormalGroupHom F G) (σ : Type u_2) :
                  F.Point σ →+ G.Point σ

                  The induced additive map on native power-series points.

                  Instances For
                    @[simp]
                    theorem TauCeti.FormalGroupHom.toAddMonoidHom_apply {R : Type u_1} [CommRing R] {F G : FormalGroup R} (f : FormalGroupHom F G) {σ : Type u_2} (x : F.Point σ) :
                    @[simp]
                    theorem TauCeti.FormalGroupHom.id_applyPoint {R : Type u_1} [CommRing R] {F : FormalGroup R} {σ : Type u_2} (x : F.Point σ) :
                    (id F).applyPoint x = x
                    @[simp]
                    theorem TauCeti.FormalGroupHom.comp_applyPoint {R : Type u_1} [CommRing R] {F G H : FormalGroup R} (g : FormalGroupHom G H) (f : FormalGroupHom F G) {σ : Type u_2} (x : F.Point σ) :
                    structure TauCeti.FormalGroupIso {R : Type u_1} [CommRing R] (F G : FormalGroup R) :
                    Type u_1

                    An isomorphism of formal group laws with specified mutually inverse homomorphisms. The inverse laws are equations of substitution operators on one-variable power series.

                    Instances For

                      Construct an isomorphism from the two series substitution identities.

                      Instances For
                        @[simp]

                        The forward series evaluated at the inverse series is X.

                        @[simp]

                        The inverse series evaluated at the forward series is X.

                        The linear coefficient of a formal group isomorphism is a unit.

                        Over a nontrivial ring, the forward series of an isomorphism is nonzero: its linear coefficient is invertible.

                        theorem TauCeti.FormalGroupIso.ext {R : Type u_1} [CommRing R] {F G : FormalGroup R} {f g : FormalGroupIso F G} (h : f.toHom = g.toHom) :
                        f = g

                        A formal group isomorphism is determined by its forward homomorphism.

                        theorem TauCeti.FormalGroupIso.ext_iff {R : Type u_1} [CommRing R] {F G : FormalGroup R} {f g : FormalGroupIso F G} :
                        f = g ↔ f.toHom = g.toHom

                        A strict isomorphism has linear coefficient one.

                        Instances

                          Reverse a formal group isomorphism.

                          Instances For
                            @[simp]
                            @[simp]
                            @[simp]
                            theorem TauCeti.FormalGroupIso.symm_symm {R : Type u_1} [CommRing R] {F G : FormalGroup R} (f : FormalGroupIso F G) :
                            f.symm.symm = f
                            noncomputable def TauCeti.FormalGroupIso.refl {R : Type u_1} [CommRing R] (F : FormalGroup R) :

                            The identity formal group isomorphism.

                            Instances For
                              @[simp]

                              The inverse followed by the forward map is the identity homomorphism.

                              @[simp]

                              The forward map followed by the inverse is the identity homomorphism.

                              noncomputable def TauCeti.FormalGroupIso.trans {R : Type u_1} [CommRing R] {F G H : FormalGroup R} (f : FormalGroupIso F G) (g : FormalGroupIso G H) :

                              Compose formal group isomorphisms, applying the first argument first.

                              Instances For
                                @[simp]
                                theorem TauCeti.FormalGroupIso.trans_toHom {R : Type u_1} [CommRing R] {F G H : FormalGroup R} (f : FormalGroupIso F G) (g : FormalGroupIso G H) :
                                @[simp]
                                theorem TauCeti.FormalGroupIso.trans_invHom {R : Type u_1} [CommRing R] {F G H : FormalGroup R} (f : FormalGroupIso F G) (g : FormalGroupIso G H) :
                                @[simp]
                                theorem TauCeti.FormalGroupIso.refl_trans {R : Type u_1} [CommRing R] {F G : FormalGroup R} (f : FormalGroupIso F G) :
                                (refl F).trans f = f
                                @[simp]
                                theorem TauCeti.FormalGroupIso.trans_refl {R : Type u_1} [CommRing R] {F G : FormalGroup R} (f : FormalGroupIso F G) :
                                f.trans (refl G) = f
                                @[simp]
                                @[simp]
                                theorem TauCeti.FormalGroupIso.trans_assoc {R : Type u_1} [CommRing R] {F G H K : FormalGroup R} (f : FormalGroupIso F G) (g : FormalGroupIso G H) (h : FormalGroupIso H K) :
                                (f.trans g).trans h = f.trans (g.trans h)

                                Composition of formal group isomorphisms is associative.

                                noncomputable def TauCeti.FormalGroupIso.toAddEquiv {R : Type u_1} [CommRing R] {F G : FormalGroup R} (f : FormalGroupIso F G) (σ : Type u_2) :
                                F.Point σ ≃+ G.Point σ

                                The additive equivalence induced on native power-series points.

                                Instances For
                                  @[simp]
                                  theorem TauCeti.FormalGroupIso.toAddEquiv_apply {R : Type u_1} [CommRing R] {F G : FormalGroup R} (f : FormalGroupIso F G) {σ : Type u_2} (x : F.Point σ) :
                                  @[simp]
                                  theorem TauCeti.FormalGroupIso.toAddEquiv_symm_apply {R : Type u_1} [CommRing R] {F G : FormalGroup R} (f : FormalGroupIso F G) {σ : Type u_2} (x : G.Point σ) :
                                  @[simp]
                                  @[simp]
                                  theorem TauCeti.FormalGroupIso.toAddEquiv_trans {R : Type u_1} [CommRing R] {F G H : FormalGroup R} (f : FormalGroupIso F G) (g : FormalGroupIso G H) (σ : Type u_2) :
                                  (f.trans g).toAddEquiv σ = (f.toAddEquiv σ).trans (g.toAddEquiv σ)
                                  @[simp]
                                  theorem TauCeti.FormalGroupIso.toAddEquiv_symm {R : Type u_1} [CommRing R] {F G : FormalGroup R} (f : FormalGroupIso F G) (σ : Type u_2) :
                                  noncomputable def TauCeti.FormalGroupHom.toIso {R : Type u_1} [CommRing R] {F G : FormalGroup R} (f : FormalGroupHom F G) (hf : IsUnit ((PowerSeries.coeff 1) f.toPowerSeries)) :

                                  A homomorphism with invertible linear coefficient is a formal group isomorphism.

                                  Instances For
                                    @[simp]

                                    Base change #

                                    noncomputable def TauCeti.FormalGroupHom.map {R : Type u_1} [CommRing R] {F G : FormalGroup R} {S : Type u_2} [CommRing S] (f : FormalGroupHom F G) (φ : R →+* S) :
                                    FormalGroupHom (F.map φ) (G.map φ)

                                    The base change of a formal group homomorphism along a ring homomorphism φ: its series is obtained by applying φ to every coefficient, and it maps F.map φ to G.map φ.

                                    Instances For
                                      @[simp]
                                      theorem TauCeti.FormalGroupHom.map_toPowerSeries {R : Type u_1} [CommRing R] {F G : FormalGroup R} {S : Type u_2} [CommRing S] (f : FormalGroupHom F G) (φ : R →+* S) :
                                      @[simp]
                                      theorem TauCeti.FormalGroupHom.map_id {R : Type u_1} [CommRing R] {F : FormalGroup R} {S : Type u_2} [CommRing S] (φ : R →+* S) :
                                      (id F).map φ = id (F.map φ)

                                      Base change sends the identity homomorphism to the identity homomorphism.

                                      @[simp]
                                      theorem TauCeti.FormalGroupHom.map_comp {R : Type u_1} [CommRing R] {F G H : FormalGroup R} {S : Type u_2} [CommRing S] (g : FormalGroupHom G H) (f : FormalGroupHom F G) (φ : R →+* S) :
                                      (g.comp f).map φ = (g.map φ).comp (f.map φ)

                                      Base change commutes with composition of homomorphisms.

                                      @[simp]
                                      theorem TauCeti.FormalGroupHom.map_ringHomId {R : Type u_1} [CommRing R] {F G : FormalGroup R} (f : FormalGroupHom F G) :
                                      f.map (RingHom.id R) = f

                                      Base change along the identity ring homomorphism does nothing. The formal groups F.map (RingHom.id R) and F are definitionally equal, so no transport is needed.

                                      @[simp]
                                      theorem TauCeti.FormalGroupHom.map_map {R : Type u_1} [CommRing R] {F G : FormalGroup R} {S : Type u_2} [CommRing S] {T : Type u_3} [CommRing T] (f : FormalGroupHom F G) (φ : R →+* S) (ψ : S →+* T) :
                                      (f.map φ).map ψ = f.map (ψ.comp φ)

                                      Successive base changes agree with base change along the composite. The formal groups (F.map φ).map ψ and F.map (ψ.comp φ) are definitionally equal, so no transport is needed.

                                      noncomputable def TauCeti.FormalGroupIso.map {R : Type u_1} [CommRing R] {F G : FormalGroup R} {S : Type u_2} [CommRing S] (e : FormalGroupIso F G) (φ : R →+* S) :
                                      FormalGroupIso (F.map φ) (G.map φ)

                                      The base change of a formal group isomorphism along a ring homomorphism φ, with forward and inverse homomorphisms the base changes of those of e.

                                      Instances For
                                        @[simp]
                                        theorem TauCeti.FormalGroupIso.map_toHom {R : Type u_1} [CommRing R] {F G : FormalGroup R} {S : Type u_2} [CommRing S] (e : FormalGroupIso F G) (φ : R →+* S) :
                                        (e.map φ).toHom = e.toHom.map φ
                                        @[simp]
                                        theorem TauCeti.FormalGroupIso.map_invHom {R : Type u_1} [CommRing R] {F G : FormalGroup R} {S : Type u_2} [CommRing S] (e : FormalGroupIso F G) (φ : R →+* S) :
                                        (e.map φ).invHom = e.invHom.map φ
                                        @[simp]
                                        theorem TauCeti.FormalGroupIso.map_refl {R : Type u_1} [CommRing R] {F : FormalGroup R} {S : Type u_2} [CommRing S] (φ : R →+* S) :
                                        (refl F).map φ = refl (F.map φ)

                                        Base change sends the identity isomorphism to the identity isomorphism.

                                        @[simp]
                                        theorem TauCeti.FormalGroupIso.map_symm {R : Type u_1} [CommRing R] {F G : FormalGroup R} {S : Type u_2} [CommRing S] (e : FormalGroupIso F G) (φ : R →+* S) :
                                        e.symm.map φ = (e.map φ).symm

                                        Base change commutes with reversing an isomorphism.

                                        @[simp]
                                        theorem TauCeti.FormalGroupIso.map_trans {R : Type u_1} [CommRing R] {F G H : FormalGroup R} {S : Type u_2} [CommRing S] (e : FormalGroupIso F G) (e' : FormalGroupIso G H) (φ : R →+* S) :
                                        (e.trans e').map φ = (e.map φ).trans (e'.map φ)

                                        Base change commutes with composition of isomorphisms.

                                        @[simp]
                                        theorem TauCeti.FormalGroupIso.map_ringHomId {R : Type u_1} [CommRing R] {F G : FormalGroup R} (e : FormalGroupIso F G) :
                                        e.map (RingHom.id R) = e

                                        Base change along the identity ring homomorphism does nothing. The formal groups F.map (RingHom.id R) and F are definitionally equal, so no transport is needed.

                                        @[simp]
                                        theorem TauCeti.FormalGroupIso.map_map {R : Type u_1} [CommRing R] {F G : FormalGroup R} {S : Type u_2} [CommRing S] {T : Type u_3} [CommRing T] (e : FormalGroupIso F G) (φ : R →+* S) (ψ : S →+* T) :
                                        (e.map φ).map ψ = e.map (ψ.comp φ)

                                        Successive base changes agree with base change along the composite. The formal groups (F.map φ).map ψ and F.map (ψ.comp φ) are definitionally equal, so no transport is needed.

                                        instance TauCeti.FormalGroupIso.instIsStrictMap {R : Type u_1} [CommRing R] {F G : FormalGroup R} {S : Type u_2} [CommRing S] (e : FormalGroupIso F G) [e.IsStrict] (φ : R →+* S) :
                                        (e.map φ).IsStrict

                                        The base change of a strict isomorphism is strict.