
int_r(_G1159, _G1162, _G1220, _G1183, _G1144, _G1189, _G1156):- (_G1220>=1, _G1180 is _G1220-1), _G1174=[_G1156|_G1159], (_G1144=[_G1147, [1, _G1156, _G1159, _G1162]|_G1151], _G1165=[_G1147|_G1151]), p(_G1174, _G1162, _G1180, _G1183, _G1165, _G1189).
int_r(_G1573, _G1576, _G1634, _G1597, _G1558, _G1603, _G1570):- (_G1634>=1, _G1594 is _G1634-1), _G1588=[_G1570|_G1573], (_G1558=[_G1561, [2, _G1570, _G1573, _G1576]|_G1565], _G1579=[_G1561|_G1565]), q(_G1588, _G1576, _G1594, _G1597, _G1579, _G1603).
int_not_p(_G1370, _G1373, _G1431, _G1394, _G1355, _G1400, _G1367):- (_G1431>=1, _G1391 is _G1431-1), _G1388=[_G1367|_G1373], (_G1355=[_G1358, [-1, _G1367, _G1370, _G1373]|_G1362], _G1376=[_G1358|_G1362]), not_r(_G1370, _G1388, _G1391, _G1394, _G1376, _G1400).
int_not_q(_G1784, _G1787, _G1845, _G1808, _G1769, _G1814, _G1781):- (_G1845>=1, _G1805 is _G1845-1), _G1802=[_G1781|_G1787], (_G1769=[_G1772, [-2, _G1781, _G1784, _G1787]|_G1776], _G1790=[_G1772|_G1776]), not_r(_G1784, _G1802, _G1805, _G1808, _G1790, _G1814).
int_p(_G1984, _G1987, _G2045, _G2008, _G1969, _G2014, _G1981):- (_G2045>=1, _G2005 is _G2045-1), _G1999=[_G1981|_G1984], (_G1969=[_G1972, [3, _G1981, _G1984, _G1987]|_G1976], _G1990=[_G1972|_G1976]), not_q(_G1999, _G1987, _G2005, _G2008, _G1990, _G2014).
int_q(_G2166, _G2169, _G2227, _G2190, _G2151, _G2196, _G2163):- (_G2227>=1, _G2187 is _G2227-1), _G2181=[_G2163|_G2166], (_G2151=[_G2154, [3, _G2163, _G2166, _G2169]|_G2158], _G2172=[_G2154|_G2158]), not_p(_G2181, _G2169, _G2187, _G2190, _G2172, _G2196).
r(_G3147, _G3150, _G3153, _G3156, _G3159, _G3162):-_G3232=r, (identical_member(_G3232, _G3147)->fail; (identical_member(_G3232, _G3150), !), _G3156=_G3153, _G3159=[_G3282, [red, _G3232, _G3147, _G3150]|_G3286], _G3162=[_G3282|_G3286];int_r(_G3147, _G3150, _G3153, _G3156, _G3159, _G3162, _G3232)).
p(_G3355, _G3358, _G3361, _G3364, _G3367, _G3370):-_G3440=p, (identical_member(_G3440, _G3355)->fail; (identical_member(_G3440, _G3358), !), _G3364=_G3361, _G3367=[_G3490, [red, _G3440, _G3355, _G3358]|_G3494], _G3370=[_G3490|_G3494];int_p(_G3355, _G3358, _G3361, _G3364, _G3367, _G3370, _G3440)).
not_p(_G3563, _G3566, _G3569, _G3572, _G3575, _G3578):-_G3660=p, (identical_member(_G3660, _G3566)->fail; (identical_member(_G3660, _G3563), !), _G3572=_G3569, _G3575=[_G3770, [redn, _G3660, _G3563, _G3566]|_G3774], _G3578=[_G3770|_G3774];int_not_p(_G3563, _G3566, _G3569, _G3572, _G3575, _G3578, _G3660)).
not_r(_G3843, _G3846, _G3849, _G3852, _G3855, _G3858):-_G3997=r, (identical_member(_G3997, _G3846)->fail; (identical_member(_G3997, _G3843), !), _G3852=_G3849, _G3855=[_G4012, [redn, _G3997, _G3843, _G3846]|_G4016], _G3858=[_G4012|_G4016];fail).
q(_G4085, _G4088, _G4091, _G4094, _G4097, _G4100):-_G4170=q, (identical_member(_G4170, _G4085)->fail; (identical_member(_G4170, _G4088), !), _G4094=_G4091, _G4097=[_G4220, [red, _G4170, _G4085, _G4088]|_G4224], _G4100=[_G4220|_G4224];int_q(_G4085, _G4088, _G4091, _G4094, _G4097, _G4100, _G4170)).
not_q(_G4293, _G4296, _G4299, _G4302, _G4305, _G4308):-_G4390=q, (identical_member(_G4390, _G4296)->fail; (identical_member(_G4390, _G4293), !), _G4302=_G4299, _G4305=[_G4500, [redn, _G4390, _G4293, _G4296]|_G4504], _G4308=[_G4500|_G4504];int_not_q(_G4293, _G4296, _G4299, _G4302, _G4305, _G4308, _G4390)).
