Paper I · Lean source
BoundedStar.lean
1 claims linked to this Lean module
These links follow the claim index. They do not extend the recorded proof or Lean coverage.
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 (2)
PaperIRelease/BoundedStar.lean255 lines
Original source path
formal/current/PaperIRelease/BoundedStar.leanSkip declarations and read code
1 import PaperIRelease.AlgebraSupport
2 import KomorebiVerification.TopologicalCompletion
3 import Mathlib.Algebra.Star.Subalgebra
4
5 /-!
6 # Bounded Hilbert support patterns
7
8 The necessary conditions use actual bounded rank-one operators between the
9 nonzero projector ranges. No bounded realization of arbitrary algebraic
10 blocks is assumed.
11 -/
12
13 noncomputable section
14 set_option autoImplicit false
15 set_option maxHeartbeats 2000000
16
17 open scoped InnerProduct
18 open InnerProductSpace
19 open KomorebiVerification.TopologicalCompletion
20
21 namespace Komorebi.PaperIRelease.BoundedSupport
22
23 universe u v w
24 variable {K : Type u} [RCLike K]
25 variable {X : Type v} [NormedAddCommGroup X] [InnerProductSpace K X] [CompleteSpace X]
26 variable {I : Type w} [Fintype I]
27
28 abbrev Block (P : BoundedProjectorFamily K X I) (T : X →L[K] X) (b a : I) :=
29 BoundedProjectorFamily.transferBlock (P.proj b) T (P.proj a)
30
31 /-- Source-first relation convention, with literal vanishing ambient blocks. -/
32 def Supported (P : BoundedProjectorFamily K X I) (rel : I → I → Prop)
33 (T : X →L[K] X) : Prop := ∀ b a, ¬ rel a b → Block P T b a = 0
34
35 def underlying (P : BoundedProjectorFamily K X I) :
36 Komorebi.Foundation.LinearProjectorFamily K X I where
37 proj i := (P.proj i).toLinearMap
38 idempotent := P.idempotent
39 orthogonal := P.annihilate
40 complete := P.complete
41
42 omit [CompleteSpace X] in
43 theorem supported_iff_underlying (P : BoundedProjectorFamily K X I)
44 (rel : I → I → Prop) (T : X →L[K] X) :
45 Supported P rel T ↔ OperatorSupported (underlying P) rel T.toLinearMap := by
46 rw [operatorSupported_iff_ambient]
47 constructor
48 · intro h b a hab
49 exact congrArg ContinuousLinearMap.toLinearMap (h b a hab)
50 · intro h b a hab
51 ext x
52 exact LinearMap.congr_fun (h b a hab) x
53
54 omit [CompleteSpace X] in
55 theorem proj_mem (P : BoundedProjectorFamily K X I) (a : I) {x : X}
56 (hx : x ∈ P.packet a) : P.proj a x = x := by
57 obtain ⟨y, rfl⟩ := hx
58 exact P.idempotent a y
59
60 omit [CompleteSpace X] in
61 theorem proj_other (P : BoundedProjectorFamily K X I) {a b : I} (h : b ≠ a)
62 {x : X} (hx : x ∈ P.packet a) : P.proj b x = 0 := by
63 obtain ⟨y, rfl⟩ := hx
64 exact P.annihilate h y
65
66 theorem block_rankOne (P : BoundedProjectorFamily K X I)
67 (hself : ∀ i, (P.proj i).adjoint = P.proj i) (x y : X) (b a : I) :
68 Block P (rankOne K x y) b a = rankOne K (P.proj b x) (P.proj a y) := by
69 simp only [Block, BoundedProjectorFamily.transferBlock, rankOne_comp,
70 comp_rankOne, hself]
71
72 /-- A bounded rank-one map with both vectors in their actual packet ranges
73 has precisely the prescribed single possible transfer block. -/
74 theorem supported_rankOne (P : BoundedProjectorFamily K X I)
75 (hself : ∀ i, (P.proj i).adjoint = P.proj i) (rel : I → I → Prop)
76 {a b : I} (hab : rel a b) {x y : X}
77 (hx : x ∈ P.packet b) (hy : y ∈ P.packet a) :
78 Supported P rel (rankOne K x y) := by
79 intro d c hcd
80 rw [block_rankOne P hself]
81 by_cases hd : d = b
82 · subst d
83 have hc : c ≠ a := by intro heq; subst c; exact hcd hab
84 rw [proj_other P hc hy]
85 simp
86 · rw [proj_other P hd hx]
87 simp
88
89 omit [CompleteSpace X] in
90 theorem exists_nonzero_packet (P : BoundedProjectorFamily K X I)
91 [∀ i, Nontrivial (P.packet i)] (a : I) : ∃ x : X, x ∈ P.packet a ∧ x ≠ 0 := by
92 obtain ⟨x, hx⟩ := exists_ne (0 : P.packet a)
93 exact ⟨x, x.property, fun h => hx (Subtype.ext h)⟩
94
95 /-- Adjoint closure is exactly symmetry, including its rank-one converse. -/
96 theorem adjoint_closed_iff_symmetric (P : BoundedProjectorFamily K X I)
97 (hself : ∀ i, (P.proj i).adjoint = P.proj i)
98 [∀ i, Nontrivial (P.packet i)] (rel : I → I → Prop) :
99 (∀ T : X →L[K] X, Supported P rel T → Supported P rel T.adjoint) ↔
100 (∀ ⦃a b⦄, rel a b → rel b a) := by
101 constructor
102 · intro h a b hab
103 by_contra hba
104 obtain ⟨x, hx, hx0⟩ := exists_nonzero_packet P b
105 obtain ⟨y, hy, hy0⟩ := exists_nonzero_packet P a
106 have hz := h (rankOne K x y) (supported_rankOne P hself rel hab hx hy) a b hba
107 rw [adjoint_rankOne, block_rankOne P hself, proj_mem P a hy, proj_mem P b hx] at hz
108 exact rankOne_ne_zero hy0 hx0 hz
109 · intro hsym T hT b a hab
110 have hz := hT a b (fun hba => hab (hsym hba))
111 have hadj := congrArg ContinuousLinearMap.adjoint hz
112 rw [BoundedProjectorFamily.adjoint_transferBlock _ _ _ (hself b) (hself a)] at hadj
113 simpa using hadj
114
115 omit [CompleteSpace X] in
116 theorem identity_supported_iff_reflexive (P : BoundedProjectorFamily K X I)
117 [∀ i, Nontrivial (P.packet i)] (rel : I → I → Prop) :
118 Supported P rel (1 : X →L[K] X) ↔ (∀ a, rel a a) := by
119 constructor
120 · intro h a
121 by_contra haa
122 obtain ⟨x, hx, hx0⟩ := exists_nonzero_packet P a
123 have heq := congrArg (fun T : X →L[K] X => T x) (h a a haa)
124 apply hx0
125 simpa [Block, BoundedProjectorFamily.transferBlock, proj_mem P a hx] using heq
126 · intro hrefl b a hab
127 have hba : b ≠ a := by intro h; subst b; exact hab (hrefl a)
128 ext x
129 exact P.annihilate hba x
130
131 /-- Composition closure forces transitivity through bounded rank-one maps. -/
132 theorem transitive_of_mul_closed (P : BoundedProjectorFamily K X I)
133 (hself : ∀ i, (P.proj i).adjoint = P.proj i)
134 [∀ i, Nontrivial (P.packet i)] (rel : I → I → Prop)
135 (hclosed : ∀ S T : X →L[K] X, Supported P rel S → Supported P rel T →
136 Supported P rel (S * T)) : ∀ ⦃a b c⦄, rel a b → rel b c → rel a c := by
137 intro a b c hab hbc
138 by_contra hac
139 obtain ⟨x, hx, hx0⟩ := exists_nonzero_packet P a
140 obtain ⟨y, hy, hy0⟩ := exists_nonzero_packet P b
141 obtain ⟨z, hz, hz0⟩ := exists_nonzero_packet P c
142 have heq := hclosed (rankOne K z y) (rankOne K y x)
143 (supported_rankOne P hself rel hbc hz hy)
144 (supported_rankOne P hself rel hab hy hx) c a hac
145 have hblock : Block P (rankOne K z y * rankOne K y x) c a =
146 inner K y y • rankOne K z x := by
147 change Block P ((rankOne K z y).comp (rankOne K y x)) c a = _
148 rw [rankOne_comp_rankOne]
149 have hs : Block P (inner K y y • rankOne K z x) c a =
150 inner K y y • Block P (rankOne K z x) c a := by
151 ext v
152 simp only [Block, BoundedProjectorFamily.transferBlock,
153 ContinuousLinearMap.comp_apply, smul_apply, map_smul]
154 rw [hs, block_rankOne P hself, proj_mem P c hz, proj_mem P a hx]
155 rw [hblock] at heq
156 exact smul_ne_zero (inner_self_ne_zero.mpr hy0) (rankOne_ne_zero hz0 hx0) heq
157
158 variable [DecidableEq I]
159
160 /-- Bounded operators with a reflexive transitive support pattern form an
161 actual subalgebra of the bounded operator algebra. -/
162 def supportSubalgebra (P : BoundedProjectorFamily K X I) (rel : I → I → Prop)
163 (hrefl : ∀ a, rel a a) (htrans : ∀ ⦃a b c⦄, rel a b → rel b c → rel a c) : Subalgebra K (X →L[K] X) where
164 carrier := {T | Supported P rel T}
165 zero_mem' := by intro b a _; ext x; simp [Block, BoundedProjectorFamily.transferBlock]
166 add_mem' := by
167 intro S T hS hT
168 apply (supported_iff_underlying P rel (S + T)).mpr
169 exact (Komorebi.PaperIRelease.supportSubalgebra (underlying P) rel hrefl
170 (fun _ _ _ h1 h2 => htrans h1 h2)).add_mem
171 ((supported_iff_underlying P rel S).mp hS)
172 ((supported_iff_underlying P rel T).mp hT)
173 mul_mem' := by
174 intro S T hS hT
175 apply (supported_iff_underlying P rel (S * T)).mpr
176 exact (Komorebi.PaperIRelease.supportSubalgebra (underlying P) rel hrefl
177 (fun _ _ _ h1 h2 => htrans h1 h2)).mul_mem
178 ((supported_iff_underlying P rel S).mp hS)
179 ((supported_iff_underlying P rel T).mp hT)
180 algebraMap_mem' k := by
181 apply (supported_iff_underlying P rel (algebraMap K (X →L[K] X) k)).mpr
182 exact (Komorebi.PaperIRelease.supportSubalgebra (underlying P) rel hrefl
183 (fun _ _ _ h1 h2 => htrans h1 h2)).algebraMap_mem k
184
185 /-- Actual unital star-subalgebra, obtained from an equivalence relation. -/
186 def supportStarSubalgebra (P : BoundedProjectorFamily K X I)
187 (hself : ∀ i, (P.proj i).adjoint = P.proj i)
188 [∀ i, Nontrivial (P.packet i)] (rel : I → I → Prop) (heq : Equivalence rel) :
189 StarSubalgebra K (X →L[K] X) where
190 toSubalgebra := supportSubalgebra P rel heq.refl (fun {_ _ _} h1 h2 => heq.trans h1 h2)
191 star_mem' := by
192 intro T hT
193 exact (adjoint_closed_iff_symmetric P hself rel).mpr (fun {_ _} h => heq.symm h) T hT
194
195 /-- Literal Paper I corollary: equality with the bounded support space is
196 equivalent to an equivalence relation, with no supplied closure certificates. -/
197 theorem star_subalgebra_iff_equivalence (P : BoundedProjectorFamily K X I)
198 (hself : ∀ i, (P.proj i).adjoint = P.proj i)
199 [∀ i, Nontrivial (P.packet i)] (rel : I → I → Prop) :
200 (∃ A : StarSubalgebra K (X →L[K] X), ∀ T, T ∈ A ↔ Supported P rel T) ↔
201 Equivalence rel := by
202 constructor
203 · rintro ⟨A, hA⟩
204 refine ⟨(identity_supported_iff_reflexive P rel).mp ((hA 1).mp A.one_mem), ?_, ?_⟩
205 · apply (adjoint_closed_iff_symmetric P hself rel).mp
206 intro T hT
207 exact (hA T.adjoint).mp (star_mem ((hA T).mpr hT))
208 · apply transitive_of_mul_closed P hself rel
209 intro S T hS hT
210 exact (hA (S*T)).mp (A.mul_mem ((hA S).mpr hS) ((hA T).mpr hT))
211 · intro heq
212 exact ⟨supportStarSubalgebra P hself rel heq, fun _ => Iff.rfl⟩
213
214 /-- Equality support (block diagonal operators) is a genuine star-subalgebra. -/
215 theorem equality_pattern_boundary (P : BoundedProjectorFamily K X I)
216 (hself : ∀ i, (P.proj i).adjoint = P.proj i)
217 [∀ i, Nontrivial (P.packet i)] :
218 ∃ A : StarSubalgebra K (X →L[K] X), ∀ T, T ∈ A ↔ Supported P Eq T := by
219 apply (star_subalgebra_iff_equivalence P hself Eq).mpr
220 exact ⟨fun _ => rfl, fun h => h.symm, fun h1 h2 => h1.trans h2⟩
221
222 /-- The full support pattern recovers a star-subalgebra containing every
223 bounded operator, including in the empty-index/zero-space case. -/
224 theorem universal_pattern_boundary (P : BoundedProjectorFamily K X I)
225 (hself : ∀ i, (P.proj i).adjoint = P.proj i)
226 [∀ i, Nontrivial (P.packet i)] :
227 ∃ A : StarSubalgebra K (X →L[K] X), ∀ T, T ∈ A := by
228 let rel : I → I → Prop := fun _ _ => True
229 have heq : Equivalence rel := ⟨fun _ => trivial, fun _ => trivial, fun _ _ => trivial⟩
230 refine ⟨supportStarSubalgebra P hself rel heq, ?_⟩
231 intro T b a h
232 exact (h trivial).elim
233
234 /-- On two nonzero packets a single allowed arrow fails adjoint closure. -/
235 theorem directed_two_packet_boundary (P : BoundedProjectorFamily K X Bool)
236 (hself : ∀ i, (P.proj i).adjoint = P.proj i)
237 [∀ i, Nontrivial (P.packet i)] :
238 ¬ (∀ T : X →L[K] X,
239 Supported P (fun a b => a = false ∧ b = true) T →
240 Supported P (fun a b => a = false ∧ b = true) T.adjoint) := by
241 intro h
242 have hs := (adjoint_closed_iff_symmetric P hself _).mp h
243 have hbad := hs (a := false) (b := true) ⟨rfl, rfl⟩
244 cases hbad.1
245
246 omit [CompleteSpace X] [DecidableEq I] in
247 /-- An empty relation cannot contain the identity when a nonzero packet exists. -/
248 theorem empty_pattern_boundary [Nonempty I] (P : BoundedProjectorFamily K X I)
249 [∀ i, Nontrivial (P.packet i)] :
250 ¬ Supported P (fun _ _ => False) (1 : X →L[K] X) := by
251 intro h
252 obtain ⟨i⟩ := ‹Nonempty I›
253 exact (identity_supported_iff_reflexive P _).mp h i
254
255 end Komorebi.PaperIRelease.BoundedSupport
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: f1c3697a248d07f23d9a06d89615b4220eb14fac405ebbeaa87bc7810d28787e
Back to Paper I: Typed Operator Systems, Seed Rank, and Exact Packet Coordinates