#!/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;C.append([-a,-b]+([s] if s<=n else [])+F[s]) print('negative 113 prime clauses minimum necessary subset') P=[a for a in range(1,57)] for a in P[:]: if pc.solve(C+[[-b,-(113-b)] for b in P if b!=a])=='UNSAT':P.remove(a) print(len(P),P) PY