Did you know ... Search Documentation:
occurs.pl -- Finding and counting sub-terms
PublicShow source

This is a SWI-Prolog implementation of the corresponding Quintus library, based on the generalised arg/3 predicate of SWI-Prolog.

See also
- library(terms) provides similar predicates and is probably more wide-spread than this library.
Source contains_term(+Sub, +Term) is semidet
Succeeds if Sub is contained in Term (=, deterministically)
Source contains_var(+Sub, +Term) is det
Succeeds if Sub is contained in Term (==, deterministically)
Source free_of_term(+Sub, +Term)
Succeeds of Sub does not unify to any subterm of Term
Source free_of_var(+Sub, +Term)
Succeeds of Sub is not equal (==) to any subterm of Term
Source occurrences_of_term(+SubTerm, +Term, ?Count)
Count the number of SubTerms in Term
Source occurrences_of_var(+SubTerm, +Term, ?Count)
Count the number of SubTerms in Term
Source sub_term(-Sub, +Term)
Generates (on backtracking) all subterms of Term.
Source sub_var(-Sub, +Term)
Generates (on backtracking) all subterms (==) of Term.