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.

{Reading /tmp/tmp9XsZR4/der.pl
}
{loaded in 3400.213 msec.}
{preprocessed for plai in 0.0 msec.}
{analyzed by plai using det with local-control off in 1252.079 msec.}
{written file /tmp/tmp9XsZR4/der_det_co.pl}
:- module(_1,[der/2],[assertions]).

:- entry der(A,B)
         : ground(A).

:- true pred der(A,B)
         : ( native_props:mshare([[B]]), ground([A]), gnd(A), term(B) )
        => ( ground([A,B]), rt484(A), rt109(B) )
         + ( is_det, mut_exclusive ).

:- true pred der(d(e(_1)),B)
         : ( native_props:mshare([[B]]), ground([_1]), term(B), rt319(_1) )
        => ( ground([B,_1]), rt427(B), rt442(_1) )
         + ( is_det, mut_exclusive ).

:- true pred der(d(e(_1)),B)
         : ( native_props:mshare([[B]]), ground([_1]), term(B), gnd(_1) )
        => ( ground([B,_1]), rt37(B), rt32(_1) )
         + ( is_det, mut_exclusive ).

:- true pred der(d(_1),B)
         : ( native_props:mshare([[B]]), var(B), ground([_1]), term(B), gnd(_1) )
        => ( ground([B,_1]), rt253(B), rt296(_1) )
         + ( is_det, mut_exclusive ).

:- true pred der(d(e(_1)),B)
         : ( native_props:mshare([[B]]), var(B), ground([_1]), term(B), rt154(_1) )
        => ( ground([B,_1]), rt292(B), rt293(_1) )
         + ( is_det, mut_exclusive ).

:- true pred der(d(e(_1)),B)
         : ( native_props:mshare([[B]]), var(B), ground([_1]), term(B), rt156(_1) )
        => ( ground([B,_1]), rt185(B), rt180(_1) )
         + ( is_det, mut_exclusive ).

der(d(e(t)),const(1)).
der(d(e(const(A))),const(0)).
der(d(e(X+Y)),DX+DY) :-
        der(d(e(X)),DX),
        der(d(e(Y)),DY).
der(d(e(X*Y)),X*DY+Y*DX) :-
        der(d(e(X)),DX),
        der(d(e(Y)),DY).
der(d(d(X)),DDX) :-
        der(d(X),DX),
        der(d(e(DX)),DDX).


:- regtype rt487/1.

rt487(d(A)) :-
        rt487(A).
rt487(e(A)) :-
        rt488(A).


:- regtype rt500/1.

rt500(t).
rt500(const(A)) :-
        gnd(A).
rt500(A*B) :-
        rt500(A),
        rt499(B).
rt500(A+B) :-
        rt504(A),
        rt501(B).


:- regtype rt499/1.

rt499(t).
rt499(const(A)) :-
        gnd(A).
rt499(A*B) :-
        rt500(A),
        rt499(B).
rt499(A+B) :-
        rt504(A),
        rt501(B).


:- regtype rt506/1.

rt506(t).
rt506(const(A)) :-
        gnd(A).
rt506(A*B) :-
        rt500(A),
        rt499(B).
rt506(A+B) :-
        rt504(A),
        rt501(B).


:- regtype rt505/1.

rt505(t).
rt505(const(A)) :-
        gnd(A).
rt505(A*B) :-
        rt500(A),
        rt499(B).
rt505(A+B) :-
        rt504(A),
        rt501(B).


:- regtype rt504/1.

rt504(t).
rt504(const(A)) :-
        gnd(A).
rt504(A*B) :-
        rt506(A),
        rt505(B).
rt504(A+B) :-
        rt504(A),
        rt501(B).


:- regtype rt503/1.

rt503(t).
rt503(const(A)) :-
        gnd(A).
rt503(A*B) :-
        rt500(A),
        rt499(B).
rt503(A+B) :-
        rt504(A),
        rt501(B).


:- regtype rt502/1.

rt502(t).
rt502(const(A)) :-
        gnd(A).
rt502(A*B) :-
        rt500(A),
        rt499(B).
rt502(A+B) :-
        rt504(A),
        rt501(B).


:- regtype rt501/1.

rt501(t).
rt501(const(A)) :-
        gnd(A).
rt501(A*B) :-
        rt503(A),
        rt502(B).
rt501(A+B) :-
        rt504(A),
        rt501(B).


:- regtype rt498/1.

rt498(t).
rt498(const(A)) :-
        gnd(A).
rt498(A*B) :-
        rt500(A),
        rt499(B).
rt498(A+B) :-
        rt504(A),
        rt501(B).


:- regtype rt491/1.

rt491(t).
rt491(const(A)) :-
        gnd(A).
rt491(A*B) :-
        rt491(A),
        rt490(B).
rt491(A+B) :-
        rt495(A),
        rt492(B).


:- regtype rt490/1.

rt490(t).
rt490(const(A)) :-
        gnd(A).
rt490(A*B) :-
        rt491(A),
        rt490(B).
rt490(A+B) :-
        rt495(A),
        rt492(B).


:- regtype rt497/1.

rt497(t).
rt497(const(A)) :-
        gnd(A).
rt497(A*B) :-
        rt491(A),
        rt490(B).
rt497(A+B) :-
        rt495(A),
        rt492(B).


:- regtype rt496/1.

rt496(t).
rt496(const(A)) :-
        gnd(A).
rt496(A*B) :-
        rt491(A),
        rt490(B).
rt496(A+B) :-
        rt495(A),
        rt492(B).


:- regtype rt495/1.

rt495(t).
rt495(const(A)) :-
        gnd(A).
rt495(A*B) :-
        rt497(A),
        rt496(B).
rt495(A+B) :-
        rt495(A),
        rt492(B).


:- regtype rt494/1.

rt494(t).
rt494(const(A)) :-
        gnd(A).
rt494(A*B) :-
        rt491(A),
        rt490(B).
rt494(A+B) :-
        rt495(A),
        rt492(B).


:- regtype rt493/1.

rt493(t).
rt493(const(A)) :-
        gnd(A).
rt493(A*B) :-
        rt491(A),
        rt490(B).
rt493(A+B) :-
        rt495(A),
        rt492(B).


:- regtype rt492/1.

rt492(t).
rt492(const(A)) :-
        gnd(A).
rt492(A*B) :-
        rt494(A),
        rt493(B).
rt492(A+B) :-
        rt495(A),
        rt492(B).


:- regtype rt489/1.

rt489(t).
rt489(const(A)) :-
        gnd(A).
rt489(A*B) :-
        rt491(A),
        rt490(B).
rt489(A+B) :-
        rt495(A),
        rt492(B).


:- regtype rt518/1.

rt518(t).
rt518(const(A)) :-
        gnd(A).
rt518(A*B) :-
        rt518(A),
        rt517(B).
rt518(A+B) :-
        rt522(A),
        rt519(B).


:- regtype rt517/1.

rt517(t).
rt517(const(A)) :-
        gnd(A).
rt517(A*B) :-
        rt518(A),
        rt517(B).
rt517(A+B) :-
        rt522(A),
        rt519(B).


:- regtype rt524/1.

rt524(t).
rt524(const(A)) :-
        gnd(A).
rt524(A*B) :-
        rt518(A),
        rt517(B).
rt524(A+B) :-
        rt522(A),
        rt519(B).


:- regtype rt523/1.

rt523(t).
rt523(const(A)) :-
        gnd(A).
rt523(A*B) :-
        rt518(A),
        rt517(B).
rt523(A+B) :-
        rt522(A),
        rt519(B).


:- regtype rt522/1.

rt522(t).
rt522(const(A)) :-
        gnd(A).
rt522(A*B) :-
        rt524(A),
        rt523(B).
rt522(A+B) :-
        rt522(A),
        rt519(B).


