satzilla 0.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (409) hide show
  1. satzilla-0.0.1/MANIFEST.in +16 -0
  2. satzilla-0.0.1/PKG-INFO +99 -0
  3. satzilla-0.0.1/README.md +90 -0
  4. satzilla-0.0.1/pyproject.toml +16 -0
  5. satzilla-0.0.1/satzilla.egg-info/PKG-INFO +99 -0
  6. satzilla-0.0.1/satzilla.egg-info/SOURCES.txt +407 -0
  7. satzilla-0.0.1/satzilla.egg-info/dependency_links.txt +1 -0
  8. satzilla-0.0.1/satzilla.egg-info/not-zip-safe +1 -0
  9. satzilla-0.0.1/satzilla.egg-info/requires.txt +3 -0
  10. satzilla-0.0.1/satzilla.egg-info/top_level.txt +1 -0
  11. satzilla-0.0.1/satzilla_features/__init__.py +15 -0
  12. satzilla-0.0.1/satzilla_features/api.py +315 -0
  13. satzilla-0.0.1/satzilla_features/py.typed +1 -0
  14. satzilla-0.0.1/setup.cfg +4 -0
  15. satzilla-0.0.1/setup.py +49 -0
  16. satzilla-0.0.1/src/BinSolver.cc +179 -0
  17. satzilla-0.0.1/src/BinSolver.h +38 -0
  18. satzilla-0.0.1/src/BuildSolvers.cc +62 -0
  19. satzilla-0.0.1/src/Makefile +83 -0
  20. satzilla-0.0.1/src/SATinstance.cc +4108 -0
  21. satzilla-0.0.1/src/SATinstance.h +203 -0
  22. satzilla-0.0.1/src/VARSAT/Alg.h +58 -0
  23. satzilla-0.0.1/src/VARSAT/BasicHeap.h +99 -0
  24. satzilla-0.0.1/src/VARSAT/BoxedVec.h +148 -0
  25. satzilla-0.0.1/src/VARSAT/Heap.h +170 -0
  26. satzilla-0.0.1/src/VARSAT/Main.C +332 -0
  27. satzilla-0.0.1/src/VARSAT/Main.h +25 -0
  28. satzilla-0.0.1/src/VARSAT/Makefile +25 -0
  29. satzilla-0.0.1/src/VARSAT/Map.h +119 -0
  30. satzilla-0.0.1/src/VARSAT/Queue.h +83 -0
  31. satzilla-0.0.1/src/VARSAT/Solver.C +1743 -0
  32. satzilla-0.0.1/src/VARSAT/Solver.h +429 -0
  33. satzilla-0.0.1/src/VARSAT/SolverTypes.h +211 -0
  34. satzilla-0.0.1/src/VARSAT/Sort.h +94 -0
  35. satzilla-0.0.1/src/VARSAT/Vec.h +134 -0
  36. satzilla-0.0.1/src/VARSAT/depend.mk +16 -0
  37. satzilla-0.0.1/src/VARSAT/mtl/Alg.h +58 -0
  38. satzilla-0.0.1/src/VARSAT/mtl/BasicHeap.h +99 -0
  39. satzilla-0.0.1/src/VARSAT/mtl/BoxedVec.h +148 -0
  40. satzilla-0.0.1/src/VARSAT/mtl/Heap.h +170 -0
  41. satzilla-0.0.1/src/VARSAT/mtl/Map.h +119 -0
  42. satzilla-0.0.1/src/VARSAT/mtl/Queue.h +83 -0
  43. satzilla-0.0.1/src/VARSAT/mtl/Sort.h +94 -0
  44. satzilla-0.0.1/src/VARSAT/mtl/Vec.h +134 -0
  45. satzilla-0.0.1/src/VARSAT/mtl/pstdint.h +729 -0
  46. satzilla-0.0.1/src/VARSAT/mtl/template.mk +93 -0
  47. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/ChangeLog +855 -0
  48. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/FAQ +339 -0
  49. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/INDEX +51 -0
  50. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/Makefile +154 -0
  51. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/Makefile.in +154 -0
  52. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/README +125 -0
  53. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/adler32.c +149 -0
  54. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/algorithm.txt +209 -0
  55. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/amiga/Makefile.pup +66 -0
  56. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/amiga/Makefile.sas +65 -0
  57. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/as400/bndsrc +132 -0
  58. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/as400/compile.clp +123 -0
  59. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/as400/readme.txt +111 -0
  60. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/as400/zlib.inc +331 -0
  61. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/compress.c +79 -0
  62. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/configure +459 -0
  63. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/README.contrib +71 -0
  64. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/ada/buffer_demo.adb +106 -0
  65. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/ada/mtest.adb +156 -0
  66. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/ada/read.adb +156 -0
  67. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/ada/readme.txt +65 -0
  68. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/ada/test.adb +463 -0
  69. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/ada/zlib-streams.adb +225 -0
  70. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/ada/zlib-streams.ads +114 -0
  71. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/ada/zlib-thin.adb +141 -0
  72. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/ada/zlib-thin.ads +450 -0
  73. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/ada/zlib.adb +701 -0
  74. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/ada/zlib.ads +328 -0
  75. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/ada/zlib.gpr +20 -0
  76. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/asm586/README.586 +43 -0
  77. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/asm586/match.S +364 -0
  78. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/asm686/README.686 +34 -0
  79. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/asm686/match.S +329 -0
  80. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/blast/Makefile +8 -0
  81. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/blast/README +4 -0
  82. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/blast/blast.c +444 -0
  83. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/blast/blast.h +71 -0
  84. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/blast/test.pk +0 -0
  85. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/blast/test.txt +1 -0
  86. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/delphi/ZLib.pas +557 -0
  87. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/delphi/ZLibConst.pas +11 -0
  88. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/delphi/readme.txt +76 -0
  89. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/delphi/zlibd32.mak +93 -0
  90. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/dotzlib/DotZLib/AssemblyInfo.cs +58 -0
  91. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/dotzlib/DotZLib/ChecksumImpl.cs +202 -0
  92. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/dotzlib/DotZLib/CircularBuffer.cs +83 -0
  93. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/dotzlib/DotZLib/CodecBase.cs +198 -0
  94. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/dotzlib/DotZLib/Deflater.cs +106 -0
  95. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/dotzlib/DotZLib/DotZLib.cs +288 -0
  96. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/dotzlib/DotZLib/DotZLib.csproj +141 -0
  97. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/dotzlib/DotZLib/GZipStream.cs +301 -0
  98. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/dotzlib/DotZLib/Inflater.cs +105 -0
  99. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/dotzlib/DotZLib/UnitTests.cs +274 -0
  100. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/dotzlib/DotZLib.build +33 -0
  101. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/dotzlib/DotZLib.chm +0 -0
  102. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/dotzlib/DotZLib.sln +21 -0
  103. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/dotzlib/LICENSE_1_0.txt +23 -0
  104. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/dotzlib/readme.txt +58 -0
  105. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/infback9/README +1 -0
  106. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/infback9/infback9.c +608 -0
  107. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/infback9/infback9.h +37 -0
  108. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/infback9/inffix9.h +107 -0
  109. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/infback9/inflate9.h +47 -0
  110. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/infback9/inftree9.c +323 -0
  111. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/infback9/inftree9.h +55 -0
  112. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/inflate86/inffas86.c +1157 -0
  113. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/inflate86/inffast.S +1368 -0
  114. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/iostream/test.cpp +24 -0
  115. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/iostream/zfstream.cpp +329 -0
  116. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/iostream/zfstream.h +128 -0
  117. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/iostream2/zstream.h +307 -0
  118. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/iostream2/zstream_test.cpp +25 -0
  119. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/iostream3/README +35 -0
  120. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/iostream3/TODO +17 -0
  121. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/iostream3/test.cc +50 -0
  122. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/iostream3/zfstream.cc +479 -0
  123. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/iostream3/zfstream.h +466 -0
  124. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/masm686/match.asm +413 -0
  125. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/masmx64/bld_ml64.bat +2 -0
  126. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/masmx64/gvmat64.asm +513 -0
  127. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/masmx64/gvmat64.obj +0 -0
  128. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/masmx64/inffas8664.c +186 -0
  129. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/masmx64/inffasx64.asm +392 -0
  130. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/masmx64/inffasx64.obj +0 -0
  131. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/masmx64/readme.txt +28 -0
  132. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/masmx86/bld_ml32.bat +2 -0
  133. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/masmx86/gvmat32.asm +972 -0
  134. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/masmx86/gvmat32.obj +0 -0
  135. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/masmx86/gvmat32c.c +62 -0
  136. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/masmx86/inffas32.asm +1083 -0
  137. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/masmx86/inffas32.obj +0 -0
  138. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/masmx86/mkasm.bat +3 -0
  139. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/masmx86/readme.txt +21 -0
  140. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/minizip/ChangeLogUnzip +67 -0
  141. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/minizip/Makefile +25 -0
  142. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/minizip/crypt.h +132 -0
  143. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/minizip/ioapi.c +177 -0
  144. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/minizip/ioapi.h +75 -0
  145. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/minizip/iowin32.c +270 -0
  146. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/minizip/iowin32.h +21 -0
  147. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/minizip/miniunz.c +585 -0
  148. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/minizip/minizip.c +420 -0
  149. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/minizip/mztools.c +281 -0
  150. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/minizip/mztools.h +31 -0
  151. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/minizip/unzip.c +1598 -0
  152. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/minizip/unzip.h +354 -0
  153. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/minizip/zip.c +1219 -0
  154. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/minizip/zip.h +235 -0
  155. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/pascal/example.pas +599 -0
  156. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/pascal/readme.txt +76 -0
  157. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/pascal/zlibd32.mak +93 -0
  158. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/pascal/zlibpas.pas +236 -0
  159. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/puff/Makefile +8 -0
  160. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/puff/README +63 -0
  161. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/puff/puff.c +837 -0
  162. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/puff/puff.h +31 -0
  163. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/puff/zeros.raw +0 -0
  164. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/testzlib/testzlib.c +275 -0
  165. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/testzlib/testzlib.txt +10 -0
  166. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/untgz/Makefile +14 -0
  167. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/untgz/Makefile.msc +17 -0
  168. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/untgz/untgz.c +674 -0
  169. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/vstudio/readme.txt +73 -0
  170. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/vstudio/vc7/miniunz.vcproj +126 -0
  171. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/vstudio/vc7/minizip.vcproj +126 -0
  172. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/vstudio/vc7/testzlib.vcproj +126 -0
  173. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/vstudio/vc7/zlib.rc +32 -0
  174. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/vstudio/vc7/zlibstat.vcproj +246 -0
  175. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/vstudio/vc7/zlibvc.def +92 -0
  176. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/vstudio/vc7/zlibvc.sln +78 -0
  177. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/vstudio/vc7/zlibvc.vcproj +445 -0
  178. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/vstudio/vc8/miniunz.vcproj +566 -0
  179. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/vstudio/vc8/minizip.vcproj +563 -0
  180. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/vstudio/vc8/testzlib.vcproj +948 -0
  181. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/vstudio/vc8/testzlibdll.vcproj +567 -0
  182. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/vstudio/vc8/zlib.rc +32 -0
  183. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/vstudio/vc8/zlibstat.vcproj +870 -0
  184. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/vstudio/vc8/zlibvc.def +92 -0
  185. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/vstudio/vc8/zlibvc.sln +144 -0
  186. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/contrib/vstudio/vc8/zlibvc.vcproj +1219 -0
  187. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/crc32.c +423 -0
  188. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/crc32.h +441 -0
  189. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/deflate.c +1736 -0
  190. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/deflate.h +331 -0
  191. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/example.c +565 -0
  192. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/examples/README.examples +42 -0
  193. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/examples/fitblk.c +233 -0
  194. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/examples/gun.c +693 -0
  195. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/examples/gzappend.c +500 -0
  196. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/examples/gzjoin.c +448 -0
  197. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/examples/gzlog.c +413 -0
  198. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/examples/gzlog.h +58 -0
  199. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/examples/zlib_how.html +523 -0
  200. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/examples/zpipe.c +191 -0
  201. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/examples/zran.c +404 -0
  202. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/gzio.c +1026 -0
  203. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/infback.c +623 -0
  204. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/inffast.c +318 -0
  205. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/inffast.h +11 -0
  206. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/inffixed.h +94 -0
  207. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/inflate.c +1368 -0
  208. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/inflate.h +115 -0
  209. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/inftrees.c +329 -0
  210. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/inftrees.h +55 -0
  211. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/make_vms.com +461 -0
  212. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/minigzip.c +322 -0
  213. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/msdos/Makefile.bor +109 -0
  214. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/msdos/Makefile.dj2 +104 -0
  215. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/msdos/Makefile.emx +69 -0
  216. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/msdos/Makefile.msc +106 -0
  217. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/msdos/Makefile.tc +94 -0
  218. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/old/Makefile.riscos +151 -0
  219. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/old/README +3 -0
  220. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/old/descrip.mms +48 -0
  221. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/old/os2/Makefile.os2 +136 -0
  222. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/old/os2/zlib.def +51 -0
  223. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/old/visual-basic.txt +160 -0
  224. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/old/zlib.html +971 -0
  225. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/projects/README.projects +41 -0
  226. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/projects/visualc6/README.txt +73 -0
  227. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/projects/visualc6/example.dsp +278 -0
  228. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/projects/visualc6/minigzip.dsp +278 -0
  229. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/projects/visualc6/zlib.dsp +609 -0
  230. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/projects/visualc6/zlib.dsw +59 -0
  231. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/qnx/package.qpg +141 -0
  232. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/trees.c +1219 -0
  233. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/trees.h +128 -0
  234. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/uncompr.c +61 -0
  235. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/win32/DLL_FAQ.txt +397 -0
  236. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/win32/Makefile.bor +107 -0
  237. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/win32/Makefile.emx +69 -0
  238. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/win32/Makefile.gcc +141 -0
  239. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/win32/Makefile.msc +126 -0
  240. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/win32/VisualC.txt +3 -0
  241. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/win32/zlib.def +60 -0
  242. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/win32/zlib1.rc +39 -0
  243. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/zconf.h +332 -0
  244. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/zconf.in.h +332 -0
  245. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/zlib.3 +159 -0
  246. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/zlib.h +1357 -0
  247. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/zutil.c +318 -0
  248. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3/zutil.h +269 -0
  249. satzilla-0.0.1/src/VARSAT/mtl/zlib-1.2.3.tar +0 -0
  250. satzilla-0.0.1/src/VARSAT/pstdint.h +729 -0
  251. satzilla-0.0.1/src/extractor_core.cc +492 -0
  252. satzilla-0.0.1/src/extractor_core.h +49 -0
  253. satzilla-0.0.1/src/features.cc +210 -0
  254. satzilla-0.0.1/src/featuresSAT12 +0 -0
  255. satzilla-0.0.1/src/global.h +72 -0
  256. satzilla-0.0.1/src/lp_solve_5.0/CITATIONS.txt +10 -0
  257. satzilla-0.0.1/src/lp_solve_5.0/colamd/colamd.c +3469 -0
  258. satzilla-0.0.1/src/lp_solve_5.0/colamd/colamd.h +270 -0
  259. satzilla-0.0.1/src/lp_solve_5.0/colamd/readme.txt +1 -0
  260. satzilla-0.0.1/src/lp_solve_5.0/commonlib.c +429 -0
  261. satzilla-0.0.1/src/lp_solve_5.0/commonlib.h +158 -0
  262. satzilla-0.0.1/src/lp_solve_5.0/declare.h +22 -0
  263. satzilla-0.0.1/src/lp_solve_5.0/demo/ccc +14 -0
  264. satzilla-0.0.1/src/lp_solve_5.0/demo/cgcc.bat +15 -0
  265. satzilla-0.0.1/src/lp_solve_5.0/demo/cvc6.bat +10 -0
  266. satzilla-0.0.1/src/lp_solve_5.0/demo/demo.c +263 -0
  267. satzilla-0.0.1/src/lp_solve_5.0/demo/demo.sln +21 -0
  268. satzilla-0.0.1/src/lp_solve_5.0/demo/demo.suo +0 -0
  269. satzilla-0.0.1/src/lp_solve_5.0/demo/demo.vcproj +216 -0
  270. satzilla-0.0.1/src/lp_solve_5.0/demo/demolib.sln +21 -0
  271. satzilla-0.0.1/src/lp_solve_5.0/demo/demolib.suo +0 -0
  272. satzilla-0.0.1/src/lp_solve_5.0/demo/demolib.vcproj +148 -0
  273. satzilla-0.0.1/src/lp_solve_5.0/demo/readme.txt +5 -0
  274. satzilla-0.0.1/src/lp_solve_5.0/distrib.txt +2 -0
  275. satzilla-0.0.1/src/lp_solve_5.0/fortify.c +1527 -0
  276. satzilla-0.0.1/src/lp_solve_5.0/fortify.h +129 -0
  277. satzilla-0.0.1/src/lp_solve_5.0/lp_BFP.h +73 -0
  278. satzilla-0.0.1/src/lp_solve_5.0/lp_BFP1.c +150 -0
  279. satzilla-0.0.1/src/lp_solve_5.0/lp_BFP2.c +161 -0
  280. satzilla-0.0.1/src/lp_solve_5.0/lp_Hash.c +187 -0
  281. satzilla-0.0.1/src/lp_solve_5.0/lp_Hash.h +41 -0
  282. satzilla-0.0.1/src/lp_solve_5.0/lp_LUMOD.c +612 -0
  283. satzilla-0.0.1/src/lp_solve_5.0/lp_LUMOD.h +52 -0
  284. satzilla-0.0.1/src/lp_solve_5.0/lp_LUSOL.c +528 -0
  285. satzilla-0.0.1/src/lp_solve_5.0/lp_LUSOL.h +60 -0
  286. satzilla-0.0.1/src/lp_solve_5.0/lp_MDO.c +233 -0
  287. satzilla-0.0.1/src/lp_solve_5.0/lp_MDO.h +17 -0
  288. satzilla-0.0.1/src/lp_solve_5.0/lp_MPS.c +1367 -0
  289. satzilla-0.0.1/src/lp_solve_5.0/lp_MPS.h +28 -0
  290. satzilla-0.0.1/src/lp_solve_5.0/lp_MathProg.c +265 -0
  291. satzilla-0.0.1/src/lp_solve_5.0/lp_MathProg.h +20 -0
  292. satzilla-0.0.1/src/lp_solve_5.0/lp_SOS.c +1215 -0
  293. satzilla-0.0.1/src/lp_solve_5.0/lp_SOS.h +84 -0
  294. satzilla-0.0.1/src/lp_solve_5.0/lp_XLI.h +32 -0
  295. satzilla-0.0.1/src/lp_solve_5.0/lp_XLI1.c +22 -0
  296. satzilla-0.0.1/src/lp_solve_5.0/lp_XLI2.c +24 -0
  297. satzilla-0.0.1/src/lp_solve_5.0/lp_crash.c +201 -0
  298. satzilla-0.0.1/src/lp_solve_5.0/lp_crash.h +25 -0
  299. satzilla-0.0.1/src/lp_solve_5.0/lp_etaPFI.c +1050 -0
  300. satzilla-0.0.1/src/lp_solve_5.0/lp_etaPFI.h +72 -0
  301. satzilla-0.0.1/src/lp_solve_5.0/lp_fortify.h +1 -0
  302. satzilla-0.0.1/src/lp_solve_5.0/lp_glpkLU.c +294 -0
  303. satzilla-0.0.1/src/lp_solve_5.0/lp_glpkLU.h +79 -0
  304. satzilla-0.0.1/src/lp_solve_5.0/lp_lib.c +7841 -0
  305. satzilla-0.0.1/src/lp_solve_5.0/lp_lib.h +1997 -0
  306. satzilla-0.0.1/src/lp_solve_5.0/lp_matrix.c +1924 -0
  307. satzilla-0.0.1/src/lp_solve_5.0/lp_matrix.h +154 -0
  308. satzilla-0.0.1/src/lp_solve_5.0/lp_mipbb.c +1108 -0
  309. satzilla-0.0.1/src/lp_solve_5.0/lp_mipbb.h +59 -0
  310. satzilla-0.0.1/src/lp_solve_5.0/lp_presolve.c +1349 -0
  311. satzilla-0.0.1/src/lp_solve_5.0/lp_presolve.h +17 -0
  312. satzilla-0.0.1/src/lp_solve_5.0/lp_price.c +1010 -0
  313. satzilla-0.0.1/src/lp_solve_5.0/lp_price.h +64 -0
  314. satzilla-0.0.1/src/lp_solve_5.0/lp_pricePSE.c +492 -0
  315. satzilla-0.0.1/src/lp_solve_5.0/lp_pricePSE.h +27 -0
  316. satzilla-0.0.1/src/lp_solve_5.0/lp_report.c +599 -0
  317. satzilla-0.0.1/src/lp_solve_5.0/lp_report.h +33 -0
  318. satzilla-0.0.1/src/lp_solve_5.0/lp_rlp.bat +7 -0
  319. satzilla-0.0.1/src/lp_solve_5.0/lp_rlp.c +1512 -0
  320. satzilla-0.0.1/src/lp_solve_5.0/lp_rlp.h +1861 -0
  321. satzilla-0.0.1/src/lp_solve_5.0/lp_rlp.l +172 -0
  322. satzilla-0.0.1/src/lp_solve_5.0/lp_rlp.y +672 -0
  323. satzilla-0.0.1/src/lp_solve_5.0/lp_rlpt.bat +7 -0
  324. satzilla-0.0.1/src/lp_solve_5.0/lp_rlpt.c +1393 -0
  325. satzilla-0.0.1/src/lp_solve_5.0/lp_rlpt.h +1839 -0
  326. satzilla-0.0.1/src/lp_solve_5.0/lp_rlpt.l +160 -0
  327. satzilla-0.0.1/src/lp_solve_5.0/lp_rlpt.y +581 -0
  328. satzilla-0.0.1/src/lp_solve_5.0/lp_scale.c +900 -0
  329. satzilla-0.0.1/src/lp_solve_5.0/lp_scale.h +26 -0
  330. satzilla-0.0.1/src/lp_solve_5.0/lp_simplex.c +1509 -0
  331. satzilla-0.0.1/src/lp_solve_5.0/lp_simplex.h +24 -0
  332. satzilla-0.0.1/src/lp_solve_5.0/lp_solve/ccc +14 -0
  333. satzilla-0.0.1/src/lp_solve_5.0/lp_solve/cgcc.bat +10 -0
  334. satzilla-0.0.1/src/lp_solve_5.0/lp_solve/cvc6.bat +11 -0
  335. satzilla-0.0.1/src/lp_solve_5.0/lp_solve/lp_solve +0 -0
  336. satzilla-0.0.1/src/lp_solve_5.0/lp_solve/lp_solve.c +794 -0
  337. satzilla-0.0.1/src/lp_solve_5.0/lp_solve/lp_solve.sln +21 -0
  338. satzilla-0.0.1/src/lp_solve_5.0/lp_solve/lp_solve.suo +0 -0
  339. satzilla-0.0.1/src/lp_solve_5.0/lp_solve/lp_solve.vcproj +240 -0
  340. satzilla-0.0.1/src/lp_solve_5.0/lp_solve/readme.txt +5 -0
  341. satzilla-0.0.1/src/lp_solve_5.0/lp_solveDLL.c +13 -0
  342. satzilla-0.0.1/src/lp_solve_5.0/lp_solveDLL.h +24 -0
  343. satzilla-0.0.1/src/lp_solve_5.0/lp_types.h +172 -0
  344. satzilla-0.0.1/src/lp_solve_5.0/lp_utils.c +786 -0
  345. satzilla-0.0.1/src/lp_solve_5.0/lp_utils.h +85 -0
  346. satzilla-0.0.1/src/lp_solve_5.0/lp_wlp.c +245 -0
  347. satzilla-0.0.1/src/lp_solve_5.0/lp_wlp.h +20 -0
  348. satzilla-0.0.1/src/lp_solve_5.0/lp_wlpt.c +237 -0
  349. satzilla-0.0.1/src/lp_solve_5.0/lpkit.h +36 -0
  350. satzilla-0.0.1/src/lp_solve_5.0/lpsolve.h +24 -0
  351. satzilla-0.0.1/src/lp_solve_5.0/lpsolve5/ccc +24 -0
  352. satzilla-0.0.1/src/lp_solve_5.0/lpsolve5/cgcc.bat +17 -0
  353. satzilla-0.0.1/src/lp_solve_5.0/lpsolve5/cvc6.bat +21 -0
  354. satzilla-0.0.1/src/lp_solve_5.0/lpsolve5/dll.sln +24 -0
  355. satzilla-0.0.1/src/lp_solve_5.0/lpsolve5/dll.suo +0 -0
  356. satzilla-0.0.1/src/lp_solve_5.0/lpsolve5/dll.vcproj +286 -0
  357. satzilla-0.0.1/src/lp_solve_5.0/lpsolve5/lib.sln +14 -0
  358. satzilla-0.0.1/src/lp_solve_5.0/lpsolve5/lib.suo +0 -0
  359. satzilla-0.0.1/src/lp_solve_5.0/lpsolve5/lib.vcproj +248 -0
  360. satzilla-0.0.1/src/lp_solve_5.0/lpsolve5/lp_solve.def +217 -0
  361. satzilla-0.0.1/src/lp_solve_5.0/lpsolve5/lpsolve.rc +103 -0
  362. satzilla-0.0.1/src/lp_solve_5.0/lpsolve5/readme.txt +5 -0
  363. satzilla-0.0.1/src/lp_solve_5.0/lpsolve5/resource.h +15 -0
  364. satzilla-0.0.1/src/lp_solve_5.0/myblas.c +817 -0
  365. satzilla-0.0.1/src/lp_solve_5.0/myblas.h +129 -0
  366. satzilla-0.0.1/src/lp_solve_5.0/patchlevel.h +3 -0
  367. satzilla-0.0.1/src/lp_solve_5.0/readme.txt +280 -0
  368. satzilla-0.0.1/src/lp_solve_5.0/ufortify.h +63 -0
  369. satzilla-0.0.1/src/lp_solve_5.0/yacc_read.c +1085 -0
  370. satzilla-0.0.1/src/lp_solve_5.0/yacc_read.h +23 -0
  371. satzilla-0.0.1/src/model.h +360 -0
  372. satzilla-0.0.1/src/satzilla_Solvers/best[mean+cv],firstlmstep[mean+median+cv+q10+q90],bestavgimpr[mean+cv],firstlmratio[mean+cv],estacl +18 -0
  373. satzilla-0.0.1/src/satzilla_Solvers/cadical2023 +0 -0
  374. satzilla-0.0.1/src/satzilla_Solvers/kissatexe +0 -0
  375. satzilla-0.0.1/src/satzilla_Solvers/oo +17 -0
  376. satzilla-0.0.1/src/satzilla_Solvers/out +17 -0
  377. satzilla-0.0.1/src/satzilla_Solvers/satelite +0 -0
  378. satzilla-0.0.1/src/satzilla_Solvers/sbva +0 -0
  379. satzilla-0.0.1/src/satzilla_Solvers/sol +47 -0
  380. satzilla-0.0.1/src/satzilla_Solvers/ubcsat2006 +0 -0
  381. satzilla-0.0.1/src/satzilla_Solvers/ubcsatold +0 -0
  382. satzilla-0.0.1/src/satzilla_Solvers/yalsat-03v/FILES +14 -0
  383. satzilla-0.0.1/src/satzilla_Solvers/yalsat-03v/LICENSE +19 -0
  384. satzilla-0.0.1/src/satzilla_Solvers/yalsat-03v/README +12 -0
  385. satzilla-0.0.1/src/satzilla_Solvers/yalsat-03v/VERSION +1 -0
  386. satzilla-0.0.1/src/satzilla_Solvers/yalsat-03v/cflags.h +2 -0
  387. satzilla-0.0.1/src/satzilla_Solvers/yalsat-03v/config.c +25 -0
  388. satzilla-0.0.1/src/satzilla_Solvers/yalsat-03v/config.h +8 -0
  389. satzilla-0.0.1/src/satzilla_Solvers/yalsat-03v/configure.sh +61 -0
  390. satzilla-0.0.1/src/satzilla_Solvers/yalsat-03v/main.c +840 -0
  391. satzilla-0.0.1/src/satzilla_Solvers/yalsat-03v/makefile +28 -0
  392. satzilla-0.0.1/src/satzilla_Solvers/yalsat-03v/makefile.in +28 -0
  393. satzilla-0.0.1/src/satzilla_Solvers/yalsat-03v/mkconfig.sh +20 -0
  394. satzilla-0.0.1/src/satzilla_Solvers/yalsat-03v/palsat +0 -0
  395. satzilla-0.0.1/src/satzilla_Solvers/yalsat-03v/yals.c +4047 -0
  396. satzilla-0.0.1/src/satzilla_Solvers/yalsat-03v/yals.h +76 -0
  397. satzilla-0.0.1/src/satzilla_Solvers/yalsat-03v/yalsat +0 -0
  398. satzilla-0.0.1/src/satzilla_Solvers/yalsat-03v/yils.h +54 -0
  399. satzilla-0.0.1/src/satzilla_Solvers/yalsat-03v.zip +0 -0
  400. satzilla-0.0.1/src/satzilla_Solvers/zchaff07 +0 -0
  401. satzilla-0.0.1/src/satzilla_Solvers/zchaff_rand +0 -0
  402. satzilla-0.0.1/src/satzilla_c_api.cc +240 -0
  403. satzilla-0.0.1/src/satzilla_c_api.h +54 -0
  404. satzilla-0.0.1/src/stopwatch.cpp +111 -0
  405. satzilla-0.0.1/src/stopwatch.h +52 -0
  406. satzilla-0.0.1/src/tests/package_smoke.cnf +7 -0
  407. satzilla-0.0.1/src/tests/test_package.py +122 -0
  408. satzilla-0.0.1/src/tests/test_package_install.py +78 -0
  409. satzilla-0.0.1/src/tests/test_python_interface.py +127 -0
