#!/bin/sh fetch -q -o /tmp/p.tgz https://files.pythonhosted.org/packages/source/p/pycosat/pycosat-0.6.6.tar.gz;tar -xzf /tmp/p.tgz -C /tmp;cd /tmp/pycosat-0.6.6;python3 setup.py build -q >/dev/null 2>/dev/null;PYTHONPATH=$(echo build/lib.*) python3 - <<'PY' import pycosat as pc,time n=112;C=[[1]];F=[[] for i in range(2*n+1)];z=n for u in range(2,n+1): for v in range(u,n+1): s=u*v if s>2*n:break if u==v:F[s].append(u) else: z+=1;F[s].append(z);C.extend(([-z,u],[-z,v])) for a in range(1,n+1): for b in range(a,n+1): s=a+b if s>112:continue C.append([-a,-b]+([s] if s<=n else [])+F[s]) t=time.time();print('pairs 113 unsat with both absent',[(a,113-a) for a in range(1,57) if pc.solve(C+[[-a],[-(113-a)]])=='UNSAT'],round(time.time()-t,2),flush=True) print('forced true',[i for i in range(1,113) if pc.solve(C+[[-i]])=='UNSAT'],round(time.time()-t,2),flush=True) PY