coinductive(Functor/Arity) coinductive((Functor1/Arity1, Functor2/Arity2, ...)) coinductive([Functor1/Arity1, Functor2/Arity2, ...]) coinductive(Template) coinductive((Template1, Template2, ...)) coinductive([Template1, Template2, ...])
This is an experimental directive, used for declaring coinductive predicates. Requires a back-end Prolog compiler with minimal support for cyclic terms. The current implementation of coinduction allows the generation of only the basic cycles. Use a predicate indicator as argument when all the coinductive predicate arguments are relevant for coinductive success. Use a template when only some coinductive predicate arguments (represented by a "+
") should be considered when testing for coinductive success (represent the arguments that should be disregarded by a "-
").
coinductive(+predicate_indicator_term) coinductive(+coinductive_predicate_template_term)
:- coinductive(comember/2). :- coinductive(controller(+,+,+,-,-)).