@@ -0,0 +1,16 @@
1
+ include README.md
2
+ include pyproject.toml
3
+ include setup.py
4
+
5
+ graft satzilla_features
6
+ graft src
7
+
8
+ # Exclude local build outputs and caches from source distributions.
9
+ prune src/obj
10
+ prune src/lp_solve_5.0/bin
11
+ global-exclude __pycache__
12
+ global-exclude *.py[cod]
13
+ global-exclude *.o
14
+ global-exclude *.so
15
+ global-exclude *.a
16
+ exclude src/features
@@ -0,0 +1,99 @@
1
+ Metadata-Version: 2.4
2
+ Name: satzilla
3
+ Version: 0.0.1
4
+ Summary: Python wrapper for the Revisiting SATZilla 2024 feature extractor
5
+ Requires-Python: >=3.9
6
+ Description-Content-Type: text/markdown
7
+ Provides-Extra: pysat
8
+ Requires-Dist: python-sat; extra == "pysat"
9
+
10
+
11
+ # Revisiting SATZilla in 2024
12
+
13
+
14
+ Code for the paper: "Revisiting SATZilla Features in 2024" by Hadar Shavit and Holger H. Hoos accepted to SAT 2024.
15
+
16
+ ## Abstract
17
+ Boolean satisfiability (SAT) is an $\mathcal{NP}$-complete problem with important applications, notably in hardware and software verification.
18
+ Characterising a SAT instance by a set of features has shown great potential for various tasks, ranging from algorithm selection to benchmark generation.
19
+ In this work, we revisit the widely used SATZilla features and introduce a new version of the tool used to compute them.
20
+ In particular, we utilise a new preprocessor and SAT solvers, adjust the code to accommodate larger formulas, and determine better settings of the feature extraction time limits.
21
+ We evaluate the extracted features on three downstream tasks: satisfiability prediction, running time prediction, and algorithm selection.
22
+ We observe that our new tool is able to extract features from a broader range of instances than before.
23
+ We show that the new version of the feature extractor produces features that achieve up to $25\%$ lower RMSE for running time prediction, up to $5\%$ higher accuracy for satisfiability prediction, and up to $80\%$ higher closed gap for algorithm selection on benchmarks from recent SAT competitions.
24
+
25
+
26
+ ## Usage
27
+ We provide precompiled binaries for the SATZilla feature extraction tool for linux. Currently the SATZilla features extractor supports only linux.
28
+
29
+ SAT-feature-computation code contains the new SATZilla feature extraction tool.
30
+
31
+ Recompile by running `make`, then the executable `features` will be created.
32
+
33
+ To run a package-level smoke test for the extractor, use `make test` inside `SAT-features-competition2024`.
34
+
35
+ To compute features, simply run `./features [--timeout SECONDS] [--group-timeout SECONDS] [--preprocess-timeout SECONDS] [-base] [-structure] [-ncnf-graphs] [-ncnf-constraints] [-ncnf-rwh] [-dia] [-ls] [-lp] [-lobjois] INFILE OUTFILE`
36
+ Where -lp, -dia etc are the feature groups:
37
+
38
+ - base: Base feature group, including pre, KLB, and clause graph
39
+ - structure: Structural features from SATfeatPy
40
+ - ncnf-graphs: New-CNF graph features
41
+ - ncnf-constraints: New-CNF constraint features
42
+ - ncnf-rwh: New-CNF recursive weight heuristic features
43
+ - dia: Diameter
44
+ - ls: Local search (both GSAT and Sparrow)
45
+ - lp: Linear programming
46
+ - lobjois: Lobjois
47
+ - cl: Clause learning
48
+ - unit: Unit propagation
49
+ - sp: Survey propagation
50
+
51
+ To compute all features use the -all option.
52
+ The input INFILE is a DIMACS CNF file. NOTE: currently, only raw CNF files are supported, and not compressed one (like .cnf.xz)
53
+ The output is a CSV file containing the features for one instance.
54
+
55
+ Timeout controls:
56
+ - `--timeout`: total extraction timeout
57
+ - `--group-timeout`: per-feature-group timeout override; timed-out groups emit reserved values and extraction continues with the next selected group
58
+ - `--preprocess-timeout`: timeout override for the preprocessing step
59
+
60
+ ## Python Interface
61
+ Install from PyPI:
62
+
63
+ ```bash
64
+ pip install satzilla
65
+ ```
66
+
67
+ An importable Python interface is available in the `satzilla_features` package. It accepts PySAT `CNF` formulas directly and
68
+ calls the extractor through a bundled shared library using `ctypes`; it does not shell out to the CLI.
69
+
70
+ PySAT documents that `pysat.formula.CNF` exposes `clauses` and `nv`, and supports DIMACS I/O:
71
+ https://pysathq.github.io/docs/html/api/formula.html
72
+
73
+ Example:
74
+
75
+ ```python
76
+ from pysat.formula import CNF
77
+ from satzilla_features import extract_features
78
+
79
+ cnf = CNF(from_clauses=[[-1, 2], [-2, 3], [1, 3]])
80
+ features = extract_features(
81
+ cnf,
82
+ groups=["base", "structure", "ncnf-graphs"],
83
+ group_timeout=180,
84
+ )
85
+ print(features["variable_alpha"])
86
+ ```
87
+
88
+ You can also extract directly from a CNF file path with `extract_features_from_path(...)`.
89
+ Both Python entry points accept `timeout=...`, `group_timeout=...`, and `preprocess_timeout=...`.
90
+
91
+ When building the Python package, the C/C++ extractor is compiled into `libsatzilla_features.so` and packaged together with the
92
+ solver binaries it needs at runtime. The direct Python interface is currently Linux-only.
93
+
94
+
95
+ ## Experiments
96
+ rt_pred.py contains the code for running time prediction. sat_pred.py contains the code for satisfiability prediction. Both are using submitit for execution on a SLURM cluster.
97
+ For algorithm selection, the scenarios are available in the aslib directory. The AutoFolio code is available at https://github.com/hadarshavit/AutoFolio.
98
+ ## Contact
99
+ To contact us, please send an email to [shavit@aim.rwth-aachen.de](mailto:shavit@aim.rwth-aachen.de)
@@ -0,0 +1,90 @@
1
+
2
+ # Revisiting SATZilla in 2024
3
+
4
+
5
+ Code for the paper: "Revisiting SATZilla Features in 2024" by Hadar Shavit and Holger H. Hoos accepted to SAT 2024.
6
+
7
+ ## Abstract
8
+ Boolean satisfiability (SAT) is an $\mathcal{NP}$-complete problem with important applications, notably in hardware and software verification.
9
+ Characterising a SAT instance by a set of features has shown great potential for various tasks, ranging from algorithm selection to benchmark generation.
10
+ In this work, we revisit the widely used SATZilla features and introduce a new version of the tool used to compute them.
11
+ In particular, we utilise a new preprocessor and SAT solvers, adjust the code to accommodate larger formulas, and determine better settings of the feature extraction time limits.
12
+ We evaluate the extracted features on three downstream tasks: satisfiability prediction, running time prediction, and algorithm selection.
13
+ We observe that our new tool is able to extract features from a broader range of instances than before.
14
+ We show that the new version of the feature extractor produces features that achieve up to $25\%$ lower RMSE for running time prediction, up to $5\%$ higher accuracy for satisfiability prediction, and up to $80\%$ higher closed gap for algorithm selection on benchmarks from recent SAT competitions.
15
+
16
+
17
+ ## Usage
18
+ We provide precompiled binaries for the SATZilla feature extraction tool for linux. Currently the SATZilla features extractor supports only linux.
19
+
20
+ SAT-feature-computation code contains the new SATZilla feature extraction tool.
21
+
22
+ Recompile by running `make`, then the executable `features` will be created.
23
+
24
+ To run a package-level smoke test for the extractor, use `make test` inside `SAT-features-competition2024`.
25
+
26
+ To compute features, simply run `./features [--timeout SECONDS] [--group-timeout SECONDS] [--preprocess-timeout SECONDS] [-base] [-structure] [-ncnf-graphs] [-ncnf-constraints] [-ncnf-rwh] [-dia] [-ls] [-lp] [-lobjois] INFILE OUTFILE`
27
+ Where -lp, -dia etc are the feature groups:
28
+
29
+ - base: Base feature group, including pre, KLB, and clause graph
30
+ - structure: Structural features from SATfeatPy
31
+ - ncnf-graphs: New-CNF graph features
32
+ - ncnf-constraints: New-CNF constraint features
33
+ - ncnf-rwh: New-CNF recursive weight heuristic features
34
+ - dia: Diameter
35
+ - ls: Local search (both GSAT and Sparrow)
36
+ - lp: Linear programming
37
+ - lobjois: Lobjois
38
+ - cl: Clause learning
39
+ - unit: Unit propagation
40
+ - sp: Survey propagation
41
+
42
+ To compute all features use the -all option.
43
+ The input INFILE is a DIMACS CNF file. NOTE: currently, only raw CNF files are supported, and not compressed one (like .cnf.xz)
44
+ The output is a CSV file containing the features for one instance.
45
+
46
+ Timeout controls:
47
+ - `--timeout`: total extraction timeout
48
+ - `--group-timeout`: per-feature-group timeout override; timed-out groups emit reserved values and extraction continues with the next selected group
49
+ - `--preprocess-timeout`: timeout override for the preprocessing step
50
+
51
+ ## Python Interface
52
+ Install from PyPI:
53
+
54
+ ```bash
55
+ pip install satzilla
56
+ ```
57
+
58
+ An importable Python interface is available in the `satzilla_features` package. It accepts PySAT `CNF` formulas directly and
59
+ calls the extractor through a bundled shared library using `ctypes`; it does not shell out to the CLI.
60
+
61
+ PySAT documents that `pysat.formula.CNF` exposes `clauses` and `nv`, and supports DIMACS I/O:
62
+ https://pysathq.github.io/docs/html/api/formula.html
63
+
64
+ Example:
65
+
66
+ ```python
67
+ from pysat.formula import CNF
68
+ from satzilla_features import extract_features
69
+
70
+ cnf = CNF(from_clauses=[[-1, 2], [-2, 3], [1, 3]])
71
+ features = extract_features(
72
+ cnf,
73
+ groups=["base", "structure", "ncnf-graphs"],
74
+ group_timeout=180,
75
+ )
76
+ print(features["variable_alpha"])
77
+ ```
78
+
79
+ You can also extract directly from a CNF file path with `extract_features_from_path(...)`.
80
+ Both Python entry points accept `timeout=...`, `group_timeout=...`, and `preprocess_timeout=...`.
81
+
82
+ When building the Python package, the C/C++ extractor is compiled into `libsatzilla_features.so` and packaged together with the
83
+ solver binaries it needs at runtime. The direct Python interface is currently Linux-only.
84
+
85
+
86
+ ## Experiments
87
+ rt_pred.py contains the code for running time prediction. sat_pred.py contains the code for satisfiability prediction. Both are using submitit for execution on a SLURM cluster.
88
+ For algorithm selection, the scenarios are available in the aslib directory. The AutoFolio code is available at https://github.com/hadarshavit/AutoFolio.
89
+ ## Contact
90
+ To contact us, please send an email to [shavit@aim.rwth-aachen.de](mailto:shavit@aim.rwth-aachen.de)
@@ -0,0 +1,16 @@
1
+ [build-system]
2
+ requires = ["setuptools>=61"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "satzilla"
7
+ version = "0.0.1"
8
+ description = "Python wrapper for the Revisiting SATZilla 2024 feature extractor"
9
+ readme = "README.md"
10
+ requires-python = ">=3.9"
11
+
12
+ [project.optional-dependencies]
13
+ pysat = ["python-sat"]
14
+
15
+ [tool.setuptools]
16
+ packages = ["satzilla_features"]
@@ -0,0 +1,99 @@
1
+ Metadata-Version: 2.4
2
+ Name: satzilla
3
+ Version: 0.0.1
4
+ Summary: Python wrapper for the Revisiting SATZilla 2024 feature extractor
5
+ Requires-Python: >=3.9
6
+ Description-Content-Type: text/markdown
7
+ Provides-Extra: pysat
8
+ Requires-Dist: python-sat; extra == "pysat"
9
+
10
+
11
+ # Revisiting SATZilla in 2024
12
+
13
+
14
+ Code for the paper: "Revisiting SATZilla Features in 2024" by Hadar Shavit and Holger H. Hoos accepted to SAT 2024.
15
+
16
+ ## Abstract
17
+ Boolean satisfiability (SAT) is an $\mathcal{NP}$-complete problem with important applications, notably in hardware and software verification.
18
+ Characterising a SAT instance by a set of features has shown great potential for various tasks, ranging from algorithm selection to benchmark generation.
19
+ In this work, we revisit the widely used SATZilla features and introduce a new version of the tool used to compute them.
20
+ In particular, we utilise a new preprocessor and SAT solvers, adjust the code to accommodate larger formulas, and determine better settings of the feature extraction time limits.
21
+ We evaluate the extracted features on three downstream tasks: satisfiability prediction, running time prediction, and algorithm selection.
22
+ We observe that our new tool is able to extract features from a broader range of instances than before.
23
+ We show that the new version of the feature extractor produces features that achieve up to $25\%$ lower RMSE for running time prediction, up to $5\%$ higher accuracy for satisfiability prediction, and up to $80\%$ higher closed gap for algorithm selection on benchmarks from recent SAT competitions.
24
+
25
+
26
+ ## Usage
27
+ We provide precompiled binaries for the SATZilla feature extraction tool for linux. Currently the SATZilla features extractor supports only linux.
28
+
29
+ SAT-feature-computation code contains the new SATZilla feature extraction tool.
30
+
31
+ Recompile by running `make`, then the executable `features` will be created.
32
+
33
+ To run a package-level smoke test for the extractor, use `make test` inside `SAT-features-competition2024`.
34
+
35
+ To compute features, simply run `./features [--timeout SECONDS] [--group-timeout SECONDS] [--preprocess-timeout SECONDS] [-base] [-structure] [-ncnf-graphs] [-ncnf-constraints] [-ncnf-rwh] [-dia] [-ls] [-lp] [-lobjois] INFILE OUTFILE`
36
+ Where -lp, -dia etc are the feature groups:
37
+
38
+ - base: Base feature group, including pre, KLB, and clause graph
39
+ - structure: Structural features from SATfeatPy
40
+ - ncnf-graphs: New-CNF graph features
41
+ - ncnf-constraints: New-CNF constraint features
42
+ - ncnf-rwh: New-CNF recursive weight heuristic features
43
+ - dia: Diameter
44
+ - ls: Local search (both GSAT and Sparrow)
45
+ - lp: Linear programming
46
+ - lobjois: Lobjois
47
+ - cl: Clause learning
48
+ - unit: Unit propagation
49
+ - sp: Survey propagation
50
+
51
+ To compute all features use the -all option.
52
+ The input INFILE is a DIMACS CNF file. NOTE: currently, only raw CNF files are supported, and not compressed one (like .cnf.xz)
53
+ The output is a CSV file containing the features for one instance.
54
+
55
+ Timeout controls:
56
+ - `--timeout`: total extraction timeout
57
+ - `--group-timeout`: per-feature-group timeout override; timed-out groups emit reserved values and extraction continues with the next selected group
58
+ - `--preprocess-timeout`: timeout override for the preprocessing step
59
+
60
+ ## Python Interface
61
+ Install from PyPI:
62
+
63
+ ```bash
64
+ pip install satzilla
65
+ ```
66
+
67
+ An importable Python interface is available in the `satzilla_features` package. It accepts PySAT `CNF` formulas directly and
68
+ calls the extractor through a bundled shared library using `ctypes`; it does not shell out to the CLI.
69
+
70
+ PySAT documents that `pysat.formula.CNF` exposes `clauses` and `nv`, and supports DIMACS I/O:
71
+ https://pysathq.github.io/docs/html/api/formula.html
72
+
73
+ Example:
74
+
75
+ ```python
76
+ from pysat.formula import CNF
77
+ from satzilla_features import extract_features
78
+
79
+ cnf = CNF(from_clauses=[[-1, 2], [-2, 3], [1, 3]])
80
+ features = extract_features(
81
+ cnf,
82
+ groups=["base", "structure", "ncnf-graphs"],
83
+ group_timeout=180,
84
+ )
85
+ print(features["variable_alpha"])
86
+ ```
87
+
88
+ You can also extract directly from a CNF file path with `extract_features_from_path(...)`.
89
+ Both Python entry points accept `timeout=...`, `group_timeout=...`, and `preprocess_timeout=...`.
90
+
91
+ When building the Python package, the C/C++ extractor is compiled into `libsatzilla_features.so` and packaged together with the
92
+ solver binaries it needs at runtime. The direct Python interface is currently Linux-only.
93
+
94
+
95
+ ## Experiments
96
+ rt_pred.py contains the code for running time prediction. sat_pred.py contains the code for satisfiability prediction. Both are using submitit for execution on a SLURM cluster.
97
+ For algorithm selection, the scenarios are available in the aslib directory. The AutoFolio code is available at https://github.com/hadarshavit/AutoFolio.
98
+ ## Contact
99
+ To contact us, please send an email to [shavit@aim.rwth-aachen.de](mailto:shavit@aim.rwth-aachen.de)