objids(1..24). typeInteger(0). typeString("n0"). typeInteger(1). typeString("n1"). typeInteger(2). typeString("n2"). typeInteger(3). typeString("n3"). typeInteger(4). typeString("n4"). typeInteger(5). typeString("n5"). typeInteger(6). typeString("n6"). typeInteger(7). typeString("n7"). typeInteger(8). typeString("n8"). typeInteger(9). typeString("n9"). typeInteger(10). typeString("n10"). typeInteger(11). typeString("n11"). typeInteger(12). typeString("n12"). typeInteger(13). typeString("n13"). typeInteger(14). typeString("n14"). typeInteger(15). typeString("n15"). typeInteger(16). typeString("n16"). typeInteger(17). typeString("n17"). typeInteger(18). typeString("n18"). typeInteger(19). typeString("n19"). typeBoolean(true). typeBoolean(false). typeString("a"). objremovele_(O) :- not objexiststargetle_(O), objexistsle_(O). objremovemi_(O) :- not objexiststargetmi_(O), objexistsmi_(O). objremoveri_(O) :- not objexiststargetri_(O), objexistsri_(O). orile_Device(O) :- main_orile_Device(O). le_Device(O) :- main_le_Device(O). targetle_Device(O) :- main_targetle_Device(O). -noobj(O) :- targetle_Device(O). castle_(O) :- main_targetle_Device(O), objexistsle_(O), not main_le_Device(O). castle_Device(O) :- main_targetle_Device(O), objexistsle_(O), not main_le_Device(O). main_targetle_Device(O) :- main_le_Device(O), not castle_(O),not -objremovele_(O). 1 {targetle_prop_Device_fixed(S,T): typeBoolean(T)} 1 :- targetle_Device(S). targetle_Device(S) :- targetle_prop_Device_fixed(S,T). typeBoolean(T) :- orile_prop_Device_fixed(S,T). typeBoolean(T) :- le_prop_Device_fixed(S,T). typeBoolean(T) :- targetle_prop_Device_fixed(S,T). targetle_prop_Device_fixed(S,T) :- le_prop_Device_fixed(S,T), not -targetle_prop_Device_fixed(S,T). 1 {targetle_prop_Device_name(S,T): typeString(T)} 1 :- targetle_Device(S). targetle_Device(S) :- targetle_prop_Device_name(S,T). typeString(T) :- orile_prop_Device_name(S,T). typeString(T) :- le_prop_Device_name(S,T). typeString(T) :- targetle_prop_Device_name(S,T). targetle_prop_Device_name(S,T) :- le_prop_Device_name(S,T), not -targetle_prop_Device_name(S,T). 0 {targetle_edge_Device_incoming(S,T): targetle_Connection(T)} 20 :- targetle_Device(S). targetle_Device(S) :- targetle_edge_Device_incoming(S,T). targetle_Connection(T) :- targetle_edge_Device_incoming(S,T). orile_Connection(O) :- main_orile_Connection(O). le_Connection(O) :- main_le_Connection(O). targetle_Connection(O) :- main_targetle_Connection(O). -noobj(O) :- targetle_Connection(O). castle_(O) :- main_targetle_Connection(O), objexistsle_(O), not main_le_Connection(O). castle_Connection(O) :- main_targetle_Connection(O), objexistsle_(O), not main_le_Connection(O). main_targetle_Connection(O) :- main_le_Connection(O), not castle_(O),not -objremovele_(O). 0 {targetle_edge_Connection_source(S,T): targetle_Device(T)} 1 :- targetle_Connection(S). targetle_Connection(S) :- targetle_edge_Connection_source(S,T). targetle_Device(T) :- targetle_edge_Connection_source(S,T). orile_edge_Connection_source(T,S) :- orile_edge_Device_outgoing(S,T). le_edge_Connection_source(T,S) :- le_edge_Device_outgoing(S,T). targetle_edge_Connection_source(T,S) :- targetle_edge_Device_outgoing(S,T). targetle_edge_Connection_source(S,T) :- le_edge_Connection_source(S,T), not -targetle_edge_Connection_source(S,T). 0 {targetle_edge_Connection_target(S,T): targetle_Device(T)} 1 :- targetle_Connection(S). targetle_Connection(S) :- targetle_edge_Connection_target(S,T). targetle_Device(T) :- targetle_edge_Connection_target(S,T). orile_edge_Connection_target(T,S) :- orile_edge_Device_incoming(S,T). le_edge_Connection_target(T,S) :- le_edge_Device_incoming(S,T). targetle_edge_Connection_target(T,S) :- targetle_edge_Device_incoming(S,T). targetle_edge_Connection_target(S,T) :- le_edge_Connection_target(S,T), not -targetle_edge_Connection_target(S,T). 0 {targetle_prop_Connection_speed(S,T): typeInteger(T)} 1 :- targetle_Connection(S). targetle_Connection(S) :- targetle_prop_Connection_speed(S,T). typeInteger(T) :- orile_prop_Connection_speed(S,T). typeInteger(T) :- le_prop_Connection_speed(S,T). typeInteger(T) :- targetle_prop_Connection_speed(S,T). targetle_prop_Connection_speed(S,T) :- le_prop_Connection_speed(S,T), not -targetle_prop_Connection_speed(S,T). orile_edge_Device_incoming(T,S) :- orile_edge_Connection_target(S,T). le_edge_Device_incoming(T,S) :- le_edge_Connection_target(S,T). targetle_edge_Device_incoming(T,S) :- targetle_edge_Connection_target(S,T). targetle_edge_Device_incoming(S,T) :- le_edge_Device_incoming(S,T), not -targetle_edge_Device_incoming(S,T). 0 {targetle_edge_Device_outgoing(S,T): targetle_Connection(T)} 20 :- targetle_Device(S). targetle_Device(S) :- targetle_edge_Device_outgoing(S,T). targetle_Connection(T) :- targetle_edge_Device_outgoing(S,T). orile_edge_Device_outgoing(T,S) :- orile_edge_Connection_source(S,T). le_edge_Device_outgoing(T,S) :- le_edge_Connection_source(S,T). targetle_edge_Device_outgoing(T,S) :- targetle_edge_Connection_source(S,T). targetle_edge_Device_outgoing(S,T) :- le_edge_Device_outgoing(S,T), not -targetle_edge_Device_outgoing(S,T). oriri_Computer(O) :- main_oriri_Computer(O). oriri_Dev(O) :- oriri_Computer(O). ri_Computer(O) :- main_ri_Computer(O). ri_Dev(O) :- ri_Computer(O). targetri_Computer(O) :- main_targetri_Computer(O). targetri_Dev(O) :- targetri_Computer(O). -noobj(O) :- targetri_Computer(O). castri_(O) :- main_targetri_Computer(O), objexistsri_(O), not main_ri_Computer(O). castri_Computer(O) :- main_targetri_Computer(O), objexistsri_(O), not main_ri_Computer(O). main_targetri_Computer(O) :- main_ri_Computer(O), not castri_(O),not -objremoveri_(O). oriri_Server(O) :- main_oriri_Server(O). oriri_Dev(O) :- oriri_Server(O). ri_Server(O) :- main_ri_Server(O). ri_Dev(O) :- ri_Server(O). targetri_Server(O) :- main_targetri_Server(O). targetri_Dev(O) :- targetri_Server(O). -noobj(O) :- targetri_Server(O). castri_(O) :- main_targetri_Server(O), objexistsri_(O), not main_ri_Server(O). castri_Server(O) :- main_targetri_Server(O), objexistsri_(O), not main_ri_Server(O). main_targetri_Server(O) :- main_ri_Server(O), not castri_(O),not -objremoveri_(O). oriri_Router(O) :- main_oriri_Router(O). oriri_Dev(O) :- oriri_Router(O). ri_Router(O) :- main_ri_Router(O). ri_Dev(O) :- ri_Router(O). targetri_Router(O) :- main_targetri_Router(O). targetri_Dev(O) :- targetri_Router(O). -noobj(O) :- targetri_Router(O). castri_(O) :- main_targetri_Router(O), objexistsri_(O), not main_ri_Router(O). castri_Router(O) :- main_targetri_Router(O), objexistsri_(O), not main_ri_Router(O). main_targetri_Router(O) :- main_ri_Router(O), not castri_(O),not -objremoveri_(O). 1 {targetri_prop_Router_maxSpeed(S,T): typeInteger(T)} 1 :- targetri_Router(S). targetri_Router(S) :- targetri_prop_Router_maxSpeed(S,T). typeInteger(T) :- oriri_prop_Router_maxSpeed(S,T). typeInteger(T) :- ri_prop_Router_maxSpeed(S,T). typeInteger(T) :- targetri_prop_Router_maxSpeed(S,T). targetri_prop_Router_maxSpeed(S,T) :- ri_prop_Router_maxSpeed(S,T), not -targetri_prop_Router_maxSpeed(S,T). oriri_Dev(O) :- main_oriri_Dev(O). ri_Dev(O) :- main_ri_Dev(O). targetri_Dev(O) :- main_targetri_Dev(O). -noobj(O) :- targetri_Dev(O). :- main_targetri_Dev(O). castri_(O) :- main_targetri_Dev(O), objexistsri_(O), not main_ri_Dev(O). castri_Dev(O) :- main_targetri_Dev(O), objexistsri_(O), not main_ri_Dev(O). main_targetri_Dev(O) :- main_ri_Dev(O), not castri_(O),not -objremoveri_(O). 0 {targetri_prop_Dev_name(S,T): typeString(T)} 1 :- targetri_Dev(S). targetri_Dev(S) :- targetri_prop_Dev_name(S,T). typeString(T) :- oriri_prop_Dev_name(S,T). typeString(T) :- ri_prop_Dev_name(S,T). typeString(T) :- targetri_prop_Dev_name(S,T). targetri_prop_Dev_name(S,T) :- ri_prop_Dev_name(S,T), not -targetri_prop_Dev_name(S,T). 0 {targetri_edge_Dev_outgoing(S,T): targetri_Cable(T)} 4 :- targetri_Dev(S). targetri_Dev(S) :- targetri_edge_Dev_outgoing(S,T). targetri_Cable(T) :- targetri_edge_Dev_outgoing(S,T). oriri_CopperCable(O) :- main_oriri_CopperCable(O). oriri_Cable(O) :- oriri_CopperCable(O). ri_CopperCable(O) :- main_ri_CopperCable(O). ri_Cable(O) :- ri_CopperCable(O). targetri_CopperCable(O) :- main_targetri_CopperCable(O). targetri_Cable(O) :- targetri_CopperCable(O). -noobj(O) :- targetri_CopperCable(O). castri_(O) :- main_targetri_CopperCable(O), objexistsri_(O), not main_ri_CopperCable(O). castri_CopperCable(O) :- main_targetri_CopperCable(O), objexistsri_(O), not main_ri_CopperCable(O). main_targetri_CopperCable(O) :- main_ri_CopperCable(O), not castri_(O),not -objremoveri_(O). oriri_GlassFiberCable(O) :- main_oriri_GlassFiberCable(O). oriri_Cable(O) :- oriri_GlassFiberCable(O). ri_GlassFiberCable(O) :- main_ri_GlassFiberCable(O). ri_Cable(O) :- ri_GlassFiberCable(O). targetri_GlassFiberCable(O) :- main_targetri_GlassFiberCable(O). targetri_Cable(O) :- targetri_GlassFiberCable(O). -noobj(O) :- targetri_GlassFiberCable(O). castri_(O) :- main_targetri_GlassFiberCable(O), objexistsri_(O), not main_ri_GlassFiberCable(O). castri_GlassFiberCable(O) :- main_targetri_GlassFiberCable(O), objexistsri_(O), not main_ri_GlassFiberCable(O). main_targetri_GlassFiberCable(O) :- main_ri_GlassFiberCable(O), not castri_(O),not -objremoveri_(O). oriri_Cable(O) :- main_oriri_Cable(O). ri_Cable(O) :- main_ri_Cable(O). targetri_Cable(O) :- main_targetri_Cable(O). -noobj(O) :- targetri_Cable(O). :- main_targetri_Cable(O). castri_(O) :- main_targetri_Cable(O), objexistsri_(O), not main_ri_Cable(O). castri_Cable(O) :- main_targetri_Cable(O), objexistsri_(O), not main_ri_Cable(O). main_targetri_Cable(O) :- main_ri_Cable(O), not castri_(O),not -objremoveri_(O). 1 {targetri_prop_Cable_speed(S,T): typeInteger(T)} 1 :- targetri_Cable(S). targetri_Cable(S) :- targetri_prop_Cable_speed(S,T). typeInteger(T) :- oriri_prop_Cable_speed(S,T). typeInteger(T) :- ri_prop_Cable_speed(S,T). typeInteger(T) :- targetri_prop_Cable_speed(S,T). targetri_prop_Cable_speed(S,T) :- ri_prop_Cable_speed(S,T), not -targetri_prop_Cable_speed(S,T). 1 {targetri_edge_Cable_source(S,T): targetri_Dev(T)} 1 :- targetri_Cable(S). targetri_Cable(S) :- targetri_edge_Cable_source(S,T). targetri_Dev(T) :- targetri_edge_Cable_source(S,T). oriri_edge_Cable_source(T,S) :- oriri_edge_Dev_outgoing(S,T). ri_edge_Cable_source(T,S) :- ri_edge_Dev_outgoing(S,T). targetri_edge_Cable_source(T,S) :- targetri_edge_Dev_outgoing(S,T). targetri_edge_Cable_source(S,T) :- ri_edge_Cable_source(S,T), not -targetri_edge_Cable_source(S,T). 1 {targetri_edge_Cable_target(S,T): targetri_Dev(T)} 1 :- targetri_Cable(S). targetri_Cable(S) :- targetri_edge_Cable_target(S,T). targetri_Dev(T) :- targetri_edge_Cable_target(S,T). oriri_edge_Cable_target(T,S) :- oriri_edge_Dev_incoming(S,T). ri_edge_Cable_target(T,S) :- ri_edge_Dev_incoming(S,T). targetri_edge_Cable_target(T,S) :- targetri_edge_Dev_incoming(S,T). targetri_edge_Cable_target(S,T) :- ri_edge_Cable_target(S,T), not -targetri_edge_Cable_target(S,T). oriri_edge_Dev_outgoing(T,S) :- oriri_edge_Cable_source(S,T). ri_edge_Dev_outgoing(T,S) :- ri_edge_Cable_source(S,T). targetri_edge_Dev_outgoing(T,S) :- targetri_edge_Cable_source(S,T). targetri_edge_Dev_outgoing(S,T) :- ri_edge_Dev_outgoing(S,T), not -targetri_edge_Dev_outgoing(S,T). 0 {targetri_edge_Dev_incoming(S,T): targetri_Cable(T)} 4 :- targetri_Dev(S). targetri_Dev(S) :- targetri_edge_Dev_incoming(S,T). targetri_Cable(T) :- targetri_edge_Dev_incoming(S,T). oriri_edge_Dev_incoming(T,S) :- oriri_edge_Cable_target(S,T). ri_edge_Dev_incoming(T,S) :- ri_edge_Cable_target(S,T). targetri_edge_Dev_incoming(T,S) :- targetri_edge_Cable_target(S,T). targetri_edge_Dev_incoming(S,T) :- ri_edge_Dev_incoming(S,T), not -targetri_edge_Dev_incoming(S,T). orile_Connection(O) :- main_orile_Connection(O). le_Connection(O) :- main_le_Connection(O). targetle_Connection(O) :- main_targetle_Connection(O). -noobj(O) :- targetle_Connection(O). castle_(O) :- main_targetle_Connection(O), objexistsle_(O), not main_le_Connection(O). castle_Connection(O) :- main_targetle_Connection(O), objexistsle_(O), not main_le_Connection(O). main_targetle_Connection(O) :- main_le_Connection(O), not castle_(O),not -objremovele_(O). 1 {targetmi_edge_LCon_rightcon(S,T): targetri_Cable(T)} 1 :- targetle_Connection(S). targetle_Connection(S) :- targetmi_edge_LCon_rightcon(S,T). targetri_Cable(T) :- targetmi_edge_LCon_rightcon(S,T). oriri_Cable(O) :- main_oriri_Cable(O). ri_Cable(O) :- main_ri_Cable(O). targetri_Cable(O) :- main_targetri_Cable(O). -noobj(O) :- targetri_Cable(O). castri_(O) :- main_targetri_Cable(O), objexistsri_(O), not main_ri_Cable(O). castri_Cable(O) :- main_targetri_Cable(O), objexistsri_(O), not main_ri_Cable(O). main_targetri_Cable(O) :- main_ri_Cable(O), not castri_(O),not -objremoveri_(O). 0 {targetmi_edge_RCon_leftcon(S,T): targetle_Connection(T)} 1 :- targetri_Cable(S). targetri_Cable(S) :- targetmi_edge_RCon_leftcon(S,T). targetle_Connection(T) :- targetmi_edge_RCon_leftcon(S,T). orimi_edge_RCon_leftcon(T,S) :- orimi_edge_LCon_rightcon(S,T). mi_edge_RCon_leftcon(T,S) :- mi_edge_LCon_rightcon(S,T). targetmi_edge_RCon_leftcon(T,S) :- targetmi_edge_LCon_rightcon(S,T). targetmi_edge_RCon_leftcon(S,T) :- mi_edge_RCon_leftcon(S,T), not -targetmi_edge_RCon_leftcon(S,T). orimi_edge_LCon_rightcon(T,S) :- orimi_edge_RCon_leftcon(S,T). mi_edge_LCon_rightcon(T,S) :- mi_edge_RCon_leftcon(S,T). targetmi_edge_LCon_rightcon(T,S) :- targetmi_edge_RCon_leftcon(S,T). targetmi_edge_LCon_rightcon(S,T) :- mi_edge_LCon_rightcon(S,T), not -targetmi_edge_LCon_rightcon(S,T). orile_Device(O) :- main_orile_Device(O). le_Device(O) :- main_le_Device(O). targetle_Device(O) :- main_targetle_Device(O). -noobj(O) :- targetle_Device(O). castle_(O) :- main_targetle_Device(O), objexistsle_(O), not main_le_Device(O). castle_Device(O) :- main_targetle_Device(O), objexistsle_(O), not main_le_Device(O). main_targetle_Device(O) :- main_le_Device(O), not castle_(O),not -objremovele_(O). 1 {targetmi_edge_LDevice_rightdev(S,T): targetri_Dev(T)} 1 :- targetle_Device(S). targetle_Device(S) :- targetmi_edge_LDevice_rightdev(S,T). targetri_Dev(T) :- targetmi_edge_LDevice_rightdev(S,T). oriri_Dev(O) :- main_oriri_Dev(O). ri_Dev(O) :- main_ri_Dev(O). targetri_Dev(O) :- main_targetri_Dev(O). -noobj(O) :- targetri_Dev(O). castri_(O) :- main_targetri_Dev(O), objexistsri_(O), not main_ri_Dev(O). castri_Dev(O) :- main_targetri_Dev(O), objexistsri_(O), not main_ri_Dev(O). main_targetri_Dev(O) :- main_ri_Dev(O), not castri_(O),not -objremoveri_(O). 0 {targetmi_edge_RDevice_leftdev(S,T): targetle_Device(T)} 1 :- targetri_Dev(S). targetri_Dev(S) :- targetmi_edge_RDevice_leftdev(S,T). targetle_Device(T) :- targetmi_edge_RDevice_leftdev(S,T). orimi_edge_RDevice_leftdev(T,S) :- orimi_edge_LDevice_rightdev(S,T). mi_edge_RDevice_leftdev(T,S) :- mi_edge_LDevice_rightdev(S,T). targetmi_edge_RDevice_leftdev(T,S) :- targetmi_edge_LDevice_rightdev(S,T). targetmi_edge_RDevice_leftdev(S,T) :- mi_edge_RDevice_leftdev(S,T), not -targetmi_edge_RDevice_leftdev(S,T). orimi_edge_LDevice_rightdev(T,S) :- orimi_edge_RDevice_leftdev(S,T). mi_edge_LDevice_rightdev(T,S) :- mi_edge_RDevice_leftdev(S,T). targetmi_edge_LDevice_rightdev(T,S) :- targetmi_edge_RDevice_leftdev(S,T). targetmi_edge_LDevice_rightdev(S,T) :- mi_edge_LDevice_rightdev(S,T), not -targetmi_edge_LDevice_rightdev(S,T). main_le_Device(newobj0). le_prop_Device_fixed(newobj0,true). le_prop_Device_name(newobj0,"pc1"). main_le_Connection(newobj1). le_prop_Connection_speed(newobj1,2). main_orile_Connection(newobj1). orile_prop_Connection_speed(newobj1,2). le_edge_Device_incoming(newobj0,newobj1). main_le_Device(newobj2). le_prop_Device_fixed(newobj2,true). le_prop_Device_name(newobj2,"pc2"). main_le_Connection(newobj3). le_prop_Connection_speed(newobj3,2). main_orile_Connection(newobj3). orile_prop_Connection_speed(newobj3,2). le_edge_Device_incoming(newobj2,newobj3). main_le_Device(newobj4). le_prop_Device_fixed(newobj4,true). le_prop_Device_name(newobj4,"pc3"). main_le_Connection(newobj5). le_prop_Connection_speed(newobj5,2). main_orile_Connection(newobj5). orile_prop_Connection_speed(newobj5,2). le_edge_Device_incoming(newobj4,newobj5). main_le_Device(newobj6). le_prop_Device_fixed(newobj6,true). le_prop_Device_name(newobj6,"srv1"). main_le_Connection(newobj7). le_prop_Connection_speed(newobj7,4). main_orile_Connection(newobj7). orile_prop_Connection_speed(newobj7,4). le_edge_Device_outgoing(newobj6,newobj7). main_le_Device(newobj8). le_prop_Device_fixed(newobj8,true). le_prop_Device_name(newobj8,"srv2"). main_le_Connection(newobj9). le_prop_Connection_speed(newobj9,4). main_orile_Connection(newobj9). orile_prop_Connection_speed(newobj9,4). le_edge_Device_outgoing(newobj8,newobj9). targetri_prop_Dev_name(P0,P1) :- operation_createServerName(P0, P1). targetri_prop_Dev_name(P0,P1) :- operation_createComputerName(P0, P1). main_targetri_Server(P1) :- operation_createServe(P0, P1, P2). main_targetri_GlassFiberCable(P2) :- operation_createServe(P0, P1, P2). targetri_edge_Cable_source(P2,P1) :- operation_createServe(P0, P1, P2). targetri_edge_Dev_outgoing(P1,P2) :- operation_createServe(P0, P1, P2). targetri_prop_Cable_speed(P2,P0) :- operation_createServe(P0, P1, P2). opcost_createServe12(P0,R) :- typeInteger(P0),typeInteger(P0),R=P0 *P0,typeInteger(P0). opcost_createServe1(P0,R) :- Ra = 3,opcost_createServe12(P0,Rb),R=3 *Rb,typeInteger(P0). opcost_createServe(P0,R) :- opcost_createServe1(P0,Ra),Rb = 80,R=Ra +80,typeInteger(P0). :~ operation_createServe(P0, P1, P2),opcost_createServe(P0,R). [R,operation_createServe(P0, P1, P2)] main_targetri_Router(P1) :- operation_createRoute(P0, P1). targetri_prop_Router_maxSpeed(P1,P0) :- operation_createRoute(P0, P1). opcost_createRoute1(P0,R) :- typeInteger(P0),typeInteger(P0),R=P0 *P0,typeInteger(P0). opcost_createRoute(P0,R) :- opcost_createRoute1(P0,Ra),Rb = 2,R=Ra +2,typeInteger(P0). :~ operation_createRoute(P0, P1),opcost_createRoute(P0,R). [R,operation_createRoute(P0, P1)] main_targetri_Computer(P0) :- operation_createCompute(P0). main_targetri_CopperCable(P0) :- operation_copyCable(P0, P1, P2). targetri_prop_Cable_speed(P0,P1) :- operation_copyCable(P0, P1, P2). targetri_edge_Cable_target(P0,P2) :- operation_copyCable(P0, P1, P2). targetri_edge_Dev_incoming(P2,P0) :- operation_copyCable(P0, P1, P2). main_targetri_GlassFiberCable(P0) :- operation_copyCable2(P0, P1, P2). targetri_prop_Cable_speed(P0,P1) :- operation_copyCable2(P0, P1, P2). targetri_edge_Cable_target(P0,P2) :- operation_copyCable2(P0, P1, P2). targetri_edge_Dev_incoming(P2,P0) :- operation_copyCable2(P0, P1, P2). main_targetri_GlassFiberCable(P0) :- operation_createGlassfiberCable(P0, P1). targetri_prop_Cable_speed(P0,P1) :- operation_createGlassfiberCable(P0, P1). :~ operation_createGlassfiberCable(P0, P1). [5,operation_createGlassfiberCable(P0, P1)] main_targetri_CopperCable(P0) :- operation_createCopperCable(P0, P1). targetri_prop_Cable_speed(P0,P1) :- operation_createCopperCable(P0, P1). :~ operation_createCopperCable(P0, P1). [3,operation_createCopperCable(P0, P1)] targetri_edge_Cable_source(P0,P1) :- operation_connectCableSource(P0, P1). targetri_edge_Dev_outgoing(P1,P0) :- operation_connectCableSource(P0, P1). :~ operation_connectCableSource(P0, P1). [1,operation_connectCableSource(P0, P1)] targetri_edge_Cable_target(P0,P1) :- operation_connectCableTarget(P0, P1). targetri_edge_Dev_incoming(P1,P0) :- operation_connectCableTarget(P0, P1). :~ operation_connectCableTarget(P0, P1). [1,operation_connectCableTarget(P0, P1)] targetmi_edge_LDevice_rightdev(P0,P1) :- operation_connectLeftRightDevice(P0, P1). targetmi_edge_RDevice_leftdev(P1,P0) :- operation_connectLeftRightDevice(P0, P1). targetmi_edge_LCon_rightcon(P0,P1) :- operation_connectLeftRightCon(P0, P1). targetmi_edge_RCon_leftcon(P1,P0) :- operation_connectLeftRightCon(P0, P1). 1 {operation_createServe(P0, P1, P2): objids(P1), not objexistsri_(P1), objids(P2), not objexistsri_(P2), targetri_Cable(P2),targetri_Dev(P1), targetri_Dev(P1),targetri_Cable(P2), targetri_Cable(P2),typeInteger(P0), typeInteger(P0), targetri_Server(P1), targetri_GlassFiberCable(P2) } 1 :- main_targetri_Server(P1),objids(P1), not objexistsri_(P1). 1 {operation_connectLeftRightCon(P0, P1): targetle_Connection(P0),targetri_Cable(P1), targetri_Cable(P1),targetle_Connection(P0), targetle_Connection(P0), targetri_Cable(P1) } 1 :- targetmi_edge_RCon_leftcon(P1,P0), not mi_edge_RCon_leftcon(P1,P0),targetri_Cable(P1),targetle_Connection(P0). 1 { } 1 :- not targetle_edge_Device_incoming(P0,P1),le_edge_Device_incoming(P0,P1),le_edge_Device_incoming(P0,P1). 1 {operation_copyCable(P0, P1, P2): objids(P0), not objexistsri_(P0), targetri_Cable(P0),typeInteger(P1), targetri_Cable(P0),targetri_Dev(P2), targetri_Dev(P2),targetri_Cable(P0), targetri_CopperCable(P0), typeInteger(P1), targetri_Computer(P2); operation_createCopperCable(P0, P3): objids(P0), not objexistsri_(P0), targetri_Cable(P0),typeInteger(P3), targetri_CopperCable(P0), typeInteger(P3) } 1 :- main_targetri_CopperCable(P0),objids(P0), not objexistsri_(P0). 1 { } 1 :- not targetri_edge_Dev_outgoing(P0,P1),ri_edge_Dev_outgoing(P0,P1),ri_edge_Dev_outgoing(P0,P1). 1 {operation_copyCable(P0, P1, P2): objids(P0), not objexistsri_(P0), targetri_Cable(P0),typeInteger(P1), targetri_Cable(P0),targetri_Dev(P2), targetri_Dev(P2),targetri_Cable(P0), targetri_CopperCable(P0), typeInteger(P1), targetri_Computer(P2); operation_copyCable2(P0, P1, P2): objids(P0), not objexistsri_(P0), targetri_Cable(P0),typeInteger(P1), targetri_Cable(P0),targetri_Dev(P2), targetri_Dev(P2),targetri_Cable(P0), targetri_GlassFiberCable(P0), typeInteger(P1), targetri_Computer(P2); operation_connectCableTarget(P0, P2): targetri_Cable(P0),targetri_Dev(P2), targetri_Dev(P2),targetri_Cable(P0), targetri_Cable(P0), targetri_Dev(P2) } 1 :- targetri_edge_Cable_target(P0,P2), not ri_edge_Cable_target(P0,P2),targetri_Cable(P0),targetri_Dev(P2). 1 { } 1 :- not targetmi_edge_LDevice_rightdev(P0,P1),mi_edge_LDevice_rightdev(P0,P1),mi_edge_LDevice_rightdev(P0,P1). 1 { } 1 :- not targetle_edge_Connection_target(P0,P1),le_edge_Connection_target(P0,P1),le_edge_Connection_target(P0,P1). 1 {operation_createCompute(P0): objids(P0), not objexistsri_(P0), targetri_Computer(P0) } 1 :- main_targetri_Computer(P0),objids(P0), not objexistsri_(P0). 1 { } 1 :- not objexiststargetri_(P0),main_ri_Router(P0). 1 {operation_connectLeftRightDevice(P0, P1): targetle_Device(P0),targetri_Dev(P1), targetri_Dev(P1),targetle_Device(P0), targetle_Device(P0), targetri_Dev(P1) } 1 :- targetmi_edge_RDevice_leftdev(P1,P0), not mi_edge_RDevice_leftdev(P1,P0),targetri_Dev(P1),targetle_Device(P0). 1 { } 1 :- main_targetle_Device(P0), not main_le_Device(P0),objexistsle_(P0). 1 { } 1 :- not targetri_edge_Cable_target(P0,P1),ri_edge_Cable_target(P0,P1),ri_edge_Cable_target(P0,P1). 1 {operation_connectLeftRightDevice(P0, P1): targetle_Device(P0),targetri_Dev(P1), targetri_Dev(P1),targetle_Device(P0), targetle_Device(P0), targetri_Dev(P1) } 1 :- targetmi_edge_LDevice_rightdev(P0,P1), not mi_edge_LDevice_rightdev(P0,P1),targetle_Device(P0),targetri_Dev(P1). 1 { } 1 :- main_targetle_Connection(P0), not main_le_Connection(P0),objexistsle_(P0). 1 { } 1 :- not targetmi_edge_RDevice_leftdev(P0,P1),mi_edge_RDevice_leftdev(P0,P1),mi_edge_RDevice_leftdev(P0,P1). 1 { } 1 :- targetle_edge_Connection_target(P0,P1), not le_edge_Connection_target(P0,P1),targetle_Connection(P0),targetle_Device(P1). 1 { } 1 :- not objexiststargetri_(P0),main_ri_Computer(P0). 1 {operation_createRoute(P0, P1): objids(P1), not objexistsri_(P1), targetri_Router(P1),typeInteger(P0), typeInteger(P0), targetri_Router(P1) } 1 :- main_targetri_Router(P1),objids(P1), not objexistsri_(P1). 1 { } 1 :- not targetmi_edge_RCon_leftcon(P0,P1),mi_edge_RCon_leftcon(P0,P1),mi_edge_RCon_leftcon(P0,P1). 1 { } 1 :- not objexiststargetri_(P0),main_ri_Server(P0). 1 { } 1 :- main_targetri_CopperCable(P0), not main_ri_CopperCable(P0),objexistsri_(P0). 1 {operation_createServe(P0, P1, P2): objids(P1), not objexistsri_(P1), objids(P2), not objexistsri_(P2), targetri_Cable(P2),targetri_Dev(P1), targetri_Dev(P1),targetri_Cable(P2), targetri_Cable(P2),typeInteger(P0), typeInteger(P0), targetri_Server(P1), targetri_GlassFiberCable(P2); operation_connectCableSource(P2, P1): targetri_Cable(P2),targetri_Dev(P1), targetri_Dev(P1),targetri_Cable(P2), targetri_Cable(P2), targetri_Dev(P1) } 1 :- targetri_edge_Dev_outgoing(P1,P2), not ri_edge_Dev_outgoing(P1,P2),targetri_Dev(P1),targetri_Cable(P2). 1 { } 1 :- not objexiststargetri_(P0),main_ri_CopperCable(P0). 1 { } 1 :- targetle_edge_Device_incoming(P0,P1), not le_edge_Device_incoming(P0,P1),targetle_Device(P0),targetle_Connection(P1). 1 {operation_createServe(P0, P1, P2): objids(P1), not objexistsri_(P1), objids(P2), not objexistsri_(P2), targetri_Cable(P2),targetri_Dev(P1), targetri_Dev(P1),targetri_Cable(P2), targetri_Cable(P2),typeInteger(P0), typeInteger(P0), targetri_Server(P1), targetri_GlassFiberCable(P2); operation_copyCable2(P2, P0, P3): objids(P2), not objexistsri_(P2), targetri_Cable(P2),typeInteger(P0), targetri_Cable(P2),targetri_Dev(P3), targetri_Dev(P3),targetri_Cable(P2), targetri_GlassFiberCable(P2), typeInteger(P0), targetri_Computer(P3); operation_createGlassfiberCable(P2, P4): objids(P2), not objexistsri_(P2), targetri_Cable(P2),typeInteger(P4), targetri_GlassFiberCable(P2), typeInteger(P4) } 1 :- main_targetri_GlassFiberCable(P2),objids(P2), not objexistsri_(P2). 1 { } 1 :- targetle_prop_Device_fixed(P0,P1), not le_prop_Device_fixed(P0,P1),targetle_Device(P0),typeBoolean(P1). 1 { } 1 :- not targetle_edge_Connection_source(P0,P1),le_edge_Connection_source(P0,P1),le_edge_Connection_source(P0,P1). 1 { } 1 :- not targetle_edge_Device_outgoing(P0,P1),le_edge_Device_outgoing(P0,P1),le_edge_Device_outgoing(P0,P1). 1 {operation_createServe(P0, P1, P2): objids(P1), not objexistsri_(P1), objids(P2), not objexistsri_(P2), targetri_Cable(P2),targetri_Dev(P1), targetri_Dev(P1),targetri_Cable(P2), targetri_Cable(P2),typeInteger(P0), typeInteger(P0), targetri_Server(P1), targetri_GlassFiberCable(P2); operation_connectCableSource(P2, P1): targetri_Cable(P2),targetri_Dev(P1), targetri_Dev(P1),targetri_Cable(P2), targetri_Cable(P2), targetri_Dev(P1) } 1 :- targetri_edge_Cable_source(P2,P1), not ri_edge_Cable_source(P2,P1),targetri_Cable(P2),targetri_Dev(P1). 1 { } 1 :- main_targetri_GlassFiberCable(P0), not main_ri_GlassFiberCable(P0),objexistsri_(P0). 1 { } 1 :- not objexiststargetle_(P0),main_le_Device(P0). 1 { } 1 :- main_targetle_Connection(P0),objids(P0), not objexistsle_(P0). 1 {operation_createServe(P0, P1, P2): objids(P1), not objexistsri_(P1), objids(P2), not objexistsri_(P2), targetri_Cable(P2),targetri_Dev(P1), targetri_Dev(P1),targetri_Cable(P2), targetri_Cable(P2),typeInteger(P0), typeInteger(P0), targetri_Server(P1), targetri_GlassFiberCable(P2); operation_copyCable(P2, P0, P3): objids(P2), not objexistsri_(P2), targetri_Cable(P2),typeInteger(P0), targetri_Cable(P2),targetri_Dev(P3), targetri_Dev(P3),targetri_Cable(P2), targetri_CopperCable(P2), typeInteger(P0), targetri_Computer(P3); operation_copyCable2(P2, P0, P3): objids(P2), not objexistsri_(P2), targetri_Cable(P2),typeInteger(P0), targetri_Cable(P2),targetri_Dev(P3), targetri_Dev(P3),targetri_Cable(P2), targetri_GlassFiberCable(P2), typeInteger(P0), targetri_Computer(P3); operation_createGlassfiberCable(P2, P0): objids(P2), not objexistsri_(P2), targetri_Cable(P2),typeInteger(P0), targetri_GlassFiberCable(P2), typeInteger(P0); operation_createCopperCable(P2, P0): objids(P2), not objexistsri_(P2), targetri_Cable(P2),typeInteger(P0), targetri_CopperCable(P2), typeInteger(P0) } 1 :- targetri_prop_Cable_speed(P2,P0), not ri_prop_Cable_speed(P2,P0),targetri_Cable(P2),typeInteger(P0). 1 { } 1 :- main_targetri_Router(P0), not main_ri_Router(P0),objexistsri_(P0). 1 { } 1 :- not targetri_prop_Dev_name(P0,P1),ri_prop_Dev_name(P0,P1),ri_prop_Dev_name(P0,P1). 1 { } 1 :- targetle_prop_Device_name(P0,P1), not le_prop_Device_name(P0,P1),targetle_Device(P0),typeString(P1). 1 { } 1 :- not targetri_prop_Router_maxSpeed(P0,P1),ri_prop_Router_maxSpeed(P0,P1),ri_prop_Router_maxSpeed(P0,P1). 1 { } 1 :- main_targetri_Server(P0), not main_ri_Server(P0),objexistsri_(P0). 1 { } 1 :- not targetle_prop_Connection_speed(P0,P1),le_prop_Connection_speed(P0,P1),le_prop_Connection_speed(P0,P1). 1 {operation_connectLeftRightCon(P0, P1): targetle_Connection(P0),targetri_Cable(P1), targetri_Cable(P1),targetle_Connection(P0), targetle_Connection(P0), targetri_Cable(P1) } 1 :- targetmi_edge_LCon_rightcon(P0,P1), not mi_edge_LCon_rightcon(P0,P1),targetle_Connection(P0),targetri_Cable(P1). 1 { } 1 :- not targetri_edge_Dev_incoming(P0,P1),ri_edge_Dev_incoming(P0,P1),ri_edge_Dev_incoming(P0,P1). 1 {operation_createServerName(P0, P1): targetri_Dev(P0),typeString(P1), targetri_Server(P0), typeString(P1); operation_createComputerName(P0, P1): targetri_Dev(P0),typeString(P1), targetri_Computer(P0), typeString(P1) } 1 :- targetri_prop_Dev_name(P0,P1), not ri_prop_Dev_name(P0,P1),targetri_Dev(P0),typeString(P1). 1 {operation_copyCable(P0, P1, P2): objids(P0), not objexistsri_(P0), targetri_Cable(P0),typeInteger(P1), targetri_Cable(P0),targetri_Dev(P2), targetri_Dev(P2),targetri_Cable(P0), targetri_CopperCable(P0), typeInteger(P1), targetri_Computer(P2); operation_copyCable2(P0, P1, P2): objids(P0), not objexistsri_(P0), targetri_Cable(P0),typeInteger(P1), targetri_Cable(P0),targetri_Dev(P2), targetri_Dev(P2),targetri_Cable(P0), targetri_GlassFiberCable(P0), typeInteger(P1), targetri_Computer(P2); operation_connectCableTarget(P0, P2): targetri_Cable(P0),targetri_Dev(P2), targetri_Dev(P2),targetri_Cable(P0), targetri_Cable(P0), targetri_Dev(P2) } 1 :- targetri_edge_Dev_incoming(P2,P0), not ri_edge_Dev_incoming(P2,P0),targetri_Dev(P2),targetri_Cable(P0). 1 { } 1 :- targetle_prop_Connection_speed(P0,P1), not le_prop_Connection_speed(P0,P1),targetle_Connection(P0),typeInteger(P1). 1 { } 1 :- not targetmi_edge_LCon_rightcon(P0,P1),mi_edge_LCon_rightcon(P0,P1),mi_edge_LCon_rightcon(P0,P1). 1 { } 1 :- not targetle_prop_Device_name(P0,P1),le_prop_Device_name(P0,P1),le_prop_Device_name(P0,P1). 1 {operation_createRoute(P0, P1): objids(P1), not objexistsri_(P1), targetri_Router(P1),typeInteger(P0), typeInteger(P0), targetri_Router(P1) } 1 :- targetri_prop_Router_maxSpeed(P1,P0), not ri_prop_Router_maxSpeed(P1,P0),targetri_Router(P1),typeInteger(P0). 1 { } 1 :- targetle_edge_Connection_source(P0,P1), not le_edge_Connection_source(P0,P1),targetle_Connection(P0),targetle_Device(P1). 1 { } 1 :- not targetle_prop_Device_fixed(P0,P1),le_prop_Device_fixed(P0,P1),le_prop_Device_fixed(P0,P1). 1 { } 1 :- not objexiststargetri_(P0),main_ri_GlassFiberCable(P0). 1 { } 1 :- not objexiststargetle_(P0),main_le_Connection(P0). 1 { } 1 :- not targetri_prop_Cable_speed(P0,P1),ri_prop_Cable_speed(P0,P1),ri_prop_Cable_speed(P0,P1). 1 { } 1 :- main_targetle_Device(P0),objids(P0), not objexistsle_(P0). 1 { } 1 :- main_targetri_Computer(P0), not main_ri_Computer(P0),objexistsri_(P0). 1 { } 1 :- targetle_edge_Device_outgoing(P0,P1), not le_edge_Device_outgoing(P0,P1),targetle_Device(P0),targetle_Connection(P1). 1 { } 1 :- not targetri_edge_Cable_source(P0,P1),ri_edge_Cable_source(P0,P1),ri_edge_Cable_source(P0,P1). objids(O) :- main_orile_Device(O). objexistsorile_(O) :- main_orile_Device(O). objids(O) :- main_orile_Connection(O). objexistsorile_(O) :- main_orile_Connection(O). objids(O) :- main_le_Device(O). objexistsle_(O) :- main_le_Device(O). objids(O) :- main_le_Connection(O). objexistsle_(O) :- main_le_Connection(O). objexiststargetle_(O) :- main_targetle_Device(O). objexiststargetle_(O) :- main_targetle_Connection(O). objids(O) :- main_oriri_Dev(O). objexistsoriri_(O) :- main_oriri_Dev(O). objids(O) :- main_oriri_Cable(O). objexistsoriri_(O) :- main_oriri_Cable(O). objids(O) :- main_orile_Connection(O). objexistsorile_(O) :- main_orile_Connection(O). objids(O) :- main_orile_Device(O). objexistsorile_(O) :- main_orile_Device(O). objids(O) :- main_ri_Dev(O). objexistsri_(O) :- main_ri_Dev(O). objids(O) :- main_ri_Cable(O). objexistsri_(O) :- main_ri_Cable(O). objids(O) :- main_le_Connection(O). objexistsle_(O) :- main_le_Connection(O). objids(O) :- main_le_Device(O). objexistsle_(O) :- main_le_Device(O). objexiststargetri_(O) :- main_targetri_Dev(O). objexiststargetri_(O) :- main_targetri_Cable(O). objexiststargetle_(O) :- main_targetle_Connection(O). objexiststargetle_(O) :- main_targetle_Device(O). objids(O) :- main_oriri_Dev(O). objexistsoriri_(O) :- main_oriri_Dev(O). objids(O) :- main_oriri_Router(O). objexistsoriri_(O) :- main_oriri_Router(O). objids(O) :- main_oriri_Cable(O). objexistsoriri_(O) :- main_oriri_Cable(O). objids(O) :- main_oriri_Server(O). objexistsoriri_(O) :- main_oriri_Server(O). objids(O) :- main_oriri_GlassFiberCable(O). objexistsoriri_(O) :- main_oriri_GlassFiberCable(O). objids(O) :- main_oriri_Computer(O). objexistsoriri_(O) :- main_oriri_Computer(O). objids(O) :- main_oriri_CopperCable(O). objexistsoriri_(O) :- main_oriri_CopperCable(O). objids(O) :- main_ri_Dev(O). objexistsri_(O) :- main_ri_Dev(O). objids(O) :- main_ri_Router(O). objexistsri_(O) :- main_ri_Router(O). objids(O) :- main_ri_Cable(O). objexistsri_(O) :- main_ri_Cable(O). objids(O) :- main_ri_Server(O). objexistsri_(O) :- main_ri_Server(O). objids(O) :- main_ri_GlassFiberCable(O). objexistsri_(O) :- main_ri_GlassFiberCable(O). objids(O) :- main_ri_Computer(O). objexistsri_(O) :- main_ri_Computer(O). objids(O) :- main_ri_CopperCable(O). objexistsri_(O) :- main_ri_CopperCable(O). objexiststargetri_(O) :- main_targetri_Dev(O). objexiststargetri_(O) :- main_targetri_Router(O). objexiststargetri_(O) :- main_targetri_Cable(O). objexiststargetri_(O) :- main_targetri_Server(O). objexiststargetri_(O) :- main_targetri_GlassFiberCable(O). objexiststargetri_(O) :- main_targetri_Computer(O). objexiststargetri_(O) :- main_targetri_CopperCable(O). 1 {noobj(O); main_targetle_Device(O); main_targetle_Connection(O); main_targetri_Dev(O); main_targetri_Router(O); main_targetri_Cable(O); main_targetri_Server(O); main_targetri_GlassFiberCable(O); main_targetri_Computer(O); main_targetri_CopperCable(O) } 1 :- objids(O). targetle_Device(O):- main_targetle_Device(O). -targetle_Connection(O):- main_targetle_Device(O). -main_targetle_Connection(O):- main_le_Device(O). targetle_Connection(O):- main_targetle_Connection(O). -targetle_Device(O):- main_targetle_Connection(O). -main_targetle_Device(O):- main_le_Connection(O). targetri_Dev(O):- main_targetri_Router(O). targetri_Router(O):- main_targetri_Router(O). -targetri_Cable(O):- main_targetri_Router(O). -main_targetri_Cable(O):- main_ri_Router(O). -targetri_Server(O):- main_targetri_Router(O). -main_targetri_Server(O):- main_ri_Router(O). -targetri_GlassFiberCable(O):- main_targetri_Router(O). -main_targetri_GlassFiberCable(O):- main_ri_Router(O). -targetri_Computer(O):- main_targetri_Router(O). -main_targetri_Computer(O):- main_ri_Router(O). -targetri_CopperCable(O):- main_targetri_Router(O). -main_targetri_CopperCable(O):- main_ri_Router(O). targetri_Dev(O):- main_targetri_Server(O). targetri_Server(O):- main_targetri_Server(O). -targetri_Router(O):- main_targetri_Server(O). -main_targetri_Router(O):- main_ri_Server(O). -targetri_Cable(O):- main_targetri_Server(O). -main_targetri_Cable(O):- main_ri_Server(O). -targetri_GlassFiberCable(O):- main_targetri_Server(O). -main_targetri_GlassFiberCable(O):- main_ri_Server(O). -targetri_Computer(O):- main_targetri_Server(O). -main_targetri_Computer(O):- main_ri_Server(O). -targetri_CopperCable(O):- main_targetri_Server(O). -main_targetri_CopperCable(O):- main_ri_Server(O). targetri_Cable(O):- main_targetri_GlassFiberCable(O). targetri_GlassFiberCable(O):- main_targetri_GlassFiberCable(O). -targetri_Dev(O):- main_targetri_GlassFiberCable(O). -main_targetri_Dev(O):- main_ri_GlassFiberCable(O). -targetri_Router(O):- main_targetri_GlassFiberCable(O). -main_targetri_Router(O):- main_ri_GlassFiberCable(O). -targetri_Server(O):- main_targetri_GlassFiberCable(O). -main_targetri_Server(O):- main_ri_GlassFiberCable(O). -targetri_Computer(O):- main_targetri_GlassFiberCable(O). -main_targetri_Computer(O):- main_ri_GlassFiberCable(O). -targetri_CopperCable(O):- main_targetri_GlassFiberCable(O). -main_targetri_CopperCable(O):- main_ri_GlassFiberCable(O). targetri_Dev(O):- main_targetri_Computer(O). targetri_Computer(O):- main_targetri_Computer(O). -targetri_Router(O):- main_targetri_Computer(O). -main_targetri_Router(O):- main_ri_Computer(O). -targetri_Cable(O):- main_targetri_Computer(O). -main_targetri_Cable(O):- main_ri_Computer(O). -targetri_Server(O):- main_targetri_Computer(O). -main_targetri_Server(O):- main_ri_Computer(O). -targetri_GlassFiberCable(O):- main_targetri_Computer(O). -main_targetri_GlassFiberCable(O):- main_ri_Computer(O). -targetri_CopperCable(O):- main_targetri_Computer(O). -main_targetri_CopperCable(O):- main_ri_Computer(O). targetri_Cable(O):- main_targetri_CopperCable(O). targetri_CopperCable(O):- main_targetri_CopperCable(O). -targetri_Dev(O):- main_targetri_CopperCable(O). -main_targetri_Dev(O):- main_ri_CopperCable(O). -targetri_Router(O):- main_targetri_CopperCable(O). -main_targetri_Router(O):- main_ri_CopperCable(O). -targetri_Server(O):- main_targetri_CopperCable(O). -main_targetri_Server(O):- main_ri_CopperCable(O). -targetri_GlassFiberCable(O):- main_targetri_CopperCable(O). -main_targetri_GlassFiberCable(O):- main_ri_CopperCable(O). -targetri_Computer(O):- main_targetri_CopperCable(O). -main_targetri_Computer(O):- main_ri_CopperCable(O). glassFaserHasPower_(P0) :- targetri_prop_Cable_speed(P0,R1),R1 >= 4. -glassFaserHasPower_(P0) :- targetri_prop_Cable_speed(P0,R1),targetri_GlassFiberCable(P0), R1 < 4. :- not glassFaserHasPower_(P0),targetri_GlassFiberCable(P0). copperCableLittlePower_(P0) :- targetri_prop_Cable_speed(P0,R1),R1 <= 4. -copperCableLittlePower_(P0) :- targetri_prop_Cable_speed(P0,R1),targetri_CopperCable(P0), R1 > 4. :- not copperCableLittlePower_(P0),targetri_CopperCable(P0). routerEnoughCapacity_21(P0,P1,RS) :- targetri_edge_Dev_outgoing(P0,P1),targetri_prop_Cable_speed(P1,RS),targetri_Router(P0),targetri_Cable(P1). routerEnoughCapacity_2(P0,R) :- R = #sum{R2,routerEnoughCapacity_21(P0,P1,R2):routerEnoughCapacity_21(P0,P1,R2)}, typeInteger(R),targetri_Router(P0). routerEnoughCapacity_(P0) :- targetri_prop_Router_maxSpeed(P0,R1),routerEnoughCapacity_2(P0,R2),R1 >= R2. -routerEnoughCapacity_(P0) :- targetri_prop_Router_maxSpeed(P0,R1),routerEnoughCapacity_2(P0,R2),targetri_Router(P0), R1 < R2. :- not routerEnoughCapacity_(P0),targetri_Router(P0). outgoingEnoughCapacity_21(P0,P1,RS) :- targetri_edge_Dev_incoming(P0,P1),targetri_prop_Cable_speed(P1,RS),targetri_Router(P0),targetri_Cable(P1). outgoingEnoughCapacity_2(P0,R) :- R = #sum{R2,outgoingEnoughCapacity_21(P0,P1,R2):outgoingEnoughCapacity_21(P0,P1,R2)}, typeInteger(R),targetri_Router(P0). outgoingEnoughCapacity_(P0) :- routerEnoughCapacity_2(P0,R1),outgoingEnoughCapacity_2(P0,R2),R1 <= R2. -outgoingEnoughCapacity_(P0) :- routerEnoughCapacity_2(P0,R1),outgoingEnoughCapacity_2(P0,R2),targetri_Router(P0), R1 > R2. :- not outgoingEnoughCapacity_(P0),targetri_Router(P0). equalSpeed_b(P0,RS) :- targetmi_edge_LCon_rightcon(P0,RSa),targetri_prop_Cable_speed(RSa,RS),targetle_Connection(P0). equalSpeed_(P0) :- not -equalSpeed_(P0),targetle_Connection(P0). -equalSpeed_(P0) :- targetle_prop_Connection_speed(P0,R), not equalSpeed_b(P0,R),targetle_Connection(P0). -equalSpeed_(P0) :- not targetle_prop_Connection_speed(P0,R), equalSpeed_b(P0,R),targetle_Connection(P0). :- not equalSpeed_(P0),targetle_Connection(P0). equalNames_b(P0,RS) :- targetmi_edge_LDevice_rightdev(P0,RSa),targetri_prop_Dev_name(RSa,RS),targetle_Device(P0). equalNames_(P0) :- not -equalNames_(P0),targetle_Device(P0). -equalNames_(P0) :- targetle_prop_Device_name(P0,R), not equalNames_b(P0,R),targetle_Device(P0). -equalNames_(P0) :- not targetle_prop_Device_name(P0,R), equalNames_b(P0,R),targetle_Device(P0). :- not equalNames_(P0),targetle_Device(P0). -fixedOutgoingConnections_12(P0) :- targetle_prop_Device_fixed(P0,R1), R1 = false,targetle_Device(P0). fixedOutgoingConnections_12(P0) :- targetle_prop_Device_fixed(P0,R1),targetle_Device(P0), R1 = true. fixedOutgoingConnections_1(P0) :- targetle_Device(P0), fixedOutgoingConnections_12(P0),targetle_Device(P0). fixedOutgoingConnections_2a(P0,RS) :- targetle_edge_Device_outgoing(P0,RSa),targetmi_edge_LCon_rightcon(RSa,RS),targetle_Device(P0). fixedOutgoingConnections_2b(P0,RS) :- targetmi_edge_LDevice_rightdev(P0,RSa),targetri_edge_Dev_outgoing(RSa,RS),targetle_Device(P0). fixedOutgoingConnections_2(P0) :- not -fixedOutgoingConnections_2(P0),targetle_Device(P0). -fixedOutgoingConnections_2(P0) :- fixedOutgoingConnections_2a(P0,R), not fixedOutgoingConnections_2b(P0,R),targetle_Device(P0). -fixedOutgoingConnections_2(P0) :- not fixedOutgoingConnections_2a(P0,R), fixedOutgoingConnections_2b(P0,R),targetle_Device(P0). fixedOutgoingConnections_() :- not -fixedOutgoingConnections_(). -fixedOutgoingConnections_() :- fixedOutgoingConnections_1(P0), not fixedOutgoingConnections_2(P0),targetle_Device(P0). :- not fixedOutgoingConnections_(). fixedIncomingConnections_2a(P0,RS) :- targetle_edge_Device_incoming(P0,RSa),targetmi_edge_LCon_rightcon(RSa,RS),targetle_Device(P0). fixedIncomingConnections_2b(P0,RS) :- targetmi_edge_LDevice_rightdev(P0,RSa),targetri_edge_Dev_incoming(RSa,RS),targetle_Device(P0). fixedIncomingConnections_2(P0) :- not -fixedIncomingConnections_2(P0),targetle_Device(P0). -fixedIncomingConnections_2(P0) :- fixedIncomingConnections_2a(P0,R), not fixedIncomingConnections_2b(P0,R),targetle_Device(P0). -fixedIncomingConnections_2(P0) :- not fixedIncomingConnections_2a(P0,R), fixedIncomingConnections_2b(P0,R),targetle_Device(P0). fixedIncomingConnections_() :- not -fixedIncomingConnections_(). -fixedIncomingConnections_() :- fixedOutgoingConnections_1(P0), not fixedIncomingConnections_2(P0),targetle_Device(P0). :- not fixedIncomingConnections_(). -serverNoIncoming_(P0) :- targetri_edge_Dev_incoming(P0,R),targetri_Server(P0). serverNoIncoming_(P0) :- not -serverNoIncoming_(P0),targetri_Server(P0). :- not serverNoIncoming_(P0),targetri_Server(P0). serverOneOutgoing_(P0) :- targetri_edge_Dev_outgoing(P0,R1),targetri_edge_Dev_outgoing(P0,R2),R1 = R2. -serverOneOutgoing_(P0) :- targetri_edge_Dev_outgoing(P0,R1),targetri_edge_Dev_outgoing(P0,R2),targetri_Server(P0), R1 <> R2. :- not serverOneOutgoing_(P0),targetri_Server(P0). -computerNoOutgoing_(P0) :- targetri_edge_Dev_outgoing(P0,R),targetri_Computer(P0). computerNoOutgoing_(P0) :- not -computerNoOutgoing_(P0),targetri_Computer(P0). :- not computerNoOutgoing_(P0),targetri_Computer(P0). computerOneIncoming_(P0) :- targetri_edge_Dev_incoming(P0,R1),targetri_edge_Dev_incoming(P0,R2),R1 = R2. -computerOneIncoming_(P0) :- targetri_edge_Dev_incoming(P0,R1),targetri_edge_Dev_incoming(P0,R2),targetri_Computer(P0), R1 <> R2. :- not computerOneIncoming_(P0),targetri_Computer(P0). routerHasIncoming_(P0) :- targetri_edge_Dev_incoming(P0,R),targetri_Router(P0). -routerHasIncoming_(P0) :- not routerHasIncoming_(P0),targetri_Router(P0). :- not routerHasIncoming_(P0),targetri_Router(P0). routerHasOutgoing_(P0) :- targetri_edge_Dev_outgoing(P0,R),targetri_Router(P0). -routerHasOutgoing_(P0) :- not routerHasOutgoing_(P0),targetri_Router(P0). :- not routerHasOutgoing_(P0),targetri_Router(P0). computerBacked_(P0) :- targetmi_edge_RDevice_leftdev(P0,R),targetri_Computer(P0). -computerBacked_(P0) :- not computerBacked_(P0),targetri_Computer(P0). :- not computerBacked_(P0),targetri_Computer(P0). serverBacked_(P0) :- targetmi_edge_RDevice_leftdev(P0,R),targetri_Server(P0). -serverBacked_(P0) :- not serverBacked_(P0),targetri_Server(P0). :- not serverBacked_(P0),targetri_Server(P0).