PH-SYM-003

Name: SO(2) Lie derivative equivariance violation

Severity: warning

Input modes: adapter

PH-SYM-003 validates infinitesimal Lie-derivative equivariance for scalar models under SO(2). The rule is adapter-mode-only: dump-mode inputs emit SKIPPED because the diagnostic requires forward-mode automatic differentiation on a live callable, which a frozen tensor cannot supply. In adapter mode, the rule computes \((L_A f)(x) = \frac{d}{d\theta}\big|_{\theta=0} f(R_\theta x)\) via torch.autograd.functional.jvp and reports the per-point \(L^2\) norm against a calibrated roundoff floor.

The rule applies under five gates:

  1. The adapter declares SO(2) symmetry on the domain spec.

  2. The input is an adapter-mode CallableField (not a dumped tensor).

  3. The grid is 2D.

  4. The grid is centered on the origin.

  5. The domain is square (so the rotation \(R_\theta\) stays inside the domain).

Failing any gate emits SKIPPED. When all gates pass, the rule emits PASS (per-point \(L^2\) norm at machine roundoff) or FAIL (per-point \(L^2\) norm above the calibrated floor; the closed-form magnitude is reported on common toy fixtures).

Scope — infinitesimal, not global finite. PH-SYM-003 validates the rule’s single-generator, pointwise-\(L^2\), scalar-invariant subset of the finite identity. It does not prove global finite equivariance for arbitrary models. The finite-vs-infinitesimal direction is subtle: finite ⇒ infinitesimal is trivial by differentiation, but infinitesimal ⇒ finite requires smoothness + connected group + generator coverage + exact constraint. The rule’s empirical grid-sampled diagnostic does not establish all four conditions; it does, however, detect the most common failure mode (a model that breaks SO(2) at first order).

Higher-dimensional Lie groups (SO(3), SE(3)), disconnected groups (O(2), E(2)), and vector-output equivariance are out of v1.0 scope.