kibi-swipl-linux-x64-gnu 1.0.0

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 (550) hide show
  1. package/README.md +29 -0
  2. package/bin/swipl +0 -0
  3. package/bin/swipl-win +0 -0
  4. package/build-manifest.json +70 -0
  5. package/lib/cmake/swipl/SWIPLConfig.cmake +21 -0
  6. package/lib/cmake/swipl/SWIPLConfigVersion.cmake +65 -0
  7. package/lib/cmake/swipl/SWIPLTargets-release.cmake +28 -0
  8. package/lib/cmake/swipl/SWIPLTargets.cmake +109 -0
  9. package/lib/swipl/ABI +1 -0
  10. package/lib/swipl/LICENSE +41 -0
  11. package/lib/swipl/README.md +116 -0
  12. package/lib/swipl/app/README.md +25 -0
  13. package/lib/swipl/app/app.pl +87 -0
  14. package/lib/swipl/app/pack.pl +350 -0
  15. package/lib/swipl/app/qlf.pl +521 -0
  16. package/lib/swipl/app/splfr.pl +177 -0
  17. package/lib/swipl/app/sys.pl +310 -0
  18. package/lib/swipl/bin/swipl.home +1 -0
  19. package/lib/swipl/boot/apply.pl +73 -0
  20. package/lib/swipl/boot/attvar.pl +344 -0
  21. package/lib/swipl/boot/autoload.pl +1226 -0
  22. package/lib/swipl/boot/bags.pl +283 -0
  23. package/lib/swipl/boot/dcg.pl +388 -0
  24. package/lib/swipl/boot/dicts.pl +193 -0
  25. package/lib/swipl/boot/dwim.pl +485 -0
  26. package/lib/swipl/boot/engines.pl +152 -0
  27. package/lib/swipl/boot/expand.pl +1628 -0
  28. package/lib/swipl/boot/gc.pl +65 -0
  29. package/lib/swipl/boot/history.pl +304 -0
  30. package/lib/swipl/boot/init.pl +4682 -0
  31. package/lib/swipl/boot/iri.pl +64 -0
  32. package/lib/swipl/boot/license.pl +390 -0
  33. package/lib/swipl/boot/load.pl +81 -0
  34. package/lib/swipl/boot/messages.pl +2521 -0
  35. package/lib/swipl/boot/packs.pl +306 -0
  36. package/lib/swipl/boot/predopts.pl +154 -0
  37. package/lib/swipl/boot/qlf.pl +141 -0
  38. package/lib/swipl/boot/rc.pl +263 -0
  39. package/lib/swipl/boot/syspred.pl +1634 -0
  40. package/lib/swipl/boot/tabling.pl +2321 -0
  41. package/lib/swipl/boot/threads.pl +42 -0
  42. package/lib/swipl/boot/toplevel.pl +2248 -0
  43. package/lib/swipl/boot/topvars.pl +261 -0
  44. package/lib/swipl/boot.prc +0 -0
  45. package/lib/swipl/cmake/swipl.cmake +131 -0
  46. package/lib/swipl/customize/README.md +23 -0
  47. package/lib/swipl/customize/edit +101 -0
  48. package/lib/swipl/customize/init.pl +164 -0
  49. package/lib/swipl/demo/README.md +33 -0
  50. package/lib/swipl/demo/likes.pl +44 -0
  51. package/lib/swipl/doc/packages/examples/chr/bool.chr +281 -0
  52. package/lib/swipl/doc/packages/examples/chr/chrdif.chr +87 -0
  53. package/lib/swipl/doc/packages/examples/chr/chrfreeze.chr +6 -0
  54. package/lib/swipl/doc/packages/examples/chr/family.chr +116 -0
  55. package/lib/swipl/doc/packages/examples/chr/fib.chr +24 -0
  56. package/lib/swipl/doc/packages/examples/chr/fibonacci.chr +31 -0
  57. package/lib/swipl/doc/packages/examples/chr/gcd.chr +28 -0
  58. package/lib/swipl/doc/packages/examples/chr/leq.chr +34 -0
  59. package/lib/swipl/doc/packages/examples/chr/listdom.chr +138 -0
  60. package/lib/swipl/doc/packages/examples/chr/primes.chr +29 -0
  61. package/lib/swipl/doc/packages/examples/http/README.md +98 -0
  62. package/lib/swipl/doc/packages/examples/http/calc.pl +92 -0
  63. package/lib/swipl/doc/packages/examples/http/demo_body.pl +232 -0
  64. package/lib/swipl/doc/packages/examples/http/demo_client.pl +165 -0
  65. package/lib/swipl/doc/packages/examples/http/demo_daemon.pl +38 -0
  66. package/lib/swipl/doc/packages/examples/http/demo_files.pl +50 -0
  67. package/lib/swipl/doc/packages/examples/http/demo_hello.pl +15 -0
  68. package/lib/swipl/doc/packages/examples/http/demo_login.pl +280 -0
  69. package/lib/swipl/doc/packages/examples/http/demo_openid.pl +177 -0
  70. package/lib/swipl/doc/packages/examples/http/demo_pwp.pl +20 -0
  71. package/lib/swipl/doc/packages/examples/http/demo_rest.pl +56 -0
  72. package/lib/swipl/doc/packages/examples/http/demo_threads.pl +52 -0
  73. package/lib/swipl/doc/packages/examples/http/linux-init-script +126 -0
  74. package/lib/swipl/doc/packages/examples/http/pwp/context.pwp +23 -0
  75. package/lib/swipl/doc/packages/examples/http/pwp/index.pwp +25 -0
  76. package/lib/swipl/doc/packages/examples/http/pwp/pwp1.pwp +12 -0
  77. package/lib/swipl/doc/packages/examples/http/pwp/pwp2.pwp +10 -0
  78. package/lib/swipl/doc/packages/examples/http/pwp/pwp3.pwp +25 -0
  79. package/lib/swipl/doc/packages/examples/http/pwp/pwp4.pwp +23 -0
  80. package/lib/swipl/doc/packages/examples/http/pwp/pwp5.pwp +11 -0
  81. package/lib/swipl/doc/packages/examples/http/pwp/pwp6.pwp +3 -0
  82. package/lib/swipl/doc/packages/examples/http/pwp/pwp7.pwp +3 -0
  83. package/lib/swipl/doc/packages/examples/http/pwp/pwp8.pwp +3 -0
  84. package/lib/swipl/doc/packages/examples/http/pwp/pwpdb.pl +12 -0
  85. package/lib/swipl/doc/packages/examples/http/systemd-script.service +18 -0
  86. package/lib/swipl/doc/packages/examples/http/upstart-script.conf +20 -0
  87. package/lib/swipl/doc/packages/examples/plunit/read.pl +17 -0
  88. package/lib/swipl/doc/packages/examples/plunit/simple.pl +33 -0
  89. package/lib/swipl/doc/packages/examples/ssl/client.pl +83 -0
  90. package/lib/swipl/doc/packages/examples/ssl/etc/README +52 -0
  91. package/lib/swipl/doc/packages/examples/ssl/etc/client/client-cert.p12 +0 -0
  92. package/lib/swipl/doc/packages/examples/ssl/etc/client/client-cert.pem +85 -0
  93. package/lib/swipl/doc/packages/examples/ssl/etc/client/client-key.pem +30 -0
  94. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/cacert.pem +82 -0
  95. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/careq.pem +18 -0
  96. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/crlnumber +1 -0
  97. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/index.txt +3 -0
  98. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/index.txt.attr +1 -0
  99. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/newcerts/9DC08797A0F63F7C.pem +85 -0
  100. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/newcerts/9DC08797A0F63F7D.pem +85 -0
  101. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/private/cakey.pem +30 -0
  102. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/serial +1 -0
  103. package/lib/swipl/doc/packages/examples/ssl/etc/server/server-cert.pem +85 -0
  104. package/lib/swipl/doc/packages/examples/ssl/etc/server/server-key.pem +30 -0
  105. package/lib/swipl/doc/packages/examples/ssl/https.pl +267 -0
  106. package/lib/swipl/doc/packages/examples/ssl/server.pl +106 -0
  107. package/lib/swipl/include/SWI-Prolog.h +1544 -0
  108. package/lib/swipl/include/SWI-Stream.h +537 -0
  109. package/lib/swipl/include/Yap/YapInterface.h +283 -0
  110. package/lib/swipl/include/sicstus/sicstus.h +452 -0
  111. package/lib/swipl/lib/x86_64-linux/cgi.so +0 -0
  112. package/lib/swipl/lib/x86_64-linux/crypt.so +0 -0
  113. package/lib/swipl/lib/x86_64-linux/crypto4pl.so +0 -0
  114. package/lib/swipl/lib/x86_64-linux/double_metaphone.so +0 -0
  115. package/lib/swipl/lib/x86_64-linux/files.so +0 -0
  116. package/lib/swipl/lib/x86_64-linux/hashstream.so +0 -0
  117. package/lib/swipl/lib/x86_64-linux/http_stream.so +0 -0
  118. package/lib/swipl/lib/x86_64-linux/isub.so +0 -0
  119. package/lib/swipl/lib/x86_64-linux/json.so +0 -0
  120. package/lib/swipl/lib/x86_64-linux/libswipl.so.10 +0 -0
  121. package/lib/swipl/lib/x86_64-linux/mallocinfo.so +0 -0
  122. package/lib/swipl/lib/x86_64-linux/md54pl.so +0 -0
  123. package/lib/swipl/lib/x86_64-linux/memfile.so +0 -0
  124. package/lib/swipl/lib/x86_64-linux/ntriples.so +0 -0
  125. package/lib/swipl/lib/x86_64-linux/pcre4pl.so +0 -0
  126. package/lib/swipl/lib/x86_64-linux/porter_stem.so +0 -0
  127. package/lib/swipl/lib/x86_64-linux/process.so +0 -0
  128. package/lib/swipl/lib/x86_64-linux/prolog_stream.so +0 -0
  129. package/lib/swipl/lib/x86_64-linux/rdf_db.so +0 -0
  130. package/lib/swipl/lib/x86_64-linux/readutil.so +0 -0
  131. package/lib/swipl/lib/x86_64-linux/rlimit.so +0 -0
  132. package/lib/swipl/lib/x86_64-linux/sched.so +0 -0
  133. package/lib/swipl/lib/x86_64-linux/sgml2pl.so +0 -0
  134. package/lib/swipl/lib/x86_64-linux/sha4pl.so +0 -0
  135. package/lib/swipl/lib/x86_64-linux/snowball.so +0 -0
  136. package/lib/swipl/lib/x86_64-linux/socket.so +0 -0
  137. package/lib/swipl/lib/x86_64-linux/ssl4pl.so +0 -0
  138. package/lib/swipl/lib/x86_64-linux/streaminfo.so +0 -0
  139. package/lib/swipl/lib/x86_64-linux/syslog.so +0 -0
  140. package/lib/swipl/lib/x86_64-linux/time.so +0 -0
  141. package/lib/swipl/lib/x86_64-linux/turtle.so +0 -0
  142. package/lib/swipl/lib/x86_64-linux/uid.so +0 -0
  143. package/lib/swipl/lib/x86_64-linux/unix.so +0 -0
  144. package/lib/swipl/lib/x86_64-linux/uri.so +0 -0
  145. package/lib/swipl/lib/x86_64-linux/websocket.so +0 -0
  146. package/lib/swipl/lib/x86_64-linux/zlib4pl.so +0 -0
  147. package/lib/swipl/library/INDEX.pl +1020 -0
  148. package/lib/swipl/library/aggregate.pl +755 -0
  149. package/lib/swipl/library/ansi_term.pl +653 -0
  150. package/lib/swipl/library/apply.pl +426 -0
  151. package/lib/swipl/library/apply_macros.pl +497 -0
  152. package/lib/swipl/library/arithmetic.pl +320 -0
  153. package/lib/swipl/library/assoc.pl +522 -0
  154. package/lib/swipl/library/atom.pl +169 -0
  155. package/lib/swipl/library/backcomp.pl +688 -0
  156. package/lib/swipl/library/base32.pl +291 -0
  157. package/lib/swipl/library/base64.pl +441 -0
  158. package/lib/swipl/library/broadcast.pl +161 -0
  159. package/lib/swipl/library/build/cmake.pl +137 -0
  160. package/lib/swipl/library/build/conan.pl +232 -0
  161. package/lib/swipl/library/build/make.pl +168 -0
  162. package/lib/swipl/library/build/tools.pl +825 -0
  163. package/lib/swipl/library/charsio.pl +195 -0
  164. package/lib/swipl/library/check.pl +1097 -0
  165. package/lib/swipl/library/check_installation.pl +912 -0
  166. package/lib/swipl/library/clp/INDEX.pl +157 -0
  167. package/lib/swipl/library/clp/bounds.pl +2036 -0
  168. package/lib/swipl/library/clp/clp_distinct.pl +263 -0
  169. package/lib/swipl/library/clp/clp_events.pl +92 -0
  170. package/lib/swipl/library/clp/clpb.pl +1896 -0
  171. package/lib/swipl/library/clp/clpfd.pl +7906 -0
  172. package/lib/swipl/library/clp/simplex.pl +1580 -0
  173. package/lib/swipl/library/codesio.pl +182 -0
  174. package/lib/swipl/library/coinduction.pl +183 -0
  175. package/lib/swipl/library/console_input.pl +289 -0
  176. package/lib/swipl/library/csv.pl +611 -0
  177. package/lib/swipl/library/ctypes.pl +161 -0
  178. package/lib/swipl/library/date.pl +370 -0
  179. package/lib/swipl/library/dcg/INDEX.pl +35 -0
  180. package/lib/swipl/library/dcg/basics.pl +514 -0
  181. package/lib/swipl/library/dcg/high_order.pl +227 -0
  182. package/lib/swipl/library/debug.pl +499 -0
  183. package/lib/swipl/library/dialect/bim.pl +186 -0
  184. package/lib/swipl/library/dialect/commons.pl +77 -0
  185. package/lib/swipl/library/dialect/eclipse/test_util_iso.pl +355 -0
  186. package/lib/swipl/library/dialect/hprolog/format.pl +44 -0
  187. package/lib/swipl/library/dialect/hprolog.pl +314 -0
  188. package/lib/swipl/library/dialect/ifprolog.pl +1317 -0
  189. package/lib/swipl/library/dialect/iso/iso_predicates.pl +277 -0
  190. package/lib/swipl/library/dialect/sicstus/README.TXT +1 -0
  191. package/lib/swipl/library/dialect/sicstus/arrays.pl +121 -0
  192. package/lib/swipl/library/dialect/sicstus/block.pl +278 -0
  193. package/lib/swipl/library/dialect/sicstus/lists.pl +167 -0
  194. package/lib/swipl/library/dialect/sicstus/ordsets.pl +52 -0
  195. package/lib/swipl/library/dialect/sicstus/sockets.pl +174 -0
  196. package/lib/swipl/library/dialect/sicstus/system.pl +262 -0
  197. package/lib/swipl/library/dialect/sicstus/terms.pl +57 -0
  198. package/lib/swipl/library/dialect/sicstus/timeout.pl +92 -0
  199. package/lib/swipl/library/dialect/sicstus.pl +582 -0
  200. package/lib/swipl/library/dialect/sicstus4/aggregate.pl +60 -0
  201. package/lib/swipl/library/dialect/sicstus4/between.pl +62 -0
  202. package/lib/swipl/library/dialect/sicstus4/clpfd.pl +75 -0
  203. package/lib/swipl/library/dialect/sicstus4/file_systems.pl +413 -0
  204. package/lib/swipl/library/dialect/sicstus4/lists.pl +274 -0
  205. package/lib/swipl/library/dialect/sicstus4/ordsets.pl +54 -0
  206. package/lib/swipl/library/dialect/sicstus4/samsort.pl +86 -0
  207. package/lib/swipl/library/dialect/sicstus4/sets.pl +124 -0
  208. package/lib/swipl/library/dialect/sicstus4/sockets.pl +164 -0
  209. package/lib/swipl/library/dialect/sicstus4/system.pl +80 -0
  210. package/lib/swipl/library/dialect/sicstus4/terms.pl +89 -0
  211. package/lib/swipl/library/dialect/sicstus4/timeout.pl +43 -0
  212. package/lib/swipl/library/dialect/sicstus4/types.pl +103 -0
  213. package/lib/swipl/library/dialect/sicstus4.pl +200 -0
  214. package/lib/swipl/library/dialect/swi/syspred_options.pl +250 -0
  215. package/lib/swipl/library/dialect/xsb/README.md +20 -0
  216. package/lib/swipl/library/dialect/xsb/basics.pl +318 -0
  217. package/lib/swipl/library/dialect/xsb/consult.pl +87 -0
  218. package/lib/swipl/library/dialect/xsb/curr_sym.pl +57 -0
  219. package/lib/swipl/library/dialect/xsb/error_handler.pl +111 -0
  220. package/lib/swipl/library/dialect/xsb/gensym.pl +53 -0
  221. package/lib/swipl/library/dialect/xsb/gpp.pl +138 -0
  222. package/lib/swipl/library/dialect/xsb/intern.pl +48 -0
  223. package/lib/swipl/library/dialect/xsb/lists.pl +47 -0
  224. package/lib/swipl/library/dialect/xsb/machine.pl +295 -0
  225. package/lib/swipl/library/dialect/xsb/ordsets.pl +53 -0
  226. package/lib/swipl/library/dialect/xsb/setof.pl +54 -0
  227. package/lib/swipl/library/dialect/xsb/source.pl +308 -0
  228. package/lib/swipl/library/dialect/xsb/standard.pl +169 -0
  229. package/lib/swipl/library/dialect/xsb/storage.pl +70 -0
  230. package/lib/swipl/library/dialect/xsb/string.pl +76 -0
  231. package/lib/swipl/library/dialect/xsb/thread.pl +62 -0
  232. package/lib/swipl/library/dialect/xsb/timed_call.pl +158 -0
  233. package/lib/swipl/library/dialect/xsb.pl +688 -0
  234. package/lib/swipl/library/dialect/yap/README.TXT +8 -0
  235. package/lib/swipl/library/dialect/yap.pl +283 -0
  236. package/lib/swipl/library/dialect.pl +123 -0
  237. package/lib/swipl/library/dicts.pl +399 -0
  238. package/lib/swipl/library/dif.pl +426 -0
  239. package/lib/swipl/library/edinburgh.pl +138 -0
  240. package/lib/swipl/library/edit.pl +783 -0
  241. package/lib/swipl/library/error.pl +495 -0
  242. package/lib/swipl/library/exceptions.pl +231 -0
  243. package/lib/swipl/library/explain.pl +543 -0
  244. package/lib/swipl/library/ext/RDF/INDEX.pl +25 -0
  245. package/lib/swipl/library/ext/RDF/rdf.pl +450 -0
  246. package/lib/swipl/library/ext/RDF/rdf_parser.pl +649 -0
  247. package/lib/swipl/library/ext/RDF/rdf_triple.pl +448 -0
  248. package/lib/swipl/library/ext/RDF/rdf_write.pl +701 -0
  249. package/lib/swipl/library/ext/RDF/rewrite_term.pl +177 -0
  250. package/lib/swipl/library/ext/chr/chr/a_star.pl +80 -0
  251. package/lib/swipl/library/ext/chr/chr/binomialheap.pl +142 -0
  252. package/lib/swipl/library/ext/chr/chr/builtins.pl +629 -0
  253. package/lib/swipl/library/ext/chr/chr/chr_compiler_errors.pl +179 -0
  254. package/lib/swipl/library/ext/chr/chr/chr_compiler_options.pl +382 -0
  255. package/lib/swipl/library/ext/chr/chr/chr_compiler_utility.pl +338 -0
  256. package/lib/swipl/library/ext/chr/chr/chr_debug.pl +59 -0
  257. package/lib/swipl/library/ext/chr/chr/chr_hashtable_store.pl +425 -0
  258. package/lib/swipl/library/ext/chr/chr/chr_integertable_store.pl +139 -0
  259. package/lib/swipl/library/ext/chr/chr/chr_messages.pl +176 -0
  260. package/lib/swipl/library/ext/chr/chr/chr_op.pl +53 -0
  261. package/lib/swipl/library/ext/chr/chr/chr_runtime.pl +1016 -0
  262. package/lib/swipl/library/ext/chr/chr/chr_translate.pl +25424 -0
  263. package/lib/swipl/library/ext/chr/chr/clean_code.pl +252 -0
  264. package/lib/swipl/library/ext/chr/chr/find.pl +78 -0
  265. package/lib/swipl/library/ext/chr/chr/guard_entailment.pl +19432 -0
  266. package/lib/swipl/library/ext/chr/chr/listmap.pl +108 -0
  267. package/lib/swipl/library/ext/chr/chr/pairlist.pl +78 -0
  268. package/lib/swipl/library/ext/chr/chr.pl +686 -0
  269. package/lib/swipl/library/ext/clib/INDEX.pl +158 -0
  270. package/lib/swipl/library/ext/clib/cgi.pl +86 -0
  271. package/lib/swipl/library/ext/clib/crypt.pl +44 -0
  272. package/lib/swipl/library/ext/clib/filesex.pl +644 -0
  273. package/lib/swipl/library/ext/clib/hash_stream.pl +119 -0
  274. package/lib/swipl/library/ext/clib/mallocinfo.pl +138 -0
  275. package/lib/swipl/library/ext/clib/md5.pl +68 -0
  276. package/lib/swipl/library/ext/clib/memfile.pl +61 -0
  277. package/lib/swipl/library/ext/clib/process.pl +573 -0
  278. package/lib/swipl/library/ext/clib/prolog_server.pl +157 -0
  279. package/lib/swipl/library/ext/clib/prolog_stream.pl +80 -0
  280. package/lib/swipl/library/ext/clib/rlimit.pl +54 -0
  281. package/lib/swipl/library/ext/clib/sched.pl +85 -0
  282. package/lib/swipl/library/ext/clib/sha.pl +162 -0
  283. package/lib/swipl/library/ext/clib/socket.pl +1102 -0
  284. package/lib/swipl/library/ext/clib/streaminfo.pl +103 -0
  285. package/lib/swipl/library/ext/clib/streampool.pl +136 -0
  286. package/lib/swipl/library/ext/clib/syslog.pl +180 -0
  287. package/lib/swipl/library/ext/clib/time.pl +194 -0
  288. package/lib/swipl/library/ext/clib/udp_broadcast.pl +975 -0
  289. package/lib/swipl/library/ext/clib/uid.pl +220 -0
  290. package/lib/swipl/library/ext/clib/unix.pl +317 -0
  291. package/lib/swipl/library/ext/clib/uri.pl +530 -0
  292. package/lib/swipl/library/ext/clib/uuid.pl +207 -0
  293. package/lib/swipl/library/ext/http/http/INDEX.pl +266 -0
  294. package/lib/swipl/library/ext/http/http/README.md +34 -0
  295. package/lib/swipl/library/ext/http/http/ax.pl +189 -0
  296. package/lib/swipl/library/ext/http/http/dcg_basics.pl +49 -0
  297. package/lib/swipl/library/ext/http/http/graphql.pl +1367 -0
  298. package/lib/swipl/library/ext/http/http/html_decl.pl +416 -0
  299. package/lib/swipl/library/ext/http/http/html_head.pl +654 -0
  300. package/lib/swipl/library/ext/http/http/html_quasiquotations.pl +120 -0
  301. package/lib/swipl/library/ext/http/http/html_write.pl +1425 -0
  302. package/lib/swipl/library/ext/http/http/htmx.pl +139 -0
  303. package/lib/swipl/library/ext/http/http/http_authenticate.pl +364 -0
  304. package/lib/swipl/library/ext/http/http/http_client.pl +412 -0
  305. package/lib/swipl/library/ext/http/http/http_cookie.pl +245 -0
  306. package/lib/swipl/library/ext/http/http/http_cors.pl +176 -0
  307. package/lib/swipl/library/ext/http/http/http_digest.pl +820 -0
  308. package/lib/swipl/library/ext/http/http/http_dirindex.pl +296 -0
  309. package/lib/swipl/library/ext/http/http/http_dispatch.pl +1552 -0
  310. package/lib/swipl/library/ext/http/http/http_dyn_workers.pl +214 -0
  311. package/lib/swipl/library/ext/http/http/http_error.pl +126 -0
  312. package/lib/swipl/library/ext/http/http/http_exception.pl +225 -0
  313. package/lib/swipl/library/ext/http/http/http_files.pl +163 -0
  314. package/lib/swipl/library/ext/http/http/http_header.pl +2820 -0
  315. package/lib/swipl/library/ext/http/http/http_hook.pl +106 -0
  316. package/lib/swipl/library/ext/http/http/http_host.pl +204 -0
  317. package/lib/swipl/library/ext/http/http/http_load.pl +113 -0
  318. package/lib/swipl/library/ext/http/http/http_log.pl +738 -0
  319. package/lib/swipl/library/ext/http/http/http_multipart_plugin.pl +232 -0
  320. package/lib/swipl/library/ext/http/http/http_open.pl +1821 -0
  321. package/lib/swipl/library/ext/http/http/http_openid.pl +1561 -0
  322. package/lib/swipl/library/ext/http/http/http_parameters.pl +504 -0
  323. package/lib/swipl/library/ext/http/http/http_path.pl +380 -0
  324. package/lib/swipl/library/ext/http/http/http_proxy.pl +80 -0
  325. package/lib/swipl/library/ext/http/http/http_pwp.pl +351 -0
  326. package/lib/swipl/library/ext/http/http/http_redis_plugin.pl +332 -0
  327. package/lib/swipl/library/ext/http/http/http_server.pl +105 -0
  328. package/lib/swipl/library/ext/http/http/http_server_files.pl +126 -0
  329. package/lib/swipl/library/ext/http/http/http_server_health.pl +186 -0
  330. package/lib/swipl/library/ext/http/http/http_session.pl +1040 -0
  331. package/lib/swipl/library/ext/http/http/http_sgml_plugin.pl +137 -0
  332. package/lib/swipl/library/ext/http/http/http_stream.pl +376 -0
  333. package/lib/swipl/library/ext/http/http/http_unix_daemon.pl +989 -0
  334. package/lib/swipl/library/ext/http/http/http_wrapper.pl +559 -0
  335. package/lib/swipl/library/ext/http/http/hub.pl +600 -0
  336. package/lib/swipl/library/ext/http/http/js_write.pl +461 -0
  337. package/lib/swipl/library/ext/http/http/mimepack.pl +224 -0
  338. package/lib/swipl/library/ext/http/http/mimetype.pl +276 -0
  339. package/lib/swipl/library/ext/http/http/term_html.pl +797 -0
  340. package/lib/swipl/library/ext/http/http/thread_httpd.pl +1181 -0
  341. package/lib/swipl/library/ext/http/http/web/css/dirindex.css +24 -0
  342. package/lib/swipl/library/ext/http/http/web/css/openid.css +57 -0
  343. package/lib/swipl/library/ext/http/http/web/icons/back.png +0 -0
  344. package/lib/swipl/library/ext/http/http/web/icons/c.png +0 -0
  345. package/lib/swipl/library/ext/http/http/web/icons/compressed.png +0 -0
  346. package/lib/swipl/library/ext/http/http/web/icons/folder.png +0 -0
  347. package/lib/swipl/library/ext/http/http/web/icons/generic.png +0 -0
  348. package/lib/swipl/library/ext/http/http/web/icons/layout.png +0 -0
  349. package/lib/swipl/library/ext/http/http/web/icons/openid-logo-square.png +0 -0
  350. package/lib/swipl/library/ext/http/http/web/icons/openid-logo-tiny.png +0 -0
  351. package/lib/swipl/library/ext/http/http/websocket.pl +729 -0
  352. package/lib/swipl/library/ext/http/http/yadis.pl +205 -0
  353. package/lib/swipl/library/ext/json/INDEX.pl +36 -0
  354. package/lib/swipl/library/ext/json/http/INDEX.pl +16 -0
  355. package/lib/swipl/library/ext/json/http/http_json.pl +490 -0
  356. package/lib/swipl/library/ext/json/http/js_grammar.pl +53 -0
  357. package/lib/swipl/library/ext/json/http/json.pl +48 -0
  358. package/lib/swipl/library/ext/json/http/json_convert.pl +48 -0
  359. package/lib/swipl/library/ext/json/json.pl +1215 -0
  360. package/lib/swipl/library/ext/json/json_convert.pl +681 -0
  361. package/lib/swipl/library/ext/json/json_grammar.pl +349 -0
  362. package/lib/swipl/library/ext/json/json_rpc_client.pl +423 -0
  363. package/lib/swipl/library/ext/json/json_rpc_common.pl +104 -0
  364. package/lib/swipl/library/ext/json/json_rpc_server.pl +489 -0
  365. package/lib/swipl/library/ext/json/json_schema.pl +2111 -0
  366. package/lib/swipl/library/ext/nlp/INDEX.pl +15 -0
  367. package/lib/swipl/library/ext/nlp/double_metaphone.pl +86 -0
  368. package/lib/swipl/library/ext/nlp/isub.pl +162 -0
  369. package/lib/swipl/library/ext/nlp/porter_stem.pl +50 -0
  370. package/lib/swipl/library/ext/nlp/snowball.pl +97 -0
  371. package/lib/swipl/library/ext/pcre/INDEX.pl +17 -0
  372. package/lib/swipl/library/ext/pcre/pcre.pl +974 -0
  373. package/lib/swipl/library/ext/plunit/INDEX.pl +20 -0
  374. package/lib/swipl/library/ext/plunit/plunit.pl +2631 -0
  375. package/lib/swipl/library/ext/plunit/test_wizard.pl +249 -0
  376. package/lib/swipl/library/ext/semweb/semweb/INDEX.pl +288 -0
  377. package/lib/swipl/library/ext/semweb/semweb/rdf11.pl +2106 -0
  378. package/lib/swipl/library/ext/semweb/semweb/rdf11_containers.pl +299 -0
  379. package/lib/swipl/library/ext/semweb/semweb/rdf_cache.pl +278 -0
  380. package/lib/swipl/library/ext/semweb/semweb/rdf_compare.pl +132 -0
  381. package/lib/swipl/library/ext/semweb/semweb/rdf_db.pl +3468 -0
  382. package/lib/swipl/library/ext/semweb/semweb/rdf_edit.pl +1145 -0
  383. package/lib/swipl/library/ext/semweb/semweb/rdf_http_plugin.pl +274 -0
  384. package/lib/swipl/library/ext/semweb/semweb/rdf_library.pl +1021 -0
  385. package/lib/swipl/library/ext/semweb/semweb/rdf_litindex.pl +1035 -0
  386. package/lib/swipl/library/ext/semweb/semweb/rdf_ntriples.pl +422 -0
  387. package/lib/swipl/library/ext/semweb/semweb/rdf_persistency.pl +1576 -0
  388. package/lib/swipl/library/ext/semweb/semweb/rdf_portray.pl +182 -0
  389. package/lib/swipl/library/ext/semweb/semweb/rdf_prefixes.pl +681 -0
  390. package/lib/swipl/library/ext/semweb/semweb/rdf_sandbox.pl +153 -0
  391. package/lib/swipl/library/ext/semweb/semweb/rdf_turtle.pl +54 -0
  392. package/lib/swipl/library/ext/semweb/semweb/rdf_turtle_write.pl +1587 -0
  393. package/lib/swipl/library/ext/semweb/semweb/rdf_zlib_plugin.pl +52 -0
  394. package/lib/swipl/library/ext/semweb/semweb/rdfa.pl +1510 -0
  395. package/lib/swipl/library/ext/semweb/semweb/rdfs.pl +475 -0
  396. package/lib/swipl/library/ext/semweb/semweb/sparql_client.pl +643 -0
  397. package/lib/swipl/library/ext/semweb/semweb/turtle.pl +455 -0
  398. package/lib/swipl/library/ext/sgml/DTD/HTML4.dcl +88 -0
  399. package/lib/swipl/library/ext/sgml/DTD/HTML4.dtd +1092 -0
  400. package/lib/swipl/library/ext/sgml/DTD/HTML4.soc +6 -0
  401. package/lib/swipl/library/ext/sgml/DTD/HTML5.dtd +906 -0
  402. package/lib/swipl/library/ext/sgml/DTD/HTMLlat1.ent +195 -0
  403. package/lib/swipl/library/ext/sgml/DTD/HTMLspec.ent +77 -0
  404. package/lib/swipl/library/ext/sgml/DTD/HTMLsym.ent +241 -0
  405. package/lib/swipl/library/ext/sgml/INDEX.pl +64 -0
  406. package/lib/swipl/library/ext/sgml/c14n2.pl +203 -0
  407. package/lib/swipl/library/ext/sgml/iso_639.pl +631 -0
  408. package/lib/swipl/library/ext/sgml/pwp.pl +705 -0
  409. package/lib/swipl/library/ext/sgml/sgml.pl +815 -0
  410. package/lib/swipl/library/ext/sgml/sgml_write.pl +1003 -0
  411. package/lib/swipl/library/ext/sgml/xpath.pl +620 -0
  412. package/lib/swipl/library/ext/sgml/xsdp_types.pl +232 -0
  413. package/lib/swipl/library/ext/ssl/INDEX.pl +60 -0
  414. package/lib/swipl/library/ext/ssl/crypto.pl +1015 -0
  415. package/lib/swipl/library/ext/ssl/http/INDEX.pl +5 -0
  416. package/lib/swipl/library/ext/ssl/http/http_ssl_plugin.pl +296 -0
  417. package/lib/swipl/library/ext/ssl/saml.pl +609 -0
  418. package/lib/swipl/library/ext/ssl/ssl.pl +647 -0
  419. package/lib/swipl/library/ext/ssl/xmldsig.pl +391 -0
  420. package/lib/swipl/library/ext/ssl/xmlenc.pl +354 -0
  421. package/lib/swipl/library/ext/zlib/INDEX.pl +8 -0
  422. package/lib/swipl/library/ext/zlib/zlib.pl +112 -0
  423. package/lib/swipl/library/fastrw.pl +105 -0
  424. package/lib/swipl/library/files.pl +80 -0
  425. package/lib/swipl/library/gensym.pl +111 -0
  426. package/lib/swipl/library/git.pl +1027 -0
  427. package/lib/swipl/library/hashtable.pl +365 -0
  428. package/lib/swipl/library/heaps.pl +252 -0
  429. package/lib/swipl/library/hotfix.pl +239 -0
  430. package/lib/swipl/library/http/jquery.pl +103 -0
  431. package/lib/swipl/library/http/web/js/jquery-3.6.0.min.js +2 -0
  432. package/lib/swipl/library/increval.pl +217 -0
  433. package/lib/swipl/library/intercept.pl +263 -0
  434. package/lib/swipl/library/iostream.pl +237 -0
  435. package/lib/swipl/library/iri_scheme/file.pl +70 -0
  436. package/lib/swipl/library/lazy_lists.pl +481 -0
  437. package/lib/swipl/library/listing.pl +1362 -0
  438. package/lib/swipl/library/lists.pl +860 -0
  439. package/lib/swipl/library/lynx/INDEX.pl +14 -0
  440. package/lib/swipl/library/lynx/format.pl +380 -0
  441. package/lib/swipl/library/lynx/html_style.pl +129 -0
  442. package/lib/swipl/library/lynx/html_text.pl +865 -0
  443. package/lib/swipl/library/lynx/pldoc_style.pl +87 -0
  444. package/lib/swipl/library/macros.pl +451 -0
  445. package/lib/swipl/library/main.pl +1200 -0
  446. package/lib/swipl/library/make.pl +197 -0
  447. package/lib/swipl/library/modules.pl +129 -0
  448. package/lib/swipl/library/nb_rbtrees.pl +267 -0
  449. package/lib/swipl/library/nb_set.pl +203 -0
  450. package/lib/swipl/library/obfuscate.pl +115 -0
  451. package/lib/swipl/library/occurs.pl +241 -0
  452. package/lib/swipl/library/operators.pl +182 -0
  453. package/lib/swipl/library/option.pl +388 -0
  454. package/lib/swipl/library/optparse.pl +966 -0
  455. package/lib/swipl/library/ordsets.pl +518 -0
  456. package/lib/swipl/library/oset.pl +160 -0
  457. package/lib/swipl/library/pairs.pl +187 -0
  458. package/lib/swipl/library/persistency.pl +713 -0
  459. package/lib/swipl/library/pio.pl +47 -0
  460. package/lib/swipl/library/portray_text.pl +277 -0
  461. package/lib/swipl/library/pprint.pl +940 -0
  462. package/lib/swipl/library/predicate_options.pl +975 -0
  463. package/lib/swipl/library/prolog_autoload.pl +233 -0
  464. package/lib/swipl/library/prolog_breakpoints.pl +396 -0
  465. package/lib/swipl/library/prolog_clause.pl +1104 -0
  466. package/lib/swipl/library/prolog_code.pl +416 -0
  467. package/lib/swipl/library/prolog_codewalk.pl +1248 -0
  468. package/lib/swipl/library/prolog_colour.pl +3301 -0
  469. package/lib/swipl/library/prolog_colour.qlf +0 -0
  470. package/lib/swipl/library/prolog_config.pl +154 -0
  471. package/lib/swipl/library/prolog_coverage.pl +1333 -0
  472. package/lib/swipl/library/prolog_debug.pl +404 -0
  473. package/lib/swipl/library/prolog_deps.pl +675 -0
  474. package/lib/swipl/library/prolog_evaluable.pl +234 -0
  475. package/lib/swipl/library/prolog_format.pl +219 -0
  476. package/lib/swipl/library/prolog_history.pl +161 -0
  477. package/lib/swipl/library/prolog_jiti.pl +333 -0
  478. package/lib/swipl/library/prolog_locale.pl +61 -0
  479. package/lib/swipl/library/prolog_metainference.pl +307 -0
  480. package/lib/swipl/library/prolog_pack.pl +3906 -0
  481. package/lib/swipl/library/prolog_profile.pl +346 -0
  482. package/lib/swipl/library/prolog_qlfmake.pl +533 -0
  483. package/lib/swipl/library/prolog_source.pl +1188 -0
  484. package/lib/swipl/library/prolog_stack.pl +794 -0
  485. package/lib/swipl/library/prolog_trace.pl +365 -0
  486. package/lib/swipl/library/prolog_versions.pl +347 -0
  487. package/lib/swipl/library/prolog_wrap.pl +164 -0
  488. package/lib/swipl/library/prolog_xref.pl +3090 -0
  489. package/lib/swipl/library/prolog_xref.qlf +0 -0
  490. package/lib/swipl/library/pure_input.pl +266 -0
  491. package/lib/swipl/library/qpforeign.pl +695 -0
  492. package/lib/swipl/library/qsave.pl +1516 -0
  493. package/lib/swipl/library/quasi_quotations.pl +300 -0
  494. package/lib/swipl/library/quintus.pl +437 -0
  495. package/lib/swipl/library/random.pl +459 -0
  496. package/lib/swipl/library/rbtrees.pl +1153 -0
  497. package/lib/swipl/library/readln.pl +256 -0
  498. package/lib/swipl/library/readutil.pl +304 -0
  499. package/lib/swipl/library/record.pl +544 -0
  500. package/lib/swipl/library/rwlocks.pl +172 -0
  501. package/lib/swipl/library/sandbox.pl +1384 -0
  502. package/lib/swipl/library/semweb/dc.rdfs +198 -0
  503. package/lib/swipl/library/semweb/eor.rdfs +95 -0
  504. package/lib/swipl/library/semweb/owl.owl +287 -0
  505. package/lib/swipl/library/semweb/rdf_library.ttl +90 -0
  506. package/lib/swipl/library/semweb/rdfs.rdfs +251 -0
  507. package/lib/swipl/library/settings.pl +755 -0
  508. package/lib/swipl/library/shell.pl +462 -0
  509. package/lib/swipl/library/shlib.pl +670 -0
  510. package/lib/swipl/library/solution_sequences.pl +439 -0
  511. package/lib/swipl/library/sort.pl +119 -0
  512. package/lib/swipl/library/statistics.pl +541 -0
  513. package/lib/swipl/library/streams.pl +118 -0
  514. package/lib/swipl/library/strings.pl +469 -0
  515. package/lib/swipl/library/system.pl +95 -0
  516. package/lib/swipl/library/tables.pl +381 -0
  517. package/lib/swipl/library/tableutil.pl +771 -0
  518. package/lib/swipl/library/tabling.pl +42 -0
  519. package/lib/swipl/library/terms.pl +457 -0
  520. package/lib/swipl/library/theme/auto.pl +61 -0
  521. package/lib/swipl/library/theme/dark.pl +455 -0
  522. package/lib/swipl/library/theme/light.pl +45 -0
  523. package/lib/swipl/library/thread.pl +810 -0
  524. package/lib/swipl/library/thread_pool.pl +508 -0
  525. package/lib/swipl/library/threadutil.pl +574 -0
  526. package/lib/swipl/library/tty.pl +316 -0
  527. package/lib/swipl/library/ugraphs.pl +644 -0
  528. package/lib/swipl/library/unicode/INDEX.pl +6 -0
  529. package/lib/swipl/library/unicode/blocks.pl +414 -0
  530. package/lib/swipl/library/url.pl +1129 -0
  531. package/lib/swipl/library/utf8.pl +145 -0
  532. package/lib/swipl/library/varnumbers.pl +221 -0
  533. package/lib/swipl/library/vm.pl +251 -0
  534. package/lib/swipl/library/wfs.pl +205 -0
  535. package/lib/swipl/library/when.pl +263 -0
  536. package/lib/swipl/library/writef.pl +278 -0
  537. package/lib/swipl/library/www_browser.pl +251 -0
  538. package/lib/swipl/library/yall.pl +574 -0
  539. package/lib/swipl/library/zip.pl +211 -0
  540. package/lib/swipl/swipl.home +1 -0
  541. package/lib/vendor/libcrypto.so.3 +0 -0
  542. package/lib/vendor/libpcre2-8.so.0 +0 -0
  543. package/lib/vendor/libssl.so.3 +0 -0
  544. package/lib/vendor/libz.so.1 +0 -0
  545. package/licenses/OpenSSL-LICENSE.txt +177 -0
  546. package/licenses/PCRE2-COPYING +5 -0
  547. package/licenses/README.md +12 -0
  548. package/licenses/SWI-Prolog-LICENSE +41 -0
  549. package/licenses/zlib-LICENSE +22 -0
  550. package/package.json +27 -0
