Documentation

TauCeti.Analysis.Complex.RiemannSurface.FunctionField

The field of meromorphic functions on a connected Riemann surface #

A meromorphic function on a Riemann surface X is a holomorphic map f : X → OnePoint ℂ to the Riemann sphere which is not the constant map ∞ (TauCeti.RiemannSurface.MeromorphicFunction X). This file makes these functions a field when X is connected, and a ℂ-algebra through the constant functions.

The operations are not defined pointwise, since a sum or product of two maps to the sphere has no meaning at the common poles. Instead, f is read in the affine chart of the sphere as a function f.finitePart : X → ℂ, which agrees with f away from the poles and is meromorphic in the sense of TauCeti.RiemannSurface.MeromorphicAt at every point (TauCeti.RiemannSurface.MeromorphicFunction.meromorphicAt_finitePart). The pointwise sum of two finite parts is again meromorphic, and TauCeti.RiemannSurface.sphereMap turns it back into a holomorphic map to the sphere, filling in the removable singularities and poles. This defines f + g, and likewise f * g, -f, f - g and f⁻¹.

Each operation is characterized by its values off the poles: for instance f + g is the unique meromorphic function whose value at every point where f and g are finite is the sum of their values (TauCeti.RiemannSurface.MeromorphicFunction.eq_add_iff). By continuity, a meromorphic function is determined by its values on the punctured neighbourhoods of the points (TauCeti.RiemannSurface.MeromorphicFunction.eq_of_eventually_apply_eq), and by the identity theorem the poles of a meromorphic function on a connected Riemann surface are isolated (TauCeti.RiemannSurface.MeromorphicFunction.eventually_ne_infty), so the points where f and g are finite fill a punctured neighbourhood of every point. In the same way a meromorphic function on a connected Riemann surface is determined by the germs of its finite part on these punctured neighbourhoods. The meromorphic functions therefore embed into a commutative ring compatibly with the operations, which gives the commutative ring structure. The zeros of a nonzero meromorphic function are isolated as well, so its finite part is eventually nonzero on every punctured neighbourhood and its inverse is a multiplicative inverse.

Main definitions #

Main results #

References #

A meromorphic function on a Riemann surface X: a holomorphic map X → OnePoint ℂ to the Riemann sphere which is not the constant map ∞. On a connected X these form a field (TauCeti.RiemannSurface.MeromorphicFunction.instField).

