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/tmpbuw1e6/psk02.pl
{loaded in 3424.213 msec.}
{preprocessed for plai in 0.0 msec.}
{analyzed by plai using eterms with local-control off in 4.001 msec.}
{preprocessed for plai in 4.0 msec.}
{analyzed by plai using shfr with local-control off in 0.0 msec.}
{preprocessed for nfg in 4.0 msec.}
{analyzed by nfg in 4.0 msec.}
{analysis information stored in 0.0 msec.}
{NOTE (infercost): Using non-parametric cost analysis}
{preprocessed for lower bounds cost analysis in 0.0 msec.}
{lower bounds cost analysis performed in 4.0 msec.}
{lower bounds cost information stored in 0.0 msec.}
{preprocessed for upper bounds cost analysis in 0.0 msec.}
{upper bounds cost analysis performed in 4.0 msec.}
{upper bounds cost information stored in 0.0 msec.}
{written file /tmp/tmpbuw1e6/psk02_eterms_shfr_nfg_steps_ualb_co.pl}
:- module(_1,[p/1],[assertions,regtypes,nativeprops]).

:- entry p(A).

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

:- true pred p(A)
         : (native_props: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), size_ub(A,3) )
         + ( steps_lb(2), steps_ub(7) ).

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

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

:- true pred q(X)
         : (native_props: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), size_ub(X,3) )
         + ( steps_lb(2), steps_ub(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)), size_ub(X,int(X)) )
         + ( steps_lb(2), steps_ub(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
         : ( native_props: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)), size_ub(X,int(_1)), size_ub(_1,int(_1)) )
         + ( steps_lb(1), steps_ub(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).