Documentation

LeanMlir.Proofs.Nets.MobileNet.MobileNetV4SyncStepTieB

MobileNetV4-Conv-M's data-parallel step at SYNCHRONISED BatchNorm IS the single-device step at R·N #

MobileNetV4StepTieB.lean (T3) threads a loss cotangent g down the batch-BN backward chain on ONE device and ties every parameter gradient node to the certified gradient. This is its data-parallel twin, for the render MobileNetV4RenderB emits at replicas > 1: R replicas at batch N, every one of the 77 BatchNorms synchronised, every parameter gradient all-reduced by its mean. The capstone mnv4_net_syncTiedB says that, for every parameter the render emits,

mean over the R replicas of replica r's gradient node, replica cotangent gs r
  = the single-device gradient node at the global batch R·N, global cotangent G

whenever each replica's loss cotangent is R × its shard of the global one — the gradient node mnv4_net_tiedB at N := R·N ties to the certified gradient. The right-hand side is the existing single-device chain at N := R·N, so the spec has not moved.

⚠ T3 binds the loss cotangent, so this twin does too #

mnv4_net_tiedB takes the logits' cotangent g as a binder (mnv4_lossCot_is_smoothedCE_grad instantiates it). The twin therefore takes the global cotangent G and the replica family gs as binders, with the scaled-shard hypothesis ∀ r, gs r = batchShard R N nCls (fun i => R * G i) r — exactly the invariant ResNet-34's and MobileNetV2's twins carry down their chains, and there discharge from replicaLossCot_eq. mnv4_net_syncTiedB_smoothedCE discharges it the same way for the label-smoothed softmax chain the artifacts emit: replicas dividing their loss by B, the single-device step by R·B.

The same four steps as ResNet-34's twin #

ResNet34SyncStepTieB.lean is the template, and everything net-agnostic is imported from it: the replica BN link bnSyncInB and its shard lemma, the ConvWSync / ConvStridedWSync / BnSync / DenseSync statements and their *_of_scaled closers, and the homogeneity of bnInB, cInB, cStridedInB and the head. The MBConv pieces come from MBConvSyncTieB.lean — the depthwise and SYMMETRIC strided-depthwise input-VJPs and weight collectives, and the XLA-SAME stem collective. Swish's backward is a certified VJP's .backward, so its homogeneity is HasVJP.backward_smul and its sharding is definitional.

  1. Sharding — each replica's backward chain, handed its shard of a global cotangent, computes the shard of the global chain. The relu mask and swish's backward are pointwise; the conv, depthwise, strided conv and strided depthwise input-VJPs are per-example maps; every BN link is bnSyncInB. The table's k = 0 dispatch (if s.postDWk = 0, if s.preDWk = 0) is the same if on both sides, so it splits once.
  2. The collectives — the mean over replicas of each replica's gradient node is 1/R of the global node at the global cotangent. MobileNetV4 needs no kind the kit does not have.
  3. Homogeneity — the single-device chain and its gradient nodes are linear in the loss cotangent (§1): R × the cotangent gives R × every node.
  4. The divisor — the hypothesis on gs; its R cancels the collective's 1/R at every parameter.

⭐ Everything is GENERIC IN THE ROW (s : UibSpec), as T3 is, so widths stay variables; the capstone instantiates at the 21 concrete rows. MNv4's activation is relu (the fused stage's is swish), so the masks are reluMaskB — MobileNetV2's relu6MaskB does not appear.

The index seam #

ℝ-level, as T3 is: the replica BN link bnSyncInB is the den of the emitted nodes (bnSyncDyStatsB → all-reduce → bnSyncBack) over .operand leaves at reassocB, and bnSyncInB_shard carries P2 across the N·(c·h·w) / N·(c·(h·w)) seam; BnSync's γ and β collectives read reassocB of the pre-BN activation and of the cotangent, exactly as T3's BnPairTiedB nodes do.

What the DP render emits, and what is tied #

MobileNetV4RenderB emits 233 parameter gradients — stem 3 (sW, sg, sbt), fused 6 (f0cW f0cg f0cbt f0pW f0pg f0pbt), thirteen ExtraDW-profile blocks × 12 (ten stride-1 rows and the three pre-strided rows 1, 3, 11: u{p}{q,e,d,p}{W,g,bt}), four ConvNeXt-like × 9 (no d), four FFN × 6 (no q, no d), head 8 (h1W h1g h1bt hW hg hbt Wd bd) — and the capstone ties all 233. ⚠ There are no conv-bias gradients to exclude: the render has no convBias flag, binds every bias slot to %zb{c}, and emits none. ⚠ Conv-M has no post-strided row, so the render's post-strided backward is never emitted for this table and T3 has no chain for it; neither does this file.

What is NOT claimed #

⚠ The replicas' saved forward activations enter as the shards of the single-device forward's (batchShard r (mnv4Blk{k} (R*N) w X)); that the sync forward graph computes exactly those is StableHLO.mnv4FwdGraphSync_full_shard, the forward half. ⚠ That the replicas' inputs are the shards of one batch is the driver's. ⚠ The statement is at the f32 nodes: the *bf16 artifact's bf16 conv twins are outside it, as for every other net. ⚠ The lowerer's all_reduce is trusted as every other op's lowering is.

The stride-1 body (ExtraDW / ConvNeXt-like / FFN), each one line from the previous link's. The two ifs are T3's table dispatch; they split on both sides at once.

theorem Proofs.MobileNetV4SyncTieB.mnv4CotPc_smul (N : ) (s : StableHLO.UibSpec) (p : StableHLO.UibParams s) (xin : Vec (N * (s.ic * s.h * s.h))) (dy : Vec (N * (s.oc * s.h * s.h))) (a : ) :
(Mnv4TieB.mnv4CotPc N s p xin fun (i : Fin (N * (s.oc * s.h * s.h))) => a * dy i) = fun (i : Fin (N * (s.oc * s.h * s.h))) => a * Mnv4TieB.mnv4CotPc N s p xin dy i
theorem Proofs.MobileNetV4SyncTieB.mnv4CotDn_smul (N : ) (s : StableHLO.UibSpec) (p : StableHLO.UibParams s) (xin : Vec (N * (s.ic * s.h * s.h))) (dy : Vec (N * (s.oc * s.h * s.h))) (a : ) :
(Mnv4TieB.mnv4CotDn N s p xin fun (i : Fin (N * (s.oc * s.h * s.h))) => a * dy i) = fun (i : Fin (N * (s.ic * s.expand * s.h * s.h))) => a * Mnv4TieB.mnv4CotDn N s p xin dy i
theorem Proofs.MobileNetV4SyncTieB.mnv4CotDc_smul (N : ) (s : StableHLO.UibSpec) (p : StableHLO.UibParams s) (xin : Vec (N * (s.ic * s.h * s.h))) (dy : Vec (N * (s.oc * s.h * s.h))) (a : ) :
(Mnv4TieB.mnv4CotDc N s p xin fun (i : Fin (N * (s.oc * s.h * s.h))) => a * dy i) = fun (i : Fin (N * (s.ic * s.expand * s.h * s.h))) => a * Mnv4TieB.mnv4CotDc N s p xin dy i
theorem Proofs.MobileNetV4SyncTieB.mnv4CotEn_smul (N : ) (s : StableHLO.UibSpec) (p : StableHLO.UibParams s) (xin : Vec (N * (s.ic * s.h * s.h))) (dy : Vec (N * (s.oc * s.h * s.h))) (a : ) :
(Mnv4TieB.mnv4CotEn N s p xin fun (i : Fin (N * (s.oc * s.h * s.h))) => a * dy i) = fun (i : Fin (N * (s.ic * s.expand * s.h * s.h))) => a * Mnv4TieB.mnv4CotEn N s p xin dy i
theorem Proofs.MobileNetV4SyncTieB.mnv4CotEc_smul (N : ) (s : StableHLO.UibSpec) (p : StableHLO.UibParams s) (xin : Vec (N * (s.ic * s.h * s.h))) (dy : Vec (N * (s.oc * s.h * s.h))) (a : ) :
(Mnv4TieB.mnv4CotEc N s p xin fun (i : Fin (N * (s.oc * s.h * s.h))) => a * dy i) = fun (i : Fin (N * (s.ic * s.expand * s.h * s.h))) => a * Mnv4TieB.mnv4CotEc N s p xin dy i
theorem Proofs.MobileNetV4SyncTieB.mnv4CotQn_smul (N : ) (s : StableHLO.UibSpec) (p : StableHLO.UibParams s) (xin : Vec (N * (s.ic * s.h * s.h))) (dy : Vec (N * (s.oc * s.h * s.h))) (a : ) :
(Mnv4TieB.mnv4CotQn N s p xin fun (i : Fin (N * (s.oc * s.h * s.h))) => a * dy i) = fun (i : Fin (N * (s.ic * s.h * s.h))) => a * Mnv4TieB.mnv4CotQn N s p xin dy i
theorem Proofs.MobileNetV4SyncTieB.mnv4CotQc_smul (N : ) (s : StableHLO.UibSpec) (p : StableHLO.UibParams s) (xin : Vec (N * (s.ic * s.h * s.h))) (dy : Vec (N * (s.oc * s.h * s.h))) (a : ) :
(Mnv4TieB.mnv4CotQc N s p xin fun (i : Fin (N * (s.oc * s.h * s.h))) => a * dy i) = fun (i : Fin (N * (s.ic * s.h * s.h))) => a * Mnv4TieB.mnv4CotQc N s p xin dy i
theorem Proofs.MobileNetV4SyncTieB.mnv4BodyCotIn_smul (N : ) (s : StableHLO.UibSpec) (p : StableHLO.UibParams s) (xin : Vec (N * (s.ic * s.h * s.h))) (dy : Vec (N * (s.oc * s.h * s.h))) (a : ) :
(Mnv4TieB.mnv4BodyCotIn N s p xin fun (i : Fin (N * (s.oc * s.h * s.h))) => a * dy i) = fun (i : Fin (N * (s.ic * s.h * s.h))) => a * Mnv4TieB.mnv4BodyCotIn N s p xin dy i

The pre-strided block (rows 1, 3, 11).