:- regtype rt521/1.

rt521(t).
rt521(const(A)) :-
        gnd(A).
rt521(A*B) :-
        rt518(A),
        rt517(B).
rt521(A+B) :-
        rt522(A),
        rt519(B).


:- regtype rt520/1.

rt520(t).
rt520(const(A)) :-
        gnd(A).
rt520(A*B) :-
        rt518(A),
        rt517(B).
rt520(A+B) :-
        rt522(A),
        rt519(B).


:- regtype rt519/1.

rt519(t).
rt519(const(A)) :-
        gnd(A).
rt519(A*B) :-
        rt521(A),
        rt520(B).
rt519(A+B) :-
        rt522(A),
        rt519(B).


:- regtype rt516/1.

rt516(t).
rt516(const(A)) :-
        gnd(A).
rt516(A*B) :-
        rt518(A),
        rt517(B).
rt516(A+B) :-
        rt522(A),
        rt519(B).


:- regtype rt509/1.

rt509(t).
rt509(const(A)) :-
        gnd(A).
rt509(A*B) :-
        rt509(A),
        rt508(B).
rt509(A+B) :-
        rt513(A),
        rt510(B).


:- regtype rt508/1.

rt508(t).
rt508(const(A)) :-
        gnd(A).
rt508(A*B) :-
        rt509(A),
        rt508(B).
rt508(A+B) :-
        rt513(A),
        rt510(B).


:- regtype rt515/1.

rt515(t).
rt515(const(A)) :-
        gnd(A).
rt515(A*B) :-
        rt509(A),
        rt508(B).
rt515(A+B) :-
        rt513(A),
        rt510(B).


:- regtype rt514/1.

rt514(t).
rt514(const(A)) :-
        gnd(A).
rt514(A*B) :-
        rt509(A),
        rt508(B).
rt514(A+B) :-
        rt513(A),
        rt510(B).


:- regtype rt513/1.

rt513(t).
rt513(const(A)) :-
        gnd(A).
rt513(A*B) :-
        rt515(A),
        rt514(B).
rt513(A+B) :-
        rt513(A),
        rt510(B).


:- regtype rt512/1.

rt512(t).
rt512(const(A)) :-
        gnd(A).
rt512(A*B) :-
        rt509(A),
        rt508(B).
rt512(A+B) :-
        rt513(A),
        rt510(B).


:- regtype rt511/1.

rt511(t).
rt511(const(A)) :-
        gnd(A).
rt511(A*B) :-
        rt509(A),
        rt508(B).
rt511(A+B) :-
        rt513(A),
        rt510(B).


:- regtype rt510/1.

rt510(t).
rt510(const(A)) :-
        gnd(A).
rt510(A*B) :-
        rt512(A),
        rt511(B).
rt510(A+B) :-
        rt513(A),
        rt510(B).


:- regtype rt507/1.

rt507(t).
rt507(const(A)) :-
        gnd(A).
rt507(A*B) :-
        rt509(A),
        rt508(B).
rt507(A+B) :-
        rt513(A),
        rt510(B).


:- regtype rt488/1.

rt488(t).
rt488(const(A)) :-
        gnd(A).
rt488(A*B) :-
        rt498(A),
        rt489(B).
rt488(A+B) :-
        rt516(A),
        rt507(B).


:- regtype rt486/1.

rt486(d(A)) :-
        rt487(A).
rt486(e(A)) :-
        rt488(A).


:- regtype rt537/1.

rt537(t).
rt537(const(A)) :-
        gnd(A).
rt537(A*B) :-
        rt96(A),
        rt95(B).
rt537(A+B) :-
        rt98(A),
        rt97(B).


:- regtype rt536/1.

rt536(t).
rt536(const(A)) :-
        gnd(A).
rt536(A*B) :-
        rt96(A),
        rt95(B).
rt536(A+B) :-
        rt98(A),
        rt97(B).


:- regtype rt543/1.

rt543(t).
rt543(const(A)) :-
        gnd(A).
rt543(A*B) :-
        rt96(A),
        rt95(B).
rt543(A+B) :-
        rt98(A),
        rt97(B).


:- regtype rt542/1.

rt542(t).
rt542(const(A)) :-
        gnd(A).
rt542(A*B) :-
        rt96(A),
        rt95(B).
rt542(A+B) :-
        rt98(A),
        rt97(B).


:- regtype rt541/1.

rt541(t).
rt541(const(A)) :-
        gnd(A).
rt541(A*B) :-
        rt543(A),
        rt542(B).
rt541(A+B) :-
        rt98(A),
        rt97(B).


:- regtype rt540/1.

rt540(t).
rt540(const(A)) :-
        gnd(A).
rt540(A*B) :-
        rt96(A),
        rt95(B).
rt540(A+B) :-
        rt98(A),
        rt97(B).


:- regtype rt539/1.

rt539(t).
rt539(const(A)) :-
        gnd(A).
rt539(A*B) :-
        rt96(A),
        rt95(B).
rt539(A+B) :-
        rt98(A),
        rt97(B).


:- regtype rt98/1.

rt98(t).
rt98(const(A)) :-
        gnd(A).
rt98(A*B) :-
        rt96(A),
        rt95(B).
rt98(A+B) :-
        rt98(A),
        rt97(B).


:- regtype rt96/1.

rt96(t).
rt96(const(A)) :-
        gnd(A).
rt96(A*B) :-
        rt96(A),
        rt95(B).
rt96(A+B) :-
        rt98(A),
        rt97(B).


:- regtype rt95/1.

rt95(t).
rt95(const(A)) :-
        gnd(A).
rt95(A*B) :-
        rt96(A),
        rt95(B).
rt95(A+B) :-
        rt98(A),
        rt97(B).


:- regtype rt97/1.

rt97(t).
rt97(const(A)) :-
        gnd(A).
rt97(A*B) :-
        rt96(A),
        rt95(B).
rt97(A+B) :-
        rt98(A),
        rt97(B).


:- regtype rt538/1.

rt538(t).
rt538(const(A)) :-
        gnd(A).
rt538(A*B) :-
        rt540(A),
        rt539(B).
rt538(A+B) :-
        rt98(A),
        rt97(B).


:- regtype rt535/1.

rt535(t).
rt535(const(A)) :-
        gnd(A).
rt535(A*B) :-
        rt537(A),
        rt536(B).
rt535(A+B) :-
        rt541(A),
        rt538(B).


:- regtype rt528/1.

rt528(t).
rt528(const(A)) :-
        gnd(A).
rt528(A*B) :-
        rt91(A),
        rt90(B).
rt528(A+B) :-
        rt93(A),
        rt92(B).


:- regtype rt527/1.

rt527(t).
rt527(const(A)) :-
        gnd(A).
rt527(A*B) :-
        rt91(A),
        rt90(B).
rt527(A+B) :-
        rt93(A),
        rt92(B).


:- regtype rt534/1.

rt534(t).
rt534(const(A)) :-
        gnd(A).
rt534(A*B) :-
        rt91(A),
        rt90(B).
rt534(A+B) :-
        rt93(A),
        rt92(B).


:- regtype rt533/1.

rt533(t).
rt533(const(A)) :-
        gnd(A).
rt533(A*B) :-
        rt91(A),
        rt90(B).
rt533(A+B) :-
        rt93(A),
        rt92(B).


:- regtype rt532/1.

rt532(t).
rt532(const(A)) :-
        gnd(A).
rt532(A*B) :-
        rt534(A),
        rt533(B).
rt532(A+B) :-
        rt93(A),
        rt92(B).


:- regtype rt531/1.

rt531(t).
rt531(const(A)) :-
        gnd(A).
rt531(A*B) :-
        rt91(A),
        rt90(B).
rt531(A+B) :-
        rt93(A),
        rt92(B).


:- regtype rt530/1.

