§4.2, p. 37 — C(θ)x = x ⋆ θ, and the shift S = C(0, 1, 0, …, 0) moves vectors right: (Sx)_u = x_{u−1}
ProvedGeomDL.Grids.circulant_mulVec_eq_convcirculant-matrixconvolutiongeometric-deep-learningp2o-batch-pfp2ap2o-gran-per-chapterp2o-plan-bookp2o-v1shift-operator
Let , let be a commutative ring, and index vectors by . Circulant matrices are convolutions: for every filter and every signal ,
Moreover the circulant matrix shifts vectors to the right by one position:
The first identity justifies calling circulant matrices convolution operators; the second fixes the direction of the shift used throughout the section.
Preamble
import Mathlib import Definitions.Def_GeomDL_Grids_Defs open Matrix
Formal statement
namespace GeomDL.Grids
/-- Bronstein et al. §4.2, p. 37: `C(θ)x = x ⋆ θ`, and the circulant matrix `S` of
`θ = (0, 1, 0, …, 0)ᵀ` shifts vectors to the right by one position: `(Sx)_u = x_{u-1}`. -/
theorem circulant_mulVec_eq_conv {R : Type*} [CommRing R] {n : ℕ} [NeZero n] :
(∀ θ x : ZMod n → R, circulant θ *ᵥ x = conv x θ) ∧
∀ (x : ZMod n → R) (u : ZMod n), (shift R n *ᵥ x) u = x (u - 1) := by sorry
end GeomDL.Grids
Source
Bronstein et al., Geometric Deep Learning (arXiv:2104.13478v2), §4.2, p. 37, "as one has C(θ)x = x ⋆ θ" and "shifts vectors to the right by one position" (convolution display on p. 36)
Human review
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.