- Research
- Teaching
- Organisation
This is an old revision of the document!
It only needs to ask an askable atom when there is a clause where the head has not already been proved, all of the non-askable atoms in the body have been proved, and the askable atoms in the body that have been asked have been answered by “yes”.
Here is a trace of AILog
ailog: load ’elect_bug2.ail’.
AILog theory elect_bug2.ail loaded.
ailog: ask lit_l1.
Answer: lit_l1.
Runtime since last report: 0.0 secs.
[ok,more,how,help]: how.
lit_l1 <-
1: light_l1
2: live_l1
3: ok_l1
How? [Number,up,retry,ok,prompt,help]: how 2.
live_l1 <-
1: live_w0
How? [Number,up,retry,ok,prompt,help]: how 1.
live_w0 <-
1: live_w1
2: up_s2
How? [Number,up,retry,ok,prompt,help]: how 1.
live_w1 <-
1: live_w3
2: up_s1
How? [Number,up,retry,ok,prompt,help]: how 2.
up_s1 is a fact
The buggy clause is
up_s1.
(a) The minimal explanations of get_gun are { hunting } and { robbing } .
(b) The minimal explanations of get_gun ∧ goto_bank are { hunting, banking } and { robbing }
(c) Observing puton_goodShoes would remove the first explanation as it is inconsistent. However, you would still need to be able to explain it. This could be done by making puton_goodShoes assumable.
(d) { banking } and { robbing } .
(e) { hunting, banking }