rt530(t).
rt530(const(A)) :-
        gnd(A).
rt530(A*B) :-
        rt91(A),
        rt90(B).
rt530(A+B) :-
        rt93(A),
        rt92(B).


:- regtype rt93/1.

rt93(t).
rt93(const(A)) :-
        gnd(A).
rt93(A*B) :-
        rt91(A),
        rt90(B).
rt93(A+B) :-
        rt93(A),
        rt92(B).


:- regtype rt91/1.

rt91(t).
rt91(const(A)) :-
        gnd(A).
rt91(A*B) :-
        rt91(A),
        rt90(B).
rt91(A+B) :-
        rt93(A),
        rt92(B).


:- regtype rt90/1.

rt90(t).
rt90(const(A)) :-
        gnd(A).
rt90(A*B) :-
        rt91(A),
        rt90(B).
rt90(A+B) :-
        rt93(A),
        rt92(B).


:- regtype rt92/1.

rt92(t).
rt92(const(A)) :-
        gnd(A).
rt92(A*B) :-
        rt91(A),
        rt90(B).
rt92(A+B) :-
        rt93(A),
        rt92(B).


:- regtype rt529/1.

rt529(t).
rt529(const(A)) :-
        gnd(A).
rt529(A*B) :-
        rt531(A),
        rt530(B).
rt529(A+B) :-
        rt93(A),
        rt92(B).


:- regtype rt526/1.

rt526(t).
rt526(const(A)) :-
        gnd(A).
rt526(A*B) :-
        rt528(A),
        rt527(B).
rt526(A+B) :-
        rt532(A),
        rt529(B).


:- regtype rt555/1.

rt555(t).
rt555(const(A)) :-
        gnd(A).
rt555(A*B) :-
        rt60(A),
        rt59(B).
rt555(A+B) :-
        rt62(A),
        rt61(B).


:- regtype rt554/1.

rt554(t).
rt554(const(A)) :-
        gnd(A).
rt554(A*B) :-
        rt60(A),
        rt59(B).
rt554(A+B) :-
        rt62(A),
        rt61(B).


:- regtype rt561/1.

rt561(t).
rt561(const(A)) :-
        gnd(A).
rt561(A*B) :-
        rt60(A),
        rt59(B).
rt561(A+B) :-
        rt62(A),
        rt61(B).


:- regtype rt560/1.

rt560(t).
rt560(const(A)) :-
        gnd(A).
rt560(A*B) :-
        rt60(A),
        rt59(B).
rt560(A+B) :-
        rt62(A),
        rt61(B).


:- regtype rt559/1.

rt559(t).
rt559(const(A)) :-
        gnd(A).
rt559(A*B) :-
        rt561(A),
        rt560(B).
rt559(A+B) :-
        rt62(A),
        rt61(B).


:- regtype rt558/1.

rt558(t).
rt558(const(A)) :-
        gnd(A).
rt558(A*B) :-
        rt60(A),
        rt59(B).
rt558(A+B) :-
        rt62(A),
        rt61(B).


:- regtype rt557/1.

rt557(t).
rt557(const(A)) :-
        gnd(A).
rt557(A*B) :-
        rt60(A),
        rt59(B).
rt557(A+B) :-
        rt62(A),
        rt61(B).


:- regtype rt62/1.

rt62(t).
rt62(const(A)) :-
        gnd(A).
rt62(A*B) :-
        rt60(A),
        rt59(B).
rt62(A+B) :-
        rt62(A),
        rt61(B).


:- regtype rt60/1.

rt60(t).
rt60(const(A)) :-
        gnd(A).
rt60(A*B) :-
        rt60(A),
        rt59(B).
rt60(A+B) :-
        rt62(A),
        rt61(B).


:- regtype rt59/1.

rt59(t).
rt59(const(A)) :-
        gnd(A).
rt59(A*B) :-
        rt60(A),
        rt59(B).
rt59(A+B) :-
        rt62(A),
        rt61(B).


:- regtype rt61/1.

rt61(t).
rt61(const(A)) :-
        gnd(A).
rt61(A*B) :-
        rt60(A),
        rt59(B).
rt61(A+B) :-
        rt62(A),
        rt61(B).


:- regtype rt556/1.

rt556(t).
rt556(const(A)) :-
        gnd(A).
rt556(A*B) :-
        rt558(A),
        rt557(B).
rt556(A+B) :-
        rt62(A),
        rt61(B).


:- regtype rt553/1.

rt553(t).
rt553(const(A)) :-
        gnd(A).
rt553(A*B) :-
        rt555(A),
        rt554(B).
rt553(A+B) :-
        rt559(A),
        rt556(B).


:- regtype rt546/1.

rt546(t).
rt546(const(A)) :-
        gnd(A).
rt546(A*B) :-
        rt55(A),
        rt54(B).
rt546(A+B) :-
        rt57(A),
        rt56(B).


:- regtype rt545/1.

rt545(t).
rt545(const(A)) :-
        gnd(A).
rt545(A*B) :-
        rt55(A),
        rt54(B).
rt545(A+B) :-
        rt57(A),
        rt56(B).


:- regtype rt552/1.

rt552(t).
rt552(const(A)) :-
        gnd(A).
rt552(A*B) :-
        rt55(A),
        rt54(B).
rt552(A+B) :-
        rt57(A),
        rt56(B).


:- regtype rt551/1.

rt551(t).
rt551(const(A)) :-
        gnd(A).
rt551(A*B) :-
        rt55(A),
        rt54(B).
rt551(A+B) :-
        rt57(A),
        rt56(B).


:- regtype rt550/1.

rt550(t).
rt550(const(A)) :-
        gnd(A).
rt550(A*B) :-
        rt552(A),
        rt551(B).
rt550(A+B) :-
        rt57(A),
        rt56(B).


:- regtype rt549/1.

rt549(t).
rt549(const(A)) :-
        gnd(A).
rt549(A*B) :-
        rt55(A),
        rt54(B).
rt549(A+B) :-
        rt57(A),
        rt56(B).


:- regtype rt548/1.

rt548(t).
rt548(const(A)) :-
        gnd(A).
rt548(A*B) :-
        rt55(A),
        rt54(B).
rt548(A+B) :-
        rt57(A),
        rt56(B).


:- regtype rt57/1.

rt57(t).
rt57(const(A)) :-
        gnd(A).
rt57(A*B) :-
        rt55(A),
        rt54(B).
rt57(A+B) :-
        rt57(A),
        rt56(B).


:- regtype rt55/1.

rt55(t).
rt55(const(A)) :-
        gnd(A).
rt55(A*B) :-
        rt55(A),
        rt54(B).
rt55(A+B) :-
        rt57(A),
        rt56(B).


:- regtype rt54/1.

rt54(t).
rt54(const(A)) :-
        gnd(A).
rt54(A*B) :-
        rt55(A),
        rt54(B).
rt54(A+B) :-
        rt57(A),
        rt56(B).


:- regtype rt56/1.

rt56(t).
rt56(const(A)) :-
        gnd(A).
rt56(A*B) :-
        rt55(A),
        rt54(B).
rt56(A+B) :-
        rt57(A),
        rt56(B).


:- regtype rt547/1.

rt547(t).
rt547(const(A)) :-
        gnd(A).
rt547(A*B) :-
        rt549(A),
        rt548(B).
rt547(A+B) :-
        rt57(A),
        rt56(B).


:- regtype rt544/1.

rt544(t).
rt544(const(A)) :-
        gnd(A).
rt544(A*B) :-
        rt546(A),
        rt545(B).
rt544(A+B) :-
        rt550(A),
        rt547(B).


:- regtype rt525/1.

rt525(t).
rt525(const(A)) :-
        gnd(A).
rt525(A*B) :-
        rt535(A),
        rt526(B).
