Documentation

Mathlib.Analysis.Complex.ValueDistribution.CountingFunction

The Counting Function of Value Distribution Theory #

For nontrivially normed fields ๐•œ, this file defines the logarithmic counting function of a meromorphic function defined on ๐•œ. Also known as the Nevanlinna counting function, this is one of the three main functions used in Value Distribution Theory.

The counting function of a meromorphic function f is a logarithmically weighted measure of the number of times the function f takes a given value a within the disk โˆฃzโˆฃ โ‰ค r, counting multiplicities.

See Section VI.1 of Lang, Introduction to Complex Hyperbolic Spaces or Section 1.1 of Noguchi-Winkelmann, Nevanlinna Theory in Several Complex Variables and Diophantine Approximation for a detailed discussion.

Implementation Notes #

TODO #

Supporting Notation #

Shorthand notation for the restriction of a function with locally finite support within Set.univ to the closed unit ball of radius r.

Equations
Instances For

    The Logarithmic Counting Function of a Function with Locally Finite Support #

    Definition of the logarithmic counting function, as a group morphism mapping functions D with locally finite support to maps โ„ โ†’ โ„. Given D, the result map logCounting D takes r : โ„ to a logarithmically weighted measure of values that D takes within the disk โˆฃzโˆฃ โ‰ค r.

    Implementation Note: In case where z = 0, the term log (r * โ€–zโ€–โปยน) evaluates to zero, which is typically different from log r - log โ€–zโ€– = log r. The summand (D 0) * log r compensates this, producing cleaner formulas when the logarithmic counting function is used in the main theorems of Value Distribution Theory. We refer the reader to page 164 of Lang: Introduction to Complex Hyperbolic Spaces for more details, and to the lemma countingFunction_finsum_eq_finsum_add in Mathlib/Analysis/Complex/JensenFormula.lean for a formal statement.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[simp]

      Evaluation of the logarithmic counting function at zero yields zero.

      For 1 โ‰ค r, the counting function is non-negative.

      theorem Function.locallyFinsuppWithin.logCounting_le {E : Type u_2} [NormedAddCommGroup E] [ProperSpace E] {fโ‚ fโ‚‚ : locallyFinsuppWithin Set.univ โ„ค} {r : โ„} (h : fโ‚ โ‰ค fโ‚‚) (hr : 1 โ‰ค r) :
      logCounting fโ‚ r โ‰ค logCounting fโ‚‚ r

      For 1 โ‰ค r, the counting function respects the โ‰ค relation.

      The counting function respects the โ‰ค relation asymptotically.

      The Logarithmic Counting Function of a Meromorphic Function #

      noncomputable def ValueDistribution.logCounting {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] [ProperSpace ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] (f : ๐•œ โ†’ E) (a : WithTop E) :

      The logarithmic counting function of a meromorphic function.

      If f : ๐•œ โ†’ E is meromorphic and a : WithTop E is any value, this is a logarithmically weighted measure of the number of times the function f takes a given value a within the disk โˆฃzโˆฃ โ‰ค r, counting multiplicities. In the special case where a = โŠค, it counts the poles of f.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        theorem ValueDistribution.logCounting_coe {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] [ProperSpace ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {f : ๐•œ โ†’ E} {aโ‚€ : E} :
        logCounting f โ†‘aโ‚€ = Function.locallyFinsuppWithin.logCounting (MeromorphicOn.divisor (fun (z : ๐•œ) => f z - aโ‚€) Set.univ)โบ

        For finite values aโ‚€, the logarithmic counting function logCounting f aโ‚€ is the counting function associated with the zero-divisor of the meromorphic function f - aโ‚€.

        theorem ValueDistribution.logCounting_coe_eq_logCounting_sub_const_zero {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] [ProperSpace ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {f : ๐•œ โ†’ E} {aโ‚€ : E} :
        logCounting f โ†‘aโ‚€ = logCounting (f - fun (x : ๐•œ) => aโ‚€) 0

        For finite values aโ‚€, the logarithmic counting function logCounting f aโ‚€ equals the logarithmic counting function for the value zero of the shifted function f - aโ‚€.

        The logarithmic counting function logCounting f 0 is the counting function associated with the zero-divisor of f.

        The logarithmic counting function logCounting f โŠค is the counting function associated with the pole-divisor of f.

        @[simp]
        theorem ValueDistribution.logCounting_eval_zero {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] [ProperSpace ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {f : ๐•œ โ†’ E} {a : WithTop E} :
        logCounting f a 0 = 0

        Evaluation of the logarithmic counting function at zero yields zero.

        The counting function associated with the divisor of f is the difference between logCounting f 0 and logCounting f โŠค.

        Elementary Properties of the Counting Function #

        @[simp]
        theorem ValueDistribution.logCounting_inv {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] [ProperSpace ๐•œ] {f : ๐•œ โ†’ ๐•œ} :

        Relation between the logarithmic counting function of f and of fโปยน.

        theorem ValueDistribution.logCounting_add_analyticOn {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] [ProperSpace ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {f g : ๐•œ โ†’ E} (hf : MeromorphicOn f Set.univ) (hg : AnalyticOn ๐•œ g Set.univ) :

        Adding an analytic function does not change the counting function counting poles.

        @[simp]
        theorem ValueDistribution.logCounting_add_const {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] [ProperSpace ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {f : ๐•œ โ†’ E} {aโ‚€ : E} (hf : MeromorphicOn f Set.univ) :
        logCounting (f + fun (x : ๐•œ) => aโ‚€) โŠค = logCounting f โŠค

        Special case of logCounting_add_analyticOn: Adding a constant does not change the counting function counting poles.

        @[simp]
        theorem ValueDistribution.logCounting_sub_const {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] [ProperSpace ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {f : ๐•œ โ†’ E} {aโ‚€ : E} (hf : MeromorphicOn f Set.univ) :
        logCounting (f - fun (x : ๐•œ) => aโ‚€) โŠค = logCounting f โŠค

        Special case of logCounting_add_analyticOn: Subtracting a constant does not change the counting function counting poles.

        Behaviour under Arithmetic Operations #

        theorem ValueDistribution.logCounting_zero_mul_le {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] [ProperSpace ๐•œ] {fโ‚ fโ‚‚ : ๐•œ โ†’ ๐•œ} {r : โ„} (hr : 1 โ‰ค r) (hโ‚fโ‚ : MeromorphicOn fโ‚ Set.univ) (hโ‚‚fโ‚ : โˆ€ (z : ๐•œ), meromorphicOrderAt fโ‚ z โ‰  โŠค) (hโ‚fโ‚‚ : MeromorphicOn fโ‚‚ Set.univ) (hโ‚‚fโ‚‚ : โˆ€ (z : ๐•œ), meromorphicOrderAt fโ‚‚ z โ‰  โŠค) :
        logCounting (fโ‚ * fโ‚‚) 0 r โ‰ค (logCounting fโ‚ 0 + logCounting fโ‚‚ 0) r

        For 1 โ‰ค r, the counting function counting zeros of f * g is less than or equal to the sum of the counting functions counting zeros of f and g, respectively.

        Note: The statement proven here is found at the top of page 169 of Lang: Introduction to Complex Hyperbolic Spaces where it is written as an inequality between functions. This could be interpreted as claiming that the inequality holds for ALL values of r, which is not true. For a counterexample, take fโ‚ : z โ†’ z and fโ‚‚ : z โ†’ zโปยน. Then,

        But log r is negative for small r.

        theorem ValueDistribution.logCounting_zero_mul_eventually_le {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] [ProperSpace ๐•œ] {fโ‚ fโ‚‚ : ๐•œ โ†’ ๐•œ} (hโ‚fโ‚ : MeromorphicOn fโ‚ Set.univ) (hโ‚‚fโ‚ : โˆ€ (z : ๐•œ), meromorphicOrderAt fโ‚ z โ‰  โŠค) (hโ‚fโ‚‚ : MeromorphicOn fโ‚‚ Set.univ) (hโ‚‚fโ‚‚ : โˆ€ (z : ๐•œ), meromorphicOrderAt fโ‚‚ z โ‰  โŠค) :
        logCounting (fโ‚ * fโ‚‚) 0 โ‰คแถ [Filter.atTop] logCounting fโ‚ 0 + logCounting fโ‚‚ 0

        Asymptotically, the counting function counting zeros of f * g is less than or equal to the sum of the counting functions counting zeros of f and g, respectively.

        theorem ValueDistribution.logCounting_top_mul_le {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] [ProperSpace ๐•œ] {fโ‚ fโ‚‚ : ๐•œ โ†’ ๐•œ} {r : โ„} (hr : 1 โ‰ค r) (hโ‚fโ‚ : MeromorphicOn fโ‚ Set.univ) (hโ‚‚fโ‚ : โˆ€ (z : ๐•œ), meromorphicOrderAt fโ‚ z โ‰  โŠค) (hโ‚fโ‚‚ : MeromorphicOn fโ‚‚ Set.univ) (hโ‚‚fโ‚‚ : โˆ€ (z : ๐•œ), meromorphicOrderAt fโ‚‚ z โ‰  โŠค) :
        logCounting (fโ‚ * fโ‚‚) โŠค r โ‰ค (logCounting fโ‚ โŠค + logCounting fโ‚‚ โŠค) r

        For 1 โ‰ค r, the counting function counting poles of f * g is less than or equal to the sum of the counting functions counting poles of f and g, respectively.

        theorem ValueDistribution.logCounting_top_mul_eventually_le {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] [ProperSpace ๐•œ] {fโ‚ fโ‚‚ : ๐•œ โ†’ ๐•œ} (hโ‚fโ‚ : MeromorphicOn fโ‚ Set.univ) (hโ‚‚fโ‚ : โˆ€ (z : ๐•œ), meromorphicOrderAt fโ‚ z โ‰  โŠค) (hโ‚fโ‚‚ : MeromorphicOn fโ‚‚ Set.univ) (hโ‚‚fโ‚‚ : โˆ€ (z : ๐•œ), meromorphicOrderAt fโ‚‚ z โ‰  โŠค) :

        Asymptotically, the counting function counting zeros of f * g is less than or equal to the sum of the counting functions counting zeros of f and g, respectively.

        @[simp]
        theorem ValueDistribution.logCounting_pow_zero {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] [ProperSpace ๐•œ] {f : ๐•œ โ†’ ๐•œ} {n : โ„•} (hf : MeromorphicOn f Set.univ) :

        For natural numbers n, the counting function counting zeros of f ^ n equals n times the counting function counting zeros of f.

        @[simp]
        theorem ValueDistribution.logCounting_pow_top {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] [ProperSpace ๐•œ] {f : ๐•œ โ†’ ๐•œ} {n : โ„•} (hf : MeromorphicOn f Set.univ) :

        For natural numbers n, the counting function counting poles of f ^ n equals n times the counting function counting poles of f.

        Representation by Integrals #

        For ๐•œ = โ„‚, the theorems below describe the logarithmic counting function in terms of circle averages.

        Over the complex numbers, present the logarithmic counting function attached to the divisor of a meromorphic function f as a circle average over log โ€–f ยทโ€–.

        This is a reformulation of Jensen's formula of complex analysis. See MeromorphicOn.circleAverage_log_norm for Jensen's formula in the original context.