:- import set_unify/2 from set_unify. :- import numbervars/1 from num_vars. :- import normalize_result/2 from can_mono. test :- tp, fail. test :- writeln('=========== Result is ================'), nl, show_facts. unify_sets([],[]). unify_sets([A|As],[B|Bs]) :- set_unify(A,B), unify_sets(As,Bs). %---------------- Transformed program ---------------------- zero200__1(_102) :- [_89] = _104, normalize_result([_104], [_102]). top__1(_205) :- [_178] = _207, setup([_178],[_182],[_186]), normalize_result([_207], [_205]). makevars__1(_116,_118) :- [list] = _120, [list] = _122, normalize_result([_120,_122], [_116,_118]). makevars__1(_380,_382) :- [list,_350] = _384, [list,_354] = _386, duration([_323],[_327]), memberEl([_334],[num],[num]), makevars([_350],[_354]), normalize_result([_384,_386], [_380,_382]). memberEl__1(_155,_157,_159) :- [_135] = _161, [_135] = _163, [_139] = _165, normalize_result([_161,_163,_165], [_155,_157,_159]). memberEl__1(_413,_415,_417) :- [_376] = _419, [_361] = _421, [_384] = _423, 'my =<'([_361],[_384]), 'my is'([_380],[[_361],[num]]), memberEl([_376],[_380],[_384]), normalize_result([_419,_421,_423], [_413,_415,_417]). setup__1(_1219,_1221,_1223) :- [_1146] = _1225, [_965] = _1227, [_1130] = _1229, jobs([_990]), makevars([_990],[_1146]), resources([_1109]), prec([_1013]), makeprec([_1013],[_1146]), maxnf([_1030]), makemaxnf([_1030],[_1146]), maxef([_1047]), makemaxef([_1047],[_1146]), minaf([_1064]), makeminaf([_1064],[_1146]), minsf([_1081]), makeminsf([_1081],[_1146]), minnf([_1098]), makeminnf([_1098],[_1146]), makedisj([_1109],[_1146],[list],[_1130]), disjunct([_1130]), el([list,list,list,list],[_1146]), normalize_result([_1225,_1227,_1229], [_1219,_1221,_1223]). makeprec__1(_122,_124) :- [list] = _126, [_109] = _128, normalize_result([_126,_128], [_122,_124]). makeprec__1(_496,_498) :- [list,_463] = _500, [_467] = _502, el([list,list,list,list],[_467]), el([list,list,list,list],[_467]), gteqc([_447],[_451],[_455]), makeprec([_463],[_467]), normalize_result([_500,_502], [_496,_498]). gteqc__1(_263,_265,_267) :- [_224] = _269, [_233] = _271, [_237] = _273, 'my >='([_224],[[_233],[_237]]), normalize_result([_269,_271,_273], [_263,_265,_267]). makemaxnf__1(_122,_124) :- [list] = _126, [_109] = _128, normalize_result([_126,_128], [_122,_124]). makemaxnf__1(_595,_597) :- [list,_559] = _599, [_563] = _601, el([list,list,list,list],[_563]), el([list,list,list,list],[_563]), 'my is'([_551],[[_528],[_532]]), smeqc([_543],[_547],[_551]), makemaxnf([_559],[_563]), normalize_result([_599,_601], [_595,_597]). makemaxef__1(_122,_124) :- [list] = _126, [_109] = _128, normalize_result([_126,_128], [_122,_124]). makemaxef__1(_631,_633) :- [list,_595] = _635, [_599] = _637, el([list,list,list,list],[_599]), el([list,list,list,list],[_599]), 'my is'([_587],[[[_558],[_562]],[_568]]), smeqc([_579],[_583],[_587]), makemaxef([_595],[_599]), normalize_result([_635,_637], [_631,_633]). smeqc__1(_263,_265,_267) :- [_224] = _269, [_233] = _271, [_237] = _273, 'my =<'([_224],[[_233],[_237]]), normalize_result([_269,_271,_273], [_263,_265,_267]). makeminaf__1(_122,_124) :- [list] = _126, [_109] = _128, normalize_result([_126,_128], [_122,_124]). makeminaf__1(_496,_498) :- [list,_463] = _500, [_467] = _502, el([list,list,list,list],[_467]), el([list,list,list,list],[_467]), gteqc([_447],[_451],[_455]), makeminaf([_463],[_467]), normalize_result([_500,_502], [_496,_498]). makeminsf__1(_122,_124) :- [list] = _126, [_109] = _128, normalize_result([_126,_128], [_122,_124]). makeminsf__1(_595,_597) :- [list,_559] = _599, [_563] = _601, el([list,list,list,list],[_563]), el([list,list,list,list],[_563]), 'my is'([_551],[[_528],[_532]]), smeqc([_543],[_547],[_551]), makeminsf([_559],[_563]), normalize_result([_599,_601], [_595,_597]). makeminnf__1(_122,_124) :- [list] = _126, [_109] = _128, normalize_result([_126,_128], [_122,_124]). makeminnf__1(_593,_595) :- [list,_557] = _597, [_561] = _599, el([list,list,list,list],[_561]), el([list,list,list,list],[_561]), 'my is'([_549],[[_526],[_545]]), gteqc([_541],[_545],[_549]), makeminnf([_557],[_561]), normalize_result([_597,_599], [_593,_595]). makedisj__1(_178,_180,_182,_184) :- [list] = _186, [_151] = _188, [_159] = _190, [_159] = _192, normalize_result([_186,_188,_190,_192], [_178,_180,_182,_184]). makedisj__1(_511,_513,_515,_517) :- [list,_467] = _519, [_471] = _521, [_455] = _523, [_479] = _525, ellist([_435],[_471],[_451]), makedisj1([_451],[_455],[_475]), makedisj([_467],[_471],[_475],[_479]), normalize_result([_519,_521,_523,_525], [_511,_513,_515,_517]). makedisj1__1(_149,_151,_153) :- [list] = _155, [_133] = _157, [_133] = _159, normalize_result([_155,_157,_159], [_149,_151,_153]). makedisj1__1(_389,_391,_393) :- [list,_355] = _395, [_342] = _397, [_363] = _399, makedisj2([_334],[_355],[_342],[_359]), makedisj1([_355],[_359],[_363]), normalize_result([_395,_397,_399], [_389,_391,_393]). makedisj2__1(_178,_180,_182,_184) :- [_147] = _186, [list] = _188, [_159] = _190, [_159] = _192, normalize_result([_186,_188,_190,_192], [_178,_180,_182,_184]). makedisj2__1(_363,_365,_367,_369) :- [list,list,list] = _371, [list,_327] = _373, [_299] = _375, [_337] = _377, makedisj2([list,list,list],[_327],[list,_299],[_337]), normalize_result([_371,_373,_375,_377], [_363,_365,_367,_369]). ellist__1(_145,_147,_149) :- [list] = _151, [_125] = _153, [list] = _155, normalize_result([_151,_153,_155], [_145,_147,_149]). ellist__1(_371,_373,_375) :- [list,_337] = _377, [_341] = _379, [list,_345] = _381, el([list,list,list,list],[_341]), ellist([_337],[_341],[_345]), normalize_result([_377,_379,_381], [_371,_373,_375]). disjunct__1(_93) :- [list] = _95, normalize_result([_95], [_93]). disjunct__1(_285) :- [list,_265] = _287, disj([_244],[_248],[_252],[_256]), disjunct([_265]), normalize_result([_287], [_285]). disj__1(_288,_290,_292,_294) :- [_259] = _296, [_263] = _298, [_255] = _300, [_239] = _302, gteqc([_255],[_259],[_263]), normalize_result([_296,_298,_300,_302], [_288,_290,_292,_294]). disj__1(_288,_290,_292,_294) :- [_255] = _296, [_231] = _298, [_259] = _300, [_263] = _302, gteqc([_255],[_259],[_263]), normalize_result([_296,_298,_300,_302], [_288,_290,_292,_294]). rev__1(_149,_151,_153) :- [list] = _155, [_133] = _157, [_133] = _159, normalize_result([_155,_157,_159], [_149,_151,_153]). rev__1(_279,_281,_283) :- [list,_246] = _285, [_227] = _287, [_256] = _289, rev([_246],[list,_227],[_256]), normalize_result([_285,_287,_289], [_279,_281,_283]). el__1(_138,_140) :- [_119] = _142, [list,_106] = _144, normalize_result([_142,_144], [_138,_140]). el__1(_215,_217) :- [_191] = _219, [list,_195] = _221, el([_191],[_195]), normalize_result([_219,_221], [_215,_217]). p__1(_200,_202) :- [_178] = _204, [_155] = _206, 'my =:='([_178],[_178]), normalize_result([_204,_206], [_200,_202]). jobs__1(_93) :- [atom] = _95, normalize_result([_95], [_93]). jobs__1(_93) :- [atom] = _95, normalize_result([_95], [_93]). duration__1(_116,_118) :- [atom] = _120, [atom] = _122, normalize_result([_120,_122], [_116,_118]). duration__1(_116,_118) :- [atom] = _120, [atom] = _122, normalize_result([_120,_122], [_116,_118]). maxnf__1(_93) :- [atom] = _95, normalize_result([_95], [_93]). maxnf__1(_93) :- [atom] = _95, normalize_result([_95], [_93]). minsf__1(_93) :- [atom] = _95, normalize_result([_95], [_93]). minsf__1(_93) :- [atom] = _95, normalize_result([_95], [_93]). maxef__1(_93) :- [atom] = _95, normalize_result([_95], [_93]). maxef__1(_93) :- [atom] = _95, normalize_result([_95], [_93]). minnf__1(_93) :- [atom] = _95, normalize_result([_95], [_93]). minnf__1(_93) :- [atom] = _95, normalize_result([_95], [_93]). minaf__1(_93) :- [atom] = _95, normalize_result([_95], [_93]). minaf__1(_93) :- [atom] = _95, normalize_result([_95], [_93]). resources__1(_93) :- [atom] = _95, normalize_result([_95], [_93]). resources__1(_93) :- [atom] = _95, normalize_result([_95], [_93]). prec__1(_93) :- [atom] = _95, normalize_result([_95], [_93]). prec__1(_93) :- [atom] = _95, normalize_result([_95], [_93]). %---------------- Definitions of tabled preds -------------- :- table prec__1/1. :- table resources__1/1. :- table minaf__1/1. :- table minnf__1/1. :- table maxef__1/1. :- table minsf__1/1. :- table maxnf__1/1. :- table duration__1/2. :- table jobs__1/1. :- table p__1/2. :- table el__1/2. :- table rev__1/3. :- table disj__1/4. :- table disjunct__1/1. :- table ellist__1/3. :- table makedisj2__1/4. :- table makedisj1__1/3. :- table makedisj__1/4. :- table makeminnf__1/2. :- table makeminsf__1/2. :- table makeminaf__1/2. :- table smeqc__1/3. :- table makemaxef__1/2. :- table makemaxnf__1/2. :- table gteqc__1/3. :- table makeprec__1/2. :- table setup__1/3. :- table memberEl__1/3. :- table makevars__1/2. :- table top__1/1. :- table zero200__1/1. prec(_63) :- prec__1(_65), unify_sets([_63], [_65]). resources(_63) :- resources__1(_65), unify_sets([_63], [_65]). minaf(_63) :- minaf__1(_65), unify_sets([_63], [_65]). minnf(_63) :- minnf__1(_65), unify_sets([_63], [_65]). maxef(_63) :- maxef__1(_65), unify_sets([_63], [_65]). minsf(_63) :- minsf__1(_65), unify_sets([_63], [_65]). maxnf(_63) :- maxnf__1(_65), unify_sets([_63], [_65]). duration(_63,_65) :- duration__1(_67,_69), unify_sets([_63,_65], [_67,_69]). jobs(_63) :- jobs__1(_65), unify_sets([_63], [_65]). p(_63,_65) :- p__1(_67,_69), unify_sets([_63,_65], [_67,_69]). el(_63,_65) :- el__1(_67,_69), unify_sets([_63,_65], [_67,_69]). rev(_63,_65,_67) :- rev__1(_69,_71,_73), unify_sets([_63,_65,_67], [_69,_71,_73]). disj(_63,_65,_67,_69) :- disj__1(_71,_73,_75,_77), unify_sets([_63,_65,_67,_69], [_71,_73,_75,_77]). disjunct(_63) :- disjunct__1(_65), unify_sets([_63], [_65]). ellist(_63,_65,_67) :- ellist__1(_69,_71,_73), unify_sets([_63,_65,_67], [_69,_71,_73]). makedisj2(_63,_65,_67,_69) :- makedisj2__1(_71,_73,_75,_77), unify_sets([_63,_65,_67,_69], [_71,_73,_75,_77]). makedisj1(_63,_65,_67) :- makedisj1__1(_69,_71,_73), unify_sets([_63,_65,_67], [_69,_71,_73]). makedisj(_63,_65,_67,_69) :- makedisj__1(_71,_73,_75,_77), unify_sets([_63,_65,_67,_69], [_71,_73,_75,_77]). makeminnf(_63,_65) :- makeminnf__1(_67,_69), unify_sets([_63,_65], [_67,_69]). makeminsf(_63,_65) :- makeminsf__1(_67,_69), unify_sets([_63,_65], [_67,_69]). makeminaf(_63,_65) :- makeminaf__1(_67,_69), unify_sets([_63,_65], [_67,_69]). smeqc(_63,_65,_67) :- smeqc__1(_69,_71,_73), unify_sets([_63,_65,_67], [_69,_71,_73]). makemaxef(_63,_65) :- makemaxef__1(_67,_69), unify_sets([_63,_65], [_67,_69]). makemaxnf(_63,_65) :- makemaxnf__1(_67,_69), unify_sets([_63,_65], [_67,_69]). gteqc(_63,_65,_67) :- gteqc__1(_69,_71,_73), unify_sets([_63,_65,_67], [_69,_71,_73]). makeprec(_63,_65) :- makeprec__1(_67,_69), unify_sets([_63,_65], [_67,_69]). setup(_63,_65,_67) :- setup__1(_69,_71,_73), unify_sets([_63,_65,_67], [_69,_71,_73]). memberEl(_63,_65,_67) :- memberEl__1(_69,_71,_73), unify_sets([_63,_65,_67], [_69,_71,_73]). makevars(_63,_65) :- makevars__1(_67,_69), unify_sets([_63,_65], [_67,_69]). top(_63) :- top__1(_65), unify_sets([_63], [_65]). zero200(_63) :- zero200__1(_65), unify_sets([_63], [_65]). %---------------- Tp --------------------------------------- tp :- prec__1(_64), fail. tp :- resources__1(_64), fail. tp :- minaf__1(_64), fail. tp :- minnf__1(_64), fail. tp :- maxef__1(_64), fail. tp :- minsf__1(_64), fail. tp :- maxnf__1(_64), fail. tp :- duration__1(_64,_66), fail. tp :- jobs__1(_64), fail. tp :- p__1(_64,_66), fail. tp :- el__1(_64,_66), fail. tp :- rev__1(_64,_66,_68), fail. tp :- disj__1(_64,_66,_68,_70), fail. tp :- disjunct__1(_64), fail. tp :- ellist__1(_64,_66,_68), fail. tp :- makedisj2__1(_64,_66,_68,_70), fail. tp :- makedisj1__1(_64,_66,_68), fail. tp :- makedisj__1(_64,_66,_68,_70), fail. tp :- makeminnf__1(_64,_66), fail. tp :- makeminsf__1(_64,_66), fail. tp :- makeminaf__1(_64,_66), fail. tp :- smeqc__1(_64,_66,_68), fail. tp :- makemaxef__1(_64,_66), fail. tp :- makemaxnf__1(_64,_66), fail. tp :- gteqc__1(_64,_66,_68), fail. tp :- makeprec__1(_64,_66), fail. tp :- setup__1(_64,_66,_68), fail. tp :- memberEl__1(_64,_66,_68), fail. tp :- makevars__1(_64,_66), fail. tp :- top__1(_64), fail. tp :- zero200__1(_64), fail. tp. %---------------- Builtin Preds ---------------------------- 'my ='(X1,X2) :- 'my =__1'(Y1,Y2), unify_sets([X1,X2],[Y1,Y2]). 'my \\=='(X1,X2) :- 'my \\==__1'(Y1,Y2), unify_sets([X1,X2],[Y1,Y2]). 'my is'(X1,X2) :- 'my is__1'(Y1,Y2), unify_sets([X1,X2],[Y1,Y2]). 'my =:='(X1,X2) :- 'my =:=__1'(Y1,Y2), unify_sets([X1,X2],[Y1,Y2]). 'my =\\='(X1,X2) :- 'my =\\=__1'(Y1,Y2), unify_sets([X1,X2],[Y1,Y2]). 'my <'(X1,X2) :- 'my <__1'(Y1,Y2), unify_sets([X1,X2],[Y1,Y2]). 'my >'(X1,X2) :- 'my >__1'(Y1,Y2), unify_sets([X1,X2],[Y1,Y2]). 'my >='(X1,X2) :- 'my >=__1'(Y1,Y2), unify_sets([X1,X2],[Y1,Y2]). 'my =<'(X1,X2) :- 'my =<__1'(Y1,Y2), unify_sets([X1,X2],[Y1,Y2]). 'my =__1'(X,X). 'my \\==__1'(_,_). 'my is__1'(num,num). 'my <__1'(num,num). 'my >__1'(num,num). 'my >=__1'(num,num). 'my =<__1'(num,num). 'my =:=__1'(num,num). 'my =\\=__1'(num,num). %---------------- Show Result ------------------------------ show_facts :- prec__1(_63), numbervars([_63]), write(prec(_63)), nl, fail. show_facts :- resources__1(_63), numbervars([_63]), write(resources(_63)), nl, fail. show_facts :- minaf__1(_63), numbervars([_63]), write(minaf(_63)), nl, fail. show_facts :- minnf__1(_63), numbervars([_63]), write(minnf(_63)), nl, fail. show_facts :- maxef__1(_63), numbervars([_63]), write(maxef(_63)), nl, fail. show_facts :- minsf__1(_63), numbervars([_63]), write(minsf(_63)), nl, fail. show_facts :- maxnf__1(_63), numbervars([_63]), write(maxnf(_63)), nl, fail. show_facts :- duration__1(_63,_65), numbervars([_63,_65]), write(duration(_63,_65)), nl, fail. show_facts :- jobs__1(_63), numbervars([_63]), write(jobs(_63)), nl, fail. show_facts :- p__1(_63,_65), numbervars([_63,_65]), write(p(_63,_65)), nl, fail. show_facts :- el__1(_63,_65), numbervars([_63,_65]), write(el(_63,_65)), nl, fail. show_facts :- rev__1(_63,_65,_67), numbervars([_63,_65,_67]), write(rev(_63,_65,_67)), nl, fail. show_facts :- disj__1(_63,_65,_67,_69), numbervars([_63,_65,_67,_69]), write(disj(_63,_65,_67,_69)), nl, fail. show_facts :- disjunct__1(_63), numbervars([_63]), write(disjunct(_63)), nl, fail. show_facts :- ellist__1(_63,_65,_67), numbervars([_63,_65,_67]), write(ellist(_63,_65,_67)), nl, fail. show_facts :- makedisj2__1(_63,_65,_67,_69), numbervars([_63,_65,_67,_69]), write(makedisj2(_63,_65,_67,_69)), nl, fail. show_facts :- makedisj1__1(_63,_65,_67), numbervars([_63,_65,_67]), write(makedisj1(_63,_65,_67)), nl, fail. show_facts :- makedisj__1(_63,_65,_67,_69), numbervars([_63,_65,_67,_69]), write(makedisj(_63,_65,_67,_69)), nl, fail. show_facts :- makeminnf__1(_63,_65), numbervars([_63,_65]), write(makeminnf(_63,_65)), nl, fail. show_facts :- makeminsf__1(_63,_65), numbervars([_63,_65]), write(makeminsf(_63,_65)), nl, fail. show_facts :- makeminaf__1(_63,_65), numbervars([_63,_65]), write(makeminaf(_63,_65)), nl, fail. show_facts :- smeqc__1(_63,_65,_67), numbervars([_63,_65,_67]), write(smeqc(_63,_65,_67)), nl, fail. show_facts :- makemaxef__1(_63,_65), numbervars([_63,_65]), write(makemaxef(_63,_65)), nl, fail. show_facts :- makemaxnf__1(_63,_65), numbervars([_63,_65]), write(makemaxnf(_63,_65)), nl, fail. show_facts :- gteqc__1(_63,_65,_67), numbervars([_63,_65,_67]), write(gteqc(_63,_65,_67)), nl, fail. show_facts :- makeprec__1(_63,_65), numbervars([_63,_65]), write(makeprec(_63,_65)), nl, fail. show_facts :- setup__1(_63,_65,_67), numbervars([_63,_65,_67]), write(setup(_63,_65,_67)), nl, fail. show_facts :- memberEl__1(_63,_65,_67), numbervars([_63,_65,_67]), write(memberEl(_63,_65,_67)), nl, fail. show_facts :- makevars__1(_63,_65), numbervars([_63,_65]), write(makevars(_63,_65)), nl, fail. show_facts :- top__1(_63), numbervars([_63]), write(top(_63)), nl, fail. show_facts :- zero200__1(_63), numbervars([_63]), write(zero200(_63)), nl, fail. show_facts.