///////////////////////////////////////////////// // pc.cp // code for CLab // Sathi // IT-University of Copenhagen 24-October-2004 ///////////////////////////////////////////////// type mb_idD [0..10]; mb_cpuslotD [0..3]; mb_controllertypeD [0..2]; mb_SOME_slotD [0..3]; mb_controllercountD [0..4]; mb_mincpufreqD [0..11]; mb_maxcpufreqD [0..11]; mb_ramslotD [0..2]; mb_ramcapacityD [0..7]; pro_idD [0..7]; pro_cpuslotD [0..3]; pro_freqD [0..11]; hd1_idD [0..6]; hd1_busD [0..2]; hd1_capacityD [0..6]; hd2_idD [0..6]; hd2_busD [0..2]; hd2_capacityD [0..6]; ram1_idD [0..6]; ram1_slotD [0..2]; ram1_capacityD [0..32]; ram2_idD [0..6]; ram2_slotD [0..2]; ram2_capacityD [0..32]; ram3_idD [0..6]; ram3_slotD [0..2]; ram3_capacityD [0..32]; ram4_idD [0..6]; ram4_slotD [0..2]; ram4_capacityD [0..32]; graphics_idD [0..6]; graphics_slotD [1..3]; pc_clockD [0..11]; pc_memoryD [0..32]; ram1_presentD [ 0..1]; ram2_presentD [ 0..1]; ram3_presentD [ 0..1]; ram4_presentD [ 0..1]; variable mb_idD mb_id ; mb_cpuslotD mb_cpuslot ; mb_controllertypeD mb_controllertype ; mb_SOME_slotD mb_SOME_slot0,mb_SOME_slot1,mb_SOME_slot2,mb_SOME_slot3,mb_SOME_slot4,mb_SOME_slot5,mb_SOME_slot6,mb_SOME_slot7 ; mb_controllercountD mb_controllercount ; mb_mincpufreqD mb_mincpufreq ; mb_maxcpufreqD mb_maxcpufreq ; mb_ramslotD mb_ramslot ; mb_ramcapacityD mb_ramcapacity ; pro_idD pro_id; pro_cpuslotD pro_cpuslot; pro_freqD pro_freq; hd1_idD hd1_id; hd1_busD hd1_bus; hd1_capacityD hd1_capacity; hd2_idD hd2_id; hd2_busD hd2_bus; hd2_capacityD hd2_capacity; ram1_idD ram1_id; ram1_slotD ram1_slot; ram1_capacityD ram1_capacity; ram2_idD ram2_id; ram2_slotD ram2_slot; ram2_capacityD ram2_capacity; ram3_idD ram3_id; ram3_slotD ram3_slot; ram3_capacityD ram3_capacity; ram4_idD ram4_id; ram4_slotD ram4_slot; ram4_capacityD ram4_capacity; graphics_idD graphics_id; graphics_slotD graphics_slot; pc_clockD pc_clock; pc_memoryD pc_memory; ram1_presentD ram1_present; ram2_presentD ram2_present; ram3_presentD ram3_present; ram4_presentD ram4_present; rule ( ((mb_id==6)&&(mb_cpuslot==0)&&(mb_controllertype==0)&&(mb_controllercount==4) &&(mb_mincpufreq==1)&&(mb_maxcpufreq==7)&&(mb_ramslot==2)&&(mb_ramcapacity==4) &&(mb_SOME_slot0==1)&&(mb_SOME_slot1==1)&&(mb_SOME_slot2==1)&&(mb_SOME_slot3==1) &&(mb_SOME_slot4==2)&&(mb_SOME_slot5==2)&&(mb_SOME_slot6==2)&&(mb_SOME_slot7==3)) ||((mb_id==5)&&(mb_cpuslot==0)&&(mb_controllertype==0)&&(mb_controllercount==4) &&(mb_mincpufreq==1)&&(mb_maxcpufreq==7)&&(mb_ramslot==2)&&(mb_ramcapacity==4) &&(mb_SOME_slot0==1)&&(mb_SOME_slot1==1)&&(mb_SOME_slot2==1)&&(mb_SOME_slot3==1) &&(mb_SOME_slot4==1)&&(mb_SOME_slot5==2)&&(mb_SOME_slot6==2)&&(mb_SOME_slot7==3)) ||((mb_id==8)&&(mb_cpuslot==1)&&(mb_controllertype==0)&&(mb_controllercount==4) &&(mb_mincpufreq==0)&&(mb_maxcpufreq==4)&&(mb_ramslot==2)&&(mb_ramcapacity==3) &&(mb_SOME_slot0==1)&&(mb_SOME_slot1==1)&&(mb_SOME_slot2==1)&&(mb_SOME_slot3==2) &&(mb_SOME_slot4==2)&&(mb_SOME_slot5==2)&&(mb_SOME_slot6==3)&&(mb_SOME_slot7==0)) ||((mb_id==8)&&(mb_cpuslot==1)&&(mb_controllertype==0)&&(mb_controllercount==4) &&(mb_mincpufreq==0)&&(mb_maxcpufreq==4)&&(mb_ramslot==0)&&(mb_ramcapacity==3) &&(mb_SOME_slot0==1)&&(mb_SOME_slot1==1)&&(mb_SOME_slot2==1)&&(mb_SOME_slot3==2) &&(mb_SOME_slot4==2)&&(mb_SOME_slot5==2)&&(mb_SOME_slot6==3)&&(mb_SOME_slot7==0)) ||((mb_id==10)&&(mb_cpuslot==1)&&(mb_controllertype==0)&&(mb_controllercount==4) &&(mb_mincpufreq==0)&&(mb_maxcpufreq==3)&&(mb_ramslot==2)&&(mb_ramcapacity==3) &&(mb_SOME_slot0==1)&&(mb_SOME_slot1==1)&&(mb_SOME_slot2==1)&&(mb_SOME_slot3==1) &&(mb_SOME_slot4==2)&&(mb_SOME_slot5==2)&&(mb_SOME_slot6==3)&&(mb_SOME_slot7==0)) ||((mb_id==10)&&(mb_cpuslot==1)&&(mb_controllertype==0)&&(mb_controllercount==4) &&(mb_mincpufreq==0)&&(mb_maxcpufreq==3)&&(mb_ramslot==0)&&(mb_ramcapacity==3) &&(mb_SOME_slot0==1)&&(mb_SOME_slot1==1)&&(mb_SOME_slot2==1)&&(mb_SOME_slot3==1) &&(mb_SOME_slot4==2)&&(mb_SOME_slot5==2)&&(mb_SOME_slot6==3)&&(mb_SOME_slot7==0)) ||((mb_id==3)&&(mb_cpuslot==0)&&(mb_controllertype==0)&&(mb_controllercount==4) &&(mb_mincpufreq==1)&&(mb_maxcpufreq==9)&&(mb_ramslot==2)&&(mb_ramcapacity==3) &&(mb_SOME_slot0==1)&&(mb_SOME_slot1==1)&&(mb_SOME_slot2==1)&&(mb_SOME_slot3==1) &&(mb_SOME_slot4==2)&&(mb_SOME_slot5==2)&&(mb_SOME_slot6==2)&&(mb_SOME_slot7==3)) ||((mb_id==9)&&(mb_cpuslot==0)&&(mb_controllertype==0)&&(mb_controllercount==4) &&(mb_mincpufreq==1)&&(mb_maxcpufreq==4)&&(mb_ramslot==2)&&(mb_ramcapacity==4) &&(mb_SOME_slot0==1)&&(mb_SOME_slot1==1)&&(mb_SOME_slot2==2)&&(mb_SOME_slot3==2) &&(mb_SOME_slot4==3)&&(mb_SOME_slot5==0)&&(mb_SOME_slot6==0)&&(mb_SOME_slot7==0)) ||((mb_id==4)&&(mb_cpuslot==0)&&(mb_controllertype==1)&&(mb_controllercount==4) &&(mb_mincpufreq==1)&&(mb_maxcpufreq==7)&&(mb_ramslot==2)&&(mb_ramcapacity==3) &&(mb_SOME_slot0==1)&&(mb_SOME_slot1==1)&&(mb_SOME_slot2==1)&&(mb_SOME_slot3==1) &&(mb_SOME_slot4==2)&&(mb_SOME_slot5==2)&&(mb_SOME_slot6==2)&&(mb_SOME_slot7==3)) ||((mb_id==7)&&(mb_cpuslot==1)&&(mb_controllertype==0)&&(mb_controllercount==4) &&(mb_mincpufreq==1)&&(mb_maxcpufreq==6)&&(mb_ramslot==2)&&(mb_ramcapacity==3) &&(mb_SOME_slot0==1)&&(mb_SOME_slot1==1)&&(mb_SOME_slot2==1)&&(mb_SOME_slot3==2) &&(mb_SOME_slot4==2)&&(mb_SOME_slot5==3)&&(mb_SOME_slot6==0)&&(mb_SOME_slot7==0)) ||((mb_id==1)&&(mb_cpuslot==3)&&(mb_controllertype==0)&&(mb_controllercount==4) &&(mb_mincpufreq==8)&&(mb_maxcpufreq==10)&&(mb_ramslot==2)&&(mb_ramcapacity==3) &&(mb_SOME_slot0==1)&&(mb_SOME_slot1==1)&&(mb_SOME_slot2==1)&&(mb_SOME_slot3==1) &&(mb_SOME_slot4==1)&&(mb_SOME_slot5==2)&&(mb_SOME_slot6==3)&&(mb_SOME_slot7==0)) ||((mb_id==2)&&(mb_cpuslot==3)&&(mb_controllertype==0)&&(mb_controllercount==4) &&(mb_mincpufreq==8)&&(mb_maxcpufreq==10)&&(mb_ramslot==2)&&(mb_ramcapacity==3) &&(mb_SOME_slot0==1)&&(mb_SOME_slot1==1)&&(mb_SOME_slot2==1)&&(mb_SOME_slot3==1) &&(mb_SOME_slot4==1)&&(mb_SOME_slot5==2)&&(mb_SOME_slot6==3)&&(mb_SOME_slot7==0)) ||((mb_id==0)&&(mb_cpuslot==3)&&(mb_controllertype==0)&&(mb_controllercount==4) &&(mb_mincpufreq==8)&&(mb_maxcpufreq==11)&&(mb_ramslot==2)&&(mb_ramcapacity==3) &&(mb_SOME_slot0==1)&&(mb_SOME_slot1==1)&&(mb_SOME_slot2==1)&&(mb_SOME_slot3==1) &&(mb_SOME_slot4==2)&&(mb_SOME_slot5==3)&&(mb_SOME_slot6==0)&&(mb_SOME_slot7==0)) ); (((pro_id==6)&&(pro_cpuslot==1)&&(pro_freq==2)) ||((pro_id==0)&&(pro_cpuslot==3)&&(pro_freq==11)) ||((pro_id==1)&&(pro_cpuslot==3)&&(pro_freq==8)) ||((pro_id==7)&&(pro_cpuslot==1)&&(pro_freq==1)) ||((pro_id==3)&&(pro_cpuslot==0)&&(pro_freq==5)) ||((pro_id==4)&&(pro_cpuslot==0)&&(pro_freq==4)) ||((pro_id==2)&&(pro_cpuslot==0)&&(pro_freq==9)) ||((pro_id==5)&&(pro_cpuslot==0)&&(pro_freq==3)) ); ( ((hd1_id==0)&&(hd1_bus==0)&&(hd1_capacity==0)) ||((hd1_id==0)&&(hd1_bus==1)&&(hd1_capacity==0)) ||((hd1_id==5)&&(hd1_bus==0)&&(hd1_capacity==2)) ||((hd1_id==2)&&(hd1_bus==0)&&(hd1_capacity==5)) ||((hd1_id==3)&&(hd1_bus==0)&&(hd1_capacity==4)) ||((hd1_id==1)&&(hd1_bus==1)&&(hd1_capacity==6)) ||((hd1_id==6)&&(hd1_bus==1)&&(hd1_capacity==1)) ||((hd1_id==4)&&(hd1_bus==0)&&(hd1_capacity==3)) ); ( ((hd2_id==0)&&(hd2_bus==0)&&(hd2_capacity==0)) ||((hd2_id==0)&&(hd2_bus==1)&&(hd2_capacity==0)) ||((hd2_id==5)&&(hd2_bus==0)&&(hd2_capacity==2)) ||((hd2_id==2)&&(hd2_bus==0)&&(hd2_capacity==5)) ||((hd2_id==3)&&(hd2_bus==0)&&(hd2_capacity==4)) ||((hd2_id==1)&&(hd2_bus==1)&&(hd2_capacity==6)) ||((hd2_id==6)&&(hd2_bus==1)&&(hd2_capacity==1)) ||((hd2_id==4)&&(hd2_bus==0)&&(hd2_capacity==3)) ); ( ((ram1_id==0)&&(ram1_slot==0)&&(ram1_capacity==0)) ||((ram1_id==0)&&(ram1_slot==2)&&(ram1_capacity==0)) ||((ram1_id==6)&&(ram1_slot==0)&&(ram1_capacity==1)) ||((ram1_id==2)&&(ram1_slot==2)&&(ram1_capacity==4)) ||((ram1_id==5)&&(ram1_slot==2)&&(ram1_capacity==1)) ||((ram1_id==4)&&(ram1_slot==2)&&(ram1_capacity==2)) ||((ram1_id==3)&&(ram1_slot==2)&&(ram1_capacity==2)) ||((ram1_id==1)&&(ram1_slot==2)&&(ram1_capacity==8)) ); ( ((ram2_id==0)&&(ram2_slot==0)&&(ram2_capacity==0)) ||((ram2_id==0)&&(ram2_slot==2)&&(ram2_capacity==0)) ||((ram2_id==6)&&(ram2_slot==0)&&(ram2_capacity==1)) ||((ram2_id==2)&&(ram2_slot==2)&&(ram2_capacity==4)) ||((ram2_id==5)&&(ram2_slot==2)&&(ram2_capacity==1)) ||((ram2_id==4)&&(ram2_slot==2)&&(ram2_capacity==2)) ||((ram2_id==3)&&(ram2_slot==2)&&(ram2_capacity==2)) ||((ram2_id==1)&&(ram2_slot==2)&&(ram2_capacity==8)) ); ( ((ram3_id==0)&&(ram3_slot==0)&&(ram3_capacity==0)) ||((ram3_id==0)&&(ram3_slot==2)&&(ram3_capacity==0)) ||((ram3_id==6)&&(ram3_slot==0)&&(ram3_capacity==1)) ||((ram3_id==2)&&(ram3_slot==2)&&(ram3_capacity==4)) ||((ram3_id==5)&&(ram3_slot==2)&&(ram3_capacity==1)) ||((ram3_id==4)&&(ram3_slot==2)&&(ram3_capacity==2)) ||((ram3_id==3)&&(ram3_slot==2)&&(ram3_capacity==2)) ||((ram3_id==1)&&(ram3_slot==2)&&(ram3_capacity==8)) ); ( ((ram4_id==0)&&(ram4_slot==0)&&(ram4_capacity==0)) ||((ram4_id==0)&&(ram4_slot==2)&&(ram4_capacity==0)) ||((ram4_id==6)&&(ram4_slot==0)&&(ram4_capacity==1)) ||((ram4_id==2)&&(ram4_slot==2)&&(ram4_capacity==4)) ||((ram4_id==5)&&(ram4_slot==2)&&(ram4_capacity==1)) ||((ram4_id==4)&&(ram4_slot==2)&&(ram4_capacity==2)) ||((ram4_id==3)&&(ram4_slot==2)&&(ram4_capacity==2)) ||((ram4_id==1)&&(ram4_slot==2)&&(ram4_capacity==8)) ); ( ((graphics_id==0)&&(graphics_slot==3)) || ((graphics_id==3)&&(graphics_slot==3)) || ((graphics_id==6)&&(graphics_slot==1)) || ((graphics_id==2)&&(graphics_slot==3)) || ((graphics_id==5)&&(graphics_slot==1)) || ((graphics_id==4)&&(graphics_slot==3)) || ((graphics_id==1)&&(graphics_slot==3)) ); ((mb_cpuslot==pro_cpuslot)&&(pro_freq>=mb_mincpufreq)&&(pro_freq<=mb_maxcpufreq)); (mb_controllertype==hd1_bus); (mb_controllertype==hd2_bus); (mb_ramslot==ram1_slot); (mb_ramslot==ram2_slot); (mb_ramslot==ram3_slot); (mb_ramslot==ram4_slot); ((ram1_present==0)||(ram1_id>0)); ((ram1_present==1)||(ram1_id<1)); ((ram2_present==0)||(ram2_id>0)); ((ram2_present==1)||(ram2_id<1)); ((ram3_present==0)||(ram3_id>0)); ((ram3_present==1)||(ram3_id<1)); ((ram4_present==0)||(ram4_id>0)); ((ram4_present==1)||(ram4_id<1)); (mb_ramcapacity>=(ram1_present+ram2_present+ram3_present+ram4_present)); ((!(ram2_id>0)||(ram1_id>0))); ((!(ram3_id>0)||(ram1_id>0))); ((!(ram3_id>0)||(ram2_id>0))); ((!(ram4_id>0)||(ram1_id>0))); ((!(ram4_id>0)||(ram2_id>0))); ((!(ram4_id>0)||(ram3_id>0))); ( (mb_SOME_slot0==graphics_slot) ||(mb_SOME_slot1==graphics_slot) ||(mb_SOME_slot2==graphics_slot) ||(mb_SOME_slot3==graphics_slot) ||(mb_SOME_slot4==graphics_slot) ||(mb_SOME_slot5==graphics_slot) ||(mb_SOME_slot6==graphics_slot) ||(mb_SOME_slot7==graphics_slot) ); (hd1_id>0); (ram1_id>0); (pc_clock==pro_freq); (pc_memory==(ram1_capacity+ram2_capacity+ram3_capacity+ram4_capacity));