theorem Proofs.MobileNetV4SyncTieB.mnv4SCotPc_smul (N : ) (s : StableHLO.UibSpec) (p : StableHLO.UibParams s) (xin : Vec (N * (s.ic * (2 * s.h) * (2 * s.h)))) (dy : Vec (N * (s.oc * s.h * s.h))) (a : ) :
(Mnv4TieB.mnv4SCotPc N s p xin fun (i : Fin (N * (s.oc * s.h * s.h))) => a * dy i) = fun (i : Fin (N * (s.oc * s.h * s.h))) => a * Mnv4TieB.mnv4SCotPc N s p xin dy i
theorem Proofs.MobileNetV4SyncTieB.mnv4SCotDn_smul (N : ) (s : StableHLO.UibSpec) (p : StableHLO.UibParams s) (xin : Vec (N * (s.ic * (2 * s.h) * (2 * s.h)))) (dy : Vec (N * (s.oc * s.h * s.h))) (a : ) :
(Mnv4TieB.mnv4SCotDn N s p xin fun (i : Fin (N * (s.oc * s.h * s.h))) => a * dy i) = fun (i : Fin (N * (s.ic * s.expand * s.h * s.h))) => a * Mnv4TieB.mnv4SCotDn N s p xin dy i
theorem Proofs.MobileNetV4SyncTieB.mnv4SCotDc_smul (N : ) (s : StableHLO.UibSpec) (p : StableHLO.UibParams s) (xin : Vec (N * (s.ic * (2 * s.h) * (2 * s.h)))) (dy : Vec (N * (s.oc * s.h * s.h))) (a : ) :
(Mnv4TieB.mnv4SCotDc N s p xin fun (i : Fin (N * (s.oc * s.h * s.h))) => a * dy i) = fun (i : Fin (N * (s.ic * s.expand * s.h * s.h))) => a * Mnv4TieB.mnv4SCotDc N s p xin dy i
theorem Proofs.MobileNetV4SyncTieB.mnv4SCotEn_smul (N : ) (s : StableHLO.UibSpec) (p : StableHLO.UibParams s) (xin : Vec (N * (s.ic * (2 * s.h) * (2 * s.h)))) (dy : Vec (N * (s.oc * s.h * s.h))) (a : ) :
(Mnv4TieB.mnv4SCotEn N s p xin fun (i : Fin (N * (s.oc * s.h * s.h))) => a * dy i) = fun (i : Fin (N * (s.ic * s.expand * s.h * s.h))) => a * Mnv4TieB.mnv4SCotEn N s p xin dy i
theorem Proofs.MobileNetV4SyncTieB.mnv4SCotEc_smul (N : ) (s : StableHLO.UibSpec) (p : StableHLO.UibParams s) (xin : Vec (N * (s.ic * (2 * s.h) * (2 * s.h)))) (dy : Vec (N * (s.oc * s.h * s.h))) (a : ) :
(Mnv4TieB.mnv4SCotEc N s p xin fun (i : Fin (N * (s.oc * s.h * s.h))) => a * dy i) = fun (i : Fin (N * (s.ic * s.expand * s.h * s.h))) => a * Mnv4TieB.mnv4SCotEc N s p xin dy i
theorem Proofs.MobileNetV4SyncTieB.mnv4SCotQn_smul (N : ) (s : StableHLO.UibSpec) (p : StableHLO.UibParams s) (xin : Vec (N * (s.ic * (2 * s.h) * (2 * s.h)))) (dy : Vec (N * (s.oc * s.h * s.h))) (a : ) :
(Mnv4TieB.mnv4SCotQn N s p xin fun (i : Fin (N * (s.oc * s.h * s.h))) => a * dy i) = fun (i : Fin (N * (s.ic * s.h * s.h))) => a * Mnv4TieB.mnv4SCotQn N s p xin dy i
theorem Proofs.MobileNetV4SyncTieB.mnv4SCotQc_smul (N : ) (s : StableHLO.UibSpec) (p : StableHLO.UibParams s) (xin : Vec (N * (s.ic * (2 * s.h) * (2 * s.h)))) (dy : Vec (N * (s.oc * s.h * s.h))) (a : ) :
(Mnv4TieB.mnv4SCotQc N s p xin fun (i : Fin (N * (s.oc * s.h * s.h))) => a * dy i) = fun (i : Fin (N * (s.ic * s.h * s.h))) => a * Mnv4TieB.mnv4SCotQc N s p xin dy i
theorem Proofs.MobileNetV4SyncTieB.mnv4SBodyCotIn_smul (N : ) (s : StableHLO.UibSpec) (p : StableHLO.UibParams s) (xin : Vec (N * (s.ic * (2 * s.h) * (2 * s.h)))) (dy : Vec (N * (s.oc * s.h * s.h))) (a : ) :
(Mnv4TieB.mnv4SBodyCotIn N s p xin fun (i : Fin (N * (s.oc * s.h * s.h))) => a * dy i) = fun (i : Fin (N * (s.ic * (2 * s.h) * (2 * s.h)))) => a * Mnv4TieB.mnv4SBodyCotIn N s p xin dy i

The stem, the fused stage (swish, no mask) and the two-conv head.

theorem Proofs.MobileNetV4SyncTieB.mnv4StemCotN_smul (N h w : ) {ic oc kH kW : } (Ws : Kernel4 oc ic kH kW) (bs : Vec oc) (εs : ) (γs βs : Vec oc) (x : Vec (N * (ic * (2 * h) * (2 * w)))) (dy : Vec (N * (oc * h * w))) (a : ) :
(Mnv4TieB.mnv4StemCotN N h w Ws bs εs γs βs x fun (i : Fin (N * (oc * h * w))) => a * dy i) = fun (i : Fin (N * (oc * h * w))) => a * Mnv4TieB.mnv4StemCotN N h w Ws bs εs γs βs x dy i
theorem Proofs.MobileNetV4SyncTieB.mnv4StemCotC_smul (N h w : ) {ic oc kH kW : } (Ws : Kernel4 oc ic kH kW) (bs : Vec oc) (εs : ) (γs βs : Vec oc) (x : Vec (N * (ic * (2 * h) * (2 * w)))) (dy : Vec (N * (oc * h * w))) (a : ) :
(Mnv4TieB.mnv4StemCotC N h w Ws bs εs γs βs x fun (i : Fin (N * (oc * h * w))) => a * dy i) = fun (i : Fin (N * (oc * h * w))) => a * Mnv4TieB.mnv4StemCotC N h w Ws bs εs γs βs x dy i
theorem Proofs.MobileNetV4SyncTieB.mnv4FusedCotPc_smul (N h w : ) {ic mid oc kH kW : } (Wc : Kernel4 mid ic kH kW) (bc : Vec mid) (εc : ) (γc βc : Vec mid) (Wp : Kernel4 oc mid 1 1) (bp : Vec oc) (εp : ) (γp βp : Vec oc) (xin : Vec (N * (ic * (2 * h) * (2 * w)))) (dy : Vec (N * (oc * h * w))) (a : ) :
(Mnv4TieB.mnv4FusedCotPc N h w Wc bc εc γc βc Wp bp εp γp βp xin fun (i : Fin (N * (oc * h * w))) => a * dy i) = fun (i : Fin (N * (oc * h * w))) => a * Mnv4TieB.mnv4FusedCotPc N h w Wc bc εc γc βc Wp bp εp γp βp xin dy i
theorem Proofs.MobileNetV4SyncTieB.mnv4FusedCotN_smul (N h w : ) {ic mid oc kH kW : } (Wc : Kernel4 mid ic kH kW) (bc : Vec mid) (εc : ) (γc βc : Vec mid) (Wp : Kernel4 oc mid 1 1) (bp : Vec oc) (εp : ) (γp βp : Vec oc) (xin : Vec (N * (ic * (2 * h) * (2 * w)))) (dy : Vec (N * (oc * h * w))) (a : ) :
(Mnv4TieB.mnv4FusedCotN N h w Wc bc εc γc βc Wp bp εp γp βp xin fun (i : Fin (N * (oc * h * w))) => a * dy i) = fun (i : Fin (N * (mid * h * w))) => a * Mnv4TieB.mnv4FusedCotN N h w Wc bc εc γc βc Wp bp εp γp βp xin dy i
theorem Proofs.MobileNetV4SyncTieB.mnv4FusedCotC_smul (N h w : ) {ic mid oc kH kW : } (Wc : Kernel4 mid ic kH kW) (bc : Vec mid) (εc : ) (γc βc : Vec mid) (Wp : Kernel4 oc mid 1 1) (bp : Vec oc) (εp : ) (γp βp : Vec oc) (xin : Vec (N * (ic * (2 * h) * (2 * w)))) (dy : Vec (N * (oc * h * w))) (a : ) :
(Mnv4TieB.mnv4FusedCotC N h w Wc bc εc γc βc Wp bp εp γp βp xin fun (i : Fin (N * (oc * h * w))) => a * dy i) = fun (i : Fin (N * (mid * h * w))) => a * Mnv4TieB.mnv4FusedCotC N h w Wc bc εc γc βc Wp bp εp γp βp xin dy i
theorem Proofs.MobileNetV4SyncTieB.mnv4FusedCotIn_smul (N h w : ) {ic mid oc kH kW : } (Wc : Kernel4 mid ic kH kW) (bc : Vec mid) (εc : ) (γc βc : Vec mid) (Wp : Kernel4 oc mid 1 1) (bp : Vec oc) (εp : ) (γp βp : Vec oc) (xin : Vec (N * (ic * (2 * h) * (2 * w)))) (dy : Vec (N * (oc * h * w))) (a : ) :
(Mnv4TieB.mnv4FusedCotIn N h w Wc bc εc γc βc Wp bp εp γp βp xin fun (i : Fin (N * (oc * h * w))) => a * dy i) = fun (i : Fin (N * (ic * (2 * h) * (2 * w)))) => a * Mnv4TieB.mnv4FusedCotIn N h w Wc bc εc γc βc Wp bp εp γp βp xin dy i
theorem Proofs.MobileNetV4SyncTieB.mnv4HeadCotHn_smul (N h w : ) {c mid oc nCls : } (W1 : Kernel4 mid c 1 1) (b1 : Vec mid) (ε1 : ) (γ1 β1 : Vec mid) (W2 : Kernel4 oc mid 1 1) (b2 : Vec oc) (ε2 : ) (γ2 β2 : Vec oc) (Wd : Mat oc nCls) (bd : Vec nCls) (xin : Vec (N * (c * h * w))) (g : Vec (N * nCls)) (a : ) :
(Mnv4TieB.mnv4HeadCotHn N h w W1 b1 ε1 γ1 β1 W2 b2 ε2 γ2 β2 Wd bd xin fun (i : Fin (N * nCls)) => a * g i) = fun (i : Fin (N * (oc * h * w))) => a * Mnv4TieB.mnv4HeadCotHn N h w W1 b1 ε1 γ1 β1 W2 b2 ε2 γ2 β2 Wd bd xin g i
theorem Proofs.MobileNetV4SyncTieB.mnv4HeadCotHc_smul (N h w : ) {c mid oc nCls : } (W1 : Kernel4 mid c 1 1) (b1 : Vec mid) (ε1 : ) (γ1 β1 : Vec mid) (W2 : Kernel4 oc mid 1 1) (b2 : Vec oc) (ε2 : ) (γ2 β2 : Vec oc) (Wd : Mat oc nCls) (bd : Vec nCls) (xin : Vec (N * (c * h * w))) (g : Vec (N * nCls)) (a : ) :
(Mnv4TieB.mnv4HeadCotHc N h w W1 b1 ε1 γ1 β1 W2 b2 ε2 γ2 β2 Wd bd xin fun (i : Fin (N * nCls)) => a * g i) = fun (i : Fin (N * (oc * h * w))) => a * Mnv4TieB.mnv4HeadCotHc N h w W1 b1 ε1 γ1 β1 W2 b2 ε2 γ2 β2 Wd bd xin g i
theorem Proofs.MobileNetV4SyncTieB.mnv4HeadCotH1n_smul (N h w : ) {c mid oc nCls : } (W1 : Kernel4 mid c 1 1) (b1 : Vec mid) (ε1 : ) (γ1 β1 : Vec mid) (W2 : Kernel4 oc mid 1 1) (b2 : Vec oc) (ε2 : ) (γ2 β2 : Vec oc) (Wd : Mat oc nCls) (bd : Vec nCls) (xin : Vec (N * (c * h * w))) (g : Vec (N * nCls)) (a : ) :
(Mnv4TieB.mnv4HeadCotH1n N h w W1 b1 ε1 γ1 β1 W2 b2 ε2 γ2 β2 Wd bd xin fun (i : Fin (N * nCls)) => a * g i) = fun (i : Fin (N * (mid * h * w))) => a * Mnv4TieB.mnv4HeadCotH1n N h w W1 b1 ε1 γ1 β1 W2 b2 ε2 γ2 β2 Wd bd xin g i
theorem Proofs.MobileNetV4SyncTieB.mnv4HeadCotH1c_smul (N h w : ) {c mid oc nCls : } (W1 : Kernel4 mid c 1 1) (b1 : Vec mid) (ε1 : ) (γ1 β1 : Vec mid) (W2 : Kernel4 oc mid 1 1) (b2 : Vec oc) (ε2 : ) (γ2 β2 : Vec oc) (Wd : Mat oc nCls) (bd : Vec nCls) (xin : Vec (N * (c * h * w))) (g : Vec (N * nCls)) (a : ) :
(Mnv4TieB.mnv4HeadCotH1c N h w W1 b1 ε1 γ1 β1 W2 b2 ε2 γ2 β2 Wd bd xin fun (i : Fin (N * nCls)) => a * g i) = fun (i : Fin (N * (mid * h * w))) => a * Mnv4TieB.mnv4HeadCotH1c N h w W1 b1 ε1 γ1 β1 W2 b2 ε2 γ2 β2 Wd bd xin g i
theorem Proofs.MobileNetV4SyncTieB.mnv4HeadCotIn_smul (N h w : ) {c mid oc nCls : } (W1 : Kernel4 mid c 1 1) (b1 : Vec mid) (ε1 : ) (γ1 β1 : Vec mid) (W2 : Kernel4 oc mid 1 1) (b2 : Vec oc) (ε2 : ) (γ2 β2 : Vec oc) (Wd : Mat oc nCls) (bd : Vec nCls) (xin : Vec (N * (c * h * w))) (g : Vec (N * nCls)) (a : ) :
(Mnv4TieB.mnv4HeadCotIn N h w W1 b1 ε1 γ1 β1 W2 b2 ε2 γ2 β2 Wd bd xin fun (i : Fin (N * nCls)) => a * g i) = fun (i : Fin (N * (c * h * w))) => a * Mnv4TieB.mnv4HeadCotIn N h w W1 b1 ε1 γ1 β1 W2 b2 ε2 γ2 β2 Wd bd xin g i
noncomputable def Proofs.MobileNetV4SyncTieB.mnv4SyncCotPc (R : ) (hR : 0 < R) (N : ) (s : StableHLO.UibSpec) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * s.h * s.h))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (r : Fin R) :
Vec (N * (s.oc * s.h * s.h))

