Ciao Preprocessor (integrated Alpha version)
 | This is an alpha distribution, meant only for testing. Please do let us 
 | know at ciaopp-bugclip.dia.fi.upm.es any problems you may have.

{In /tmp/tmpCQu6uk/psk02.pl
{loaded in 3804.237 msec.}
{preprocessed for plai in 0.0 msec.}
{analyzed by plai using eterms with local-control off in 4.0 msec.}
{preprocessed for plai in 0.0 msec.}
{analyzed by plai using shfr with local-control off in 4.0 msec.}
{preprocessed for nfg in 4.0 msec.}
{analyzed by nfg in 4.0 msec.}
{analysis information stored in 0.0 msec.}
{preprocessed for ub bounds cost analysis in 0.0 msec.}
{ub bounds cost analysis performed in 64.004 msec.}
{ub bounds cost information stored in 0.0 msec.}
{preprocessed for lb bounds cost analysis in 0.0 msec.}
{lb bounds cost analysis performed in 64.004 msec.}
{lb bounds cost information stored in 0.0 msec.}
{written file /tmp/tmpCQu6uk/psk02_eterms_shfr_nfg_resources_co.pl}
:- module(_1,[p/1],[assertions,predefres(res_steps),nativeprops,basicmodes,regtypes]).

:- entry p(A).

:- true pred p(A)
         : term(A)
        => rt6(A).

:- true pred p(A)
         : mshare([[A]])
        => ground([A]).

:- true pred p(A)
         : term(A)
        => rt6(A)
         + ( not_fails, covered ).

:- true pred p(A)
         : term(A)
        => ( rt6(A), size(lb,A,1) )
         + cost(lb,steps,2).

:- true pred p(A)
         : term(A)
        => ( rt6(A), size(ub,A,3) )
         + cost(ub,steps,7).

p(X) :-
        q(X),
        r(X).
p(X) :-
        X=2.

:- true pred q(X)
         : term(X)
        => rt2(X).

:- true pred q(X)
         : mshare([[X]])
        => ground([X]).

:- true pred q(X)
         : term(X)
        => rt2(X)
         + ( not_fails, covered ).

:- true pred q(X)
         : term(X)
        => ( rt2(X), size(lb,X,1) )
         + cost(lb,steps,2).

:- true pred q(X)
         : term(X)
        => ( rt2(X), size(ub,X,3) )
         + cost(ub,steps,2).

q(X) :-
        X=1,
        !.
q(X) :-
        X=3.

:- true pred r(X)
         : rt2(X)
        => rt0(X).

:- true pred r(X)
         : ground([X])
        => ground([X]).

:- true pred r(X)
         : rt2(X)
        => rt0(X)
         + ( not_fails, covered ).

:- true pred r(X)
         : rt2(X)
        => ( rt0(X), size(lb,X,int(X)) )
         + cost(lb,steps,2).

:- true pred r(X)
         : rt2(X)
        => ( rt0(X), size(ub,X,int(X)) )
         + cost(ub,steps,2).

r(X) :-
        X=1,
        !.
r(X) :-
        X=4.

:- true pred X=_1
         : ( term(X), rt18(_1) )
        => ( rt19(X), rt19(_1) ).

:- true pred X=_1
         : ( mshare([[X]]), ground([_1]) )
        => ground([X,_1]).

:- true pred X=_1
         : ( term(X), rt18(_1) )
        => ( rt19(X), rt19(_1) )
         + ( not_fails, covered ).

:- true pred X=_1
         : ( term(X), rt18(_1) )
        => ( rt19(X), rt19(_1), size(lb,X,int(_1)), size(lb,_1,int(_1)) )
         + cost(lb,steps,1).

:- true pred X=_1
         : ( term(X), rt18(_1) )
        => ( rt19(X), rt19(_1), size(ub,X,int(_1)), size(ub,_1,int(_1)) )
         + cost(ub,steps,1).

X=X.


:- regtype rt18/1.

rt18(1).
rt18(2).
rt18(3).
rt18(4).


:- regtype rt19/1.

rt19(1).
rt19(2).
rt19(3).


:- regtype rt6/1.

rt6(1).
rt6(2).


:- regtype rt2/1.

rt2(1).
rt2(3).


:- regtype rt0/1.

rt0(1).