rt525(A+B) :-
        rt553(A),
        rt544(B).


:- regtype rt485/1.

rt485(d(A)) :-
        rt486(A).
rt485(e(A)) :-
        rt525(A).


:- regtype rt484/1.

rt484(d(A)) :-
        rt485(A).


:- regtype rt8/1.

rt8(0).
rt8(1).


:- regtype rt139/1.

rt139(t).
rt139(const(A)) :-
        gnd(A).
rt139(A*B) :-
        rt34(A),
        rt33(B).
rt139(A+B) :-
        rt36(A),
        rt35(B).


:- regtype rt138/1.

rt138(t).
rt138(const(A)) :-
        gnd(A).
rt138(A*B) :-
        rt34(A),
        rt33(B).
rt138(A+B) :-
        rt36(A),
        rt35(B).


:- regtype rt141/1.

rt141(t).
rt141(const(A)) :-
        gnd(A).
rt141(A*B) :-
        rt34(A),
        rt33(B).
rt141(A+B) :-
        rt36(A),
        rt35(B).


:- regtype rt140/1.

rt140(t).
rt140(const(A)) :-
        gnd(A).
rt140(A*B) :-
        rt34(A),
        rt33(B).
rt140(A+B) :-
        rt36(A),
        rt35(B).


:- regtype rt137/1.

rt137(t).
rt137(const(A)) :-
        gnd(A).
rt137(A*B) :-
        rt139(A),
        rt138(B).
rt137(A+B) :-
        rt141(A),
        rt140(B).


:- regtype rt135/1.

rt135(const(A)) :-
        rt15(A).
rt135(A*B) :-
        rt137(A),
        rt130(B).
rt135(A+B) :-
        rt145(A),
        rt142(B).


:- regtype rt134/1.

rt134(const(A)) :-
        rt15(A).
rt134(A*B) :-
        rt137(A),
        rt135(B).
rt134(A+B) :-
        rt145(A),
        rt142(B).


:- regtype rt132/1.

rt132(const(A)) :-
        rt15(A).
rt132(A*B) :-
        rt137(A),
        rt130(B).
rt132(A+B) :-
        rt145(A),
        rt142(B).


:- regtype rt131/1.

rt131(const(A)) :-
        rt15(A).
rt131(A*B) :-
        rt137(A),
        rt132(B).
rt131(A+B) :-
        rt145(A),
        rt142(B).


:- regtype rt130/1.

rt130(const(A)) :-
        rt15(A).
rt130(A+B) :-
        rt134(A),
        rt131(B).


:- regtype rt146/1.

rt146(const(A)) :-
        rt15(A).
rt146(A*B) :-
        rt137(A),
        rt130(B).
rt146(A+B) :-
        rt145(A),
        rt142(B).


:- regtype rt145/1.

rt145(const(A)) :-
        rt15(A).
rt145(A*B) :-
        rt137(A),
        rt146(B).
rt145(A+B) :-
        rt145(A),
        rt142(B).


:- regtype rt143/1.

rt143(const(A)) :-
        rt15(A).
rt143(A*B) :-
        rt137(A),
        rt130(B).
rt143(A+B) :-
        rt145(A),
        rt142(B).


:- regtype rt142/1.

rt142(const(A)) :-
        rt15(A).
rt142(A*B) :-
        rt137(A),
        rt143(B).
rt142(A+B) :-
        rt145(A),
        rt142(B).


:- regtype rt129/1.

rt129(const(A)) :-
        rt15(A).
rt129(A*B) :-
        rt137(A),
        rt130(B).
rt129(A+B) :-
        rt145(A),
        rt142(B).


:- regtype rt120/1.

rt120(t).
rt120(const(A)) :-
        gnd(A).
rt120(A*B) :-
        rt34(A),
        rt33(B).
rt120(A+B) :-
        rt36(A),
        rt35(B).


:- regtype rt119/1.

rt119(t).
rt119(const(A)) :-
        gnd(A).
rt119(A*B) :-
        rt34(A),
        rt33(B).
rt119(A+B) :-
        rt36(A),
        rt35(B).


:- regtype rt122/1.

rt122(t).
rt122(const(A)) :-
        gnd(A).
rt122(A*B) :-
        rt34(A),
        rt33(B).
rt122(A+B) :-
        rt36(A),
        rt35(B).


:- regtype rt121/1.

rt121(t).
rt121(const(A)) :-
        gnd(A).
rt121(A*B) :-
        rt34(A),
        rt33(B).
rt121(A+B) :-
        rt36(A),
        rt35(B).


:- regtype rt118/1.

rt118(t).
rt118(const(A)) :-
        gnd(A).
rt118(A*B) :-
        rt120(A),
        rt119(B).
rt118(A+B) :-
        rt122(A),
        rt121(B).


:- regtype rt116/1.

rt116(const(A)) :-
        rt15(A).
rt116(A*B) :-
        rt118(A),
        rt111(B).
rt116(A+B) :-
        rt126(A),
        rt123(B).


:- regtype rt115/1.

rt115(const(A)) :-
        rt15(A).
rt115(A*B) :-
        rt118(A),
        rt116(B).
rt115(A+B) :-
        rt126(A),
        rt123(B).


:- regtype rt113/1.

rt113(const(A)) :-
        rt15(A).
rt113(A*B) :-
        rt118(A),
        rt111(B).
rt113(A+B) :-
        rt126(A),
        rt123(B).


:- regtype rt112/1.

rt112(const(A)) :-
        rt15(A).
rt112(A*B) :-
        rt118(A),
        rt113(B).
rt112(A+B) :-
        rt126(A),
        rt123(B).


:- regtype rt111/1.

rt111(const(A)) :-
        rt15(A).
rt111(A+B) :-
        rt115(A),
        rt112(B).


:- regtype rt127/1.

rt127(const(A)) :-
        rt15(A).
rt127(A*B) :-
        rt118(A),
        rt111(B).
rt127(A+B) :-
        rt126(A),
        rt123(B).


:- regtype rt126/1.

rt126(const(A)) :-
        rt15(A).
rt126(A*B) :-
        rt118(A),
        rt127(B).
rt126(A+B) :-
        rt126(A),
        rt123(B).


:- regtype rt124/1.

rt124(const(A)) :-
        rt15(A).
rt124(A*B) :-
        rt118(A),
        rt111(B).
rt124(A+B) :-
        rt126(A),
        rt123(B).


:- regtype rt123/1.

rt123(const(A)) :-
        rt15(A).
rt123(A*B) :-
        rt118(A),
        rt124(B).
rt123(A+B) :-
        rt126(A),
        rt123(B).


:- regtype rt110/1.

rt110(const(A)) :-
        rt15(A).
rt110(A*B) :-
        rt118(A),
        rt111(B).
rt110(A+B) :-
        rt126(A),
        rt123(B).


:- regtype rt109/1.

rt109(const(A)) :-
        rt8(A).
rt109(A+B) :-
        rt129(A),
        rt110(B).


:- regtype rt383/1.

rt383(t).
rt383(const(A)) :-
        gnd(A).
rt383(A*B) :-
        rt383(A),
        rt382(B).
rt383(A+B) :-
        rt385(A),
        rt384(B).


:- regtype rt382/1.

rt382(t).
rt382(const(A)) :-
        gnd(A).
rt382(A*B) :-
        rt383(A),
        rt382(B).
rt382(A+B) :-
        rt385(A),
        rt384(B).


:- regtype rt385/1.

rt385(t).
rt385(const(A)) :-
        gnd(A).
rt385(A*B) :-
        rt383(A),
        rt382(B).
rt385(A+B) :-
        rt385(A),
        rt384(B).


:- regtype rt384/1.

rt384(t).
rt384(const(A)) :-
        gnd(A).
rt384(A*B) :-
        rt383(A),
        rt382(B).
