protocol

# termp

> Prolog term utility predicates protocol.

author:
  `Paulo Moura`
version:
  `1.31`
date:
  `2010/6/9`

compilation flags:
  `static`

(no dependencies on other files)

## Public interface

### depth/2

> True if the depth of Term is Depth. The depth of atomic terms is zero; the depth of a compound term is one plus the maximum depth of its sub-terms.

compilation flags:
  `static`
template:
  `depth(Term,Depth)`
mode – number of proofs:
  `depth(@term,?integer) – zero_or_one`

### ground/1

> True if the argument is ground.

compilation flags:
  `static`
template:
  `ground(Term)`
mode – number of proofs:
  `ground(@term) – zero_or_one`

### new/1

> Creates a new term instance (if meaningful).

compilation flags:
  `static`
template:
  `new(Term)`
mode – number of proofs:
  `new(-nonvar) – zero_or_one`

### occurs/2

> True if the variable occurs in the term.

compilation flags:
  `static`
template:
  `occurs(Variable,Term)`
mode – number of proofs:
  `occurs(@var,@term) – zero_or_one`

### subsumes/2

> The first term subsumes the second term.

compilation flags:
  `static`
template:
  `subsumes(General,Specific)`
mode – number of proofs:
  `subsumes(?term,@term) – zero_or_one`

### subterm/2

> The first term is a subterm of the second term.

compilation flags:
  `static`
template:
  `subterm(Subterm,Term)`
mode – number of proofs:
  `subterm(?term,+term) – zero_or_more`

### valid/1

> Term is valid.

compilation flags:
  `static`
template:
  `valid(Term)`
mode – number of proofs:
  `valid(@nonvar) – zero_or_one`

### check/1

> Checks if a term is valid. Throws an exception if the term is not valid.

compilation flags:
  `static`
template:
  `check(Term)`
mode – number of proofs:
  `check(@nonvar) – one`

### variant/2

> Each term is a variant of the other (i.e. they are structurally equivalent).

compilation flags:
  `static`
template:
  `variant(Term1,Term2)`
mode – number of proofs:
  `variant(@term,@term) – zero_or_one`

### variables/2

> Returns a list of all term variables (ordered as found when doing a depth-first, left-to-right traversal of Term).

compilation flags:
  `static`
template:
  `variables(Term,List)`
mode – number of proofs:
  `variables(@term,-list) – one`

### singletons/2

> Returns a list of all term singleton variables (ordered as found when doing a depth-first, left-to-right traversal of Term).

compilation flags:
  `static`
template:
  `singletons(Term,Singletons)`
mode – number of proofs:
  `singletons(@term,-list) – one`

## Protected interface

(none)

## Private predicates

(none)

## Operators

### (none)

## Remarks

### (none)