**Author(s):** The CLIP Group.

**Version:** 1.9#219 (2003/12/21, 18:51:46 CET)

This module implements the term checking utilities.

- Usage and interface (terms_check)
- Documentation on exports (terms_check)
- Other information (terms_check)

`terms_check`

)`terms_check`

)- PREDICATE:
**ask/2:** -
`ask(Term1, Term2)`

`Term1`

and`Term2`

unify without producing bindings for the variables of`Term1`

. I.e.,`instance(`

holds.`Term1`

,`Term2`

)

- PROPERTY:
**instance/2:** -
`instance(Term1, Term2)`

`Term1`

is an instance of`Term2`

.**Usage:**`instance(A, B)`

*The following properties hold globally:*This predicate is understood natively by CiaoPP. (`basic_props:native/1`

)

- PREDICATE:
**variant/2:** -
`variant(Term1, Term2)`

`Term1`

and`Term2`

are identical up to renaming.

- PREDICATE:
**most_general_instance/3:** -
`most_general_instance(Term1, Term2, Term)`

`Term`

satisfies`instance(`

and`Term`

,`Term1`

)`instance(`

and there is no term more general than`Term`

,`Term2`

)`Term`

(modulo variants) that satisfies it.

- PREDICATE:
**most_specific_generalization/3:** -
`most_specific_generalization(Term1, Term2, Term)`

`Term`

satisfies`instance(`

and`Term1`

,`Term`

)`instance(`

and there is no term less general than`Term2`

,`Term`

)`Term`

(modulo variants) that satisfies it.

`terms_check`

)
Currently, `ask/2`

and `instance/2`

are exactly the same. However, `ask/2`

is more general, since it is also applicable to constraint domains (although not yet implemented): for the particular case of Herbrand terms, it is just `instance/2`

(which is the only ask check currently implemented).

Go to the first, previous, next, last section, table of contents.