Stride-1 body, replica r: the project BatchNorm's sync backward of the block-output cotangent (the bottleneck is linear, so nothing masks it). Feeds u{p}pW.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    noncomputable def Proofs.MobileNetV4SyncTieB.mnv4SyncCotDn (R : ) (hR : 0 < R) (N : ) (s : StableHLO.UibSpec) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * s.h * s.h))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (r : Fin R) :
    Vec (N * (s.ic * s.expand * s.h * s.h))

    Stride-1 body, replica r: the post-DW BN's output cotangent. Feeds u{p}dg/u{p}dbt.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      noncomputable def Proofs.MobileNetV4SyncTieB.mnv4SyncCotDc (R : ) (hR : 0 < R) (N : ) (s : StableHLO.UibSpec) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * s.h * s.h))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (r : Fin R) :
      Vec (N * (s.ic * s.expand * s.h * s.h))

      Stride-1 body, replica r: the post-DW conv's output cotangent. Feeds u{p}dW.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        noncomputable def Proofs.MobileNetV4SyncTieB.mnv4SyncCotEn (R : ) (hR : 0 < R) (N : ) (s : StableHLO.UibSpec) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * s.h * s.h))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (r : Fin R) :
        Vec (N * (s.ic * s.expand * s.h * s.h))

        Stride-1 body, replica r: the expand BN's output cotangent — dispatching on the row exactly as T3's mnv4CotEn does. Feeds u{p}eg/u{p}ebt.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          noncomputable def Proofs.MobileNetV4SyncTieB.mnv4SyncCotEc (R : ) (hR : 0 < R) (N : ) (s : StableHLO.UibSpec) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * s.h * s.h))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (r : Fin R) :
          Vec (N * (s.ic * s.expand * s.h * s.h))

          Stride-1 body, replica r: the expand conv's output cotangent. Feeds u{p}eW.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            noncomputable def Proofs.MobileNetV4SyncTieB.mnv4SyncCotQn (R : ) (hR : 0 < R) (N : ) (s : StableHLO.UibSpec) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * s.h * s.h))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (r : Fin R) :
            Vec (N * (s.ic * s.h * s.h))

            Stride-1 body, replica r: the pre-DW BN's output cotangent. Feeds u{p}qg/u{p}qbt.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              noncomputable def Proofs.MobileNetV4SyncTieB.mnv4SyncCotQc (R : ) (hR : 0 < R) (N : ) (s : StableHLO.UibSpec) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * s.h * s.h))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (r : Fin R) :
              Vec (N * (s.ic * s.h * s.h))

              Stride-1 body, replica r: the pre-DW conv's output cotangent. Feeds u{p}qW.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                noncomputable def Proofs.MobileNetV4SyncTieB.mnv4BodySyncCotIn (R : ) (hR : 0 < R) (N : ) (s : StableHLO.UibSpec) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * s.h * s.h))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (r : Fin R) :
                Vec (N * (s.ic * s.h * s.h))

                Stride-1 body, replica r: the body's input cotangent, before the skip fan-in — the pre-DW's input-VJP, or the expand's when the row has no pre-DW.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  theorem Proofs.MobileNetV4SyncTieB.mnv4SyncCotPc_shard (R : ) (hR : 0 < R) (N : ) (hN : 0 < N) (s : StableHLO.UibSpec) (hh : 0 < s.h) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * s.h * s.h))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (DY : Vec (R * N * (s.oc * s.h * s.h))) (hdys : ∀ (r : Fin R), dys r = batchShard R N (s.oc * s.h * s.h) DY r) (r : Fin R) :
                  mnv4SyncCotPc R hR N s p XIN dys r = batchShard R N (s.oc * s.h * s.h) (Mnv4TieB.mnv4CotPc (R * N) s p XIN DY) r
                  theorem Proofs.MobileNetV4SyncTieB.mnv4SyncCotDn_shard (R : ) (hR : 0 < R) (N : ) (hN : 0 < N) (s : StableHLO.UibSpec) (hh : 0 < s.h) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * s.h * s.h))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (DY : Vec (R * N * (s.oc * s.h * s.h))) (hdys : ∀ (r : Fin R), dys r = batchShard R N (s.oc * s.h * s.h) DY r) (r : Fin R) :
                  mnv4SyncCotDn R hR N s p XIN dys r = batchShard R N (s.ic * s.expand * s.h * s.h) (Mnv4TieB.mnv4CotDn (R * N) s p XIN DY) r
                  theorem Proofs.MobileNetV4SyncTieB.mnv4SyncCotDc_shard (R : ) (hR : 0 < R) (N : ) (hN : 0 < N) (s : StableHLO.UibSpec) (hh : 0 < s.h) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * s.h * s.h))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (DY : Vec (R * N * (s.oc * s.h * s.h))) (hdys : ∀ (r : Fin R), dys r = batchShard R N (s.oc * s.h * s.h) DY r) (r : Fin R) :
                  mnv4SyncCotDc R hR N s p XIN dys r = batchShard R N (s.ic * s.expand * s.h * s.h) (Mnv4TieB.mnv4CotDc (R * N) s p XIN DY) r
                  theorem Proofs.MobileNetV4SyncTieB.mnv4SyncCotEn_shard (R : ) (hR : 0 < R) (N : ) (hN : 0 < N) (s : StableHLO.UibSpec) (hh : 0 < s.h) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * s.h * s.h))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (DY : Vec (R * N * (s.oc * s.h * s.h))) (hdys : ∀ (r : Fin R), dys r = batchShard R N (s.oc * s.h * s.h) DY r) (r : Fin R) :
                  mnv4SyncCotEn R hR N s p XIN dys r = batchShard R N (s.ic * s.expand * s.h * s.h) (Mnv4TieB.mnv4CotEn (R * N) s p XIN DY) r
                  theorem Proofs.MobileNetV4SyncTieB.mnv4SyncCotEc_shard (R : ) (hR : 0 < R) (N : ) (hN : 0 < N) (s : StableHLO.UibSpec) (hh : 0 < s.h) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * s.h * s.h))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (DY : Vec (R * N * (s.oc * s.h * s.h))) (hdys : ∀ (r : Fin R), dys r = batchShard R N (s.oc * s.h * s.h) DY r) (r : Fin R) :
                  mnv4SyncCotEc R hR N s p XIN dys r = batchShard R N (s.ic * s.expand * s.h * s.h) (Mnv4TieB.mnv4CotEc (R * N) s p XIN DY) r
                  theorem Proofs.MobileNetV4SyncTieB.mnv4SyncCotQn_shard (R : ) (hR : 0 < R) (N : ) (hN : 0 < N) (s : StableHLO.UibSpec) (hh : 0 < s.h) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * s.h * s.h))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (DY : Vec (R * N * (s.oc * s.h * s.h))) (hdys : ∀ (r : Fin R), dys r = batchShard R N (s.oc * s.h * s.h) DY r) (r : Fin R) :
                  mnv4SyncCotQn R hR N s p XIN dys r = batchShard R N (s.ic * s.h * s.h) (Mnv4TieB.mnv4CotQn (R * N) s p XIN DY) r
                  theorem Proofs.MobileNetV4SyncTieB.mnv4SyncCotQc_shard (R : ) (hR : 0 < R) (N : ) (hN : 0 < N) (s : StableHLO.UibSpec) (hh : 0 < s.h) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * s.h * s.h))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (DY : Vec (R * N * (s.oc * s.h * s.h))) (hdys : ∀ (r : Fin R), dys r = batchShard R N (s.oc * s.h * s.h) DY r) (r : Fin R) :
                  mnv4SyncCotQc R hR N s p XIN dys r = batchShard R N (s.ic * s.h * s.h) (Mnv4TieB.mnv4CotQc (R * N) s p XIN DY) r
                  theorem Proofs.MobileNetV4SyncTieB.mnv4BodySyncCotIn_shard (R : ) (hR : 0 < R) (N : ) (hN : 0 < N) (s : StableHLO.UibSpec) (hh : 0 < s.h) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * s.h * s.h))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (DY : Vec (R * N * (s.oc * s.h * s.h))) (hdys : ∀ (r : Fin R), dys r = batchShard R N (s.oc * s.h * s.h) DY r) (r : Fin R) :
                  mnv4BodySyncCotIn R hR N s p XIN dys r = batchShard R N (s.ic * s.h * s.h) (Mnv4TieB.mnv4BodyCotIn (R * N) s p XIN DY) r
                  noncomputable def Proofs.MobileNetV4SyncTieB.mnv4SSyncCotPc (R : ) (hR : 0 < R) (N : ) (s : StableHLO.UibSpec) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * (2 * s.h) * (2 * s.h)))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (r : Fin R) :
                  Vec (N * (s.oc * s.h * s.h))

                  Pre-strided block, replica r: the project BatchNorm's sync backward. Feeds u{p}pW.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    noncomputable def Proofs.MobileNetV4SyncTieB.mnv4SSyncCotDn (R : ) (hR : 0 < R) (N : ) (s : StableHLO.UibSpec) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * (2 * s.h) * (2 * s.h)))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (r : Fin R) :
                    Vec (N * (s.ic * s.expand * s.h * s.h))

                    Pre-strided block, replica r: the post-DW BN's output cotangent. Feeds u{p}dg/u{p}dbt.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      noncomputable def Proofs.MobileNetV4SyncTieB.mnv4SSyncCotDc (R : ) (hR : 0 < R) (N : ) (s : StableHLO.UibSpec) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * (2 * s.h) * (2 * s.h)))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (r : Fin R) :
                      Vec (N * (s.ic * s.expand * s.h * s.h))

                      Pre-strided block, replica r: the post-DW conv's output cotangent. Feeds u{p}dW.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        noncomputable def Proofs.MobileNetV4SyncTieB.mnv4SSyncCotEn (R : ) (hR : 0 < R) (N : ) (s : StableHLO.UibSpec) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * (2 * s.h) * (2 * s.h)))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (r : Fin R) :
                        Vec (N * (s.ic * s.expand * s.h * s.h))

                        Pre-strided block, replica r: the expand BN's output cotangent. Feeds u{p}eg/u{p}ebt.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          noncomputable def Proofs.MobileNetV4SyncTieB.mnv4SSyncCotEc (R : ) (hR : 0 < R) (N : ) (s : StableHLO.UibSpec) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * (2 * s.h) * (2 * s.h)))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (r : Fin R) :
                          Vec (N * (s.ic * s.expand * s.h * s.h))

                          Pre-strided block, replica r: the expand conv's output cotangent. Feeds u{p}eW.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            noncomputable def Proofs.MobileNetV4SyncTieB.mnv4SSyncCotQn (R : ) (hR : 0 < R) (N : ) (s : StableHLO.UibSpec) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * (2 * s.h) * (2 * s.h)))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (r : Fin R) :
                            Vec (N * (s.ic * s.h * s.h))

                            Pre-strided block, replica r: the STRIDED pre-DW BN's output cotangent. Feeds u{p}qg/u{p}qbt.

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              noncomputable def Proofs.MobileNetV4SyncTieB.mnv4SSyncCotQc (R : ) (hR : 0 < R) (N : ) (s : StableHLO.UibSpec) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * (2 * s.h) * (2 * s.h)))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (r : Fin R) :
                              Vec (N * (s.ic * s.h * s.h))

                              Pre-strided block, replica r: the STRIDED pre-DW conv's output cotangent. Feeds u{p}qW.

                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For
                                noncomputable def Proofs.MobileNetV4SyncTieB.mnv4SBodySyncCotIn (R : ) (hR : 0 < R) (N : ) (s : StableHLO.UibSpec) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * (2 * s.h) * (2 * s.h)))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (r : Fin R) :
                                Vec (N * (s.ic * (2 * s.h) * (2 * s.h)))

                                Pre-strided block, replica r: the block-INPUT cotangent — the strided depthwise's input-VJP, landing at 2h. No skip.

                                Equations
                                Instances For
                                  theorem Proofs.MobileNetV4SyncTieB.mnv4SSyncCotPc_shard (R : ) (hR : 0 < R) (N : ) (hN : 0 < N) (s : StableHLO.UibSpec) (hh : 0 < s.h) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * (2 * s.h) * (2 * s.h)))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (DY : Vec (R * N * (s.oc * s.h * s.h))) (hdys : ∀ (r : Fin R), dys r = batchShard R N (s.oc * s.h * s.h) DY r) (r : Fin R) :
                                  mnv4SSyncCotPc R hR N s p XIN dys r = batchShard R N (s.oc * s.h * s.h) (Mnv4TieB.mnv4SCotPc (R * N) s p XIN DY) r
                                  theorem Proofs.MobileNetV4SyncTieB.mnv4SSyncCotDn_shard (R : ) (hR : 0 < R) (N : ) (hN : 0 < N) (s : StableHLO.UibSpec) (hh : 0 < s.h) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * (2 * s.h) * (2 * s.h)))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (DY : Vec (R * N * (s.oc * s.h * s.h))) (hdys : ∀ (r : Fin R), dys r = batchShard R N (s.oc * s.h * s.h) DY r) (r : Fin R) :
                                  mnv4SSyncCotDn R hR N s p XIN dys r = batchShard R N (s.ic * s.expand * s.h * s.h) (Mnv4TieB.mnv4SCotDn (R * N) s p XIN DY) r
                                  theorem Proofs.MobileNetV4SyncTieB.mnv4SSyncCotDc_shard (R : ) (hR : 0 < R) (N : ) (hN : 0 < N) (s : StableHLO.UibSpec) (hh : 0 < s.h) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * (2 * s.h) * (2 * s.h)))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (DY : Vec (R * N * (s.oc * s.h * s.h))) (hdys : ∀ (r : Fin R), dys r = batchShard R N (s.oc * s.h * s.h) DY r) (r : Fin R) :
                                  mnv4SSyncCotDc R hR N s p XIN dys r = batchShard R N (s.ic * s.expand * s.h * s.h) (Mnv4TieB.mnv4SCotDc (R * N) s p XIN DY) r
                                  theorem Proofs.MobileNetV4SyncTieB.mnv4SSyncCotEn_shard (R : ) (hR : 0 < R) (N : ) (hN : 0 < N) (s : StableHLO.UibSpec) (hh : 0 < s.h) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * (2 * s.h) * (2 * s.h)))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (DY : Vec (R * N * (s.oc * s.h * s.h))) (hdys : ∀ (r : Fin R), dys r = batchShard R N (s.oc * s.h * s.h) DY r) (r : Fin R) :
                                  mnv4SSyncCotEn R hR N s p XIN dys r = batchShard R N (s.ic * s.expand * s.h * s.h) (Mnv4TieB.mnv4SCotEn (R * N) s p XIN DY) r
                                  theorem Proofs.MobileNetV4SyncTieB.mnv4SSyncCotEc_shard (R : ) (hR : 0 < R) (N : ) (hN : 0 < N) (s : StableHLO.UibSpec) (hh : 0 < s.h) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * (2 * s.h) * (2 * s.h)))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (DY : Vec (R * N * (s.oc * s.h * s.h))) (hdys : ∀ (r : Fin R), dys r = batchShard R N (s.oc * s.h * s.h) DY r) (r : Fin R) :
                                  mnv4SSyncCotEc R hR N s p XIN dys r = batchShard R N (s.ic * s.expand * s.h * s.h) (Mnv4TieB.mnv4SCotEc (R * N) s p XIN DY) r
                                  theorem Proofs.MobileNetV4SyncTieB.mnv4SSyncCotQn_shard (R : ) (hR : 0 < R) (N : ) (hN : 0 < N) (s : StableHLO.UibSpec) (hh : 0 < s.h) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * (2 * s.h) * (2 * s.h)))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (DY : Vec (R * N * (s.oc * s.h * s.h))) (hdys : ∀ (r : Fin R), dys r = batchShard R N (s.oc * s.h * s.h) DY r) (r : Fin R) :
                                  mnv4SSyncCotQn R hR N s p XIN dys r = batchShard R N (s.ic * s.h * s.h) (Mnv4TieB.mnv4SCotQn (R * N) s p XIN DY) r
                                  theorem Proofs.MobileNetV4SyncTieB.mnv4SSyncCotQc_shard (R : ) (hR : 0 < R) (N : ) (hN : 0 < N) (s : StableHLO.UibSpec) (hh : 0 < s.h) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * (2 * s.h) * (2 * s.h)))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (DY : Vec (R * N * (s.oc * s.h * s.h))) (hdys : ∀ (r : Fin R), dys r = batchShard R N (s.oc * s.h * s.h) DY r) (r : Fin R) :
                                  mnv4SSyncCotQc R hR N s p XIN dys r = batchShard R N (s.ic * s.h * s.h) (Mnv4TieB.mnv4SCotQc (R * N) s p XIN DY) r
                                  theorem Proofs.MobileNetV4SyncTieB.mnv4SBodySyncCotIn_shard (R : ) (hR : 0 < R) (N : ) (hN : 0 < N) (s : StableHLO.UibSpec) (hh : 0 < s.h) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * (2 * s.h) * (2 * s.h)))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (DY : Vec (R * N * (s.oc * s.h * s.h))) (hdys : ∀ (r : Fin R), dys r = batchShard R N (s.oc * s.h * s.h) DY r) (r : Fin R) :
                                  mnv4SBodySyncCotIn R hR N s p XIN dys r = batchShard R N (s.ic * (2 * s.h) * (2 * s.h)) (Mnv4TieB.mnv4SBodyCotIn (R * N) s p XIN DY) r
                                  noncomputable def Proofs.MobileNetV4SyncTieB.mnv4StemSyncCotN (R N h w : ) {ic oc kH kW : } (Ws : Kernel4 oc ic kH kW) (bs : Vec oc) (εs : ) (γs βs : Vec oc) (X : Vec (R * N * (ic * (2 * h) * (2 * w)))) (dys : Fin RVec (N * (oc * h * w))) (r : Fin R) :
                                  Vec (N * (oc * h * w))

                                  Stem, replica r: the stem relu's mask of the cotangent the fused stage hands down. Feeds sg/sbt.

                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For
                                    noncomputable def Proofs.MobileNetV4SyncTieB.mnv4StemSyncCotC (R : ) (hR : 0 < R) (N h w : ) {ic oc kH kW : } (Ws : Kernel4 oc ic kH kW) (bs : Vec oc) (εs : ) (γs βs : Vec oc) (X : Vec (R * N * (ic * (2 * h) * (2 * w)))) (dys : Fin RVec (N * (oc * h * w))) (r : Fin R) :
                                    Vec (N * (oc * h * w))

                                    Stem, replica r: the stem BatchNorm's sync backward. Feeds sW; the chain stops here.

                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For
                                      theorem Proofs.MobileNetV4SyncTieB.mnv4StemSyncCotN_shard (R N h w : ) {ic oc kH kW : } (Ws : Kernel4 oc ic kH kW) (bs : Vec oc) (εs : ) (γs βs : Vec oc) (X : Vec (R * N * (ic * (2 * h) * (2 * w)))) (dys : Fin RVec (N * (oc * h * w))) (DY : Vec (R * N * (oc * h * w))) (hdys : ∀ (r : Fin R), dys r = batchShard R N (oc * h * w) DY r) (r : Fin R) :
                                      mnv4StemSyncCotN R N h w Ws bs εs γs βs X dys r = batchShard R N (oc * h * w) (Mnv4TieB.mnv4StemCotN (R * N) h w Ws bs εs γs βs X DY) r
                                      theorem Proofs.MobileNetV4SyncTieB.mnv4StemSyncCotC_shard (R : ) (hR : 0 < R) (N h w : ) {ic oc kH kW : } (hN : 0 < N) (hh : 0 < h) (hw : 0 < w) (Ws : Kernel4 oc ic kH kW) (bs : Vec oc) (εs : ) (γs βs : Vec oc) (X : Vec (R * N * (ic * (2 * h) * (2 * w)))) (dys : Fin RVec (N * (oc * h * w))) (DY : Vec (R * N * (oc * h * w))) (hdys : ∀ (r : Fin R), dys r = batchShard R N (oc * h * w) DY r) (r : Fin R) :
                                      mnv4StemSyncCotC R hR N h w Ws bs εs γs βs X dys r = batchShard R N (oc * h * w) (Mnv4TieB.mnv4StemCotC (R * N) h w Ws bs εs γs βs X DY) r
                                      noncomputable def Proofs.MobileNetV4SyncTieB.mnv4FusedSyncCotPc (R : ) (hR : 0 < R) (N h w : ) {ic mid oc kH kW : } (Wc : Kernel4 mid ic kH kW) (bc : Vec mid) (εc : ) (γc βc : Vec mid) (Wp : Kernel4 oc mid 1 1) (bp : Vec oc) (εp : ) (γp : Vec oc) (XIN : Vec (R * N * (ic * (2 * h) * (2 * w)))) (dys : Fin RVec (N * (oc * h * w))) (r : Fin R) :
                                      Vec (N * (oc * h * w))

                                      Fused stage, replica r: the project BatchNorm's sync backward of the stage-output cotangent (no activation after the project). Feeds f0pW.

                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For
                                        noncomputable def Proofs.MobileNetV4SyncTieB.mnv4FusedSyncCotN (R : ) (hR : 0 < R) (N h w : ) {ic mid oc kH kW : } (Wc : Kernel4 mid ic kH kW) (bc : Vec mid) (εc : ) (γc βc : Vec mid) (Wp : Kernel4 oc mid 1 1) (bp : Vec oc) (εp : ) (γp : Vec oc) (XIN : Vec (R * N * (ic * (2 * h) * (2 * w)))) (dys : Fin RVec (N * (oc * h * w))) (r : Fin R) :
                                        Vec (N * (mid * h * w))

                                        Fused stage, replica r: the fused BN's output cotangent, through swish's backward — no mask. Feeds f0cg/f0cbt.

                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For
                                          noncomputable def Proofs.MobileNetV4SyncTieB.mnv4FusedSyncCotC (R : ) (hR : 0 < R) (N h w : ) {ic mid oc kH kW : } (Wc : Kernel4 mid ic kH kW) (bc : Vec mid) (εc : ) (γc βc : Vec mid) (Wp : Kernel4 oc mid 1 1) (bp : Vec oc) (εp : ) (γp : Vec oc) (XIN : Vec (R * N * (ic * (2 * h) * (2 * w)))) (dys : Fin RVec (N * (oc * h * w))) (r : Fin R) :
                                          Vec (N * (mid * h * w))

                                          Fused stage, replica r: the fused conv's output cotangent. Feeds f0cW.

                                          Equations
                                          • One or more equations did not get rendered due to their size.
                                          Instances For
                                            noncomputable def Proofs.MobileNetV4SyncTieB.mnv4FusedSyncCotIn (R : ) (hR : 0 < R) (N h w : ) {ic mid oc kH kW : } (Wc : Kernel4 mid ic kH kW) (bc : Vec mid) (εc : ) (γc βc : Vec mid) (Wp : Kernel4 oc mid 1 1) (bp : Vec oc) (εp : ) (γp : Vec oc) (XIN : Vec (R * N * (ic * (2 * h) * (2 * w)))) (dys : Fin RVec (N * (oc * h * w))) (r : Fin R) :
                                            Vec (N * (ic * (2 * h) * (2 * w)))

                                            Fused stage, replica r: the stage-INPUT cotangent — the SYMMETRIC strided conv's input-VJP, handed to the stem.

                                            Equations
                                            • One or more equations did not get rendered due to their size.
                                            Instances For
                                              theorem Proofs.MobileNetV4SyncTieB.mnv4FusedSyncCotPc_shard (R : ) (hR : 0 < R) (N h w : ) {ic mid oc kH kW : } (hN : 0 < N) (hh : 0 < h) (hw : 0 < w) (Wc : Kernel4 mid ic kH kW) (bc : Vec mid) (εc : ) (γc βc : Vec mid) (Wp : Kernel4 oc mid 1 1) (bp : Vec oc) (εp : ) (γp βp : Vec oc) (XIN : Vec (R * N * (ic * (2 * h) * (2 * w)))) (dys : Fin RVec (N * (oc * h * w))) (DY : Vec (R * N * (oc * h * w))) (hdys : ∀ (r : Fin R), dys r = batchShard R N (oc * h * w) DY r) (r : Fin R) :
                                              mnv4FusedSyncCotPc R hR N h w Wc bc εc γc βc Wp bp εp γp XIN dys r = batchShard R N (oc * h * w) (Mnv4TieB.mnv4FusedCotPc (R * N) h w Wc bc εc γc βc Wp bp εp γp βp XIN DY) r
                                              theorem Proofs.MobileNetV4SyncTieB.mnv4FusedSyncCotN_shard (R : ) (hR : 0 < R) (N h w : ) {ic mid oc kH kW : } (hN : 0 < N) (hh : 0 < h) (hw : 0 < w) (Wc : Kernel4 mid ic kH kW) (bc : Vec mid) (εc : ) (γc βc : Vec mid) (Wp : Kernel4 oc mid 1 1) (bp : Vec oc) (εp : ) (γp βp : Vec oc) (XIN : Vec (R * N * (ic * (2 * h) * (2 * w)))) (dys : Fin RVec (N * (oc * h * w))) (DY : Vec (R * N * (oc * h * w))) (hdys : ∀ (r : Fin R), dys r = batchShard R N (oc * h * w) DY r) (r : Fin R) :
                                              mnv4FusedSyncCotN R hR N h w Wc bc εc γc βc Wp bp εp γp XIN dys r = batchShard R N (mid * h * w) (Mnv4TieB.mnv4FusedCotN (R * N) h w Wc bc εc γc βc Wp bp εp γp βp XIN DY) r
                                              theorem Proofs.MobileNetV4SyncTieB.mnv4FusedSyncCotC_shard (R : ) (hR : 0 < R) (N h w : ) {ic mid oc kH kW : } (hN : 0 < N) (hh : 0 < h) (hw : 0 < w) (Wc : Kernel4 mid ic kH kW) (bc : Vec mid) (εc : ) (γc βc : Vec mid) (Wp : Kernel4 oc mid 1 1) (bp : Vec oc) (εp : ) (γp βp : Vec oc) (XIN : Vec (R * N * (ic * (2 * h) * (2 * w)))) (dys : Fin RVec (N * (oc * h * w))) (DY : Vec (R * N * (oc * h * w))) (hdys : ∀ (r : Fin R), dys r = batchShard R N (oc * h * w) DY r) (r : Fin R) :
                                              mnv4FusedSyncCotC R hR N h w Wc bc εc γc βc Wp bp εp γp XIN dys r = batchShard R N (mid * h * w) (Mnv4TieB.mnv4FusedCotC (R * N) h w Wc bc εc γc βc Wp bp εp γp βp XIN DY) r
                                              theorem Proofs.MobileNetV4SyncTieB.mnv4FusedSyncCotIn_shard (R : ) (hR : 0 < R) (N h w : ) {ic mid oc kH kW : } (hN : 0 < N) (hh : 0 < h) (hw : 0 < w) (Wc : Kernel4 mid ic kH kW) (bc : Vec mid) (εc : ) (γc βc : Vec mid) (Wp : Kernel4 oc mid 1 1) (bp : Vec oc) (εp : ) (γp βp : Vec oc) (XIN : Vec (R * N * (ic * (2 * h) * (2 * w)))) (dys : Fin RVec (N * (oc * h * w))) (DY : Vec (R * N * (oc * h * w))) (hdys : ∀ (r : Fin R), dys r = batchShard R N (oc * h * w) DY r) (r : Fin R) :
                                              mnv4FusedSyncCotIn R hR N h w Wc bc εc γc βc Wp bp εp γp XIN dys r = batchShard R N (ic * (2 * h) * (2 * w)) (Mnv4TieB.mnv4FusedCotIn (R * N) h w Wc bc εc γc βc Wp bp εp γp βp XIN DY) r
                                              noncomputable def Proofs.MobileNetV4SyncTieB.mnv4HeadSyncCotHn (R N h w : ) {c mid oc nCls : } (W1 : Kernel4 mid c 1 1) (b1 : Vec mid) (ε1 : ) (γ1 β1 : Vec mid) (W2 : Kernel4 oc mid 1 1) (b2 : Vec oc) (ε2 : ) (γ2 β2 : Vec oc) (Wd : Mat oc nCls) (bd : Vec nCls) (XIN : Vec (R * N * (c * h * w))) (gs : Fin RVec (N * nCls)) (r : Fin R) :
                                              Vec (N * (oc * h * w))

                                              Head, replica r: the second head relu's mask of the GAP/dense tail's input-VJP of this replica's loss cotangent. Feeds hg/hbt.

                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              Instances For
                                                noncomputable def Proofs.MobileNetV4SyncTieB.mnv4HeadSyncCotHc (R : ) (hR : 0 < R) (N h w : ) {c mid oc nCls : } (W1 : Kernel4 mid c 1 1) (b1 : Vec mid) (ε1 : ) (γ1 β1 : Vec mid) (W2 : Kernel4 oc mid 1 1) (b2 : Vec oc) (ε2 : ) (γ2 β2 : Vec oc) (Wd : Mat oc nCls) (bd : Vec nCls) (XIN : Vec (R * N * (c * h * w))) (gs : Fin RVec (N * nCls)) (r : Fin R) :
                                                Vec (N * (oc * h * w))

                                                Head, replica r: the second head BatchNorm's sync backward. Feeds hW.

                                                Equations
                                                • One or more equations did not get rendered due to their size.
                                                Instances For
                                                  noncomputable def Proofs.MobileNetV4SyncTieB.mnv4HeadSyncCotH1n (R : ) (hR : 0 < R) (N h w : ) {c mid oc nCls : } (W1 : Kernel4 mid c 1 1) (b1 : Vec mid) (ε1 : ) (γ1 β1 : Vec mid) (W2 : Kernel4 oc mid 1 1) (b2 : Vec oc) (ε2 : ) (γ2 β2 : Vec oc) (Wd : Mat oc nCls) (bd : Vec nCls) (XIN : Vec (R * N * (c * h * w))) (gs : Fin RVec (N * nCls)) (r : Fin R) :
                                                  Vec (N * (mid * h * w))

                                                  Head, replica r: the first head relu's mask. Feeds h1g/h1bt.

                                                  Equations
                                                  • One or more equations did not get rendered due to their size.
                                                  Instances For
                                                    noncomputable def Proofs.MobileNetV4SyncTieB.mnv4HeadSyncCotH1c (R : ) (hR : 0 < R) (N h w : ) {c mid oc nCls : } (W1 : Kernel4 mid c 1 1) (b1 : Vec mid) (ε1 : ) (γ1 β1 : Vec mid) (W2 : Kernel4 oc mid 1 1) (b2 : Vec oc) (ε2 : ) (γ2 β2 : Vec oc) (Wd : Mat oc nCls) (bd : Vec nCls) (XIN : Vec (R * N * (c * h * w))) (gs : Fin RVec (N * nCls)) (r : Fin R) :
                                                    Vec (N * (mid * h * w))

                                                    Head, replica r: the first head BatchNorm's sync backward. Feeds h1W.

                                                    Equations
                                                    • One or more equations did not get rendered due to their size.
                                                    Instances For
                                                      noncomputable def Proofs.MobileNetV4SyncTieB.mnv4HeadSyncCotIn (R : ) (hR : 0 < R) (N h w : ) {c mid oc nCls : } (W1 : Kernel4 mid c 1 1) (b1 : Vec mid) (ε1 : ) (γ1 β1 : Vec mid) (W2 : Kernel4 oc mid 1 1) (b2 : Vec oc) (ε2 : ) (γ2 β2 : Vec oc) (Wd : Mat oc nCls) (bd : Vec nCls) (XIN : Vec (R * N * (c * h * w))) (gs : Fin RVec (N * nCls)) (r : Fin R) :
                                                      Vec (N * (c * h * w))

                                                      Head, replica r: the cotangent handed to block 21.

                                                      Equations
                                                      • One or more equations did not get rendered due to their size.
                                                      Instances For
                                                        theorem Proofs.MobileNetV4SyncTieB.mnv4HeadSyncCotHn_shard (R N h w : ) {c mid oc nCls : } (W1 : Kernel4 mid c 1 1) (b1 : Vec mid) (ε1 : ) (γ1 β1 : Vec mid) (W2 : Kernel4 oc mid 1 1) (b2 : Vec oc) (ε2 : ) (γ2 β2 : Vec oc) (Wd : Mat oc nCls) (bd : Vec nCls) (XIN : Vec (R * N * (c * h * w))) (gs : Fin RVec (N * nCls)) (G : Vec (R * N * nCls)) (hgs : ∀ (r : Fin R), gs r = batchShard R N nCls G r) (r : Fin R) :
                                                        mnv4HeadSyncCotHn R N h w W1 b1 ε1 γ1 β1 W2 b2 ε2 γ2 β2 Wd bd XIN gs r = batchShard R N (oc * h * w) (Mnv4TieB.mnv4HeadCotHn (R * N) h w W1 b1 ε1 γ1 β1 W2 b2 ε2 γ2 β2 Wd bd XIN G) r
                                                        theorem Proofs.MobileNetV4SyncTieB.mnv4HeadSyncCotHc_shard (R : ) (hR : 0 < R) (N h w : ) {c mid oc nCls : } (hN : 0 < N) (hh : 0 < h) (hw : 0 < w) (W1 : Kernel4 mid c 1 1) (b1 : Vec mid) (ε1 : ) (γ1 β1 : Vec mid) (W2 : Kernel4 oc mid 1 1) (b2 : Vec oc) (ε2 : ) (γ2 β2 : Vec oc) (Wd : Mat oc nCls) (bd : Vec nCls) (XIN : Vec (R * N * (c * h * w))) (gs : Fin RVec (N * nCls)) (G : Vec (R * N * nCls)) (hgs : ∀ (r : Fin R), gs r = batchShard R N nCls G r) (r : Fin R) :
                                                        mnv4HeadSyncCotHc R hR N h w W1 b1 ε1 γ1 β1 W2 b2 ε2 γ2 β2 Wd bd XIN gs r = batchShard R N (oc * h * w) (Mnv4TieB.mnv4HeadCotHc (R * N) h w W1 b1 ε1 γ1 β1 W2 b2 ε2 γ2 β2 Wd bd XIN G) r
                                                        theorem Proofs.MobileNetV4SyncTieB.mnv4HeadSyncCotH1n_shard (R : ) (hR : 0 < R) (N h w : ) {c mid oc nCls : } (hN : 0 < N) (hh : 0 < h) (hw : 0 < w) (W1 : Kernel4 mid c 1 1) (b1 : Vec mid) (ε1 : ) (γ1 β1 : Vec mid) (W2 : Kernel4 oc mid 1 1) (b2 : Vec oc) (ε2 : ) (γ2 β2 : Vec oc) (Wd : Mat oc nCls) (bd : Vec nCls) (XIN : Vec (R * N * (c * h * w))) (gs : Fin RVec (N * nCls)) (G : Vec (R * N * nCls)) (hgs : ∀ (r : Fin R), gs r = batchShard R N nCls G r) (r : Fin R) :
                                                        mnv4HeadSyncCotH1n R hR N h w W1 b1 ε1 γ1 β1 W2 b2 ε2 γ2 β2 Wd bd XIN gs r = batchShard R N (mid * h * w) (Mnv4TieB.mnv4HeadCotH1n (R * N) h w W1 b1 ε1 γ1 β1 W2 b2 ε2 γ2 β2 Wd bd XIN G) r
                                                        theorem Proofs.MobileNetV4SyncTieB.mnv4HeadSyncCotH1c_shard (R : ) (hR : 0 < R) (N h w : ) {c mid oc nCls : } (hN : 0 < N) (hh : 0 < h) (hw : 0 < w) (W1 : Kernel4 mid c 1 1) (b1 : Vec mid) (ε1 : ) (γ1 β1 : Vec mid) (W2 : Kernel4 oc mid 1 1) (b2 : Vec oc) (ε2 : ) (γ2 β2 : Vec oc) (Wd : Mat oc nCls) (bd : Vec nCls) (XIN : Vec (R * N * (c * h * w))) (gs : Fin RVec (N * nCls)) (G : Vec (R * N * nCls)) (hgs : ∀ (r : Fin R), gs r = batchShard R N nCls G r) (r : Fin R) :
                                                        mnv4HeadSyncCotH1c R hR N h w W1 b1 ε1 γ1 β1 W2 b2 ε2 γ2 β2 Wd bd XIN gs r = batchShard R N (mid * h * w) (Mnv4TieB.mnv4HeadCotH1c (R * N) h w W1 b1 ε1 γ1 β1 W2 b2 ε2 γ2 β2 Wd bd XIN G) r
                                                        theorem Proofs.MobileNetV4SyncTieB.mnv4HeadSyncCotIn_shard (R : ) (hR : 0 < R) (N h w : ) {c mid oc nCls : } (hN : 0 < N) (hh : 0 < h) (hw : 0 < w) (W1 : Kernel4 mid c 1 1) (b1 : Vec mid) (ε1 : ) (γ1 β1 : Vec mid) (W2 : Kernel4 oc mid 1 1) (b2 : Vec oc) (ε2 : ) (γ2 β2 : Vec oc) (Wd : Mat oc nCls) (bd : Vec nCls) (XIN : Vec (R * N * (c * h * w))) (gs : Fin RVec (N * nCls)) (G : Vec (R * N * nCls)) (hgs : ∀ (r : Fin R), gs r = batchShard R N nCls G r) (r : Fin R) :
                                                        mnv4HeadSyncCotIn R hR N h w W1 b1 ε1 γ1 β1 W2 b2 ε2 γ2 β2 Wd bd XIN gs r = batchShard R N (c * h * w) (Mnv4TieB.mnv4HeadCotIn (R * N) h w W1 b1 ε1 γ1 β1 W2 b2 ε2 γ2 β2 Wd bd XIN G) r
                                                        theorem Proofs.MobileNetV4SyncTieB.mnv4BodySyncCotIn_scaled (R : ) (hR : 0 < R) (N : ) (hN : 0 < N) (s : StableHLO.UibSpec) (hh : 0 < s.h) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * s.h * s.h))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (DY : Vec (R * N * (s.oc * s.h * s.h))) (hdys : ∀ (r : Fin R), dys r = batchShard R N (s.oc * s.h * s.h) (fun (i : Fin (R * N * (s.oc * s.h * s.h))) => R * DY i) r) (r : Fin R) :
                                                        mnv4BodySyncCotIn R hR N s p XIN dys r = batchShard R N (s.ic * s.h * s.h) (fun (i : Fin (R * N * (s.ic * s.h * s.h))) => R * Mnv4TieB.mnv4BodyCotIn (R * N) s p XIN DY i) r
                                                        theorem Proofs.MobileNetV4SyncTieB.mnv4SkipSyncCotIn_scaled {R N n : } (a b : Fin RVec (N * n)) (A B : Vec (R * N * n)) (ha : ∀ (r : Fin R), a r = batchShard R N n (fun (i : Fin (R * N * n)) => R * A i) r) (hb : ∀ (r : Fin R), b r = batchShard R N n (fun (i : Fin (R * N * n)) => R * B i) r) (r : Fin R) :
                                                        Mnv4TieB.mnv4SkipCotIn (a r) (b r) = batchShard R N n (fun (i : Fin (R * N * n)) => R * Mnv4TieB.mnv4SkipCotIn A B i) r

                                                        The skip fan-in carries the invariantbody dx + dyOut, each at R × its shard, is R × the shard of the sum. Generic in the width, so it applies at the concrete rows where s.oc = s.ic is definitional, as T3's mnv4SkipCotIn is.

                                                        theorem Proofs.MobileNetV4SyncTieB.mnv4SBodySyncCotIn_scaled (R : ) (hR : 0 < R) (N : ) (hN : 0 < N) (s : StableHLO.UibSpec) (hh : 0 < s.h) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * (2 * s.h) * (2 * s.h)))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (DY : Vec (R * N * (s.oc * s.h * s.h))) (hdys : ∀ (r : Fin R), dys r = batchShard R N (s.oc * s.h * s.h) (fun (i : Fin (R * N * (s.oc * s.h * s.h))) => R * DY i) r) (r : Fin R) :
                                                        mnv4SBodySyncCotIn R hR N s p XIN dys r = batchShard R N (s.ic * (2 * s.h) * (2 * s.h)) (fun (i : Fin (R * N * (s.ic * (2 * s.h) * (2 * s.h)))) => R * Mnv4TieB.mnv4SBodyCotIn (R * N) s p XIN DY i) r
                                                        theorem Proofs.MobileNetV4SyncTieB.mnv4FusedSyncCotIn_scaled (R : ) (hR : 0 < R) (N h w : ) {ic mid oc kH kW : } (hN : 0 < N) (hh : 0 < h) (hw : 0 < w) (Wc : Kernel4 mid ic kH kW) (bc : Vec mid) (εc : ) (γc βc : Vec mid) (Wp : Kernel4 oc mid 1 1) (bp : Vec oc) (εp : ) (γp βp : Vec oc) (XIN : Vec (R * N * (ic * (2 * h) * (2 * w)))) (dys : Fin RVec (N * (oc * h * w))) (DY : Vec (R * N * (oc * h * w))) (hdys : ∀ (r : Fin R), dys r = batchShard R N (oc * h * w) (fun (i : Fin (R * N * (oc * h * w))) => R * DY i) r) (r : Fin R) :
                                                        mnv4FusedSyncCotIn R hR N h w Wc bc εc γc βc Wp bp εp γp XIN dys r = batchShard R N (ic * (2 * h) * (2 * w)) (fun (i : Fin (R * N * (ic * (2 * h) * (2 * w)))) => R * Mnv4TieB.mnv4FusedCotIn (R * N) h w Wc bc εc γc βc Wp bp εp γp βp XIN DY i) r
                                                        theorem Proofs.MobileNetV4SyncTieB.mnv4HeadSyncCotIn_scaled (R : ) (hR : 0 < R) (N h w : ) {c mid oc nCls : } (hN : 0 < N) (hh : 0 < h) (hw : 0 < w) (W1 : Kernel4 mid c 1 1) (b1 : Vec mid) (ε1 : ) (γ1 β1 : Vec mid) (W2 : Kernel4 oc mid 1 1) (b2 : Vec oc) (ε2 : ) (γ2 β2 : Vec oc) (Wd : Mat oc nCls) (bd : Vec nCls) (XIN : Vec (R * N * (c * h * w))) (gs : Fin RVec (N * nCls)) (G : Vec (R * N * nCls)) (hgs : ∀ (r : Fin R), gs r = batchShard R N nCls (fun (i : Fin (R * N * nCls)) => R * G i) r) (r : Fin R) :
                                                        mnv4HeadSyncCotIn R hR N h w W1 b1 ε1 γ1 β1 W2 b2 ε2 γ2 β2 Wd bd XIN gs r = batchShard R N (c * h * w) (fun (i : Fin (R * N * (c * h * w))) => R * Mnv4TieB.mnv4HeadCotIn (R * N) h w W1 b1 ε1 γ1 β1 W2 b2 ε2 γ2 β2 Wd bd XIN G i) r
                                                        def Proofs.MobileNetV4SyncTieB.mnv4ExtraDWSyncTiedB (R : ) (hR : 0 < R) (N : ) (s : StableHLO.UibSpec) (xN cotN vN epsStr : String) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * s.h * s.h))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (DY : Vec (R * N * (s.oc * s.h * s.h))) :

                                                        ExtraDW-profile stride-1 block, DP-tied — its twelve emitted collectives (u{p}qW qg qbt eW eg ebt dW dg dbt pW pg pbt), each the single-device node at the global batch, at T3's chain cotangents there. The skip changes only the cotangent handed down, never a parameter's.

                                                        Equations
                                                        • One or more equations did not get rendered due to their size.
                                                        Instances For
                                                          theorem Proofs.MobileNetV4SyncTieB.mnv4_extradw_syncTiedB (R : ) (hR : 0 < R) (N : ) (hN : 0 < N) (s : StableHLO.UibSpec) (hh : 0 < s.h) (xN cotN vN epsStr : String) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * s.h * s.h))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (DY : Vec (R * N * (s.oc * s.h * s.h))) (hdys : ∀ (r : Fin R), dys r = batchShard R N (s.oc * s.h * s.h) (fun (i : Fin (R * N * (s.oc * s.h * s.h))) => R * DY i) r) :
                                                          mnv4ExtraDWSyncTiedB R hR N s xN cotN vN epsStr p XIN dys DY
                                                          def Proofs.MobileNetV4SyncTieB.mnv4ConvNeXtSyncTiedB (R : ) (hR : 0 < R) (N : ) (s : StableHLO.UibSpec) (xN cotN vN epsStr : String) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * s.h * s.h))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (DY : Vec (R * N * (s.oc * s.h * s.h))) :

                                                          ConvNeXt-like block (postDWk = 0), DP-tied — its nine emitted collectives (no d).

                                                          Equations
                                                          • One or more equations did not get rendered due to their size.
                                                          Instances For
                                                            theorem Proofs.MobileNetV4SyncTieB.mnv4_convnext_syncTiedB (R : ) (hR : 0 < R) (N : ) (hN : 0 < N) (s : StableHLO.UibSpec) (hh : 0 < s.h) (xN cotN vN epsStr : String) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * s.h * s.h))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (DY : Vec (R * N * (s.oc * s.h * s.h))) (hdys : ∀ (r : Fin R), dys r = batchShard R N (s.oc * s.h * s.h) (fun (i : Fin (R * N * (s.oc * s.h * s.h))) => R * DY i) r) :
                                                            mnv4ConvNeXtSyncTiedB R hR N s xN cotN vN epsStr p XIN dys DY
                                                            def Proofs.MobileNetV4SyncTieB.mnv4FfnSyncTiedB (R : ) (hR : 0 < R) (N : ) (s : StableHLO.UibSpec) (xN cotN vN epsStr : String) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * s.h * s.h))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (DY : Vec (R * N * (s.oc * s.h * s.h))) :

                                                            FFN block (neither depthwise), DP-tied — its six emitted collectives (eW eg ebt pW pg pbt).

                                                            Equations
                                                            • One or more equations did not get rendered due to their size.
                                                            Instances For
                                                              theorem Proofs.MobileNetV4SyncTieB.mnv4_ffn_syncTiedB (R : ) (hR : 0 < R) (N : ) (hN : 0 < N) (s : StableHLO.UibSpec) (hh : 0 < s.h) (xN cotN vN epsStr : String) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * s.h * s.h))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (DY : Vec (R * N * (s.oc * s.h * s.h))) (hdys : ∀ (r : Fin R), dys r = batchShard R N (s.oc * s.h * s.h) (fun (i : Fin (R * N * (s.oc * s.h * s.h))) => R * DY i) r) :
                                                              mnv4FfnSyncTiedB R hR N s xN cotN vN epsStr p XIN dys DY
                                                              def Proofs.MobileNetV4SyncTieB.mnv4PreStridedSyncTiedB (R : ) (hR : 0 < R) (N : ) (s : StableHLO.UibSpec) (xN cotN vN epsStr : String) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * (2 * s.h) * (2 * s.h)))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (DY : Vec (R * N * (s.oc * s.h * s.h))) :

                                                              Pre-strided block (rows 1, 3, 11), DP-tied — its twelve emitted collectives, the leading one the SYMMETRIC strided depthwise weight depthwiseStridedWeightGradB.

                                                              Equations
                                                              • One or more equations did not get rendered due to their size.
                                                              Instances For
                                                                theorem Proofs.MobileNetV4SyncTieB.mnv4_prestrided_syncTiedB (R : ) (hR : 0 < R) (N : ) (hN : 0 < N) (s : StableHLO.UibSpec) (hh : 0 < s.h) (xN cotN vN epsStr : String) (p : StableHLO.UibParams s) (XIN : Vec (R * N * (s.ic * (2 * s.h) * (2 * s.h)))) (dys : Fin RVec (N * (s.oc * s.h * s.h))) (DY : Vec (R * N * (s.oc * s.h * s.h))) (hdys : ∀ (r : Fin R), dys r = batchShard R N (s.oc * s.h * s.h) (fun (i : Fin (R * N * (s.oc * s.h * s.h))) => R * DY i) r) :
                                                                mnv4PreStridedSyncTiedB R hR N s xN cotN vN epsStr p XIN dys DY
                                                                def Proofs.MobileNetV4SyncTieB.mnv4StemSyncTiedB (R : ) (hR : 0 < R) (N h w : ) {ic oc kH kW : } (xN cotN vN epsStr : String) (Ws : Kernel4 oc ic kH kW) (bs : Vec oc) (εs : ) (γs βs : Vec oc) (X : Vec (R * N * (ic * (2 * h) * (2 * w)))) (dys : Fin RVec (N * (oc * h * w))) (DY : Vec (R * N * (oc * h * w))) :

                                                                Stem, DP-tied — the 3×3/s2 XLA-SAME conv weight and its BatchNorm's γ and β.

                                                                Equations
                                                                • One or more equations did not get rendered due to their size.
                                                                Instances For
                                                                  theorem Proofs.MobileNetV4SyncTieB.mnv4_stem_syncTiedB (R : ) (hR : 0 < R) (N h w : ) {ic oc kH kW : } (hN : 0 < N) (hh : 0 < h) (hw : 0 < w) (xN cotN vN epsStr : String) (Ws : Kernel4 oc ic kH kW) (bs : Vec oc) (εs : ) (γs βs : Vec oc) (X : Vec (R * N * (ic * (2 * h) * (2 * w)))) (dys : Fin RVec (N * (oc * h * w))) (DY : Vec (R * N * (oc * h * w))) (hdys : ∀ (r : Fin R), dys r = batchShard R N (oc * h * w) (fun (i : Fin (R * N * (oc * h * w))) => R * DY i) r) :
                                                                  mnv4StemSyncTiedB R hR N h w xN cotN vN epsStr Ws bs εs γs βs X dys DY
                                                                  def Proofs.MobileNetV4SyncTieB.mnv4FusedSyncTiedB (R : ) (hR : 0 < R) (N h w : ) {ic mid oc kH kW : } (Wc : Kernel4 mid ic kH kW) (bc : Vec mid) (εc : ) (γc βc : Vec mid) (Wp : Kernel4 oc mid 1 1) (bp : Vec oc) (εp : ) (γp βp : Vec oc) (xN cotN vN epsStr : String) (XIN : Vec (R * N * (ic * (2 * h) * (2 * w)))) (dys : Fin RVec (N * (oc * h * w))) (DY : Vec (R * N * (oc * h * w))) :

                                                                  Fused stage, DP-tied — its six emitted collectives: the SYMMETRIC strided conv weight (f0cW, where the stem's is the XLA-SAME twin), the fused BN's γ/β (through swish), the project weight and the project BN's γ/β.

                                                                  Equations
                                                                  • One or more equations did not get rendered due to their size.
                                                                  Instances For
                                                                    theorem Proofs.MobileNetV4SyncTieB.mnv4_fused_syncTiedB (R : ) (hR : 0 < R) (N h w : ) {ic mid oc kH kW : } (hN : 0 < N) (hh : 0 < h) (hw : 0 < w) (Wc : Kernel4 mid ic kH kW) (bc : Vec mid) (εc : ) (γc βc : Vec mid) (Wp : Kernel4 oc mid 1 1) (bp : Vec oc) (εp : ) (γp βp : Vec oc) (xN cotN vN epsStr : String) (XIN : Vec (R * N * (ic * (2 * h) * (2 * w)))) (dys : Fin RVec (N * (oc * h * w))) (DY : Vec (R * N * (oc * h * w))) (hdys : ∀ (r : Fin R), dys r = batchShard R N (oc * h * w) (fun (i : Fin (R * N * (oc * h * w))) => R * DY i) r) :
                                                                    mnv4FusedSyncTiedB R hR N h w Wc bc εc γc βc Wp bp εp γp βp xN cotN vN epsStr XIN dys DY
                                                                    def Proofs.MobileNetV4SyncTieB.mnv4HeadSyncTiedB (R : ) (hR : 0 < R) (N h w : ) {c mid oc nCls : } (W1 : Kernel4 mid c 1 1) (b1 : Vec mid) (ε1 : ) (γ1 β1 : Vec mid) (W2 : Kernel4 oc mid 1 1) (b2 : Vec oc) (ε2 : ) (γ2 β2 : Vec oc) (Wd : Mat oc nCls) (bd : Vec nCls) (xN cotN vN epsStr : String) (XIN : Vec (R * N * (c * h * w))) (gs : Fin RVec (N * nCls)) (G : Vec (R * N * nCls)) :

                                                                    Head, DP-tied — all eight emitted collectives: the two 1×1 conv weights (h1W 256 → 960, hW 960 → 1280), their BatchNorms' γ and β, and the classifier's weight and bias at the GAP output (ResNet34SyncTieB.r34HeadSyncTiedB, reused: MNv4's GAP-and-dense tail is ResNet-34's).

                                                                    Equations
                                                                    • One or more equations did not get rendered due to their size.
                                                                    Instances For
                                                                      theorem Proofs.MobileNetV4SyncTieB.mnv4_head_syncTiedB (R : ) (hR : 0 < R) (N h w : ) {c mid oc nCls : } (hN : 0 < N) (hh : 0 < h) (hw : 0 < w) (W1 : Kernel4 mid c 1 1) (b1 : Vec mid) (ε1 : ) (γ1 β1 : Vec mid) (W2 : Kernel4 oc mid 1 1) (b2 : Vec oc) (ε2 : ) (γ2 β2 : Vec oc) (Wd : Mat oc nCls) (bd : Vec nCls) (xN cotN vN epsStr : String) (XIN : Vec (R * N * (c * h * w))) (gs : Fin RVec (N * nCls)) (G : Vec (R * N * nCls)) (hgs : ∀ (r : Fin R), gs r = batchShard R N nCls (fun (i : Fin (R * N * nCls)) => R * G i) r) :
                                                                      mnv4HeadSyncTiedB R hR N h w W1 b1 ε1 γ1 β1 W2 b2 ε2 γ2 β2 Wd bd xN cotN vN epsStr XIN gs G
                                                                      def Proofs.MobileNetV4SyncTieB.mnv4NetSyncTiedB (R : ) (hR : 0 < R) (N : ) {nCls : } (xN cotN vN epsStr : String) (w : StableHLO.Mnv4BWeights nCls) (X : Vec (R * N * (3 * 224 * 224))) (G : Vec (R * N * nCls)) (gs : Fin RVec (N * nCls)) :

                                                                      The whole-net statement, named — so the capstone (cotangents bound) and its smoothed-CE corollary (cotangents instantiated) state exactly one thing. The first 23 lets are mnv4_net_tiedB's chain at N := R·N, driven by the global cotangent G; the next 23 are the replicas' sync-BN chain, driven by the family gs; the 24 conjuncts are one per stage, every emitted parameter collective against T3's node at the global batch.

                                                                      Equations
                                                                      • One or more equations did not get rendered due to their size.
                                                                      Instances For
                                                                        theorem Proofs.MobileNetV4SyncTieB.mnv4_net_syncTiedB (R : ) (hR : 0 < R) (N : ) (hN : 0 < N) {nCls : } (xN cotN vN epsStr : String) (w : StableHLO.Mnv4BWeights nCls) (X : Vec (R * N * (3 * 224 * 224))) (G : Vec (R * N * nCls)) (gs : Fin RVec (N * nCls)) (hgs : ∀ (r : Fin R), gs r = batchShard R N nCls (fun (i : Fin (R * N * nCls)) => R * G i) r) :
                                                                        mnv4NetSyncTiedB R hR N xN cotN vN epsStr w X G gs

                                                                        ⭐⭐⭐ The synchronised-BN data-parallel MobileNetV4-Conv-M step IS the single-device step at the global batch. R replicas at batch N, each running the render's sync-BN backward chain from its own loss cotangent gs r; when each gs r is R × its shard of a global cotangent G — the replicas' loss divisor is R × smaller than the global step's — every parameter's all-reduced mean gradient — stem 3, fused 6, thirteen ExtraDW-profile blocks × 12, four ConvNeXt-like × 9, four FFN × 6, head 8: the 233 the render emits — equals the single-device batch-BN gradient node at batch R·N, at the cotangent T3's chain delivers there from G.

                                                                        ⭐ The left-hand chain is the replicas' own: sync-BN backward (bnSyncInB, a collective per BN layer), per-example conv / depthwise / strided / relu / swish / GAP / dense links. The right-hand chain is mnv4_net_tiedB's at N := R·N with g := G, whose nodes that capstone ties to the certified gradient — so this and it together say the DP step's update is the certified gradient of the global-batch step. mnv4_net_syncTiedB_smoothedCE discharges the hypothesis for the label-smoothed chain the artifacts emit.

                                                                        ⛔ Before the render's sync-BN swap the DP render normalised per replica and this statement was false: DataParallel.dpMeanGrad_ne_globalBatchGrad is the witness, and stays as the statement of what those runs did.

                                                                        theorem Proofs.MobileNetV4SyncTieB.mnv4_net_syncTiedB_smoothedCE (R : ) (hR : 0 < R) (N : ) (hN : 0 < N) {nCls : } (xN cotN vN epsStr aStr negAK bStr logN ohN : String) (α B : ) (w : StableHLO.Mnv4BWeights nCls) (X : Vec (R * N * (3 * 224 * 224))) (T : Vec (R * N * (1 * nCls))) :
                                                                        mnv4NetSyncTiedB R hR N xN cotN vN epsStr w X (ResNet34TieB.unrowB (R * N) nCls (StableHLO.den (smoothedLossCotGraph (R * N) nCls α (R * B) aStr negAK bStr logN ohN (ResNet34TieB.rowB (R * N) nCls (StableHLO.mobilenetv4ForwardB_full (R * N) w X)) T))) fun (r : Fin R) => ResNet34TieB.unrowB N nCls (StableHLO.den (smoothedLossCotGraph N nCls α B aStr negAK bStr logN ohN (ResNet34TieB.rowB N nCls (batchShard R N nCls (StableHLO.mobilenetv4ForwardB_full (R * N) w X) r)) (batchShard R N (1 * nCls) T r)))

                                                                        ⭐⭐ …and at the loss the artifacts emit. mnv4_net_syncTiedB with its cotangent hypothesis discharged by replicaLossCot_eq: each replica runs the label-smoothed softmax chain (smoothedLossCotGraph, the rowB/unrowB spelling mnv4_lossCot_is_smoothedCE_grad reads off the render) on its shard of the logits and targets with divisor B; the single-device step runs it on the whole R·N batch with divisor R·B. Then every all-reduced gradient the DP render emits IS the single-device node at batch R·N — the step mnv4_net_tiedB at N := R·N, g := that step's own smoothed-CE cotangent, ties to the certified gradient.