Conv2D input-gradient adjointness #
This file proves the inner-product identity for the convolution input cotangent:
⟪conv(dInput, kernel), δ⟫ = ⟪dInput, conv2dInputDeriv(kernel, δ)⟫.
The statement is over the specification tensors, not over a backend implementation. That lets the runtime proof later use this file as a clean algebraic contract for the input-gradient rule. Most of the proof is finite-sum normalization: expand both dot products, rewrite each convolution entry, and reindex the sums so every contribution to an input pixel is collected in the same place.
Adjointness of the Conv2D forward map with respect to input perturbations.
The left side perturbs the input and pairs the resulting output perturbation with the output
cotangent δ. The right side pairs that same input perturbation with the specification-level input
derivative. This is the theorem used by the tape proof to justify the input-gradient part of Conv2D
backpropagation.