Paper III · Lean source

source.lean

Selected results recorded Coverage and evidence

Compiler/replay evidence is reported for a subset or bounded block. No whole-work coverage is implied.

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

Local imports (1)

verification/release_full/011_KomorebiPaperIII_MultilinearPacketJets/source.lean157 lines

Original source pathformal/verification/release_full/011_KomorebiPaperIII_MultilinearPacketJets/source.lean
Skip declarations and read code

Skip source text

1 /-
2 Copyright (c) 2026 Komorebi P. All rights reserved.
3 Authors: Komorebi P.
4 
5 SECTION 17 FINITE MULTILINEAR PACKET IDENTITIES.
6 Compiled with the pinned Lean compiler in the release verification.
7 Imported by PaperIIIContinuation and included in the owned declaration census.
8 -/
9 import KomorebiPaperIII.PacketCoordinates
10 import Mathlib.LinearAlgebra.Multilinear.Basic
11 
12 set_option autoImplicit false
13 noncomputable section
14 open scoped BigOperators
15 
16 namespace Komorebi.PaperIII.PacketCoordinates
17 universe u v w x y z
18 variable {R : Type u} [Semiring R]
19 variable {M : Type v} {N : Type w}
20 variable [AddCommMonoid M] [Module R M]
21 variable [AddCommMonoid N] [Module R N]
22 variable {I : Type x} {J : Type y} [Fintype I] [Fintype J]
23 variable {n : Nat}
24 
25 /-- A finite resolution of the identity is already enough for the full
26     multilinear expansion. Idempotence and pairwise annihilation are NOT used
27     in this identity: they are needed later to make packet coordinates into
28     an actual independent direct-sum representation. -/
29 theorem reconstruction_from_resolutions
30     (Ps : I → M →ₗ[R] M) (Qs : J → N →ₗ[R] N)
31     (hPs : ∑ i : I, Ps i = LinearMap.id)
32     (hQs : ∑ j : J, Qs j = LinearMap.id)
33     (B : MultilinearMap R (fun (_ : Fin n) => M) N)
34     (h : Fin n → M) :
35     B h = ∑ gamma : J, ∑ alpha : Fin n → I,
36       Qs gamma (B (fun k => Ps (alpha k) (h k))) := by
37   classical
38   have hslot (k : Fin n) : (∑ i : I, Ps i (h k)) = h k := by
39     simpa only [LinearMap.sum_apply, LinearMap.id_apply] using
40       LinearMap.congr_fun hPs (h k)
41   have hout : (∑ gamma : J, Qs gamma (B h)) = B h := by
42     simpa only [LinearMap.sum_apply, LinearMap.id_apply] using
43       LinearMap.congr_fun hQs (B h)
44   have hinput : B h = ∑ alpha : Fin n → I,
45       B (fun k => Ps (alpha k) (h k)) := by
46     calc
47       B h = B (fun k => ∑ i : I, Ps i (h k)) := by
48         congr 1
49         funext k
50         exact (hslot k).symm
51       _ = ∑ alpha : Fin n → I,
52           B (fun k => Ps (alpha k) (h k)) := by
53         exact B.map_sum (fun (k : Fin n) (i : I) => Ps i (h k))
54   calc
55     B h = ∑ gamma : J, Qs gamma (B h) := hout.symm
56     _ = ∑ gamma : J,
57           Qs gamma (∑ alpha : Fin n → I,
58             B (fun k => Ps (alpha k) (h k))) := by rw [hinput]
59     _ = ∑ gamma : J, ∑ alpha : Fin n → I,
60           Qs gamma (B (fun k => Ps (alpha k) (h k))) := by
61           simp only [map_sum]
62 
63 /-- A labelled packet jet extended to the ambient slots; no range certificate
64     and no pre-established coordinate equivalence is assumed. -/
65 def ambientJet (P : System R M I) (Q : System R N J)
66     (B : MultilinearMap R (fun (_ : Fin n) => M) N)
67     (gamma : J) (alpha : Fin n → I) :
68     MultilinearMap R (fun (_ : Fin n) => M) N :=
69   (Q.projector gamma).compMultilinearMap
70     (B.compLinearMap (fun k => P.projector (alpha k)))
71 
72 @[simp] theorem ambientJet_apply (P : System R M I) (Q : System R N J)
73     (B : MultilinearMap R (fun (_ : Fin n) => M) N)
74     (gamma : J) (alpha : Fin n → I) (h : Fin n → M) :
75     ambientJet P Q B gamma alpha h =
76       Q.projector gamma (B (fun k => P.projector (alpha k) (h k))) := rfl
77 
78 /-- The manuscript's packet jet is literally defined on the actual input
79     projector ranges and has the actual output projector range as codomain. -/
80 def packetJet (P : System R M I) (Q : System R N J)
81     (B : MultilinearMap R (fun (_ : Fin n) => M) N)
82     (gamma : J) (alpha : Fin n → I) :
83     MultilinearMap R
84       (fun k : Fin n => LinearMap.range (P.projector (alpha k)))
85       (LinearMap.range (Q.projector gamma)) :=
86   ((Q.projector gamma).compMultilinearMap
87     (B.compLinearMap (fun k =>
88       (LinearMap.range (P.projector (alpha k))).subtype))).codRestrict
89     (LinearMap.range (Q.projector gamma))
90     (by
91       intro xs
92       refine ⟨B (fun k => (xs k : M)), ?_⟩
93       rfl)
94 
95 /-- Evaluate a genuine range-to-range block, then coerce its output to N. -/
96 @[simp] theorem packetJet_apply_coe (P : System R M I) (Q : System R N J)
97     (B : MultilinearMap R (fun (_ : Fin n) => M) N)
98     (gamma : J) (alpha : Fin n → I)
99     (xs : (k : Fin n) → LinearMap.range (P.projector (alpha k))) :
100     (packetJet P Q B gamma alpha xs : N) =
101       Q.projector gamma (B (fun k => (xs k : M))) := rfl
102 
103 /-- Input reconstruction by expanding every argument using completeness;
104     this also works when B is not symmetric and n = 0. -/
105 theorem multilinear_input_expansion (P : System R M I)
106     (B : MultilinearMap R (fun (_ : Fin n) => M) N)
107     (h : Fin n → M) :
108     B h = ∑ alpha : Fin n → I,
109       B (fun k => P.projector (alpha k) (h k)) := by
110   classical
111   have hslot (k : Fin n) :
112       (∑ i : I, P.projector i (h k)) = h k := by
113     simpa only [P.synthesis_apply, P.analysis_apply] using
114       P.synthesis_analysis (h k)
115   calc
116     B h = B (fun k => ∑ i : I, P.projector i (h k)) := by
117       congr 1
118       funext k
119       exact (hslot k).symm
120     _ = ∑ alpha : Fin n → I,
121         B (fun k => P.projector (alpha k) (h k)) := by
122       exact B.map_sum (fun (k : Fin n) (i : I) => P.projector i (h k))
123 
124 /-- The input-output packet reconstruction identity, with no independent
125     splitting certificate. In particular it applies to each continuous
126     Frechet derivative, after forgetting continuity. -/
127 theorem multilinear_packet_reconstruction
128     (P : System R M I) (Q : System R N J)
129     (B : MultilinearMap R (fun (_ : Fin n) => M) N)
130     (h : Fin n → M) :
131     B h = ∑ gamma : J, ∑ alpha : Fin n → I,
132       (packetJet P Q B gamma alpha
133         (fun k => P.analysis (h k) (alpha k)) : N) := by
134   classical
135   calc
136     B h = ∑ gamma : J, ∑ alpha : Fin n → I,
137       Q.projector gamma
138         (B (fun k => P.projector (alpha k) (h k))) :=
139       reconstruction_from_resolutions P.projector Q.projector
140         P.complete Q.complete B h
141     _ = ∑ gamma : J, ∑ alpha : Fin n → I,
142       (packetJet P Q B gamma alpha
143         (fun k => P.analysis (h k) (alpha k)) : N) := by
144       simp only [packetJet_apply_coe, P.analysis_apply]
145 
146 /-- On projected ambient vectors, the range jet and the ambient extension
147     agree literally. This guards against accidentally dropping cross slots. -/
148 theorem packetJet_eq_ambientJet_on_analysis
149     (P : System R M I) (Q : System R N J)
150     (B : MultilinearMap R (fun (_ : Fin n) => M) N)
151     (gamma : J) (alpha : Fin n → I) (h : Fin n → M) :
152     (packetJet P Q B gamma alpha
153       (fun k => P.analysis (h k) (alpha k)) : N) =
154       ambientJet P Q B gamma alpha h := by
155   simp only [packetJet_apply_coe, P.analysis_apply, ambientJet_apply]
156 
157 end Komorebi.PaperIII.PacketCoordinates

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

Original source on GitHub

Back to Paper III: Typed Transfer, Nonlinear Packets, and Obstruction Theory