:-module(_,[app1/3],[]).
'$applied_packages'([prelude,nonpure,condcomp,assertions,regtypes,nativeprops,rtchecks_shallow,predefres(res_steps),resdefs,resdefs/resources_decl,basicmodes,argnames,expander]).
:-add_clause_trans(expander_tr:expand_clause/4,9910).
:-prop lnum/1+regtype.
:-entry app1(_A,_B,_C):(lnum(_A),lnum(_B),var(_C)).
:-check calls app1(A,B,C):(lnum(A),lnum(B),var(C)).
:-true success app1(A,B,C):(lnum(A),lnum(B),var(C))=>(lnum(A),lnum(B),lnum(C)).
:-true pred app1(A,B,C):(lnum(A),lnum(B),term(C))=>(lnum(A),lnum(B),lnum(C)).
:-true pred app1(A,B,C):(mshare([[C]]),var(C),ground([A,B]))=>ground([A,B,C]).
:-checked calls app1_i(A,B,C):(lnum(A),lnum(B),var(C)).
:-checked success app1_i(A,B,C):(lnum(A),lnum(B),var(C))=>(lnum(A),lnum(B),lnum(C)).
:-true pred app1_i(A,B,C):(lnum(A),lnum(B),term(C))=>(lnum(A),lnum(B),lnum(C)).
:-true pred app1_i(A,B,C):(mshare([[C]]),var(C),ground([A,B]))=>ground([A,B,C]).
:-prop lnum(_A)+regtype.

app1(_1,_2,_3) :-
        'app1$pre'(_1,_2,_3),
        'app1$cls'(_1,_2,_3).
'app1$pre'(_1,_2,_3) :-
        reify_check(lnum(_1),[_1],_5),
        reify_check(lnum(_2),[_2],_6),
        reify_check(var(_3),[_3],_4),
        _7 is _4/\(_5/\_6),
        _8 is _7,
        _9 is _7,
        _10 is _8\/_9,
        warn_if_false(_10,'CP').
'app1$cls'(A,B,C) :-
        app1_i(A,B,C).
app1_i([],L,L).
app1_i([A|R],S,[A|L]) :-
        app1_i(R,S,L).
lnum([]).
lnum([X|T]) :-
        num(X),
        lnum(T).