Paper VI · Lean source

NonnormalMemory.lean

Inherited / related evidence Coverage and evidence

The edition relies on earlier or related formal evidence. That evidence is not a fresh full-edition replay.

This viewer reads the retained source; it does not run Lean or assign new claim mappings.

Local imports (3)

KomorebiPaperVI/NonnormalMemory.lean158 lines

Original source pathsource/complete/original_snapshot/formalization/lean/KomorebiPaperVI/NonnormalMemory.lean
Skip declarations and read code

Skip source text

1 import KomorebiPaperVI.ComplexMemory
2 import KomorebiPaperVI.CanonicalJets
3 import KomorebiPaperVI.ScalarDecay
4 import Mathlib.Algebra.Algebra.Bilinear
5 
6 /-! Author: Komorebi P. Spectral half-plane Laplace inversion for arbitrary finite-dimensional
7 complex algebras. Generalized eigenspaces, including nilpotent Jordan parts, supply the decay. -/
8 namespace KomorebiPaperVI.NonnormalMemory
9 open Module Set Filter MeasureTheory NormedSpace
10 open scoped Topology
11 open KomorebiPaperVI.Semigroups KomorebiPaperVI.ComplexMemory
12 set_option backward.isDefEq.respectTransparency false
13 variable {R : Type*} [CStarAlgebra R] [FiniteDimensional ℂ R]
14 
15 omit [FiniteDimensional ℂ R] in
16 theorem left_shift_power (A : R) (μ : ℂ) (k : ℕ) (x : R) :
17     ((LinearMap.mulLeft ℂ A-μ • 1)^k) x=(A-μ • 1)^k*x := by
18   have he : LinearMap.mulLeft ℂ A-μ • 1=LinearMap.mulLeft ℂ (A-μ • 1) := by
19     ext y
20     simp [sub_mul,Algebra.smul_mul_assoc]
21   rw [he,LinearMap.pow_mulLeft,LinearMap.mulLeft_apply]
22 
23 omit [FiniteDimensional ℂ R] in
24 theorem component_spectrum (A : R) (μ : ℂ) (x : R)
25     (hx : x ∈ (Module.End.maxGenEigenspace (LinearMap.mulLeft ℂ A)) μ) (hne : x ≠ 0) :
26     μ ∈ spectrum ℂ A := by
27   have hv : (Module.End.HasUnifEigenvector (LinearMap.mulLeft ℂ A)) μ ⊤ x := ⟨hx,hne⟩
28   have he : (Module.End.HasEigenvalue (LinearMap.mulLeft ℂ A)) μ :=
29     (Module.End.hasUnifEigenvalue_iff_hasUnifEigenvalue_one (by simp : (0:ℕ∞)<⊤)).mp hv.hasUnifEigenvalue
30   obtain ⟨y,hy⟩ := he.exists_hasEigenvector
31   rw [spectrum.mem_iff]
32   rintro ⟨u,hu⟩
33   have hz : (u:R)*y=0 := by
34     rw [hu,sub_mul,Algebra.algebraMap_eq_smul_one,Algebra.smul_mul_assoc,one_mul]
35     exact sub_eq_zero.mpr hy.apply_eq_smul.symm
36   exact hy.2 ((Units.mul_right_eq_zero u).mp hz)
37 
38 theorem exp_mul_component (A : R) (μ : ℂ) (x : R)
39     (hx : x ∈ (Module.End.maxGenEigenspace (LinearMap.mulLeft ℂ A)) μ) (t : ℝ) :
40     transfer A t*x=Complex.exp (μ*t) •
41       ∑ k ∈ Finset.range (finrank ℂ R),((t:ℂ)^k/(k.factorial:ℂ)) • ((A-μ • 1)^k*x) := by
42   classical
43   let : NormedAlgebra ℚ R := NormedAlgebra.restrictScalars ℚ ℝ R
44   let D := A-μ • 1
45   have hkill (k : ℕ) (hk : finrank ℂ R ≤ k) : D^k*x=0 := by
46     rw [← left_shift_power]
47     exact CanonicalJets.power_kills _ μ x hx k hk
48   have hs := (exp_series_hasSum_exp' (𝕂 := ℂ) ((t:ℂ) • D)).mul_right x
49   have he : exp ((t:ℂ) • D)*x=
50       ∑ k ∈ Finset.range (finrank ℂ R),((t:ℂ)^k/(k.factorial:ℂ)) • (D^k*x) := by
51     have hs' : HasSum (fun k : ℕ => ((t:ℂ)^k/(k.factorial:ℂ)) • (D^k*x))
52         (exp ((t:ℂ) • D)*x) := by
53       simpa only [smul_pow,Algebra.smul_mul_assoc,smul_smul,div_eq_mul_inv,mul_comm] using hs
54     exact hs'.unique (hasSum_sum_of_ne_finset_zero (fun k hk => by
55       rw [hkill k (by simpa using hk),smul_zero]))
56   have ht : t • A=algebraMap ℂ R (μ*t)+(t:ℂ) • D := by
57     simp only [D,smul_sub,Algebra.algebraMap_eq_smul_one,smul_smul]
58     rw [RCLike.real_smul_eq_coe_smul (K := ℂ),mul_comm μ (t:ℂ)]
59     abel
60   rw [transfer,ht,exp_add_of_commute (Algebra.commutes _ _),
61     ← algebraMap_exp_comm,← Complex.exp_eq_exp_ℂ,Algebra.algebraMap_eq_smul_one,
62     Algebra.smul_mul_assoc,one_mul,Algebra.smul_mul_assoc,he]
63 
64 theorem damped_mul_component (A : R) (z μ : ℂ) (x : R)
65     (hx : x ∈ (Module.End.maxGenEigenspace (LinearMap.mulLeft ℂ A)) μ) (t : ℝ) :
66     damped A z t*x=∑ k ∈ Finset.range (finrank ℂ R),
67       (Complex.exp ((μ-z)*t)*(t:ℂ)^k) • ((k.factorial:ℂ)⁻¹ • ((A-μ • 1)^k*x)) := by
68   rw [damped,Algebra.smul_mul_assoc,exp_mul_component A μ x hx,
69     smul_smul,Finset.smul_sum]
70   apply Finset.sum_congr rfl
71   intro k _
72   have he : -z*(t:ℂ)+μ*t=(μ-z)*t := by ring
73   simp only [smul_smul,div_eq_mul_inv]
74   rw [← Complex.exp_add,he,mul_assoc]
75 
76 theorem component_decay (A : R) (z : ℂ)
77     (hz : ∀ μ∈spectrum ℂ A,μ.re < z.re) (μ : ℂ) (x : R)
78     (hx : x ∈ (Module.End.maxGenEigenspace (LinearMap.mulLeft ℂ A)) μ) :
79     IntegrableOn (fun t => damped A z t*x) (Ioi 0) ∧
80     Tendsto (fun t => damped A z t*x) atTop (𝓝 0) := by
81   classical
82   by_cases hne : x=0
83   · subst x
84     simp
85   have hμ : (μ-z).re < 0 := by
86     have hh := hz μ (component_spectrum A μ x hx hne)
87     simp only [Complex.sub_re]
88     linarith
89   have he : (fun t => damped A z t*x)=(fun t : ℝ => ∑ k ∈ Finset.range (finrank ℂ R),
90       (Complex.exp ((μ-z)*t)*(t:ℂ)^k) • ((k.factorial:ℂ)⁻¹ • ((A-μ • 1)^k*x))) :=
91     funext (damped_mul_component A z μ x hx)
92   rw [he]
93   constructor
94   · exact integrable_finsetSum _ (fun k _ => (ScalarDecay.exp_pow_integrable _ hμ k).smul_const _)
95   · simpa using tendsto_finsetSum (Finset.range (finrank ℂ R))
96       (fun k _ => (ScalarDecay.exp_pow_tendsto_zero _ hμ k).smul_const
97         ((k.factorial:ℂ)⁻¹ • ((A-μ • 1)^k*x)))
98 
99 theorem spectral_decay (A : R) (z : ℂ) (hz : ∀ μ∈spectrum ℂ A,μ.re < z.re) :
100     IntegrableOn (damped A z) (Ioi 0) ∧ Tendsto (damped A z) atTop (𝓝 0) := by
101   have h (x : R) : IntegrableOn (fun t => damped A z t*x) (Ioi 0) ∧
102       Tendsto (fun t => damped A z t*x) atTop (𝓝 0) := by
103     apply Submodule.iSup_induction (Module.End.maxGenEigenspace (LinearMap.mulLeft ℂ A))
104       (x := x) (motive := fun x => IntegrableOn (fun t : ℝ => damped A z t*x) (Ioi 0) volume ∧
105         Tendsto (fun t => damped A z t*x) atTop (𝓝 0))
106       (by rw [Module.End.iSup_maxGenEigenspace_eq_top]; trivial)
107     · exact component_decay A z hz
108     · simp
109     · intro x y hx hy
110       simpa only [Pi.add_def,mul_add,add_zero] using And.intro (hx.1.add hy.1) (hx.2.add hy.2)
111   simpa using h 1
112 
113 
114 theorem spectral_laplace_inverse (A : R) (z : ℂ)
115     (hz : ∀ μ∈spectrum ℂ A,μ.re < z.re) :
116     IntegrableOn (damped A z) (Ioi 0) ∧ IsUnit (algebraMap ℂ R z-A) ∧
117       (∫ t in Ioi 0,damped A z t)=Ring.inverse (algebraMap ℂ R z-A) := by
118   have hs := spectral_decay A z hz
119   let B := A-algebraMap ℂ R z
120   have he : damped A z=transfer B := funext (damped_eq_shifted A z)
121   rw [he] at hs ⊢
122   have hl := integral_Ioi_of_hasDerivAt_of_tendsto'
123     (fun t (_ : t∈Ici (0:ℝ)) => transfer_derivative_left B t)
124     ((ContinuousLinearMap.mul ℝ R B).integrable_comp hs.1) hs.2
125   have hr := integral_Ioi_of_hasDerivAt_of_tendsto'
126     (fun t (_ : t∈Ici (0:ℝ)) => transfer_derivative_right B t)
127     (((ContinuousLinearMap.mul ℝ R).flip B).integrable_comp hs.1) hs.2
128   rw [integral_const_mul_of_integrable hs.1,transfer_zero,zero_sub] at hl
129   rw [integral_mul_const_of_integrable hs.1,transfer_zero,zero_sub] at hr
130   have hn : algebraMap ℂ R z-A= -B := by dsimp [B]; abel
131   have hl' : (algebraMap ℂ R z-A)*(∫ t in Ioi 0,transfer B t)=1 := by
132     rw [hn,neg_mul,hl,neg_neg]
133   have hr' : (∫ t in Ioi 0,transfer B t)*(algebraMap ℂ R z-A)=1 := by
134     rw [hn,mul_neg,hr,neg_neg]
135   have hu : IsUnit (algebraMap ℂ R z-A) := ⟨⟨_,_,hl',hr'⟩,rfl⟩
136   refine ⟨hs.1,hu,?_⟩
137   calc
138     _ = Ring.inverse (algebraMap ℂ R z-A)*((algebraMap ℂ R z-A)*(∫ t in Ioi 0,transfer B t)) :=
139       (Ring.inverse_mul_cancel_left _ _ hu).symm
140     _ = _ := by rw [hl',mul_one]
141 
142 theorem nonnormal_self_energy (A U V : R) (z : ℂ)
143     (hz : ∀ μ∈spectrum ℂ A,μ.re < z.re) :
144     IntegrableOn (fun t : ℝ => Complex.exp (-z*t) • (U*transfer A t*V)) (Ioi 0) ∧
145     (∫ t : ℝ in Ioi 0,Complex.exp (-z*t) • (U*transfer A t*V))=
146       U*Ring.inverse (algebraMap ℂ R z-A)*V := by
147   have h := spectral_laplace_inverse A z hz
148   have he : (fun t : ℝ => Complex.exp (-z*t) • (U*transfer A t*V))=
149       (fun t => U*damped A z t*V) := by
150     ext t
151     simp [damped,Algebra.mul_smul_comm,Algebra.smul_mul_assoc]
152   rw [he]
153   have hu : IntegrableOn (fun t => U*damped A z t) (Ioi 0) :=
154     (ContinuousLinearMap.mul ℝ R U).integrable_comp h.1
155   refine ⟨((ContinuousLinearMap.mul ℝ R).flip V).integrable_comp hu,?_⟩
156   rw [integral_mul_const_of_integrable hu,integral_const_mul_of_integrable h.1,h.2.2]
157 
158 end KomorebiPaperVI.NonnormalMemory

Back to source controls

Original file and source record

This copy matches the recorded source file. Its publication here does not change the work’s review status.

SHA-256: 8fa6c220eaea47dd19196848b4d5290cd9e36507a18f1036263fbcfcc3851634

Original source on GitHub

Back to Paper VI: Transfer Semigroups: Stochastic, Bayesian, Fractional, and PDE Realizations