
occurs.pl -- Finding and counting sub-terms
This is a SWI-Prolog implementation of the corresponding Quintus library, based on the generalised arg/3 predicate of SWI-Prolog.
contains_term(+Sub, +Term) is semidet
- Succeeds if Sub is contained in Term (=, deterministically)
contains_var(+Sub, +Term) is det
- Succeeds if Sub is contained in Term (==, deterministically)
free_of_term(+Sub, +Term)
- Succeeds of Sub does not unify to any subterm of Term
free_of_var(+Sub, +Term)
- Succeeds of Sub is not equal (==) to any subterm of Term
occurrences_of_term(+SubTerm, +Term, ?Count)
- Count the number of SubTerms in Term
occurrences_of_var(+SubTerm, +Term, ?Count)
- Count the number of SubTerms in Term
sub_term(-Sub, +Term)
- Generates (on backtracking) all subterms of Term.
sub_var(-Sub, +Term)
- Generates (on backtracking) all subterms (==) of Term.