:- dynamic ct/3. :- multifile ct/3. ct(allocateJobInstance(JInstance), ( partition(P1), jobInstance(JInstance), ins(_,JInstance,Job), memory(M1), memory(M2), freeMemory(_1,P1,M1), job(Job), memoryNeeded(_2,Job,M2), not(jobs(_,_P2,JInstance)), not( jobs(_j1,P1,_ji1), jobs(_j2,P1,_ji2), jobs(_j3,P1,_ji3), jobs(_j4,P1,_ji4), jobs(_j5,P1,_ji5), jobs(_j6,P1,_ji6), jobs(_j7,P1,_ji7), jobs(_j8,P1,_ji8), jobs(_j9,P1,_ji9), jobs(_j10,P1,_ji10) %find PartitionJob(P1,JI) # N; %check(N < 10); ) ),( add(jobs(_,P1,JInstance)) )). ct(allocatePartition(Partition), ( partition(Partition), cPIOM(CPIOM), not(partitions(_,_OtherCPIOM,Partition)) ),( add(partitions(_,CPIOM,Partition)) )). ct(allocateCPIOM(CPIOM), ( 'Cabinet'(Cabinet), 'CPIOM'(CPIOM), not(cpioms(_,_OtherCabinet,CPIOM)) ),( add(cpioms(_,Cabinet,CPIOM)) )). ct(createCPIOM(Cl,S), ( iDCPIOM(ID) ),( add(cPIOM(CP)) )).