rt384(A+B) :-
        rt385(A),
        rt384(B).


:- regtype rt381/1.

rt381(t).
rt381(const(A)) :-
        gnd(A).
rt381(A*B) :-
        rt383(A),
        rt382(B).
rt381(A+B) :-
        rt385(A),
        rt384(B).


:- regtype rt361/1.

rt361(const(A)) :-
        rt163(A).
rt361(A*B) :-
        rt381(A),
        rt361(B).
rt361(A+B) :-
        rt393(A),
        rt386(B).


:- regtype rt397/1.

rt397(t).
rt397(const(A)) :-
        gnd(A).
rt397(A*B) :-
        rt397(A),
        rt396(B).
rt397(A+B) :-
        rt399(A),
        rt398(B).


:- regtype rt396/1.

rt396(t).
rt396(const(A)) :-
        gnd(A).
rt396(A*B) :-
        rt397(A),
        rt396(B).
rt396(A+B) :-
        rt399(A),
        rt398(B).


:- regtype rt399/1.

rt399(t).
rt399(const(A)) :-
        gnd(A).
rt399(A*B) :-
        rt397(A),
        rt396(B).
rt399(A+B) :-
        rt399(A),
        rt398(B).


:- regtype rt398/1.

rt398(t).
rt398(const(A)) :-
        gnd(A).
rt398(A*B) :-
        rt397(A),
        rt396(B).
rt398(A+B) :-
        rt399(A),
        rt398(B).


:- regtype rt395/1.

rt395(t).
rt395(const(A)) :-
        gnd(A).
rt395(A*B) :-
        rt397(A),
        rt396(B).
rt395(A+B) :-
        rt399(A),
        rt398(B).


:- regtype rt394/1.

rt394(const(A)) :-
        rt163(A).
rt394(A*B) :-
        rt381(A),
        rt361(B).
rt394(A+B) :-
        rt393(A),
        rt386(B).


:- regtype rt393/1.

rt393(const(A)) :-
        rt163(A).
rt393(A*B) :-
        rt395(A),
        rt394(B).
rt393(A+B) :-
        rt393(A),
        rt386(B).


:- regtype rt390/1.

rt390(t).
rt390(const(A)) :-
        gnd(A).
rt390(A*B) :-
        rt390(A),
        rt389(B).
rt390(A+B) :-
        rt392(A),
        rt391(B).


:- regtype rt389/1.

rt389(t).
rt389(const(A)) :-
        gnd(A).
rt389(A*B) :-
        rt390(A),
        rt389(B).
rt389(A+B) :-
        rt392(A),
        rt391(B).


:- regtype rt392/1.

rt392(t).
rt392(const(A)) :-
        gnd(A).
rt392(A*B) :-
        rt390(A),
        rt389(B).
rt392(A+B) :-
        rt392(A),
        rt391(B).


:- regtype rt391/1.

rt391(t).
rt391(const(A)) :-
        gnd(A).
rt391(A*B) :-
        rt390(A),
        rt389(B).
rt391(A+B) :-
        rt392(A),
        rt391(B).


:- regtype rt388/1.

rt388(t).
rt388(const(A)) :-
        gnd(A).
rt388(A*B) :-
        rt390(A),
        rt389(B).
rt388(A+B) :-
        rt392(A),
        rt391(B).


:- regtype rt387/1.

rt387(const(A)) :-
        rt163(A).
rt387(A*B) :-
        rt381(A),
        rt361(B).
rt387(A+B) :-
        rt393(A),
        rt386(B).


:- regtype rt386/1.

rt386(const(A)) :-
        rt163(A).
rt386(A*B) :-
        rt388(A),
        rt387(B).
rt386(A+B) :-
        rt393(A),
        rt386(B).


:- regtype rt360/1.

rt360(const(A)) :-
        rt163(A).
rt360(A*B) :-
        rt381(A),
        rt361(B).
rt360(A+B) :-
        rt393(A),
        rt386(B).


:- regtype rt343/1.

rt343(t).
rt343(const(A)) :-
        gnd(A).
rt343(A*B) :-
        rt343(A),
        rt342(B).
rt343(A+B) :-
        rt345(A),
        rt344(B).


:- regtype rt342/1.

rt342(t).
rt342(const(A)) :-
        gnd(A).
rt342(A*B) :-
        rt343(A),
        rt342(B).
rt342(A+B) :-
        rt345(A),
        rt344(B).


:- regtype rt345/1.

rt345(t).
rt345(const(A)) :-
        gnd(A).
rt345(A*B) :-
        rt343(A),
        rt342(B).
rt345(A+B) :-
        rt345(A),
        rt344(B).


:- regtype rt344/1.

rt344(t).
rt344(const(A)) :-
        gnd(A).
rt344(A*B) :-
        rt343(A),
        rt342(B).
rt344(A+B) :-
        rt345(A),
        rt344(B).


:- regtype rt341/1.

rt341(t).
rt341(const(A)) :-
        gnd(A).
rt341(A*B) :-
        rt343(A),
        rt342(B).
rt341(A+B) :-
        rt345(A),
        rt344(B).


:- regtype rt321/1.

rt321(const(A)) :-
        rt163(A).
rt321(A*B) :-
        rt341(A),
        rt321(B).
rt321(A+B) :-
        rt353(A),
        rt346(B).


:- regtype rt357/1.

rt357(t).
rt357(const(A)) :-
        gnd(A).
rt357(A*B) :-
        rt357(A),
        rt356(B).
rt357(A+B) :-
        rt359(A),
        rt358(B).


:- regtype rt356/1.

rt356(t).
rt356(const(A)) :-
        gnd(A).
rt356(A*B) :-
        rt357(A),
        rt356(B).
rt356(A+B) :-
        rt359(A),
        rt358(B).


:- regtype rt359/1.

rt359(t).
rt359(const(A)) :-
        gnd(A).
rt359(A*B) :-
        rt357(A),
        rt356(B).
rt359(A+B) :-
        rt359(A),
        rt358(B).


:- regtype rt358/1.

rt358(t).
rt358(const(A)) :-
        gnd(A).
rt358(A*B) :-
        rt357(A),
        rt356(B).
rt358(A+B) :-
        rt359(A),
        rt358(B).


:- regtype rt355/1.

rt355(t).
rt355(const(A)) :-
        gnd(A).
rt355(A*B) :-
        rt357(A),
        rt356(B).
rt355(A+B) :-
        rt359(A),
        rt358(B).


:- regtype rt354/1.

rt354(const(A)) :-
        rt163(A).
rt354(A*B) :-
        rt341(A),
        rt321(B).
rt354(A+B) :-
        rt353(A),
        rt346(B).


:- regtype rt353/1.

rt353(const(A)) :-
        rt163(A).
rt353(A*B) :-
        rt355(A),
        rt354(B).
rt353(A+B) :-
        rt353(A),
        rt346(B).


:- regtype rt350/1.

rt350(t).
rt350(const(A)) :-
        gnd(A).
rt350(A*B) :-
        rt350(A),
        rt349(B).
rt350(A+B) :-
        rt352(A),
        rt351(B).


:- regtype rt349/1.

rt349(t).
rt349(const(A)) :-
        gnd(A).
rt349(A*B) :-
        rt350(A),
        rt349(B).
rt349(A+B) :-
        rt352(A),
        rt351(B).


:- regtype rt352/1.

rt352(t).
rt352(const(A)) :-
        gnd(A).
rt352(A*B) :-
        rt350(A),
        rt349(B).
rt352(A+B) :-
        rt352(A),
        rt351(B).


:- regtype rt351/1.

rt351(t).
rt351(const(A)) :-
        gnd(A).
rt351(A*B) :-
        rt350(A),
        rt349(B).
rt351(A+B) :-
        rt352(A),
        rt351(B).


