View source with raw comments or as raw
    1:- module(scasp_predicates,
    2          [ table_predicate/1,          % ?Goal
    3            shown_predicate/1,
    4            prolog_builtin/1,           % ?Goal
    5            clp_builtin/1,              % ?Goal
    6            clp_interval/1,             % ?Goal
    7            user_predicate/1,           % ?Goal
    8            scasp_compiled/1            % ?Head
    9          ]).   10:- use_module(ops).   11:- meta_predicate
   12    user_predicate(:),
   13    shown_predicate(:),
   14    table_predicate(:).

Basic information about sCASP predicates

*/

 user_predicate(:Goal)
Success if Goal is a user predicate
   23user_predicate(_:builtin(_)) => fail.
   24user_predicate(_:not(_ is _)) => fail.
   25user_predicate(_:not(true)) => fail.
   26user_predicate(_:not(fail)) => fail.
   27user_predicate(_:not(_)) => true.
   28user_predicate(M:Goal) =>
   29    functor(Goal, Name, Arity),
   30    M:pr_user_predicate(Name/Arity), !.
 table_predicate(:Goal)
Success if Goal is defined as a tabled predicate with the directive :- table pred/n.
   37table_predicate(M:Goal) =>
   38    functor(Goal, Name, Arity),
   39    M:pr_table_predicate(Name/Arity).
   40
   41shown_predicate(M:not(Goal)) :-
   42    !,
   43    user_predicate(M:Goal).
   44shown_predicate(Goal) :-
   45    user_predicate(Goal).
 prolog_builtin(?Goal)
Success if Goal is a builtin prolog predicate (the compiler introduced its dual)
   53prolog_builtin(true).
   54prolog_builtin(fail).
   55prolog_builtin(false).
   56prolog_builtin(_ = _).
   57prolog_builtin(_ \= _).
   58prolog_builtin(_ < _).
   59prolog_builtin(_ > _).
   60prolog_builtin(_ >= _).
   61prolog_builtin(_ =< _).
 clp_builtin(?Goal)
Success if Goal is a builtin constraint predicate
   67clp_builtin(_ #= _).
   68clp_builtin(_ #<> _).
   69clp_builtin(_ #< _).
   70clp_builtin(_ #> _).
   71clp_builtin(_ #>= _).
   72clp_builtin(_ #=< _).
 clp_interval(?Goal)
Success if Goal is a builtin constraint predicate to extract interval limits
   79clp_interval(inf(_Expr, _Inf)).
   80clp_interval(sup(_Expr, _Inf)).
 scasp_compiled(?Head)
True when Head is part of the transformed representation.
   87scasp_compiled(pr_rule(_Head, _Body, _Origin)).
   88scasp_compiled(pr_query(_Query)).
   89scasp_compiled(pr_user_predicate(_Pred)).
   90scasp_compiled(pr_table_predicate(_Pred)).
   91scasp_compiled(pr_show_predicate(_Pred)).
   92scasp_compiled(pr_pred_predicate(_Atom, _Children, _Cond, _Human))