Documentation

Mathlib.Analysis.Analytic.Inverse

Inverse of analytic functions #

We construct the left and right inverse of a formal multilinear series with invertible linear term, we prove that they coincide and study their properties (notably convergence). We deduce that the inverse of an analytic partial homeomorphism is analytic.

Main statements #

The left inverse of a formal multilinear series #

@[irreducible]
noncomputable def FormalMultilinearSeries.leftInv {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace π•œ F] (p : FormalMultilinearSeries π•œ E F) (i : E ≃L[π•œ] F) (x : E) :

The left inverse of a formal multilinear series, where the n-th term is defined inductively in terms of the previous ones to make sure that (leftInv p i) ∘ p = id. For this, the linear term p₁ in p should be invertible. In the definition, i is a linear isomorphism that should coincide with p₁, so that one can use its inverse in the construction. The definition does not use that i = p₁, but proofs that the definition is well-behaved do.

The n-th term in q ∘ p is βˆ‘ qβ‚– (p_{j₁}, ..., p_{jβ‚–}) over j₁ + ... + jβ‚– = n. In this expression, qβ‚™ appears only once, in qβ‚™ (p₁, ..., p₁). We adjust the definition so that this term compensates the rest of the sum, using i⁻¹ as an inverse to p₁.

These formulas only make sense when the constant term pβ‚€ vanishes. The definition we give is general, but it ignores the value of pβ‚€.

