Did you know ... Search Documentation:

# Package "subsumes"

Title: Relational term subsumption. subsumes/2 is intended as a relational drop-in replacement for subsumes_term/2. Note that this conflicts with the deprecated predicate terms:subsumes/2. Not rated. Create the first rating! 0.4 efeea89afc38587b16cdd87449dec0b06e05a3e3 Geoffrey Churchill https://github.com/GeoffChurch/subsumes

## Reviews

No reviews. Create the first review!.

0.178785bce9c2facfa548294493277ac02b69400772http://github.com/GeoffChurch/subsumes/archive/0.1.zip
0.2f5567af6e724be63e03ddd593b3277fbafa143116http://github.com/GeoffChurch/subsumes/archive/0.2.zip
0.32e41eaa49814bbe221a62a5ced2f74f82a204fe53http://github.com/GeoffChurch/subsumes/archive/0.3.zip
0.4efeea89afc38587b16cdd87449dec0b06e05a3e33http://github.com/GeoffChurch/subsumes/archive/0.4.zip

# subsumes

Relational term subsumption for SWI-Prolog

subsumes/2 is intended as a relational drop-in replacement for subsumes_term/2. It can handle cyclic data, as well as cases where cyclic data would be induced.

```?- f(X, Y) subsumes G.
G = f(_A, _B),
X subsumes _A,
Y subsumes _B.

?- f(X) subsumes Y, Y subsumes X. % Example with induced cyclic data.
X = Y, Y = f(Y).

?- X subsumes Y, X = g(_).
X = g(_A),
Y = g(_B),
_A subsumes _B.```

See the unit tests in [`test/subsumes.plt`](test/subsumes.plt) for more examples.

Executing the following goal from the top-level `subsumes` directory should run all the tests:

`?- expand_file_name("test/**.plt", Tests), maplist(consult, Tests), run_tests.`

Note that this conflicts with the deprecated terms:subsumes/2.

TODO: make ISO-compatible.

(Note to self) To publish a new version:

1. update `pack.pl`
2. do GitHub release with new tag matching the pack.pl version
3. execute:
`?- make_directory(potato), pack_install(subsumes, [url('http://github.com/GeoffChurch/subsumes/archive/13.17.zip'), package_directory(potato)]).`

## Contents of pack "subsumes"

Pack contains 6 files holding a total of 9.0K bytes.