Large Signal Model · Lean source

ComplexCoefficientBox.lean

Declared contract recorded Coverage and evidence

The cited release explicitly reports completion of its registered formal contract, under its exact hypotheses.

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

Local imports (1)

KomorebiLSM/ComplexCoefficientBox.lean108 lines

Original source pathLean/KomorebiLSM/ComplexCoefficientBox.lean
Skip declarations and read code

Skip source text

1 import KomorebiLSM.RationalBernsteinMargin
2 
3 /-! Real entry budgets in the actual mass/real/imaginary coordinates. -/
4 set_option autoImplicit false
5 namespace Komorebi.LSM.ComplexCoefficientBox
6 open LorentzCylinder RobustOrientedMargin
7 open scoped BigOperators
8 abbrev RealMatrix := Matrix (Fin 3) (Fin 3) ℝ
9 
10 noncomputable def row (E : RealMatrix) (i : Fin 3) : State ℂ →L[ℝ] ℝ :=
11   ∑ j,E i j • RationalBernsteinMargin.coordinate j
12 
13 noncomputable def matrixOperator (E : RealMatrix) : State ℂ →L[ℝ] State ℂ :=
14   (row E 0).prod (Complex.equivRealProdCLM.symm.toContinuousLinearMap.comp
15     ((row E 1).prod (row E 2)))
16 
17 @[simp] theorem coordinate_matrixOperator (E : RealMatrix) (i : Fin 3) (z : State ℂ) :
18     RationalBernsteinMargin.coordinate i (matrixOperator E z)=
19       ∑ j,E i j*RationalBernsteinMargin.coordinate j z := by
20   fin_cases i <;> simp [RationalBernsteinMargin.coordinate,matrixOperator,row]
21 
22 @[simp] theorem matrixOperator_rat (E : RationalBernsteinMargin.RationalMatrix) :
23     matrixOperator (fun i j => (E i j : ℝ))=RationalBernsteinMargin.matrixOperator E := rfl
24 
25 theorem normalized_coordinate_bound (v : ℂ) (hv : ‖v‖≤1) (i : Fin 3) :
26     |RationalBernsteinMargin.coordinate i (1,v)|≤1 := by
27   fin_cases i
28   · norm_num [RationalBernsteinMargin.coordinate]
29   · exact (Complex.abs_re_le_norm v).trans hv
30   · exact (Complex.abs_im_le_norm v).trans hv
31 
32 theorem row_bound (E : RealMatrix) (v : ℂ) (hv : ‖v‖≤1) (i : Fin 3) :
33     |RationalBernsteinMargin.coordinate i (matrixOperator E (1,v))|≤∑ j,|E i j| := by
34   rw [coordinate_matrixOperator]
35   calc
36     _ ≤ ∑ j : Fin 3,|E i j*RationalBernsteinMargin.coordinate j (1,v)| := Finset.abs_sum_le_sum_abs _ _
37     _ ≤ _ := by
38       apply Finset.sum_le_sum
39       intro j _
40       rw [abs_mul]
41       exact (mul_le_mul_of_nonneg_left (normalized_coordinate_bound v hv j) (abs_nonneg _)).trans_eq (mul_one _)
42 
43 theorem value_bound (E : RealMatrix) (v : ℂ) (hv : ‖v‖≤1) :
44     probabilityCone.value (matrixOperator E (1,v))≤
45       max (∑ j,|E 0 j|) ((∑ j,|E 1 j|)+(∑ j,|E 2 j|)) := by
46   rw [value_eq]
47   apply max_le_max (row_bound E v hv 0)
48   exact (Complex.norm_le_abs_re_add_abs_im _).trans (add_le_add (row_bound E v hv 1) (row_bound E v hv 2))
49 
50 theorem entry_row_bound (E : RealMatrix) (r : ℝ) (hE : ∀ i j,|E i j|≤r) (i : Fin 3) :
51     (∑ j,|E i j|)≤3*r := by
52   calc
53     _ ≤ ∑ _j : Fin 3,r := Finset.sum_le_sum fun j _ => hE i j
54     _ = _ := by simp
55 
56 theorem coefficient_output_bounds (E : RealMatrix) (r : ℝ) (hE : ∀ i j,|E i j|≤r)
57     (v : ℂ) (hv : ‖v‖≤1) :
58     |(matrixOperator E (1,v)).1|≤3*r ∧ ‖(matrixOperator E (1,v)).2‖≤6*r := by
59   have h0 := (row_bound E v hv 0).trans (entry_row_bound E r hE 0)
60   have h1 := (row_bound E v hv 1).trans (entry_row_bound E r hE 1)
61   have h2 := (row_bound E v hv 2).trans (entry_row_bound E r hE 2)
62   refine ⟨h0,?_⟩
63   have hn := Complex.norm_le_abs_re_add_abs_im (matrixOperator E (1,v)).2
64   change |(matrixOperator E (1,v)).2.re|≤3*r at h1
65   change |(matrixOperator E (1,v)).2.im|≤3*r at h2
66   linarith
67 
68 theorem polynomial_coordinate {n : ℕ} (E : Fin n → RealMatrix) (u : ℝ) (z : State ℂ) (i : Fin 3) :
69     RationalBernsteinMargin.coordinate i (PolynomialGram.operatorPolynomial (fun k => matrixOperator (E k)) u z)=
70       ∑ k : Fin n,u^(k : ℕ)*RationalBernsteinMargin.coordinate i (matrixOperator (E k) z) := by
71   simp only [PolynomialGram.operatorPolynomial,sum_apply,smul_apply,map_sum,map_smul]
72   rfl
73 
74 theorem polynomial_row_bound {n : ℕ} (E : Fin n → RealMatrix) (u : ℝ)
75     (hu : u∈Set.Icc (-1 : ℝ) 1) (v : ℂ) (hv : ‖v‖≤1) (i : Fin 3) :
76     |RationalBernsteinMargin.coordinate i
77       (PolynomialGram.operatorPolynomial (fun k => matrixOperator (E k)) u (1,v))|≤
78         ∑ k : Fin n,∑ j,|E k i j| := by
79   rw [polynomial_coordinate]
80   calc
81     _ ≤ ∑ k : Fin n,|u^(k : ℕ)*RationalBernsteinMargin.coordinate i (matrixOperator (E k) (1,v))| :=
82       Finset.abs_sum_le_sum_abs _ _
83     _ ≤ _ := by
84       apply Finset.sum_le_sum
85       intro k _
86       rw [abs_mul]
87       have hp : |u^(k : ℕ)|≤1 := by rw [abs_pow]; exact pow_le_one₀ (abs_nonneg _) (abs_le.mpr hu)
88       exact (mul_le_mul hp (row_bound (E k) v hv i) (abs_nonneg _) (by norm_num)).trans_eq (one_mul _)
89 
90 theorem polynomial_output_bounds {n : ℕ} (E : Fin n → RealMatrix) (r : Fin n → ℝ)
91     (hE : ∀ k i j,|E k i j|≤r k) (u : ℝ) (hu : u∈Set.Icc (-1 : ℝ) 1)
92     (v : ℂ) (hv : ‖v‖≤1) :
93     |(PolynomialGram.operatorPolynomial (fun k => matrixOperator (E k)) u (1,v)).1|≤3*∑ k,r k ∧
94     ‖(PolynomialGram.operatorPolynomial (fun k => matrixOperator (E k)) u (1,v)).2‖≤6*∑ k,r k := by
95   have hr (i : Fin 3) : (∑ k : Fin n,∑ j,|E k i j|)≤3*∑ k,r k := by
96     calc
97       _ ≤ ∑ k : Fin n,3*r k := Finset.sum_le_sum fun k _ => entry_row_bound (E k) (r k) (hE k) i
98       _ = _ := (Finset.mul_sum _ _ _).symm
99   have h0 := (polynomial_row_bound E u hu v hv 0).trans (hr 0)
100   have h1 := (polynomial_row_bound E u hu v hv 1).trans (hr 1)
101   have h2 := (polynomial_row_bound E u hu v hv 2).trans (hr 2)
102   refine ⟨h0,?_⟩
103   have hn := Complex.norm_le_abs_re_add_abs_im (PolynomialGram.operatorPolynomial (fun k => matrixOperator (E k)) u (1,v)).2
104   change |(PolynomialGram.operatorPolynomial (fun k => matrixOperator (E k)) u (1,v)).2.re|≤3*∑ k,r k at h1
105   change |(PolynomialGram.operatorPolynomial (fun k => matrixOperator (E k)) u (1,v)).2.im|≤3*∑ k,r k at h2
106   linarith
107 
108 end Komorebi.LSM.ComplexCoefficientBox

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: 64568aabbcfc2513a9f29811fbcf67a378ee57eaceba40e3658584427efff829

Original source on GitHub

Back to Large Signal Model