Conv2D kernel-gradient adjointness #
This file proves the inner-product identity for the convolution kernel cotangent. The result is the algebraic heart of the kernel-gradient backward rule:
⟪conv(dKernel, input), δ⟫ = ⟪dKernel, conv2dKernelDeriv(input, δ)⟫.
The proof is written over finite tensors indexed by Fin, so the main work is bookkeeping rather
than analysis: expand the two dot products, commute the finite sums, and factor the candidate
kernel perturbation back out. Keeping this proof separate from the input-gradient proof makes the
three conv adjointness obligations easier to audit.
Adjointness of the Conv2D forward map with respect to kernel perturbations.
The left side applies a no-bias convolution whose kernel is dKernel, then pairs the output with the
cotangent δ. The right side pairs dKernel with the specification-level kernel derivative. This
is the theorem used by the tape proof to justify the kernel part of Conv2D backpropagation.