% Source file to be used for solving Exercise of section 9.2 for Abductive Reasoning has_power(n1):- state(pp1,up), state(w1,up). has_power(n2):- state(w2,up), has_power(n1). has_power(n3):- state(w3,up), has_power(n2). has_power(n4):- state(w5,up), has_power(n1). has_power(v1):- state(w6,up), has_power(n2). has_power(v2):- state(w7,up), has_power(n3). has_power(v3):- state(w4,up), has_power(n3). has_power(v4):- state(w8,up), has_power(n4). has_power(v5):- state(w9,up), has_power(n4). %% Since there is no good treatment of negation, %% we must produce explicit negative has_not_power has_no_power(n1):- state(pp1, down). has_no_power(n1):- state(w1, down). has_no_power(n2):- state(w2,down). has_no_power(n2):- has_no_power(n1). has_no_power(n3):- state(w3,down). has_no_power(n3):- has_no_power(n2). has_no_power(n4):- state(w5,down). has_no_power(n4):- has_no_power(n1). has_no_power(v1):- state(w6,down). has_no_power(v1):- has_no_power(n2). has_no_power(v2):- state(w7,down). has_no_power(v2):- has_no_power(n3). has_no_power(v3):- state(w4,down). has_no_power(v3):- has_no_power(n3). has_no_power(v4):- state(w8,down). has_no_power(v4):- has_no_power(n4). has_no_power(v5):- state(w9,down). has_no_power(v5):- has_no_power(n4). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Prolog facts for the deductive versions; % Describes one possible combination of state information. % - should be ***removed**** when you make your abductive version state(pp1,up). state(w1,up). state(w2,up). state(w3,down). state(w4,up). state(w5,up). state(w6,up). state(w7,up). state(w8,up). state(w9,down). /****************************************************** Tests predicates; only useful for your abductive solution ********************************************************/ observe_all_butV3:- has_power(v1), has_power(v2), has_no_power(v3), has_power(v4), has_power(v5). observe_all_butV1V3:- has_no_power(v1), has_power(v2), has_no_power(v3), has_power(v4), has_power(v5). observe_V4V5:- has_no_power(v1), has_no_power(v2), has_no_power(v3), has_power(v4), has_power(v5). observe_total_darkness:- has_no_power(v1), has_no_power(v2), has_no_power(v3), has_no_power(v4), has_no_power(v5).