[ Type Testing | Reference Manual | Alphabetic Index ]
# acyclic_term(?Term)

Succeeds if Term is acyclic (finite)
*Term*
- Arbitrary term

## Description

Used to test whether Term is acyclic (a finite tree).
Fails if Term is cyclic (an infinite, rational tree).
### Modes and Determinism

- acyclic_term(?) is semidet

### Fail Conditions

Fails if Term is cyclic
## Examples

?- X = f(f(a)), acyclic_term(X).
X = f(f(a))
Yes (0.00s cpu)
?- X = f(X), acyclic_term(X).
No (0.00s cpu)
% could be used to simulate occurs check
unify_with_occurs_check(X, X) :- acyclic_term(X).

## See Also