@@ -0,0 +1,33 @@
1
+ This directory contains a simple demo to get you started. You can also
2
+ use this directory to develop your own programs but this is not advised
3
+ for serious usage. For normal usage, choose a location on the filesystem
4
+ that suits you best.
5
+
6
+ Windows
7
+ -------
8
+
9
+ On Windows platform use the extension associated to PLWIN.EXE choosen at
10
+ installation (default .PL) for Prolog source files and load the main
11
+ file by double-clicking it in the Windows explorer or dragging it onto
12
+ PLWIN.EXE or a shortcut to this executable (you can put a shortcut to
13
+ PLWIN.EXE on your desktop).
14
+
15
+ Unix
16
+ ----
17
+
18
+ Normally you create your Prolog source files using the extension `.pl`.
19
+ You start a program using
20
+
21
+ % swipl -s file.pl
22
+
23
+ or ensuring the first line reads as below and make file.pl executable
24
+ using chmod +x file.pl. Adjust /path/to/swipl and option ... to your
25
+ preferences and installation.
26
+
27
+ #!/path/to/swipl
28
+
29
+ Further information (manual, mailing list, user web)
30
+ ----------------------------------------------------
31
+
32
+ - http://www.swi-prolog.org
33
+
@@ -0,0 +1,44 @@
1
+ %% Demo coming from http://clwww.essex.ac.uk/course/LG519/2-facts/index_18.html
2
+ %%
3
+ %% Please load this file into SWI-Prolog
4
+ %%
5
+ %% Sam's likes and dislikes in food
6
+ %%
7
+ %% Considering the following will give some practice
8
+ %% in thinking about backtracking.
9
+ %%
10
+ %% You can also run this demo online at
11
+ %% http://swish.swi-prolog.org/?code=https://github.com/SWI-Prolog/swipl-devel/raw/master/demo/likes.pl&q=likes(sam,Food).
12
+
13
+ /** <examples>
14
+ ?- likes(sam,dahl).
15
+ ?- likes(sam,chop_suey).
16
+ ?- likes(sam,pizza).
17
+ ?- likes(sam,chips).
18
+ ?- likes(sam,curry).
19
+ */
20
+
21
+ likes(sam,Food) :-
22
+ indian(Food),
23
+ mild(Food).
24
+ likes(sam,Food) :-
25
+ chinese(Food).
26
+ likes(sam,Food) :-
27
+ italian(Food).
28
+ likes(sam,chips).
29
+
30
+ indian(curry).
31
+ indian(dahl).
32
+ indian(tandoori).
33
+ indian(kurma).
34
+
35
+ mild(dahl).
36
+ mild(tandoori).
37
+ mild(kurma).
38
+
39
+ chinese(chow_mein).
40
+ chinese(chop_suey).
41
+ chinese(sweet_and_sour).
42
+
43
+ italian(pizza).
44
+ italian(spaghetti).
@@ -0,0 +1,281 @@
1
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2
+ %%
3
+ %% Thom Fruehwirth ECRC 1991-1993
4
+ %% 910528 started boolean,and,or constraints
5
+ %% 910904 added xor,neg constraints
6
+ %% 911120 added imp constraint
7
+ %% 931110 ported to new release
8
+ %% 931111 added card constraint
9
+ %% 961107 Christian Holzbaur, SICStus mods
10
+ %%
11
+ %% ported to hProlog by Tom Schrijvers June 2003
12
+
13
+
14
+ :- module(bool,[]).
15
+ :- use_module(library(chr)).
16
+
17
+ :- constraints boolean/1, and/3, or/3, xor/3, neg/2, imp/2, labeling/0, card/4.
18
+
19
+
20
+ boolean(0) <=> true.
21
+ boolean(1) <=> true.
22
+
23
+ labeling, boolean(A)#Pc <=>
24
+ ( A=0 ; A=1),
25
+ labeling
26
+ pragma passive(Pc).
27
+
28
+
29
+ %% and/3 specification
30
+ %%and(0,0,0).
31
+ %%and(0,1,0).
32
+ %%and(1,0,0).
33
+ %%and(1,1,1).
34
+
35
+ and(0,X,Y) <=> Y=0.
36
+ and(X,0,Y) <=> Y=0.
37
+ and(1,X,Y) <=> Y=X.
38
+ and(X,1,Y) <=> Y=X.
39
+ and(X,Y,1) <=> X=1,Y=1.
40
+ and(X,X,Z) <=> X=Z.
41
+ %%and(X,Y,X) <=> imp(X,Y).
42
+ %%and(X,Y,Y) <=> imp(Y,X).
43
+ and(X,Y,A) \ and(X,Y,B) <=> A=B.
44
+ and(X,Y,A) \ and(Y,X,B) <=> A=B.
45
+
46
+ labeling, and(A,B,C)#Pc <=>
47
+ label_and(A,B,C),
48
+ labeling
49
+ pragma passive(Pc).
50
+
51
+ label_and(0,X,0).
52
+ label_and(1,X,X).
53
+
54
+
55
+ %% or/3 specification
56
+ %%or(0,0,0).
57
+ %%or(0,1,1).
58
+ %%or(1,0,1).
59
+ %%or(1,1,1).
60
+
61
+ or(0,X,Y) <=> Y=X.
62
+ or(X,0,Y) <=> Y=X.
63
+ or(X,Y,0) <=> X=0,Y=0.
64
+ or(1,X,Y) <=> Y=1.
65
+ or(X,1,Y) <=> Y=1.
66
+ or(X,X,Z) <=> X=Z.
67
+ %%or(X,Y,X) <=> imp(Y,X).
68
+ %%or(X,Y,Y) <=> imp(X,Y).
69
+ or(X,Y,A) \ or(X,Y,B) <=> A=B.
70
+ or(X,Y,A) \ or(Y,X,B) <=> A=B.
71
+
72
+ labeling, or(A,B,C)#Pc <=>
73
+ label_or(A,B,C),
74
+ labeling
75
+ pragma passive(Pc).
76
+
77
+ label_or(0,X,X).
78
+ label_or(1,X,1).
79
+
80
+
81
+ %% xor/3 specification
82
+ %%xor(0,0,0).
83
+ %%xor(0,1,1).
84
+ %%xor(1,0,1).
85
+ %%xor(1,1,0).
86
+
87
+ xor(0,X,Y) <=> X=Y.
88
+ xor(X,0,Y) <=> X=Y.
89
+ xor(X,Y,0) <=> X=Y.
90
+ xor(1,X,Y) <=> neg(X,Y).
91
+ xor(X,1,Y) <=> neg(X,Y).
92
+ xor(X,Y,1) <=> neg(X,Y).
93
+ xor(X,X,Y) <=> Y=0.
94
+ xor(X,Y,X) <=> Y=0.
95
+ xor(Y,X,X) <=> Y=0.
96
+ xor(X,Y,A) \ xor(X,Y,B) <=> A=B.
97
+ xor(X,Y,A) \ xor(Y,X,B) <=> A=B.
98
+
99
+ labeling, xor(A,B,C)#Pc <=>
100
+ label_xor(A,B,C),
101
+ labeling
102
+ pragma passive(Pc).
103
+
104
+ label_xor(0,X,X).
105
+ label_xor(1,X,Y):- neg(X,Y).
106
+
107
+
108
+ %% neg/2 specification
109
+ %%neg(0,1).
110
+ %%neg(1,0).
111
+
112
+ neg(0,X) <=> X=1.
113
+ neg(X,0) <=> X=1.
114
+ neg(1,X) <=> X=0.
115
+ neg(X,1) <=> X=0.
116
+ neg(X,X) <=> fail.
117
+ neg(X,Y) \ neg(Y,Z) <=> X=Z.
118
+ neg(X,Y) \ neg(Z,Y) <=> X=Z.
119
+ neg(Y,X) \ neg(Y,Z) <=> X=Z.
120
+ %% Interaction with other boolean constraints
121
+ neg(X,Y) \ and(X,Y,Z) <=> Z=0.
122
+ neg(Y,X) \ and(X,Y,Z) <=> Z=0.
123
+ neg(X,Z) , and(X,Y,Z) <=> X=1,Y=0,Z=0.
124
+ neg(Z,X) , and(X,Y,Z) <=> X=1,Y=0,Z=0.
125
+ neg(Y,Z) , and(X,Y,Z) <=> X=0,Y=1,Z=0.
126
+ neg(Z,Y) , and(X,Y,Z) <=> X=0,Y=1,Z=0.
127
+ neg(X,Y) \ or(X,Y,Z) <=> Z=1.
128
+ neg(Y,X) \ or(X,Y,Z) <=> Z=1.
129
+ neg(X,Z) , or(X,Y,Z) <=> X=0,Y=1,Z=1.
130
+ neg(Z,X) , or(X,Y,Z) <=> X=0,Y=1,Z=1.
131
+ neg(Y,Z) , or(X,Y,Z) <=> X=1,Y=0,Z=1.
132
+ neg(Z,Y) , or(X,Y,Z) <=> X=1,Y=0,Z=1.
133
+ neg(X,Y) \ xor(X,Y,Z) <=> Z=1.
134
+ neg(Y,X) \ xor(X,Y,Z) <=> Z=1.
135
+ neg(X,Z) \ xor(X,Y,Z) <=> Y=1.
136
+ neg(Z,X) \ xor(X,Y,Z) <=> Y=1.
137
+ neg(Y,Z) \ xor(X,Y,Z) <=> X=1.
138
+ neg(Z,Y) \ xor(X,Y,Z) <=> X=1.
139
+ neg(X,Y) , imp(X,Y) <=> X=0,Y=1.
140
+ neg(Y,X) , imp(X,Y) <=> X=0,Y=1.
141
+
142
+ labeling, neg(A,B)#Pc <=>
143
+ label_neg(A,B),
144
+ labeling
145
+ pragma passive(Pc).
146
+
147
+ label_neg(0,1).
148
+ label_neg(1,0).
149
+
150
+
151
+ %% imp/2 specification (implication)
152
+ %%imp(0,0).
153
+ %%imp(0,1).
154
+ %%imp(1,1).
155
+
156
+ imp(0,X) <=> true.
157
+ imp(X,0) <=> X=0.
158
+ imp(1,X) <=> X=1.
159
+ imp(X,1) <=> true.
160
+ imp(X,X) <=> true.
161
+ imp(X,Y),imp(Y,X) <=> X=Y.
162
+
163
+ labeling, imp(A,B)#Pc <=>
164
+ label_imp(A,B),
165
+ labeling
166
+ pragma passive(Pc).
167
+
168
+ label_imp(0,X).
169
+ label_imp(1,1).
170
+
171
+
172
+
173
+ %% Boolean cardinality operator
174
+ %% card(A,B,L,N) constrains list L of length N to have between A and B 1s
175
+
176
+
177
+ card(A,B,L):-
178
+ length(L,N),
179
+ A=<B,0=<B,A=<N, %0=<N
180
+ card(A,B,L,N).
181
+
182
+ %% card/4 specification
183
+ %%card(A,B,[],0):- A=<0,0=<B.
184
+ %%card(A,B,[0|L],N):-
185
+ %% N1 is N-1,
186
+ %% card(A,B,L,N1).
187
+ %%card(A,B,[1|L],N):-
188
+ %% A1 is A-1, B1 is B-1, N1 is N-1,
189
+ %% card(A1,B1,L,N1).
190
+
191
+ triv_sat @ card(A,B,L,N) <=> A=<0,N=<B | true. % trivial satisfaction
192
+ pos_sat @ card(N,B,L,N) <=> set_to_ones(L). % positive satisfaction
193
+ neg_sat @ card(A,0,L,N) <=> set_to_zeros(L). % negative satisfaction
194
+ pos_red @ card(A,B,L,N) <=> b_delete(X,L,L1),X==1 | % positive reduction
195
+ A1 is A-1, B1 is B-1, N1 is N-1,
196
+ card(A1,B1,L1,N1).
197
+ neg_red @ card(A,B,L,N) <=> b_delete(X,L,L1),X==0 | % negative reduction
198
+ N1 is N-1,
199
+ card(A,B,L1,N1).
200
+ %% special cases with two variables
201
+ card2nand @ card(0,1,[X,Y],2) <=> and(X,Y,0).
202
+ card2neg @ card(1,1,[X,Y],2) <=> neg(X,Y).
203
+ card2or @ card(1,2,[X,Y],2) <=> or(X,Y,1).
204
+
205
+ b_delete( X, [X|L], L).
206
+ b_delete( Y, [X|Xs], [X|Xt]) :-
207
+ b_delete( Y, Xs, Xt).
208
+
209
+ labeling, card(A,B,L,N)#Pc <=>
210
+ label_card(A,B,L,N),
211
+ labeling
212
+ pragma passive(Pc).
213
+
214
+ label_card(A,B,[],0):- A=<0,0=<B.
215
+ label_card(A,B,[0|L],N):-
216
+ N1 is N-1,
217
+ card(A,B,L).
218
+ label_card(A,B,[1|L],N):-
219
+ A1 is A-1, B1 is B-1, N1 is N-1,
220
+ card(A1,B1,L).
221
+
222
+ set_to_ones([]).
223
+ set_to_ones([1|L]):-
224
+ set_to_ones(L).
225
+
226
+ set_to_zeros([]).
227
+ set_to_zeros([0|L]):-
228
+ set_to_zeros(L).
229
+
230
+
231
+
232
+ %% Auxiliary predicates
233
+
234
+ :- op(100,xfy,#).
235
+
236
+ solve_bool(A,C) :- var(A), !, A=C.
237
+ solve_bool(A,C) :- atomic(A), !, A=C.
238
+ solve_bool(A * B, C) :- !,
239
+ solve_bool(A,A1),
240
+ solve_bool(B,B1),
241
+ and(A1,B1,C).
242
+ solve_bool(A + B, C) :- !,
243
+ solve_bool(A,A1),
244
+ solve_bool(B,B1),
245
+ or(A1,B1,C).
246
+ solve_bool(A # B, C) :- !,
247
+ solve_bool(A,A1),
248
+ solve_bool(B,B1),
249
+ xor(A1,B1,C).
250
+ solve_bool(not(A),C) :- !,
251
+ solve_bool(A,A1),
252
+ neg(A1,C).
253
+ solve_bool((A -> B), C) :- !,
254
+ solve_bool(A,A1),
255
+ solve_bool(B,B1),
256
+ imp(A1,B1),C=1.
257
+ solve_bool(A = B, C) :- !,
258
+ solve_bool(A,A1),
259
+ solve_bool(B,B1),
260
+ A1=B1,C=1.
261
+
262
+ %% Labeling
263
+ label_bool([]).
264
+ label_bool([X|L]) :-
265
+ ( X=0;X=1),
266
+ label_bool(L).
267
+
268
+ /* % no write macros in SICStus and hProlog
269
+
270
+ bool_portray(and(A,B,C),Out):- !, Out = (A*B = C).
271
+ bool_portray(or(A,B,C),Out):- !, Out = (A+B = C).
272
+ bool_portray(xor(A,B,C),Out):- !, Out = (A#B = C).
273
+ bool_portray(neg(A,B),Out):- !, Out = (A= not(B)).
274
+ bool_portray(imp(A,B),Out):- !, Out = (A -> B).
275
+ bool_portray(card(A,B,L,N),Out):- !, Out = card(A,B,L).
276
+
277
+ :- define_macro(type(compound),bool_portray/2,[write]).
278
+ */
279
+
280
+ /* end of handler bool */
281
+
@@ -0,0 +1,87 @@
1
+ /* Part of CHR (Constraint Handling Rules)
2
+
3
+ Author: Tom Schrijvers
4
+ E-mail: Tom.Schrijvers@cs.kuleuven.be
5
+ WWW: http://www.swi-prolog.org
6
+ Copyright (c) 2004-2011, K.U. Leuven
7
+ All rights reserved.
8
+
9
+ Redistribution and use in source and binary forms, with or without
10
+ modification, are permitted provided that the following conditions
11
+ are met:
12
+
13
+ 1. Redistributions of source code must retain the above copyright
14
+ notice, this list of conditions and the following disclaimer.
15
+
16
+ 2. Redistributions in binary form must reproduce the above copyright
17
+ notice, this list of conditions and the following disclaimer in
18
+ the documentation and/or other materials provided with the
19
+ distribution.
20
+
21
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24
+ FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25
+ COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27
+ BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31
+ ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32
+ POSSIBILITY OF SUCH DAMAGE.
33
+ */
34
+
35
+ :- module(chrdif,[chrdif/2]).
36
+ :- use_module(library(chr)).
37
+
38
+ :- constraints dif/2, dif2/3, or/2, or_seq/2, del_or/1.
39
+
40
+ chrdif(X,Y) :- dif(X,Y).
41
+
42
+ dif(X,Y) <=> compound(X), compound(Y) | dif1(X,Y).
43
+ dif(X,X) <=> fail.
44
+ dif(X,Y) <=> nonvar(X), nonvar(Y) /* X \== Y holds */ | true.
45
+
46
+ dif1(X,Y) :-
47
+ ( functor(X,F,A),
48
+ functor(Y,F,A) ->
49
+ X =.. [_|XL],
50
+ Y =.. [_|YL],
51
+ dif1l(XL,YL,A)
52
+ ;
53
+ true
54
+ ).
55
+
56
+ dif1l(Xs,Ys,N) :-
57
+ or(Or,N),
58
+ dif1l_2(Xs,Ys,Or).
59
+
60
+ dif1l_2([],[],_).
61
+ dif1l_2([X|Xs],[Y|Ys],Or) :-
62
+ dif2(X,Y,Or),
63
+ dif1l_2(Xs,Ys,Or).
64
+
65
+ or_seq(OrP,Or) \ or(Or,0), or(OrP,N) <=> M is N - 1, or_seq(OrP,M).
66
+ or(_,0) <=> fail.
67
+
68
+ dif2(X,Y,Or) <=> compound(X), compound(Y) | dif3(X,Y,Or).
69
+ dif2(X,X,Or), or(Or,N) <=> M is N - 1, or(Or,M).
70
+ dif2(X,Y,Or) <=> nonvar(X), nonvar(Y) /* X \== Y holds */ | del_or(Or).
71
+
72
+ del_or(Or) \ or_seq(OrP,Or) <=> del_or(OrP).
73
+ del_or(Or) \ or_seq(Or,OrC) <=> del_or(OrC).
74
+ del_or(Or) \ or(Or,_) <=> true.
75
+ del_or(Or) \ dif2(_,_,Or) <=> true.
76
+ del_or(Or) <=> true.
77
+
78
+ dif3(X,Y,Or) :-
79
+ ( functor(X,F,A),
80
+ functor(Y,F,A) ->
81
+ X =.. [_|XL],
82
+ Y =.. [_|YL],
83
+ or_seq(Or,Or2),
84
+ dif1l(XL,YL,A)
85
+ ;
86
+ del_or(Or)
87
+ ).
@@ -0,0 +1,6 @@
1
+ :- module(chrfreeze,[chrfreeze/2]).
2
+ :- use_module(library(chr)).
3
+
4
+ :- constraints chrfreeze/2.
5
+
6
+ chrfreeze(V,G) <=> nonvar(V) | call(G).
@@ -0,0 +1,116 @@
1
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2
+ %%
3
+ %% 000401 Slim Abdennadher and Henning Christiansen
4
+ %%
5
+ %% ported to hProlog by Tom Schrijvers
6
+
7
+ :- module(family,[]).
8
+
9
+ :- use_module(library(chr)).
10
+
11
+ :- constraints
12
+ % extensional predicates:
13
+ person/2, father/2, mother/2,
14
+ orphan/1,
15
+ % intensional predicates:
16
+ parent/2, sibling/2,
17
+ % predefined:
18
+ diff/2,
19
+ % a little helper:
20
+ start/0.
21
+
22
+ % Representing the test for failed state, i.e.,
23
+ % that the 'predefined' are satisfiable
24
+
25
+ diff(X,X) ==> false.
26
+
27
+
28
+
29
+ % Definition rules:
30
+
31
+ parent_def @
32
+ parent(P,C) <=> (true | (father(P,C) ; mother(P,C))).
33
+
34
+ sibling_def @
35
+ sibling(C1,C2) <=>
36
+ diff(C1,C2),
37
+ parent(P,C1), parent(P,C2).
38
+
39
+ ext_intro @
40
+ start <=> father(john,mary), father(john,peter),
41
+ mother(jane,mary),
42
+ person(john,male), person(peter,male),
43
+ person(jane,female), person(mary,female),
44
+ person(paul,male).
45
+
46
+
47
+
48
+ % Closing rules
49
+ father_close @
50
+ father(X,Y) ==> ( true | ((X=john, Y=mary) ; (X=john, Y=peter))).
51
+
52
+ % mother close @
53
+ mother(X,Y) ==> X=jane, Y=mary.
54
+
55
+ % person_close @
56
+ person(X,Y) ==> ( true | ( (X=john, Y=male) ;
57
+ (X=peter, Y=male) ;
58
+ (X=jane, Y=female) ;
59
+ (X=mary, Y=female) ;
60
+ (X=paul, Y=male)
61
+ )
62
+ ).
63
+
64
+
65
+
66
+ % ICs
67
+
68
+ ic_father_unique @
69
+ father(F1,C),father(F2,C) ==> F1=F2.
70
+
71
+
72
+ ic_mother_unique @
73
+ mother(M1,C),mother(M2,C) ==> M1=M2.
74
+
75
+ ic_gender_unique @
76
+ person(P,G1), person(P,G2) ==> G1=G2.
77
+
78
+ ic_father_persons @
79
+ father(F,C) ==> person(F,male), person(C,S).
80
+
81
+ ic_mother_persons @
82
+ mother(M,C) ==> person(M,female), person(C,G).
83
+
84
+ % Indirect def.
85
+
86
+ orphan1 @
87
+ orphan(C) ==> person(C,G).
88
+
89
+ orphan2 @
90
+ orphan(C), /* person(F,male),*/ father(F,C) ==> false.
91
+
92
+ orphan3 @
93
+ orphan(C), /* person(M,female),*/ mother(M,C) ==> false.
94
+
95
+
96
+
97
+ %%%% The following just to simplify output;
98
+
99
+
100
+ father(F,C) \ father(F,C)<=> true.
101
+ mother(M,C) \ mother(M,C)<=> true.
102
+ person(M,C) \ person(M,C)<=> true.
103
+ orphan(C) \ orphan(C)<=> true.
104
+
105
+
106
+ /*************************************************
107
+ Sample goals
108
+
109
+ :- start, sibling(peter,mary).
110
+
111
+ :- start, sibling(paul,mary).
112
+
113
+ :- father(X,Y), mother(X,Y).
114
+
115
+ **************************************************/
116
+
@@ -0,0 +1,24 @@
1
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2
+ %%
3
+ %% 991202 Slim Abdennadher, LMU
4
+ %%
5
+ %% ported to hProlog by Tom Schrijvers
6
+
7
+ :- module(fib,[]).
8
+
9
+ :- use_module(library(chr)).
10
+
11
+ :- constraints fib/2.
12
+
13
+ %% fib(N,M) is true if M is the Nth Fibonacci number.
14
+
15
+ %% Top-down Evaluation with Tabulation
16
+
17
+ fib(N,M1), fib(N,M2) <=> M1 = M2, fib(N,M1).
18
+
19
+ fib(0,M) ==> M = 1.
20
+
21
+ fib(1,M) ==> M = 1.
22
+
23
+ fib(N,M) ==> N > 1 | N1 is N-1, fib(N1,M1), N2 is N-2, fib(N2,M2), M is M1 + M2.
24
+
@@ -0,0 +1,31 @@
1
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2
+ %%
3
+ %% 16 June 2003 Bart Demoen, Tom Schrijvers, K.U.Leuven
4
+ %%
5
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6
+
7
+ :- module(fibonacci,[]).
8
+
9
+ :- use_module(library(chr)).
10
+
11
+ :- constraints fibonacci/2.
12
+
13
+ %% fibonacci(N,M) is true iff M is the Nth Fibonacci number.
14
+
15
+ %% Top-down Evaluation with effective Tabulation
16
+ %% Contrary to the version in the SICStus manual, this one does "true"
17
+ %% tabulation
18
+
19
+ fibonacci(N,M1) # Id \ fibonacci(N,M2) <=> var(M2) | M1 = M2 pragma passive(Id).
20
+
21
+ fibonacci(0,M) ==> M = 1.
22
+
23
+ fibonacci(1,M) ==> M = 1.
24
+
25
+ fibonacci(N,M) ==>
26
+ N > 1 |
27
+ N1 is N-1,
28
+ fibonacci(N1,M1),
29
+ N2 is N-2,
30
+ fibonacci(N2,M2),
31
+ M is M1 + M2.
@@ -0,0 +1,28 @@
1
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2
+ %%
3
+ %% 980202, 980311 Thom Fruehwirth, LMU
4
+ %% computes greatest common divisor of positive numbers written each as gcd(N)
5
+ %%
6
+ %% ported to hProlog by Tom Schrijvers
7
+
8
+ :- module(gcd,[]).
9
+
10
+ :- use_module( library(chr)).
11
+
12
+ :- constraints gcd/1.
13
+
14
+ gcd(0) <=> true.
15
+ %%gcd(N) \ gcd(M) <=> N=<M | L is M-N, gcd(L).
16
+ gcd(N) \ gcd(M) <=> N=<M | L is M mod N, gcd(L). % faster variant
17
+
18
+ /*
19
+ %% Sample queries
20
+
21
+ gcd(2),gcd(3).
22
+
23
+ gcd(1.5),gcd(2.5).
24
+
25
+ X is 37*11*11*7*3, Y is 11*7*5*3, Z is 37*11*5,gcd(X),gcd(Y),gcd(Z).
26
+
27
+ */
28
+
@@ -0,0 +1,34 @@
1
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2
+ %%
3
+ %% simple constraint solver for inequalities between variables
4
+ %% thom fruehwirth ECRC 950519, LMU 980207, 980311
5
+ %%
6
+ %% ported to hProlog by Tom Schrijvers
7
+
8
+ :- module(leq,[]).
9
+ :- use_module(library(chr)).
10
+
11
+ :- constraints leq/2.
12
+ reflexivity @ leq(X,X) <=> true.
13
+ antisymmetry @ leq(X,Y), leq(Y,X) <=> X = Y.
14
+ idempotence @ leq(X,Y) \ leq(X,Y) <=> true.
15
+ transitivity @ leq(X,Y), leq(Y,Z) ==> leq(X,Z).
16
+
17
+ time(N):-
18
+ cputime(X),
19
+ length(L,N),
20
+ genleq(L,Last),
21
+ L=[First|_],
22
+ leq(Last,First),
23
+ cputime( Now),
24
+ Time is Now-X,
25
+ write(N-Time), nl.
26
+
27
+ genleq([Last],Last) :- ! .
28
+ genleq([X,Y|Xs],Last):-
29
+ leq(X,Y),
30
+ genleq([Y|Xs],Last).
31
+
32
+ cputime( Ts) :-
33
+ statistics( runtime, [Tm,_]),
34
+ Ts is Tm/1000.