production module
AutoSamplingTheory.ExampleCases.ProximalBPS.ActualRootCommutation
Read the mathematical statements and proofs in order
2 named declarations scanned from AutoSamplingTheory/ExampleCases/ProximalBPS/ActualRootCommutation.lean.
Declarations
def AutoSamplingTheory.ExampleCases.ProximalBPS.ActualRootCommutation.actual_same_root_inverse_commutation_statement Partial Not mapped
No declaration docstring.
private def actual_same_root_inverse_commutation_statement
{E : Type*} [NormedAddCommGroup E] [InnerProductSpace ℝ E]
[FiniteDimensional ℝ E] [MeasurableSpace E] [BorelSpace E]
{V : E → ℝ} {α β : ℝ≥0} {η : ℝ}
(hα : 0 < (α : ℝ)) (hαβ : α ≤ β) (hV : ContDiff ℝ 2 V)
(hH : ∀ x v : E,
(α : ℝ)*‖v‖^2 ≤ (fderiv ℝ (fderiv ℝ V) x v) v ∧
(fderiv ℝ (fderiv ℝ V) x v) v ≤ (β : ℝ)*‖v‖^2)
(hη : 0 < η) (hβη : (β : ℝ)*η ≤ 1) : Prop :=
let μ := (volume : Measure E).tilted (fun x => -V x)
let J := (μ.prod (stdGaussian E)).map
(fun p : E × E => (p.1,p.1+Real.sqrt η • p.2))
let ν := J.snd
let Λ := J.map (fun p : E × E => (p.2,(2 : ℝ) • p.1-p.2))
let F := fun p : E × E => (p.1,(2 : ℝ) • p.1-p.2)
let mY := MeasurableSpace.comap Prod.snd (inferInstance : MeasurableSpace E)
letI : MeasurableSpace (E × E) := Prod.instMeasurableSpace
letI : Fact (mY ≤ (inferInstance : MeasurableSpace (E × E))) :=
⟨measurable_snd.comap_le⟩
let HP := lpMeas ℝ ℝ mY 2 J
let P : Lp ℝ 2 J →L[ℝ] Lp ℝ 2 J :=
HP.subtypeL ∘L condExpL2 ℝ ℝ (μ := J) measurable_snd.comap_le
let hp : MeasurePreserving (Prod.snd : E × E → E) J ν := ⟨measurable_snd,rfl⟩
let M : Lp ℝ 2 ν →ₗᵢ[ℝ] Lp ℝ 2 J := Lp.compMeasurePreservingₗᵢ ℝ Prod.snd hp
IsProbabilityMeasure μ ∧ IsProbabilityMeasure J ∧ IsProbabilityMeasure ν ∧
HP = P.toLinearMap.range ∧
(∀ f : HP, P (f : Lp ℝ 2 J) = f) ∧
∃ S : Kernel E E, IsMarkovKernel S ∧
(∀ y, S y = (volume : Measure E).tilted
(fun x => -V ((1/2 : ℝ) • (y+x)) - ‖y-x‖^2/(8*η))) ∧
Λ.IsCondKernel S ∧ Λ.fst = ν ∧ Λ.snd = ν ∧
∃ e : Lp ℝ 2 ν ≃ₗᵢ[ℝ] HP,
(∀ u : Lp ℝ 2 ν, (e u : Lp ℝ 2 J) = M u) ∧
∃ U : Lp ℝ 2 J →ₗᵢ[ℝ] Lp ℝ 2 J,
(∀ g : Lp ℝ 2 J, (U g : E × E → ℝ) =ᵐ[J] g ∘ F) ∧
Function.Involutive U ∧ IsSelfAdjoint U.toContinuousLinearMap ∧
∃ T : Lp ℝ 2 ν →L[ℝ] Lp ℝ 2 ν,
IsSelfAdjoint T ∧
(∀ u : Lp ℝ 2 ν,
‖T u‖ ≤ ‖u‖ ∧
(T u : E → ℝ) =ᵐ[ν] (fun y => ∫ x, u x ∂S y) ∧
(∫ y, T u y ∂ν) = ∫ y, u y ∂ν) ∧
let A : HP →L[ℝ] HP :=
HP.orthogonalProjectionOnto ∘L U.toContinuousLinearMap ∘L HP.subtypeL
-- Source excerpt truncated; follow the exact source link.
AutoSamplingTheory/ExampleCases/ProximalBPS/ActualRootCommutation.lean:11published source at ed709a7f320d
Excerpt truncated; the exact source link is authoritative.
theorem AutoSamplingTheory.ExampleCases.ProximalBPS.ActualRootCommutation.actual_same_root_inverse_commutation Partial Not mapped
Read the complete mathematical statement and proof, with Lean below each
No declaration docstring.
theorem actual_same_root_inverse_commutation
{E : Type*} [NormedAddCommGroup E] [InnerProductSpace ℝ E]
[FiniteDimensional ℝ E] [MeasurableSpace E] [BorelSpace E]
{V : E → ℝ} {α β : ℝ≥0} {η : ℝ}
(hα : 0 < (α : ℝ)) (hαβ : α ≤ β) (hV : ContDiff ℝ 2 V)
(hH : ∀ x v : E,
(α : ℝ)*‖v‖^2 ≤ (fderiv ℝ (fderiv ℝ V) x v) v ∧
(fderiv ℝ (fderiv ℝ V) x v) v ≤ (β : ℝ)*‖v‖^2)
(hη : 0 < η) (hβη : (β : ℝ)*η ≤ 1) : actual_same_root_inverse_commutation_statement (E := E) (V := V) (α := α) (β := β) (η := η) hα hαβ hV hH hη hβη := by
classical
unfold actual_same_root_inverse_commutation_statement
dsimp only
let μ := (volume : Measure E).tilted (fun x => -V x)
let J := (μ.prod (stdGaussian E)).map
(fun p : E × E => (p.1,p.1+Real.sqrt η • p.2))
let ν := J.snd
let mY : MeasurableSpace (E × E) := MeasurableSpace.comap Prod.snd (inferInstance : MeasurableSpace E)
letI : MeasurableSpace (E × E) := Prod.instMeasurableSpace
letI : Fact (mY ≤ (inferInstance : MeasurableSpace (E × E))) := ⟨measurable_snd.comap_le⟩
let HP := lpMeas ℝ ℝ mY 2 J
letI : NormedAddCommGroup HP := HP.normedAddCommGroup
letI : InnerProductSpace ℝ HP := HP.innerProductSpace
let P : Lp ℝ 2 J →L[ℝ] Lp ℝ 2 J :=
HP.subtypeL ∘L condExpL2 ℝ ℝ (μ := J) measurable_snd.comap_le
have hBase := AutoSamplingTheory.ExampleCases.ProximalBPS.AmbientAdjointCorrector.actual_ambient_adjoint_centered_decomposition
(E:=E) (V:=V) (α:=α) (β:=β) (η:=η) hα hαβ hV hH hη hβη
rcases hBase with
⟨hμ,hJ,hν,hRange,hPf,S,hS,hSd,hSc,hSf,hSs,e,he,U,hU,hUi,hUs,
T,hTs,hAll,hAeq,hAs,hAn,hPB,Γ,hΓ,hΓSq,hΓP,hΓPSq,hGram,
q,hqa,hTq,hq,hCenter,hΓPq,hγ,ΓP0,hΓP0,hPos0,hOrder0,hUnit,
Inv,hLeft,hRight,hNormInv,B0,hB0,V0,hVdef,hFactor,hVadj,hVnorm,R,hR,hAmbient,hGlobal⟩
let A : HP →L[ℝ] HP := HP.orthogonalProjectionOnto ∘L U.toContinuousLinearMap ∘L HP.subtypeL
let B : HP →L[ℝ] Lp ℝ 2 J :=
(((1 : Lp ℝ 2 J →L[ℝ] Lp ℝ 2 J)-P)*U.toContinuousLinearMap*P) ∘L HP.subtypeL
let ΓP : HP →L[ℝ] HP := e.conjStarAlgEquiv Γ
let qP : HP := e q
let HP0 := (innerSL ℝ qP).ker
letI : NormedAddCommGroup HP0 := HP0.normedAddCommGroup
letI : InnerProductSpace ℝ HP0 := HP0.innerProductSpace
letI : CompleteSpace HP0 := (innerSL ℝ qP).isClosed_ker.completeSpace_coe
let Hperp := P.ker
letI : NormedAddCommGroup Hperp := Hperp.normedAddCommGroup
letI : InnerProductSpace ℝ Hperp := Hperp.innerProductSpace
letI : CompleteSpace Hperp := P.isClosed_ker.completeSpace_coe
-- Source excerpt truncated; follow the exact source link.
AutoSamplingTheory/ExampleCases/ProximalBPS/ActualRootCommutation.lean:115published source at ed709a7f320dOpen detailed card
Excerpt truncated; the exact source link is authoritative.
Complete Lean source
AutoSamplingTheory/ExampleCases/ProximalBPS/ActualRootCommutation.lean — full module with imports and context
import AutoSamplingTheory.ExampleCases.ProximalBPS.AmbientAdjointCorrector
import AutoSamplingTheory.TechnicalLemmas.Measure.L2RealSquareCommute
open MeasureTheory ProbabilityTheory InnerProductSpace
open scoped RealInnerProductSpace ContDiff NNReal Topology ENNReal
namespace AutoSamplingTheory.ExampleCases.ProximalBPS.ActualRootCommutation
noncomputable section
set_option autoImplicit false
set_option maxHeartbeats 2000000
private def actual_same_root_inverse_commutation_statement
{E : Type*} [NormedAddCommGroup E] [InnerProductSpace ℝ E]
[FiniteDimensional ℝ E] [MeasurableSpace E] [BorelSpace E]
{V : E → ℝ} {α β : ℝ≥0} {η : ℝ}
(hα : 0 < (α : ℝ)) (hαβ : α ≤ β) (hV : ContDiff ℝ 2 V)
(hH : ∀ x v : E,
(α : ℝ)*‖v‖^2 ≤ (fderiv ℝ (fderiv ℝ V) x v) v ∧
(fderiv ℝ (fderiv ℝ V) x v) v ≤ (β : ℝ)*‖v‖^2)
(hη : 0 < η) (hβη : (β : ℝ)*η ≤ 1) : Prop :=
let μ := (volume : Measure E).tilted (fun x => -V x)
let J := (μ.prod (stdGaussian E)).map
(fun p : E × E => (p.1,p.1+Real.sqrt η • p.2))
let ν := J.snd
let Λ := J.map (fun p : E × E => (p.2,(2 : ℝ) • p.1-p.2))
let F := fun p : E × E => (p.1,(2 : ℝ) • p.1-p.2)
let mY := MeasurableSpace.comap Prod.snd (inferInstance : MeasurableSpace E)
letI : MeasurableSpace (E × E) := Prod.instMeasurableSpace
letI : Fact (mY ≤ (inferInstance : MeasurableSpace (E × E))) :=
⟨measurable_snd.comap_le⟩
let HP := lpMeas ℝ ℝ mY 2 J
let P : Lp ℝ 2 J →L[ℝ] Lp ℝ 2 J :=
HP.subtypeL ∘L condExpL2 ℝ ℝ (μ := J) measurable_snd.comap_le
let hp : MeasurePreserving (Prod.snd : E × E → E) J ν := ⟨measurable_snd,rfl⟩
let M : Lp ℝ 2 ν →ₗᵢ[ℝ] Lp ℝ 2 J := Lp.compMeasurePreservingₗᵢ ℝ Prod.snd hp
IsProbabilityMeasure μ ∧ IsProbabilityMeasure J ∧ IsProbabilityMeasure ν ∧
HP = P.toLinearMap.range ∧
(∀ f : HP, P (f : Lp ℝ 2 J) = f) ∧
∃ S : Kernel E E, IsMarkovKernel S ∧
(∀ y, S y = (volume : Measure E).tilted
(fun x => -V ((1/2 : ℝ) • (y+x)) - ‖y-x‖^2/(8*η))) ∧
Λ.IsCondKernel S ∧ Λ.fst = ν ∧ Λ.snd = ν ∧
∃ e : Lp ℝ 2 ν ≃ₗᵢ[ℝ] HP,
(∀ u : Lp ℝ 2 ν, (e u : Lp ℝ 2 J) = M u) ∧
∃ U : Lp ℝ 2 J →ₗᵢ[ℝ] Lp ℝ 2 J,
(∀ g : Lp ℝ 2 J, (U g : E × E → ℝ) =ᵐ[J] g ∘ F) ∧
Function.Involutive U ∧ IsSelfAdjoint U.toContinuousLinearMap ∧
∃ T : Lp ℝ 2 ν →L[ℝ] Lp ℝ 2 ν,
IsSelfAdjoint T ∧
(∀ u : Lp ℝ 2 ν,
‖T u‖ ≤ ‖u‖ ∧
(T u : E → ℝ) =ᵐ[ν] (fun y => ∫ x, u x ∂S y) ∧
(∫ y, T u y ∂ν) = ∫ y, u y ∂ν) ∧
let A : HP →L[ℝ] HP :=
HP.orthogonalProjectionOnto ∘L U.toContinuousLinearMap ∘L HP.subtypeL
let B : HP →L[ℝ] Lp ℝ 2 J :=
(((1 : Lp ℝ 2 J →L[ℝ] Lp ℝ 2 J)-P)*U.toContinuousLinearMap*P) ∘L HP.subtypeL
A = e.conjStarAlgEquiv T ∧ IsSelfAdjoint A ∧
(∀ f : HP, ‖A f‖ ≤ ‖f‖) ∧
(∀ f : HP, P (B f) = 0) ∧
∃ Γ : Lp ℝ 2 ν →L[ℝ] Lp ℝ 2 ν,
Γ.IsPositive ∧ Γ*Γ=(1 : Lp ℝ 2 ν →L[ℝ] Lp ℝ 2 ν)-T*T ∧
Commute Γ T ∧
let ΓP : HP →L[ℝ] HP := e.conjStarAlgEquiv Γ
ΓP.IsPositive ∧ ΓP*ΓP=(1 : HP →L[ℝ] HP)-A*A ∧
Commute ΓP A ∧
B.adjoint ∘L B = ΓP*ΓP ∧
∃ q : Lp ℝ 2 ν,
(q : E → ℝ) =ᵐ[ν] (fun _ => (1 : ℝ)) ∧ T q = q ∧
(∀ u : Lp ℝ 2 ν, inner ℝ q u = ∫ y, u y ∂ν) ∧
let qP : HP := e q
let HP0 := (innerSL ℝ qP).ker
letI : NormedAddCommGroup HP0 := HP0.normedAddCommGroup
letI : InnerProductSpace ℝ HP0 := HP0.innerProductSpace
letI : CompleteSpace HP0 := (innerSL ℝ qP).isClosed_ker.completeSpace_coe
let γ : ℝ := 2*Real.sqrt ((α : ℝ)*η)/(1+(α : ℝ)*η)
(∀ f : HP, f ∈ HP0 ↔ (∫ y, (e.symm f) y ∂ν) = 0) ∧
ΓP qP = 0 ∧ 0 < γ ∧
∃ ΓP0 : HP0 →L[ℝ] HP0,
(∀ f : HP0, (ΓP0 f : HP) = ΓP (f : HP)) ∧
ΓP0.IsPositive ∧ (ΓP0-γ • (1 : HP0 →L[ℝ] HP0)).IsPositive ∧
IsUnit ΓP0 ∧
∃ Inv : HP0 →L[ℝ] HP0,
Inv*ΓP0=(1 : HP0 →L[ℝ] HP0) ∧
ΓP0*Inv=(1 : HP0 →L[ℝ] HP0) ∧ ‖Inv‖ ≤ 1/γ ∧
IsSelfAdjoint Inv ∧
∃ A0 : HP0 →L[ℝ] HP0,
(∀ u : HP0, (A0 u : HP)=A (u : HP)) ∧
IsSelfAdjoint A0 ∧ Commute A0 ΓP0 ∧
A0*A0+ΓP0*ΓP0=(1 : HP0 →L[ℝ] HP0) ∧
Commute A0 Inv ∧
let Hperp := P.ker
letI : NormedAddCommGroup Hperp := Hperp.normedAddCommGroup
letI : InnerProductSpace ℝ Hperp := Hperp.innerProductSpace
letI : CompleteSpace Hperp := P.isClosed_ker.completeSpace_coe
∃ B0 : HP0 →L[ℝ] Hperp,
(∀ f : HP0, (B0 f : Lp ℝ 2 J) = B (f : HP)) ∧
∃ V0 : HP0 →L[ℝ] Hperp,
V0 = B0 ∘L Inv ∧ B0 = V0 ∘L ΓP0 ∧
V0.adjoint ∘L V0 = (1 : HP0 →L[ℝ] HP0) ∧
(∀ f : HP0, ‖V0 f‖ = ‖f‖) ∧
∃ R : Lp ℝ 2 J →L[ℝ] Hperp,
(∀ g : Lp ℝ 2 J, (R g : Lp ℝ 2 J)=g-P g) ∧
(∀ g : Lp ℝ 2 J,
B.adjoint g=HP0.subtypeL (B0.adjoint (R g))) ∧
(∀ f : Lp ℝ 2 J, (∫ z, f z ∂J)=0 →
∃ fP : HP0,
HP0.subtypeL fP=condExpL2 ℝ ℝ (μ:=J) measurable_snd.comap_le f ∧
let fperp : Hperp := R f
let fV : HP0 := V0.adjoint fperp
B.adjoint (fperp : Lp ℝ 2 J)=HP0.subtypeL (ΓP0 fV) ∧
HP0.subtypeL (ΓP0 fV)=ΓP (HP0.subtypeL fV) ∧
‖f‖^2=‖fP‖^2+‖fperp‖^2 ∧ ‖fV‖≤‖fperp‖)
theorem actual_same_root_inverse_commutation
{E : Type*} [NormedAddCommGroup E] [InnerProductSpace ℝ E]
[FiniteDimensional ℝ E] [MeasurableSpace E] [BorelSpace E]
{V : E → ℝ} {α β : ℝ≥0} {η : ℝ}
(hα : 0 < (α : ℝ)) (hαβ : α ≤ β) (hV : ContDiff ℝ 2 V)
(hH : ∀ x v : E,
(α : ℝ)*‖v‖^2 ≤ (fderiv ℝ (fderiv ℝ V) x v) v ∧
(fderiv ℝ (fderiv ℝ V) x v) v ≤ (β : ℝ)*‖v‖^2)
(hη : 0 < η) (hβη : (β : ℝ)*η ≤ 1) : actual_same_root_inverse_commutation_statement (E := E) (V := V) (α := α) (β := β) (η := η) hα hαβ hV hH hη hβη := by
classical
unfold actual_same_root_inverse_commutation_statement
dsimp only
let μ := (volume : Measure E).tilted (fun x => -V x)
let J := (μ.prod (stdGaussian E)).map
(fun p : E × E => (p.1,p.1+Real.sqrt η • p.2))
let ν := J.snd
let mY : MeasurableSpace (E × E) := MeasurableSpace.comap Prod.snd (inferInstance : MeasurableSpace E)
letI : MeasurableSpace (E × E) := Prod.instMeasurableSpace
letI : Fact (mY ≤ (inferInstance : MeasurableSpace (E × E))) := ⟨measurable_snd.comap_le⟩
let HP := lpMeas ℝ ℝ mY 2 J
letI : NormedAddCommGroup HP := HP.normedAddCommGroup
letI : InnerProductSpace ℝ HP := HP.innerProductSpace
let P : Lp ℝ 2 J →L[ℝ] Lp ℝ 2 J :=
HP.subtypeL ∘L condExpL2 ℝ ℝ (μ := J) measurable_snd.comap_le
have hBase := AutoSamplingTheory.ExampleCases.ProximalBPS.AmbientAdjointCorrector.actual_ambient_adjoint_centered_decomposition
(E:=E) (V:=V) (α:=α) (β:=β) (η:=η) hα hαβ hV hH hη hβη
rcases hBase with
⟨hμ,hJ,hν,hRange,hPf,S,hS,hSd,hSc,hSf,hSs,e,he,U,hU,hUi,hUs,
T,hTs,hAll,hAeq,hAs,hAn,hPB,Γ,hΓ,hΓSq,hΓP,hΓPSq,hGram,
q,hqa,hTq,hq,hCenter,hΓPq,hγ,ΓP0,hΓP0,hPos0,hOrder0,hUnit,
Inv,hLeft,hRight,hNormInv,B0,hB0,V0,hVdef,hFactor,hVadj,hVnorm,R,hR,hAmbient,hGlobal⟩
let A : HP →L[ℝ] HP := HP.orthogonalProjectionOnto ∘L U.toContinuousLinearMap ∘L HP.subtypeL
let B : HP →L[ℝ] Lp ℝ 2 J :=
(((1 : Lp ℝ 2 J →L[ℝ] Lp ℝ 2 J)-P)*U.toContinuousLinearMap*P) ∘L HP.subtypeL
let ΓP : HP →L[ℝ] HP := e.conjStarAlgEquiv Γ
let qP : HP := e q
let HP0 := (innerSL ℝ qP).ker
letI : NormedAddCommGroup HP0 := HP0.normedAddCommGroup
letI : InnerProductSpace ℝ HP0 := HP0.innerProductSpace
letI : CompleteSpace HP0 := (innerSL ℝ qP).isClosed_ker.completeSpace_coe
let Hperp := P.ker
letI : NormedAddCommGroup Hperp := Hperp.normedAddCommGroup
letI : InnerProductSpace ℝ Hperp := Hperp.innerProductSpace
letI : CompleteSpace Hperp := P.isClosed_ker.completeSpace_coe
change HP0 →L[ℝ] Hperp at B0 V0
change HP0 →L[ℝ] HP0 at ΓP0 Inv
change Lp ℝ 2 J →L[ℝ] Hperp at R
change (∀ g : Lp ℝ 2 J, (R g : Lp ℝ 2 J)=g-P g) at hR
change (∀ g : Lp ℝ 2 J,
B.adjoint g=HP0.subtypeL (B0.adjoint (R g))) at hAmbient
change (∀ f : Lp ℝ 2 J, (∫ z, f z ∂J)=0 →
∃ fP : HP0,
HP0.subtypeL fP=condExpL2 ℝ ℝ (μ:=J) measurable_snd.comap_le f ∧
let fperp : Hperp := R f
let fV : HP0 := V0.adjoint fperp
B.adjoint (fperp : Lp ℝ 2 J)=HP0.subtypeL (ΓP0 fV) ∧
HP0.subtypeL (ΓP0 fV)=ΓP (HP0.subtypeL fV) ∧
‖f‖^2=‖fP‖^2+‖fperp‖^2 ∧ ‖fV‖≤‖fperp‖) at hGlobal
have hAeqLocal : A=e.conjStarAlgEquiv T := hAeq
have hAsLocal : IsSelfAdjoint A := hAs
have hLeftLocal : Inv*ΓP0=(1 : HP0 →L[ℝ] HP0) := hLeft
have hPosLocal : ΓP0.IsPositive := hPos0
have hDpos : ((1 : Lp ℝ 2 ν →L[ℝ] Lp ℝ 2 ν)+T).IsPositive := by
refine ⟨((IsSelfAdjoint.one (Lp ℝ 2 ν →L[ℝ] Lp ℝ 2 ν)).add hTs).isSymmetric,?_⟩
intro u
change 0 ≤ inner ℝ (u+T u) u
rw [inner_add_left,real_inner_self_eq_norm_sq]
have hn : ‖T u‖≤‖u‖ := (hAll u).1
have hi := (abs_le.mp (abs_real_inner_le_norm (T u) u)).1
nlinarith only [hn,hi,norm_nonneg u]
have hCommSquare : Commute (Γ*Γ) ((1 : Lp ℝ 2 ν →L[ℝ] Lp ℝ 2 ν)+T) := by
rw [hΓSq]
show (1-T*T)*(1+T)=(1+T)*(1-T*T)
noncomm_ring
have hCommRootPlus := AutoSamplingTheory.TechnicalLemmas.Measure.L2RealSquareCommute.positive_square_commutation
ν Γ (1+T) hΓ hDpos hCommSquare
have hCommRoot : Commute Γ T := by
have h := hCommRootPlus.eq
simp only [mul_add,add_mul,mul_one,one_mul] at h
exact add_left_cancel h
have hCommP : Commute ΓP A := by
change ΓP*A=A*ΓP
change (e.conjStarAlgEquiv Γ)*A=A*(e.conjStarAlgEquiv Γ)
rw [hAeqLocal,← map_mul,← map_mul,hCommRoot.eq]
have hAq : A qP=qP := by
rw [hAeqLocal]
change e (T (e.symm (e q)))=e q
rw [e.symm_apply_apply,hTq]
have hAPreserves (u : HP0) : A (u : HP) ∈ HP0 := by
change inner ℝ qP (A (u : HP))=0
calc
inner ℝ qP (A (u : HP))=inner ℝ (A qP) (u : HP) :=
(hAsLocal.isSymmetric qP (u : HP)).symm
_ = inner ℝ qP (u : HP) := by rw [hAq]
_ = 0 := u.property
let A0 : HP0 →L[ℝ] HP0 := (A.comp HP0.subtypeL).codRestrict HP0 hAPreserves
have hA0 (u : HP0) : (A0 u : HP)=A (u : HP) := rfl
have hA0self : IsSelfAdjoint A0 := by
apply ContinuousLinearMap.isSelfAdjoint_iff_isSymmetric.mpr
intro u v
exact hAsLocal.isSymmetric (u : HP) (v : HP)
have hComm0 : Commute A0 ΓP0 := by
apply ContinuousLinearMap.ext
intro u
apply Subtype.ext
change (A0 (ΓP0 u) : HP)=(ΓP0 (A0 u) : HP)
rw [hA0,hΓP0,hΓP0,hA0]
exact congrArg (fun D : HP →L[ℝ] HP => D (u : HP)) hCommP.eq.symm
have hSquare0 : A0*A0+ΓP0*ΓP0=(1 : HP0 →L[ℝ] HP0) := by
apply ContinuousLinearMap.ext
intro u
apply Subtype.ext
change (A0 (A0 u) : HP)+(ΓP0 (ΓP0 u) : HP)=(u : HP)
rw [hA0,hA0,hΓP0,hΓP0]
have h : ΓP (ΓP (u : HP))=(u : HP)-A (A (u : HP)) :=
congrArg (fun D : HP →L[ℝ] HP => D (u : HP)) hΓPSq
rw [h]
abel
have hStarInv : ΓP0*star Inv=(1 : HP0 →L[ℝ] HP0) := by
have h := congrArg (fun D : HP0 →L[ℝ] HP0 => star D) hLeftLocal
simpa only [star_mul,hPosLocal.isSelfAdjoint.star_eq,star_one] using h
have hInvSelf : IsSelfAdjoint Inv := by
change star Inv=Inv
calc
star Inv=(Inv*ΓP0)*star Inv := by rw [hLeft,one_mul]
_ = Inv*(ΓP0*star Inv) := mul_assoc _ _ _
_ = Inv := by rw [hStarInv,mul_one]
have hCommInv : Commute A0 Inv := by
change A0*Inv=Inv*A0
calc
A0*Inv=(Inv*ΓP0)*(A0*Inv) := by rw [hLeft,one_mul]
_ = Inv*((ΓP0*A0)*Inv) := by noncomm_ring
_ = Inv*((A0*ΓP0)*Inv) := by rw [hComm0.eq.symm]
_ = Inv*A0 := by simp only [mul_assoc,hRight,mul_one]
refine ⟨hμ, ?_⟩
refine ⟨hJ, ?_⟩
refine ⟨hν, ?_⟩
refine ⟨hRange, ?_⟩
refine ⟨hPf, ?_⟩
refine ⟨S, ?_⟩
refine ⟨hS, ?_⟩
refine ⟨hSd, ?_⟩
refine ⟨hSc, ?_⟩
refine ⟨hSf, ?_⟩
refine ⟨hSs, ?_⟩
refine ⟨e, ?_⟩
refine ⟨he, ?_⟩
refine ⟨U, ?_⟩
refine ⟨hU, ?_⟩
refine ⟨hUi, ?_⟩
refine ⟨hUs, ?_⟩
refine ⟨T, ?_⟩
refine ⟨hTs, ?_⟩
refine ⟨hAll, ?_⟩
refine ⟨hAeq, ?_⟩
refine ⟨hAs, ?_⟩
refine ⟨hAn, ?_⟩
refine ⟨hPB, ?_⟩
refine ⟨Γ, ?_⟩
refine ⟨hΓ, ?_⟩
refine ⟨hΓSq, ?_⟩
refine ⟨hCommRoot, ?_⟩
refine ⟨hΓP, ?_⟩
refine ⟨hΓPSq, ?_⟩
refine ⟨hCommP, ?_⟩
refine ⟨hGram, ?_⟩
refine ⟨q, ?_⟩
refine ⟨hqa, ?_⟩
refine ⟨hTq, ?_⟩
refine ⟨hq, ?_⟩
refine ⟨hCenter, ?_⟩
refine ⟨hΓPq, ?_⟩
refine ⟨hγ, ?_⟩
refine ⟨ΓP0, ?_⟩
refine ⟨hΓP0, ?_⟩
refine ⟨hPos0, ?_⟩
refine ⟨hOrder0, ?_⟩
refine ⟨hUnit, ?_⟩
refine ⟨Inv, ?_⟩
refine ⟨hLeft, ?_⟩
refine ⟨hRight, ?_⟩
refine ⟨hNormInv, ?_⟩
refine ⟨hInvSelf,A0,hA0,hA0self,hComm0,hSquare0,hCommInv,?_⟩
refine ⟨B0, ?_⟩
refine ⟨hB0, ?_⟩
refine ⟨V0, ?_⟩
refine ⟨hVdef, ?_⟩
refine ⟨hFactor, ?_⟩
refine ⟨hVadj, ?_⟩
refine ⟨hVnorm, ?_⟩
refine ⟨R, ?_⟩
refine ⟨hR, ?_⟩
refine ⟨hAmbient, ?_⟩
exact hGlobal
end
end AutoSamplingTheory.ExampleCases.ProximalBPS.ActualRootCommutation
#print axioms AutoSamplingTheory.ExampleCases.ProximalBPS.ActualRootCommutation.actual_same_root_inverse_commutation