Did you know ... Search Documentation:
Pack subsumes -- prolog/subsumes.pl
PublicShow source
 subsumes(?General, ?Specific) is semidet
subsumes/2 maintains the relation that one term subsumes another, according to standard unification of terms.

See the unit tests for examples.

 subsumes_chk(+General, +Specific) is semidet
Holds if General necessarily subsumes Specific. This predicate fails to be relational when subsumption is induced after it fails:
?- \+ subsumes_chk(G, S), G subsumes S, subsumes_chk(G, S).
G subsumes S.
 compact_lbs(+V) is det
Compact V's lower bounds. Safe, functionally invisible, and completely unnecessary for most use cases. It does forget the original LBs, so it is unsuitable if you need them, which is why it's not automatically applied.
 is_permavar(+V) is semidet
Succeeds if V's nonvar LBs antiunify to a var. This is equivalent to e.g. subsumes_chk(G, apple), subsumes_chk(G, orange).