:- regtype rt348/1.

rt348(t).
rt348(const(A)) :-
        gnd(A).
rt348(A*B) :-
        rt350(A),
        rt349(B).
rt348(A+B) :-
        rt352(A),
        rt351(B).


:- regtype rt347/1.

rt347(const(A)) :-
        rt163(A).
rt347(A*B) :-
        rt341(A),
        rt321(B).
rt347(A+B) :-
        rt353(A),
        rt346(B).


:- regtype rt346/1.

rt346(const(A)) :-
        rt163(A).
rt346(A*B) :-
        rt348(A),
        rt347(B).
rt346(A+B) :-
        rt353(A),
        rt346(B).


:- regtype rt320/1.

rt320(const(A)) :-
        rt163(A).
rt320(A*B) :-
        rt341(A),
        rt321(B).
rt320(A+B) :-
        rt353(A),
        rt346(B).


:- regtype rt319/1.

rt319(const(A)) :-
        rt155(A).
rt319(A+B) :-
        rt360(A),
        rt320(B).


:- regtype rt441/1.

rt441(t).
rt441(const(A)) :-
        gnd(A).
rt441(A+B) :-
        rt439(A),
        rt436(B).


:- regtype rt440/1.

rt440(const(A)) :-
        rt15(A).
rt440(A+B) :-
        rt439(A),
        rt436(B).


:- regtype rt439/1.

rt439(const(A)) :-
        rt15(A).
rt439(A*B) :-
        rt441(A),
        rt440(B).
rt439(A+B) :-
        rt439(A),
        rt436(B).


:- regtype rt438/1.

rt438(t).
rt438(const(A)) :-
        gnd(A).
rt438(A+B) :-
        rt439(A),
        rt436(B).


:- regtype rt437/1.

rt437(const(A)) :-
        rt15(A).
rt437(A+B) :-
        rt439(A),
        rt436(B).


:- regtype rt436/1.

rt436(const(A)) :-
        rt15(A).
rt436(A*B) :-
        rt438(A),
        rt437(B).
rt436(A+B) :-
        rt439(A),
        rt436(B).


:- regtype rt435/1.

rt435(const(A)) :-
        rt15(A).
rt435(A+B) :-
        rt439(A),
        rt436(B).


:- regtype rt434/1.

rt434(t).
rt434(const(A)) :-
        gnd(A).
rt434(A+B) :-
        rt432(A),
        rt429(B).


:- regtype rt433/1.

rt433(const(A)) :-
        rt15(A).
rt433(A+B) :-
        rt432(A),
        rt429(B).


:- regtype rt432/1.

rt432(const(A)) :-
        rt15(A).
rt432(A*B) :-
        rt434(A),
        rt433(B).
rt432(A+B) :-
        rt432(A),
        rt429(B).


:- regtype rt431/1.

rt431(t).
rt431(const(A)) :-
        gnd(A).
rt431(A+B) :-
        rt432(A),
        rt429(B).


:- regtype rt430/1.

rt430(const(A)) :-
        rt15(A).
rt430(A+B) :-
        rt432(A),
        rt429(B).


:- regtype rt429/1.

rt429(const(A)) :-
        rt15(A).
rt429(A*B) :-
        rt431(A),
        rt430(B).
rt429(A+B) :-
        rt432(A),
        rt429(B).


:- regtype rt428/1.

rt428(const(A)) :-
        rt15(A).
rt428(A+B) :-
        rt432(A),
        rt429(B).


:- regtype rt427/1.

rt427(const(0)).
rt427(A+B) :-
        rt435(A),
        rt428(B).


:- regtype rt470/1.

rt470(t).
rt470(const(A)) :-
        gnd(A).
rt470(A*B) :-
        rt469(A),
        rt470(B).
rt470(A+B) :-
        rt478(A),
        rt475(B).


:- regtype rt469/1.

rt469(t).
rt469(const(A)) :-
        gnd(A).
rt469(A*B) :-
        rt469(A),
        rt470(B).
rt469(A+B) :-
        rt478(A),
        rt475(B).


:- regtype rt463/1.

rt463(t).
rt463(const(A)) :-
        gnd(A).
rt463(A*B) :-
        rt469(A),
        rt463(B).
rt463(A+B) :-
        rt478(A),
        rt475(B).


:- regtype rt480/1.

rt480(t).
rt480(const(A)) :-
        gnd(A).
rt480(A*B) :-
        rt469(A),
        rt463(B).
rt480(A+B) :-
        rt478(A),
        rt475(B).


:- regtype rt479/1.

rt479(t).
rt479(const(A)) :-
        gnd(A).
rt479(A*B) :-
        rt469(A),
        rt463(B).
rt479(A+B) :-
        rt478(A),
        rt475(B).


:- regtype rt478/1.

rt478(t).
rt478(const(A)) :-
        gnd(A).
rt478(A*B) :-
        rt480(A),
        rt479(B).
rt478(A+B) :-
        rt478(A),
        rt475(B).


:- regtype rt477/1.

rt477(t).
rt477(const(A)) :-
        gnd(A).
rt477(A*B) :-
        rt469(A),
        rt463(B).
rt477(A+B) :-
        rt478(A),
        rt475(B).


:- regtype rt476/1.

rt476(t).
rt476(const(A)) :-
        gnd(A).
rt476(A*B) :-
        rt469(A),
        rt463(B).
rt476(A+B) :-
        rt478(A),
        rt475(B).


:- regtype rt475/1.

rt475(t).
rt475(const(A)) :-
        gnd(A).
rt475(A*B) :-
        rt477(A),
        rt476(B).
rt475(A+B) :-
        rt478(A),
        rt475(B).


:- regtype rt462/1.

rt462(t).
rt462(const(A)) :-
        gnd(A).
rt462(A*B) :-
        rt469(A),
        rt463(B).
rt462(A+B) :-
        rt478(A),
        rt475(B).


:- regtype rt451/1.

rt451(t).
rt451(const(A)) :-
        gnd(A).
rt451(A*B) :-
        rt450(A),
        rt451(B).
rt451(A+B) :-
        rt459(A),
        rt456(B).


:- regtype rt450/1.

rt450(t).
rt450(const(A)) :-
        gnd(A).
rt450(A*B) :-
        rt450(A),
        rt451(B).
rt450(A+B) :-
        rt459(A),
        rt456(B).


:- regtype rt444/1.

rt444(t).
rt444(const(A)) :-
        gnd(A).
rt444(A*B) :-
        rt450(A),
        rt444(B).
rt444(A+B) :-
        rt459(A),
        rt456(B).


:- regtype rt461/1.

rt461(t).
rt461(const(A)) :-
        gnd(A).
rt461(A*B) :-
        rt450(A),
        rt444(B).
rt461(A+B) :-
        rt459(A),
        rt456(B).


:- regtype rt460/1.

rt460(t).
rt460(const(A)) :-
        gnd(A).
rt460(A*B) :-
        rt450(A),
        rt444(B).
rt460(A+B) :-
        rt459(A),
        rt456(B).


:- regtype rt459/1.

rt459(t).
rt459(const(A)) :-
        gnd(A).
rt459(A*B) :-
        rt461(A),
        rt460(B).
rt459(A+B) :-
        rt459(A),
        rt456(B).


:- regtype rt458/1.

rt458(t).
rt458(const(A)) :-
        gnd(A).
rt458(A*B) :-
        rt450(A),
        rt444(B).
rt458(A+B) :-
        rt459(A),
        rt456(B).


:- regtype rt457/1.

rt457(t).
rt457(const(A)) :-
        gnd(A).
rt457(A*B) :-
        rt450(A),
        rt444(B).
rt457(A+B) :-
        rt459(A),
        rt456(B).


:- regtype rt456/1.

rt456(t).
rt456(const(A)) :-
        gnd(A).