Instances For
    @[simp]
    theorem TauCeti.RiemannSurface.MeromorphicFunction.coe_mk {X : Type u_1} [TopologicalSpace X] [ChartedSpace ℂ X] (f : X → OnePoint ℂ) (hf : MDiff f) (h : f ≠ fun (x : X) => OnePoint.infty) :
    ⇑{ toFun := f, mdifferentiable' := hf, ne_infty' := h } = f
    theorem TauCeti.RiemannSurface.MeromorphicFunction.ext {X : Type u_1} [TopologicalSpace X] [ChartedSpace ℂ X] {f g : MeromorphicFunction X} (h : ∀ (x : X), f x = g x) :
    f = g

    A meromorphic function is a holomorphic map to the Riemann sphere.

    A meromorphic function is not the constant map ∞.

    The finite part #

    A meromorphic function read in the affine chart of the Riemann sphere: its value at x is f x when this is finite, and 0 at a pole of f.

    Instances For

      Away from the poles, a meromorphic function is its finite part.

      Away from the poles, the finite part of a meromorphic function is holomorphic: it is the meromorphic function read in the affine chart of the sphere.

      Away from the poles, the finite part of a meromorphic function is complex analytic.

      theorem TauCeti.RiemannSurface.MeromorphicFunction.apply_eq_of_tendsto {X : Type u_1} [TopologicalSpace X] [ChartedSpace ℂ X] {f : MeromorphicFunction X} {x : X} {φ : X → OnePoint ℂ} {c : OnePoint ℂ} (hφ : Filter.Tendsto φ (nhdsWithin x {x}ᶜ) (nhds c)) (h : ∀ᶠ (y : X) in nhdsWithin x {x}ᶜ, f y = φ y) :
      f x = c

      The value of a meromorphic function at x is the limit at x, along the punctured neighbourhoods of x, of any map to the sphere that agrees with it near x.

      Uniqueness of meromorphic functions. Two meromorphic functions which agree on a punctured neighbourhood of every point are equal.

      theorem TauCeti.RiemannSurface.MeromorphicFunction.eq_of_forall_apply_eq {X : Type u_1} [TopologicalSpace X] [ChartedSpace ℂ X] {f g : MeromorphicFunction X} {p : X → Prop} (hp : ∀ (x : X), ∀ᶠ (y : X) in nhdsWithin x {x}ᶜ, p y) (h : ∀ (x : X), p x → f x = g x) :
      f = g

      To show that f equals g, it suffices to compare their values at the points satisfying a property p which holds on a punctured neighbourhood of every point, such as being a pole of neither of two given meromorphic functions.

      The finite part of a meromorphic function is meromorphic at every point. Away from the poles it is holomorphic; near a pole it is the reciprocal of the holomorphic function reading f in the inverted chart of the sphere.

      Isolated poles and finiteness of poles #

      The poles of a meromorphic function are isolated. On a connected Riemann surface, a meromorphic function is finite at every point of a punctured neighbourhood of any point.

      @[simp]

      On a connected Riemann surface, a meromorphic function is recovered from its finite part by taking limits on punctured neighbourhoods.

      On a connected Riemann surface, two meromorphic functions whose finite parts agree on a punctured neighbourhood of every point are equal.

      A meromorphic function on a compact preconnected Riemann surface has finitely many poles.

      Meromorphic functions from functions X → ℂ #

      The meromorphic function on a nonempty Riemann surface defined by a function h : X → ℂ meromorphic at every point: the holomorphic map TauCeti.RiemannSurface.sphereMap h to the Riemann sphere, which agrees with h on a punctured neighbourhood of every point.

      Instances For

        The finite part of TauCeti.RiemannSurface.MeromorphicFunction.ofMeromorphic hh agrees with h on a punctured neighbourhood of every point.

        At a point where h is continuous, TauCeti.RiemannSurface.MeromorphicFunction.ofMeromorphic hh takes the value of h.

        theorem TauCeti.RiemannSurface.MeromorphicFunction.ofMeromorphic_congr {X : Type u_1} [TopologicalSpace X] [ChartedSpace ℂ X] [IsManifold (modelWithCornersSelf ℂ ℂ) 1 X] [Nonempty X] {h : X → ℂ} (hh : ∀ (x : X), MeromorphicAt h x) {k : X → ℂ} (hk : ∀ (x : X), MeromorphicAt k x) (hhk : ∀ (x : X), h =ᶠ[nhdsWithin x {x}ᶜ] k) :

        TauCeti.RiemannSurface.MeromorphicFunction.ofMeromorphic hh depends only on the values of h on a punctured neighbourhood of every point.

        theorem TauCeti.RiemannSurface.MeromorphicFunction.eq_ofMeromorphic_iff {X : Type u_1} [TopologicalSpace X] [ChartedSpace ℂ X] [IsManifold (modelWithCornersSelf ℂ ℂ) 1 X] [Nonempty X] {h : X → ℂ} (hh : ∀ (x : X), MeromorphicAt h x) {p : X → Prop} (hp : ∀ (x : X), ∀ᶠ (y : X) in nhdsWithin x {x}ᶜ, p y) (hc : ∀ (x : X), p x → ContinuousAt h x) {k : MeromorphicFunction X} :
        k = ofMeromorphic hh ↔ ∀ (x : X), p x → k x = ↑(h x)

        A meromorphic function k equals TauCeti.RiemannSurface.MeromorphicFunction.ofMeromorphic hh if and only if it agrees with h at the points satisfying a property p which holds on a punctured neighbourhood of every point and at which h is continuous.

        @[simp]

        On a connected Riemann surface, a meromorphic function is the one defined by its finite part.

        The field operations #

        The finite part of f + g agrees with the sum of the finite parts of f and g on a punctured neighbourhood of every point.

        The finite part of f * g agrees with the product of the finite parts of f and g on a punctured neighbourhood of every point.

        The finite part of -f agrees with the negative of the finite part of f on a punctured neighbourhood of every point.

        The finite part of f⁻¹ agrees with the inverse of the finite part of f on a punctured neighbourhood of every point.

        The commutative ring structure #

        @[instance_reducible]

        The meromorphic functions on a connected Riemann surface form a commutative ring.

        The field structure #

        The zeros of a nonzero meromorphic function on a connected Riemann surface are isolated, as are its poles, so its finite part vanishes at no point of a punctured neighbourhood of any point.

        @[instance_reducible]

        The meromorphic functions on a connected Riemann surface form a field.

        The defining properties of the operations #

        The defining property of addition. On a connected Riemann surface, f + g is the unique meromorphic function whose value at every point where f and g are both finite is the sum of their values.

        The defining property of multiplication. On a connected Riemann surface, f * g is the unique meromorphic function whose value at every point where f and g are both finite is the product of their values.

        The defining property of negation. On a connected Riemann surface, -f is the unique meromorphic function whose value at every point where f is finite is the negative of the value of f.

        The defining property of the inverse. On a connected Riemann surface, the inverse of a nonzero meromorphic function f is the unique meromorphic function whose value at every point where f is finite and nonzero is the inverse of the value of f.

        The ℂ-algebra structure #

        @[instance_reducible]

        The meromorphic functions on a connected Riemann surface form a ℂ-algebra, ℂ acting through the constant functions.

        A meromorphic function outside the range of the constant functions takes two distinct values on the Riemann sphere.

        ofMeromorphic and the operations #

        On a connected Riemann surface, TauCeti.RiemannSurface.MeromorphicFunction.ofMeromorphic sends constants, sums, products, negatives, differences, inverses and powers of functions X → ℂ to the corresponding operations on meromorphic functions. Apart from the constants, these lemmas are not simp lemmas: their left-hand sides do not determine the meromorphy proofs of the operands, so simp could not discharge them. Instantiate them instead, as in simp [ofMeromorphic_add hh hk].

        Values of the operations #

        At a point where the operands are finite, the operations on meromorphic functions are computed pointwise. Each operation has two forms: one for operands known to be finite, in terms of their finite parts, and one (_of_eq_coe) for operands with known finite values. At a pole of f, its inverse vanishes.

        At a point where f and g are finite, f + g takes the sum of their values.

        theorem TauCeti.RiemannSurface.MeromorphicFunction.add_apply_of_eq_coe {X : Type u_1} [TopologicalSpace X] [ChartedSpace ℂ X] {f g : MeromorphicFunction X} {x : X} [IsManifold (modelWithCornersSelf ℂ ℂ) 1 X] [ConnectedSpace X] {a b : ℂ} (hf : f x = ↑a) (hg : g x = ↑b) :
        (f + g) x = ↑(a + b)

        If f and g take the values a and b at x, then f + g takes the value a + b.

        At a point where f and g are finite, f * g takes the product of their values.

        theorem TauCeti.RiemannSurface.MeromorphicFunction.mul_apply_of_eq_coe {X : Type u_1} [TopologicalSpace X] [ChartedSpace ℂ X] {f g : MeromorphicFunction X} {x : X} [IsManifold (modelWithCornersSelf ℂ ℂ) 1 X] [ConnectedSpace X] {a b : ℂ} (hf : f x = ↑a) (hg : g x = ↑b) :
        (f * g) x = ↑(a * b)

        If f and g take the values a and b at x, then f * g takes the value a * b.

        At a point where f is finite, -f takes the negative of its value.

        If f takes the value a at x, then -f takes the value -a.

        theorem TauCeti.RiemannSurface.MeromorphicFunction.sub_apply_of_eq_coe {X : Type u_1} [TopologicalSpace X] [ChartedSpace ℂ X] {f g : MeromorphicFunction X} {x : X} [IsManifold (modelWithCornersSelf ℂ ℂ) 1 X] [ConnectedSpace X] {a b : ℂ} (hf : f x = ↑a) (hg : g x = ↑b) :
        (f - g) x = ↑(a - b)

        If f and g take the values a and b at x, then f - g takes the value a - b.

        At a point where f and g are finite, f - g takes the difference of their values.

        At a point where f is finite and nonzero, f⁻¹ takes the inverse of its value.

        If f takes a nonzero value a at x, then f⁻¹ takes the value a⁻¹.

        If f takes the value a at x, then f ^ n takes the value a ^ n.

        At a point where f is finite, f ^ n takes the n-th power of its value.

        theorem TauCeti.RiemannSurface.MeromorphicFunction.zpow_apply_of_eq_coe {X : Type u_1} [TopologicalSpace X] [ChartedSpace ℂ X] {f : MeromorphicFunction X} {x : X} [IsManifold (modelWithCornersSelf ℂ ℂ) 1 X] [ConnectedSpace X] {a : ℂ} (hf : f x = ↑a) (ha : a ≠ 0) (n : ℤ) :
        (f ^ n) x = ↑(a ^ n)

        If f takes a nonzero value a at x, then f ^ n takes the value a ^ n, for every integer n.

        At a point where f is finite and nonzero, f ^ n takes the n-th power of its value, for every integer n.

        theorem TauCeti.RiemannSurface.MeromorphicFunction.prod_apply_of_eq_coe {X : Type u_1} [TopologicalSpace X] [ChartedSpace ℂ X] {x : X} [IsManifold (modelWithCornersSelf ℂ ℂ) 1 X] [ConnectedSpace X] {ι : Type u_2} {s : Finset ι} {f : ι → MeromorphicFunction X} {a : ι → ℂ} (hf : ∀ i ∈ s, (f i) x = ↑(a i)) :
        (∏ i ∈ s, f i) x = ↑(∏ i ∈ s, a i)

        If each f i takes the value a i at x, then the product of the f i takes the product of the a i.

        theorem TauCeti.RiemannSurface.MeromorphicFunction.prod_apply {X : Type u_1} [TopologicalSpace X] [ChartedSpace ℂ X] {x : X} [IsManifold (modelWithCornersSelf ℂ ℂ) 1 X] [ConnectedSpace X] {ι : Type u_2} {s : Finset ι} {f : ι → MeromorphicFunction X} (hf : ∀ i ∈ s, (f i) x ≠ OnePoint.infty) :
        (∏ i ∈ s, f i) x = ↑(∏ i ∈ s, (f i).finitePart x)

        At a point where each f i is finite, the product of the f i takes the product of their values.

        theorem TauCeti.RiemannSurface.MeromorphicFunction.sum_apply_of_eq_coe {X : Type u_1} [TopologicalSpace X] [ChartedSpace ℂ X] {x : X} [IsManifold (modelWithCornersSelf ℂ ℂ) 1 X] [ConnectedSpace X] {ι : Type u_2} {s : Finset ι} {f : ι → MeromorphicFunction X} {a : ι → ℂ} (hf : ∀ i ∈ s, (f i) x = ↑(a i)) :
        (∑ i ∈ s, f i) x = ↑(∑ i ∈ s, a i)

        If each f i takes the value a i at x, then the sum of the f i takes the sum of the a i.

        theorem TauCeti.RiemannSurface.MeromorphicFunction.sum_apply {X : Type u_1} [TopologicalSpace X] [ChartedSpace ℂ X] {x : X} [IsManifold (modelWithCornersSelf ℂ ℂ) 1 X] [ConnectedSpace X] {ι : Type u_2} {s : Finset ι} {f : ι → MeromorphicFunction X} (hf : ∀ i ∈ s, (f i) x ≠ OnePoint.infty) :
        (∑ i ∈ s, f i) x = ↑(∑ i ∈ s, (f i).finitePart x)

        At a point where each f i is finite, the sum of the f i takes the sum of their values.

        If f takes the value a at x, then the polynomial p evaluated at f takes the value p(a) at x.

        At a point where f is finite, a polynomial evaluated at f takes the value of the polynomial at f.finitePart x.

        The inverse vanishes at the poles. At a pole of f, the meromorphic function f⁻¹ takes the value 0.

        Finiteness of zeros, and the maximum principle #

        A nonzero meromorphic function on a compact connected Riemann surface has finitely many zeros.

        The maximum principle. A meromorphic function without poles on a compact connected Riemann surface is constant.

        A meromorphic function with neither zeros nor poles off one point is constant on a compact connected Riemann surface.