Documentation

Mathlib.Analysis.Normed.Algebra.Logarithm

The logarithm in a topological algebra #

In this file we define NormedSpace.log : 𝔸 β†’ 𝔸, the logarithm log x = βˆ‘β‚™ ((-1) ^ (n + 1) / n) β€’ (x - 1) ^ n in a topological ring 𝔸, following the development style of NormedSpace.exp (see Mathlib/Analysis/Normed/Algebra/Exponential.lean). It is the value at x - 1 of the FormalMultilinearSeries NormedSpace.logSeries β„š 𝔸, where the β„š-algebra structure on 𝔸 is chosen using Classical.choice. It takes the junk value 0 if the series does not converge or if 𝔸 has no β„š-algebra structure (equivalently, if 1 / n doesn't correspond to what a mathematician thinks).

This file only contains the definition and its immediate algebraic properties; convergence of the series and the relation to NormedSpace.exp are left to later files.

Main definitions #

Main results #

TODO #

def NormedSpace.logSeries (𝕂 : Type u_1) (𝔸 : Type u_2) [Field 𝕂] [Ring 𝔸] [Algebra 𝕂 𝔸] [TopologicalSpace 𝔸] [IsTopologicalRing 𝔸] :
FormalMultilinearSeries 𝕂 𝔸 𝔸

logSeries 𝕂 𝔸 is the FormalMultilinearSeries whose n-th term is the map (xα΅’) : 𝔸ⁿ ↦ ((-1) ^ (n + 1) / n : 𝕂) β€’ ∏ xα΅’; its 0-th term is 0 since 1 / 0 = 0. The corresponding sum evaluated at x - 1 is the logarithm NormedSpace.log x.

Equations
Instances For
    theorem NormedSpace.logSeries_eq_ofScalars (𝕂 : Type u_1) (𝔸 : Type u_2) [Field 𝕂] [Ring 𝔸] [Algebra 𝕂 𝔸] [TopologicalSpace 𝔸] [IsTopologicalRing 𝔸] :
    logSeries 𝕂 𝔸 = FormalMultilinearSeries.ofScalars 𝔸 fun (n : β„•) => (-1) ^ (n + 1) / ↑n
    theorem NormedSpace.log_def {𝔸 : Type u_3} [Ring 𝔸] [TopologicalSpace 𝔸] [IsTopologicalRing 𝔸] (x : 𝔸) :
    log x = if h : Nonempty (Algebra β„š 𝔸) then (logSeries β„š 𝔸).sum (x - 1) else 0
    @[irreducible]
    noncomputable def NormedSpace.log {𝔸 : Type u_3} [Ring 𝔸] [TopologicalSpace 𝔸] [IsTopologicalRing 𝔸] (x : 𝔸) :
    𝔸

    NormedSpace.log : 𝔸 β†’ 𝔸 is the logarithm log x = βˆ‘β‚™ ((-1) ^ (n + 1) / n) β€’ (x - 1) ^ n. It is defined as the sum of the FormalMultilinearSeries logSeries β„š 𝔸 at x - 1, in the same way as NormedSpace.exp, and takes the junk value 0 where the series does not converge.

    If 𝔸 can't be equipped with a β„š-algebra structure, we use the junk value 0.

    Equations
    Instances For
      @[simp]
      theorem NormedSpace.log_of_isEmpty_algebra_rat {𝔸 : Type u_2} [Ring 𝔸] [TopologicalSpace 𝔸] [IsTopologicalRing 𝔸] [IsEmpty (Algebra β„š 𝔸)] (x : 𝔸) :
      log x = 0

      The junk value when 𝔸 can't be equipped with a β„š-algebra structure.

      theorem NormedSpace.logSeries_apply_eq {𝕂 : Type u_1} {𝔸 : Type u_2} [Field 𝕂] [Ring 𝔸] [Algebra 𝕂 𝔸] [TopologicalSpace 𝔸] [IsTopologicalRing 𝔸] (x : 𝔸) (n : β„•) :
      ((logSeries 𝕂 𝔸 n) fun (x_1 : Fin n) => x) = ((-1) ^ (n + 1) / ↑n) β€’ x ^ n
      theorem NormedSpace.logSeries_sum_eq {𝕂 : Type u_1} {𝔸 : Type u_2} [Field 𝕂] [Ring 𝔸] [Algebra 𝕂 𝔸] [TopologicalSpace 𝔸] [IsTopologicalRing 𝔸] (x : 𝔸) :
      (logSeries 𝕂 𝔸).sum x = βˆ‘' (n : β„•), ((-1) ^ (n + 1) / ↑n) β€’ x ^ n
      theorem NormedSpace.logSeries_sum_eq_rat {𝕂 : Type u_1} {𝔸 : Type u_2} [Field 𝕂] [Ring 𝔸] [Algebra 𝕂 𝔸] [TopologicalSpace 𝔸] [IsTopologicalRing 𝔸] [Algebra β„š 𝔸] :
      (logSeries 𝕂 𝔸).sum = (logSeries β„š 𝔸).sum
      theorem NormedSpace.logSeries_eq_logSeries_rat {𝕂 : Type u_1} {𝔸 : Type u_2} [Field 𝕂] [Ring 𝔸] [Algebra 𝕂 𝔸] [TopologicalSpace 𝔸] [IsTopologicalRing 𝔸] [Algebra β„š 𝔸] (n : β„•) :
      ⇑(logSeries 𝕂 𝔸 n) = ⇑(logSeries β„š 𝔸 n)
      theorem NormedSpace.log_eq_logSeries_sum (𝕂 : Type u_1) {𝔸 : Type u_2} [Field 𝕂] [Ring 𝔸] [Algebra 𝕂 𝔸] [TopologicalSpace 𝔸] [IsTopologicalRing 𝔸] [CharZero 𝕂] :
      log = fun (x : 𝔸) => (logSeries 𝕂 𝔸).sum (x - 1)
      theorem NormedSpace.log_eq_tsum (𝕂 : Type u_1) {𝔸 : Type u_2} [Field 𝕂] [Ring 𝔸] [Algebra 𝕂 𝔸] [TopologicalSpace 𝔸] [IsTopologicalRing 𝔸] [CharZero 𝕂] :
      log = fun (x : 𝔸) => βˆ‘' (n : β„•), ((-1) ^ (n + 1) / ↑n) β€’ (x - 1) ^ n
      theorem NormedSpace.logSeries_apply_zero {𝕂 : Type u_1} {𝔸 : Type u_2} [Field 𝕂] [Ring 𝔸] [Algebra 𝕂 𝔸] [TopologicalSpace 𝔸] [IsTopologicalRing 𝔸] (n : β„•) :
      ((logSeries 𝕂 𝔸 n) fun (x : Fin n) => 0) = 0
      @[simp]
      theorem NormedSpace.log_one {𝔸 : Type u_2} [Ring 𝔸] [TopologicalSpace 𝔸] [IsTopologicalRing 𝔸] :
      log 1 = 0
      @[simp]
      theorem NormedSpace.log_op {𝔸 : Type u_2} [Ring 𝔸] [TopologicalSpace 𝔸] [IsTopologicalRing 𝔸] [T2Space 𝔸] (x : 𝔸) :
      theorem NormedSpace.star_log {𝔸 : Type u_2} [Ring 𝔸] [TopologicalSpace 𝔸] [IsTopologicalRing 𝔸] [T2Space 𝔸] [StarRing 𝔸] [ContinuousStar 𝔸] (x : 𝔸) :
      star (log x) = log (star x)
      theorem NormedSpace.log_mem {𝔸 : Type u_2} [Ring 𝔸] [TopologicalSpace 𝔸] [IsTopologicalRing 𝔸] {R : Type u_3} {S : Type u_4} [Monoid R] [SMul β„š R] [MulAction R 𝔸] [Algebra β„š 𝔸] [IsScalarTower β„š R 𝔸] [SetLike S 𝔸] [SubringClass S 𝔸] [SMulMemClass S R 𝔸] {s : S} (h_closed : IsClosed ↑s) {x : 𝔸} (h : x ∈ s) :

      A subring of 𝔸 that is closed topologically and under β„š-scaling is closed under log.

      theorem Commute.log_right {𝔸 : Type u_1} [Ring 𝔸] [TopologicalSpace 𝔸] [IsTopologicalRing 𝔸] [T2Space 𝔸] {x y : 𝔸} (h : Commute x y) :
      theorem Commute.log_left {𝔸 : Type u_1} [Ring 𝔸] [TopologicalSpace 𝔸] [IsTopologicalRing 𝔸] [T2Space 𝔸] {x y : 𝔸} (h : Commute x y) :
      theorem Commute.log {𝔸 : Type u_1} [Ring 𝔸] [TopologicalSpace 𝔸] [IsTopologicalRing 𝔸] [T2Space 𝔸] {x y : 𝔸} (h : Commute x y) :