This module prevents infinite loops.
- author
- - Douglas R. Miles
- license
- - LGPL
- transitive(:PRED2X, +A, -B) is nondet
- Transitive.
- transitive_lc(:PRED2X, +A, -B) is nondet
- Transitive Not Loop Checked.
- transitive_except(+NotIn, :PRED2X, +A, -B) is nondet
- Transitive Except.
- cyclic_break(?Cyclic) is nondet
- Cyclic Break.
- lc_tcall(:GoalC) is nondet
- Call Tabled
- loop_check_early(:Call, :LoopCaught) is nondet
- Loop Check Early.
- loop_check(:Call) is nondet
- Loop Check.
- loop_check(:Call, :OnLoopCaught) is nondet
- Loop Check.
- no_loop_check(:Call) is nondet
- No Loop Check.
- no_loop_check(:Call, :LoopCaught) is nondet
- No Loop Check.
- no_loop_check_term(:Call, +Key, :LoopCaught) is nondet
- Pushes a new Loop checking frame so all previous checks are suspended
no_loop_check_term(Call,_Key,_LoopCaught)
:-!,Call.
- is_loop_checked(?Call) is nondet
- If Is A Loop Checked.
- loop_check_term(:Call, +Key, :LoopCaught) is nondet
- Loop Check Term 50% of the time
- lco_goal_expansion(:TermB, :TermA) is nondet
- Lco Call Expansion.
Undocumented predicates
The following predicates are exported, but not or incorrectly documented.
- current_loop_checker(Arg1)
- push_loop_checker
- pop_loop_checker
- is_parent_goal(Arg1)
- is_parent_goal(Arg1, Arg2)