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.
- count(:Goal, -Count)[private]
- Count number of times Goal succeeds.