=== 1. Corrected root pairing ===
root Gram on S =
Matrix([[-2, 1], [1, -2]])
corrected descended root Gram =
Matrix([[2, -1], [-1, 2]])
p_*(c1(N_right)*xi) = -v_Z

=== 2. Visible block and corrected explicit lattice ===
Gvis det = 24
G0 det = 72

=== 3. Sextic del Pezzo Picard norm map ===
N(E1) = Matrix([[1, 0]])
Nfull =
Matrix([[2, 1, 1, 1], [1, 0, 0, 0]])
rank = 2
gcd root inclusion minors = 1
PASS: Pic(S) -> Pic(F) is surjective with primitive A2(-1) kernel.

=== 4. Relative v_Z direction ===
deg v|Ci = -1
pairing defining N(v) = 0
PASS: N(v_Z)=0.

=== 5. Corrected v_Z self-check ===
descended v self = 2
(sigma2-sigma11)^2 = 2

=== 6. Right-base coefficient of visible classes ===
int tilde sigma11*hbar^3 = 24
int tilde sigma2*hbar^3 = 24
alpha*hbar^3 = 8
right-base coefficient sigma11 = 3
right-base coefficient sigma2 = 3
PASS: explicit visible+root lattice has exact index 3.

=== 7. Saturated determinant ===
explicit det = 72
index = 3
saturated det = 8

=== 8. Enumerate integral index-3 overlattices ===
order-3 dual representatives with integral norm:
((1, 1, 1, 2), 8)
((1, 1, 2, 1), 8)
((2, 2, 1, 2), 30)
((2, 2, 2, 1), 30)
The two order-3 subgroups are exchanged by the A2 root symmetry.

=== 9. Build saturated Gram matrix ===
Gfull =
Matrix([[20, 16, 0, 12], [16, 14, 0, 10], [0, 0, 2, 1], [12, 10, 1, 8]])
det = 8
SNF =
Matrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 2, 0], [0, 0, 0, 4]])

=== 10. Identify A1 + A3 ===
det(U) = 1
U^T Gfull U =
Matrix([[2, 0, 0, 0], [0, 2, -1, 0], [0, -1, 2, -1], [0, 0, -1, 2]])
PASS: saturated inherited lattice is A1 + A3.

=== 11. K3^[2] determinant gate ===
formal determinant possibilities = [(2, 1, 4), (8, 2, 16)]
after divisibility congruence = [(2, 1, 4)]

=== 12. Finite discriminant-form gate ===
c5 order-4 q-values = [Fraction(3, 4), Fraction(3, 4), Fraction(5, 4), Fraction(5, 4)]
K3[2] order-4 q-values = [Fraction(5, 4), Fraction(5, 4), Fraction(7, 4), Fraction(7, 4)]
PASS: finite discriminant forms are not isomorphic.

ALL ROUND-24 EXACT CHECKS PASSED.
Spreadsheet runtime warmup failed during python startup
Traceback (most recent call last):
  File "/tmp/tmp.L2TH2Y5coc/artifact_tool_v2-2.8.22/artifact_tool/patches/warm_spreadsheet_runtime_on_startup.py", line 26, in warm_spreadsheet_runtime_on_startup
  File "/tmp/tmp.L2TH2Y5coc/artifact_tool_v2-2.8.22/artifact_tool/spreadsheet_warmup.py", line 785, in warm_spreadsheet_runtime
  File "/tmp/tmp.L2TH2Y5coc/artifact_tool_v2-2.8.22/artifact_tool/spreadsheet_warmup.py", line 720, in _warm_feature_flows
  File "/tmp/tmp.L2TH2Y5coc/artifact_tool_v2-2.8.22/artifact_tool/spreadsheet_warmup.py", line 704, in _warm_collaboration_flows
  File "/tmp/tmp.L2TH2Y5coc/artifact_tool_v2-2.8.22/artifact_tool/generated/interface/models.py", line 32317, in hydrate_crdt_from_proto
  File "/tmp/tmp.L2TH2Y5coc/artifact_tool_v2-2.8.22/artifact_tool/rpc/remote.py", line 749, in __call__
  File "/tmp/tmp.L2TH2Y5coc/artifact_tool_v2-2.8.22/artifact_tool/rpc/client.py", line 150, in call
artifact_tool.rpc.client.RemoteError: hydrateCrdtFromProto requires an empty collaborative document.
