Character-free certificates for 19 <= n <= 24 (certificates (ii) of the note), produced by
verification run B with programs/vb_certgen.py (seed 1).  They are NOT included in this package
because of their size (61,617,507 bytes compressed, 380,539,538 bytes uncompressed); they are
regenerated as described below.  Credit: independent verification run B (AI-assisted).

Format: one JSON object per line, {"n": n, "C": [type, s], "pairs": [[K, L, x, c], ...]}, with x, c
permutations of {0, ..., n-1} (lists of images), (x c)(i) = x(c(i)), x in K, c in C, x c in L, and
K -> L a permutation of the classes of A_n (labels as in check_note.py).  One line for every
non-identity class C; k(A_n) pairs per line.

file                   pairs     gz bytes    SHA-256 of the .gz file (as produced by run B)
vb_cert_n19.jsonl.gz    64,262    1,974,670   ab5e7b6993df08cbd47f3d8ebb4314aa5f99fe9dc16b3974ea258724288524cf
vb_cert_n20.jsonl.gz   104,652    3,399,817   7540e96aff834d546d4a4aaf2379dfcfecb4801e7a118b607182bc0806c2a487
vb_cert_n21.jsonl.gz   166,056    5,685,084   8524acabd3f43329a9513ef9a952d79b47641667bb4569c595e3ba371266b296
vb_cert_n22.jsonl.gz   262,656    9,474,024   a796ecbabdfbc9b68834637e808ca61d585fb04b4f0e2ef82ae3d8b9ee11a829
vb_cert_n23.jsonl.gz   410,240   15,523,695   eed5f600566c9f1ff6815b65189fc99ed4a67fc08c71f5bbc61ffa846168eec0
vb_cert_n24.jsonl.gz   645,612   25,560,217   e6b80fcb414c440704ca756b9d64ff54a503182f69fb1a9119b9672b36b24d84
total                1,653,478   61,617,507

The gzip header contains a time stamp, so a regenerated .gz file has a different SHA-256.  Compare the
decompressed content instead (gzip -dc FILE | shasum -a 256):

content                uncompressed bytes   SHA-256 of the decompressed content
vb_cert_n19.jsonl       12,534,703          b0f4ab59b5d386706efc933f5dce44cadf84951a3253eb6200efc6072fc7ec67
vb_cert_n20.jsonl       21,404,908          8fc17402ed8df6b664e25a460c549e9f3556ae2ceb16107da388c0a8a505a984
vb_cert_n21.jsonl       35,553,031          b01ff80d4b8c46c5d9e94d2b62356202efc0d961ce3fb30d14964e4258709821
vb_cert_n22.jsonl       58,743,136          017dbedc2037b960d7a8d3eea0d8375c091a14c39e896947bba7af2010baa253
vb_cert_n23.jsonl       95,665,589          8f2e31a77bc882116e23889ff2084c11aff8242c379ba93e5beb05f198fef090
vb_cert_n24.jsonl      156,638,171          e739c9f8f2fa0856d349c233b1f04aa8121b551084c019d1935f881d23124c75

Regeneration (from programs/, NumPy and SciPy; recorded run times 35 s, 70 s, 124 s, 219 s, 389 s,
797 s for n = 19..24):
  python -I vb_thmA.py 19 24 THMA_DIR          # exact supports (used only as a search guide; about 2 min)
  python -I vb_certgen.py 19 vb_cert_n19.jsonl.gz THMA_DIR 1     # and likewise for n = 20, ..., 24
The generator found every certificate by random search alone (0 targeted edges, 0 fallback rounds;
outputs/vb_certgen_log_n19_24.txt), so the exact supports never influenced the result.  On 2026-10-23
the files for n = 19 and n = 20 were regenerated with NumPy 2.5.2 and SciPy 1.18.1 and had the
decompressed SHA-256 above (../../RERUN_LOG.txt).

Checking (each needs only permutation products and the class test):
  python -I vb_certcheck.py vb_cert_n19.jsonl.gz ...              (run B's checker; it reads .gz files)
  python3 -I ../../check_note.py --certs-extra DIR                 (standard library; DIR holds the files)
  python -I ../../../original/scripts/verify_cert.py FILE.jsonl    (the note's checker; decompress first)
Recorded results: outputs/vb_own_certs_check_n19_23_out.txt, outputs/vb_own_certs_check_n24_out.txt,
outputs/claim_verify_cert_on_own_certs_n19_24.txt, and ../../check_note_certs_extra_n19_24_output.txt
(all 1,653,478 pairs valid; every non-identity class of A_n certified for each n).