rt456(A*B) :-
        rt458(A),
        rt457(B).
rt456(A+B) :-
        rt459(A),
        rt456(B).


:- regtype rt443/1.

rt443(t).
rt443(const(A)) :-
        gnd(A).
rt443(A*B) :-
        rt450(A),
        rt444(B).
rt443(A+B) :-
        rt459(A),
        rt456(B).


:- regtype rt442/1.

rt442(const(A)) :-
        rt155(A).
rt442(A+B) :-
        rt462(A),
        rt443(B).


:- regtype rt15/1.

rt15(0).
rt15(1).


:- regtype rt43/1.

rt43(t).
rt43(const(A)) :-
        gnd(A).


:- regtype rt42/1.

rt42(const(A)) :-
        rt15(A).
rt42(A+B) :-
        rt41(A),
        rt38(B).


:- regtype rt41/1.

rt41(const(A)) :-
        rt15(A).
rt41(A*B) :-
        rt43(A),
        rt42(B).
rt41(A+B) :-
        rt41(A),
        rt38(B).


:- regtype rt40/1.

rt40(t).
rt40(const(A)) :-
        gnd(A).


:- regtype rt39/1.

rt39(const(A)) :-
        rt15(A).
rt39(A+B) :-
        rt41(A),
        rt38(B).


:- regtype rt38/1.

rt38(const(A)) :-
        rt15(A).
rt38(A*B) :-
        rt40(A),
        rt39(B).
rt38(A+B) :-
        rt41(A),
        rt38(B).


:- regtype rt37/1.

rt37(const(A)) :-
        rt15(A).
rt37(A+B) :-
        rt41(A),
        rt38(B).


:- regtype rt34/1.

rt34(t).
rt34(const(A)) :-
        gnd(A).
rt34(A*B) :-
        rt34(A),
        rt33(B).
rt34(A+B) :-
        rt36(A),
        rt35(B).


:- regtype rt33/1.

rt33(t).
rt33(const(A)) :-
        gnd(A).
rt33(A*B) :-
        rt34(A),
        rt33(B).
rt33(A+B) :-
        rt36(A),
        rt35(B).


:- regtype rt36/1.

rt36(t).
rt36(const(A)) :-
        gnd(A).
rt36(A*B) :-
        rt34(A),
        rt33(B).
rt36(A+B) :-
        rt36(A),
        rt35(B).


:- regtype rt35/1.

rt35(t).
rt35(const(A)) :-
        gnd(A).
rt35(A*B) :-
        rt34(A),
        rt33(B).
rt35(A+B) :-
        rt36(A),
        rt35(B).


:- regtype rt32/1.

rt32(t).
rt32(const(A)) :-
        gnd(A).
rt32(A*B) :-
        rt34(A),
        rt33(B).
rt32(A+B) :-
        rt36(A),
        rt35(B).


:- regtype rt283/1.

rt283(t).
rt283(const(A)) :-
        gnd(A).
rt283(A*B) :-
        rt283(A),
        rt282(B).
rt283(A+B) :-
        rt285(A),
        rt284(B).


:- regtype rt282/1.

rt282(t).
rt282(const(A)) :-
        gnd(A).
rt282(A*B) :-
        rt283(A),
        rt282(B).
rt282(A+B) :-
        rt285(A),
        rt284(B).


:- regtype rt285/1.

rt285(t).
rt285(const(A)) :-
        gnd(A).
rt285(A*B) :-
        rt283(A),
        rt282(B).
rt285(A+B) :-
        rt285(A),
        rt284(B).


:- regtype rt284/1.

rt284(t).
rt284(const(A)) :-
        gnd(A).
rt284(A*B) :-
        rt283(A),
        rt282(B).
rt284(A+B) :-
        rt285(A),
        rt284(B).


:- regtype rt281/1.

rt281(t).
rt281(const(A)) :-
        gnd(A).
rt281(A*B) :-
        rt283(A),
        rt282(B).
rt281(A+B) :-
        rt285(A),
        rt284(B).


:- regtype rt274/1.

rt274(const(A)) :-
        rt163(A).
rt274(A*B) :-
        rt281(A),
        rt274(B).
rt274(A+B) :-
        rt289(A),
        rt286(B).


:- regtype rt290/1.

rt290(const(A)) :-
        rt163(A).
rt290(A*B) :-
        rt281(A),
        rt274(B).
rt290(A+B) :-
        rt289(A),
        rt286(B).


:- regtype rt289/1.

rt289(const(A)) :-
        rt163(A).
rt289(A*B) :-
        rt281(A),
        rt290(B).
rt289(A+B) :-
        rt289(A),
        rt286(B).


:- regtype rt287/1.

rt287(const(A)) :-
        rt163(A).
rt287(A*B) :-
        rt281(A),
        rt274(B).
rt287(A+B) :-
        rt289(A),
        rt286(B).


:- regtype rt286/1.

rt286(const(A)) :-
        rt163(A).
rt286(A*B) :-
        rt281(A),
        rt287(B).
rt286(A+B) :-
        rt289(A),
        rt286(B).


:- regtype rt273/1.

rt273(const(A)) :-
        rt163(A).
rt273(A*B) :-
        rt281(A),
        rt274(B).
rt273(A+B) :-
        rt289(A),
        rt286(B).


:- regtype rt264/1.

rt264(t).
rt264(const(A)) :-
        gnd(A).
rt264(A*B) :-
        rt264(A),
        rt263(B).
rt264(A+B) :-
        rt266(A),
        rt265(B).


:- regtype rt263/1.

rt263(t).
rt263(const(A)) :-
        gnd(A).
rt263(A*B) :-
        rt264(A),
        rt263(B).
rt263(A+B) :-
        rt266(A),
        rt265(B).


:- regtype rt266/1.

rt266(t).
rt266(const(A)) :-
        gnd(A).
rt266(A*B) :-
        rt264(A),
        rt263(B).
rt266(A+B) :-
        rt266(A),
        rt265(B).


:- regtype rt265/1.

rt265(t).
rt265(const(A)) :-
        gnd(A).
rt265(A*B) :-
        rt264(A),
        rt263(B).
rt265(A+B) :-
        rt266(A),
        rt265(B).


:- regtype rt262/1.

rt262(t).
rt262(const(A)) :-
        gnd(A).
rt262(A*B) :-
        rt264(A),
        rt263(B).
rt262(A+B) :-
        rt266(A),
        rt265(B).


:- regtype rt255/1.

rt255(const(A)) :-
        rt163(A).
rt255(A*B) :-
        rt262(A),
        rt255(B).
rt255(A+B) :-
        rt270(A),
        rt267(B).


:- regtype rt271/1.

rt271(const(A)) :-
        rt163(A).
rt271(A*B) :-
        rt262(A),
        rt255(B).
rt271(A+B) :-
        rt270(A),
        rt267(B).


:- regtype rt270/1.

rt270(const(A)) :-
        rt163(A).
rt270(A*B) :-
        rt262(A),
        rt271(B).
rt270(A+B) :-
        rt270(A),
        rt267(B).


:- regtype rt268/1.

rt268(const(A)) :-
        rt163(A).
rt268(A*B) :-
        rt262(A),
        rt255(B).
rt268(A+B) :-
        rt270(A),
        rt267(B).


:- regtype rt267/1.

rt267(const(A)) :-
        rt163(A).
rt267(A*B) :-
        rt262(A),
        rt268(B).
rt267(A+B) :-
        rt270(A),
        rt267(B).


:- regtype rt254/1.

rt254(const(A)) :-
        rt163(A).
rt254(A*B) :-
        rt262(A),
        rt255(B).
rt254(A+B) :-
        rt270(A),
        rt267(B).


:- regtype rt253/1.

rt253(const(A)) :-
        rt155(A).
