% AILog code for the electrical environment, with negation as failure % This is the code discussed in Section 5.3 of Poole and Mackworth, Artificial % Intelligence: foundations of computational agents, Cambridge, 2010. % Copyright (c) David Poole and Alan Mackworth 2009. This program % is released under GPL, version 3 or later; see http://www.gnu.org/licenses/gpl.html % To run this in AILog, you should put it in the same directory as AILog and then call % load 'elect_ask.ail'. light_l1. light_l2. live_outside. live_l1 <- live_w0. live_w0 <- live_w1 & up_s2. live_w0 <- live_w2 & down_s2. live_w1 <- live_w3 & up_s1. live_w2 <- live_w3 & down_s1. live_l2 <- live_w4. live_w4 <- live_w3 & up_s3. live_p_1 <- live_w3. live_w3 <- live_w5 & ok_cb1. live_p_2 <- live_w6. live_w6 <- live_w5 & ok_cb2. live_w5 <- live_outside. lit_l1 <- light_l1 & live_l1 & ok_l1. lit_l2 <- light_l2 & live_l2 & ok_l2. ok_l1 <- ~ broken_l1. ok_l2 <- ~ broken_l2. ok_cb1 <- ~ broken_cb1. ok_cb2 <- ~ broken_cb2. down_s1 <- ~ up_s1. down_s2 <- ~ up_s2. down_s3 <- ~ up_s3. askable up_s1. askable up_s2. askable up_s3. % some queries: % ailog: ask lit_l2. % ailog: ask lit_l1. % ailog: ask lit_l1. % ailog: tell broken_cb1. % ailog: ask lit_l1.