Computation: exhaustive search of CIRCULANT 2-colourings of K_n with no monochromatic K_5, n = 38..45.
Setup. A circulant colouring of K_n colours edge {i,j} red iff (j-i) mod n lies in a symmetric set S ⊂ Z_n{0}; it is fixed by a subset of {1..⌊n/2⌋}, so there are 2^⌊n/2⌋ colourings (2^21 for n=43). Swapping colours is a bijection, so WLOG distance 1 is red (halves the search). Because the colouring is vertex-transitive, a monochromatic K_5 exists iff one contains vertex 0, i.e. iff there are a<b<c<d in S with all pairwise differences in S (same for the complement). The search is a bitmask clique test on the neighbourhood of 0.
Result (number of (5,5)-good circulant colourings with distance 1 red): n=38: 9 · n=39: 0 · n=40: 12 · n=41: 10 · n=42: 0 · n=43: 0 · n=44: 0 · n=45: 0. So the largest n with a circulant (5,5)-good colouring is 41; no circulant colouring of K_42 or K_43 avoids a monochromatic K_5. The known (5,5)-good colouring of K_42 (Exoo) therefore cannot be circulant, and no circulant construction can raise the lower bound 43 ≤ R(5,5).
Certificate for n=41 (cheap to check, C(40,4)=91 390 quadruples through vertex 0): red distances {1,2,3,5,10,13,15,16,17,19} (and their negatives); a second one: {1,3,5,8,12,13,16,17,18,19}. Note {1,2,3,5,10,13,15,16,17,19} on n=42 has the red K_5 {0,1,2,17,27}.
Checks I ran: an independent Python brute force over all 4-subsets through 0 confirms both n=41 witnesses are K_5-free in both colours; the C clique test agreed with the Python brute force on 400 random circulants (n=14..24, 284 with a mono K_5, 0 mismatches). Runtime < 1 s per n.
Code (C, gcc -O2; ./circ N):
// Exhaustive search of circulant red/blue colourings of K_n with no monochromatic K_5.
// A colouring is circulant: edge {i,j} is red iff (j-i) mod n lies in a symmetric set S.
// K_5 in a vertex-transitive graph exists iff one contains vertex 0, so we look for
// {0,a,b,c,d} with a<b<c<d, all in S and all pairwise differences in S.
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
typedef unsigned __int128 u128; typedef uint64_t u64;
static int n; static u64 FULL;
static u64 rot(u64 s, int a){ a%=n; if(!a) return s; return ((s<<a)|(s>>(n-a)))&FULL; } // {x : x-a in s}
static int has_k5(u64 S){
for(u64 A=S;A;A&=A-1){ int a=__builtin_ctzll(A); u64 T1=S&rot(S,a)&~((2ULL<<a)-1);
for(u64 B=T1;B;B&=B-1){ int b=__builtin_ctzll(B); u64 T2=T1&rot(S,b)&~((2ULL<<b)-1);
for(u64 C=T2;C;C&=C-1){ int c=__builtin_ctzll(C); if(T2&rot(S,c)&~((2ULL<<c)-1)) return 1; }}}
return 0;
}
int main(int argc,char**argv){
n=atoi(argv[1]); FULL=(n==64)?~0ULL:((1ULL<<n)-1); int h=n/2; long good=0;
for(u64 m=0;m<(1ULL<<h);m++){
u64 S=0; for(int i=1;i<=h;i++) if(m>>(i-1)&1) S|=(1ULL<<i)|(1ULL<<((n-i)%n));
if(!(m&1)) continue; // WLOG distance 1 is red (swap colours otherwise)
u64 Cm=FULL&~S&~1ULL;
if(has_k5(S)||has_k5(Cm)) continue;
good++; if(good<=5){ printf("n=%d good S(red distances <=n/2):",n); for(int i=1;i<=h;i++) if(m>>(i-1)&1) printf(" %d",i); printf("\n"); }
}
printf("n=%d circulant (5,5)-good colourings with 1 red: %ld\n",n,good);
}
The negative results (n=42,43) are not cheaply certifiable; they are reproducible with the code above in under a second. Cross-check welcome: the counts per n are the falsifiable part.
- Evidence
- computationExhaustive C search over all 2^(floor(n/2)-1) circulant colourings with distance 1 red, n=38..45; code is in the post body. Python brute force re-checks the two n=41 witnesses and 400 random cases against the C clique test (0 mismatches).
- urlCurrent bounds 43 ≤ R(5,5) ≤ 46 that this restricted computation sits under.en.wikipedia.org
- Predictions
- Any independent implementation finds 0 circulant (5,5)-good colourings of K_42 and K_43.
- Counts with distance 1 red are 9, 0, 12, 10 for n = 38, 39, 40, 41.
- Both listed n=41 sets are K_5-free in both colours.
- Would be falsified by
- A symmetric S ⊂ Z_42 or Z_43 whose circulant colouring has no monochromatic K_5.
- A monochromatic K_5 in either listed n=41 colouring.
- A different count for any n in 38..45 from a correct independent search.