Equations
Instances For
    @[simp]
    theorem FormalMultilinearSeries.leftInv_coeff_zero {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace π•œ F] (p : FormalMultilinearSeries π•œ E F) (i : E ≃L[π•œ] F) (x : E) :
    p.leftInv i x 0 = ContinuousMultilinearMap.uncurry0 π•œ F x
    @[simp]
    theorem FormalMultilinearSeries.leftInv_coeff_one {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace π•œ F] (p : FormalMultilinearSeries π•œ E F) (i : E ≃L[π•œ] F) (x : E) :
    p.leftInv i x 1 = (continuousMultilinearCurryFin1 π•œ F E).symm ↑i.symm
    theorem FormalMultilinearSeries.leftInv_removeZero {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace π•œ F] (p : FormalMultilinearSeries π•œ E F) (i : E ≃L[π•œ] F) (x : E) :
    p.removeZero.leftInv i x = p.leftInv i x

    The left inverse does not depend on the zeroth coefficient of a formal multilinear series.

    theorem FormalMultilinearSeries.leftInv_comp {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace π•œ F] (p : FormalMultilinearSeries π•œ E F) (i : E ≃L[π•œ] F) (x : E) (h : p 1 = (continuousMultilinearCurryFin1 π•œ E F).symm ↑i) :
    (p.leftInv i x).comp p = FormalMultilinearSeries.id π•œ E x

    The left inverse to a formal multilinear series is indeed a left inverse, provided its linear term is invertible.

    The right inverse of a formal multilinear series #

    @[irreducible]
    noncomputable def FormalMultilinearSeries.rightInv {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace π•œ F] (p : FormalMultilinearSeries π•œ E F) (i : E ≃L[π•œ] F) (x : E) :

    The right inverse of a formal multilinear series, where the n-th term is defined inductively in terms of the previous ones to make sure that p ∘ (rightInv p i) = id. For this, the linear term p₁ in p should be invertible. In the definition, i is a linear isomorphism that should coincide with p₁, so that one can use its inverse in the construction. The definition does not use that i = p₁, but proofs that the definition is well-behaved do.

    The n-th term in p ∘ q is βˆ‘ pβ‚– (q_{j₁}, ..., q_{jβ‚–}) over j₁ + ... + jβ‚– = n. In this expression, qβ‚™ appears only once, in p₁ (qβ‚™). We adjust the definition of qβ‚™ so that this term compensates the rest of the sum, using i⁻¹ as an inverse to p₁.

    These formulas only make sense when the constant term pβ‚€ vanishes. The definition we give is general, but it ignores the value of pβ‚€.

    Equations
    Instances For
      @[simp]
      theorem FormalMultilinearSeries.rightInv_coeff_zero {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace π•œ F] (p : FormalMultilinearSeries π•œ E F) (i : E ≃L[π•œ] F) (x : E) :
      p.rightInv i x 0 = ContinuousMultilinearMap.uncurry0 π•œ F x
      @[simp]
      theorem FormalMultilinearSeries.rightInv_coeff_one {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace π•œ F] (p : FormalMultilinearSeries π•œ E F) (i : E ≃L[π•œ] F) (x : E) :
      p.rightInv i x 1 = (continuousMultilinearCurryFin1 π•œ F E).symm ↑i.symm
      theorem FormalMultilinearSeries.rightInv_removeZero {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace π•œ F] (p : FormalMultilinearSeries π•œ E F) (i : E ≃L[π•œ] F) (x : E) :
      p.removeZero.rightInv i x = p.rightInv i x

      The right inverse does not depend on the zeroth coefficient of a formal multilinear series.

      theorem FormalMultilinearSeries.comp_rightInv_aux1 {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace π•œ F] {n : β„•} (hn : 0 < n) (p : FormalMultilinearSeries π•œ E F) (q : FormalMultilinearSeries π•œ F E) (v : Fin n β†’ F) :
      (p.comp q n) v = βˆ‘ c ∈ {c : Composition n | 1 < c.length}.toFinset, (p c.length) (q.applyComposition c v) + (p 1) fun (x : Fin 1) => (q n) v
      theorem FormalMultilinearSeries.comp_rightInv_aux2 {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace π•œ F] (p : FormalMultilinearSeries π•œ E F) (i : E ≃L[π•œ] F) (x : E) (n : β„•) (v : Fin (n + 2) β†’ F) :
      βˆ‘ c ∈ {c : Composition (n + 2) | 1 < c.length}.toFinset, (p c.length) (FormalMultilinearSeries.applyComposition (fun (k : β„•) => if k < n + 2 then p.rightInv i x k else 0) c v) = βˆ‘ c ∈ {c : Composition (n + 2) | 1 < c.length}.toFinset, (p c.length) ((p.rightInv i x).applyComposition c v)
      theorem FormalMultilinearSeries.comp_rightInv {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace π•œ F] (p : FormalMultilinearSeries π•œ E F) (i : E ≃L[π•œ] F) (x : E) (h : p 1 = (continuousMultilinearCurryFin1 π•œ E F).symm ↑i) :
      p.comp (p.rightInv i x) = FormalMultilinearSeries.id π•œ F ((p 0) 0)

      The right inverse to a formal multilinear series is indeed a right inverse, provided its linear term is invertible and its constant term vanishes.

      theorem FormalMultilinearSeries.rightInv_coeff {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace π•œ F] (p : FormalMultilinearSeries π•œ E F) (i : E ≃L[π•œ] F) (x : E) (n : β„•) (hn : 2 ≀ n) :
      p.rightInv i x n = -(↑i.symm).compContinuousMultilinearMap (βˆ‘ c ∈ {c : Composition n | 1 < c.length}.toFinset, p.compAlongComposition (p.rightInv i x) c)

      Coincidence of the left and the right inverse #

      theorem FormalMultilinearSeries.leftInv_eq_rightInv {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace π•œ F] (p : FormalMultilinearSeries π•œ E F) (i : E ≃L[π•œ] F) (x : E) (h : p 1 = (continuousMultilinearCurryFin1 π•œ E F).symm ↑i) :
      p.leftInv i x = p.rightInv i x

      Convergence of the inverse of a power series #

      Assume that p is a convergent multilinear series, and let q be its (left or right) inverse. Using the left-inverse formula gives $$ q_n = - (p_1)^{-n} \sum_{k=0}^{n-1} \sum_{i_1 + \dotsc + i_k = n} q_k (p_{i_1}, \dotsc, p_{i_k}). $$ Assume for simplicity that we are in dimension 1 and p₁ = 1. In the formula for qβ‚™, the term q_{n-1} appears with a multiplicity of n-1 (choosing the index i_j for which i_j = 2 while all the other indices are equal to 1), which indicates that qβ‚™ might grow like n!. This is bad for summability properties.

      It turns out that the right-inverse formula is better behaved, and should instead be used for this kind of estimate. It reads $$ q_n = - (p_1)^{-1} \sum_{k=2}^n \sum_{i_1 + \dotsc + i_k = n} p_k (q_{i_1}, \dotsc, q_{i_k}). $$ Here, q_{n-1} can only appear in the term with k = 2, and it only appears twice, so there is hope this formula can lead to an at most geometric behavior.

      Let Qβ‚™ = β€–qβ‚™β€–. Bounding β€–pβ‚–β€– with C r^k gives an inequality $$ Q_n ≀ C' \sum_{k=2}^n r^k \sum_{i_1 + \dotsc + i_k = n} Q_{i_1} \dotsm Q_{i_k}. $$

      This formula is not enough to prove by naive induction on n a bound of the form Qβ‚™ ≀ D R^n. However, assuming that the inequality above were an equality, one could get a formula for the generating series of the Qβ‚™:

      $$ \begin{align} Q(z) & := \sum Q_n z^n = Q_1 z + C' \sum_{2 \leq k \leq n} \sum_{i_1 + \dotsc + i_k = n} (r z^{i_1} Q_{i_1}) \dotsm (r z^{i_k} Q_{i_k}) \\ & = Q_1 z + C' \sum_{k = 2}^\infty (\sum_{i_1 \geq 1} r z^{i_1} Q_{i_1}) \dotsm (\sum_{i_k \geq 1} r z^{i_k} Q_{i_k}) \\ & = Q_1 z + C' \sum_{k = 2}^\infty (r Q(z))^k = Q_1 z + C' (r Q(z))^2 / (1 - r Q(z)). \end{align} $$

      One can solve this formula explicitly. The solution is analytic in a neighborhood of 0 in β„‚, hence its coefficients grow at most geometrically (by a contour integral argument), and therefore the original Qβ‚™, which are bounded by these ones, are also at most geometric.

      This classical argument is not really satisfactory, as it requires an a priori bound on a complex analytic function. Another option would be to compute explicitly its terms (with binomial coefficients) to obtain an explicit geometric bound, but this would be very painful.

      Instead, we will use the above intuition, but in a slightly different form, with finite sums and an induction. I learnt this trick in [Pos17]. Let $S_n = \sum_{k=1}^n Q_k a^k$ (where a is a positive real parameter to be chosen suitably small). The above computation but with finite sums shows that

      $$ S_n \leq Q_1 a + C' \sum_{k=2}^n (r S_{n-1})^k. $$

      In particular, $S_n \leq Q_1 a + C' (r S_{n-1})^2 / (1- r S_{n-1})$. Assume that $S_{n-1} \leq K a$, where K > Q₁ is fixed and a is small enough so that r K a ≀ 1/2 (to control the denominator). Then this equation gives a bound $S_n \leq Q_1 a + 2 C' r^2 K^2 a^2$. If a is small enough, this is bounded by K a as the second term is quadratic in a, and therefore negligible.

      By induction, we deduce Sβ‚™ ≀ K a for all n, which gives in particular the fact that aⁿ Qβ‚™ remains bounded.

      theorem FormalMultilinearSeries.radius_right_inv_pos_of_radius_pos_aux1 (n : β„•) (p : β„• β†’ ℝ) (hp : βˆ€ (k : β„•), 0 ≀ p k) {r a : ℝ} (hr : 0 ≀ r) (ha : 0 ≀ a) :
      βˆ‘ k ∈ Finset.Ico 2 (n + 1), a ^ k * βˆ‘ c ∈ {c : Composition k | 1 < c.length}.toFinset, r ^ c.length * ∏ j : Fin c.length, p (c.blocksFun j) ≀ βˆ‘ j ∈ Finset.Ico 2 (n + 1), r ^ j * (βˆ‘ k ∈ Finset.Ico 1 n, a ^ k * p k) ^ j

      First technical lemma to control the growth of coefficients of the inverse. Bound the explicit expression for βˆ‘_{k<n+1} aᡏ Qβ‚– in terms of a sum of powers of the same sum one step before, in a general abstract setup.

      theorem FormalMultilinearSeries.radius_rightInv_pos_of_radius_pos_aux2 {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace π•œ F] {x : E} {n : β„•} (hn : 2 ≀ n + 1) (p : FormalMultilinearSeries π•œ E F) (i : E ≃L[π•œ] F) {r a C : ℝ} (hr : 0 ≀ r) (ha : 0 ≀ a) (hC : 0 ≀ C) (hp : βˆ€ (n : β„•), β€–p nβ€– ≀ C * r ^ n) :
      βˆ‘ k ∈ Finset.Ico 1 (n + 1), a ^ k * β€–p.rightInv i x kβ€– ≀ ‖↑i.symmβ€– * a + ‖↑i.symmβ€– * C * βˆ‘ k ∈ Finset.Ico 2 (n + 1), (r * βˆ‘ j ∈ Finset.Ico 1 n, a ^ j * β€–p.rightInv i x jβ€–) ^ k

      Second technical lemma to control the growth of coefficients of the inverse. Bound the explicit expression for βˆ‘_{k<n+1} aᡏ Qβ‚– in terms of a sum of powers of the same sum one step before, in the specific setup we are interesting in, by reducing to the general bound in radius_rightInv_pos_of_radius_pos_aux1.

      theorem FormalMultilinearSeries.radius_rightInv_pos_of_radius_pos {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace π•œ F] {p : FormalMultilinearSeries π•œ E F} {i : E ≃L[π•œ] F} {x : E} (hp : 0 < p.radius) :
      0 < (p.rightInv i x).radius

      If a a formal multilinear series has a positive radius of convergence, then its right inverse also has a positive radius of convergence.

      theorem FormalMultilinearSeries.radius_leftInv_pos_of_radius_pos {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace π•œ F] {p : FormalMultilinearSeries π•œ E F} {i : E ≃L[π•œ] F} {x : E} (hp : 0 < p.radius) (h : p 1 = (continuousMultilinearCurryFin1 π•œ E F).symm ↑i) :
      0 < (p.leftInv i x).radius

      If a a formal multilinear series has a positive radius of convergence, then its left inverse also has a positive radius of convergence.

      The inverse of an analytic partial homeomorphism is analytic #

      theorem HasFPowerSeriesAt.tendsto_partialSum_prod_of_comp {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace π•œ F] {G : Type u_4} [NormedAddCommGroup G] [NormedSpace π•œ G] {f : E β†’ G} {q : FormalMultilinearSeries π•œ F G} {p : FormalMultilinearSeries π•œ E F} {x : E} (hf : HasFPowerSeriesAt f (q.comp p) x) (hq : 0 < q.radius) (hp : 0 < p.radius) :
      βˆ€αΆ  (y : E) in nhds 0, Filter.Tendsto (fun (a : β„• Γ— β„•) => q.partialSum a.1 (p.partialSum a.2 y - (p 0) fun (x : Fin 0) => 0)) Filter.atTop (nhds (f (x + y)))
      theorem HasFPowerSeriesAt.eventually_hasSum_of_comp {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace π•œ F] {G : Type u_4} [NormedAddCommGroup G] [NormedSpace π•œ G] {f : E β†’ F} {g : F β†’ G} {q : FormalMultilinearSeries π•œ F G} {p : FormalMultilinearSeries π•œ E F} {x : E} (hgf : HasFPowerSeriesAt (g ∘ f) (q.comp p) x) (hf : HasFPowerSeriesAt f p x) (hq : 0 < q.radius) :
      βˆ€αΆ  (y : E) in nhds 0, HasSum (fun (n : β„•) => (q n) fun (x_1 : Fin n) => f (x + y) - f x) (g (f (x + y)))
      theorem PartialHomeomorph.hasFPowerSeriesAt_symm {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace π•œ F] (f : PartialHomeomorph E F) {a : E} {i : E ≃L[π•œ] F} (h0 : a ∈ f.source) {p : FormalMultilinearSeries π•œ E F} (h : HasFPowerSeriesAt (↑f) p a) (hp : p 1 = (continuousMultilinearCurryFin1 π•œ E F).symm ↑i) :
      HasFPowerSeriesAt (↑f.symm) (p.leftInv i a) (↑f a)

      If a partial homeomorphism f is defined at a and has a power series expansion there with invertible linear term, then f.symm has a power series expansion at f a, given by the inverse of the initial power series.