Paper I · Lean source

AlgebraSupport.lean

2 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 (1)

PaperIRelease/AlgebraSupport.lean129 lines

Original source pathformal/current/PaperIRelease/AlgebraSupport.lean
Skip declarations and read code

Skip source text

1 import KomorebiVerification.PacketNaturalityCompletion
2 
3 set_option autoImplicit false
4 set_option maxHeartbeats 2000000
5 
6 namespace Komorebi.PaperIRelease
7 open Komorebi.Foundation
8 open Komorebi.PacketNaturalityCompletion.FullBlocks
9 
10 universe u v w
11 variable {K : Type u} [Field K]
12 variable {X : Type v} [AddCommGroup X] [Module K X]
13 variable {I : Type w} [Fintype I]
14 
15 /-- Relation arguments are source first and target second. -/
16 def OperatorSupported (P : LinearProjectorFamily K X I)
17     (rel : I → I → Prop) (T : Module.End K X) : Prop :=
18   BlocksSupported P rel (restrictBlocks P T)
19 
20 /-- The range-restricted and ambient formulations of zero transfer agree. -/
21 theorem restricted_block_zero_iff
22     (P : LinearProjectorFamily K X I) (T : Module.End K X) (b a : I) :
23     restrictBlocks P T b a = 0 ↔ transferBlock P P T b a = 0 := by
24   constructor
25   · intro h
26     ext x
27     have hh := LinearMap.congr_fun h (packetProjection P a x)
28     exact congrArg Subtype.val hh
29   · intro h
30     ext x
31     have hh := LinearMap.congr_fun h (x : X)
32     change P.proj b (T (x : X)) = 0
33     have hx : P.proj a (x : X) = x := by
34       rcases x.property with ⟨y, hy⟩
35       rw [← hy]
36       exact P.idempotent a y
37     simpa only [transferBlock, LinearMap.comp_apply, LinearMap.zero_apply, hx] using hh
38 
39 /-- Exact correspondence with the support space printed in Paper I. -/
40 theorem operatorSupported_iff_ambient
41     (P : LinearProjectorFamily K X I) (rel : I → I → Prop) (T : Module.End K X) :
42     OperatorSupported P rel T ↔ ∀ b a, ¬ rel a b → transferBlock P P T b a = 0 := by
43   constructor
44   · intro h b a hab
45     exact (restricted_block_zero_iff P T b a).mp (h b a hab)
46   · intro h b a hab
47     exact (restricted_block_zero_iff P T b a).mpr (h b a hab)
48 
49 variable [DecidableEq I]
50 
51 /-- Ambient operators with a prescribed zero pattern form a linear subspace. -/
52 def supportSubmodule (P : LinearProjectorFamily K X I) (rel : I → I → Prop) :
53     Submodule K (Module.End K X) where
54   carrier := {T | OperatorSupported P rel T}
55   zero_mem' := by intro b a hab; ext x; simp [restrictBlocks, packetProjection, packetInclusion]
56   add_mem' := by
57     intro S T hS hT b a hab
58     have h := (restrictBlocksLinear P).map_add S T
59     have hh := congrFun (congrFun h b) a
60     change restrictBlocks P (S + T) b a = restrictBlocks P S b a + restrictBlocks P T b a at hh
61     change restrictBlocks P (S + T) b a = 0
62     rw [hh, hS b a hab, hT b a hab]
63     exact add_zero _
64   smul_mem' := by
65     intro c T hT b a hab
66     have h := (restrictBlocksLinear P).map_smul c T
67     have hh := congrFun (congrFun h b) a
68     change restrictBlocks P (c • T) b a = c • restrictBlocks P T b a at hh
69     change restrictBlocks P (c • T) b a = 0
70     rw [hh, hT b a hab]
71     exact smul_zero _
72 
73 /-- Ambient multiplication closure is exactly block multiplication closure. -/
74 theorem support_mul_closed_iff
75     (P : LinearProjectorFamily K X I) (rel : I → I → Prop) :
76     (∀ S T : Module.End K X, OperatorSupported P rel S → OperatorSupported P rel T →
77       OperatorSupported P rel (S * T)) ↔ BlockMulClosed P rel := by
78   constructor
79   · intro h B C hB hC
80     obtain ⟨S, rfl⟩ := restrictBlocks_surjective P B
81     obtain ⟨T, rfl⟩ := restrictBlocks_surjective P C
82     have hh := h S T hB hC
83     change BlocksSupported P rel (restrictBlocks P (S.comp T)) at hh
84     rw [restrictBlocks_comp] at hh
85     exact hh
86   · intro h S T hS hT
87     change BlocksSupported P rel (restrictBlocks P (S.comp T))
88     rw [restrictBlocks_comp]
89     exact h _ _ hS hT
90 
91 /-- The support space is a unital subalgebra for every reflexive transitive pattern. -/
92 def supportSubalgebra (P : LinearProjectorFamily K X I) (rel : I → I → Prop)
93     (hrefl : ∀ a, rel a a) (htrans : ∀ a c b, rel a c → rel c b → rel a b) :
94     Subalgebra K (Module.End K X) where
95   carrier := {T | OperatorSupported P rel T}
96   zero_mem' := (supportSubmodule P rel).zero_mem
97   add_mem' := fun hS hT => (supportSubmodule P rel).add_mem hS hT
98   mul_mem' := fun hS hT =>
99     (support_mul_closed_iff P rel).mpr (blockMulClosed_of_transitive P rel htrans) _ _ hS hT
100   algebraMap_mem' c := by
101     intro b a hab
102     have hba : b ≠ a := fun h => by subst b; exact hab (hrefl a)
103     ext x
104     change P.proj b (c • (x : X)) = 0
105     rw [map_smul]
106     have hx : P.proj b (x : X) = 0 := by
107       rcases x.property with ⟨y, hy⟩
108       rw [← hy]
109       exact P.orthogonal hba y
110     rw [hx, smul_zero]
111 
112 /-- Both hard converses are transported back to the ambient operator space. -/
113 theorem support_pattern_algebra_criterion
114     (P : LinearProjectorFamily K X I)
115     [∀ i, Nontrivial (LinearMap.range (P.proj i))] (rel : I → I → Prop) :
116     (∃ A : Subalgebra K (Module.End K X),
117       ∀ T, T ∈ A ↔ OperatorSupported P rel T) ↔
118     (∀ a, rel a a) ∧ (∀ a c b, rel a c → rel c b → rel a b) := by
119   constructor
120   · rintro ⟨A, hA⟩
121     refine ⟨(identity_blocks_supported_iff_reflexive P rel).mp ((hA 1).mp A.one_mem), ?_⟩
122     apply (blockMulClosed_iff_transitive P rel).mp
123     apply (support_mul_closed_iff P rel).mp
124     intro S T hS hT
125     exact (hA (S*T)).mp (A.mul_mem ((hA S).mpr hS) ((hA T).mpr hT))
126   · rintro ⟨hrefl, htrans⟩
127     exact ⟨supportSubalgebra P rel hrefl htrans, fun _ => Iff.rfl⟩
128 
129 end Komorebi.PaperIRelease

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: ccdb9bca71ca1ca1d96841db526646777e6d802b27ab0b1454aebf345a55839d

Original source on GitHub

Back to Paper I: Typed Operator Systems, Seed Rank, and Exact Packet Coordinates