rt253(A+B) :-
        rt273(A),
        rt254(B).


:- regtype rt297/1.

rt297(d(A)) :-
        rt297(A).
rt297(e(A)) :-
        rt298(A).


:- regtype rt306/1.

rt306(t).
rt306(const(A)) :-
        gnd(A).
rt306(A*B) :-
        rt306(A),
        rt305(B).
rt306(A+B) :-
        rt308(A),
        rt307(B).


:- regtype rt305/1.

rt305(t).
rt305(const(A)) :-
        gnd(A).
rt305(A*B) :-
        rt306(A),
        rt305(B).
rt305(A+B) :-
        rt308(A),
        rt307(B).


:- regtype rt308/1.

rt308(t).
rt308(const(A)) :-
        gnd(A).
rt308(A*B) :-
        rt306(A),
        rt305(B).
rt308(A+B) :-
        rt308(A),
        rt307(B).


:- regtype rt307/1.

rt307(t).
rt307(const(A)) :-
        gnd(A).
rt307(A*B) :-
        rt306(A),
        rt305(B).
rt307(A+B) :-
        rt308(A),
        rt307(B).


:- regtype rt304/1.

rt304(t).
rt304(const(A)) :-
        gnd(A).
rt304(A*B) :-
        rt306(A),
        rt305(B).
rt304(A+B) :-
        rt308(A),
        rt307(B).


:- regtype rt301/1.

rt301(t).
rt301(const(A)) :-
        gnd(A).
rt301(A*B) :-
        rt301(A),
        rt300(B).
rt301(A+B) :-
        rt303(A),
        rt302(B).


:- regtype rt300/1.

rt300(t).
rt300(const(A)) :-
        gnd(A).
rt300(A*B) :-
        rt301(A),
        rt300(B).
rt300(A+B) :-
        rt303(A),
        rt302(B).


:- regtype rt303/1.

rt303(t).
rt303(const(A)) :-
        gnd(A).
rt303(A*B) :-
        rt301(A),
        rt300(B).
rt303(A+B) :-
        rt303(A),
        rt302(B).


:- regtype rt302/1.

rt302(t).
rt302(const(A)) :-
        gnd(A).
rt302(A*B) :-
        rt301(A),
        rt300(B).
rt302(A+B) :-
        rt303(A),
        rt302(B).


:- regtype rt299/1.

rt299(t).
rt299(const(A)) :-
        gnd(A).
rt299(A*B) :-
        rt301(A),
        rt300(B).
rt299(A+B) :-
        rt303(A),
        rt302(B).


:- regtype rt316/1.

rt316(t).
rt316(const(A)) :-
        gnd(A).
rt316(A*B) :-
        rt316(A),
        rt315(B).
rt316(A+B) :-
        rt318(A),
        rt317(B).


:- regtype rt315/1.

rt315(t).
rt315(const(A)) :-
        gnd(A).
rt315(A*B) :-
        rt316(A),
        rt315(B).
rt315(A+B) :-
        rt318(A),
        rt317(B).


:- regtype rt318/1.

rt318(t).
rt318(const(A)) :-
        gnd(A).
rt318(A*B) :-
        rt316(A),
        rt315(B).
rt318(A+B) :-
        rt318(A),
        rt317(B).


:- regtype rt317/1.

rt317(t).
rt317(const(A)) :-
        gnd(A).
rt317(A*B) :-
        rt316(A),
        rt315(B).
rt317(A+B) :-
        rt318(A),
        rt317(B).


:- regtype rt314/1.

rt314(t).
rt314(const(A)) :-
        gnd(A).
rt314(A*B) :-
        rt316(A),
        rt315(B).
rt314(A+B) :-
        rt318(A),
        rt317(B).


:- regtype rt311/1.

rt311(t).
rt311(const(A)) :-
        gnd(A).
rt311(A*B) :-
        rt311(A),
        rt310(B).
rt311(A+B) :-
        rt313(A),
        rt312(B).


:- regtype rt310/1.

rt310(t).
rt310(const(A)) :-
        gnd(A).
rt310(A*B) :-
        rt311(A),
        rt310(B).
rt310(A+B) :-
        rt313(A),
        rt312(B).


:- regtype rt313/1.

rt313(t).
rt313(const(A)) :-
        gnd(A).
rt313(A*B) :-
        rt311(A),
        rt310(B).
rt313(A+B) :-
        rt313(A),
        rt312(B).


:- regtype rt312/1.

rt312(t).
rt312(const(A)) :-
        gnd(A).
rt312(A*B) :-
        rt311(A),
        rt310(B).
rt312(A+B) :-
        rt313(A),
        rt312(B).


:- regtype rt309/1.

rt309(t).
rt309(const(A)) :-
        gnd(A).
rt309(A*B) :-
        rt311(A),
        rt310(B).
rt309(A+B) :-
        rt313(A),
        rt312(B).


:- regtype rt298/1.

rt298(t).
rt298(const(A)) :-
        gnd(A).
rt298(A*B) :-
        rt304(A),
        rt299(B).
rt298(A+B) :-
        rt314(A),
        rt309(B).


:- regtype rt296/1.

rt296(d(A)) :-
        rt297(A).
rt296(e(A)) :-
        rt298(A).


:- regtype rt154/1.

rt154(const(A)) :-
        rt155(A).


:- regtype rt292/1.

rt292(const(0)).


:- regtype rt155/1.

rt155(0).
rt155(1).


:- regtype rt293/1.

rt293(const(A)) :-
        rt155(A).


:- regtype rt156/1.

rt156(A) :-
        gnd(A).


:- regtype rt163/1.

rt163(0).
rt163(1).


:- regtype rt191/1.

rt191(t).
rt191(const(A)) :-
        gnd(A).


:- regtype rt190/1.

rt190(const(A)) :-
        rt163(A).
rt190(A+B) :-
        rt189(A),
        rt186(B).


:- regtype rt189/1.

rt189(const(A)) :-
        rt163(A).
rt189(A*B) :-
        rt191(A),
        rt190(B).
rt189(A+B) :-
        rt189(A),
        rt186(B).


:- regtype rt188/1.

rt188(t).
rt188(const(A)) :-
        gnd(A).


:- regtype rt187/1.

rt187(const(A)) :-
        rt163(A).
rt187(A+B) :-
        rt189(A),
        rt186(B).


:- regtype rt186/1.

rt186(const(A)) :-
        rt163(A).
rt186(A*B) :-
        rt188(A),
        rt187(B).
rt186(A+B) :-
        rt189(A),
        rt186(B).


:- regtype rt185/1.

rt185(const(A)) :-
        rt163(A).
rt185(A+B) :-
        rt189(A),
        rt186(B).


:- regtype rt182/1.

rt182(t).
rt182(const(A)) :-
        gnd(A).
rt182(A*B) :-
        rt182(A),
        rt181(B).
rt182(A+B) :-
        rt184(A),
        rt183(B).


:- regtype rt181/1.

rt181(t).
rt181(const(A)) :-
        gnd(A).
rt181(A*B) :-
        rt182(A),
        rt181(B).
rt181(A+B) :-
        rt184(A),
        rt183(B).


:- regtype rt184/1.

rt184(t).
rt184(const(A)) :-
        gnd(A).
rt184(A*B) :-
        rt182(A),
        rt181(B).
rt184(A+B) :-
        rt184(A),
        rt183(B).


:- regtype rt183/1.

rt183(t).
rt183(const(A)) :-
        gnd(A).
rt183(A*B) :-
        rt182(A),
        rt181(B).
rt183(A+B) :-
        rt184(A),
        rt183(B).


:- regtype rt180/1.

rt180(t).
rt180(const(A)) :-
        gnd(A).
rt180(A*B) :-
        rt182(A),
        rt181(B).
rt180(A+B) :-
        rt184(A),
        rt183(B).