Conv and max-pool index facts — the flat ↔ tensor index vocabulary #
The flat-index plumbing every conv-net proof reads tensors through (t3Idx, the window-tiling
sums, sum_s2), and the 2×2 max-pool's window facts: the window max is Lipschitz in its cells,
the pool is 1-Lipschitz per entry and ℓ1-contractive, and a selection margin beyond 2δ freezes
the argmax (MaxPool2MarginQ). The ℝ conv as a dense layer with weight sharing and its float
forward are in ConvFloat.
Flat index of a Tensor3 coordinate (the suite's row-major layout).
⚠ @[reducible] is load-bearing on Lean ≥ 4.33 (see planning/archive/lean_434_and_cleanup.md):
t3Idx_def folds the raw encoding into the ite CONDITION below, but simp does not rewrite
inside the Decidable INSTANCE argument, so the goal carries a folded condition over an
unfolded instance and every ite_eq_left/ite_eq_right here fails to match. basisVec, which produces
that ite, is @[reducible] for the same reason.
Equations
- Proofs.t3Idx ci hi wi = finProdFinEquiv (finProdFinEquiv (ci, hi), wi)
Instances For
Column version of winRowEquiv.
Equations
- One or more equations did not get rendered due to their size.
Instances For
ℓ1 contraction: the pooled drift, summed over all pooled entries, is
at most the input drift summed over all input entries (windows are
disjoint, max is 1-Lipschitz). The pool passes ℓ1 budgets through
unamplified.
Quantitative pool-selection margin: every two cells of every 2×2
window differ by more than 2δ. The quantitative form of
MaxPool2Smooth — a perturbation of at most δ per entry can neither
create a tie nor reorder a window, so the pool's argmax routing
freezes. The pool peer of the ReLU margin a·D < |zⱼ|.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A margined point is itself smooth.
The argmax freezes: within δ of a margined point, every window's
argmax cell is the same as at the margined point.
The padded input read that multiplies kernel entry (·, c, kh, kw) at
output position (hi, wi) — names the dite inside conv2d so the
affine-in-the-kernel structure can be stated. Depends on the input
only, never the kernel.
Equations
- One or more equations did not get rendered due to their size.