├── .clang-format ├── .fileheader ├── .github ├── FUNDING.yml └── workflows │ └── ci.yml ├── .gitignore ├── .gitmodules ├── .travis.yml ├── CMAKE.md ├── CMakeLists.txt ├── Code-of-Conduct.md ├── INSTALL.md ├── LICENSE ├── README.md ├── README.mingw ├── VERSION ├── app ├── README.md ├── app.pl ├── pack.pl ├── qlf.pl ├── splfr.pl └── sys.pl ├── boot ├── apply.pl ├── attvar.pl ├── autoload.pl ├── bags.pl ├── build_home.pl ├── dcg.pl ├── dicts.pl ├── dwim.pl ├── engines.pl ├── expand.pl ├── gc.pl ├── history.pl ├── init.pl ├── iri.pl ├── license.pl ├── load.pl ├── messages.pl ├── packs.pl ├── predopts.pl ├── qlf.pl ├── rc.pl ├── syspred.pl ├── tabling.pl ├── threads.pl ├── toplevel.pl └── topvars.pl ├── cmake ├── AlignOf.cmake ├── AndroidTargets.cmake ├── BuildType.cmake ├── CStack.cmake ├── CheckAlignment.c ├── CheckEnv.cmake ├── CheckFloatingPointFormat.c ├── CheckFloatingPointFormat.cmake ├── CheckInstallation.cmake ├── Config.cmake ├── Dependencies.cmake ├── Desktop.cmake ├── DocDepends.cmake ├── Documentation.cmake ├── EmscriptenTargets.cmake ├── FindGMP.cmake ├── FindLibTCMalloc.cmake ├── GCCBuiltins.cmake ├── GitVersion.cmake ├── Install.cmake ├── InstallSource.cmake ├── LibIndex.cmake ├── Locations.cmake ├── LocationsPostPorts.cmake ├── MacOSXBundleInfo.plist.in ├── PGO.cmake ├── Pack.cmake ├── PackageSelection.cmake ├── Params.cmake ├── Ports.cmake ├── QLF.cmake ├── SWIPLConfig.cmake.in ├── StaticPackages.cmake ├── TestBSDSignals.c ├── TestBSDSignals.cmake ├── TestFileOffsetBits.c ├── TestGNUQsortR.c ├── TestGNUQsortR.cmake ├── TestHeaderTime.cmake ├── TestLLRound.c ├── TestLLRound.cmake ├── TestLargeFiles.c.cmake.in ├── TestLargeFiles.cmake ├── TestModF.c ├── TestModF.cmake ├── TestRecursiveMutex.cmake ├── TestSCNProcessors.c ├── TestSCNProcessors.cmake ├── TestSignalType.c ├── TestSignalType.cmake ├── TestWindowsFSeek.c ├── Utils.cmake ├── Version.cmake ├── cross │ ├── linux_i386.cmake │ ├── linux_win32.cmake │ └── linux_win64.cmake ├── pack_summary.txt ├── pgo-timestamp.h.in ├── port │ ├── Android.cmake │ ├── CondaWindows.cmake │ ├── Darwin.cmake │ ├── Emscripten.cmake │ ├── MSYS2.cmake │ ├── MinGW.cmake │ └── Windows.cmake └── swipl.cmake ├── customize ├── README.md ├── edit └── init.pl ├── demo ├── README.md ├── colours.pl └── likes.pl ├── desktop ├── Info.plist.in ├── README.md ├── make_icns.sh ├── prolog-mime.xml ├── swipl-256.png ├── swipl-cli.png ├── swipl-win.desktop.in ├── swipl.desktop.in └── swipl.png ├── doc ├── README.md ├── Release.md └── Testing.md ├── library ├── aggregate.pl ├── ansi_term.pl ├── apply.pl ├── apply_macros.pl ├── arithmetic.pl ├── assoc.pl ├── atom.pl ├── backcomp.pl ├── base32.pl ├── base64.pl ├── broadcast.pl ├── build │ ├── build.pl │ ├── cmake.pl │ ├── conan.pl │ ├── make.pl │ └── tools.pl ├── charsio.pl ├── check.pl ├── check_installation.pl ├── clp │ ├── bounds.pl │ ├── clp_distinct.pl │ ├── clp_events.pl │ ├── clpb.pl │ ├── clpfd.pl │ └── simplex.pl ├── codesio.pl ├── coinduction.pl ├── console_input.pl ├── csv.pl ├── ctypes.pl ├── date.pl ├── dcg │ ├── basics.pl │ └── high_order.pl ├── dde.pl ├── debug.pl ├── dialect.pl ├── dialect │ ├── bim.pl │ ├── commons.pl │ ├── eclipse │ │ └── test_util_iso.pl │ ├── hprolog.pl │ ├── hprolog │ │ └── format.pl │ ├── ifprolog.pl │ ├── iso │ │ └── iso_predicates.pl │ ├── sicstus.pl │ ├── sicstus │ │ ├── README.TXT │ │ ├── arrays.pl │ │ ├── block.pl │ │ ├── lists.pl │ │ ├── ordsets.pl │ │ ├── sockets.pl │ │ ├── system.pl │ │ ├── terms.pl │ │ └── timeout.pl │ ├── sicstus4.pl │ ├── sicstus4 │ │ ├── aggregate.pl │ │ ├── between.pl │ │ ├── clpfd.pl │ │ ├── file_systems.pl │ │ ├── lists.pl │ │ ├── ordsets.pl │ │ ├── samsort.pl │ │ ├── sets.pl │ │ ├── sockets.pl │ │ ├── system.pl │ │ ├── terms.pl │ │ ├── timeout.pl │ │ └── types.pl │ ├── swi │ │ └── syspred_options.pl │ ├── tau.pl │ ├── tau │ │ └── dom.pl │ ├── xsb.pl │ ├── xsb │ │ ├── README.md │ │ ├── basics.pl │ │ ├── consult.pl │ │ ├── curr_sym.pl │ │ ├── error_handler.pl │ │ ├── gensym.pl │ │ ├── gpp.pl │ │ ├── intern.pl │ │ ├── lists.pl │ │ ├── machine.pl │ │ ├── ordsets.pl │ │ ├── setof.pl │ │ ├── source.pl │ │ ├── standard.pl │ │ ├── storage.pl │ │ ├── string.pl │ │ ├── thread.pl │ │ └── timed_call.pl │ ├── yap.pl │ └── yap │ │ └── README.TXT ├── dicts.pl ├── dif.pl ├── dom.pl ├── edinburgh.pl ├── edit.pl ├── error.pl ├── exceptions.pl ├── explain.pl ├── fastrw.pl ├── files.pl ├── gensym.pl ├── git.pl ├── hashtable.pl ├── heaps.pl ├── help.pl ├── hotfix.pl ├── increval.pl ├── intercept.pl ├── iostream.pl ├── iri_scheme │ └── file.pl ├── lazy_lists.pl ├── listing.pl ├── lists.pl ├── lynx │ ├── format.pl │ ├── html_style.pl │ ├── html_text.pl │ └── pldoc_style.pl ├── macros.pl ├── main.pl ├── make.pl ├── modules.pl ├── nb_rbtrees.pl ├── nb_set.pl ├── obfuscate.pl ├── occurs.pl ├── operators.pl ├── option.pl ├── optparse.pl ├── ordsets.pl ├── oset.pl ├── pairs.pl ├── persistency.pl ├── pio.pl ├── portray_text.pl ├── pprint.pl ├── predicate_options.pl ├── progman.pl ├── prolog_autoload.pl ├── prolog_breakpoints.pl ├── prolog_clause.pl ├── prolog_code.pl ├── prolog_codewalk.pl ├── prolog_colour.pl ├── prolog_config.pl ├── prolog_coverage.pl ├── prolog_debug.pl ├── prolog_deps.pl ├── prolog_evaluable.pl ├── prolog_format.pl ├── prolog_history.pl ├── prolog_jiti.pl ├── prolog_locale.pl ├── prolog_metainference.pl ├── prolog_pack.pl ├── prolog_profile.pl ├── prolog_qlfmake.pl ├── prolog_source.pl ├── prolog_stack.pl ├── prolog_trace.pl ├── prolog_versions.pl ├── prolog_wrap.pl ├── prolog_xref.pl ├── pure_input.pl ├── qpforeign.pl ├── qsave.pl ├── quasi_quotations.pl ├── quintus.pl ├── random.pl ├── rbtrees.pl ├── readln.pl ├── readutil.pl ├── record.pl ├── rwlocks.pl ├── sandbox.pl ├── settings.pl ├── shell.pl ├── shlib.pl ├── solution_sequences.pl ├── sort.pl ├── statistics.pl ├── streams.pl ├── strings.pl ├── system.pl ├── tables.pl ├── tabling.pl ├── terms.pl ├── theme │ ├── auto.pl │ ├── dark.pl │ └── light.pl ├── thread.pl ├── thread_pool.pl ├── threadutil.pl ├── tty.pl ├── ugraphs.pl ├── unicode │ ├── blocks.pl │ └── unicode_data.pl ├── url.pl ├── utf8.pl ├── varnumbers.pl ├── vm.pl ├── wasm.pl ├── wfs.pl ├── when.pl ├── writef.pl ├── www_browser.pl ├── yall.pl └── zip.pl ├── man ├── .gitignore ├── CMakeLists.txt ├── Makefile.pdf ├── README.md ├── abstract.doc ├── attvar.doc ├── bit64.doc ├── bk9.clo ├── builtin.doc ├── calc.c ├── calc.pl ├── chr.doc ├── correctindex ├── dialect.doc ├── doc2tex.pl ├── engines.doc ├── extensions.doc ├── fancychap.sty ├── fancyheadings.sty ├── figs │ ├── broadcast.eps │ ├── broadcast.pdf │ ├── broadcast.png │ ├── by-sa.eps │ ├── by-sa.pdf │ ├── by-sa.png │ ├── profnode.gif │ ├── profnode.png │ ├── swipl.pdf │ ├── swipl.png │ ├── xrefchatdep.gif │ ├── xrefchatdep.png │ ├── xrefchatfile.gif │ └── xrefchatfile.png ├── foreign.doc ├── gen │ └── swipl.bbl ├── glossary.doc ├── hack.doc ├── heaps.doc ├── html.sty ├── ide.doc ├── intro.doc ├── lib │ ├── assoc.doc │ ├── assoclib.md │ ├── broadcast.doc │ ├── clpb.doc │ ├── clpblib.md │ ├── clpfd.doc │ ├── clpfdlib.md │ ├── clpqr.doc │ ├── library.doc │ ├── libsummary.doc │ ├── nbset.doc │ ├── pio.doc │ ├── predicateoptions.doc │ ├── predopts.txt │ ├── record.doc │ ├── registry.doc │ ├── simplex.doc │ ├── simplexlib.md │ └── summaries.d │ │ └── clpfd.tex ├── license.doc ├── logo.sty ├── macosx │ ├── License.html │ ├── SWIapp.html │ ├── Welcome.html │ └── macosx.doc ├── main.doc ├── makeindex.ist ├── module.doc ├── name.bst ├── overview.doc ├── packs.doc ├── pl.bib ├── pl.sty ├── pldoc2tex.pl ├── plonline.sty ├── plpage.sty ├── profile.doc ├── runtex ├── runtime.doc ├── select.pl ├── ssu.doc ├── streams.doc ├── summary.doc ├── swipl.cls ├── tabling.doc ├── tagiso.pl ├── textdebugger.md ├── threads.doc ├── wasm.doc ├── windows.doc ├── xpce.doc └── xref.doc ├── packages ├── .gitignore ├── README ├── cmake │ ├── PackageDoc.cmake │ ├── PrologPackage.cmake │ └── Sockets.cmake └── index.html ├── scripts ├── README.md ├── callgrind.sh ├── check_build_log.sh ├── clean-build ├── conda_utils.py ├── configure ├── findmacros.pl ├── gcov-swipl ├── gdbinit ├── indent.sh ├── looptest.sh ├── macos-deps.sh ├── macos-import-arch.sh ├── macosx_bundle_fixup.sh ├── make-distribution ├── make-export ├── make-ppa ├── make-src-tape ├── make-windows-daily.sh ├── mkchangelog ├── newversion ├── swipl-activate ├── swipl-bt ├── swipl-ld.sh ├── swipl.sh ├── unused.sh ├── update-macports ├── upload-pack └── xref_packages.pl ├── src ├── .fileheader ├── .gitignore ├── ATOMS ├── CMakeLists.txt ├── SWI-Prolog.h ├── Unicode │ ├── .gitignore │ ├── README.md │ ├── derived_core_properties.pl │ └── prolog_syntax_map.pl ├── compat │ ├── YapInterface.h │ ├── sicstus.h │ └── yap.c ├── config.h.cmake ├── config │ └── wincfg.h ├── defatom.c ├── libbf │ ├── REAME.md │ ├── bf_gmp.c │ ├── bf_gmp.h │ ├── bf_gmp_types.h │ ├── bf_test.pl │ ├── cutils.c │ ├── cutils.h │ ├── libbf.c │ ├── libbf.h │ ├── mersenne-twister.c │ └── mersenne-twister.h ├── libtai │ ├── BLURB │ ├── CHANGES │ ├── FILES │ ├── INSTALL │ ├── README │ ├── THANKS │ ├── TODO │ ├── VERSION │ ├── caldate.3 │ ├── caldate.h │ ├── caldate_fmjd.c │ ├── caldate_fmt.c │ ├── caldate_mjd.3 │ ├── caldate_mjd.c │ ├── caldate_norm.c │ ├── caldate_scan.c │ ├── caldate_ster.c │ ├── caltime.3 │ ├── caltime.h │ ├── caltime_fmt.c │ ├── caltime_scan.c │ ├── caltime_tai.3 │ ├── caltime_tai.c │ ├── caltime_utc.c │ ├── check.c │ ├── check.in │ ├── check.out │ ├── easter.c │ ├── leapsecs.3 │ ├── leapsecs.c │ ├── leapsecs.dat │ ├── leapsecs.h │ ├── leapsecs.txt │ ├── leapsecs_add.c │ ├── leapsecs_init.c │ ├── leapsecs_read.c │ ├── leapsecs_sub.c │ ├── nowutc.c │ ├── tai.3 │ ├── tai.h │ ├── tai_add.c │ ├── tai_now.3 │ ├── tai_now.c │ ├── tai_pack.3 │ ├── tai_pack.c │ ├── tai_sub.c │ ├── tai_unpack.c │ ├── taia.3 │ ├── taia.h │ ├── taia_add.c │ ├── taia_approx.c │ ├── taia_fmtfrac.c │ ├── taia_frac.c │ ├── taia_half.c │ ├── taia_less.c │ ├── taia_now.3 │ ├── taia_now.c │ ├── taia_pack.3 │ ├── taia_pack.c │ ├── taia_sub.c │ ├── taia_tai.c │ ├── taia_unpack.c │ └── yearcal.c ├── make.cmd ├── minizip │ ├── Makefile.am │ ├── MiniZip64_Changes.txt │ ├── MiniZip64_info.txt │ ├── configure.ac │ ├── crypt.h │ ├── file.zip │ ├── ioapi.c │ ├── ioapi.h │ ├── iowin32.c │ ├── iowin32.h │ ├── make_vms.com │ ├── miniunz.c │ ├── miniunzip.1 │ ├── minizip.1 │ ├── minizip.c │ ├── minizip.pc.in │ ├── mztools.c │ ├── mztools.h │ ├── unzip.c │ ├── unzip.h │ ├── zip.c │ └── zip.h ├── mkvmi.c ├── os │ ├── README │ ├── SWI-Stream.h │ ├── atoms.sh │ ├── dtoa.c │ ├── pl-apple.c │ ├── pl-apple.h │ ├── pl-beos.c │ ├── pl-buffer.c │ ├── pl-buffer.h │ ├── pl-codelist.c │ ├── pl-cstack.c │ ├── pl-cstack.h │ ├── pl-ctype.c │ ├── pl-ctype.h │ ├── pl-dtoa.c │ ├── pl-dtoa.h │ ├── pl-file.c │ ├── pl-file.h │ ├── pl-files.c │ ├── pl-files.h │ ├── pl-fmt.c │ ├── pl-fmt.h │ ├── pl-glob.c │ ├── pl-locale.c │ ├── pl-locale.h │ ├── pl-option.c │ ├── pl-option.h │ ├── pl-os.c │ ├── pl-os.h │ ├── pl-prologflag.c │ ├── pl-prologflag.h │ ├── pl-stream.c │ ├── pl-stream.h │ ├── pl-string.c │ ├── pl-string.h │ ├── pl-table.c │ ├── pl-table.h │ ├── pl-tai.c │ ├── pl-text.c │ ├── pl-text.h │ ├── pl-utf8.c │ ├── pl-utf8.h │ └── windows │ │ ├── README │ │ ├── dirent.h │ │ ├── dwarf-debug.c │ │ ├── ssl_applink.c │ │ ├── utf8.c │ │ ├── utf8.h │ │ ├── uxnt.c │ │ └── uxnt.h ├── parms.h.cmake ├── pl-alloc-inline.h ├── pl-alloc.c ├── pl-alloc.h ├── pl-allocpool.c ├── pl-allocpool.h ├── pl-arith.c ├── pl-arith.h ├── pl-assert.c ├── pl-atom.c ├── pl-atom.h ├── pl-attvar.c ├── pl-attvar.h ├── pl-bag.c ├── pl-bag.h ├── pl-bf.c ├── pl-bf.h ├── pl-btree.c ├── pl-builtin.h ├── pl-codelist.h ├── pl-codetable.c ├── pl-comp.c ├── pl-comp.h ├── pl-cont.c ├── pl-cont.h ├── pl-copyterm.c ├── pl-copyterm.h ├── pl-coverage.c ├── pl-coverage.h ├── pl-data.h ├── pl-dbref.c ├── pl-dbref.h ├── pl-dde.c ├── pl-debug.c ├── pl-debug.h ├── pl-dict.c ├── pl-dict.h ├── pl-dwim.c ├── pl-dwim.h ├── pl-error.c ├── pl-error.h ├── pl-event.c ├── pl-event.h ├── pl-export ├── pl-ext.c ├── pl-ext.h ├── pl-flag.c ├── pl-flag.h ├── pl-fli.c ├── pl-fli.h ├── pl-funct.c ├── pl-funct.h ├── pl-gc.c ├── pl-gc.h ├── pl-global.h ├── pl-gmp.c ├── pl-gmp.h ├── pl-gvar.c ├── pl-gvar.h ├── pl-hash.c ├── pl-hash.h ├── pl-incl.h ├── pl-index.c ├── pl-index.h ├── pl-indirect.c ├── pl-indirect.h ├── pl-init.c ├── pl-init.h ├── pl-inline.h ├── pl-ldpass.h ├── pl-list.c ├── pl-load.c ├── pl-load.h ├── pl-macros.h ├── pl-main.c ├── pl-modul.c ├── pl-modul.h ├── pl-mutex.c ├── pl-mutex.h ├── pl-nt.c ├── pl-nt.h ├── pl-ntconsole.c ├── pl-ntconsole.h ├── pl-op.c ├── pl-op.h ├── pl-prims.c ├── pl-prims.h ├── pl-privitf.c ├── pl-privitf.h ├── pl-pro.c ├── pl-pro.h ├── pl-proc.c ├── pl-proc.h ├── pl-prof.c ├── pl-prof.h ├── pl-qlf.c ├── pl-qlf.h ├── pl-read.c ├── pl-read.h ├── pl-rec.c ├── pl-rec.h ├── pl-ressymbol.c ├── pl-ressymbol.h ├── pl-rsort.c ├── pl-rsort.h ├── pl-segstack.c ├── pl-segstack.h ├── pl-setup.c ├── pl-setup.h ├── pl-srcfile.c ├── pl-srcfile.h ├── pl-string.c ├── pl-supervisor.c ├── pl-supervisor.h ├── pl-sys.c ├── pl-tabling.c ├── pl-tabling.h ├── pl-term.c ├── pl-term.h ├── pl-termhash.c ├── pl-termhash.h ├── pl-termset.c ├── pl-termset.h ├── pl-termwalk.c ├── pl-thread.c ├── pl-thread.h ├── pl-trace.c ├── pl-trace.h ├── pl-transaction.c ├── pl-transaction.h ├── pl-trie.c ├── pl-trie.h ├── pl-umap.c ├── pl-undo.c ├── pl-undo.h ├── pl-util.c ├── pl-util.h ├── pl-variant.c ├── pl-variant.h ├── pl-version.c ├── pl-version.h ├── pl-vmi.c ├── pl-vmi.h ├── pl-wam.c ├── pl-wam.h ├── pl-wrap.c ├── pl-wrap.h ├── pl-write.c ├── pl-write.h ├── pl-zip.c ├── pl-zip.h ├── swipl-ld.1 ├── swipl-ld.c ├── swipl.1.in ├── swipl.ico ├── swipl.manifest ├── swipl.pc.in ├── swipl.rc ├── test │ ├── dmalloc.c │ ├── dmalloc.pl │ ├── gdbinit │ ├── lwrcase.c │ ├── mk │ ├── nop.c │ ├── recmutex.c │ └── test_loop.pl ├── tools │ ├── README │ ├── analysis.pl │ ├── calltree.pl │ ├── functions.pm │ ├── recursive.pl │ ├── safe.pl │ ├── sexp.pl │ └── update-deps ├── version.h.in ├── wasm │ ├── README.md │ ├── demos │ │ ├── bench.html │ │ ├── bind.html │ │ ├── cbg.html │ │ ├── chat80.html │ │ ├── engines.html │ │ ├── test.html │ │ └── test.pl │ ├── exports.json │ ├── pl-wasm.c │ ├── prolog.js │ ├── runtime_exports.json │ └── server.pl └── wrap-gcc.c └── tests ├── COPYING ├── GC ├── test_agc_copyterm.pl ├── test_cgc_1.pl ├── test_ch_shift.pl ├── test_clause_gc.pl ├── test_cleanup_shift.pl ├── test_gc_1.pl ├── test_gc_alt_clause.pl └── test_tracer_callback.pl ├── README ├── attvar ├── sendmoney.pl ├── test_attvar.pl ├── test_call_residue_vars.pl └── test_dif.pl ├── charset ├── UTF-8-test.txt └── utf8_test.pl ├── clp └── linprog.pl ├── compile └── test_autoload.pl ├── core ├── data │ └── empty ├── test_acyclic.pl ├── test_answer.pl ├── test_arith.pl ├── test_bags.pl ├── test_bips.pl ├── test_body_index.pl ├── test_call.pl ├── test_code_type.pl ├── test_continuation.pl ├── test_copy_term.pl ├── test_coroutining.pl ├── test_dcg.pl ├── test_debug.pl ├── test_det_decl.pl ├── test_dict.pl ├── test_env.pl ├── test_exception.pl ├── test_expand.pl ├── test_factorize.pl ├── test_fastrw.pl ├── test_format.pl ├── test_gc.pl ├── test_hash.pl ├── test_inflimit.pl ├── test_io.pl ├── test_lco.pl ├── test_limit.pl ├── test_list.pl ├── test_locale.pl ├── test_meta_predicate.pl ├── test_misc.pl ├── test_moved_ubody.pl ├── test_occurs_check.pl ├── test_op.pl ├── test_prolog_flag.pl ├── test_prolog_listen.pl ├── test_qcall.pl ├── test_qq.pl ├── test_random.pl ├── test_read.pl ├── test_read_attvar.pl ├── test_resource_error.pl ├── test_scan_options.pl ├── test_signals.pl ├── test_skip_list.pl ├── test_sort.pl ├── test_string.pl ├── test_subsumes.pl ├── test_syntax.pl ├── test_term.pl ├── test_text.pl ├── test_time.pl ├── test_undo.pl ├── test_unicode.pl ├── test_unify.pl ├── test_varprops.pl └── test_write.pl ├── db ├── test_abolish.pl ├── test_cgc.pl ├── test_db.pl ├── test_dbref.pl ├── test_jit.pl └── test_module.pl ├── debug ├── test_d_break.pl ├── test_gtrace.pl ├── test_interrupt.pl ├── test_singleton.pl └── test_strace.pl ├── eclipse ├── string_tests.tst └── test_eclipse.pl ├── engines └── test_engines.pl ├── files ├── test_file_names.pl ├── test_files.pl ├── test_glob.pl └── test_pipe.pl ├── foreign └── hello.c ├── library ├── avl.pl ├── csv │ ├── emptyline.csv │ ├── normal.csv │ ├── quoted.csv │ ├── quoted_crlf.csv │ └── quoted_lf.csv ├── data │ └── queens.pl ├── test_aggregate.pl ├── test_ansi_term.pl ├── test_apply.pl ├── test_arithfunc.pl ├── test_assoc.pl ├── test_csv.pl ├── test_date.pl ├── test_dcg_high_order.pl ├── test_error.pl ├── test_evaluable_property.pl ├── test_hash_table.pl ├── test_intercept.pl ├── test_lazy_lists.pl ├── test_lists.pl ├── test_main.pl ├── test_option.pl ├── test_ordsets.pl ├── test_pio.pl ├── test_prolog_clause.pl ├── test_prolog_colour.pl ├── test_rbtrees.pl ├── test_record.pl ├── test_settings.pl ├── test_solution_sequences.pl ├── test_source_info.pl ├── test_strings.pl ├── test_thread.pl ├── test_thread_pool.pl ├── test_tmp_module.pl ├── test_ugraphs.pl ├── test_unit.pl ├── test_url.pl ├── test_utf8.pl ├── test_varnumbers.pl ├── test_versions.pl ├── test_when.pl └── test_yall.pl ├── rational ├── test_ieee754.pl ├── test_rational.pl └── test_real.pl ├── save ├── input │ ├── data.pl │ ├── integers.pl │ ├── plain.pl │ └── unicode.pl ├── test_qlf.pl └── test_saved_states.pl ├── signals └── test_bomb.pl ├── tabling ├── tabling_testlib.pl ├── test_abolish_active_table.pl ├── test_answer_subsumption.pl ├── test_incr_answer_subsumption.pl ├── test_monotonic.pl ├── test_monotonic_lazy.pl ├── test_reeval.pl ├── test_reeval_exceptions.pl ├── test_shared1.pl ├── test_shared_reeval.pl ├── test_shared_units.pl ├── test_tabled_shortest_path.pl ├── test_tabling.pl ├── test_transact_incr.pl ├── test_transact_mono.pl ├── test_transact_mono_lazy.pl ├── test_trie.pl ├── test_trie_attvars.pl └── test_wfs.pl ├── test.pl ├── thread ├── agc.pl ├── agc2.pl ├── agc3.pl ├── pooltest.pl ├── qpattern.pl ├── queue_create.pl ├── queue_gc.pl ├── queue_max_size.pl ├── queue_race.pl ├── queue_resource.pl ├── queue_select.pl ├── queue_send.pl ├── queue_timeout.pl ├── test_agc_callback.pl ├── test_agc_deadlock.pl ├── test_clean_local.pl ├── test_dynamic.pl ├── test_gc_thread_startup.pl ├── test_libthread.pl ├── test_rwlocks.pl ├── test_shared_dynamic.pl ├── test_signal.pl ├── test_thread_property.pl ├── test_threads.pl ├── thr_local_1.pl ├── thread_agc.pl ├── thread_agc_findall.pl ├── thread_agc_queue.pl └── thread_create.pl ├── thread_wait ├── test_functor_cache.pl ├── test_thread_signals.pl └── test_thread_wait.pl ├── transaction ├── test_transaction_constraints.pl ├── test_transaction_deadlock.pl ├── test_transaction_tabling.pl └── test_transactions.pl ├── unprotected ├── README.md ├── reload │ ├── README.md │ ├── add_attr_end.pl │ ├── add_clause.pl │ ├── add_meta_predicate.pl │ ├── add_pred.pl │ ├── add_thread_local.pl │ ├── del_attr_end.pl │ ├── del_clause.pl │ ├── del_clause_a.pl │ ├── del_clause_z.pl │ ├── del_det.pl │ ├── del_discontiguous.pl │ ├── del_dynamic.pl │ ├── del_export.pl │ ├── del_meta_predicate.pl │ ├── del_pred.pl │ ├── goal_expansion.pl │ ├── keep_tabling.pl │ ├── keep_thread_local.pl │ ├── mod_dynamic.pl │ ├── reload_maplist.pl │ ├── replace_clause.pl │ └── simple.pl ├── test_reload.pl └── test_sandbox.pl └── xsb ├── .gitignore ├── README.md ├── ai_tests ├── can_mono.H ├── can_mono.P ├── cs_o.P ├── cs_o_old ├── cs_r.P ├── cs_r_old ├── disj.P ├── disj_old ├── gabriel.P ├── gabriel_old ├── kalah.P ├── kalah_old ├── peep.P ├── peep_old ├── pg.P ├── pg_old ├── plan.P ├── plan_old ├── press1.P ├── press1_old ├── qsort.P ├── qsort_old ├── queens.P ├── queens_old ├── read.P ├── read_old ├── set_basics_mono.P ├── set_unify.P └── xsb_test_ai.pl ├── attv_tests ├── assert_attv.P ├── assert_attv_old ├── attv_test.P ├── attv_test_old ├── attvar_assert_regalloc.P ├── attvar_assert_regalloc_old ├── copyterm_attv.P ├── copyterm_attv_old ├── fd.P ├── fd1.P ├── fd1_old ├── findall_attv.P ├── findall_attv_old ├── general.P ├── general_old ├── interrupt1.P ├── interrupt1_old ├── interrupt2.P ├── interrupt2_old ├── pre_image.P ├── pre_image_old ├── ret_attv.P ├── ret_attv_old ├── tabled_attv.P ├── tabled_attv_old ├── trie_assert_attv.P ├── trie_assert_attv2.P ├── trie_assert_attv2_old ├── trie_assert_attv_old ├── trie_intern_attv.P ├── trie_intern_attv_old └── xsb_test_attv.pl ├── basic_tests ├── acyl.P ├── empty.P ├── empty2.P ├── hirc.P ├── hirc_old ├── index_old ├── index_t2.P ├── index_test.P ├── interp.P ├── interp2.P ├── interp_old ├── tcyl-24-24-2.P ├── tcyl.P ├── tcyl11.P ├── tcyl11_old ├── tcyl12.P ├── tcyl12_old ├── testsg.P ├── testsg_old ├── thstr13.P ├── thstr13_old ├── thstr23.P ├── thstr23_old ├── thstr43.P ├── thstr43_old ├── tsing1.P ├── tsing1_old ├── tsstr13.P ├── tsstr13_old ├── tsstr23.P ├── tsstr23_old ├── tsstr33.P ├── tsstr33_old ├── tstr11.P ├── tstr11_old ├── tstr12.P ├── tstr12_old ├── tstr13.P ├── tstr131.P ├── tstr13_old ├── tstr21.P ├── tstr21_old ├── tstr22.P ├── tstr22_old ├── tstr23.P ├── tstr231.P ├── tstr23_old ├── tstr31.P ├── tstr31_old ├── tstr32.P ├── tstr32_old ├── tstr33.P ├── tstr33_old ├── tstr51.P ├── tstr51_old ├── tstr52.P ├── tstr52_old ├── tstr53.P ├── tstr53_old ├── tstr61.P ├── tstr61_old ├── tstr62.P ├── tstr62_old ├── tstr63.P ├── tstr63_old ├── xpp_on_test.P ├── xpp_on_test_old └── xsb_test_basics.pl ├── delay_tests ├── abol_susp1.P ├── abol_susp1_old ├── abol_susp2.P ├── abol_susp2_old ├── ac_tests.P ├── ac_tests_old ├── asl_dupl.P ├── asl_dupl_old ├── avoid_flounder.P ├── avoid_flounder_old ├── cond_uncond.P ├── cond_uncond_old ├── delay_var.P ├── delay_var_old ├── dl_dupl.P ├── dl_dupl_old ├── dret_test.P ├── dret_test_old ├── dynstrat1.P ├── dynstrat1_old ├── dynstrat2.P ├── dynstrat2_old ├── dynstrat3.P ├── dynstrat3_old ├── dynstrat4.P ├── dynstrat4_old ├── dynstrat5.P ├── dynstrat5_old ├── dynstrat6.P ├── dynstrat6_old ├── dynstrat7.P ├── dynstrat7_old ├── fa.P ├── fa_old ├── fr1.P ├── fr19.P ├── fr19_old ├── fr1_old ├── fr2.P ├── fr20.P ├── fr20_old ├── fr21.P ├── fr21_old ├── fr22.P ├── fr22_old ├── fr23.P ├── fr23_old ├── fr24.P ├── fr24_old ├── fr25.P ├── fr25_old ├── fr26.P ├── fr26_old ├── fr27.P ├── fr27_old ├── fr28.P ├── fr28_old ├── fr29.P ├── fr29_old ├── fr2_old ├── fr3.P ├── fr30.P ├── fr30_old ├── fr3_old ├── fr4.P ├── fr4_old ├── fr5.P ├── fr5_old ├── fr6.P ├── fr6_old ├── fr7.P ├── fr7_old ├── fr8.P ├── fr8_old ├── fr9.P ├── fr9_old ├── gfp.P ├── gfp_old ├── interp0.P ├── interp0_old ├── interp1.P ├── interp10.P ├── interp10_old ├── interp11.P ├── interp11_old ├── interp12.P ├── interp12_old ├── interp13.P ├── interp13_old ├── interp14.P ├── interp14_old ├── interp15.P ├── interp15_old ├── interp16.P ├── interp1_old ├── interp2.P ├── interp2_old ├── interp3.P ├── interp4.P ├── interp4_old ├── interp5.P ├── interp5_old ├── interp6.P ├── interp6_old ├── interp7.P ├── interp7_old ├── interp8.P ├── interp8_old ├── interp9.P ├── interp9_old ├── nonstrat1.P ├── nonstrat1_old ├── nonstrat2.P ├── nonstrat2_old ├── p1.P ├── p1_old ├── p2.P ├── p2_old ├── p3.P ├── p3_old ├── p4.P ├── p4_old ├── p5.P ├── p5_old ├── pos_simpl1.P ├── pos_simpl1_old ├── pot_pouri.P ├── pot_pouri_old ├── przy1.P ├── przy1_old ├── przy1_simp.P ├── przy1_simp_old ├── q6.P ├── q6.data ├── q6_old ├── re-run.sh ├── residual1.P ├── residual1_old ├── ross1.P ├── ross1_old ├── seg1.P ├── seg1_old ├── seg2.P ├── seg2_old ├── seg3.P ├── seg3_old ├── seg4.P ├── seg4_old ├── seg5.P ├── seg5_old ├── sel_unsusp.P ├── sel_unsusp_old ├── simpl_win.P ├── simpl_win_old ├── stest.sh ├── tabsimp_seq.P ├── tabsimp_seq_old ├── test.sh ├── two_ary.P ├── two_ary_old ├── ullman3.P ├── ullman3_old ├── undef1.P ├── undef1_old ├── undef2.P ├── undef2_old ├── weidong1.P ├── weidong2.P ├── weidong2_old ├── weidong3.P ├── weidong3_old ├── weidong4.P ├── weidong4_old ├── weidong5.P ├── weidong5_old ├── weidong6.P ├── weidong6_old ├── weidong7.P ├── weidong7_old ├── weidong8.P ├── weidong8_old ├── win.P ├── win_old ├── wmay_winbug.P ├── wmay_winbug_old └── xsb_test_delay.pl ├── incremental_tests ├── inc_atc.P ├── inc_atc_gc.P ├── inc_atc_gc_old ├── inc_atc_gc_tricky.P ├── inc_atc_gc_tricky_old ├── inc_atc_old ├── inc_trie_dyn.P ├── inc_trie_dyn_old ├── incr_test_romero.P ├── incr_test_romero_old ├── incremental.P ├── incremental1.P ├── incremental1_1.P ├── incremental1_old ├── incremental_old ├── incremental_rule.P ├── incremental_rule_alt.P ├── incremental_rule_alt_old ├── incremental_rule_old ├── test_abolish_nonincremental.P ├── test_abolish_nonincremental_old ├── test_inc_switch.P ├── test_inc_switch_old ├── test_incr_depends.P ├── test_incr_depends_2.P ├── test_incr_depends_2_old ├── test_incr_depends_old ├── test_sound_updates.P ├── test_sound_updates_old ├── test_wfs_update.P ├── test_wfs_update_old └── xsb_test_incremental.pl ├── neg_tests ├── genome.P ├── ldynstrat0.P ├── ldynstrat0_old ├── ldynstrat1.P ├── ldynstrat1_old ├── ldynstrat2.P ├── ldynstrat2_old ├── ldynstrat3.P ├── ldynstrat3_old ├── ldynstrat4.P ├── ldynstrat4_old ├── lmod1.P ├── lmod10.P ├── lmod10_old ├── lmod11.P ├── lmod11_old ├── lmod1_old ├── lmod2.P ├── lmod2_old ├── lmod3.P ├── lmod3_old ├── lmod4.P ├── lmod4_old ├── lmod5.P ├── lmod5_old ├── lmod6.P ├── lmod6_old ├── lmod7.P ├── lmod7_old ├── lmod8.P ├── lmod8_old ├── lmod9.P ├── lmod9_old ├── mod1.P ├── mod1_old ├── mod2.P ├── mod2_old ├── neg1.P ├── neg1_old ├── neg2.P ├── neg2_old ├── neg3.P ├── neg3_old ├── przy2.P ├── przy2_old ├── q7.P ├── q7_old ├── ullman1.P ├── ullman1_old ├── ullman2.P ├── ullman2_old ├── ullman3.P ├── ullman3_old └── xsb_test_neg.pl ├── nonmt_tests ├── cmu_sei_0050.P ├── cmu_sei_0050_old ├── test_introspection.P ├── test_introspection_old ├── test_invalidate.P ├── test_invalidate_old ├── test_iso_basic.P ├── test_iso_basic_old ├── test_iso_hash.P ├── test_iso_hash_old ├── test_iso_mult_visit.P ├── test_iso_mult_visit_old ├── test_iso_undef.P ├── test_iso_undef_old ├── test_lazy.P ├── test_lazy_old ├── test_recomputable.P ├── test_recomputable_old └── xsb_test_nonmt.pl ├── ptq ├── README.md ├── aprint_cn1 ├── aprint_iv1 ├── aprint_s1 ├── aprint_te11 ├── awsswrint_cn1 ├── awsswrint_iv1 ├── awsswrint_s1 ├── awsswrint_te11 ├── awsswrlredint_cn1 ├── awsswrlredint_iv1 ├── awsswrlredint_s1 ├── awsswrlredint_te11 ├── awtraint_cn1 ├── awtraint_iv1 ├── awtraint_s1 ├── awtraint_te11 ├── awtralredint_cn1 ├── awtralredint_iv1 ├── awtralredint_s1 ├── awtralredint_te11 ├── diffall.sh ├── emlawaslhlredint_cn1 ├── emlawaslhlredint_iv1 ├── emlawaslhlredint_s1 ├── emlawaslhlredint_te11 ├── emlawint_cn1 ├── emlawint_iv1 ├── emlawint_s1 ├── emlawint_te11 ├── emlawlredint_cn1 ├── emlawlredint_iv1 ├── emlawlredint_s1 ├── emlawlredint_te11 ├── emlawsslhlredint_cn1 ├── emlawsslhlredint_iv1 ├── emlawsslhlredint_s1 ├── emlawsslhlredint_te11 ├── genlredscaff.sh ├── genscaff.sh ├── jbmwwaiplredint_cn1 ├── jbmwwaiplredint_iv1 ├── jbmwwaiplredint_s1 ├── jbmwwaiplredint_te11 ├── jdhint_cn1 ├── jdhint_iv1 ├── jdhint_s1 ├── jdhint_te11 ├── jdhlredint_cn1 ├── jdhlredint_iv1 ├── jdhlredint_s1 ├── jdhlredint_te11 ├── jdmint_cn1 ├── jdmint_iv1 ├── jdmint_s1 ├── jdmint_te11 ├── jdmlredint_cn1 ├── jdmlredint_iv1 ├── jdmlredint_s1 ├── jdmlredint_te11 ├── jfaulredint_cn1 ├── jfaulredint_iv1 ├── jfaulredint_s1 ├── jfaulredint_te11 ├── jsauamsiint_cn1 ├── jsauamsiint_iv1 ├── jsauamsiint_s1 ├── jsauamsiint_te11 ├── jsauamsilredint_cn1 ├── jsauamsilredint_iv1 ├── jsauamsilredint_s1 ├── jsauamsilredint_te11 ├── jsauint_cn1 ├── jsauint_iv1 ├── jsauint_s1 ├── jsauint_te11 ├── jsaulredint_cn1 ├── jsaulredint_iv1 ├── jsaulredint_s1 ├── jsaulredint_te11 ├── jtauint_cn1 ├── jtauint_iv1 ├── jtauint_s1 ├── jtauint_te11 ├── jtaulredint_cn1 ├── jtaulredint_iv1 ├── jtaulredint_s1 ├── jtaulredint_te11 ├── jtfauaweilredint_cn1 ├── jtfauaweilredint_iv1 ├── jtfauaweilredint_s1 ├── jtfauaweilredint_te11 ├── jwfauaeilredint_cn1 ├── jwfauaeilredint_iv1 ├── jwfauaeilredint_s1 ├── jwfauaeilredint_te11 ├── jwiaplredint_cn1 ├── jwiaplredint_iv1 ├── jwiaplredint_s1 ├── jwiaplredint_te11 ├── mbjfauaheiint_cn1 ├── mbjfauaheiint_iv1 ├── mbjfauaheiint_s1 ├── mbjfauaheiint_te11 ├── mbjfauaheilredint_cn1 ├── mbjfauaheilredint_iv1 ├── mbjfauaheilredint_s1 ├── mbjfauaheilredint_te11 ├── parser.P ├── ptq.P ├── ptq_out.P ├── ptqlred.P ├── test.sh └── xsb_test_ptq.pl ├── sub_tests ├── Data │ ├── chain.P │ ├── cycles.P │ ├── decker_facts.P │ └── tree.P ├── Driver.P ├── Programs │ ├── decker_rules.P │ ├── flora.P │ └── traversal.P ├── decker.P ├── decker_old ├── drtc1.P ├── drtc1_old ├── drtc2.P ├── drtc2_old ├── drtc3.P ├── drtc3_old ├── drtc4.P ├── drtc4_old ├── drtc5.P ├── drtc5_old ├── drtc6.P ├── drtc6_old ├── drtc7.P ├── drtc7_old ├── drtc8.P ├── drtc8_old ├── floratest.P ├── floratest_old ├── genome1.P ├── genome1_old ├── genome2.P ├── genome2_old ├── genome3.P ├── genome3_old ├── lrtc1.P ├── lrtc1_old ├── lrtc2.P ├── lrtc2_old ├── lrtc3.P ├── lrtc3_old ├── lrtc4.P ├── lrtc4_old ├── lrtc5.P ├── lrtc5_old ├── lrtc6.P ├── lrtc6_old ├── lrtc7.P ├── lrtc7_old ├── lrtc8.P ├── lrtc8_old ├── pilegaard.P ├── pilegaard_old ├── rrtc1.P ├── rrtc1_old ├── rrtc2.P ├── rrtc2_old ├── rrtc3.P ├── rrtc3_old ├── rrtc4.P ├── rrtc4_old ├── rrtc5.P ├── rrtc5_old ├── rrtc6.P ├── rrtc6_old ├── rrtc7.P ├── rrtc7_old ├── rrtc8.P ├── rrtc8_old ├── sg1.P ├── sg1_old ├── sg2.P ├── sg2_old ├── sg3.P ├── sg3_old ├── sg4.P ├── sg4_old ├── sg5.P ├── sg5_old ├── sg6.P ├── sg6_old ├── sg7.P ├── sg7_old ├── sg8.P ├── sg8_old ├── test_answer_abstraction.P ├── test_answer_abstraction_old └── xsb_test_sub.pl ├── table_tests ├── abol_test.P ├── abol_test2.P ├── abol_test2_module.P ├── abol_test2_old ├── abol_test2a.P ├── abol_test2a_old ├── abol_test3.P ├── abol_test3_old ├── abol_test3a.P ├── abol_test3a_old ├── abol_test3b.P ├── abol_test3b_old ├── abol_test3c.P ├── abol_test3c_old ├── abol_test_old ├── abolish_cascade.P ├── abolish_cascade_old ├── abolish_cascade_pred.P ├── abolish_cascade_pred_old ├── abolish_cycle.P ├── abolish_cycle_old ├── abolish_dag.P ├── abolish_dag_old ├── abolish_neg_cycle.P ├── abolish_neg_cycle_old ├── abolish_neg_dag.P ├── abolish_neg_dag_old ├── atc_test.P ├── atc_test_old ├── concomp.P ├── concomp_old ├── correct.P ├── exec.P ├── expand.P ├── expand_old ├── ins.P ├── ins_old ├── kalah_ox.P ├── large_arity_tables.P ├── large_arity_tables_old ├── lrbug.P ├── lrbug_old ├── more_edgesP ├── nodesP ├── pps.P ├── pps_old ├── pred_abolish_cycle.P ├── pred_abolish_cycle_old ├── pred_abolish_dag.P ├── pred_abolish_dag_old ├── recursive_aboltest.P ├── recursive_aboltest_old ├── sets.P ├── tabbug1.P ├── tabbug1_old ├── test_3vwfs_1.P ├── test_3vwfs_1_old ├── test_calldepth.P ├── test_calldepth_old ├── test_cyclic_tabling.P ├── test_cyclic_tabling_old ├── test_large_tabled_terms.P ├── test_large_tabled_terms_old ├── test_maxans_decl.P ├── test_maxans_decl_old ├── test_negcycle.P ├── test_negcycle_old ├── test_tda.P ├── test_tda_i.P ├── test_tda_i_old ├── test_tda_old └── xsb_test_tables.pl ├── wfs_tests ├── gen.P ├── gentest.sh ├── p06.P ├── p06_old ├── p07.P ├── p07_old ├── p08.P ├── p08_old ├── p09.P ├── p09_old ├── p10.P ├── p10_old ├── p11.P ├── p11_old ├── p12.P ├── p12_old ├── p13.P ├── p13_old ├── p14.P ├── p14_old ├── p15.P ├── p15_old ├── p16.P ├── p16_old ├── p17.P ├── p17_old ├── p18.P ├── p18_old ├── p19.P ├── p19_old ├── p20.P ├── p20_old ├── p21.P ├── p21_old ├── p22.P ├── p22_old ├── p23.P ├── p23_old ├── p24.P ├── p24_old ├── p25.P ├── p25_old ├── p26.P ├── p26_old ├── p27.P ├── p27_old ├── p29.P ├── p29_old ├── p30.P ├── p30_old ├── p31.P ├── p31_old ├── p32.P ├── p32_old ├── p33.P ├── p33_old ├── p34.P ├── p34_old ├── p35.P ├── p35_old ├── p36.P ├── p36_old ├── p37.P ├── p37_old ├── p39.P ├── p39_old ├── p40.P ├── p40_old ├── p42.P ├── p42_old ├── p43.P ├── p43_old ├── p44.P ├── p44_old ├── p45.P ├── p45_old ├── p46.P ├── p46_old ├── p47.P ├── p47_old ├── p48.P ├── p48_old ├── p49.P ├── p49_old ├── p50.P ├── p50_old ├── p51.P ├── p51_old ├── p52.P ├── p52_old ├── p52a.P ├── p52a_old ├── p53.P ├── p53_old ├── p54.P ├── p54_old ├── p55.P ├── p55_old ├── p56.P ├── p56_old ├── p57.P ├── p57_old ├── p58.P ├── p58_old ├── p59.P ├── p59_old ├── p60.P ├── p60_old ├── p62.P ├── p62_old ├── p63.P ├── p63_old ├── p64.P ├── p64_old ├── p65.P ├── p65_old ├── p66.P ├── p66_old ├── p67.P ├── p67_old ├── p77.P ├── p77_old ├── p78.P ├── p78_old ├── p79.P ├── p79_old ├── p80.P ├── p80_old ├── p81.P ├── p81_old ├── p82.P ├── p82_old ├── p83.P ├── p83_old ├── p84.P ├── p84_old ├── p85.P ├── p85_old ├── p86.P ├── p86_old ├── p89.P ├── p89_old ├── p90.P ├── p90_old ├── p91.P ├── p91_old ├── re-run.sh ├── sgentest.sh ├── stest.sh ├── test.sh ├── wfs_test.P └── xsb_test_wfs.pl └── xsb_test.pl /VERSION: -------------------------------------------------------------------------------- 1 | 9.3.32 2 | -------------------------------------------------------------------------------- /cmake/AndroidTargets.cmake: -------------------------------------------------------------------------------- 1 | # Set target options for Android 2 | 3 | # Example: 4 | #target_compile_definitions(libswipl PRIVATE MY_C_DEFINE=1) 5 | -------------------------------------------------------------------------------- /cmake/CStack.cmake: -------------------------------------------------------------------------------- 1 | function(target_c_stack target limit) 2 | if(WIN32) 3 | if(CMAKE_C_COMPILER_ID MATCHES "Clang|GNU") 4 | set_target_properties(${target} PROPERTIES 5 | LINK_FLAGS "-Wl,--stack,${limit}") 6 | else() 7 | set_target_properties(${target} PROPERTIES 8 | LINK_FLAGS /STACK:${limit}) 9 | endif() 10 | endif() 11 | endfunction() 12 | -------------------------------------------------------------------------------- /cmake/CheckInstallation.cmake: -------------------------------------------------------------------------------- 1 | # Build check_installation.pl in the home directory 2 | # it is calles by InstallSource.cmake 3 | configure_file(../../library/check_installation.pl.in 4 | ${SWIPL_BUILD_LIBRARY}/check_installation.pl 5 | @ONLY) 6 | -------------------------------------------------------------------------------- /cmake/Dependencies.cmake: -------------------------------------------------------------------------------- 1 | find_package(ZLIB REQUIRED) 2 | if(USE_GMP) 3 | find_package(GMP) 4 | endif() 5 | if(UNIX AND NOT EMSCRIPTEN) 6 | find_package(Curses) 7 | endif() 8 | if(USE_TCMALLOC) 9 | find_package(LibTCMalloc) 10 | endif() 11 | -------------------------------------------------------------------------------- /cmake/SWIPLConfig.cmake.in: -------------------------------------------------------------------------------- 1 | @PACKAGE_INIT@ 2 | 3 | # Version information 4 | set(SWIPL_VERSION_COUNT 3) 5 | set(SWIPL_VERSION_MAJOR @SWIPL_VERSION_MAJOR@) 6 | set(SWIPL_VERSION_MINOR @SWIPL_VERSION_MINOR@) 7 | set(SWIPL_VERSION_PATCH @SWIPL_VERSION_PATCH@) 8 | set(SWIPL_VERSION_STRING @SWIPL_VERSION_STRING@) 9 | 10 | # Location suitable for passing to PL_initialise() as argv[0] 11 | set(SWIPL_EXECUTABLE "@PACKAGE_SWIPL_INSTALL_ARCH_EXE@/@SWIPL_PROGRAM@") 12 | 13 | # Exported targets 14 | include("${CMAKE_CURRENT_LIST_DIR}/SWIPLTargets.cmake") 15 | -------------------------------------------------------------------------------- /cmake/TestBSDSignals.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | static int signalled; 6 | 7 | static void 8 | catch(int s) 9 | { signalled = 1; 10 | } 11 | 12 | int 13 | main() 14 | { signal(SIGINT, (void*)catch); 15 | kill(getpid(), SIGINT); 16 | while(!signalled) 17 | sleep(1); 18 | if ( (void*)signal(SIGINT, (void*)catch) == (void*)catch ) 19 | return 0; 20 | return 1; 21 | } 22 | -------------------------------------------------------------------------------- /cmake/TestFileOffsetBits.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | /* Cause a compile-time error if off_t is smaller than 64 bits */ 4 | #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) 5 | int off_t_is_large[ (LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1 ]; 6 | 7 | int main(int argc, char **argv) 8 | { 9 | return 0; 10 | } 11 | 12 | -------------------------------------------------------------------------------- /cmake/TestGNUQsortR.c: -------------------------------------------------------------------------------- 1 | #define _GNU_SOURCE 2 | #include 3 | 4 | static int 5 | mycompare(const void *p1, const void *p2, void *c) 6 | { const int *s1 = p1; 7 | const int *s2 = p2; 8 | int *ip = c; 9 | 10 | if ( *ip != 1 ) 11 | exit(1); 12 | 13 | return *s1 - *s2; 14 | } 15 | 16 | int 17 | main(int argc, char**argv) 18 | { int data[] = {0,1,2,3,4,5,6,7,8,9}; 19 | int ctx = 1; 20 | 21 | qsort_r(data, 10, sizeof(int), mycompare, (void*)&ctx); 22 | return 0; 23 | } 24 | -------------------------------------------------------------------------------- /cmake/TestHeaderTime.cmake: -------------------------------------------------------------------------------- 1 | # Get TIME_WITH_SYS_TIME, compatible with autoconf AC_HEADER_TIME 2 | 3 | check_c_source_compiles( 4 | "#include 5 | #include 6 | int main() { return 0; }" 7 | TIME_WITH_SYS_TIME) 8 | -------------------------------------------------------------------------------- /cmake/TestLLRound.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | float d = 0.5; 4 | 5 | int 6 | main(int argc, char **argv) 7 | { if ( llround(nexttoward(d, -10)) == 0 ) 8 | return 0; 9 | return 1; 10 | } 11 | -------------------------------------------------------------------------------- /cmake/TestModF.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | double d = -0.0; 4 | double i; 5 | 6 | int 7 | main(int argc, char **argv) 8 | { 9 | /* IEEE754: check if the fractional part of -0.0 is negative */ 10 | if ( copysign(1.0, modf(d, &i)) == -1.0 ) 11 | return 0; 12 | 13 | /* positive (violating the standard) */ 14 | return 1; 15 | } 16 | -------------------------------------------------------------------------------- /cmake/TestSCNProcessors.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int 4 | main() 5 | { long n = sysconf(_SC_NPROCESSORS_CONF); 6 | } 7 | -------------------------------------------------------------------------------- /cmake/TestSignalType.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #ifdef signal 4 | # undef signal 5 | #endif 6 | #ifdef __cplusplus 7 | extern "C" 8 | #endif 9 | void ( *signal(int signum, void (*handler)(int)) ) (int); 10 | 11 | int 12 | main(int argc, char **argv) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /cmake/TestWindowsFSeek.c: -------------------------------------------------------------------------------- 1 | 2 | #include 3 | 4 | int main() 5 | { 6 | __int64 off=0; 7 | 8 | _fseeki64(NULL, off, SEEK_SET); 9 | 10 | return 0; 11 | } 12 | -------------------------------------------------------------------------------- /cmake/cross/linux_win32.cmake: -------------------------------------------------------------------------------- 1 | SET(CMAKE_SYSTEM_NAME Windows) 2 | SET(GNU_HOST i686-w64-mingw32) 3 | 4 | set(CMAKE_C_COMPILER ${GNU_HOST}-gcc) 5 | set(CMAKE_CXX_COMPILER ${GNU_HOST}-g++) 6 | SET(CMAKE_RC_COMPILER ${GNU_HOST}-windres) 7 | set(CMAKE_FIND_ROOT_PATH /usr/${GNU_HOST}) 8 | 9 | set(CMAKE_CROSSCOMPILING_EMULATOR wine) 10 | 11 | if(NOT DEFINED MINGW_ROOT) 12 | set(MINGW_ROOT $ENV{MINGW32_ROOT} CACHE FILEPATH "MinGW dependencies") 13 | endif() 14 | 15 | if(CMAKE_TOOLCHAIN_FILE) 16 | # Avoid "Manually-specified variables were not used by the project" 17 | endif() 18 | -------------------------------------------------------------------------------- /cmake/cross/linux_win64.cmake: -------------------------------------------------------------------------------- 1 | set(CMAKE_SYSTEM_NAME Windows) 2 | set(GNU_HOST x86_64-w64-mingw32) 3 | 4 | set(CMAKE_C_COMPILER ${GNU_HOST}-gcc) 5 | set(CMAKE_CXX_COMPILER ${GNU_HOST}-g++) 6 | set(CMAKE_RC_COMPILER ${GNU_HOST}-windres) 7 | set(CMAKE_FIND_ROOT_PATH /usr/${GNU_HOST}) 8 | 9 | set(CMAKE_CROSSCOMPILING_EMULATOR wine) 10 | 11 | if(NOT DEFINED MINGW_ROOT) 12 | set(MINGW_ROOT $ENV{MINGW64_ROOT} CACHE FILEPATH "MinGW dependencies") 13 | endif() 14 | 15 | if(CMAKE_TOOLCHAIN_FILE) 16 | # Avoid "Manually-specified variables were not used by the project" 17 | endif() 18 | -------------------------------------------------------------------------------- /cmake/pack_summary.txt: -------------------------------------------------------------------------------- 1 | SWI-Prolog offers a comprehensive free Prolog environment. Since its 2 | start in 1987, SWI-Prolog development has been driven by the needs of 3 | real world applications. SWI-Prolog is widely used in research and 4 | education as well as commercial applications. Join over a million users 5 | who have downloaded SWI-Prolog. 6 | -------------------------------------------------------------------------------- /cmake/pgo-timestamp.h.in: -------------------------------------------------------------------------------- 1 | #cmakedefine PGO_GEN_TIMESTAMP "@PGO_GEN_TIMESTAMP@" 2 | -------------------------------------------------------------------------------- /cmake/port/Android.cmake: -------------------------------------------------------------------------------- 1 | set(SWIPL_ARCH ${CMAKE_ANDROID_ARCH}-android) 2 | -------------------------------------------------------------------------------- /cmake/port/CondaWindows.cmake: -------------------------------------------------------------------------------- 1 | # Configuration under Conda 2 | 3 | message("Building under Conda for Windows") 4 | 5 | if(MSVC) 6 | add_library(Threads::Threads INTERFACE IMPORTED) 7 | set_property(TARGET Threads::Threads PROPERTY 8 | INTERFACE_LINK_LIBRARIES pthreads.lib) 9 | set(CMAKE_USE_PTHREADS_INIT 1) 10 | endif() 11 | 12 | set(PLHOME no-home) 13 | set(PLRELHOME ../lib/${SWIPL_INSTALL_DIR}) 14 | -------------------------------------------------------------------------------- /cmake/port/MSYS2.cmake: -------------------------------------------------------------------------------- 1 | message("Building for MSYS2") 2 | 3 | set(PLHOME no-home) 4 | set(PLRELHOME ../lib/${SWIPL_INSTALL_DIR}) 5 | -------------------------------------------------------------------------------- /desktop/prolog-mime.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Prolog File 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /desktop/swipl-256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SWI-Prolog/swipl-devel/508550cf35cb9efb3408f6b18610c34f23fc98b4/desktop/swipl-256.png -------------------------------------------------------------------------------- /desktop/swipl-cli.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SWI-Prolog/swipl-devel/508550cf35cb9efb3408f6b18610c34f23fc98b4/desktop/swipl-cli.png -------------------------------------------------------------------------------- /desktop/swipl-win.desktop.in: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=SWI-Prolog 3 | Exec=@CMAKE_INSTALL_PREFIX@/@SWIPL_INSTALL_ARCH_EXE@/swipl-win %f 4 | Icon=@CMAKE_INSTALL_PREFIX@/@SWIPL_INSTALL_DESKTOP@/swipl.png 5 | Type=Application 6 | Terminal=false 7 | StartupWMClass=@SWIPL_APP_ID@ 8 | X-AppStream-Identifier=@SWIPL_APP_ID@ 9 | MimeType=application/x-prolog 10 | -------------------------------------------------------------------------------- /desktop/swipl.desktop.in: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=SWI-Prolog 3 | Exec=@CMAKE_INSTALL_PREFIX@/@SWIPL_INSTALL_ARCH_EXE@/swipl %f 4 | Icon=@CMAKE_INSTALL_PREFIX@/@SWIPL_INSTALL_DESKTOP@/swipl-cli.png 5 | Type=Application 6 | Terminal=true 7 | StartupWMClass=@SWIPL_CLI_ID@ 8 | X-AppStream-Identifier=@SWIPL_CLI_ID@ 9 | MimeType=application/x-prolog 10 | -------------------------------------------------------------------------------- /desktop/swipl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SWI-Prolog/swipl-devel/508550cf35cb9efb3408f6b18610c34f23fc98b4/desktop/swipl.png -------------------------------------------------------------------------------- /doc/README.md: -------------------------------------------------------------------------------- 1 | # Design and maintenance documentation 2 | 3 | This directory holds documents related to design and maintenance. User 4 | documentation is in the directory `man` below the toplevel and for a 5 | large part generated from PlDoc comments in the Prolog sources. 6 | 7 | ## Documents 8 | 9 | - Release.md 10 | Describes creating a new release. 11 | -------------------------------------------------------------------------------- /library/dialect/sicstus/README.TXT: -------------------------------------------------------------------------------- 1 | SISCtus compatibility library. 2 | -------------------------------------------------------------------------------- /library/dialect/yap/README.TXT: -------------------------------------------------------------------------------- 1 | ---+ YAP compatible library 2 | 3 | When :- expects_dialect(yap) is active, this library is searched before 4 | the SWI-Prolog library directory. 5 | 6 | Ultimately the libraries should become very close. This approach however 7 | allows us to deal with incompatible libraries in the same system and 8 | appears a perfect short-term work-around for incompatible libraries. 9 | -------------------------------------------------------------------------------- /man/.gitignore: -------------------------------------------------------------------------------- 1 | Manual 2 | attvar.tex 3 | bit64.tex 4 | builtin.tex 5 | chr.tex 6 | dialect.tex 7 | doc.tex 8 | engines.tex 9 | foreign.tex 10 | glossary.tex 11 | hack.tex 12 | ide.tex 13 | intro.tex 14 | license.tex 15 | module.tex 16 | overview.tex 17 | profile.tex 18 | runtime.tex 19 | summary.tex 20 | threads.tex 21 | xpce.tex 22 | xref.tex 23 | online.doc 24 | online.dvi 25 | online.tex 26 | windows.tex 27 | extensions.tex 28 | tabling.tex 29 | macosx/macosx.tex 30 | windows.html 31 | macosx/macosx.html 32 | doc.doc 33 | SWI-Prolog-* 34 | -------------------------------------------------------------------------------- /man/Makefile.pdf: -------------------------------------------------------------------------------- 1 | ################################################################ 2 | # Build out-of-date PDF figures 3 | ################################################################ 4 | 5 | .SUFFIXES: .eps .pdf 6 | 7 | epsimages= $(shell find . -name \*.eps) 8 | pdfimages= $(epsimages:.eps=.pdf) 9 | 10 | all: $(pdfimages) 11 | 12 | .eps.pdf: 13 | epstopdf $*.eps 14 | -------------------------------------------------------------------------------- /man/calc.pl: -------------------------------------------------------------------------------- 1 | calc(Atom) :- 2 | term_to_atom(Expr, Atom), 3 | A is Expr, 4 | write(A), 5 | nl. 6 | -------------------------------------------------------------------------------- /man/figs/broadcast.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SWI-Prolog/swipl-devel/508550cf35cb9efb3408f6b18610c34f23fc98b4/man/figs/broadcast.pdf -------------------------------------------------------------------------------- /man/figs/broadcast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SWI-Prolog/swipl-devel/508550cf35cb9efb3408f6b18610c34f23fc98b4/man/figs/broadcast.png -------------------------------------------------------------------------------- /man/figs/by-sa.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SWI-Prolog/swipl-devel/508550cf35cb9efb3408f6b18610c34f23fc98b4/man/figs/by-sa.pdf -------------------------------------------------------------------------------- /man/figs/by-sa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SWI-Prolog/swipl-devel/508550cf35cb9efb3408f6b18610c34f23fc98b4/man/figs/by-sa.png -------------------------------------------------------------------------------- /man/figs/profnode.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SWI-Prolog/swipl-devel/508550cf35cb9efb3408f6b18610c34f23fc98b4/man/figs/profnode.gif -------------------------------------------------------------------------------- /man/figs/profnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SWI-Prolog/swipl-devel/508550cf35cb9efb3408f6b18610c34f23fc98b4/man/figs/profnode.png -------------------------------------------------------------------------------- /man/figs/swipl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SWI-Prolog/swipl-devel/508550cf35cb9efb3408f6b18610c34f23fc98b4/man/figs/swipl.pdf -------------------------------------------------------------------------------- /man/figs/swipl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SWI-Prolog/swipl-devel/508550cf35cb9efb3408f6b18610c34f23fc98b4/man/figs/swipl.png -------------------------------------------------------------------------------- /man/figs/xrefchatdep.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SWI-Prolog/swipl-devel/508550cf35cb9efb3408f6b18610c34f23fc98b4/man/figs/xrefchatdep.gif -------------------------------------------------------------------------------- /man/figs/xrefchatdep.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SWI-Prolog/swipl-devel/508550cf35cb9efb3408f6b18610c34f23fc98b4/man/figs/xrefchatdep.png -------------------------------------------------------------------------------- /man/figs/xrefchatfile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SWI-Prolog/swipl-devel/508550cf35cb9efb3408f6b18610c34f23fc98b4/man/figs/xrefchatfile.gif -------------------------------------------------------------------------------- /man/figs/xrefchatfile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SWI-Prolog/swipl-devel/508550cf35cb9efb3408f6b18610c34f23fc98b4/man/figs/xrefchatfile.png -------------------------------------------------------------------------------- /man/lib/assoc.doc: -------------------------------------------------------------------------------- 1 | \libdoc{assoc}{Association lists} 2 | \label{sec:lib:assoc} 3 | 4 | \makebox[\linewidth]{\hfill Authors: \emph{Richard A. 5 | O'Keefe, L.Damas, V.S.Costa and \href{https://www.metalevel.at}{Markus Triska}}}\vspace{2ex} 6 | 7 | \input{assoclib} 8 | -------------------------------------------------------------------------------- /man/lib/clpb.doc: -------------------------------------------------------------------------------- 1 | \libdoc{clpb}{CLP(B): Constraint Logic Programming over Boolean Variables} 2 | 3 | \label{sec:clpb} 4 | 5 | \begin{tags} 6 | \tag{author} 7 | \href{https://www.metalevel.at}{Markus Triska} 8 | \end{tags} 9 | 10 | 11 | % remainder, generated from Markdown and PlDoc 12 | \input{clpblib.tex} 13 | 14 | -------------------------------------------------------------------------------- /man/lib/clpfd.doc: -------------------------------------------------------------------------------- 1 | \libdoc{clpfd}{CLP(FD): Constraint Logic Programming over Finite Domains} 2 | 3 | \label{sec:clpfd} 4 | 5 | \begin{tags} 6 | \tag{author} 7 | \href{https://www.metalevel.at}{Markus Triska} 8 | \end{tags} 9 | 10 | \noindent\textbf{Development of this library has moved to SICStus Prolog.}\\ 11 | Please see 12 | \href{https://github.com/triska/clpz}{\textbf{CLP(Z)}} for more 13 | information. 14 | 15 | % remainder, generated from Markdown and PlDoc 16 | \input{clpfdlib.tex} 17 | 18 | -------------------------------------------------------------------------------- /man/lib/pio.doc: -------------------------------------------------------------------------------- 1 | \libdoc{pio}{Pure I/O} 2 | \label{sec:lib:pio} 3 | 4 | This library provides pure list-based I/O processing for Prolog, where 5 | the communication to the actual I/O device is performed transparently 6 | through coroutining. This module itself is just an interface to the 7 | actual implementation modules. 8 | 9 | \input{pureinput} 10 | -------------------------------------------------------------------------------- /man/lib/predicateoptions.doc: -------------------------------------------------------------------------------- 1 | \libdoc{predicate_options}{Declare option-processing of predicates} 2 | 3 | \makebox[\linewidth]{\hfill\textit{Discussions with Jeff Schultz 4 | helped shaping this library}} 5 | 6 | \input{predopts.tex} 7 | -------------------------------------------------------------------------------- /man/lib/simplex.doc: -------------------------------------------------------------------------------- 1 | \libdoc{simplex}{Solve linear programming problems} 2 | 3 | \label{sec:simplex} 4 | 5 | \begin{tags} 6 | \tag{author} 7 | \href{https://www.metalevel.at}{Markus Triska} 8 | \end{tags} 9 | 10 | \input{simplexlib.tex} 11 | -------------------------------------------------------------------------------- /man/logo.sty: -------------------------------------------------------------------------------- 1 | % LOGOS 2 | 3 | \newcommand{\SWI}[1]{\includegraphics[height=#1]{figs/swi}} 4 | -------------------------------------------------------------------------------- /man/makeindex.ist: -------------------------------------------------------------------------------- 1 | actual '' 2 | level ',' 3 | -------------------------------------------------------------------------------- /packages/.gitignore: -------------------------------------------------------------------------------- 1 | Dialect.defs 2 | Makefile.defs 3 | swipl-ld.sh 4 | swipl.sh 5 | .FAILED_TESTS 6 | .failed.install 7 | .failed.objects 8 | -------------------------------------------------------------------------------- /scripts/clean-build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Completely remove all contents from a build directory, but leave 4 | # experimental files in tact. 5 | 6 | if [ ! -f CMakeCache.txt ]; then 7 | echo "Not a build directory" 8 | exit 1 9 | fi 10 | 11 | for f in *; do 12 | case "$f" in 13 | build|configure|*.pl|*.c|*.py|*.md) 14 | ;; 15 | *) 16 | rm -rf $f 17 | ;; 18 | esac 19 | done 20 | 21 | rm -f .ninja_deps .ninja_log 22 | -------------------------------------------------------------------------------- /scripts/conda_utils.py: -------------------------------------------------------------------------------- 1 | # Script utilities for Conda builds. We use Python for the scripting 2 | # such that we can share the same scripts over all operating systems. 3 | 4 | import subprocess 5 | 6 | def install_component(c): 7 | if subprocess.run([ "cmake", f"-DCMAKE_INSTALL_COMPONENT={c}", 8 | "-P", "cmake_install.cmake" 9 | ], 10 | cwd="build").returncode != 0: 11 | exit(1) 12 | 13 | -------------------------------------------------------------------------------- /scripts/indent.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | preview=false 4 | done=false 5 | 6 | while [ done = "false" ]; do 7 | case "$1" in 8 | -p) preview=true 9 | shift 10 | ;; 11 | *) done=true 12 | ;; 13 | esac 14 | done 15 | 16 | if [ $preview = true ]; then 17 | 18 | for f in $*; do 19 | clang-format $f | sed ':a;N;$!ba;s/{[\ ]*\n\s*/{ /g' | less 20 | done 21 | 22 | else 23 | 24 | for f in $*; do 25 | cp $f $f.orig 26 | clang-format $f.orig | sed ':a;N;$!ba;s/{[\ ]*\n\s*/{ /g' > $f 27 | done 28 | 29 | fi 30 | -------------------------------------------------------------------------------- /scripts/unused.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Find unused functions in a set of object files 4 | # Typical use: 5 | # 6 | # ../scripts/unused.sh *.o */*.o 7 | 8 | files="$*" 9 | deffed=unused.deffed$$ 10 | used=unused.used$$ 11 | 12 | nm $files | grep -w T | awk '{print $3}' | sort -u >> $deffed 13 | nm $files | grep -w U | awk '{print $2}' | sort -u >> $used 14 | 15 | comm -23 $deffed $used | egrep -v '^_?(PL|SP)_' 16 | 17 | rm -f $deffed $used 18 | -------------------------------------------------------------------------------- /src/.gitignore: -------------------------------------------------------------------------------- 1 | parms.h 2 | swipl 3 | swipl.1 4 | swipl.prc 5 | swipl.pc 6 | swipl.home 7 | swipl-ld 8 | swipl-ld-build 9 | swipl.sh 10 | pl-atom.ic 11 | pl-atom.ih 12 | pl-funct.ic 13 | pl-funct.ih 14 | defatom 15 | mkvmi 16 | vmi 17 | *.exe 18 | .defatom-sentinel 19 | .vmi-sentinel 20 | *.dSYM 21 | -------------------------------------------------------------------------------- /src/Unicode/.gitignore: -------------------------------------------------------------------------------- 1 | DerivedCoreProperties.txt 2 | UnicodeData.txt 3 | -------------------------------------------------------------------------------- /src/Unicode/README.md: -------------------------------------------------------------------------------- 1 | The files here generate ../pl-umap.c. Before running one must obtain the 2 | following Unicode data files: 3 | 4 | * UnicodeData.txt 5 | * DerivedCoreProperties.txt 6 | 7 | Then run 8 | 9 | % swipl prolog_syntax_map.pl 10 | 11 | We used the Unicode 14.0.0 files 12 | -------------------------------------------------------------------------------- /src/libtai/CHANGES: -------------------------------------------------------------------------------- 1 | 19981013 libtai 0.60, alpha. 2 | 19970908 libtai 0.56, alpha. 3 | 19970730 libtai 0.50, alpha. 4 | -------------------------------------------------------------------------------- /src/libtai/README: -------------------------------------------------------------------------------- 1 | libtai 0.60, alpha. 2 | 19981013 3 | Copyright 1998 4 | D. J. Bernstein, djb@pobox.com 5 | http://pobox.com/~djb/libtai.html 6 | 7 | libtai is a library for storing and manipulating dates and times. See 8 | BLURB for a more detailed advertisement. 9 | 10 | INSTALL says how to set up and test libtai. 11 | -------------------------------------------------------------------------------- /src/libtai/THANKS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SWI-Prolog/swipl-devel/508550cf35cb9efb3408f6b18610c34f23fc98b4/src/libtai/THANKS -------------------------------------------------------------------------------- /src/libtai/TODO: -------------------------------------------------------------------------------- 1 | test caldate_mjd handling of weird days 2 | test caldate_mjd handling of weird months 3 | manually verify check.out 4 | make 32-bit version? 5 | test, test, test! 6 | support time zones 7 | -------------------------------------------------------------------------------- /src/libtai/VERSION: -------------------------------------------------------------------------------- 1 | libtai 0.60 2 | -------------------------------------------------------------------------------- /src/libtai/caldate.h: -------------------------------------------------------------------------------- 1 | #ifndef CALDATE_H 2 | #define CALDATE_H 3 | 4 | struct caldate { 5 | long year; 6 | int month; 7 | int day; 8 | } ; 9 | 10 | extern unsigned int caldate_fmt(char *s, struct caldate *cd); 11 | extern unsigned int caldate_scan(char *s, struct caldate *cd); 12 | 13 | extern void caldate_frommjd(struct caldate *cd, int64_t day, int *pwday, int *pyday); 14 | extern long caldate_mjd(struct caldate *cd); 15 | extern void caldate_normalize(struct caldate *cd); 16 | 17 | extern void caldate_easter(struct caldate *cd); 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /src/libtai/caldate_norm.c: -------------------------------------------------------------------------------- 1 | #include "tai.h" 2 | #include "caldate.h" 3 | 4 | void caldate_normalize(struct caldate *cd) 5 | { 6 | caldate_frommjd(cd,caldate_mjd(cd),(int *) 0,(int *) 0); 7 | } 8 | -------------------------------------------------------------------------------- /src/libtai/caltime.h: -------------------------------------------------------------------------------- 1 | #ifndef CALTIME_H 2 | #define CALTIME_H 3 | 4 | #include "caldate.h" 5 | 6 | struct caltime { 7 | struct caldate date; 8 | int hour; 9 | int minute; 10 | int second; 11 | long offset; 12 | } ; 13 | 14 | extern void caltime_tai(struct caltime *ct, struct tai *t); 15 | extern void caltime_utc(struct caltime *ct, struct tai *t, int *pwday, int *pyday); 16 | 17 | extern unsigned int caltime_fmt(char *s, struct caltime *ct); 18 | extern unsigned int caltime_scan(char *s, struct caltime *ct); 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /src/libtai/caltime_tai.c: -------------------------------------------------------------------------------- 1 | #include "tai.h" 2 | #include "leapsecs.h" 3 | #include "caldate.h" 4 | #include "caltime.h" 5 | 6 | /* XXX: breaks tai encapsulation */ 7 | 8 | void caltime_tai(struct caltime *ct, struct tai *t) 9 | { 10 | long day; 11 | long s; 12 | 13 | /* XXX: check for overflow? */ 14 | 15 | day = caldate_mjd(&ct->date); 16 | 17 | s = ct->hour * 60 + ct->minute; 18 | s = (s - ct->offset) * 60 + ct->second; 19 | 20 | t->x = day * ULL(86400) + ULL(4611686014920671114) + (int64_t) s; 21 | 22 | leapsecs_add(t,ct->second == 60); 23 | } 24 | -------------------------------------------------------------------------------- /src/libtai/leapsecs.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SWI-Prolog/swipl-devel/508550cf35cb9efb3408f6b18610c34f23fc98b4/src/libtai/leapsecs.dat -------------------------------------------------------------------------------- /src/libtai/leapsecs.h: -------------------------------------------------------------------------------- 1 | #ifndef LEAPSECS_H 2 | #define LEAPSECS_H 3 | 4 | extern int leapsecs_init(void); 5 | extern int leapsecs_read(const char *file); 6 | 7 | extern void leapsecs_add(struct tai *t, int hit); 8 | extern int leapsecs_sub(struct tai *t); 9 | 10 | #ifndef GLOBAL 11 | #define GLOBAL extern 12 | #endif 13 | 14 | GLOBAL struct tai *leapsecs; 15 | GLOBAL int leapsecs_num; 16 | #endif 17 | -------------------------------------------------------------------------------- /src/libtai/leapsecs_add.c: -------------------------------------------------------------------------------- 1 | #include "tai.h" 2 | #include "leapsecs.h" 3 | 4 | /* XXX: breaks tai encapsulation */ 5 | 6 | void leapsecs_add(struct tai *t, int hit) 7 | { 8 | int i; 9 | uint64_t u; 10 | 11 | if (leapsecs_init() == -1) return; 12 | 13 | u = t->x; 14 | 15 | for (i = 0;i < leapsecs_num;++i) { 16 | if (u < leapsecs[i].x) break; 17 | if (!hit || (u > leapsecs[i].x)) ++u; 18 | } 19 | 20 | t->x = u; 21 | } 22 | -------------------------------------------------------------------------------- /src/libtai/leapsecs_init.c: -------------------------------------------------------------------------------- 1 | #include "tai.h" 2 | #include "leapsecs.h" 3 | 4 | static int flaginit = 0; 5 | 6 | int leapsecs_init(void) 7 | { 8 | if (flaginit) return 0; 9 | if (leapsecs_read("/etc/leapsecs.dat") == -1) return -1; 10 | flaginit = 1; 11 | return 0; 12 | } 13 | -------------------------------------------------------------------------------- /src/libtai/leapsecs_sub.c: -------------------------------------------------------------------------------- 1 | #include "tai.h" 2 | #include "leapsecs.h" 3 | 4 | /* XXX: breaks tai encapsulation */ 5 | 6 | int leapsecs_sub(struct tai *t) 7 | { 8 | int i; 9 | uint64_t u; 10 | int s; 11 | 12 | if (leapsecs_init() == -1) return 0; 13 | 14 | u = t->x; 15 | s = 0; 16 | 17 | for (i = 0;i < leapsecs_num;++i) { 18 | if (u < leapsecs[i].x) break; 19 | ++s; 20 | if (u == leapsecs[i].x) { t->x = u - s; return 1; } 21 | } 22 | 23 | t->x = u - s; 24 | return 0; 25 | } 26 | -------------------------------------------------------------------------------- /src/libtai/tai_add.c: -------------------------------------------------------------------------------- 1 | #include "tai.h" 2 | 3 | void tai_add(struct tai *t, struct tai *u, struct tai *v) 4 | { 5 | t->x = u->x + v->x; 6 | } 7 | -------------------------------------------------------------------------------- /src/libtai/tai_now.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "tai.h" 3 | 4 | void tai_now(struct tai *t) 5 | { 6 | t->x = ULL(4611686018427387914) + (uint64_t) time((time_t *) 0); 7 | } 8 | -------------------------------------------------------------------------------- /src/libtai/tai_pack.c: -------------------------------------------------------------------------------- 1 | #include "tai.h" 2 | 3 | void tai_pack(char *s, struct tai *t) 4 | { 5 | uint64_t x; 6 | 7 | x = t->x; 8 | /* JW: Cast to int need to get MSVC6 silent */ 9 | s[7] = (char)(x & 255); x >>= 8; 10 | s[6] = (char)(x & 255); x >>= 8; 11 | s[5] = (char)(x & 255); x >>= 8; 12 | s[4] = (char)(x & 255); x >>= 8; 13 | s[3] = (char)(x & 255); x >>= 8; 14 | s[2] = (char)(x & 255); x >>= 8; 15 | s[1] = (char)(x & 255); x >>= 8; 16 | s[0] = (char)x; 17 | } 18 | -------------------------------------------------------------------------------- /src/libtai/tai_sub.c: -------------------------------------------------------------------------------- 1 | #include "tai.h" 2 | 3 | void tai_sub(struct tai *t, struct tai *u, struct tai *v) 4 | { 5 | t->x = u->x - v->x; 6 | } 7 | -------------------------------------------------------------------------------- /src/libtai/tai_unpack.c: -------------------------------------------------------------------------------- 1 | #include "tai.h" 2 | 3 | void tai_unpack(char *s, struct tai *t) 4 | { 5 | uint64_t x; 6 | 7 | x = (unsigned char) s[0]; 8 | x <<= 8; x += (unsigned char) s[1]; 9 | x <<= 8; x += (unsigned char) s[2]; 10 | x <<= 8; x += (unsigned char) s[3]; 11 | x <<= 8; x += (unsigned char) s[4]; 12 | x <<= 8; x += (unsigned char) s[5]; 13 | x <<= 8; x += (unsigned char) s[6]; 14 | x <<= 8; x += (unsigned char) s[7]; 15 | t->x = x; 16 | } 17 | -------------------------------------------------------------------------------- /src/libtai/taia_add.c: -------------------------------------------------------------------------------- 1 | #include "taia.h" 2 | 3 | /* XXX: breaks tai encapsulation */ 4 | 5 | void taia_add(struct taia *t, struct taia *u, struct taia *v) 6 | { 7 | t->sec.x = u->sec.x + v->sec.x; 8 | t->nano = u->nano + v->nano; 9 | t->atto = u->atto + v->atto; 10 | if (t->atto > 999999999UL) { 11 | t->atto -= 1000000000UL; 12 | ++t->nano; 13 | } 14 | if (t->nano > 999999999UL) { 15 | t->nano -= 1000000000UL; 16 | ++t->sec.x; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/libtai/taia_approx.c: -------------------------------------------------------------------------------- 1 | #include "taia.h" 2 | 3 | double taia_approx(struct taia *t) 4 | { return tai_approx(&t->sec) + taia_frac(t); 5 | } 6 | -------------------------------------------------------------------------------- /src/libtai/taia_frac.c: -------------------------------------------------------------------------------- 1 | #include "taia.h" 2 | 3 | double taia_frac(struct taia *t) 4 | { 5 | return ((double)t->atto * 0.000000001 + (double)t->nano) * 0.000000001; 6 | } 7 | -------------------------------------------------------------------------------- /src/libtai/taia_half.c: -------------------------------------------------------------------------------- 1 | #include "taia.h" 2 | 3 | /* XXX: breaks tai encapsulation */ 4 | 5 | void taia_half(struct taia *t, struct taia *u) 6 | { 7 | t->atto = u->atto >> 1; 8 | if (u->nano & 1) t->atto += 500000000UL; 9 | t->nano = u->nano >> 1; 10 | if (u->sec.x & 1) t->nano += 500000000UL; 11 | t->sec.x = u->sec.x >> 1; 12 | } 13 | -------------------------------------------------------------------------------- /src/libtai/taia_less.c: -------------------------------------------------------------------------------- 1 | #include "taia.h" 2 | 3 | /* XXX: breaks tai encapsulation */ 4 | 5 | int taia_less(struct taia *t, struct taia *u) 6 | { 7 | if (t->sec.x < u->sec.x) return 1; 8 | if (t->sec.x > u->sec.x) return 0; 9 | if (t->nano < u->nano) return 1; 10 | if (t->nano > u->nano) return 0; 11 | return t->atto < u->atto; 12 | } 13 | -------------------------------------------------------------------------------- /src/libtai/taia_pack.c: -------------------------------------------------------------------------------- 1 | #include "taia.h" 2 | 3 | void taia_pack(char *s, struct taia *t) 4 | { 5 | unsigned long x; 6 | 7 | tai_pack(s,&t->sec); 8 | s += 8; 9 | 10 | x = t->atto; 11 | s[7] = (char)(x & 255); x >>= 8; 12 | s[6] = (char)(x & 255); x >>= 8; 13 | s[5] = (char)(x & 255); x >>= 8; 14 | s[4] = (char)x; 15 | x = t->nano; 16 | s[3] = (char)(x & 255); x >>= 8; 17 | s[2] = (char)(x & 255); x >>= 8; 18 | s[1] = (char)(x & 255); x >>= 8; 19 | s[0] = (char)x; 20 | } 21 | -------------------------------------------------------------------------------- /src/libtai/taia_sub.c: -------------------------------------------------------------------------------- 1 | #include "taia.h" 2 | 3 | /* XXX: breaks tai encapsulation */ 4 | 5 | void taia_sub(struct taia *t, struct taia *u, struct taia *v) 6 | { 7 | unsigned long unano = u->nano; 8 | unsigned long uatto = u->atto; 9 | 10 | t->sec.x = u->sec.x - v->sec.x; 11 | t->nano = unano - v->nano; 12 | t->atto = uatto - v->atto; 13 | if (t->atto > uatto) { 14 | t->atto += 1000000000UL; 15 | --t->nano; 16 | } 17 | if (t->nano > unano) { 18 | t->nano += 1000000000UL; 19 | --t->sec.x; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/libtai/taia_tai.c: -------------------------------------------------------------------------------- 1 | #include "taia.h" 2 | 3 | void taia_tai(struct taia *ta, struct tai *t) 4 | { 5 | *t = ta->sec; 6 | } 7 | -------------------------------------------------------------------------------- /src/libtai/taia_unpack.c: -------------------------------------------------------------------------------- 1 | #include "taia.h" 2 | 3 | void taia_unpack(char *s, struct taia *t) 4 | { 5 | unsigned long x; 6 | 7 | tai_unpack(s,&t->sec); 8 | s += 8; 9 | 10 | x = (unsigned char) s[4]; 11 | x <<= 8; x += (unsigned char) s[5]; 12 | x <<= 8; x += (unsigned char) s[6]; 13 | x <<= 8; x += (unsigned char) s[7]; 14 | t->atto = x; 15 | x = (unsigned char) s[0]; 16 | x <<= 8; x += (unsigned char) s[1]; 17 | x <<= 8; x += (unsigned char) s[2]; 18 | x <<= 8; x += (unsigned char) s[3]; 19 | t->nano = x; 20 | } 21 | -------------------------------------------------------------------------------- /src/make.cmd: -------------------------------------------------------------------------------- 1 | 2 | @echo off 3 | 4 | SETLOCAL 5 | 6 | call call_vcvars.cmd 7 | 8 | rem Build default multi-threaded version 9 | nmake /f makefile.mak %* 10 | 11 | rem Build for multi-threading and debugging 12 | rem nmake DBG=true /f makefile.mak %* 13 | 14 | ENDLOCAL 15 | -------------------------------------------------------------------------------- /src/minizip/MiniZip64_Changes.txt: -------------------------------------------------------------------------------- 1 | 2 | MiniZip 1.1 was derived from MiniZip at version 1.01f 3 | 4 | Change in 1.0 (Okt 2009) 5 | - **TODO - Add history** 6 | 7 | -------------------------------------------------------------------------------- /src/minizip/file.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SWI-Prolog/swipl-devel/508550cf35cb9efb3408f6b18610c34f23fc98b4/src/minizip/file.zip -------------------------------------------------------------------------------- /src/minizip/minizip.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | libdir=@libdir@ 4 | includedir=@includedir@/minizip 5 | 6 | Name: minizip 7 | Description: Minizip zip file manipulation library 8 | Requires: 9 | Version: @PACKAGE_VERSION@ 10 | Libs: -L${libdir} -lminizip 11 | Libs.private: -lz 12 | Cflags: -I${includedir} 13 | -------------------------------------------------------------------------------- /src/os/atoms.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # This script filters the ATOM_declarations that are actually used from 4 | # a set of C source-files, copying their string-value from ../ATOMS 5 | # 6 | # Usage: 7 | # ./atoms.sh *.[ch] 8 | 9 | inputs="$*" 10 | 11 | astring() 12 | { grep "^A $1\>" ../ATOMS | awk '{print $3}' 13 | } 14 | 15 | atoms=$(grep '\ 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/swipl.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=${prefix} 3 | libdir=@CMAKE_INSTALL_PREFIX@/@LIBSWIPL_DIR@ 4 | includedir=@CMAKE_INSTALL_PREFIX@/@SWIPL_INSTALL_INCLUDE@ 5 | 6 | Name: swipl 7 | Description: ISO/Edinburgh-style Prolog compiler 8 | Version: @PLVERSION@ 9 | Libs: -L${libdir} -lswipl 10 | Cflags: -I${includedir} 11 | -------------------------------------------------------------------------------- /src/swipl.rc: -------------------------------------------------------------------------------- 1 | #include "windows.h" 2 | 3 | SWI_Icon ICON swipl.ico 4 | 5 | // RT_MANIFEST to prevent Windows Vista and up from asking to execute (UAC). 6 | // Only include the manifest when building under MinGW, since MSVC generates its 7 | // own manifest. Including a manifest here leads to a duplicate resource error. 8 | #ifdef __MINGW32__ 9 | 1 RT_MANIFEST "swipl.manifest" 10 | #endif // __MINGW32__ 11 | -------------------------------------------------------------------------------- /src/test/mk: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | EXTRA=-DVERBOSE 4 | 5 | if [ x"$1" = "x-q" ]; then 6 | EXTRA= 7 | shift 8 | fi 9 | if [ x"$1" = "x-segv" ]; then 10 | EXTRA="$EXTRA -DNO_SEGV_HANDLING" 11 | shift 12 | fi 13 | 14 | arch="linux" 15 | 16 | if [ ! -d ../../$arch ]; then 17 | echo "Usage: `basename $0`: architecture" 18 | fi 19 | 20 | cc -I../../$arch $CFLAGS -DHAVE_CONFIG_H $EXTRA -o mmap mmap.c 21 | 22 | if [ -x mmap ]; then 23 | echo "Running mmap test" 24 | ./mmap 25 | fi 26 | -------------------------------------------------------------------------------- /src/version.h.in: -------------------------------------------------------------------------------- 1 | /* Generated file that contains the version identifier from 2 | the "git describe" command. 3 | 4 | DO NOT EDIT. Generated by CMake. 5 | */ 6 | 7 | #cmakedefine GIT_VERSION "@GIT_VERSION@" 8 | #cmakedefine CMAKE_BUILD_TYPE "@CMAKE_BUILD_TYPE@" 9 | -------------------------------------------------------------------------------- /src/wasm/runtime_exports.json: -------------------------------------------------------------------------------- 1 | [ 2 | "FS", 3 | "cwrap", 4 | "intArrayFromString", 5 | "setValue", 6 | "getValue", 7 | "UTF8ToString", 8 | "lengthBytesUTF8", 9 | "stringToNewUTF8", 10 | "stringToUTF8" 11 | ] 12 | -------------------------------------------------------------------------------- /tests/COPYING: -------------------------------------------------------------------------------- 1 | # The license conditions of the SWI-Prolog test suite 2 | 3 | Most of the SWI-Prolog test suite is licensed under the simplified BSD 4 | (BSD-2) license. Some of the test files are licensed under the GPL with 5 | exception clause and we have no explicit permission to change their 6 | license. As the license of test files does not affect the license of 7 | SWI-Prolog as a system there is no reason to challenge whether or not 8 | the contributions are subject to copyright, nor is there a reason to 9 | replace or remove these test files. 10 | -------------------------------------------------------------------------------- /tests/README: -------------------------------------------------------------------------------- 1 | These directories contain tests called from the main test-script. Each 2 | subdirectory holds test-files. Each test file must obey the following 3 | rules: 4 | 5 | * The filename must be unique in the whole test-pool 6 | 7 | * It must be a module-file and the module name must be the 8 | filename 9 | 10 | * It must export a single predicate whose name is the name of 11 | the file and the predicate should succeed without output if 12 | the test succeeds. 13 | -------------------------------------------------------------------------------- /tests/charset/UTF-8-test.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SWI-Prolog/swipl-devel/508550cf35cb9efb3408f6b18610c34f23fc98b4/tests/charset/UTF-8-test.txt -------------------------------------------------------------------------------- /tests/core/data/empty: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SWI-Prolog/swipl-devel/508550cf35cb9efb3408f6b18610c34f23fc98b4/tests/core/data/empty -------------------------------------------------------------------------------- /tests/library/csv/emptyline.csv: -------------------------------------------------------------------------------- 1 | a1,a2,a3 2 | 3 | b1,b2,b3 4 | -------------------------------------------------------------------------------- /tests/library/csv/normal.csv: -------------------------------------------------------------------------------- 1 | a1,a2,a3 2 | b1,b2,b3 3 | -------------------------------------------------------------------------------- /tests/library/csv/quoted.csv: -------------------------------------------------------------------------------- 1 | a1,"a2",a3 2 | b1,b2,b3 3 | "c1_1""c1_2","""c2","c3""" 4 | -------------------------------------------------------------------------------- /tests/library/csv/quoted_crlf.csv: -------------------------------------------------------------------------------- 1 | a1,a2,"a3_1 2 | a3_2" 3 | b1,b2,b3 4 | c1,"c2_1 5 | 6 | c2_2",c3 7 | -------------------------------------------------------------------------------- /tests/library/csv/quoted_lf.csv: -------------------------------------------------------------------------------- 1 | a1,a2,"a3_1 2 | a3_2" 3 | b1,b2,b3 4 | c1,"c2_1 5 | 6 | c2_2",c3 7 | -------------------------------------------------------------------------------- /tests/save/input/unicode.pl: -------------------------------------------------------------------------------- 1 | :- encoding(utf8). 2 | 3 | % data(?Data) 4 | % 5 | % Provide data for QLF round trip. 6 | % @bug: If this is turned into a PlDoc comment and PlDoc is enabled 7 | % qcompile/1 creates invalid output. 8 | 9 | data(1). 10 | data('Hallo'). 11 | data('ታዲያስ'). 12 | data('مرحبا'). 13 | data('Kaixo'). 14 | data('নমস্কার'). 15 | data('Olá'). 16 | data('سلام'). 17 | data('მიესალმები'). 18 | data('नमस्ते'). 19 | data('こんにちは'). 20 | 21 | data('😁'). 22 | data('🤣'). 23 | 24 | data('with\u0000null'). 25 | -------------------------------------------------------------------------------- /tests/unprotected/README.md: -------------------------------------------------------------------------------- 1 | # Unprotected tests 2 | 3 | This directory contains tests that cannot function with 4 | `protect_static_code` enabled. As core/test_db.pl tests the functioning 5 | of this flag and setting this flag cannot be undone we must run these 6 | tests first. 7 | -------------------------------------------------------------------------------- /tests/unprotected/reload/README.md: -------------------------------------------------------------------------------- 1 | # Test data for reconsult 2 | 3 | Each file consists of a series of sections, separated by a line holding 4 | at least 4 %%%%, typically 16: 5 | 6 | ``` 7 | %%%%%%%%%%%%%%%% 8 | ``` 9 | 10 | The source code for version _N_ is the Nth section, preceded by a 11 | module header. 12 | -------------------------------------------------------------------------------- /tests/unprotected/reload/add_attr_end.pl: -------------------------------------------------------------------------------- 1 | p :- a. 2 | a. 3 | %%%%%%%%%%%%%%%% 4 | :- public p/0. 5 | p :- a. 6 | a. 7 | 8 | -------------------------------------------------------------------------------- /tests/unprotected/reload/add_clause.pl: -------------------------------------------------------------------------------- 1 | p1(a) :- a. 2 | p1(c) :- c. 3 | 4 | a. c. 5 | 6 | %%%%%%%%%%%%%%%% 7 | p1(a) :- a. 8 | p1(b) :- b. 9 | p1(c) :- c. 10 | 11 | a. b. c. 12 | -------------------------------------------------------------------------------- /tests/unprotected/reload/add_meta_predicate.pl: -------------------------------------------------------------------------------- 1 | p(G) :- G = _:_. 2 | %%%%%%%%%%%%%%%% 3 | :- meta_predicate p(:). 4 | p(G) :- G = _:_. 5 | -------------------------------------------------------------------------------- /tests/unprotected/reload/add_pred.pl: -------------------------------------------------------------------------------- 1 | p1. 2 | %%%%%%%%%%%%%%%% 3 | p1. 4 | p2. 5 | -------------------------------------------------------------------------------- /tests/unprotected/reload/add_thread_local.pl: -------------------------------------------------------------------------------- 1 | p(a). 2 | %%%%%%%%%%%%%%%% 3 | :- thread_local p/1. 4 | -------------------------------------------------------------------------------- /tests/unprotected/reload/del_attr_end.pl: -------------------------------------------------------------------------------- 1 | :- public p/0. 2 | p :- a. 3 | a. 4 | %%%%%%%%%%%%%%%% 5 | p :- a. 6 | a. 7 | -------------------------------------------------------------------------------- /tests/unprotected/reload/del_clause.pl: -------------------------------------------------------------------------------- 1 | p1(a) :- a. 2 | p1(b) :- b. 3 | p1(c) :- c. 4 | 5 | a. b. c. 6 | %%%%%%%%%%%%%%%% 7 | p1(a) :- a. 8 | p1(c) :- c. 9 | 10 | a. c. 11 | -------------------------------------------------------------------------------- /tests/unprotected/reload/del_clause_a.pl: -------------------------------------------------------------------------------- 1 | p1(a) :- a. 2 | p1(b) :- b. 3 | p1(c) :- c. 4 | 5 | a. b. c. 6 | %%%%%%%%%%%%%%%% 7 | p1(b) :- b. 8 | p1(c) :- c. 9 | 10 | b. c. 11 | -------------------------------------------------------------------------------- /tests/unprotected/reload/del_clause_z.pl: -------------------------------------------------------------------------------- 1 | p1(a) :- a. 2 | p1(b) :- b. 3 | p1(c) :- c. 4 | 5 | a. b. c. 6 | %%%%%%%%%%%%%%%% 7 | p1(a) :- a. 8 | p1(b) :- b. 9 | 10 | a. b. 11 | -------------------------------------------------------------------------------- /tests/unprotected/reload/del_det.pl: -------------------------------------------------------------------------------- 1 | :- det(p/1). 2 | p(a). 3 | %%%%%%%%%%%%%%%% 4 | p(a). 5 | -------------------------------------------------------------------------------- /tests/unprotected/reload/del_discontiguous.pl: -------------------------------------------------------------------------------- 1 | :- discontiguous p1/1. 2 | p1(a). 3 | p2(a). 4 | p1(b). 5 | %%%%%%%%%%%%%%%% 6 | p1(a). 7 | p2(a). 8 | p1(b). 9 | 10 | -------------------------------------------------------------------------------- /tests/unprotected/reload/del_dynamic.pl: -------------------------------------------------------------------------------- 1 | :- dynamic p/1. 2 | p(a). 3 | %%%%%%%%%%%%%%%% 4 | p(a). 5 | -------------------------------------------------------------------------------- /tests/unprotected/reload/del_export.pl: -------------------------------------------------------------------------------- 1 | :- module(del_export, [p1/0, p2/0]). 2 | p1. 3 | p2. 4 | %%%%%%%%%%%%%%%% 5 | :- module(del_export, [p1/0]). 6 | p1. 7 | -------------------------------------------------------------------------------- /tests/unprotected/reload/del_meta_predicate.pl: -------------------------------------------------------------------------------- 1 | :- meta_predicate p(:). 2 | p(G) :- G = _:_. 3 | %%%%%%%%%%%%%%%% 4 | p(G) :- G = _:_. 5 | -------------------------------------------------------------------------------- /tests/unprotected/reload/del_pred.pl: -------------------------------------------------------------------------------- 1 | p1. 2 | p2. 3 | %%%%%%%%%%%%%%%% 4 | p1. 5 | -------------------------------------------------------------------------------- /tests/unprotected/reload/keep_tabling.pl: -------------------------------------------------------------------------------- 1 | :- table p/2. 2 | 3 | p(A,A). 4 | p(A,C) :- p(A,B), e(B, C). 5 | e(a,b). 6 | e(b,c). 7 | %%%%%%%%%%%%%%%% 8 | :- table p/2. 9 | 10 | p(A,A). 11 | p(A,C) :- p(A,B), e(B, C). 12 | e(a,b). 13 | e(b,c). 14 | 15 | -------------------------------------------------------------------------------- /tests/unprotected/reload/keep_thread_local.pl: -------------------------------------------------------------------------------- 1 | :- thread_local p/1. 2 | 3 | p1 :- 4 | asserta(p(a)), 5 | p(_). 6 | -------------------------------------------------------------------------------- /tests/unprotected/reload/reload_maplist.pl: -------------------------------------------------------------------------------- 1 | :- use_module(library(apply_macros)). 2 | 3 | square_list(In, Out) :- 4 | maplist(square, In, In1), 5 | maplist(square, In1, Out). 6 | 7 | square(V, V2) :- 8 | V2 is V*V. 9 | -------------------------------------------------------------------------------- /tests/unprotected/reload/replace_clause.pl: -------------------------------------------------------------------------------- 1 | p(a) :- a. 2 | 3 | a. 4 | 5 | %%%%%%%%%%%%%%%% 6 | p(b) :- b. 7 | 8 | b. 9 | -------------------------------------------------------------------------------- /tests/unprotected/reload/simple.pl: -------------------------------------------------------------------------------- 1 | p1. 2 | 3 | p2 :- a. 4 | p2 :- b. 5 | 6 | p3 :- a. 7 | p3 :- b. 8 | p3 :- c. 9 | 10 | a. 11 | b. 12 | c. 13 | -------------------------------------------------------------------------------- /tests/xsb/.gitignore: -------------------------------------------------------------------------------- 1 | *.xwam 2 | -------------------------------------------------------------------------------- /tests/xsb/ai_tests/can_mono.H: -------------------------------------------------------------------------------- 1 | :- export normalize_result/2, table2graph/2. 2 | 3 | :- import variant/2 from subsumes. 4 | :- import flatten_sets/2 from set_basics_mono. 5 | 6 | -------------------------------------------------------------------------------- /tests/xsb/ai_tests/qsort_old: -------------------------------------------------------------------------------- 1 | 2 | =========== Result is ================ 3 | append([list],[A],[A,list]) 4 | append([list],[A],[A]) 5 | partition([list],[A],[list],[list]) 6 | partition([list],[num],[list],[list]) 7 | qsort([list],[list]) 8 | -------------------------------------------------------------------------------- /tests/xsb/ai_tests/queens_old: -------------------------------------------------------------------------------- 1 | 2 | =========== Result is ================ 3 | delete([A],[B,list],[B,list]) 4 | delete([A],[B,list],[B]) 5 | noattack([A],[list],[B]) 6 | noattack([num],[list],[num]) 7 | perm([list],[list]) 8 | queens([list],[list]) 9 | safe([list]) 10 | -------------------------------------------------------------------------------- /tests/xsb/attv_tests/assert_attv_old: -------------------------------------------------------------------------------- 1 | First time of test_clause1 2 | First time of test_clause2 3 | First time of test_fact1 4 | First time of test_fact2 5 | Passed assert_attv! 6 | Passed test_clause1 7 | Passed test_clause2 8 | Passed test_fact1 9 | Passed test_fact2 10 | Passed test_sharing! 11 | Second time of test_clause1 12 | Second time of test_clause2 13 | Second time of test_fact1 14 | Second time of test_fact2 15 | p(555, X1) is OK 16 | p(X2, abc) is OK 17 | p(X3, Y3) is OK 18 | p(X4, X4) is OK 19 | q(A,B,123,D) is OK 20 | q(f(5, Y1), Z1) is OK 21 | retract is OK 22 | v(1) 23 | -------------------------------------------------------------------------------- /tests/xsb/attv_tests/attv_test_old: -------------------------------------------------------------------------------- 1 | == test_attv_disj_interrupt OK 2 | == test_attv_disj_interrupt OK 3 | == test_attv_interrupt OK 4 | == test_cut1 SUCCEEDED 5 | == test_cut2 SUCCEEDED 6 | == test_deref OK 7 | == test_implict_unify OK 8 | == test_unify OK 9 | == test_update 1 OK 10 | == test_update 2 OK 11 | Attribute = v(11) 12 | Attribute = v(22) 13 | disjunct_A 14 | disjunct_B 15 | PASSED attv_test! 16 | Value = 2 17 | Value = 5 18 | Value = 7 19 | Var's attribute = v(1) 20 | Var's attribute = v(12) 21 | Var's attribute = v(30) 22 | -------------------------------------------------------------------------------- /tests/xsb/attv_tests/attvar_assert_regalloc.P: -------------------------------------------------------------------------------- 1 | ?- 2 | machine:put_attr(V2,aaaa,[=(x,X)]), 3 | assert:assert( 4 | ( 5 | abc(qqq(V1, [X], Y, V2, ppp(V1))) :- true, rrr([X,Y]) 6 | ), 7 | 3, 8 | 1 9 | ). 10 | 11 | 12 | test :- abc(qqq(V1, [a], b, _, ppp(V1))),writeln(succeeded). 13 | 14 | rrr([a,b]). 15 | 16 | -------------------------------------------------------------------------------- /tests/xsb/attv_tests/attvar_assert_regalloc_old: -------------------------------------------------------------------------------- 1 | succeeded 2 | -------------------------------------------------------------------------------- /tests/xsb/attv_tests/copyterm_attv_old: -------------------------------------------------------------------------------- 1 | Passed copyterm_attv test (copy_term/2)! 2 | test_cyclic_term_3(f(A,A)) 3 | == test_cyclic_term is OK 4 | test_list(f(A,[A])) 5 | == test_sharing_3 is OK 6 | == test_sharing is OK 7 | test_struct(f(A,g(A))) 8 | -------------------------------------------------------------------------------- /tests/xsb/attv_tests/fd1_old: -------------------------------------------------------------------------------- 1 | test1t: X = (3) 2 | test1t: X = (3) 3 | test1ta: X = (3) 4 | test2: Atts = ([2,3]) 5 | test2t: Atts = ([2,3]) 6 | test3t (clause 1): Atts = ([2,3,4]) 7 | test3t (clause 2): Atts = ([2,3]) 8 | test4t: Atts = ([2,3]) 9 | test5t: Atts = ([2,3]) 10 | -------------------------------------------------------------------------------- /tests/xsb/attv_tests/findall_attv_old: -------------------------------------------------------------------------------- 1 | -- after update -- 2 | V11 = v(1,A,A) 3 | V12 = v(1,2,3) 4 | V21 = v(2,A,A) 5 | V22 = v(4,5,6) 6 | -------------------------------------------------------------------------------- /tests/xsb/attv_tests/general_old: -------------------------------------------------------------------------------- 1 | 5 2 | 5 3 | test1 is OK 4 | test2 is OK 5 | test4: splatted bug without table 6 | test6 properly caught 7 | -------------------------------------------------------------------------------- /tests/xsb/attv_tests/interrupt1_old: -------------------------------------------------------------------------------- 1 | First time: X = 5 2 | Second time: X = 5 3 | valtarg(v(a),5) 4 | -------------------------------------------------------------------------------- /tests/xsb/attv_tests/interrupt2_old: -------------------------------------------------------------------------------- 1 | Value = 5 2 | Value = 6 3 | Value = 7 4 | Value = 7 5 | Var's attribute = v(a) 6 | Var's attribute = v(b) 7 | Var's attribute = v(c) 8 | Var's attribute = v(c) 9 | In verify_attributes/2: 10 | In verify_attributes/2: 11 | In verify_attributes/2: 12 | In verify_attributes/2: 13 | X = 7 14 | Y = 7 15 | -------------------------------------------------------------------------------- /tests/xsb/attv_tests/pre_image_old: -------------------------------------------------------------------------------- 1 | ------------------------- 2 | X-Y = 5 - 6 3 | X-Y = 5 - 7 4 | -------------------------------------------------------------------------------- /tests/xsb/attv_tests/ret_attv_old: -------------------------------------------------------------------------------- 1 | Passed ret_attv! 2 | v(1) 3 | v(2) 4 | -------------------------------------------------------------------------------- /tests/xsb/attv_tests/tabled_attv_old: -------------------------------------------------------------------------------- 1 | Before call p/3 2 | First time of test_data_backtrack is OK 3 | First time of test_table1: OK 4 | First time of test_table2 is OK 5 | PASSED tabled_attv 6 | Second time (1) is OK 7 | Second time (2) is OK 8 | Second time (3) is OK 9 | Second time of test_data_backtrack is OK 10 | Second time of test_table1: OK 11 | Second time of test_table2 is OK 12 | in p/5: NewV2 = v2(22) 13 | in p/5: V2 = v2(2) 14 | -------------------------------------------------------------------------------- /tests/xsb/attv_tests/trie_assert_attv2_old: -------------------------------------------------------------------------------- 1 | == test1 is OK 2 | == test2 is OK 3 | -------------------------------------------------------------------------------- /tests/xsb/attv_tests/trie_assert_attv_old: -------------------------------------------------------------------------------- 1 | Passed trie_assert_attv! 2 | v(1) 3 | v(11) 4 | -------------------------------------------------------------------------------- /tests/xsb/attv_tests/trie_intern_attv_old: -------------------------------------------------------------------------------- 1 | Passed trie_intern_attv test1! 2 | Passed trie_intern_attv test2! 3 | -------------------------------------------------------------------------------- /tests/xsb/basic_tests/empty.P: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /tests/xsb/basic_tests/empty2.P: -------------------------------------------------------------------------------- 1 | 2 | :- compiler_options([xpp_on]). 3 | -------------------------------------------------------------------------------- /tests/xsb/basic_tests/hirc.P: -------------------------------------------------------------------------------- 1 | 2 | :- table(boss/2). 3 | 4 | :- hilog manage. 5 | :- hilog p. 6 | :- table(apply/3). 7 | 8 | tc(R)(X,Y) :- R(X,Y). 9 | tc(R)(X,Y) :- tc(R)(X,Z),R(Z,Y). 10 | 11 | boss(X,Y) :- manage(X,Y). 12 | boss(X,Y) :- boss(X,Z),manage(Z,Y). 13 | 14 | manage(bill,mary). 15 | manage(mary, sue). 16 | manage(sue, john). 17 | 18 | p(a,b). 19 | p(b,c). 20 | -------------------------------------------------------------------------------- /tests/xsb/basic_tests/hirc_old: -------------------------------------------------------------------------------- 1 | bill john 2 | bill mary 3 | bill sue 4 | mary john 5 | mary sue 6 | sue john 7 | -------------------------------------------------------------------------------- /tests/xsb/basic_tests/index_old: -------------------------------------------------------------------------------- 1 | Compiling finished 2 | Test results 3 | 1 4 | 2 5 | -------------------------------------------------------------------------------- /tests/xsb/basic_tests/index_t2.P: -------------------------------------------------------------------------------- 1 | :- table m/2. 2 | :- index m/2-2. 3 | 4 | m(S, a) :- t(S,_) ; t(S,T), m(T,a). 5 | m(_, b) :- fail. 6 | m(_,_) :- fail. 7 | 8 | t(1,2). t(2,1). 9 | 10 | s(1). s(2). s(3). 11 | 12 | top_level :- s(A), m(A,a), writeln(A), fail; true. 13 | 14 | -------------------------------------------------------------------------------- /tests/xsb/basic_tests/index_test.P: -------------------------------------------------------------------------------- 1 | :- table m/2. 2 | :- index m/2-2. 3 | 4 | m(S, a) :- t(S,_) ; t(S,T), m(T,a). 5 | m(_, b) :- fail. 6 | m(_,_) :- fail. 7 | 8 | t(1,2). t(2,1). 9 | 10 | s(1). s(2). s(3). 11 | 12 | test :- s(A), m(A,a), writeln(A), fail; true. 13 | 14 | -------------------------------------------------------------------------------- /tests/xsb/basic_tests/interp_old: -------------------------------------------------------------------------------- 1 | 2 | 3 | [3,2,1] 4 | [6,7,9] 5 | p(A,B,B) 6 | p(A,B,B) 7 | p(A,f(B,A),[f(B,[1,A])]) 8 | p(A,f(B,A),[f(B,[1,A])]) 9 | p(A,f(B,[g(1),A]),[f(B,[1,A,g(1)])]) 10 | p(A,f(B,[g(1),A]),[f(B,[1,A,g(1)])]) 11 | p(f(g(f(A,B))),f(g(h(A,B))),f(g(h(A,B)))) 12 | p(f(g(f(A,B))),f(g(h(A,B))),f(g(h(A,B)))) 13 | p(f(g(h(A,B))),g(f(h(B,C))),h(f(g(C,A)))) 14 | p(f(g(h(A,B))),g(f(h(B,C))),h(f(g(C,A)))) 15 | -------------------------------------------------------------------------------- /tests/xsb/basic_tests/tcyl11.P: -------------------------------------------------------------------------------- 1 | 2 | :- include('tcyl-24-24-2'). 3 | 4 | :- table(a/2). 5 | 6 | tw(X) :- a(X,Y), writeln(a(X,Y)), fail. 7 | tw(_). 8 | 9 | ts(X) :- statistics, a(X,_Y), fail. 10 | ts(_) :- statistics. 11 | 12 | a(X,Y) :- cyl(X,Y). 13 | a(X,Y) :- cyl(X,Z), a(Z,Y). 14 | -------------------------------------------------------------------------------- /tests/xsb/basic_tests/tcyl12.P: -------------------------------------------------------------------------------- 1 | 2 | :- include('tcyl-24-24-2'). 3 | 4 | :- table a/2. 5 | 6 | tw(X) :- a(X,Y), writeln(a(X,Y)), fail. 7 | tw(_). 8 | 9 | ts(X) :- statistics, a(X,_Y), fail. 10 | ts(_) :- statistics. 11 | 12 | a(X,Y) :- cyl(X,Y). 13 | a(X,Y) :- a(X,Z), cyl(Z,Y). 14 | -------------------------------------------------------------------------------- /tests/xsb/basic_tests/testsg.P: -------------------------------------------------------------------------------- 1 | :- [acyl]. 2 | :- include('tcyl-24-24-2'). 3 | 4 | :- table sg/2. 5 | 6 | test :- statistics, sg(1,_F), fail. 7 | test :- statistics. 8 | 9 | tw :- sg(1,F), write(sg(1,F)), nl, fail. 10 | tw. 11 | 12 | sg(X,Y) :- cyl(X,X1), sg(X1,Y1), acyl(Y1,Y). 13 | sg(X,X). 14 | 15 | -------------------------------------------------------------------------------- /tests/xsb/basic_tests/testsg_old: -------------------------------------------------------------------------------- 1 | sg(1,1) 2 | sg(1,10) 3 | sg(1,11) 4 | sg(1,12) 5 | sg(1,13) 6 | sg(1,14) 7 | sg(1,15) 8 | sg(1,16) 9 | sg(1,17) 10 | sg(1,18) 11 | sg(1,19) 12 | sg(1,2) 13 | sg(1,20) 14 | sg(1,21) 15 | sg(1,22) 16 | sg(1,23) 17 | sg(1,24) 18 | sg(1,3) 19 | sg(1,4) 20 | sg(1,5) 21 | sg(1,6) 22 | sg(1,7) 23 | sg(1,8) 24 | sg(1,9) 25 | -------------------------------------------------------------------------------- /tests/xsb/basic_tests/thstr13.P: -------------------------------------------------------------------------------- 1 | :- table a/2, b/2, c/2. 2 | 3 | tw :- tw1; tw2; tw3; true. 4 | 5 | tw1 :- a(1,Y),write(a(Y)),nl,fail. 6 | 7 | tw2 :- b(1,Y),write(b(Y)),nl,fail. 8 | 9 | tw3 :- c(1,Y),write(c(Y)),nl,fail. 10 | 11 | a(X,Y) :- p(X,Y). 12 | a(X,Y) :- a(X,Z),a(Z,Y). 13 | 14 | c(X,Y) :- p(X,Y). 15 | c(X,Y) :- c(X,Z),p(Z,Y). 16 | 17 | b(X,Y) :- p(X,Y). 18 | b(X,Y) :- b(X,Z),p(Z,Y). 19 | 20 | p(1,2). 21 | p(1,7). 22 | p(7,8). 23 | p(8,7). 24 | p(8,9). 25 | p(8,10). 26 | p(2,3). 27 | p(3,4). 28 | p(4,5). 29 | p(4,1). 30 | p(5,1). 31 | p(1,1). 32 | -------------------------------------------------------------------------------- /tests/xsb/basic_tests/thstr13_old: -------------------------------------------------------------------------------- 1 | a(1) 2 | a(10) 3 | a(2) 4 | a(3) 5 | a(4) 6 | a(5) 7 | a(7) 8 | a(8) 9 | a(9) 10 | b(1) 11 | b(10) 12 | b(2) 13 | b(3) 14 | b(4) 15 | b(5) 16 | b(7) 17 | b(8) 18 | b(9) 19 | c(1) 20 | c(10) 21 | c(2) 22 | c(3) 23 | c(4) 24 | c(5) 25 | c(7) 26 | c(8) 27 | c(9) 28 | -------------------------------------------------------------------------------- /tests/xsb/basic_tests/thstr23.P: -------------------------------------------------------------------------------- 1 | :- table a/2. 2 | :- table b/2. 3 | 4 | tw1 :- generate(b(1,_)), generate(a(1,_)). 5 | 6 | generate(Call) :- call(Call), write(Call), nl, fail. 7 | generate(_). 8 | 9 | a(X,Y) :- b(X,Y). 10 | a(X,Y) :- q(X,Y). 11 | a(X,Y) :- a(X,Z), a(Z,Y). 12 | 13 | b(X,Y) :- p(X,Y). 14 | b(X,Y) :- b(X,Z), p(Z,Y). 15 | 16 | p(1,2). 17 | p(2,3). 18 | p(3,4). 19 | p(4,5). 20 | p(4,1). 21 | p(5,1). 22 | 23 | q(1,7). 24 | q(7,8). 25 | q(8,7). 26 | q(8,9). 27 | q(8,10). 28 | q(1,1). 29 | 30 | -------------------------------------------------------------------------------- /tests/xsb/basic_tests/thstr23_old: -------------------------------------------------------------------------------- 1 | a(1,1) 2 | a(1,10) 3 | a(1,2) 4 | a(1,3) 5 | a(1,4) 6 | a(1,5) 7 | a(1,7) 8 | a(1,8) 9 | a(1,9) 10 | b(1,1) 11 | b(1,2) 12 | b(1,3) 13 | b(1,4) 14 | b(1,5) 15 | -------------------------------------------------------------------------------- /tests/xsb/basic_tests/thstr43.P: -------------------------------------------------------------------------------- 1 | :- table a/2. 2 | 3 | tw :- ((a(a,D) ; a(b,D) ; a(c,D)),write(D),nl ; a(Q,W),write(a(Q,W)),nl), fail. 4 | tw. 5 | 6 | a(a,X) :- p(1,X). 7 | a(a,X) :- p(2,X). 8 | a(a,X) :- p(3,X). 9 | 10 | a(b,X) :- p(2,X). 11 | a(b,X) :- p(3,X). 12 | a(c,X) :- p(3,X). 13 | 14 | p(1,10). 15 | p(1,11). 16 | p(2,12). 17 | p(2,13). 18 | p(3,14). 19 | p(3,15). 20 | -------------------------------------------------------------------------------- /tests/xsb/basic_tests/thstr43_old: -------------------------------------------------------------------------------- 1 | 10 2 | 11 3 | 12 4 | 12 5 | 13 6 | 13 7 | 14 8 | 14 9 | 14 10 | 15 11 | 15 12 | 15 13 | a(a,10) 14 | a(a,11) 15 | a(a,12) 16 | a(a,13) 17 | a(a,14) 18 | a(a,15) 19 | a(b,12) 20 | a(b,13) 21 | a(b,14) 22 | a(b,15) 23 | a(c,14) 24 | a(c,15) 25 | -------------------------------------------------------------------------------- /tests/xsb/basic_tests/tsing1.P: -------------------------------------------------------------------------------- 1 | :- table a/2. 2 | 3 | tw :- a(X,Y),write(X),write(' '),write(Y),write(' '),fail. 4 | tw. 5 | 6 | a(X,Y) :- p(X,Y) ; a(X,Z),p(Z,Y). 7 | 8 | p(1,2). 9 | p(2,3). 10 | p(3,4). 11 | p(4,5). 12 | p(5,1). 13 | -------------------------------------------------------------------------------- /tests/xsb/basic_tests/tsing1_old: -------------------------------------------------------------------------------- 1 | 1 1 2 | 1 2 3 | 1 3 4 | 1 4 5 | 1 5 6 | 2 1 7 | 2 2 8 | 2 3 9 | 2 4 10 | 2 5 11 | 3 1 12 | 3 2 13 | 3 3 14 | 3 4 15 | 3 5 16 | 4 1 17 | 4 2 18 | 4 3 19 | 4 4 20 | 4 5 21 | 5 1 22 | 5 2 23 | 5 3 24 | 5 4 25 | 5 5 26 | -------------------------------------------------------------------------------- /tests/xsb/basic_tests/tsstr13_old: -------------------------------------------------------------------------------- 1 | a4(A,B,[1 - 2]) 2 | a4(A,B,[1 - 3]) 3 | a4(A,B,[2 - 3]) 4 | a4(A,B,[C - D,1 - 2,1 - 3,2 - 3]) 5 | a5(1,2,[1 - 2]) 6 | a5(1,3,[1 - 3]) 7 | a5(2,3,[2 - 3]) 8 | a5(A,B,[C - D,1 - 2,1 - 3,2 - 3]) 9 | a6(1,2,[1 - 2]) 10 | a6(1,3,[1 - 3]) 11 | a6(2,3,[2 - 3]) 12 | -------------------------------------------------------------------------------- /tests/xsb/basic_tests/tsstr33_old: -------------------------------------------------------------------------------- 1 | terma(a,[a]) 2 | terma(b,[b]) 3 | terma(c,[c]) 4 | termb(a,[a]) 5 | termb(b,[b]) 6 | termb(c,[c]) 7 | termc(a,[a]) 8 | termc(b,[b]) 9 | termc(c,[c]) 10 | termd(a,[a]) 11 | termd(b,[b]) 12 | termd(c,[c]) 13 | terme(a,[a]) 14 | terme(b,[b]) 15 | terme(c,[c]) 16 | termf(a,[a]) 17 | termf(b,[b]) 18 | termf(c,[c]) 19 | -------------------------------------------------------------------------------- /tests/xsb/basic_tests/tstr231.P: -------------------------------------------------------------------------------- 1 | :- table a/2. 2 | 3 | tw :- a(X,Y), write(X), write(' '), write(Y), nl, fail. 4 | tw. 5 | 6 | ts :- statistics,a(X,Y),fail. 7 | ts :- statistics. 8 | 9 | a(X,Y):-p(X,Y). 10 | a(X,Y):-p(X,Z),a(Z,Y). 11 | 12 | -------------------------------------------------------------------------------- /tests/xsb/basic_tests/xpp_on_test.P: -------------------------------------------------------------------------------- 1 | 2 | test :- 3 | compile('empty.P',[xpp_on]), writeln(ok1), 4 | compile('empty.P',[xpp_on]), writeln(ok2), 5 | compile('empty2.P',[xpp_on]), writeln(ok3), 6 | compile('empty2.P',[xpp_on]), writeln(ok4). 7 | -------------------------------------------------------------------------------- /tests/xsb/basic_tests/xpp_on_test_old: -------------------------------------------------------------------------------- 1 | ok1 2 | ok2 3 | ok3 4 | ok4 5 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/abol_susp1_old: -------------------------------------------------------------------------------- 1 | a: One b 2 | a: Two b's 3 | t: gets a conditional answer from its first clause 4 | t: gets a conditional answer from its second clause 5 | t: gets a conditional answer from its third clause 6 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/abol_susp2_old: -------------------------------------------------------------------------------- 1 | a: after 1st b 2 | a: after 2nd b 3 | b: gets a conditional answer 4 | t: a's answer returned 5 | t: gets a conditional answer from its first clause 6 | t: gets a conditional answer from its second clause 7 | t: gets a conditional answer from its third clause 8 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/asl_dupl_old: -------------------------------------------------------------------------------- 1 | q is true (OK) 2 | r is false (OK) 3 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/avoid_flounder_old: -------------------------------------------------------------------------------- 1 | Universal answer derived for p(X) 2 | Universal answer derived for q(X) 3 | p(X) has answer p(A) 4 | p(X) has answer p(a) 5 | p(a) is true (OK) 6 | p(b) is true (OK) 7 | q(X) has answer q(A) 8 | q(X) has answer q(a) 9 | q(a) is true (OK) 10 | q(b) is true (OK) 11 | r(X) has answer r(a) 12 | r(a) is true (OK) 13 | r(b) is undefined (OK) 14 | t(X) has answer t(a) 15 | t(a) is true (OK) 16 | t(b) is undefined (OK) 17 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/cond_uncond_old: -------------------------------------------------------------------------------- 1 | 1: Call t(a,b) is true (OK) 2 | 2: Call t(b,b) is true (OK) 3 | 3. Call t(X,Y) succeeds: t(a,b) 4 | 3. Call t(X,Y) succeeds: t(a,c) 5 | 3. Call t(X,Y) succeeds: t(b,b) 6 | 3. Call t(X,Y) succeeds: t(b,c) 7 | 4. Call p(X,Y) succeeds: p(a,b) 8 | 4. Call p(X,Y) succeeds: p(a,c) 9 | 5. Call q(X,Y) succeeds: q(b,b) 10 | 5. Call q(X,Y) succeeds: q(b,c) 11 | 6. Call t(X,Y) succeeds: t(a,b) 12 | 6. Call t(X,Y) succeeds: t(a,c) 13 | 6. Call t(X,Y) succeeds: t(b,b) 14 | 6. Call t(X,Y) succeeds: t(b,c) 15 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/delay_var_old: -------------------------------------------------------------------------------- 1 | app1([],[1,2,3],[1,2,3]) :- [app([],[1,2,3],[1,2,3])]. 2 | app1([1,2,3],[],[1,2,3]) :- [app([1,2,3],[],[1,2,3])]. 3 | app1([1,2],[3],[1,2,3]) :- [app([1,2],[3],[1,2,3])]. 4 | app1([1],[2,3],[1,2,3]) :- [app([1],[2,3],[1,2,3])]. 5 | p2(10,A) :- [r2(10,A)]. 6 | p2(5,A) :- [q2(5,A), r2(5,A)]. 7 | p(A,fff(B,C)) :- [r(D), r(fff(B,C),t(D))]. 8 | p(f(88,ggg(A,555,B,8)),C) :- [r(h(D,E,F)), q(ggg(A,555,B,8),f(h(D,E,F),g(fff(G))))]. 9 | r2(A,B) :- [q2(A,B)]. 10 | reverse([A,B,C],[C,B,A]) :- [reverse([B,C],[C,B]), app([C,B],[A],[C,B,A])]. 11 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/dl_dupl_old: -------------------------------------------------------------------------------- 1 | p is false (OK) 2 | q is true (OK) 3 | r is true (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/dret_test_old: -------------------------------------------------------------------------------- 1 | after_first_deletion(undefined1(a,b),[tnot undefined(b)]) 2 | after_second_deletion(undefined1(a,b),[]) 3 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/dynstrat1_old: -------------------------------------------------------------------------------- 1 | p. p is false (OK) 2 | p. q is true (OK) 3 | p. r is false (OK) 4 | q. p is false (OK) 5 | q. q is true (OK) 6 | q. r is false (OK) 7 | r. p is false (OK) 8 | r. q is true (OK) 9 | r. r is false (OK) 10 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/dynstrat2_old: -------------------------------------------------------------------------------- 1 | p. p is false (OK) 2 | p. q is false (OK) 3 | p. r is false (OK) 4 | p. s is true (OK) 5 | s. p is false (OK) 6 | s. q is false (OK) 7 | s. r is false (OK) 8 | s. s is true (OK) 9 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/dynstrat3_old: -------------------------------------------------------------------------------- 1 | a is false (OK) 2 | b(1) is true (OK) 3 | b(2) is true (OK) 4 | c is true (OK) 5 | d is false (OK) 6 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/dynstrat4_old: -------------------------------------------------------------------------------- 1 | a is false (OK) 2 | b(1) is true (OK) 3 | c is true (OK) 4 | d is false (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/dynstrat5_old: -------------------------------------------------------------------------------- 1 | p is false (OK) 2 | q is true (OK) 3 | r is false (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/dynstrat6_old: -------------------------------------------------------------------------------- 1 | p is false (OK) 2 | q is true (OK) 3 | r is false (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/dynstrat7_old: -------------------------------------------------------------------------------- 1 | p. p is false (OK) 2 | p. q is true (OK) 3 | q. p is false (OK) 4 | q. q is true (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/fa.P: -------------------------------------------------------------------------------- 1 | :- import length/2 from basics. 2 | :- import get_residual/2 from tables. 3 | 4 | test :- p(1,_),fail. % complete p(1,X) table. 5 | test :- findall(X, (get_residual(p(1,_),DL),und_delay(DL,X)), L), 6 | length(L,N), writeln(N). 7 | 8 | und_delay([X,und], X). 9 | und_delay([und,X], X). 10 | 11 | a(X,Y) :- X >= 0, X < 10001, Y is (X+1) mod 10001. 12 | 13 | b(X,Y) :- a(X,Y),und. 14 | 15 | :- table p/2. 16 | p(X,Y) :- b(X,Y). 17 | p(X,Y) :- p(X,Z),b(Z,Y). 18 | 19 | :- table und/0. 20 | und :- tnot(und). 21 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/fa_old: -------------------------------------------------------------------------------- 1 | 10001 2 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/fr19_old: -------------------------------------------------------------------------------- 1 | p is undefined (OK) 2 | q is undefined (OK) 3 | r is undefined (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/fr1_old: -------------------------------------------------------------------------------- 1 | p is false (OK) 2 | q is true (OK) 3 | r is true (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/fr20_old: -------------------------------------------------------------------------------- 1 | p is undefined (OK) 2 | q is undefined (OK) 3 | r is undefined (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/fr21_old: -------------------------------------------------------------------------------- 1 | p is undefined (OK) 2 | q is undefined (OK) 3 | r is undefined (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/fr22_old: -------------------------------------------------------------------------------- 1 | p is undefined (OK) 2 | q is undefined (OK) 3 | r is undefined (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/fr23_old: -------------------------------------------------------------------------------- 1 | p is undefined (OK) 2 | q is undefined (OK) 3 | r is undefined (OK) 4 | t is false (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/fr24_old: -------------------------------------------------------------------------------- 1 | p is undefined (OK) 2 | q is undefined (OK) 3 | r is undefined (OK) 4 | t is false (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/fr25_old: -------------------------------------------------------------------------------- 1 | p is undefined (OK) 2 | q is undefined (OK) 3 | r is undefined (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/fr26_old: -------------------------------------------------------------------------------- 1 | p is false (OK) 2 | q is false (OK) 3 | r is false (OK) 4 | s is false (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/fr27_old: -------------------------------------------------------------------------------- 1 | p is undefined (OK) 2 | q is undefined (OK) 3 | r is true (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/fr28_old: -------------------------------------------------------------------------------- 1 | p is false (OK) 2 | q is false (OK) 3 | r is true (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/fr29_old: -------------------------------------------------------------------------------- 1 | p is true (OK) 2 | q is false (OK) 3 | r is undefined (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/fr2_old: -------------------------------------------------------------------------------- 1 | p is false (OK) 2 | q is true (OK) 3 | r is false (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/fr30_old: -------------------------------------------------------------------------------- 1 | p is true (OK) 2 | q is false (OK) 3 | r is false (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/fr3_old: -------------------------------------------------------------------------------- 1 | p is false (OK) 2 | q is false (OK) 3 | r is true (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/fr4_old: -------------------------------------------------------------------------------- 1 | p is undefined (OK) 2 | q is undefined (OK) 3 | r is false (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/fr5_old: -------------------------------------------------------------------------------- 1 | p is undefined (OK) 2 | q is undefined (OK) 3 | r is undefined (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/fr6_old: -------------------------------------------------------------------------------- 1 | p is undefined (OK) 2 | q is undefined (OK) 3 | r is undefined (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/fr7_old: -------------------------------------------------------------------------------- 1 | p is undefined (OK) 2 | q is false (OK) 3 | r is undefined (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/fr8_old: -------------------------------------------------------------------------------- 1 | p is undefined (OK) 2 | q is undefined (OK) 3 | r is undefined (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/fr9_old: -------------------------------------------------------------------------------- 1 | p is undefined (OK) 2 | q is undefined (OK) 3 | r is undefined (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/gfp_old: -------------------------------------------------------------------------------- 1 | Call_gfp(a(3,3)) 2 | Call_gfp(a(3,4)) 3 | Call_gfp(a(4,3)) 4 | Call_gfp(a(4,4)) 5 | Call_gfp(q(4,3)) 6 | Call_gfp(q(4,4)) 7 | Return_gfp(a(3,4)) 8 | Return_gfp(q(4,3)) 9 | Return_gfp(q(4,4)) 10 | gfp(a(3,4)). 11 | gfp(true). 12 | gfpg(a(3,4)). 13 | tnot_gfpg(a(3,3)). 14 | tnot_gfpg(a(4,3)). 15 | tnot_gfpg(a(4,4)). 16 | tnot_gfpg(q(4,3)). 17 | tnot_gfpg(q(4,4)). 18 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/interp0.P: -------------------------------------------------------------------------------- 1 | :- table interp_g/1. 2 | 3 | interp([]). 4 | interp([G|Gs]) :- interp_g(G),interp(Gs). 5 | interp_g(tnot(G)) :- tnot(interp_g(G)). 6 | interp_g(G) :- rule(G,B),interp(B). 7 | 8 | rule(p, [tnot(q),p]). 9 | rule(q, [tnot(q),p]). 10 | rule(q, [tnot(p)]). 11 | 12 | %------------------------------------------------------------------------------- 13 | 14 | test :- Goal = p, interp_g(Goal), fail. 15 | test :- writeln('Program interp0 finished execution...'). 16 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/interp0_old: -------------------------------------------------------------------------------- 1 | Program interp0 finished execution... 2 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/interp10_old: -------------------------------------------------------------------------------- 1 | Program interp10 finished execution... 2 | i(p) is false (OK) 3 | i(q) is false (OK) 4 | i(r) is true (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/interp11_old: -------------------------------------------------------------------------------- 1 | Program interp11 finished execution... 2 | i(p) is undefined (OK) 3 | i(q) is undefined (OK) 4 | i(r) is true (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/interp12_old: -------------------------------------------------------------------------------- 1 | Program interp12 finished execution... 2 | i(p) is true (OK) 3 | i(q) is false (OK) 4 | i(r) is false (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/interp13_old: -------------------------------------------------------------------------------- 1 | Program interp13 finished execution... 2 | i(p) is true (OK) 3 | i(q) is false (OK) 4 | i(r) is false (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/interp14_old: -------------------------------------------------------------------------------- 1 | Program interp14 finished execution... 2 | i(p) is true (OK) 3 | i(q) is false (OK) 4 | i(r) is false (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/interp15_old: -------------------------------------------------------------------------------- 1 | Program interp15 finished execution... 2 | i(p) is true (OK) 3 | i(q) is false (OK) 4 | i(r) is false (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/interp1_old: -------------------------------------------------------------------------------- 1 | Program interp1 finished execution... 2 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/interp2_old: -------------------------------------------------------------------------------- 1 | Program interp2 finished execution... 2 | i(p) is false (OK) 3 | i(q) is true (OK) 4 | i(r) is true (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/interp4_old: -------------------------------------------------------------------------------- 1 | Program interp4 finished execution... 2 | i(p) is false (OK) 3 | i(q) is false (OK) 4 | i(r) is false (OK) 5 | i(s) is false (OK) 6 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/interp5_old: -------------------------------------------------------------------------------- 1 | Program interp5 finished execution... 2 | i(p) is false (OK) 3 | i(q) is false (OK) 4 | i(r) is false (OK) 5 | i(s) is false (OK) 6 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/interp6_old: -------------------------------------------------------------------------------- 1 | Program interp6 finished execution... 2 | i(p) is false (OK) 3 | i(q) is false (OK) 4 | i(r) is false (OK) 5 | i(s) is false (OK) 6 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/interp7_old: -------------------------------------------------------------------------------- 1 | Program interp7 finished execution... 2 | i(p) is false (OK) 3 | i(q) is true (OK) 4 | i(r) is false (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/interp8_old: -------------------------------------------------------------------------------- 1 | Program interp8 finished execution... 2 | i(p) is false (OK) 3 | i(q) is true (OK) 4 | i(r) is false (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/interp9_old: -------------------------------------------------------------------------------- 1 | Program interp9 finished execution... 2 | i(p) is false (OK) 3 | i(q) is false (OK) 4 | i(r) is false (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/nonstrat1_old: -------------------------------------------------------------------------------- 1 | a is undefined (OK) 2 | b is undefined (OK) 3 | c is undefined (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/nonstrat2_old: -------------------------------------------------------------------------------- 1 | a is true (OK) 2 | a(0) is true (OK) 3 | a(1) is undefined (OK) 4 | b is false (OK) 5 | b(0) is false (OK) 6 | b(1) is undefined (OK) 7 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/p1_old: -------------------------------------------------------------------------------- 1 | p is undefined (OK) 2 | q is undefined (OK) 3 | r is undefined (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/p2_old: -------------------------------------------------------------------------------- 1 | p is undefined (OK) 2 | q is undefined (OK) 3 | r is undefined (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/p3_old: -------------------------------------------------------------------------------- 1 | p is undefined (OK) 2 | q is undefined (OK) 3 | r is undefined (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/p4_old: -------------------------------------------------------------------------------- 1 | p is undefined (OK) 2 | q is undefined (OK) 3 | r is undefined (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/p5_old: -------------------------------------------------------------------------------- 1 | p is false (OK) 2 | q is false (OK) 3 | r is true (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/pos_simpl1_old: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SWI-Prolog/swipl-devel/508550cf35cb9efb3408f6b18610c34f23fc98b4/tests/xsb/delay_tests/pos_simpl1_old -------------------------------------------------------------------------------- /tests/xsb/delay_tests/pot_pouri_old: -------------------------------------------------------------------------------- 1 | p is true 2 | p(a) 3 | p0(a) 4 | q is false 5 | s(lasVegas,phoenix) 6 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/przy1_old: -------------------------------------------------------------------------------- 1 | Negations are OK 2 | p is false (OK) 3 | q is false (OK) 4 | r is false (OK) 5 | s is false (OK) 6 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/przy1_simp_old: -------------------------------------------------------------------------------- 1 | p is false (OK) 2 | q is false (OK) 3 | r is false (OK) 4 | s is true (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/q6_old: -------------------------------------------------------------------------------- 1 | b(sts(2),sts(2),0) 2 | b(sts(2),sts(3),1) 3 | b(sts(2),sts(4),1) 4 | b(sts(2),sts(5),1) 5 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/re-run.sh: -------------------------------------------------------------------------------- 1 | old="$(ls *_new | wc -l)" 2 | rm -f *_new 3 | ./test.sh swipl -q 2>&1 | tee test.log 4 | echo "OLD: $old failed tests" 5 | echo "NEW: $(ls *_new | wc -l) failed tests" 6 | ls *_new 7 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/ross1.P: -------------------------------------------------------------------------------- 1 | test :- p(X), writeln(X), fail ; true. 2 | 3 | %----------------------------------------------------------------------- 4 | 5 | :- table p/1. 6 | 7 | p(X) :- t(X,Y,Z), tnot(p(Y)), tnot(p(Z)). 8 | p(b). 9 | 10 | t(a,b,a). 11 | t(a,a,b). 12 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/ross1_old: -------------------------------------------------------------------------------- 1 | b 2 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/seg1_old: -------------------------------------------------------------------------------- 1 | p. p is false (OK) 2 | p. q is true (OK) 3 | q. p is false (OK) 4 | q. q is true (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/seg2_old: -------------------------------------------------------------------------------- 1 | p is false (OK) 2 | q is true (OK) 3 | r is false (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/seg3_old: -------------------------------------------------------------------------------- 1 | p is false (OK) 2 | q is false (OK) 3 | r is true (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/seg4_old: -------------------------------------------------------------------------------- 1 | p is true (OK) 2 | q is false (OK) 3 | r is undefined (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/seg5_old: -------------------------------------------------------------------------------- 1 | p is true (OK) 2 | q is false (OK) 3 | r is undefined (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/sel_unsusp_old: -------------------------------------------------------------------------------- 1 | a is false (OK) 2 | b is true (OK) 3 | c is false (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/simpl_win_old: -------------------------------------------------------------------------------- 1 | Call succeeds: win(a) 2 | Call succeeds: win(b) 3 | Result: a is neither a winning nor a loosing position 4 | Result: b is a winning position 5 | Result: c is a loosing position 6 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/tabsimp_seq.P: -------------------------------------------------------------------------------- 1 | 2 | /* Added this test to ensure that we check for stack reallocation 3 | before placing a completion suspension choice point. */ 4 | 5 | :- table win/2. 6 | 7 | test :- 8 | test(5000). 9 | 10 | test(N):- 11 | win(1,N), 12 | writeln(won). 13 | 14 | win(A,N):- cycle(A,B,N),tnot(win(B,N)). 15 | 16 | cycle(A,B,N):- 17 | integer(A), 18 | A > 0, 19 | (A < N -> 20 | B is A + 1 21 | ; (A == N -> (B = 1 ; B = A) ) ). 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/tabsimp_seq_old: -------------------------------------------------------------------------------- 1 | won 2 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/two_ary.P: -------------------------------------------------------------------------------- 1 | %----------------------------------------------------------------------- 2 | % Tests printing of delay lists. 3 | %----------------------------------------------------------------------- 4 | 5 | test :- p(X,Y), writeln(p(X,Y)), fail. 6 | test. 7 | 8 | %----------------------------------------------------------------------- 9 | 10 | :- table p/2. 11 | 12 | p(a,f(b)) :- tnot(p(a,f(b))). 13 | p(a,f2(b,c)) :- tnot(p(a,f2(b,c))). 14 | p(a,f3(b,c,d)) :- tnot(p(a,f3(b,c,d))). 15 | p(a,f3(b,f(1,c),d)) :- tnot(p(a,f3(b,f(1,c),d))). 16 | p(a,f3(b,c,e)). 17 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/two_ary_old: -------------------------------------------------------------------------------- 1 | p(a,f(b)) 2 | p(a,f2(b,c)) 3 | p(a,f3(b,c,d)) 4 | p(a,f3(b,c,e)) 5 | p(a,f3(b,f(1,c),d)) 6 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/undef1_old: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SWI-Prolog/swipl-devel/508550cf35cb9efb3408f6b18610c34f23fc98b4/tests/xsb/delay_tests/undef1_old -------------------------------------------------------------------------------- /tests/xsb/delay_tests/undef2_old: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SWI-Prolog/swipl-devel/508550cf35cb9efb3408f6b18610c34f23fc98b4/tests/xsb/delay_tests/undef2_old -------------------------------------------------------------------------------- /tests/xsb/delay_tests/weidong2_old: -------------------------------------------------------------------------------- 1 | p is false (OK) 2 | r is false (OK) 3 | s is true (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/weidong3_old: -------------------------------------------------------------------------------- 1 | p is true (OK) 2 | r is false (OK) 3 | s is false (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/weidong4_old: -------------------------------------------------------------------------------- 1 | p is false (OK) 2 | r is false (OK) 3 | s is true (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/weidong5_old: -------------------------------------------------------------------------------- 1 | p is undefined (OK) 2 | r is undefined (OK) 3 | s is undefined (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/weidong6_old: -------------------------------------------------------------------------------- 1 | p is undefined (OK) 2 | r is undefined (OK) 3 | s is undefined (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/weidong7_old: -------------------------------------------------------------------------------- 1 | p is false (OK) 2 | q is false (OK) 3 | r is false (OK) 4 | s is true (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/weidong8_old: -------------------------------------------------------------------------------- 1 | p is undefined 2 | q is undefined 3 | r is false (OK) 4 | s is true (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/win_old: -------------------------------------------------------------------------------- 1 | Call succeeds: win(a) 2 | Call succeeds: win(b) 3 | Result: a is neither a winning nor a loosing position 4 | Result: b is a winning position 5 | Result: c is a loosing position 6 | -------------------------------------------------------------------------------- /tests/xsb/delay_tests/wmay_winbug_old: -------------------------------------------------------------------------------- 1 | lose(b) 2 | lose(e) 3 | lose(f) 4 | lose(l) 5 | win(a) 6 | win(c) 7 | win(d) 8 | -------------------------------------------------------------------------------- /tests/xsb/incremental_tests/inc_atc_gc.P: -------------------------------------------------------------------------------- 1 | :- table p/1 as incremental. 2 | 3 | p(1). 4 | p(2). 5 | p(3). 6 | 7 | test:- p(X),abolish_table_call(p(_)),writeln(p1(X)),fail. 8 | test:- writeln('--------------'),fail. 9 | test:- get_residual(p(X),_),writeln(p2(X)),fail. 10 | test. 11 | -------------------------------------------------------------------------------- /tests/xsb/incremental_tests/inc_atc_gc_old: -------------------------------------------------------------------------------- 1 | -------------- 2 | p1(1) 3 | p1(2) 4 | p1(3) 5 | -------------------------------------------------------------------------------- /tests/xsb/incremental_tests/inc_atc_gc_tricky_old: -------------------------------------------------------------------------------- 1 | --------------- 2 | --------------- 3 | --------------- 4 | --------------- 5 | --------------- 6 | --------------- 7 | --------------- 8 | --------------- 9 | 0 10 | 0 11 | 0 12 | 0 13 | 0 14 | 0 15 | 0 16 | 0 17 | 0 18 | 0 19 | a1(b) 20 | a1(c) 21 | a10(b,1) 22 | a10(c,1) 23 | a2(b) 24 | a2(c) 25 | a3(c) 26 | a3_2(c) 27 | a4(c) 28 | a4(c) 29 | a4_2(c) 30 | a8(b) 31 | a8(c) 32 | a9(b) 33 | a9(c) 34 | a9_3(b) 35 | a9_3(c) 36 | -------------------------------------------------------------------------------- /tests/xsb/incremental_tests/incr_test_romero_old: -------------------------------------------------------------------------------- 1 | ------------------------- 2 | actual retract: cell(3,2,b) 3 | actual retract: cell(3,3,b) 4 | actual retract: cell(3,3,b) 5 | ff retract: cell(3,2,b) 6 | ff retract: cell(3,3,b) 7 | ff retract: cell(3,3,b) 8 | first([mark(3,2)]). 9 | first([mark(3,3)]). 10 | tt assert: cell(3,2,o) 11 | tt assert: cell(3,2,x) 12 | tt assert: cell(3,3,o) 13 | tt assert: cell(3,3,x) 14 | -------------------------------------------------------------------------------- /tests/xsb/incremental_tests/incremental1.P: -------------------------------------------------------------------------------- 1 | :- [incremental1_1]. 2 | 3 | test:- test_seq. 4 | -------------------------------------------------------------------------------- /tests/xsb/incremental_tests/incremental_rule_alt_old: -------------------------------------------------------------------------------- 1 | incr(fifth_t(2)). 2 | incr(fifth_t(3)). 3 | incr(fifth_t(4)). 4 | incr(second_t(2)). 5 | incr(second_t(3)). 6 | incr(second_t(4)). 7 | -------------------------------------------------------------------------------- /tests/xsb/incremental_tests/incremental_rule_old: -------------------------------------------------------------------------------- 1 | incr(first_t(1)). 2 | incr(second_t(1)). 3 | incr(second_t(2)). 4 | incr(second_t(3)). 5 | incr(second_t(4)). 6 | incr(third_t(1)). 7 | -------------------------------------------------------------------------------- /tests/xsb/incremental_tests/test_incr_depends_old: -------------------------------------------------------------------------------- 1 | dep1(bar(A)) 2 | dep1(fff(A)) 3 | dep2(baz(A)) 4 | -------------------------------------------------------------------------------- /tests/xsb/incremental_tests/test_sound_updates_old: -------------------------------------------------------------------------------- 1 | test_1_affected([t_inc_1(A),t_inc_3(B),t_inc_4(C),t_inc_5(D)]) 2 | test_2_affected([t_inc_2(A)]) 3 | test_abol_affected([]) 4 | -------------------------------------------------------------------------------- /tests/xsb/neg_tests/ldynstrat0.P: -------------------------------------------------------------------------------- 1 | test :- a, fail. 2 | test :- b, fail. 3 | test :- 4 | ( a -> writeln('a is true') ; writeln('a is false') ), 5 | ( b -> writeln('b is true') ; writeln('b is false') ). 6 | 7 | %-------------------------------------------------------------- 8 | 9 | :- table a/0, b/0. 10 | 11 | a :- tnot(b). 12 | a. 13 | 14 | b :- tnot(a). 15 | 16 | -------------------------------------------------------------------------------- /tests/xsb/neg_tests/ldynstrat0_old: -------------------------------------------------------------------------------- 1 | a is true 2 | b is false 3 | -------------------------------------------------------------------------------- /tests/xsb/neg_tests/ldynstrat1.P: -------------------------------------------------------------------------------- 1 | test :- a, fail. 2 | test :- b, fail. 3 | test :- c, fail. 4 | test :- 5 | ( a -> writeln('a is true') ; writeln('a is false') ), 6 | ( b -> writeln('b is true') ; writeln('b is false') ), 7 | ( c -> writeln('c is true') ; writeln('c is false') ). 8 | 9 | %-------------------------------------------------------------- 10 | 11 | :- table a/0, b/0, c/0, d/0. 12 | 13 | a :- b, tnot(c). 14 | 15 | b :- a. 16 | b. 17 | 18 | c :- tnot(b). 19 | 20 | -------------------------------------------------------------------------------- /tests/xsb/neg_tests/ldynstrat1_old: -------------------------------------------------------------------------------- 1 | a is true 2 | b is true 3 | c is false 4 | -------------------------------------------------------------------------------- /tests/xsb/neg_tests/ldynstrat2_old: -------------------------------------------------------------------------------- 1 | a is false 2 | b is true 3 | c is true 4 | d is false 5 | -------------------------------------------------------------------------------- /tests/xsb/neg_tests/ldynstrat3_old: -------------------------------------------------------------------------------- 1 | a is false 2 | b(1) is true 3 | c is true 4 | d is false 5 | ob is true 6 | -------------------------------------------------------------------------------- /tests/xsb/neg_tests/ldynstrat4_old: -------------------------------------------------------------------------------- 1 | a is false 2 | b(1) is true 3 | b(2) is true 4 | c is true 5 | d is false 6 | ob is true 7 | -------------------------------------------------------------------------------- /tests/xsb/neg_tests/lmod1.P: -------------------------------------------------------------------------------- 1 | test :- a, fail. 2 | test :- 3 | ( a -> writeln('a is true') ; writeln('a is false') ), 4 | ( b -> writeln('b is true') ; writeln('b is false') ), 5 | ( c -> writeln('c is true') ; writeln('c is false') ), 6 | ( d -> writeln('d is true') ; writeln('d is false') ). 7 | 8 | %-------------------------------------------------------------- 9 | 10 | :- table a/0, b/0, c/0, d/0. 11 | 12 | a :- b, c. 13 | 14 | b :- d. 15 | b. 16 | 17 | c :- tnot(d). 18 | 19 | d :- b, fail. 20 | 21 | -------------------------------------------------------------------------------- /tests/xsb/neg_tests/lmod10_old: -------------------------------------------------------------------------------- 1 | a is false 2 | b is true 3 | c is false 4 | d is false 5 | e is true 6 | f is true 7 | g is true 8 | -------------------------------------------------------------------------------- /tests/xsb/neg_tests/lmod11_old: -------------------------------------------------------------------------------- 1 | 1. a(X) is false 2 | 1. b(X) is true 3 | 1. c(X) is false 4 | 1. d(X) is false 5 | 1. e(X) is true 6 | 1. f(X) is true 7 | 1. g(X) is true 8 | 2. a(1) is false 9 | 2. b(1) is true 10 | 2. c(1) is false 11 | 2. d(1) is false 12 | 2. e(1) is true 13 | 2. f(1) is true 14 | 2. g(1) is true 15 | -------------------------------------------------------------------------------- /tests/xsb/neg_tests/lmod1_old: -------------------------------------------------------------------------------- 1 | a is true 2 | b is true 3 | c is true 4 | d is false 5 | -------------------------------------------------------------------------------- /tests/xsb/neg_tests/lmod2.P: -------------------------------------------------------------------------------- 1 | test :- a, fail. 2 | test :- 3 | ( a -> writeln('a is true') ; writeln('a is false') ), 4 | ( b -> writeln('b is true') ; writeln('b is false') ), 5 | ( c -> writeln('c is true') ; writeln('c is false') ), 6 | ( d -> writeln('d is true') ; writeln('d is false') ). 7 | 8 | %-------------------------------------------------------------- 9 | 10 | :- table a/0, b/0, c/0, d/0. 11 | 12 | a :- b, tnot(c). 13 | 14 | b :- d. 15 | b. 16 | 17 | c :- tnot(d). 18 | 19 | d :- b, fail. 20 | 21 | -------------------------------------------------------------------------------- /tests/xsb/neg_tests/lmod2_old: -------------------------------------------------------------------------------- 1 | a is false 2 | b is true 3 | c is true 4 | d is false 5 | -------------------------------------------------------------------------------- /tests/xsb/neg_tests/lmod3_old: -------------------------------------------------------------------------------- 1 | a is false 2 | b is true 3 | c is true 4 | d is false 5 | e is false 6 | f is false 7 | g is true 8 | h is true 9 | i is true 10 | j is true 11 | -------------------------------------------------------------------------------- /tests/xsb/neg_tests/lmod4_old: -------------------------------------------------------------------------------- 1 | a is false 2 | b is true 3 | c is true 4 | d is true 5 | e is false 6 | -------------------------------------------------------------------------------- /tests/xsb/neg_tests/lmod5_old: -------------------------------------------------------------------------------- 1 | a is true 2 | b is true 3 | c is true 4 | d is false 5 | e is true 6 | f is false 7 | -------------------------------------------------------------------------------- /tests/xsb/neg_tests/lmod6_old: -------------------------------------------------------------------------------- 1 | a is true 2 | b is true 3 | c is false 4 | d is true 5 | e is false 6 | -------------------------------------------------------------------------------- /tests/xsb/neg_tests/lmod7_old: -------------------------------------------------------------------------------- 1 | a is true 2 | b is true 3 | c is false 4 | d is true 5 | e is false 6 | f is true 7 | -------------------------------------------------------------------------------- /tests/xsb/neg_tests/lmod8_old: -------------------------------------------------------------------------------- 1 | a is false 2 | b is true 3 | c is true 4 | d is false 5 | e is true 6 | f is false 7 | -------------------------------------------------------------------------------- /tests/xsb/neg_tests/lmod9_old: -------------------------------------------------------------------------------- 1 | a is false 2 | b is true 3 | c is true 4 | d is false 5 | e is true 6 | f is false 7 | g is false 8 | -------------------------------------------------------------------------------- /tests/xsb/neg_tests/mod1_old: -------------------------------------------------------------------------------- 1 | a is false 2 | b is true 3 | c is true 4 | d is false 5 | -------------------------------------------------------------------------------- /tests/xsb/neg_tests/mod2_old: -------------------------------------------------------------------------------- 1 | a is false 2 | b is true 3 | c is true 4 | d is false 5 | -------------------------------------------------------------------------------- /tests/xsb/neg_tests/neg1.P: -------------------------------------------------------------------------------- 1 | :- table p/0, q/0, p/1, q/1. 2 | 3 | test :- 4 | ( p -> writeln('p is true') ; writeln('p is false') ), 5 | ( p(0) -> writeln('p(0) is true') ; writeln('p(0) is false') ), 6 | ( p(1) -> writeln('p(1) is true') ; writeln('p(1) is false') ). 7 | 8 | p :- tnot(q). 9 | q. 10 | 11 | p(X) :- tnot(q(X)). 12 | q(1). 13 | -------------------------------------------------------------------------------- /tests/xsb/neg_tests/neg1_old: -------------------------------------------------------------------------------- 1 | p is false 2 | p(0) is true 3 | p(1) is false 4 | -------------------------------------------------------------------------------- /tests/xsb/neg_tests/neg2_old: -------------------------------------------------------------------------------- 1 | a is true 2 | a(0) is true 3 | b is true 4 | b(0) is true 5 | c is true 6 | c(0) is true 7 | d is true 8 | d(0) is true 9 | e is false 10 | e(0) is false 11 | f is false 12 | f(0) is false 13 | g is true 14 | g(0) is true 15 | -------------------------------------------------------------------------------- /tests/xsb/neg_tests/neg3.P: -------------------------------------------------------------------------------- 1 | test :- a, fail. 2 | test :- 3 | ( a -> writeln('a is true') ; writeln('a is false') ), 4 | ( b -> writeln('b is true') ; writeln('b is false') ), 5 | ( f -> writeln('f is true') ; writeln('f is false') ). 6 | 7 | %------------------------------ 8 | :- table a/0, b/0, f/0. 9 | 10 | a :- f. 11 | a. 12 | 13 | b :- tnot(f). 14 | 15 | f :- a, fail. 16 | 17 | -------------------------------------------------------------------------------- /tests/xsb/neg_tests/neg3_old: -------------------------------------------------------------------------------- 1 | a is true 2 | b is true 3 | f is false 4 | -------------------------------------------------------------------------------- /tests/xsb/neg_tests/przy2_old: -------------------------------------------------------------------------------- 1 | p is false 2 | q is false 3 | r is false 4 | s is true 5 | -------------------------------------------------------------------------------- /tests/xsb/neg_tests/ullman1_old: -------------------------------------------------------------------------------- 1 | conjuctive(true) 2 | p is true 3 | q is false 4 | r is false 5 | s is true 6 | t is false 7 | u is false 8 | -------------------------------------------------------------------------------- /tests/xsb/neg_tests/ullman2.P: -------------------------------------------------------------------------------- 1 | % 2 | % The well-founded model is two valued {~t(1), t(2), ~t(3), ~t(4), ~t(5)} 3 | % 4 | 5 | :- table t/1. 6 | 7 | t(Z) :- t0(Z). 8 | t(Z) :- g(X,Y,Z), t(X), tnot(t(Y)). 9 | 10 | t0(2). 11 | 12 | g(5,1,3). 13 | g(1,2,4). 14 | g(3,4,5). 15 | 16 | %------------------------------------------------------ 17 | 18 | test :- t(X), writeln(t(X)), fail. 19 | test :- ( tnot(t(1)), t(2), tnot(t(3)), tnot(t(4)), tnot(t(5)) -> 20 | writeln('Success') 21 | ; writeln('Failure') 22 | ). 23 | -------------------------------------------------------------------------------- /tests/xsb/neg_tests/ullman2_old: -------------------------------------------------------------------------------- 1 | Success 2 | t(2) 3 | -------------------------------------------------------------------------------- /tests/xsb/neg_tests/ullman3.P: -------------------------------------------------------------------------------- 1 | % 2 | % The well-founded model is: {t(1), ~t(2), t(3)} 3 | % Ground atoms t(4), t(5), and t(6) have ``unknown'' truth value. 4 | % 5 | 6 | :- table t/1. 7 | 8 | t(Z) :- t0(Z). 9 | t(Z) :- g(X,_,Z), t(X). 10 | t(Z) :- g(_,Y,Z), tnot(t(Y)). 11 | 12 | t0(1). 13 | 14 | g(1,2,3). 15 | g(2,5,4). 16 | g(2,4,5). 17 | g(5,3,6). 18 | 19 | %------------------------------------------------------ 20 | 21 | test :- t(X), writeln(t(X)), fail. 22 | test :- ( t(1), tnot(t(2)), t(3) -> writeln('Success') ; writeln('Failure') ). 23 | 24 | -------------------------------------------------------------------------------- /tests/xsb/neg_tests/ullman3_old: -------------------------------------------------------------------------------- 1 | Success 2 | t(1) 3 | t(3) 4 | t(5) 5 | t(6) 6 | -------------------------------------------------------------------------------- /tests/xsb/nonmt_tests/cmu_sei_0050_old: -------------------------------------------------------------------------------- 1 | done 2 | -------------------------------------------------------------------------------- /tests/xsb/nonmt_tests/test_introspection_old: -------------------------------------------------------------------------------- 1 | incr_invalid_subgoals_1([]) 2 | incr_invalid_subgoals_2([t_1a(A),t_1b(B),t_2a(C),t_2b(D),t_2c(E),t_3(F)]) 3 | incr_invalid_subgoals_3([t_1b(A)]) 4 | incr_is_invalid(t_1b(A)) 5 | -------------------------------------------------------------------------------- /tests/xsb/nonmt_tests/test_invalidate_old: -------------------------------------------------------------------------------- 1 | one(t_1(1),t_1(2)) 2 | two(2,2,[t_2(2)]) 3 | two(2,1,[t_2(1)]) 4 | three(2,2,[t_2(2)]) 5 | four(1,2,[t_2(2)]) 6 | five(1,2) 7 | six(3,2) 8 | six(2,2) 9 | six(1,2) 10 | -------------------------------------------------------------------------------- /tests/xsb/nonmt_tests/test_iso_basic_old: -------------------------------------------------------------------------------- 1 | !!!succeeded(test1) 2 | !!!succeeded(test10) 3 | !!!succeeded(test11) 4 | !!!succeeded(test2) 5 | !!!succeeded(test3) 6 | !!!succeeded(test4) 7 | !!!succeeded(test5) 8 | !!!succeeded(test6) 9 | !!!succeeded(test7) 10 | !!!succeeded(test8) 11 | !!!succeeded(test9) 12 | -------------------------------------------------------------------------------- /tests/xsb/nonmt_tests/test_iso_hash_old: -------------------------------------------------------------------------------- 1 | !!!succeeded(test_hash1) 2 | !!!succeeded(test_hash2) 3 | !!!succeeded(test_hash3) 4 | -------------------------------------------------------------------------------- /tests/xsb/nonmt_tests/test_iso_mult_visit_old: -------------------------------------------------------------------------------- 1 | !!!succeeded(test101) 2 | !!!succeeded(test102) 3 | !!!succeeded(test103) 4 | !!!succeeded(test104) 5 | !!!succeeded(test105) 6 | !!!succeeded(test106) 7 | !!!succeeded(test107) 8 | !!!succeeded(test108) 9 | !!!succeeded(test109) 10 | !!!succeeded(test110) 11 | !!!succeeded(test111) 12 | -------------------------------------------------------------------------------- /tests/xsb/nonmt_tests/test_iso_undef_old: -------------------------------------------------------------------------------- 1 | !!!succeeded(test_u1) 2 | -------------------------------------------------------------------------------- /tests/xsb/nonmt_tests/test_recomputable_old: -------------------------------------------------------------------------------- 1 | refreshed(1) 2 | refreshed(2) 3 | showing(1,r(2,abc102)) 4 | showing(2,r(2,abc102)) 5 | showing(3,r(2,abc102)) 6 | showing(4,r(2,abc102)) 7 | -------------------------------------------------------------------------------- /tests/xsb/ptq/aprint_cn1: -------------------------------------------------------------------------------- 1 | cn(price,n,[],[],1,2) 2 | -------------------------------------------------------------------------------- /tests/xsb/ptq/aprint_iv1: -------------------------------------------------------------------------------- 1 | iv(rise,s,[],[],2,3) 2 | iv(rise,s,[sub(@(\(A,\(B,exists(C,/\(@(*(A),C),@(*(B),C))))),^(price)),D,n)],[],2,3) 3 | -------------------------------------------------------------------------------- /tests/xsb/ptq/aprint_s1: -------------------------------------------------------------------------------- 1 | s(@(@(\(A,\(B,exists(C,/\(@(*(A),C),@(*(B),C))))),^(price)),^(\(D,@(\(E,@(*(E),D)),^(rise))))),[],[],0,3) 2 | s(@(@(\(A,\(B,exists(C,/\(@(*(A),C),@(*(B),C))))),^(price)),^(rise)),[],[],0,3) 3 | s(@(\(A,@(*(A),B)),^(rise)),[],[sub(@(\(C,\(D,exists(E,/\(@(*(C),E),@(*(D),E))))),^(price)),B,n)],0,3) 4 | -------------------------------------------------------------------------------- /tests/xsb/ptq/aprint_te11: -------------------------------------------------------------------------------- 1 | te1(@(\(A,\(B,exists(C,/\(@(*(A),C),@(*(B),C))))),^(price)),sub,n,[],[],0,2) 2 | -------------------------------------------------------------------------------- /tests/xsb/ptq/awsswrint_cn1: -------------------------------------------------------------------------------- 1 | cn(\(A,/\(@(woman,A),@(\(B,@(*(B),A)),^(\(C,@('walk*',*(C))))))),f,[],[],1,5) 2 | cn(woman,f,[],[],1,2) 3 | -------------------------------------------------------------------------------- /tests/xsb/ptq/awsswrint_iv1: -------------------------------------------------------------------------------- 1 | iv(\(A,@('run*',*(A))),s,[],[],5,6) 2 | iv(\(A,@('run*',*(A))),s,[sub(@(\(B,\(C,exists(D,/\(@(*(B),D),@(*(C),D))))),^(\(E,/\(@(woman,E),@(\(F,@(*(F),E)),^(\(G,@('walk*',*(G))))))))),H,f)],[],5,6) 3 | iv(\(A,@('walk*',*(A))),s,[sub(woman,B,f)],[],4,5) 4 | -------------------------------------------------------------------------------- /tests/xsb/ptq/awsswrint_te11: -------------------------------------------------------------------------------- 1 | te1(@(\(A,\(B,exists(C,/\(@(*(A),C),@(*(B),C))))),^(\(D,/\(@(woman,D),@(\(E,@(*(E),D)),^(\(F,@('walk*',*(F))))))))),sub,f,[],[],0,5) 2 | te1(@(\(A,\(B,exists(C,/\(@(*(A),C),@(*(B),C))))),^(woman)),sub,f,[],[],0,2) 3 | -------------------------------------------------------------------------------- /tests/xsb/ptq/awsswrlredint_cn1: -------------------------------------------------------------------------------- 1 | cn(\(A,/\(@(woman,A),@('walk*',*(A)))),f,[],[],1,5) 2 | cn(woman,f,[],[],1,2) 3 | -------------------------------------------------------------------------------- /tests/xsb/ptq/awsswrlredint_iv1: -------------------------------------------------------------------------------- 1 | iv(\(A,@('run*',*(A))),s,[],[],5,6) 2 | iv(\(A,@('run*',*(A))),s,[sub(\(B,exists(C,/\(/\(@(woman,C),@('walk*',*(C))),@(*(B),C)))),D,f)],[],5,6) 3 | iv(\(A,@('walk*',*(A))),s,[sub(woman,B,f)],[],4,5) 4 | -------------------------------------------------------------------------------- /tests/xsb/ptq/awsswrlredint_s1: -------------------------------------------------------------------------------- 1 | s(@('run*',*(A)),[],[sub(\(B,exists(C,/\(/\(@(woman,C),@('walk*',*(C))),@(*(B),C)))),A,f)],0,6) 2 | s(@('walk*',*(A)),[sub(woman,A,f)],[],3,5) 3 | s(exists(A,/\(/\(@(woman,A),@('walk*',*(A))),@('run*',*(A)))),[],[],0,6) 4 | -------------------------------------------------------------------------------- /tests/xsb/ptq/awsswrlredint_te11: -------------------------------------------------------------------------------- 1 | te1(\(A,exists(B,/\(/\(@(woman,B),@('walk*',*(B))),@(*(A),B)))),sub,f,[],[],0,5) 2 | te1(\(A,exists(B,/\(@(woman,B),@(*(A),B)))),sub,f,[],[],0,2) 3 | -------------------------------------------------------------------------------- /tests/xsb/ptq/awtraint_cn1: -------------------------------------------------------------------------------- 1 | cn(woman,f,[],[],1,2) 2 | -------------------------------------------------------------------------------- /tests/xsb/ptq/awtraint_te11: -------------------------------------------------------------------------------- 1 | te1(@(\(A,\(B,exists(C,/\(@(*(A),C),@(*(B),C))))),^(woman)),sub,f,[],[],0,2) 2 | -------------------------------------------------------------------------------- /tests/xsb/ptq/awtralredint_cn1: -------------------------------------------------------------------------------- 1 | cn(woman,f,[],[],1,2) 2 | -------------------------------------------------------------------------------- /tests/xsb/ptq/awtralredint_te11: -------------------------------------------------------------------------------- 1 | te1(\(A,exists(B,/\(@(woman,B),@(*(A),B)))),sub,f,[],[],0,2) 2 | -------------------------------------------------------------------------------- /tests/xsb/ptq/emlawaslhlredint_cn1: -------------------------------------------------------------------------------- 1 | cn(man,m,[],[],1,2) 2 | cn(woman,f,[],[],4,5) 3 | cn(woman,f,[sub(\(A,all(B,->(@(man,B),@(*(A),B)))),C,m)],[],4,5) 4 | -------------------------------------------------------------------------------- /tests/xsb/ptq/emlawaslhlredint_iv1: -------------------------------------------------------------------------------- 1 | iv(\(A,@(@('love*',*(B)),*(A))),s,[],[sub(\(C,exists(D,/\(@(woman,D),@(*(C),D)))),B,f)],2,5) 2 | iv(\(A,@(@('love*',*(B)),*(A))),s,[sub(\(C,all(D,->(@(man,D),@(*(C),D)))),B,m),sub(\(E,exists(F,/\(@(woman,F),@(*(E),F)))),G,f)],[],7,9) 3 | iv(\(A,@(@('love*',*(B)),*(A))),s,[sub(\(C,all(D,->(@(man,D),@(*(C),D)))),E,m)],[sub(\(F,exists(G,/\(@(woman,G),@(*(F),G)))),B,f)],2,5) 4 | iv(\(A,exists(B,/\(@(woman,B),@(@('love*',*(B)),*(A))))),s,[],[],2,5) 5 | iv(\(A,exists(B,/\(@(woman,B),@(@('love*',*(B)),*(A))))),s,[sub(\(C,all(D,->(@(man,D),@(*(C),D)))),E,m)],[],2,5) 6 | -------------------------------------------------------------------------------- /tests/xsb/ptq/emlawaslhlredint_te11: -------------------------------------------------------------------------------- 1 | te1(\(A,all(B,->(@(man,B),@(*(A),B)))),sub,m,[],[],0,2) 2 | te1(\(A,exists(B,/\(@(woman,B),@(*(A),B)))),obj,f,[],[],3,5) 3 | te1(\(A,exists(B,/\(@(woman,B),@(*(A),B)))),obj,f,[sub(\(C,all(D,->(@(man,D),@(*(C),D)))),E,m)],[],3,5) 4 | -------------------------------------------------------------------------------- /tests/xsb/ptq/emlawint_cn1: -------------------------------------------------------------------------------- 1 | cn(man,m,[],[],1,2) 2 | cn(woman,f,[],[],4,5) 3 | cn(woman,f,[sub(@(\(A,\(B,all(C,->(@(*(A),C),@(*(B),C))))),^(man)),D,m)],[],4,5) 4 | -------------------------------------------------------------------------------- /tests/xsb/ptq/emlawint_te11: -------------------------------------------------------------------------------- 1 | te1(@(\(A,\(B,all(C,->(@(*(A),C),@(*(B),C))))),^(man)),sub,m,[],[],0,2) 2 | te1(@(\(A,\(B,exists(C,/\(@(*(A),C),@(*(B),C))))),^(woman)),obj,f,[],[],3,5) 3 | te1(@(\(A,\(B,exists(C,/\(@(*(A),C),@(*(B),C))))),^(woman)),obj,f,[sub(@(\(D,\(E,all(F,->(@(*(D),F),@(*(E),F))))),^(man)),G,m)],[],3,5) 4 | -------------------------------------------------------------------------------- /tests/xsb/ptq/emlawlredint_cn1: -------------------------------------------------------------------------------- 1 | cn(man,m,[],[],1,2) 2 | cn(woman,f,[],[],4,5) 3 | cn(woman,f,[sub(\(A,all(B,->(@(man,B),@(*(A),B)))),C,m)],[],4,5) 4 | -------------------------------------------------------------------------------- /tests/xsb/ptq/emlawlredint_iv1: -------------------------------------------------------------------------------- 1 | iv(\(A,@(@('love*',*(B)),*(A))),s,[],[sub(\(C,exists(D,/\(@(woman,D),@(*(C),D)))),B,f)],2,5) 2 | iv(\(A,@(@('love*',*(B)),*(A))),s,[sub(\(C,all(D,->(@(man,D),@(*(C),D)))),E,m)],[sub(\(F,exists(G,/\(@(woman,G),@(*(F),G)))),B,f)],2,5) 3 | iv(\(A,exists(B,/\(@(woman,B),@(@('love*',*(B)),*(A))))),s,[],[],2,5) 4 | iv(\(A,exists(B,/\(@(woman,B),@(@('love*',*(B)),*(A))))),s,[sub(\(C,all(D,->(@(man,D),@(*(C),D)))),E,m)],[],2,5) 5 | -------------------------------------------------------------------------------- /tests/xsb/ptq/emlawlredint_s1: -------------------------------------------------------------------------------- 1 | s(@(@('love*',*(A)),*(B)),[],[sub(\(C,all(D,->(@(man,D),@(*(C),D)))),B,m),sub(\(E,exists(F,/\(@(woman,F),@(*(E),F)))),A,f)],0,5) 2 | s(all(A,->(@(man,A),@(@('love*',*(B)),*(A)))),[],[sub(\(C,exists(D,/\(@(woman,D),@(*(C),D)))),B,f)],0,5) 3 | s(all(A,->(@(man,A),exists(B,/\(@(woman,B),@(@('love*',*(B)),*(A)))))),[],[],0,5) 4 | s(exists(A,/\(@(woman,A),@(@('love*',*(A)),*(B)))),[],[sub(\(C,all(D,->(@(man,D),@(*(C),D)))),B,m)],0,5) 5 | s(exists(A,/\(@(woman,A),all(B,->(@(man,B),@(@('love*',*(A)),*(B)))))),[],[],0,5) 6 | -------------------------------------------------------------------------------- /tests/xsb/ptq/emlawlredint_te11: -------------------------------------------------------------------------------- 1 | te1(\(A,all(B,->(@(man,B),@(*(A),B)))),sub,m,[],[],0,2) 2 | te1(\(A,exists(B,/\(@(woman,B),@(*(A),B)))),obj,f,[],[],3,5) 3 | te1(\(A,exists(B,/\(@(woman,B),@(*(A),B)))),obj,f,[sub(\(C,all(D,->(@(man,D),@(*(C),D)))),E,m)],[],3,5) 4 | -------------------------------------------------------------------------------- /tests/xsb/ptq/emlawsslhlredint_cn1: -------------------------------------------------------------------------------- 1 | cn(\(A,/\(@(woman,A),@(@('love*',*(B)),*(A)))),f,[sub(\(C,all(D,->(@(man,D),@(*(C),D)))),B,m)],[],4,9) 2 | cn(man,m,[],[],1,2) 3 | cn(woman,f,[],[],4,5) 4 | cn(woman,f,[sub(\(A,all(B,->(@(man,B),@(*(A),B)))),C,m)],[],4,5) 5 | -------------------------------------------------------------------------------- /tests/xsb/ptq/emlawsslhlredint_te11: -------------------------------------------------------------------------------- 1 | te1(\(A,all(B,->(@(man,B),@(*(A),B)))),sub,m,[],[],0,2) 2 | te1(\(A,exists(B,/\(/\(@(woman,B),@(@('love*',*(C)),*(B))),@(*(A),B)))),obj,f,[sub(\(D,all(E,->(@(man,E),@(*(D),E)))),C,m)],[],3,9) 3 | te1(\(A,exists(B,/\(@(woman,B),@(*(A),B)))),obj,f,[],[],3,5) 4 | te1(\(A,exists(B,/\(@(woman,B),@(*(A),B)))),obj,f,[sub(\(C,all(D,->(@(man,D),@(*(C),D)))),E,m)],[],3,5) 5 | -------------------------------------------------------------------------------- /tests/xsb/ptq/genscaff.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | XEMU=$3 4 | 5 | suffixes="s te1 cn iv s1 te11 cn1 iv1" 6 | for suff in $suffixes ; do 7 | file=$2_$suff 8 | test -f "$file" && /bin/rm -f $file 9 | done 10 | 11 | $XEMU << EOF 12 | [ptq,ptq_out]. 13 | $1. 14 | output_table($2_s,s(_,_,_,_,_)). 15 | output_table($2_te1,te1(_,_,_,_,_,_,_)). 16 | output_table($2_cn,cn(_,_,_,_,_,_)). 17 | output_table($2_iv,iv(_,_,_,_,_,_)). 18 | halt. 19 | EOF 20 | 21 | suffixes="iv s te1 cn" 22 | for suff in $suffixes ; do 23 | file=$2_$suff 24 | sort -u $file > ${file}1 25 | done 26 | -------------------------------------------------------------------------------- /tests/xsb/ptq/jbmwwaiplredint_cn1: -------------------------------------------------------------------------------- 1 | cn(park,n,[],[],7,8) 2 | cn(park,n,[sub(\(A,@(*(A),^(j))),B,m),sub(\(C,@(*(C),^(m))),D,f)],[],7,8) 3 | cn(park,n,[sub(\(A,@(*(A),^(j))),B,m)],[],7,8) 4 | cn(park,n,[sub(\(A,@(*(A),^(m))),B,f)],[],7,8) 5 | -------------------------------------------------------------------------------- /tests/xsb/ptq/jbmwwaiplredint_te11: -------------------------------------------------------------------------------- 1 | te1(\(A,@(*(A),^(j))),sub,m,[],[],0,1) 2 | te1(\(A,@(*(A),^(m))),sub,f,[],[],2,3) 3 | te1(\(A,@(*(A),^(m))),sub,f,[sub(\(B,@(*(B),^(j))),C,m)],[],2,3) 4 | te1(\(A,exists(B,/\(@(park,B),@(*(A),B)))),obj,n,[],[],6,8) 5 | te1(\(A,exists(B,/\(@(park,B),@(*(A),B)))),obj,n,[sub(\(C,@(*(C),^(j))),D,m),sub(\(E,@(*(E),^(m))),F,f)],[],6,8) 6 | te1(\(A,exists(B,/\(@(park,B),@(*(A),B)))),obj,n,[sub(\(C,@(*(C),^(j))),D,m)],[],6,8) 7 | te1(\(A,exists(B,/\(@(park,B),@(*(A),B)))),obj,n,[sub(\(C,@(*(C),^(m))),D,f)],[],6,8) 8 | -------------------------------------------------------------------------------- /tests/xsb/ptq/jdhint_cn1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SWI-Prolog/swipl-devel/508550cf35cb9efb3408f6b18610c34f23fc98b4/tests/xsb/ptq/jdhint_cn1 -------------------------------------------------------------------------------- /tests/xsb/ptq/jdhint_iv1: -------------------------------------------------------------------------------- 1 | iv(@(\(A,\(B,@(*(A),^(\(C,@(@('date*',*(C)),*(B))))))),^(\(D,@(*(D),E)))),s,[sub(\(F,@(*(F),^(j))),E,m)],[],1,3) 2 | -------------------------------------------------------------------------------- /tests/xsb/ptq/jdhint_s1: -------------------------------------------------------------------------------- 1 | s(@(\(A,@(*(A),B)),^(@(\(C,\(D,@(*(C),^(\(E,@(@('date*',*(E)),*(D))))))),^(\(F,@(*(F),B)))))),[],[sub(\(G,@(*(G),^(j))),B,m)],0,3) 2 | s(@(\(A,@(*(A),^(j))),^(\(B,@(\(C,@(*(C),B)),^(@(\(D,\(E,@(*(D),^(\(F,@(@('date*',*(F)),*(E))))))),^(\(G,@(*(G),B))))))))),[],[],0,3) 3 | -------------------------------------------------------------------------------- /tests/xsb/ptq/jdhint_te11: -------------------------------------------------------------------------------- 1 | te1(\(A,@(*(A),^(j))),sub,m,[],[],0,1) 2 | -------------------------------------------------------------------------------- /tests/xsb/ptq/jdhlredint_cn1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SWI-Prolog/swipl-devel/508550cf35cb9efb3408f6b18610c34f23fc98b4/tests/xsb/ptq/jdhlredint_cn1 -------------------------------------------------------------------------------- /tests/xsb/ptq/jdhlredint_iv1: -------------------------------------------------------------------------------- 1 | iv(\(A,@(@('date*',*(B)),*(A))),s,[sub(\(C,@(*(C),^(j))),B,m)],[],1,3) 2 | -------------------------------------------------------------------------------- /tests/xsb/ptq/jdhlredint_s1: -------------------------------------------------------------------------------- 1 | s(@(@('date*',*(A)),*(A)),[],[sub(\(B,@(*(B),^(j))),A,m)],0,3) 2 | s(@(@('date*',j),j),[],[],0,3) 3 | -------------------------------------------------------------------------------- /tests/xsb/ptq/jdhlredint_te11: -------------------------------------------------------------------------------- 1 | te1(\(A,@(*(A),^(j))),sub,m,[],[],0,1) 2 | -------------------------------------------------------------------------------- /tests/xsb/ptq/jdmint_cn1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SWI-Prolog/swipl-devel/508550cf35cb9efb3408f6b18610c34f23fc98b4/tests/xsb/ptq/jdmint_cn1 -------------------------------------------------------------------------------- /tests/xsb/ptq/jdmint_te11: -------------------------------------------------------------------------------- 1 | te1(\(A,@(*(A),^(j))),sub,m,[],[],0,1) 2 | te1(\(A,@(*(A),^(m))),obj,f,[],[],2,3) 3 | te1(\(A,@(*(A),^(m))),obj,f,[sub(\(B,@(*(B),^(j))),C,m)],[],2,3) 4 | -------------------------------------------------------------------------------- /tests/xsb/ptq/jdmlredint_cn1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SWI-Prolog/swipl-devel/508550cf35cb9efb3408f6b18610c34f23fc98b4/tests/xsb/ptq/jdmlredint_cn1 -------------------------------------------------------------------------------- /tests/xsb/ptq/jdmlredint_iv1: -------------------------------------------------------------------------------- 1 | iv(\(A,@(@('date*',*(B)),*(A))),s,[],[sub(\(C,@(*(C),^(m))),B,f)],1,3) 2 | iv(\(A,@(@('date*',*(B)),*(A))),s,[sub(\(C,@(*(C),^(j))),D,m)],[sub(\(E,@(*(E),^(m))),B,f)],1,3) 3 | iv(\(A,@(@('date*',m),*(A))),s,[],[],1,3) 4 | iv(\(A,@(@('date*',m),*(A))),s,[sub(\(B,@(*(B),^(j))),C,m)],[],1,3) 5 | -------------------------------------------------------------------------------- /tests/xsb/ptq/jdmlredint_s1: -------------------------------------------------------------------------------- 1 | s(@(@('date*',*(A)),*(B)),[],[sub(\(C,@(*(C),^(j))),B,m),sub(\(D,@(*(D),^(m))),A,f)],0,3) 2 | s(@(@('date*',*(A)),j),[],[sub(\(B,@(*(B),^(m))),A,f)],0,3) 3 | s(@(@('date*',m),*(A)),[],[sub(\(B,@(*(B),^(j))),A,m)],0,3) 4 | s(@(@('date*',m),j),[],[],0,3) 5 | -------------------------------------------------------------------------------- /tests/xsb/ptq/jdmlredint_te11: -------------------------------------------------------------------------------- 1 | te1(\(A,@(*(A),^(j))),sub,m,[],[],0,1) 2 | te1(\(A,@(*(A),^(m))),obj,f,[],[],2,3) 3 | te1(\(A,@(*(A),^(m))),obj,f,[sub(\(B,@(*(B),^(j))),C,m)],[],2,3) 4 | -------------------------------------------------------------------------------- /tests/xsb/ptq/jfaulredint_cn1: -------------------------------------------------------------------------------- 1 | cn(unicorn,n,[],[],3,4) 2 | cn(unicorn,n,[sub(\(A,@(*(A),^(j))),B,m)],[],3,4) 3 | -------------------------------------------------------------------------------- /tests/xsb/ptq/jfaulredint_iv1: -------------------------------------------------------------------------------- 1 | iv(\(A,@(@('find*',*(B)),*(A))),s,[],[sub(\(C,exists(D,/\(@(unicorn,D),@(*(C),D)))),B,n)],1,4) 2 | iv(\(A,@(@('find*',*(B)),*(A))),s,[sub(\(C,@(*(C),^(j))),D,m)],[sub(\(E,exists(F,/\(@(unicorn,F),@(*(E),F)))),B,n)],1,4) 3 | iv(\(A,exists(B,/\(@(unicorn,B),@(@('find*',*(B)),*(A))))),s,[],[],1,4) 4 | iv(\(A,exists(B,/\(@(unicorn,B),@(@('find*',*(B)),*(A))))),s,[sub(\(C,@(*(C),^(j))),D,m)],[],1,4) 5 | -------------------------------------------------------------------------------- /tests/xsb/ptq/jfaulredint_s1: -------------------------------------------------------------------------------- 1 | s(@(@('find*',*(A)),*(B)),[],[sub(\(C,@(*(C),^(j))),B,m),sub(\(D,exists(E,/\(@(unicorn,E),@(*(D),E)))),A,n)],0,4) 2 | s(@(@('find*',*(A)),j),[],[sub(\(B,exists(C,/\(@(unicorn,C),@(*(B),C)))),A,n)],0,4) 3 | s(exists(A,/\(@(unicorn,A),@(@('find*',*(A)),*(B)))),[],[sub(\(C,@(*(C),^(j))),B,m)],0,4) 4 | s(exists(A,/\(@(unicorn,A),@(@('find*',*(A)),j))),[],[],0,4) 5 | -------------------------------------------------------------------------------- /tests/xsb/ptq/jfaulredint_te11: -------------------------------------------------------------------------------- 1 | te1(\(A,@(*(A),^(j))),sub,m,[],[],0,1) 2 | te1(\(A,exists(B,/\(@(unicorn,B),@(*(A),B)))),obj,n,[],[],2,4) 3 | te1(\(A,exists(B,/\(@(unicorn,B),@(*(A),B)))),obj,n,[sub(\(C,@(*(C),^(j))),D,m)],[],2,4) 4 | -------------------------------------------------------------------------------- /tests/xsb/ptq/jsauamsiint_cn1: -------------------------------------------------------------------------------- 1 | cn(unicorn,n,[],[],3,4) 2 | cn(unicorn,n,[sub(\(A,@(*(A),^(j))),B,m)],[],3,4) 3 | -------------------------------------------------------------------------------- /tests/xsb/ptq/jsauamsilredint_cn1: -------------------------------------------------------------------------------- 1 | cn(unicorn,n,[],[],3,4) 2 | cn(unicorn,n,[sub(\(A,@(*(A),^(j))),B,m)],[],3,4) 3 | -------------------------------------------------------------------------------- /tests/xsb/ptq/jsauint_cn1: -------------------------------------------------------------------------------- 1 | cn(unicorn,n,[],[],3,4) 2 | cn(unicorn,n,[sub(\(A,@(*(A),^(j))),B,m)],[],3,4) 3 | -------------------------------------------------------------------------------- /tests/xsb/ptq/jsauint_te11: -------------------------------------------------------------------------------- 1 | te1(@(\(A,\(B,exists(C,/\(@(*(A),C),@(*(B),C))))),^(unicorn)),obj,n,[],[],2,4) 2 | te1(@(\(A,\(B,exists(C,/\(@(*(A),C),@(*(B),C))))),^(unicorn)),obj,n,[sub(\(D,@(*(D),^(j))),E,m)],[],2,4) 3 | te1(\(A,@(*(A),^(j))),sub,m,[],[],0,1) 4 | -------------------------------------------------------------------------------- /tests/xsb/ptq/jsaulredint_cn1: -------------------------------------------------------------------------------- 1 | cn(unicorn,n,[],[],3,4) 2 | cn(unicorn,n,[sub(\(A,@(*(A),^(j))),B,m)],[],3,4) 3 | -------------------------------------------------------------------------------- /tests/xsb/ptq/jsaulredint_te11: -------------------------------------------------------------------------------- 1 | te1(\(A,@(*(A),^(j))),sub,m,[],[],0,1) 2 | te1(\(A,exists(B,/\(@(unicorn,B),@(*(A),B)))),obj,n,[],[],2,4) 3 | te1(\(A,exists(B,/\(@(unicorn,B),@(*(A),B)))),obj,n,[sub(\(C,@(*(C),^(j))),D,m)],[],2,4) 4 | -------------------------------------------------------------------------------- /tests/xsb/ptq/jtauint_cn1: -------------------------------------------------------------------------------- 1 | cn(unicorn,n,[],[],4,5) 2 | cn(unicorn,n,[sub(\(A,@(*(A),^(j))),B,m)],[],4,5) 3 | -------------------------------------------------------------------------------- /tests/xsb/ptq/jtauint_te11: -------------------------------------------------------------------------------- 1 | te1(@(\(A,\(B,exists(C,/\(@(*(A),C),@(*(B),C))))),^(unicorn)),obj,n,[],[],3,5) 2 | te1(@(\(A,\(B,exists(C,/\(@(*(A),C),@(*(B),C))))),^(unicorn)),obj,n,[sub(\(D,@(*(D),^(j))),E,m)],[],3,5) 3 | te1(\(A,@(*(A),^(j))),sub,m,[],[],0,1) 4 | -------------------------------------------------------------------------------- /tests/xsb/ptq/jtaulredint_cn1: -------------------------------------------------------------------------------- 1 | cn(unicorn,n,[],[],4,5) 2 | cn(unicorn,n,[sub(\(A,@(*(A),^(j))),B,m)],[],4,5) 3 | -------------------------------------------------------------------------------- /tests/xsb/ptq/jtaulredint_te11: -------------------------------------------------------------------------------- 1 | te1(\(A,@(*(A),^(j))),sub,m,[],[],0,1) 2 | te1(\(A,exists(B,/\(@(unicorn,B),@(*(A),B)))),obj,n,[],[],3,5) 3 | te1(\(A,exists(B,/\(@(unicorn,B),@(*(A),B)))),obj,n,[sub(\(C,@(*(C),^(j))),D,m)],[],3,5) 4 | -------------------------------------------------------------------------------- /tests/xsb/ptq/jtfauaweilredint_cn1: -------------------------------------------------------------------------------- 1 | cn(unicorn,n,[],[],4,5) 2 | cn(unicorn,n,[sub(\(A,@(*(A),^(j))),B,m)],[],4,5) 3 | -------------------------------------------------------------------------------- /tests/xsb/ptq/jtfauaweilredint_te11: -------------------------------------------------------------------------------- 1 | te1(\(A,@(*(A),^(j))),sub,m,[],[],0,1) 2 | te1(\(A,exists(B,/\(@(unicorn,B),@(*(A),B)))),obj,n,[],[],3,5) 3 | te1(\(A,exists(B,/\(@(unicorn,B),@(*(A),B)))),obj,n,[sub(\(C,@(*(C),^(j))),D,m)],[],3,5) 4 | -------------------------------------------------------------------------------- /tests/xsb/ptq/jwfauaeilredint_cn1: -------------------------------------------------------------------------------- 1 | cn(unicorn,n,[],[],4,5) 2 | cn(unicorn,n,[sub(\(A,@(*(A),^(j))),B,m)],[],4,5) 3 | -------------------------------------------------------------------------------- /tests/xsb/ptq/jwfauaeilredint_te11: -------------------------------------------------------------------------------- 1 | te1(\(A,@(*(A),^(j))),sub,m,[],[],0,1) 2 | te1(\(A,exists(B,/\(@(unicorn,B),@(*(A),B)))),obj,n,[],[],3,5) 3 | te1(\(A,exists(B,/\(@(unicorn,B),@(*(A),B)))),obj,n,[sub(\(C,@(*(C),^(j))),D,m)],[],3,5) 4 | -------------------------------------------------------------------------------- /tests/xsb/ptq/jwiaplredint_cn1: -------------------------------------------------------------------------------- 1 | cn(park,n,[],[],4,5) 2 | cn(park,n,[sub(\(A,@(*(A),^(j))),B,m)],[],4,5) 3 | -------------------------------------------------------------------------------- /tests/xsb/ptq/jwiaplredint_s1: -------------------------------------------------------------------------------- 1 | s(@('walk*',*(A)),[],[sub(\(B,@(*(B),^(j))),A,m)],0,2) 2 | s(@('walk*',j),[],[],0,2) 3 | s(@(@(@('in*',*(A)),^(\(B,@('walk*',*(B))))),C),[],[sub(\(D,@(*(D),^(j))),C,m),sub(\(E,exists(F,/\(@(park,F),@(*(E),F)))),A,n)],0,5) 4 | s(@(@(@('in*',*(A)),^(\(B,@('walk*',*(B))))),^(j)),[],[sub(\(C,exists(D,/\(@(park,D),@(*(C),D)))),A,n)],0,5) 5 | s(exists(A,/\(@(park,A),@(@(@('in*',*(A)),^(\(B,@('walk*',*(B))))),C))),[],[sub(\(D,@(*(D),^(j))),C,m)],0,5) 6 | s(exists(A,/\(@(park,A),@(@(@('in*',*(A)),^(\(B,@('walk*',*(B))))),^(j)))),[],[],0,5) 7 | -------------------------------------------------------------------------------- /tests/xsb/ptq/jwiaplredint_te11: -------------------------------------------------------------------------------- 1 | te1(\(A,@(*(A),^(j))),sub,m,[],[],0,1) 2 | te1(\(A,exists(B,/\(@(park,B),@(*(A),B)))),obj,n,[],[],3,5) 3 | te1(\(A,exists(B,/\(@(park,B),@(*(A),B)))),obj,n,[sub(\(C,@(*(C),^(j))),D,m)],[],3,5) 4 | -------------------------------------------------------------------------------- /tests/xsb/ptq/mbjfauaheiint_cn1: -------------------------------------------------------------------------------- 1 | cn(unicorn,n,[],[],5,6) 2 | cn(unicorn,n,[sub(\(A,@(*(A),^(j))),B,m)],[],5,6) 3 | cn(unicorn,n,[sub(\(A,@(*(A),^(m))),B,f),sub(\(C,@(*(C),^(j))),D,m)],[],5,6) 4 | cn(unicorn,n,[sub(\(A,@(*(A),^(m))),B,f)],[],5,6) 5 | -------------------------------------------------------------------------------- /tests/xsb/ptq/mbjfauaheilredint_cn1: -------------------------------------------------------------------------------- 1 | cn(unicorn,n,[],[],5,6) 2 | cn(unicorn,n,[sub(\(A,@(*(A),^(j))),B,m)],[],5,6) 3 | cn(unicorn,n,[sub(\(A,@(*(A),^(m))),B,f),sub(\(C,@(*(C),^(j))),D,m)],[],5,6) 4 | cn(unicorn,n,[sub(\(A,@(*(A),^(m))),B,f)],[],5,6) 5 | -------------------------------------------------------------------------------- /tests/xsb/ptq/mbjfauaheilredint_te11: -------------------------------------------------------------------------------- 1 | te1(\(A,@(*(A),^(j))),sub,m,[],[],2,3) 2 | te1(\(A,@(*(A),^(j))),sub,m,[sub(\(B,@(*(B),^(m))),C,f)],[],2,3) 3 | te1(\(A,@(*(A),^(m))),sub,f,[],[],0,1) 4 | te1(\(A,exists(B,/\(@(unicorn,B),@(*(A),B)))),obj,n,[],[],4,6) 5 | te1(\(A,exists(B,/\(@(unicorn,B),@(*(A),B)))),obj,n,[sub(\(C,@(*(C),^(j))),D,m)],[],4,6) 6 | te1(\(A,exists(B,/\(@(unicorn,B),@(*(A),B)))),obj,n,[sub(\(C,@(*(C),^(m))),D,f),sub(\(E,@(*(E),^(j))),F,m)],[],4,6) 7 | te1(\(A,exists(B,/\(@(unicorn,B),@(*(A),B)))),obj,n,[sub(\(C,@(*(C),^(m))),D,f)],[],4,6) 8 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/Data/chain.P: -------------------------------------------------------------------------------- 1 | p(1,2). 2 | p(2,3). 3 | p(3,4). 4 | p(4,5). 5 | p(5,6). 6 | p(6,7). 7 | p(7,8). 8 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/Data/cycles.P: -------------------------------------------------------------------------------- 1 | p(1,2). 2 | p(2,3). 3 | p(3,1). 4 | 5 | p(f(1),f(2)). 6 | p(f(2),f(3)). 7 | p(f(3),f(1)). 8 | 9 | p([1],[2]). 10 | p([2],[3]). 11 | p([3],[1]). 12 | 13 | p(f([1]),f([2])). 14 | p(f([2]),f([3])). 15 | p(f([3]),f([1])). 16 | 17 | p([f(1)],[f(2)]). 18 | p([f(2)],[f(3)]). 19 | p([f(3)],[f(1)]). 20 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/Data/decker_facts.P: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SWI-Prolog/swipl-devel/508550cf35cb9efb3408f6b18610c34f23fc98b4/tests/xsb/sub_tests/Data/decker_facts.P -------------------------------------------------------------------------------- /tests/xsb/sub_tests/Data/tree.P: -------------------------------------------------------------------------------- 1 | p(1,2). 2 | p(1,3). 3 | p(2,4). 4 | p(2,5). 5 | p(3,6). 6 | p(3,7). 7 | p(4,8). 8 | p(4,9). 9 | p(5,10). 10 | p(5,11). 11 | p(6,12). 12 | p(6,13). 13 | p(7,14). 14 | p(7,15). 15 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/Programs/traversal.P: -------------------------------------------------------------------------------- 1 | :- table anc_l/2, anc_r/2, anc_d/2, same_gen/2, genome_l/2. 2 | 3 | anc_l(X,Y) :- p(X,Y). 4 | anc_l(X,Y) :- anc_l(X,Z), p(Z,Y). 5 | 6 | anc_r(X,Y) :- p(X,Y). 7 | anc_r(X,Y) :- p(X,Z), anc_r(Z,Y). 8 | 9 | anc_d(X,Y) :- p(X,Y). 10 | anc_d(X,Y) :- anc_d(X,Z), anc_d(Z,Y). 11 | 12 | same_gen(X,X). 13 | same_gen(X,Y) :- p(W,X), same_gen(W,Z), p(Z,Y). 14 | 15 | genome_l(X) :- anc_l(1,X), anc_l(2,X). 16 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/decker.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- decker. 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/drtc1.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- drtc('XY','Data/chain'). 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/drtc1_old: -------------------------------------------------------------------------------- 1 | anc_d(1,2) 2 | anc_d(1,3) 3 | anc_d(1,4) 4 | anc_d(1,5) 5 | anc_d(1,6) 6 | anc_d(1,7) 7 | anc_d(1,8) 8 | anc_d(2,3) 9 | anc_d(2,4) 10 | anc_d(2,5) 11 | anc_d(2,6) 12 | anc_d(2,7) 13 | anc_d(2,8) 14 | anc_d(3,4) 15 | anc_d(3,5) 16 | anc_d(3,6) 17 | anc_d(3,7) 18 | anc_d(3,8) 19 | anc_d(4,5) 20 | anc_d(4,6) 21 | anc_d(4,7) 22 | anc_d(4,8) 23 | anc_d(5,6) 24 | anc_d(5,7) 25 | anc_d(5,8) 26 | anc_d(6,7) 27 | anc_d(6,8) 28 | anc_d(7,8) 29 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/drtc2.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- drtc('1Y','Data/chain'). 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/drtc2_old: -------------------------------------------------------------------------------- 1 | anc_d(1,2) 2 | anc_d(1,3) 3 | anc_d(1,4) 4 | anc_d(1,5) 5 | anc_d(1,6) 6 | anc_d(1,7) 7 | anc_d(1,8) 8 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/drtc3.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- drtc('X8','Data/chain'). 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/drtc3_old: -------------------------------------------------------------------------------- 1 | anc_d(1,8) 2 | anc_d(2,8) 3 | anc_d(3,8) 4 | anc_d(4,8) 5 | anc_d(5,8) 6 | anc_d(6,8) 7 | anc_d(7,8) 8 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/drtc4.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- drtc('XY','Data/tree'). 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/drtc4_old: -------------------------------------------------------------------------------- 1 | anc_d(1,10) 2 | anc_d(1,11) 3 | anc_d(1,12) 4 | anc_d(1,13) 5 | anc_d(1,14) 6 | anc_d(1,15) 7 | anc_d(1,2) 8 | anc_d(1,3) 9 | anc_d(1,4) 10 | anc_d(1,5) 11 | anc_d(1,6) 12 | anc_d(1,7) 13 | anc_d(1,8) 14 | anc_d(1,9) 15 | anc_d(2,10) 16 | anc_d(2,11) 17 | anc_d(2,4) 18 | anc_d(2,5) 19 | anc_d(2,8) 20 | anc_d(2,9) 21 | anc_d(3,12) 22 | anc_d(3,13) 23 | anc_d(3,14) 24 | anc_d(3,15) 25 | anc_d(3,6) 26 | anc_d(3,7) 27 | anc_d(4,8) 28 | anc_d(4,9) 29 | anc_d(5,10) 30 | anc_d(5,11) 31 | anc_d(6,12) 32 | anc_d(6,13) 33 | anc_d(7,14) 34 | anc_d(7,15) 35 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/drtc5.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- drtc('1Y','Data/tree'). 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/drtc5_old: -------------------------------------------------------------------------------- 1 | anc_d(1,10) 2 | anc_d(1,11) 3 | anc_d(1,12) 4 | anc_d(1,13) 5 | anc_d(1,14) 6 | anc_d(1,15) 7 | anc_d(1,2) 8 | anc_d(1,3) 9 | anc_d(1,4) 10 | anc_d(1,5) 11 | anc_d(1,6) 12 | anc_d(1,7) 13 | anc_d(1,8) 14 | anc_d(1,9) 15 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/drtc6.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- drtc('X8','Data/tree'). 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/drtc6_old: -------------------------------------------------------------------------------- 1 | anc_d(1,8) 2 | anc_d(2,8) 3 | anc_d(4,8) 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/drtc7.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- drtc(multidown,'Data/cycles'). 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/drtc8.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- drtc(multiup,'Data/cycles'). 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/floratest.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- flora. 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/genome1.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- genome('Data/chain'). 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/genome1_old: -------------------------------------------------------------------------------- 1 | genome_l(3) 2 | genome_l(4) 3 | genome_l(5) 4 | genome_l(6) 5 | genome_l(7) 6 | genome_l(8) 7 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/genome2.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- genome('Data/tree'). 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/genome2_old: -------------------------------------------------------------------------------- 1 | genome_l(10) 2 | genome_l(11) 3 | genome_l(4) 4 | genome_l(5) 5 | genome_l(8) 6 | genome_l(9) 7 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/genome3.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- genome('Data/cycles'). 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/genome3_old: -------------------------------------------------------------------------------- 1 | genome_l(1) 2 | genome_l(2) 3 | genome_l(3) 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/lrtc1.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- lrtc('XY','Data/chain'). 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/lrtc1_old: -------------------------------------------------------------------------------- 1 | anc_l(1,2) 2 | anc_l(1,3) 3 | anc_l(1,4) 4 | anc_l(1,5) 5 | anc_l(1,6) 6 | anc_l(1,7) 7 | anc_l(1,8) 8 | anc_l(2,3) 9 | anc_l(2,4) 10 | anc_l(2,5) 11 | anc_l(2,6) 12 | anc_l(2,7) 13 | anc_l(2,8) 14 | anc_l(3,4) 15 | anc_l(3,5) 16 | anc_l(3,6) 17 | anc_l(3,7) 18 | anc_l(3,8) 19 | anc_l(4,5) 20 | anc_l(4,6) 21 | anc_l(4,7) 22 | anc_l(4,8) 23 | anc_l(5,6) 24 | anc_l(5,7) 25 | anc_l(5,8) 26 | anc_l(6,7) 27 | anc_l(6,8) 28 | anc_l(7,8) 29 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/lrtc2.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- lrtc('1Y','Data/chain'). 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/lrtc2_old: -------------------------------------------------------------------------------- 1 | anc_l(1,2) 2 | anc_l(1,3) 3 | anc_l(1,4) 4 | anc_l(1,5) 5 | anc_l(1,6) 6 | anc_l(1,7) 7 | anc_l(1,8) 8 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/lrtc3.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- lrtc('X8','Data/chain'). 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/lrtc3_old: -------------------------------------------------------------------------------- 1 | anc_l(1,8) 2 | anc_l(2,8) 3 | anc_l(3,8) 4 | anc_l(4,8) 5 | anc_l(5,8) 6 | anc_l(6,8) 7 | anc_l(7,8) 8 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/lrtc4.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- lrtc('XY','Data/tree'). 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/lrtc4_old: -------------------------------------------------------------------------------- 1 | anc_l(1,10) 2 | anc_l(1,11) 3 | anc_l(1,12) 4 | anc_l(1,13) 5 | anc_l(1,14) 6 | anc_l(1,15) 7 | anc_l(1,2) 8 | anc_l(1,3) 9 | anc_l(1,4) 10 | anc_l(1,5) 11 | anc_l(1,6) 12 | anc_l(1,7) 13 | anc_l(1,8) 14 | anc_l(1,9) 15 | anc_l(2,10) 16 | anc_l(2,11) 17 | anc_l(2,4) 18 | anc_l(2,5) 19 | anc_l(2,8) 20 | anc_l(2,9) 21 | anc_l(3,12) 22 | anc_l(3,13) 23 | anc_l(3,14) 24 | anc_l(3,15) 25 | anc_l(3,6) 26 | anc_l(3,7) 27 | anc_l(4,8) 28 | anc_l(4,9) 29 | anc_l(5,10) 30 | anc_l(5,11) 31 | anc_l(6,12) 32 | anc_l(6,13) 33 | anc_l(7,14) 34 | anc_l(7,15) 35 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/lrtc5.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- lrtc('1Y','Data/tree'). 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/lrtc5_old: -------------------------------------------------------------------------------- 1 | anc_l(1,10) 2 | anc_l(1,11) 3 | anc_l(1,12) 4 | anc_l(1,13) 5 | anc_l(1,14) 6 | anc_l(1,15) 7 | anc_l(1,2) 8 | anc_l(1,3) 9 | anc_l(1,4) 10 | anc_l(1,5) 11 | anc_l(1,6) 12 | anc_l(1,7) 13 | anc_l(1,8) 14 | anc_l(1,9) 15 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/lrtc6.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- lrtc('X8','Data/tree'). 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/lrtc6_old: -------------------------------------------------------------------------------- 1 | anc_l(1,8) 2 | anc_l(2,8) 3 | anc_l(4,8) 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/lrtc7.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- lrtc(multidown,'Data/cycles'). 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/lrtc8.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- lrtc(multiup,'Data/cycles'). 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/pilegaard_old: -------------------------------------------------------------------------------- 1 | [(*,p,open(r)),(*,p,overlinein(r,p)),(*,s_1_1,r),(*,s_1_1,overlinein(p,s_1_1)),(*,s_1_1,overlineout(p,s_1_1)),(*,s_1_2,r),(*,s_1_2,overlinein(p,s_1_2)),(*,s_1_2,overlineout(p,s_1_2)),(*,s_2_1,r),(*,s_2_1,overlinein(p,s_2_1)),(*,s_2_1,overlineout(p,s_2_1)),(*,s_2_2,overlinein(p,s_2_2)),(s_1_1,r,out(s_1_1)),(s_1_1,r,overlineopen(p,r)),(s_1_2,r,out(s_1_2)),(s_1_2,r,overlineopen(p,r)),(s_2_1,r,out(s_2_1)),(s_2_1,r,overlineopen(p,r)),(t,*,p),(t,*,s_1_1),(t,*,s_1_2),(t,*,s_2_1),(t,*,s_2_2)] 2 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/rrtc1.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- rrtc('XY','Data/chain'). 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/rrtc1_old: -------------------------------------------------------------------------------- 1 | anc_r(1,2) 2 | anc_r(1,3) 3 | anc_r(1,4) 4 | anc_r(1,5) 5 | anc_r(1,6) 6 | anc_r(1,7) 7 | anc_r(1,8) 8 | anc_r(2,3) 9 | anc_r(2,4) 10 | anc_r(2,5) 11 | anc_r(2,6) 12 | anc_r(2,7) 13 | anc_r(2,8) 14 | anc_r(3,4) 15 | anc_r(3,5) 16 | anc_r(3,6) 17 | anc_r(3,7) 18 | anc_r(3,8) 19 | anc_r(4,5) 20 | anc_r(4,6) 21 | anc_r(4,7) 22 | anc_r(4,8) 23 | anc_r(5,6) 24 | anc_r(5,7) 25 | anc_r(5,8) 26 | anc_r(6,7) 27 | anc_r(6,8) 28 | anc_r(7,8) 29 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/rrtc2.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- rrtc('1Y','Data/chain'). 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/rrtc2_old: -------------------------------------------------------------------------------- 1 | anc_r(1,2) 2 | anc_r(1,3) 3 | anc_r(1,4) 4 | anc_r(1,5) 5 | anc_r(1,6) 6 | anc_r(1,7) 7 | anc_r(1,8) 8 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/rrtc3.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- rrtc('X8','Data/chain'). 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/rrtc3_old: -------------------------------------------------------------------------------- 1 | anc_r(1,8) 2 | anc_r(2,8) 3 | anc_r(3,8) 4 | anc_r(4,8) 5 | anc_r(5,8) 6 | anc_r(6,8) 7 | anc_r(7,8) 8 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/rrtc4.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- rrtc('XY','Data/tree'). 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/rrtc4_old: -------------------------------------------------------------------------------- 1 | anc_r(1,10) 2 | anc_r(1,11) 3 | anc_r(1,12) 4 | anc_r(1,13) 5 | anc_r(1,14) 6 | anc_r(1,15) 7 | anc_r(1,2) 8 | anc_r(1,3) 9 | anc_r(1,4) 10 | anc_r(1,5) 11 | anc_r(1,6) 12 | anc_r(1,7) 13 | anc_r(1,8) 14 | anc_r(1,9) 15 | anc_r(2,10) 16 | anc_r(2,11) 17 | anc_r(2,4) 18 | anc_r(2,5) 19 | anc_r(2,8) 20 | anc_r(2,9) 21 | anc_r(3,12) 22 | anc_r(3,13) 23 | anc_r(3,14) 24 | anc_r(3,15) 25 | anc_r(3,6) 26 | anc_r(3,7) 27 | anc_r(4,8) 28 | anc_r(4,9) 29 | anc_r(5,10) 30 | anc_r(5,11) 31 | anc_r(6,12) 32 | anc_r(6,13) 33 | anc_r(7,14) 34 | anc_r(7,15) 35 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/rrtc5.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- rrtc('1Y','Data/tree'). 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/rrtc5_old: -------------------------------------------------------------------------------- 1 | anc_r(1,10) 2 | anc_r(1,11) 3 | anc_r(1,12) 4 | anc_r(1,13) 5 | anc_r(1,14) 6 | anc_r(1,15) 7 | anc_r(1,2) 8 | anc_r(1,3) 9 | anc_r(1,4) 10 | anc_r(1,5) 11 | anc_r(1,6) 12 | anc_r(1,7) 13 | anc_r(1,8) 14 | anc_r(1,9) 15 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/rrtc6.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- rrtc('X8','Data/tree'). 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/rrtc6_old: -------------------------------------------------------------------------------- 1 | anc_r(1,8) 2 | anc_r(2,8) 3 | anc_r(4,8) 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/rrtc7.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- rrtc(multidown,'Data/cycles'). 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/rrtc8.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- rrtc(multiup,'Data/cycles'). 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/sg1.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- sg('XY','Data/chain'). 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/sg1_old: -------------------------------------------------------------------------------- 1 | same_gen(2,2) 2 | same_gen(3,3) 3 | same_gen(4,4) 4 | same_gen(5,5) 5 | same_gen(6,6) 6 | same_gen(7,7) 7 | same_gen(8,8) 8 | same_gen(A,A) 9 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/sg2.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- sg('1Y','Data/chain'). 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/sg2_old: -------------------------------------------------------------------------------- 1 | same_gen(1,1) 2 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/sg3.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- sg('X8','Data/chain'). 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/sg3_old: -------------------------------------------------------------------------------- 1 | same_gen(8,8) 2 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/sg4.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- sg('XY','Data/tree'). 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/sg5.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- sg('1Y','Data/tree'). 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/sg5_old: -------------------------------------------------------------------------------- 1 | same_gen(1,1) 2 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/sg6.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- sg('X8','Data/tree'). 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/sg6_old: -------------------------------------------------------------------------------- 1 | same_gen(10,8) 2 | same_gen(11,8) 3 | same_gen(12,8) 4 | same_gen(13,8) 5 | same_gen(14,8) 6 | same_gen(15,8) 7 | same_gen(8,8) 8 | same_gen(9,8) 9 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/sg7.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- sg(multidown,'Data/cycles'). 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/sg8.P: -------------------------------------------------------------------------------- 1 | :- include('Driver'). 2 | 3 | go :- sg(multiup,'Data/cycles'). 4 | -------------------------------------------------------------------------------- /tests/xsb/sub_tests/test_answer_abstraction_old: -------------------------------------------------------------------------------- 1 | test1 : p1(1) <- [] 2 | test1 : p1(A) <- [undef] 3 | test2 : p2(1) <- [] 4 | test2 : p2(A) <- [] 5 | -------------------------------------------------------------------------------- /tests/xsb/table_tests/abol_test2_module.P: -------------------------------------------------------------------------------- 1 | 2 | :- export mpath/2. 3 | % :- import arc/2 from usermod. 4 | 5 | :- table mpath/2. 6 | 7 | mpath(X,Y) :- arc(X,Y). 8 | mpath(X,Y) :- mpath(X,Z), arc(Z,Y). 9 | -------------------------------------------------------------------------------- /tests/xsb/table_tests/abol_test2_old: -------------------------------------------------------------------------------- 1 | ------- 2 | ------- 3 | answer(m(a,1)) 4 | answer(m(a,2)) 5 | answer(m(a,3)) 6 | answer(m(a,4)) 7 | answer(u(a,1)) 8 | answer(u(a,2)) 9 | answer(u(a,3)) 10 | answer(u(a,4)) 11 | answer(u(b,1)) 12 | answer(u(b,2)) 13 | answer(u(b,3)) 14 | answer(u(b,4)) 15 | remaining(0) 16 | -------------------------------------------------------------------------------- /tests/xsb/table_tests/abol_test2a_old: -------------------------------------------------------------------------------- 1 | remaining(0) 2 | -------------------------------------------------------------------------------- /tests/xsb/table_tests/abol_test3_old: -------------------------------------------------------------------------------- 1 | (f(1),a) 2 | (f(1),b) 3 | (f(1),c) 4 | (f(2),a) 5 | (f(2),b) 6 | (f(2),c) 7 | (f(3),a) 8 | (f(3),b) 9 | (f(3),c) 10 | (g(1),a) 11 | (g(1),b) 12 | (g(1),c) 13 | (g(2),a) 14 | (g(2),b) 15 | (g(2),c) 16 | (g(3),a) 17 | (g(3),b) 18 | (g(3),c) 19 | remaining(0) 20 | -------------------------------------------------------------------------------- /tests/xsb/table_tests/abol_test3a_old: -------------------------------------------------------------------------------- 1 | (f(1),a) 2 | (f(1),b) 3 | (f(1),c) 4 | (f(2),a) 5 | (f(2),b) 6 | (f(2),c) 7 | (f(3),a) 8 | (f(3),b) 9 | (f(3),c) 10 | (g(1),a) 11 | (g(1),b) 12 | (g(1),c) 13 | (g(2),a) 14 | (g(2),b) 15 | (g(2),c) 16 | (g(3),a) 17 | (g(3),b) 18 | (g(3),c) 19 | remaining(0) 20 | -------------------------------------------------------------------------------- /tests/xsb/table_tests/abol_test3b_old: -------------------------------------------------------------------------------- 1 | (f(1),a) 2 | (f(1),b) 3 | (f(1),c) 4 | (f(2),a) 5 | (f(2),b) 6 | (f(2),c) 7 | (f(3),a) 8 | (f(3),b) 9 | (f(3),c) 10 | (g(1),a) 11 | (g(1),b) 12 | (g(1),c) 13 | (g(2),a) 14 | (g(2),b) 15 | (g(2),c) 16 | (g(3),a) 17 | (g(3),b) 18 | (g(3),c) 19 | first(f(1)) 20 | first(f(1)) 21 | first(f(2)) 22 | first(f(2)) 23 | first(f(3)) 24 | first(f(3)) 25 | first(g(1)) 26 | first(g(1)) 27 | first(g(2)) 28 | first(g(2)) 29 | first(g(3)) 30 | first(g(3)) 31 | remaining(0) 32 | -------------------------------------------------------------------------------- /tests/xsb/table_tests/abol_test3c_old: -------------------------------------------------------------------------------- 1 | (f(1),a) 2 | (f(1),b) 3 | (f(1),c) 4 | (f(2),a) 5 | (f(2),b) 6 | (f(2),c) 7 | (f(3),a) 8 | (f(3),b) 9 | (f(3),c) 10 | (g(1),a) 11 | (g(1),b) 12 | (g(1),c) 13 | (g(2),a) 14 | (g(2),b) 15 | (g(2),c) 16 | (g(3),a) 17 | (g(3),b) 18 | (g(3),c) 19 | remaining1(0) 20 | remaining1(1) 21 | remaining1(1) 22 | remaining1(1) 23 | remaining1(1) 24 | remaining1(1) 25 | remaining2(0) 26 | -------------------------------------------------------------------------------- /tests/xsb/table_tests/abol_test_old: -------------------------------------------------------------------------------- 1 | 1.0 path(1,4) 2 | 1.0 path(1,A) 3 | 1.0 path(A,4) 4 | 1.0 path(A,B) 5 | 2.0 path(1,4) 6 | 2.0 path(1,A) 7 | -------------------------------------------------------------------------------- /tests/xsb/table_tests/abolish_cascade_old: -------------------------------------------------------------------------------- 1 | cascading abolish test completed -------------------------------------------------------------------------------- /tests/xsb/table_tests/abolish_cascade_pred_old: -------------------------------------------------------------------------------- 1 | cascading abolish test completed 2 | -------------------------------------------------------------------------------- /tests/xsb/table_tests/expand.P: -------------------------------------------------------------------------------- 1 | :- [exec]. 2 | :- [kalah_ox]. 3 | %:- import start_forest_view/1 from tables. 4 | %?- start_forest_view(userout). 5 | 6 | % Don't abstract -- no finite model. 7 | ?- set_prolog_flag(max_table_subgoal_size,200000). 8 | ?- set_prolog_flag(max_table_subgoal_size_action,error). 9 | test :- exec,fail. 10 | -------------------------------------------------------------------------------- /tests/xsb/table_tests/expand_old: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SWI-Prolog/swipl-devel/508550cf35cb9efb3408f6b18610c34f23fc98b4/tests/xsb/table_tests/expand_old -------------------------------------------------------------------------------- /tests/xsb/table_tests/large_arity_tables_old: -------------------------------------------------------------------------------- 1 | tabling_donetest_ans_term(f / 5000) 2 | tabling_donetest_ans_term(f / 5000) 3 | test_subg_term(f / 5000) 4 | -------------------------------------------------------------------------------- /tests/xsb/table_tests/lrbug_old: -------------------------------------------------------------------------------- 1 | start testing 2 | testing successful 3 | -------------------------------------------------------------------------------- /tests/xsb/table_tests/pps_old: -------------------------------------------------------------------------------- 1 | clause3(wrapper(app,foobar)) 2 | 3 | About to cut 4 | clause3(wrapper(pps,foobar)) 5 | 6 | About to cut 7 | -------------------------------------------------------------------------------- /tests/xsb/table_tests/recursive_aboltest_old: -------------------------------------------------------------------------------- 1 | got_through_pred(1) 2 | got_through_pred(10) 3 | got_through_pred(2) 4 | got_through_pred(3) 5 | got_through_pred(4) 6 | got_through_pred(5) 7 | got_through_pred(6) 8 | got_through_pred(7) 9 | got_through_pred(8) 10 | got_through_pred(9) 11 | got_through_subgoal(1) 12 | got_through_subgoal(10) 13 | got_through_subgoal(2) 14 | got_through_subgoal(3) 15 | got_through_subgoal(4) 16 | got_through_subgoal(5) 17 | got_through_subgoal(6) 18 | got_through_subgoal(7) 19 | got_through_subgoal(8) 20 | got_through_subgoal(9) 21 | -------------------------------------------------------------------------------- /tests/xsb/table_tests/tabbug1.P: -------------------------------------------------------------------------------- 1 | :- table p/1. 2 | 3 | p(X) :- X = a, p(X). 4 | p(a). 5 | 6 | :- import get_calls/3 from tables. 7 | 8 | test :- 9 | forall(p(_X),true), 10 | get_calls(p(a),_C,R), writeln(a(R)),fail. 11 | -------------------------------------------------------------------------------- /tests/xsb/table_tests/tabbug1_old: -------------------------------------------------------------------------------- 1 | a(ret(a)) 2 | a(ret) 3 | -------------------------------------------------------------------------------- /tests/xsb/table_tests/test_3vwfs_1_old: -------------------------------------------------------------------------------- 1 | 3vwfs_test_succeeded 2 | passed(p(a,A)) 3 | passed(p(b,A)) 4 | passed(p(c,A)) 5 | passed(p(d,A)) 6 | passed(p(e,A)) 7 | passed(p(f,A)) 8 | -------------------------------------------------------------------------------- /tests/xsb/table_tests/test_calldepth_old: -------------------------------------------------------------------------------- 1 | error(resource_error(tripwire(max_table_subgoal_size,xsb_test_calldepth:p(_)))) 2 | -------------------------------------------------------------------------------- /tests/xsb/table_tests/test_cyclic_tabling_old: -------------------------------------------------------------------------------- 1 | caught_p 2 | caught_r 3 | caught_s_1 4 | caught_s_2 5 | uwoc_caught_r 6 | uwoc_caught_s_2 7 | -------------------------------------------------------------------------------- /tests/xsb/table_tests/test_large_tabled_terms_old: -------------------------------------------------------------------------------- 1 | test_large_ground_subgoal 2 | test_large_ground_answer 3 | test_subgoal_abstraction 4 | test_answer_abstraction 5 | test_subgoal_answer_abstraction 6 | test_var_limit_1_succeeded 7 | test_var_limit_1_succeeded 8 | test_a_var_succeeded 9 | -------------------------------------------------------------------------------- /tests/xsb/table_tests/test_maxans_decl.P: -------------------------------------------------------------------------------- 1 | :- import between/3 from basics. 2 | :- import numbervars/1 from num_vars. 3 | 4 | :- table p/2 as max_answers(5). 5 | p(X,X):- between(1,10,X). 6 | 7 | test:- p(_X,_Y),fail. 8 | test:- get_residual(p(X,Y),Z),numbervars([X,Y,Z]),writeln(get_residual(p(X,Y),Z)),fail. 9 | -------------------------------------------------------------------------------- /tests/xsb/table_tests/test_maxans_decl_old: -------------------------------------------------------------------------------- 1 | get_residual(p(1,1),[]) 2 | get_residual(p(2,2),[]) 3 | get_residual(p(3,3),[]) 4 | get_residual(p(4,4),[]) 5 | get_residual(p(5,5),[]) 6 | get_residual(p(A,B),[answer_count_restraint]) 7 | -------------------------------------------------------------------------------- /tests/xsb/table_tests/test_negcycle_old: -------------------------------------------------------------------------------- 1 | error(a3) 2 | error(a4) 3 | error(c1) 4 | error(ca4) 5 | error(ca4) 6 | error(cae3) 7 | error(cae4) 8 | error(ce1) 9 | error(ce2) 10 | error(ce3) 11 | error(ce4) 12 | error(ce5) 13 | error(ce6) 14 | error(e1) 15 | error(e2) 16 | error(e3) 17 | error(e4) 18 | success(a1) 19 | success(a2) 20 | success(ca1) 21 | success(ca2) 22 | -------------------------------------------------------------------------------- /tests/xsb/table_tests/test_tda_i_old: -------------------------------------------------------------------------------- 1 | >>>>>succeeded(d1) 2 | >>>>>succeeded(d11) 3 | >>>>>succeeded(p1) 4 | >>>>>succeeded(p11) 5 | >>>>>succeeded(p2) 6 | >>>>>succeeded(p21) 7 | >>>>>succeeded(p3) 8 | >>>>>succeeded(p31) 9 | >>>>>succeeded(p4) 10 | >>>>>succeeded(p41) 11 | >>>>>succeeded(p5) 12 | >>>>>succeeded(p5a) 13 | >>>>>succeeded(p5b) 14 | >>>>>succeeded(p6) 15 | >>>>>succeeded(p7) 16 | -------------------------------------------------------------------------------- /tests/xsb/table_tests/test_tda_old: -------------------------------------------------------------------------------- 1 | >>>>>succeeded(d1) 2 | >>>>>succeeded(d11) 3 | >>>>>succeeded(p1) 4 | >>>>>succeeded(p11) 5 | >>>>>succeeded(p2) 6 | >>>>>succeeded(p21) 7 | >>>>>succeeded(p3) 8 | >>>>>succeeded(p31) 9 | >>>>>succeeded(p4) 10 | >>>>>succeeded(p41) 11 | >>>>>succeeded(p5) 12 | >>>>>succeeded(p5a) 13 | >>>>>succeeded(p5b) 14 | >>>>>succeeded(p6) 15 | >>>>>succeeded(p7) 16 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p06.P: -------------------------------------------------------------------------------- 1 | query(p06,p,[p,q,r],[p,q],[]). 2 | %----------------------------- 3 | 4 | :- table p/0, q/0, r/0. 5 | 6 | p :- q, tnot(r). 7 | q. 8 | 9 | r :- fail. 10 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p06_old: -------------------------------------------------------------------------------- 1 | Evaluating p06 : p 2 | p is: true (OK) 3 | q is: true (OK) 4 | r is: false (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p07.P: -------------------------------------------------------------------------------- 1 | query(p07, p, [p,q,r,s,t], [p,q,s], []). 2 | %--------------------------------------- 3 | 4 | :- table p/0, q/0, r/0, s/0, t/0. 5 | 6 | p :- q, tnot(r). 7 | q. 8 | r :- tnot(s). 9 | s :- tnot(t). 10 | t :- fail. 11 | 12 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p07_old: -------------------------------------------------------------------------------- 1 | Evaluating p07 : p 2 | p is: true (OK) 3 | q is: true (OK) 4 | r is: false (OK) 5 | s is: true (OK) 6 | t is: false (OK) 7 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p08.P: -------------------------------------------------------------------------------- 1 | query(p08, p, [p,q,r,s], [p,q,s], []). 2 | %------------------------------------- 3 | 4 | :- table p/0, q/0, r/0, s/0. 5 | 6 | p :- q, tnot(r), s. 7 | q. 8 | r :- tnot(s). 9 | s. 10 | 11 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p08_old: -------------------------------------------------------------------------------- 1 | Evaluating p08 : p 2 | p is: true (OK) 3 | q is: true (OK) 4 | r is: false (OK) 5 | s is: true (OK) 6 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p09.P: -------------------------------------------------------------------------------- 1 | query(p09, p, [p,q,r,s], [q,r], []). 2 | %------------------------------------ 3 | 4 | :- table p/0, q/0, r/0, s/0. 5 | 6 | p :- tnot(q). 7 | q :- tnot(p). 8 | q :- r. 9 | r :- tnot(s). 10 | s :- fail. 11 | 12 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p09_old: -------------------------------------------------------------------------------- 1 | Evaluating p09 : p 2 | p is: false (OK) 3 | q is: true (OK) 4 | r is: true (OK) 5 | s is: false (OK) 6 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p10.P: -------------------------------------------------------------------------------- 1 | query(p10,p,[p,q,r],[],[p,q,r]). 2 | %------------------------------- 3 | 4 | :- table p/0, q/0, r/0. 5 | 6 | p :- q. 7 | p :- r. 8 | r :- tnot(q). 9 | q :- tnot(r). 10 | 11 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p10_old: -------------------------------------------------------------------------------- 1 | Evaluating p10 : p 2 | p is: undefined (OK) 3 | q is: undefined (OK) 4 | r is: undefined (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p11.P: -------------------------------------------------------------------------------- 1 | query(p11,win(_A),[win(a),win(b),win(c),win(d)],[win(b),win(c)],[]). 2 | %----------------------------------------------------------- 3 | 4 | :- table win / 1. 5 | 6 | win(A) :- m(A,B), tnot(win(B)). 7 | m(a,b). 8 | m(b,c). 9 | m(c,d). 10 | m(b,d). 11 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p11_old: -------------------------------------------------------------------------------- 1 | Evaluating p11 : win(A) 2 | win(a) is: false (OK) 3 | win(b) is: true (OK) 4 | win(c) is: true (OK) 5 | win(d) is: false (OK) 6 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p12.P: -------------------------------------------------------------------------------- 1 | query(p12,win(_A),[win(a),win(b),win(c)],[win(b)],[]). 2 | %----------------------------------------------------------- 3 | 4 | :- table win / 1. 5 | 6 | win(A) :- m(A,B), tnot(win(B)). 7 | m(a,b). 8 | m(b,a). 9 | m(b,c). 10 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p12_old: -------------------------------------------------------------------------------- 1 | Evaluating p12 : win(A) 2 | win(a) is: false (OK) 3 | win(b) is: true (OK) 4 | win(c) is: false (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p13.P: -------------------------------------------------------------------------------- 1 | query(p13,win(_A),[win(a),win(b),win(c),win(d)],[win(c)],[win(a),win(b)]). 2 | %----------------------------------------------------------- 3 | 4 | :- table win / 1. 5 | 6 | win(A) :- m(A,B), tnot(win(B)). 7 | m(a,b). 8 | m(b,a). 9 | m(b,c). 10 | m(c,d). 11 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p13_old: -------------------------------------------------------------------------------- 1 | Evaluating p13 : win(A) 2 | win(a) is: undefined (OK) 3 | win(b) is: undefined (OK) 4 | win(c) is: true (OK) 5 | win(d) is: false (OK) 6 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p14.P: -------------------------------------------------------------------------------- 1 | query(p14,p,[p],[],[p]). 2 | %----------------------------------------------------------- 3 | 4 | :- table p / 0. 5 | 6 | p :- tnot(p). 7 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p14_old: -------------------------------------------------------------------------------- 1 | Evaluating p14 : p 2 | p is: undefined (OK) 3 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p15.P: -------------------------------------------------------------------------------- 1 | query(p15,s,[s,p,q,r],[s],[]). 2 | %----------------------------------------------------------- 3 | 4 | :- table p / 0. 5 | :- table q / 0. 6 | :- table r / 0. 7 | :- table s / 0. 8 | 9 | s :- tnot(p), tnot(q), tnot(r). 10 | p :- tnot(s), tnot(r), q. 11 | q :- tnot(p), r. 12 | r :- tnot(q), p. 13 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p15_old: -------------------------------------------------------------------------------- 1 | Evaluating p15 : s 2 | p is: false (OK) 3 | q is: false (OK) 4 | r is: false (OK) 5 | s is: true (OK) 6 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p16.P: -------------------------------------------------------------------------------- 1 | query(p16,s,[s,p,q,r],[s],[]). 2 | %----------------------------------------------------------- 3 | 4 | :- table p / 0. 5 | :- table q / 0. 6 | :- table r / 0. 7 | :- table s / 0. 8 | 9 | s :- tnot(p), tnot(q), tnot(r). 10 | p :- q, tnot(s), tnot(r). 11 | q :- r, tnot(p). 12 | r :- p, tnot(q). 13 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p16_old: -------------------------------------------------------------------------------- 1 | Evaluating p16 : s 2 | p is: false (OK) 3 | q is: false (OK) 4 | r is: false (OK) 5 | s is: true (OK) 6 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p17_old: -------------------------------------------------------------------------------- 1 | Evaluating p17 : s 2 | p is: false (OK) 3 | p1 is: false (OK) 4 | p2 is: false (OK) 5 | p3 is: false (OK) 6 | p4 is: false (OK) 7 | p5 is: false (OK) 8 | q is: false (OK) 9 | q1 is: false (OK) 10 | q2 is: false (OK) 11 | q3 is: false (OK) 12 | q4 is: false (OK) 13 | q5 is: false (OK) 14 | r is: false (OK) 15 | r1 is: false (OK) 16 | r2 is: false (OK) 17 | r3 is: false (OK) 18 | r4 is: false (OK) 19 | r5 is: false (OK) 20 | s is: true (OK) 21 | s1 is: true (OK) 22 | s2 is: true (OK) 23 | s3 is: true (OK) 24 | s4 is: true (OK) 25 | s5 is: true (OK) 26 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p18.P: -------------------------------------------------------------------------------- 1 | query(p18,p,[p,q,r],[p,q,r],[]). 2 | %----------------------------------------------------------- 3 | 4 | :- table p / 0. 5 | :- table q / 0. 6 | :- table r / 0. 7 | 8 | p :- q, r. 9 | p :- r. 10 | q. 11 | r. 12 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p18_old: -------------------------------------------------------------------------------- 1 | Evaluating p18 : p 2 | p is: true (OK) 3 | q is: true (OK) 4 | r is: true (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p19.P: -------------------------------------------------------------------------------- 1 | query(p19,r(_684208,_684212),[r(a,b),r(a,c),r(a,d),r(b,a),r(c,a),r(d,a),p(a,b),p(a,c),p(a,d),p(b,a),p(c,a),p(d,a)],[r(a,b),r(a,c),r(a,d),p(a,b),p(a,c),p(a,d)],[]). 2 | %----------------------------------------------------------- 3 | 4 | :- table p / 2. 5 | :- table r / 2. 6 | 7 | r(A,B) :- p(A,B), tnot(p(B,A)). 8 | p(A,B) :- q(A,B). 9 | p(A,B) :- q(A,C), p(C,B). 10 | q(a,b). 11 | q(b,c). 12 | q(c,d). 13 | q(d,b). 14 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p19_old: -------------------------------------------------------------------------------- 1 | Evaluating p19 : r(A,B) 2 | p(a,b) is: true (OK) 3 | p(a,c) is: true (OK) 4 | p(a,d) is: true (OK) 5 | p(b,a) is: false (OK) 6 | p(c,a) is: false (OK) 7 | p(d,a) is: false (OK) 8 | r(a,b) is: true (OK) 9 | r(a,c) is: true (OK) 10 | r(a,d) is: true (OK) 11 | r(b,a) is: false (OK) 12 | r(c,a) is: false (OK) 13 | r(d,a) is: false (OK) 14 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p20.P: -------------------------------------------------------------------------------- 1 | query(p20,a,[a,b,c],[c],[]). 2 | %----------------------------------------------------------- 3 | 4 | :- table a / 0. 5 | :- table b / 0. 6 | :- table c / 0. 7 | 8 | a :- tnot(b), tnot(c). 9 | b :- a. 10 | c. 11 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p20_old: -------------------------------------------------------------------------------- 1 | Evaluating p20 : a 2 | a is: false (OK) 3 | b is: false (OK) 4 | c is: true (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p21.P: -------------------------------------------------------------------------------- 1 | query(p21,a,[a,b,c],[c],[a,b]). 2 | %----------------------------------------------------------- 3 | 4 | :- table a / 0. 5 | :- table b / 0. 6 | :- table c / 0. 7 | 8 | a :- tnot(b), c. 9 | b :- tnot(a). 10 | c. 11 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p21_old: -------------------------------------------------------------------------------- 1 | Evaluating p21 : a 2 | a is: undefined (OK) 3 | b is: undefined (OK) 4 | c is: true (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p22.P: -------------------------------------------------------------------------------- 1 | query(p22,p,[p,q,a,b,c],[b],[p,q]). 2 | %----------------------------------------------------------- 3 | 4 | :- table a / 0. 5 | :- table b / 0. 6 | :- table c / 0. 7 | :- table p / 0. 8 | :- table q / 0. 9 | 10 | a :- fail. 11 | b :- tnot(a). 12 | c :- tnot(b). 13 | c :- a, tnot(p). 14 | p :- tnot(q). 15 | q :- tnot(p), b. 16 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p22_old: -------------------------------------------------------------------------------- 1 | Evaluating p22 : p 2 | a is: false (OK) 3 | b is: true (OK) 4 | c is: false (OK) 5 | p is: undefined (OK) 6 | q is: undefined (OK) 7 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p23.P: -------------------------------------------------------------------------------- 1 | query(p23,(d ',' p),[p,q,r,s,t,a,b,c,d],[c],[a,b,d]). 2 | %----------------------------------------------------------- 3 | 4 | :- table a / 0. 5 | :- table b / 0. 6 | :- table c / 0. 7 | :- table d / 0. 8 | :- table p / 0. 9 | :- table q / 0. 10 | :- table r / 0. 11 | :- table s / 0. 12 | :- table t / 0. 13 | 14 | a :- tnot(b), c. 15 | b :- tnot(a). 16 | c. 17 | d :- a, c, a. 18 | p :- tnot(r), q. 19 | p :- tnot(s), r. 20 | p :- t. 21 | q :- p. 22 | r :- q. 23 | r :- tnot(c). 24 | s :- fail. 25 | t :- fail. 26 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p23_old: -------------------------------------------------------------------------------- 1 | Evaluating p23 : (d,p) 2 | a is: undefined (OK) 3 | b is: undefined (OK) 4 | c is: true (OK) 5 | d is: undefined (OK) 6 | p is: false (OK) 7 | q is: false (OK) 8 | r is: false (OK) 9 | s is: false (OK) 10 | t is: false (OK) 11 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p24.P: -------------------------------------------------------------------------------- 1 | query(p24,p,[p,q,r,s],[s],[]). 2 | %----------------------------------------------------------- 3 | 4 | :- table p / 0. 5 | :- table q / 0. 6 | :- table r / 0. 7 | :- table s / 0. 8 | 9 | p :- tnot(s), q, tnot(r). 10 | q :- r, tnot(p). 11 | r :- p, tnot(q). 12 | s :- tnot(p), tnot(q), tnot(r). 13 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p24_old: -------------------------------------------------------------------------------- 1 | Evaluating p24 : p 2 | p is: false (OK) 3 | q is: false (OK) 4 | r is: false (OK) 5 | s is: true (OK) 6 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p25.P: -------------------------------------------------------------------------------- 1 | query(p25,s,[p,q,r,s],[s],[]). 2 | %----------------------------------------------------------- 3 | 4 | :- table p / 0. 5 | :- table q / 0. 6 | :- table r / 0. 7 | :- table s / 0. 8 | 9 | p :- q, tnot(s), tnot(r). 10 | q :- r, tnot(p). 11 | r :- p, tnot(q). 12 | s :- tnot(p), tnot(q), tnot(r). 13 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p25_old: -------------------------------------------------------------------------------- 1 | Evaluating p25 : s 2 | p is: false (OK) 3 | q is: false (OK) 4 | r is: false (OK) 5 | s is: true (OK) 6 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p26.P: -------------------------------------------------------------------------------- 1 | query(p26,l,[l,m,n,p,q,r,s],[l,n,s],[]). 2 | %----------------------------------------------------------- 3 | 4 | :- table l / 0. 5 | :- table m / 0. 6 | :- table n / 0. 7 | :- table p / 0. 8 | :- table q / 0. 9 | :- table r / 0. 10 | :- table s / 0. 11 | 12 | l :- tnot(p), s. 13 | m :- tnot(s). 14 | n :- tnot(p). 15 | p :- tnot(s), tnot(r), q. 16 | q :- tnot(p), r. 17 | r :- tnot(q), p. 18 | s :- tnot(p), tnot(q), tnot(r). 19 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p26_old: -------------------------------------------------------------------------------- 1 | Evaluating p26 : l 2 | l is: true (OK) 3 | m is: false (OK) 4 | n is: true (OK) 5 | p is: false (OK) 6 | q is: false (OK) 7 | r is: false (OK) 8 | s is: true (OK) 9 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p27.P: -------------------------------------------------------------------------------- 1 | query(p27,s,[p,q,r,s,ns],[s],[]). 2 | %----------------------------------------------------------- 3 | 4 | :- table ns / 0. 5 | :- table p / 0. 6 | :- table q / 0. 7 | :- table r / 0. 8 | :- table s / 0. 9 | 10 | p :- tnot(r), ns, q. 11 | ns :- tnot(s). 12 | q :- r, tnot(p). 13 | r :- p, tnot(q). 14 | s :- tnot(p), tnot(q), tnot(r). 15 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p27_old: -------------------------------------------------------------------------------- 1 | Evaluating p27 : s 2 | ns is: false (OK) 3 | p is: false (OK) 4 | q is: false (OK) 5 | r is: false (OK) 6 | s is: true (OK) 7 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p29.P: -------------------------------------------------------------------------------- 1 | query(p29,w(0),[w(0),u(0)],[w(0)],[]). 2 | %----------------------------------------------------------- 3 | 4 | :- table u / 1. 5 | :- table w / 1. 6 | 7 | e(s(0),s(s(0))). 8 | e(s(0),0). 9 | e(s(A),s(s(A))) :- e(A,s(A)). 10 | e(s(A),0) :- e(A,0). 11 | w(A) :- tnot(u(A)). 12 | w(A) :- e(B,A), tnot(w(B)). 13 | u(0) :- fail. 14 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p29_old: -------------------------------------------------------------------------------- 1 | Evaluating p29 : w(0) 2 | u(0) is: false (OK) 3 | w(0) is: true (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p30.P: -------------------------------------------------------------------------------- 1 | query(p30,p,[p,q,r],[],[p,q,r]). 2 | %----------------------------------------------------------- 3 | 4 | :- table p / 0. 5 | :- table q / 0. 6 | :- table r / 0. 7 | 8 | p :- q. 9 | p :- tnot(r). 10 | r :- tnot(q). 11 | q :- tnot(r). 12 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p30_old: -------------------------------------------------------------------------------- 1 | Evaluating p30 : p 2 | p is: undefined (OK) 3 | q is: undefined (OK) 4 | r is: undefined (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p31.P: -------------------------------------------------------------------------------- 1 | query(p31,(q(_684212) ',' q(b)),[q(a),q(b),r],[],[q(b),r]). 2 | %----------------------------------------------------------- 3 | 4 | :- table q / 1. 5 | :- table r / 0. 6 | 7 | q(A) :- p(A), eq(A,b). 8 | eq(A,A). 9 | p(a). 10 | p(_A) :- r. 11 | r :- tnot(r). 12 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p31_old: -------------------------------------------------------------------------------- 1 | Evaluating p31 : (q(A),q(b)) 2 | q(a) is: false (OK) 3 | q(b) is: undefined (OK) 4 | r is: undefined (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p32.P: -------------------------------------------------------------------------------- 1 | query(p32,(a ',' p),[a,b,c,p,q,r,s],[c],[a,b]). 2 | %----------------------------------------------------------- 3 | 4 | :- table a / 0. 5 | :- table b / 0. 6 | :- table c / 0. 7 | :- table p / 0. 8 | :- table q / 0. 9 | :- table r / 0. 10 | :- table s / 0. 11 | 12 | a :- c, tnot(b). 13 | b :- tnot(a). 14 | c. 15 | p :- q, tnot(r). 16 | p :- r, tnot(s). 17 | q :- p. 18 | r :- q. 19 | s :- fail. 20 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p32_old: -------------------------------------------------------------------------------- 1 | Evaluating p32 : (a,p) 2 | a is: undefined (OK) 3 | b is: undefined (OK) 4 | c is: true (OK) 5 | p is: false (OK) 6 | q is: false (OK) 7 | r is: false (OK) 8 | s is: false (OK) 9 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p33.P: -------------------------------------------------------------------------------- 1 | query(p33,a,[a,b],[],[a,b]). 2 | %----------------------------------------------------------- 3 | 4 | :- table a / 0. 5 | :- table b / 0. 6 | 7 | a :- tnot(b). 8 | b :- tnot(a). 9 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p33_old: -------------------------------------------------------------------------------- 1 | Evaluating p33 : a 2 | a is: undefined (OK) 3 | b is: undefined (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p34.P: -------------------------------------------------------------------------------- 1 | query(p34,p,[a,b,p],[],[a,b,p]). 2 | %----------------------------------------------------------- 3 | 4 | :- table a / 0. 5 | :- table b / 0. 6 | :- table p / 0. 7 | 8 | a :- tnot(b). 9 | b :- tnot(a). 10 | p :- tnot(p). 11 | p :- tnot(b). 12 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p34_old: -------------------------------------------------------------------------------- 1 | Evaluating p34 : p 2 | a is: undefined (OK) 3 | b is: undefined (OK) 4 | p is: undefined (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p35.P: -------------------------------------------------------------------------------- 1 | query(p35,a,[a,b,c],[],[a,b,c]). 2 | %----------------------------------------------------------- 3 | 4 | :- table a / 0. 5 | :- table b / 0. 6 | :- table c / 0. 7 | 8 | a :- tnot(b). 9 | b :- tnot(a). 10 | c :- a, b. 11 | a :- tnot(c). 12 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p35_old: -------------------------------------------------------------------------------- 1 | Evaluating p35 : a 2 | a is: undefined (OK) 3 | b is: undefined (OK) 4 | c is: undefined (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p36.P: -------------------------------------------------------------------------------- 1 | query(p36,noise(1),[noise(0),loaded(0),shoots(0),noise(1),loaded(1),shoots(1)],[loaded(0),noise(1),loaded(1),shoots(1)],[]). 2 | %----------------------------------------------------------- 3 | 4 | :- table loaded / 1. 5 | :- table noise / 1. 6 | :- table shoots / 1. 7 | 8 | noise(1) :- loaded(1), shoots(1). 9 | loaded(1) :- succ(0,1), loaded(0), tnot(shoots(0)). 10 | succ(0,1). 11 | loaded(0). 12 | shoots(1). 13 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p36_old: -------------------------------------------------------------------------------- 1 | Evaluating p36 : noise(1) 2 | loaded(0) is: true (OK) 3 | loaded(1) is: true (OK) 4 | noise(0) is: false (OK) 5 | noise(1) is: true (OK) 6 | shoots(0) is: false (OK) 7 | shoots(1) is: true (OK) 8 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p37.P: -------------------------------------------------------------------------------- 1 | query(p37,a(_684200,_684204),[a(2,3),a(3,2),a(3,3),p(3,3),e(3,3)],[a(2,3),a(3,2),a(3,3),e(3,3)],[]). 2 | %----------------------------------------------------------- 3 | 4 | :- table a / 2. 5 | :- table e / 2. 6 | :- table p / 2. 7 | 8 | p(A,B) :- b(A,B). 9 | p(A,B) :- b(A,C), p(C,B). 10 | e(A,B) :- g(A,B). 11 | e(A,B) :- g(A,C), e(C,B). 12 | a(A,B) :- e(A,B), tnot(p(A,B)). 13 | b(1,2). 14 | b(2,1). 15 | g(2,3). 16 | g(3,2). 17 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p37_old: -------------------------------------------------------------------------------- 1 | Evaluating p37 : a(A,B) 2 | a(2,3) is: true (OK) 3 | a(3,2) is: true (OK) 4 | a(3,3) is: true (OK) 5 | e(3,3) is: true (OK) 6 | p(3,3) is: false (OK) 7 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p39.P: -------------------------------------------------------------------------------- 1 | query(p39,(a(_684212),a(s),b(s)),[a(s),b(s)],[],[a(s),b(s)]). 2 | %----------------------------------------------------------- 3 | 4 | :- table a / 1. 5 | :- table b / 1. 6 | 7 | b(s) :- tnot(b(s)). 8 | a(A) :- b(A). 9 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p39_old: -------------------------------------------------------------------------------- 1 | Evaluating p39 : (a(A),a(s),b(s)) 2 | a(s) is: undefined (OK) 3 | b(s) is: undefined (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p40.P: -------------------------------------------------------------------------------- 1 | query(p40,a(_684200),[a(s),a(t),b(s)],[a(s),a(t)],[b(s)]). 2 | %----------------------------------------------------------- 3 | 4 | :- table a / 1. 5 | :- table b / 1. 6 | 7 | b(s) :- tnot(b(s)). 8 | a(A) :- b(A). 9 | a(_A). 10 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p40_old: -------------------------------------------------------------------------------- 1 | Evaluating p40 : a(A) 2 | a(s) is: true (OK) 3 | a(t) is: true (OK) 4 | b(s) is: undefined (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p42_old: -------------------------------------------------------------------------------- 1 | Evaluating p42 : r(A,B) 2 | p(a,b) is: true (OK) 3 | r(a,b) is: true (OK) 4 | r(a,c) is: true (OK) 5 | r(a,d) is: true (OK) 6 | r(a,e) is: true (OK) 7 | r(a,f) is: true (OK) 8 | r(a,g) is: true (OK) 9 | r(a,h) is: true (OK) 10 | r(a,i) is: true (OK) 11 | r(a,j) is: true (OK) 12 | r(a,k) is: true (OK) 13 | r(a,l) is: true (OK) 14 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p43.P: -------------------------------------------------------------------------------- 1 | query(p43,w(_684200),[w(a),w(b),w(c),w(d),w(e),w(f),w(g)],[w(b),w(e),w(g)],[]). 2 | %----------------------------------------------------------- 3 | 4 | :- table w / 1. 5 | 6 | w(A) :- m(A,B), tnot(w(B)). 7 | m(a,b). 8 | m(a,e). 9 | m(b,c). 10 | m(b,d). 11 | m(e,f). 12 | m(e,g). 13 | m(g,h). 14 | m(g,i). 15 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p43_old: -------------------------------------------------------------------------------- 1 | Evaluating p43 : w(A) 2 | w(a) is: false (OK) 3 | w(b) is: true (OK) 4 | w(c) is: false (OK) 5 | w(d) is: false (OK) 6 | w(e) is: true (OK) 7 | w(f) is: false (OK) 8 | w(g) is: true (OK) 9 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p44.P: -------------------------------------------------------------------------------- 1 | query(p44,w(_684200),[w(a),w(b),w(c),w(d)],[w(c)],[w(a),w(b)]). 2 | %----------------------------------------------------------- 3 | 4 | :- table w / 1. 5 | 6 | w(A) :- m(A,B), tnot(w(B)). 7 | m(a,b). 8 | m(b,a). 9 | m(b,c). 10 | m(c,d). 11 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p44_old: -------------------------------------------------------------------------------- 1 | Evaluating p44 : w(A) 2 | w(a) is: undefined (OK) 3 | w(b) is: undefined (OK) 4 | w(c) is: true (OK) 5 | w(d) is: false (OK) 6 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p45.P: -------------------------------------------------------------------------------- 1 | query(p45,w(_684200),[w(a),w(b),w(c)],[w(b)],[]). 2 | %----------------------------------------------------------- 3 | 4 | :- table w / 1. 5 | 6 | w(A) :- m(A,B), tnot(w(B)). 7 | m(a,b). 8 | m(b,a). 9 | m(b,c). 10 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p45_old: -------------------------------------------------------------------------------- 1 | Evaluating p45 : w(A) 2 | w(a) is: false (OK) 3 | w(b) is: true (OK) 4 | w(c) is: false (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p46.P: -------------------------------------------------------------------------------- 1 | query(p46,q,[p(a),p(b),q,r],[p(b),r],[p(a)]). 2 | %----------------------------------------------------------- 3 | 4 | :- table p / 1. 5 | :- table q / 0. 6 | :- table r / 0. 7 | 8 | q :- tnot(r). 9 | r :- p(_A). 10 | p(a) :- tnot(p(a)). 11 | p(b). 12 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p46_old: -------------------------------------------------------------------------------- 1 | Evaluating p46 : q 2 | p(a) is: undefined (OK) 3 | p(b) is: true (OK) 4 | q is: false (OK) 5 | r is: true (OK) 6 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p47.P: -------------------------------------------------------------------------------- 1 | query(p47,p,[p,q,l],[p],[]). 2 | %----------------------------------------------------------- 3 | 4 | :- table l / 0. 5 | :- table p / 0. 6 | :- table q / 0. 7 | 8 | l :- tnot(p). 9 | p :- tnot(q). 10 | p. 11 | q :- tnot(p). 12 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p47_old: -------------------------------------------------------------------------------- 1 | Evaluating p47 : p 2 | l is: false (OK) 3 | p is: true (OK) 4 | q is: false (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p48.P: -------------------------------------------------------------------------------- 1 | query(p48,p,[p,q,r,s],[p],[]). 2 | %----------------------------------------------------------- 3 | 4 | :- table p / 0. 5 | :- table q / 0. 6 | :- table r / 0. 7 | :- table s / 0. 8 | 9 | p :- tnot(q). 10 | q :- tnot(p). 11 | p :- tnot(r). 12 | r :- tnot(p). 13 | p :- tnot(s). 14 | s :- fail. 15 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p48_old: -------------------------------------------------------------------------------- 1 | Evaluating p48 : p 2 | p is: true (OK) 3 | q is: false (OK) 4 | r is: false (OK) 5 | s is: false (OK) 6 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p49.P: -------------------------------------------------------------------------------- 1 | query(p49,q(a),[p(a),q(a),r(a)],[q(a),r(a)],[]). 2 | %----------------------------------------------------------- 3 | 4 | :- table p / 1. 5 | :- table q / 1. 6 | :- table r / 1. 7 | 8 | q(A) :- tnot(p(A)). 9 | p(A) :- tnot(p(A)), tnot(r(A)). 10 | r(a). 11 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p49_old: -------------------------------------------------------------------------------- 1 | Evaluating p49 : q(a) 2 | p(a) is: false (OK) 3 | q(a) is: true (OK) 4 | r(a) is: true (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p50.P: -------------------------------------------------------------------------------- 1 | query(p50,q(_684200),[q(a),q(b),p(a),p(b),r(a),r(b)],[q(b),p(a),r(a)],[]). 2 | %----------------------------------------------------------- 3 | 4 | :- table p / 1. 5 | :- table q / 1. 6 | :- table r / 1. 7 | 8 | q(a) :- tnot(p(a)). 9 | q(b) :- tnot(p(b)). 10 | p(a) :- tnot(p(a)), tnot(r(a)). 11 | p(a) :- tnot(p(b)), tnot(r(b)). 12 | r(a). 13 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p50_old: -------------------------------------------------------------------------------- 1 | Evaluating p50 : q(A) 2 | p(a) is: true (OK) 3 | p(b) is: false (OK) 4 | q(a) is: false (OK) 5 | q(b) is: true (OK) 6 | r(a) is: true (OK) 7 | r(b) is: false (OK) 8 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p51.P: -------------------------------------------------------------------------------- 1 | query(p51,p0,[p0,p1,p2],[],[p0,p1,p2]). 2 | %----------------------------------------------------------- 3 | 4 | :- table p0 / 0. 5 | :- table p1 / 0. 6 | :- table p2 / 0. 7 | 8 | p0 :- tnot(p0), tnot(p1), tnot(p2). 9 | p1 :- tnot(p1), tnot(p2), tnot(p0). 10 | p2 :- tnot(p2), tnot(p0), tnot(p1). 11 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p51_old: -------------------------------------------------------------------------------- 1 | Evaluating p51 : p0 2 | p0 is: undefined (OK) 3 | p1 is: undefined (OK) 4 | p2 is: undefined (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p52_old: -------------------------------------------------------------------------------- 1 | Evaluating p52 : p0 2 | p0 is: undefined (OK) 3 | p1 is: undefined (OK) 4 | p10 is: undefined (OK) 5 | p2 is: undefined (OK) 6 | p3 is: undefined (OK) 7 | p4 is: undefined (OK) 8 | p5 is: undefined (OK) 9 | p6 is: undefined (OK) 10 | p7 is: undefined (OK) 11 | p8 is: undefined (OK) 12 | p9 is: undefined (OK) 13 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p52a_old: -------------------------------------------------------------------------------- 1 | Evaluating p52a : p0 2 | p0 is: undefined (OK) 3 | p1 is: undefined (OK) 4 | p10 is: undefined (OK) 5 | p2 is: undefined (OK) 6 | p3 is: undefined (OK) 7 | p4 is: undefined (OK) 8 | p5 is: undefined (OK) 9 | p6 is: undefined (OK) 10 | p7 is: undefined (OK) 11 | p8 is: undefined (OK) 12 | p9 is: undefined (OK) 13 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p53_old: -------------------------------------------------------------------------------- 1 | Evaluating p53 : p0 2 | p0 is: undefined (OK) 3 | p1 is: undefined (OK) 4 | p10 is: undefined (OK) 5 | p2 is: undefined (OK) 6 | p3 is: undefined (OK) 7 | p4 is: undefined (OK) 8 | p5 is: undefined (OK) 9 | p6 is: undefined (OK) 10 | p7 is: undefined (OK) 11 | p8 is: undefined (OK) 12 | p9 is: undefined (OK) 13 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p54_old: -------------------------------------------------------------------------------- 1 | Evaluating p54 : p0 2 | p0 is: undefined (OK) 3 | p1 is: undefined (OK) 4 | p10 is: undefined (OK) 5 | p11 is: undefined (OK) 6 | p12 is: undefined (OK) 7 | p2 is: undefined (OK) 8 | p3 is: undefined (OK) 9 | p4 is: undefined (OK) 10 | p5 is: undefined (OK) 11 | p6 is: undefined (OK) 12 | p7 is: undefined (OK) 13 | p8 is: undefined (OK) 14 | p9 is: undefined (OK) 15 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p55_old: -------------------------------------------------------------------------------- 1 | Evaluating p55 : p0 2 | p0 is: undefined (OK) 3 | p1 is: undefined (OK) 4 | p10 is: undefined (OK) 5 | p11 is: undefined (OK) 6 | p12 is: undefined (OK) 7 | p13 is: undefined (OK) 8 | p14 is: undefined (OK) 9 | p2 is: undefined (OK) 10 | p3 is: undefined (OK) 11 | p4 is: undefined (OK) 12 | p5 is: undefined (OK) 13 | p6 is: undefined (OK) 14 | p7 is: undefined (OK) 15 | p8 is: undefined (OK) 16 | p9 is: undefined (OK) 17 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p56_old: -------------------------------------------------------------------------------- 1 | Evaluating p56 : p0 2 | p0 is: undefined (OK) 3 | p1 is: undefined (OK) 4 | p10 is: undefined (OK) 5 | p11 is: undefined (OK) 6 | p12 is: undefined (OK) 7 | p13 is: undefined (OK) 8 | p14 is: undefined (OK) 9 | p15 is: undefined (OK) 10 | p16 is: undefined (OK) 11 | p2 is: undefined (OK) 12 | p3 is: undefined (OK) 13 | p4 is: undefined (OK) 14 | p5 is: undefined (OK) 15 | p6 is: undefined (OK) 16 | p7 is: undefined (OK) 17 | p8 is: undefined (OK) 18 | p9 is: undefined (OK) 19 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p57_old: -------------------------------------------------------------------------------- 1 | Evaluating p57 : p0 2 | p0 is: undefined (OK) 3 | p1 is: undefined (OK) 4 | p10 is: undefined (OK) 5 | p11 is: undefined (OK) 6 | p12 is: undefined (OK) 7 | p13 is: undefined (OK) 8 | p14 is: undefined (OK) 9 | p15 is: undefined (OK) 10 | p16 is: undefined (OK) 11 | p17 is: undefined (OK) 12 | p18 is: undefined (OK) 13 | p2 is: undefined (OK) 14 | p3 is: undefined (OK) 15 | p4 is: undefined (OK) 16 | p5 is: undefined (OK) 17 | p6 is: undefined (OK) 18 | p7 is: undefined (OK) 19 | p8 is: undefined (OK) 20 | p9 is: undefined (OK) 21 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p60.P: -------------------------------------------------------------------------------- 1 | query(p60,(p(_684220) ',' q(_684220)),[p(1),p(2),p(3),p(4),q(1),q(2),q(3),q(4),s(1),s(2),s(3),s(4)],[p(2),p(3),p(4),q(3),q(4),s(2)],[]). 2 | %----------------------------------------------------------- 3 | 4 | :- table p / 1. 5 | :- table q / 1. 6 | :- table s / 1. 7 | 8 | q(A) :- u(A), tnot(s(A)). 9 | q(A) :- q(B), t(A,B). 10 | p(A) :- u(A), tnot(q(A)). 11 | p(A) :- p(B), t(A,B). 12 | u(2). 13 | u(3). 14 | s(2). 15 | t(2,1). 16 | t(3,2). 17 | t(4,3). 18 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p60_old: -------------------------------------------------------------------------------- 1 | Evaluating p60 : (p(A),q(A)) 2 | p(1) is: false (OK) 3 | p(2) is: true (OK) 4 | p(3) is: true (OK) 5 | p(4) is: true (OK) 6 | q(1) is: false (OK) 7 | q(2) is: false (OK) 8 | q(3) is: true (OK) 9 | q(4) is: true (OK) 10 | s(1) is: false (OK) 11 | s(2) is: true (OK) 12 | s(3) is: false (OK) 13 | s(4) is: false (OK) 14 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p62.P: -------------------------------------------------------------------------------- 1 | query(p62,l,[l,p,q,s,r,t],[],[l,p,q,s,r,t]). 2 | %----------------------------------------------------------- 3 | 4 | :- table l / 0. 5 | :- table p / 0. 6 | :- table q / 0. 7 | :- table r / 0. 8 | :- table s / 0. 9 | :- table t / 0. 10 | 11 | l :- tnot(p). 12 | p :- tnot(q), tnot(r). 13 | q :- tnot(s). 14 | s :- tnot(q). 15 | r :- tnot(t). 16 | t :- tnot(r). 17 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p62_old: -------------------------------------------------------------------------------- 1 | Evaluating p62 : l 2 | l is: undefined (OK) 3 | p is: undefined (OK) 4 | q is: undefined (OK) 5 | r is: undefined (OK) 6 | s is: undefined (OK) 7 | t is: undefined (OK) 8 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p63.P: -------------------------------------------------------------------------------- 1 | query(p63,t,[p,q,s,r,t],[],[p,q,s,r,t]). 2 | %----------------------------------------------------------- 3 | 4 | :- table p / 0. 5 | :- table q / 0. 6 | :- table r / 0. 7 | :- table s / 0. 8 | :- table t / 0. 9 | 10 | t :- tnot(s). 11 | s :- tnot(p). 12 | p :- q. 13 | p :- r. 14 | r :- tnot(q). 15 | q :- tnot(r). 16 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p63_old: -------------------------------------------------------------------------------- 1 | Evaluating p63 : t 2 | p is: undefined (OK) 3 | q is: undefined (OK) 4 | r is: undefined (OK) 5 | s is: undefined (OK) 6 | t is: undefined (OK) 7 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p64.P: -------------------------------------------------------------------------------- 1 | query(p64,p,[p,q,s,r,t,u,v],[],[p,q,s,r,t,u,v]). 2 | %----------------------------------------------------------- 3 | 4 | :- table p / 0. 5 | :- table q / 0. 6 | :- table r / 0. 7 | :- table s / 0. 8 | :- table t / 0. 9 | :- table u / 0. 10 | :- table v / 0. 11 | 12 | p :- tnot(q), tnot(r). 13 | p :- tnot(u). 14 | q :- tnot(s). 15 | q :- tnot(u). 16 | s :- tnot(q). 17 | r :- tnot(t). 18 | t :- tnot(r). 19 | u :- tnot(v). 20 | v :- tnot(u). 21 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p64_old: -------------------------------------------------------------------------------- 1 | Evaluating p64 : p 2 | p is: undefined (OK) 3 | q is: undefined (OK) 4 | r is: undefined (OK) 5 | s is: undefined (OK) 6 | t is: undefined (OK) 7 | u is: undefined (OK) 8 | v is: undefined (OK) 9 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p65.P: -------------------------------------------------------------------------------- 1 | query(p65,p,[p,q],[],[p,q]). 2 | %----------------------------------------------------------- 3 | 4 | :- table p / 0. 5 | :- table q / 0. 6 | 7 | p :- q. 8 | q :- tnot(q). 9 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p65_old: -------------------------------------------------------------------------------- 1 | Evaluating p65 : p 2 | p is: undefined (OK) 3 | q is: undefined (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p66.P: -------------------------------------------------------------------------------- 1 | query(p66,l,[l,p,q,r,s,t],[],[l,p,q,r,s,t]). 2 | %----------------------------------------------------------- 3 | 4 | :- table l / 0. 5 | :- table p / 0. 6 | :- table q / 0. 7 | :- table r / 0. 8 | :- table s / 0. 9 | :- table t / 0. 10 | 11 | l :- tnot(p). 12 | p :- tnot(q). 13 | p :- q. 14 | p :- tnot(r). 15 | q :- tnot(s). 16 | s :- tnot(q). 17 | r :- tnot(t). 18 | t :- tnot(r). 19 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p66_old: -------------------------------------------------------------------------------- 1 | Evaluating p66 : l 2 | l is: undefined (OK) 3 | p is: undefined (OK) 4 | q is: undefined (OK) 5 | r is: undefined (OK) 6 | s is: undefined (OK) 7 | t is: undefined (OK) 8 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p67.P: -------------------------------------------------------------------------------- 1 | query(p67,p,[p,q],[],[p]). 2 | %----------------------------------------------------------- 3 | 4 | :- table p / 0. 5 | :- table q / 0. 6 | 7 | p :- tnot(p). 8 | p :- q. 9 | q :- q. 10 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p67_old: -------------------------------------------------------------------------------- 1 | Evaluating p67 : p 2 | p is: undefined (OK) 3 | q is: false (OK) 4 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p77.P: -------------------------------------------------------------------------------- 1 | query(p77,p,[p,q,r,s,t],[],[p,q,r,s,t]). 2 | %----------------------------------------------------------- 3 | 4 | :- table p / 0. 5 | :- table q / 0. 6 | :- table r / 0. 7 | :- table s / 0. 8 | :- table t / 0. 9 | 10 | p :- q. 11 | q :- r. 12 | q :- tnot(t). 13 | r :- s. 14 | s :- p. 15 | t :- r. 16 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p77_old: -------------------------------------------------------------------------------- 1 | Evaluating p77 : p 2 | p is: undefined (OK) 3 | q is: undefined (OK) 4 | r is: undefined (OK) 5 | s is: undefined (OK) 6 | t is: undefined (OK) 7 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p78.P: -------------------------------------------------------------------------------- 1 | query(p78,s,[p,q,s],[s],[]). 2 | %----------------------------------------------------------- 3 | 4 | :- table p / 0. 5 | :- table q / 0. 6 | :- table s / 0. 7 | 8 | s :- tnot(p), tnot(q). 9 | p :- tnot(s), q. 10 | q :- tnot(s), p. 11 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p78_old: -------------------------------------------------------------------------------- 1 | Evaluating p78 : s 2 | p is: false (OK) 3 | q is: false (OK) 4 | s is: true (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p79.P: -------------------------------------------------------------------------------- 1 | query(p79,p(a),[p(a),p(b),p(c),q(a),q(b),q(c),r(a),r(b),r(c),s(a),s(b),s(c)],[p(a),q(a),q(b),r(b),s(b),s(c)],[]). 2 | %----------------------------------------------------------- 3 | 4 | :- table p / 1. 5 | :- table q / 1. 6 | :- table r / 1. 7 | :- table s / 1. 8 | 9 | p(A) :- q(A), tnot(r(A)). 10 | q(a). 11 | q(b). 12 | r(A) :- q(A), s(A). 13 | s(b). 14 | s(c). 15 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p79_old: -------------------------------------------------------------------------------- 1 | Evaluating p79 : p(a) 2 | p(a) is: true (OK) 3 | p(b) is: false (OK) 4 | p(c) is: false (OK) 5 | q(a) is: true (OK) 6 | q(b) is: true (OK) 7 | q(c) is: false (OK) 8 | r(a) is: false (OK) 9 | r(b) is: true (OK) 10 | r(c) is: false (OK) 11 | s(a) is: false (OK) 12 | s(b) is: true (OK) 13 | s(c) is: true (OK) 14 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p80.P: -------------------------------------------------------------------------------- 1 | query(p80,m,[m,p(a),p(b),p(c),q(a),q(b),q(c),r(a),r(b),r(c),s(a),s(b),s(c)],[m,p(b),q(a),q(b),r(a),s(a),s(c)],[]). 2 | %----------------------------------------------------------- 3 | 4 | :- table m / 0. 5 | :- table p / 1. 6 | :- table q / 1. 7 | :- table r / 1. 8 | :- table s / 1. 9 | 10 | m :- q(A), p(A). 11 | p(A) :- q(A), tnot(r(A)). 12 | q(a). 13 | q(b). 14 | r(A) :- q(A), s(A). 15 | s(a). 16 | s(c). 17 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p80_old: -------------------------------------------------------------------------------- 1 | Evaluating p80 : m 2 | m is: true (OK) 3 | p(a) is: false (OK) 4 | p(b) is: true (OK) 5 | p(c) is: false (OK) 6 | q(a) is: true (OK) 7 | q(b) is: true (OK) 8 | q(c) is: false (OK) 9 | r(a) is: true (OK) 10 | r(b) is: false (OK) 11 | r(c) is: false (OK) 12 | s(a) is: true (OK) 13 | s(b) is: false (OK) 14 | s(c) is: true (OK) 15 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p81.P: -------------------------------------------------------------------------------- 1 | query(p81,m(a),[m(a),m(b),m(c),p(a),p(b),p(c),q(a),q(b),q(c),r(a),r(b),r(c),s(a),s(b),s(c)],[m(a),m(b),p(a),p(b),q(a),q(b),r(c),s(a),s(c)],[]). 2 | %----------------------------------------------------------- 3 | 4 | :- table m / 1. 5 | :- table p / 1. 6 | :- table q / 1. 7 | :- table r / 1. 8 | :- table s / 1. 9 | 10 | m(A) :- q(A), p(A). 11 | p(A) :- q(A), tnot(r(A)). 12 | q(a). 13 | q(b). 14 | r(A) :- s(A), tnot(q(A)). 15 | s(a). 16 | s(c). 17 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p81_old: -------------------------------------------------------------------------------- 1 | Evaluating p81 : m(a) 2 | m(a) is: true (OK) 3 | m(b) is: true (OK) 4 | m(c) is: false (OK) 5 | p(a) is: true (OK) 6 | p(b) is: true (OK) 7 | p(c) is: false (OK) 8 | q(a) is: true (OK) 9 | q(b) is: true (OK) 10 | q(c) is: false (OK) 11 | r(a) is: false (OK) 12 | r(b) is: false (OK) 13 | r(c) is: true (OK) 14 | s(a) is: true (OK) 15 | s(b) is: false (OK) 16 | s(c) is: true (OK) 17 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p82_old: -------------------------------------------------------------------------------- 1 | Evaluating p82 : m(a) 2 | m(a) is: false (OK) 3 | m(b) is: true (OK) 4 | m(c) is: false (OK) 5 | n(a) is: false (OK) 6 | n(b) is: false (OK) 7 | n(c) is: false (OK) 8 | p(a) is: false (OK) 9 | p(b) is: true (OK) 10 | p(c) is: false (OK) 11 | q(a) is: true (OK) 12 | q(b) is: true (OK) 13 | q(c) is: false (OK) 14 | r(a) is: true (OK) 15 | r(b) is: false (OK) 16 | r(c) is: true (OK) 17 | s(a) is: true (OK) 18 | s(b) is: false (OK) 19 | s(c) is: true (OK) 20 | t(a) is: false (OK) 21 | t(b) is: false (OK) 22 | t(c) is: false (OK) 23 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p83.P: -------------------------------------------------------------------------------- 1 | query(p83,m,[m,a,b,c,d],[m,a,c],[]). 2 | %----------------------------------------------------------- 3 | 4 | :- table a / 0. 5 | :- table b / 0. 6 | :- table c / 0. 7 | :- table d / 0. 8 | :- table m / 0. 9 | 10 | m :- c, a. 11 | c :- b. 12 | c. 13 | b :- c, d. 14 | a :- tnot(b). 15 | d :- fail. 16 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p83_old: -------------------------------------------------------------------------------- 1 | Evaluating p83 : m 2 | a is: true (OK) 3 | b is: false (OK) 4 | c is: true (OK) 5 | d is: false (OK) 6 | m is: true (OK) 7 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p84.P: -------------------------------------------------------------------------------- 1 | query(p84,m,[m,a,b,c,d,r(a)],[a,c],[]). 2 | %----------------------------------------------------------- 3 | 4 | :- table a / 0. 5 | :- table b / 0. 6 | :- table c / 0. 7 | :- table d / 0. 8 | :- table m / 0. 9 | :- table r / 1. 10 | 11 | m :- c, tnot(a), tnot(r(_A)). 12 | c :- b. 13 | c. 14 | b :- c, d. 15 | a :- tnot(b). 16 | d :- fail. 17 | r(_A) :- fail. 18 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p84_old: -------------------------------------------------------------------------------- 1 | Evaluating p84 : m 2 | a is: true (OK) 3 | b is: false (OK) 4 | c is: true (OK) 5 | d is: false (OK) 6 | m is: false (OK) 7 | r(a) is: false (OK) 8 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p85.P: -------------------------------------------------------------------------------- 1 | query(p85,p(_684200),[a,b,c,d,p(1),p(2),p(3),q(1),q(2),q(3)],[a,b,p(1),p(2),q(1),q(2)],[]). 2 | %----------------------------------------------------------- 3 | 4 | :- table a / 0. 5 | :- table b / 0. 6 | :- table c / 0. 7 | :- table d / 0. 8 | :- table p / 1. 9 | :- table q / 1. 10 | 11 | p(A) :- a, tnot(c), q(A). 12 | p(1). 13 | a :- b. 14 | b. 15 | c :- b, d. 16 | d :- fail. 17 | q(A) :- p(A). 18 | q(2). 19 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p85_old: -------------------------------------------------------------------------------- 1 | Evaluating p85 : p(A) 2 | a is: true (OK) 3 | b is: true (OK) 4 | c is: false (OK) 5 | d is: false (OK) 6 | p(1) is: true (OK) 7 | p(2) is: true (OK) 8 | p(3) is: false (OK) 9 | q(1) is: true (OK) 10 | q(2) is: true (OK) 11 | q(3) is: false (OK) 12 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p86.P: -------------------------------------------------------------------------------- 1 | query(p86,p(_684200),[p(a),p(b1),p(b2),p(b3),p(b4),p(b5),p(b6),p(b7),p(b8),p(b9),p(b10),p(c1),p(c2),p(c3),p(c4),p(c5),p(c6),p(c7),p(c8),p(c9)],[p(b1),p(b3),p(b5),p(b7),p(b9),p(c2)],[]). 2 | %----------------------------------------------------------- 3 | 4 | :- table p / 1. 5 | 6 | p(A) :- t(A,B,C), tnot(p(B)), tnot(p(C)). 7 | p(A) :- p0(A). 8 | p0(c2). 9 | t(a,a,b1). 10 | t(b1,c1,b2). 11 | t(b2,c2,b3). 12 | t(b3,c3,b4). 13 | t(b4,c4,b5). 14 | t(b5,c5,b6). 15 | t(b6,c6,b7). 16 | t(b7,c7,b8). 17 | t(b8,c8,b9). 18 | t(b9,c9,b10). 19 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p86_old: -------------------------------------------------------------------------------- 1 | Evaluating p86 : p(A) 2 | p(a) is: false (OK) 3 | p(b1) is: true (OK) 4 | p(b10) is: false (OK) 5 | p(b2) is: false (OK) 6 | p(b3) is: true (OK) 7 | p(b4) is: false (OK) 8 | p(b5) is: true (OK) 9 | p(b6) is: false (OK) 10 | p(b7) is: true (OK) 11 | p(b8) is: false (OK) 12 | p(b9) is: true (OK) 13 | p(c1) is: false (OK) 14 | p(c2) is: true (OK) 15 | p(c3) is: false (OK) 16 | p(c4) is: false (OK) 17 | p(c5) is: false (OK) 18 | p(c6) is: false (OK) 19 | p(c7) is: false (OK) 20 | p(c8) is: false (OK) 21 | p(c9) is: false (OK) 22 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p89.P: -------------------------------------------------------------------------------- 1 | query(p89,p,[p,q,r,s],[p,r],[]). 2 | %----------------------------------------------------------- 3 | 4 | :- table p / 0. 5 | :- table q / 0. 6 | :- table r / 0. 7 | :- table s / 0. 8 | 9 | p :- tnot(q), r. 10 | q :- tnot(p), s. 11 | r. 12 | s :- fail. 13 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p89_old: -------------------------------------------------------------------------------- 1 | Evaluating p89 : p 2 | p is: true (OK) 3 | q is: false (OK) 4 | r is: true (OK) 5 | s is: false (OK) 6 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p90.P: -------------------------------------------------------------------------------- 1 | query(p90,p,[p,q,s],[s],[p,q]). 2 | %----------------------------------------------------------- 3 | 4 | :- table p / 0. 5 | :- table q / 0. 6 | :- table s / 0. 7 | 8 | p :- tnot(q). 9 | q :- tnot(p), s. 10 | s. 11 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p90_old: -------------------------------------------------------------------------------- 1 | Evaluating p90 : p 2 | p is: undefined (OK) 3 | q is: undefined (OK) 4 | s is: true (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p91.P: -------------------------------------------------------------------------------- 1 | query(p91,p,[p,q,r],[p,r],[]). 2 | %----------------------------------------------------------- 3 | 4 | :- table p / 0. 5 | :- table q / 0. 6 | :- table r / 0. 7 | 8 | p :- tnot(q), r. 9 | q :- tnot(r), p. 10 | r :- tnot(p), q. 11 | r. 12 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/p91_old: -------------------------------------------------------------------------------- 1 | Evaluating p91 : p 2 | p is: true (OK) 3 | q is: false (OK) 4 | r is: true (OK) 5 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/re-run.sh: -------------------------------------------------------------------------------- 1 | old="$(ls *_new | wc -l)" 2 | rm -f *_new 3 | ./test.sh swipl -q 2>&1 | tee test.log 4 | echo "OLD: $old failed tests" 5 | echo "NEW: $(ls *_new | wc -l) failed tests" 6 | ls *_new 7 | -------------------------------------------------------------------------------- /tests/xsb/wfs_tests/test.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | #============================================================================ 4 | echo "-------------------------------------------------------" 5 | echo "--- Running wfs_tests/test.sh ---" 6 | echo "-------------------------------------------------------" 7 | 8 | XEMU=$1 9 | options=$2 10 | 11 | file_list=p*.P 12 | 13 | for file in $file_list ; do 14 | prog=`basename $file .P` 15 | # XEMU and options must be together in quotes 16 | ./gentest.sh "$XEMU $options" wfs_test $prog "test($prog)." 17 | done 18 | --------------------------------------------------------------------------------