☰

*ON THIS PAGE*# Cyclic terms handling

**Author(s):** Daniel Cabeza, Remy Haemmerle.## Usage and interface

## Documentation on exports

## Documentation on imports

This module has the following direct dependencies:

This module implements predicates related to cyclic terms. Cyclic (or infinite) terms are produced when unifying a variable with a term which contains that variable.

**Library usage:**`:- use_module(library(cyclic_terms)).`**Exports:***Predicates:*`acyclic_term/1`,`uncycle_term/2`,`recycle_term/2`,`cyclic_term/1`,`cyclic_term/1`,`cyclic_term/1`.

PREDICATEacyclic_term/1

Usage:ISO`acyclic_term(T)`

True if T is acyclic (finite).

PREDICATEuncycle_term/2

Usage:`uncycle_term(T,U)`

Given a term T, U is a finite representation of T as an acyclic term. This representation can be converted back to T using `recycle_term/2`.

PREDICATErecycle_term/2

Usage:`recycle_term(U,T)`

Given U, a finite representation of a term as an acyclic term as `uncycle_term/2` produces, T is the represented term. U is modified by the predicate, thus to maintain it untouched `copy_term/2` should be used.

PREDICATEcyclic_term/1

Usage:`cyclic_term(T)`

True if T is cyclic (infinite).

PREDICATEcyclic_term/1

Usage:`cyclic_term(T)`

True if T is cyclic (infinite).

PREDICATEcyclic_term/1

Usage:`cyclic_term(T)`

True if T is cyclic (infinite).

*System library modules:*`lists`.*Packages:*`prelude`,`initial`,`condcomp`,`assertions`,`assertions/assertions_basic`.

Generated with LPdoc using Ciao