Bob is blue. Bob is green. Bob is nice. Bob is quiet. Bob is round. Dave is blue. Dave is green. Dave is nice. Dave is quiet. Dave is rough. Dave is round. Dave is smart. Harry is blue. Harry is green. Harry is nice. Harry is rough. All blue, rough things are round. If something is smart then it is rough. Quiet, rough things are nice. All green things are blue. If something is round and green then it is blue. All quiet things are smart.
Bob is blue.
("Bob" "is" "blue" "+")
Bob is green.
("Bob" "is" "green" "+")
Bob is nice.
("Bob" "is" "nice" "+")
Bob is quiet.
("Bob" "is" "quiet" "+")
Bob is round.
("Bob" "is" "round" "+")
Dave is blue.
("Dave" "is" "blue" "+")
Dave is green.
("Dave" "is" "green" "+")
Dave is nice.
("Dave" "is" "nice" "+")
Dave is quiet.
("Dave" "is" "quiet" "+")
Dave is rough.
("Dave" "is" "rough" "+")
Dave is round.
("Dave" "is" "round" "+")
Dave is smart.
("Dave" "is" "smart" "+")
Harry is blue.
("Harry" "is" "blue" "+")
Harry is green.
("Harry" "is" "green" "+")
Harry is nice.
("Harry" "is" "nice" "+")
Harry is rough.
("Harry" "is" "rough" "+")
All blue, rough things are round.
((("something" "is" "blue" "+") ("something" "is" "rough" "+")) -> ("something" "is" "round" "+"))
If something is smart then it is rough.
((("something" "is" "smart" "+")) -> ("something" "is" "rough" "+"))
Quiet, rough things are nice.
((("something" "is" "quiet" "+") ("something" "is" "rough" "+")) -> ("something" "is" "nice" "+"))
All green things are blue.
((("something" "is" "green" "+")) -> ("something" "is" "blue" "+"))
If something is round and green then it is blue.
((("something" "is" "round" "+") ("something" "is" "green" "+")) -> ("something" "is" "blue" "+"))
All quiet things are smart.
((("something" "is" "quiet" "+")) -> ("something" "is" "smart" "+"))
Dave is blue.
True
1
proof
[(triple6 OR ((triple7) -> rule4) OR ((triple11 triple7) -> rule5))]
("Dave" "is" "blue" "+")
triple6
((triple7) -> (rule4 % int1))
Dave is blue.
("Dave" "is" "blue" "+")
int1
((triple11 triple7) -> (rule5 % int1))
Dave is blue.
("Dave" "is" "blue" "+")
int1
Bob is not blue.
False
1
inv-proof
[(triple1 OR ((triple2) -> rule4) OR ((triple5 triple2) -> rule5))]
("Bob" "is" "blue" "-")
triple1
((triple2) -> (rule4 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
((triple5 triple2) -> (rule5 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Harry is round.
True
3
proof
[(((triple13 triple16) -> rule1) OR ((((triple14) -> rule4) triple16) -> rule1))]
("Harry" "is" "round" "+")
((triple13 triple16) -> (rule1 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
((((triple14) -> (rule4 % int2)) triple16) -> (rule1 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is blue.
("Harry" "is" "blue" "+")
int2
Bob is not smart.
False
2
inv-proof
[(((triple4) -> rule6))]
("Bob" "is" "smart" "-")
((triple4) -> (rule6 % int1))
Bob is smart.
("Bob" "is" "smart" "+")
int1
Harry is not smart.
Unknown
inv-rconc
[@1: Harry is smart.[CWA. Example of deepest failure = (rule6 <- FAIL)]]
("Harry" "is" "smart" "-")
Harry is quiet.
Unknown
random
[@0: Harry is quiet.[CWA. Example of deepest failure = (FAIL)]]
("Harry" "is" "quiet" "+")
@0: Bob is blue.[(triple1 OR ((triple2) -> rule4) OR ((triple5 triple2) -> rule5))] Bob is green.[(triple2)] Bob is nice.[(triple3 OR ((triple4 ((((triple4) -> rule6)) -> rule2)) -> rule3))] Bob is quiet.[(triple4)] Bob is round.[(triple5 OR ((triple1 ((((triple4) -> rule6)) -> rule2)) -> rule1) OR ((((triple2) -> rule4) ((((triple4) -> rule6)) -> rule2)) -> rule1))] Dave is blue.[(triple6 OR ((triple7) -> rule4) OR ((triple11 triple7) -> rule5))] Dave is green.[(triple7)] Dave is nice.[(triple8 OR ((triple9 triple10) -> rule3) OR ((triple9 ((triple12) -> rule2)) -> rule3) OR ((triple9 ((((triple9) -> rule6)) -> rule2)) -> rule3))] Dave is quiet.[(triple9)] Dave is rough.[(triple10 OR ((triple12) -> rule2) OR ((((triple9) -> rule6)) -> rule2))] Dave is round.[(triple11 OR ((triple6 triple10) -> rule1) OR ((triple6 ((triple12) -> rule2)) -> rule1) OR ((((triple7) -> rule4) triple10) -> rule1) OR ((((triple7) -> rule4) ((triple12) -> rule2)) -> rule1) OR ((triple6 ((((triple9) -> rule6)) -> rule2)) -> rule1) OR ((((triple7) -> rule4) ((((triple9) -> rule6)) -> rule2)) -> rule1))] Dave is smart.[(triple12 OR ((triple9) -> rule6))] Harry is blue.[(triple13 OR ((triple14) -> rule4))] Harry is green.[(triple14)] Harry is nice.[(triple15)] Harry is rough.[(triple16)] @1: Bob is smart.[(((triple4) -> rule6))] Harry is round.[(((triple13 triple16) -> rule1) OR ((((triple14) -> rule4) triple16) -> rule1))] @2: Bob is rough.[(((((triple4) -> rule6)) -> rule2))]
Bob is blue.
("Bob" "is" "blue" "+")
triple1
((triple2) -> (rule4 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
((triple5 triple2) -> (rule5 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is green.
("Bob" "is" "green" "+")
triple2
Bob is nice.
("Bob" "is" "nice" "+")
triple3
((triple4 ((((triple4) -> (rule6 % int3))) -> (rule2 % int2))) -> (rule3 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is smart.
("Bob" "is" "smart" "+")
int3
Bob is quiet.
("Bob" "is" "quiet" "+")
triple4
Bob is round.
("Bob" "is" "round" "+")
triple5
((triple1 ((((triple4) -> (rule6 % int3))) -> (rule2 % int2))) -> (rule1 % int1))
Bob is round.
("Bob" "is" "round" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is smart.
("Bob" "is" "smart" "+")
int3
((((triple2) -> (rule4 % int4)) ((((triple4) -> (rule6 % int3))) -> (rule2 % int2))) -> (rule1 % int1))
Bob is round.
("Bob" "is" "round" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is smart.
("Bob" "is" "smart" "+")
int3
Bob is blue.
("Bob" "is" "blue" "+")
int4
Dave is blue.
("Dave" "is" "blue" "+")
triple6
((triple7) -> (rule4 % int1))
Dave is blue.
("Dave" "is" "blue" "+")
int1
((triple11 triple7) -> (rule5 % int1))
Dave is blue.
("Dave" "is" "blue" "+")
int1
Dave is green.
("Dave" "is" "green" "+")
triple7
Dave is nice.
("Dave" "is" "nice" "+")
triple8
((triple9 triple10) -> (rule3 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
((triple9 ((triple12) -> (rule2 % int2))) -> (rule3 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is rough.
("Dave" "is" "rough" "+")
int2
((triple9 ((((triple9) -> (rule6 % int3))) -> (rule2 % int2))) -> (rule3 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is rough.
("Dave" "is" "rough" "+")
int2
Dave is smart.
("Dave" "is" "smart" "+")
int3
Dave is quiet.
("Dave" "is" "quiet" "+")
triple9
Dave is rough.
("Dave" "is" "rough" "+")
triple10
((triple12) -> (rule2 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
((((triple9) -> (rule6 % int2))) -> (rule2 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
Dave is smart.
("Dave" "is" "smart" "+")
int2
Dave is round.
("Dave" "is" "round" "+")
triple11
((triple6 triple10) -> (rule1 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
((triple6 ((triple12) -> (rule2 % int2))) -> (rule1 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is rough.
("Dave" "is" "rough" "+")
int2
((((triple7) -> (rule4 % int2)) triple10) -> (rule1 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is blue.
("Dave" "is" "blue" "+")
int2
((((triple7) -> (rule4 % int3)) ((triple12) -> (rule2 % int2))) -> (rule1 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is rough.
("Dave" "is" "rough" "+")
int2
Dave is blue.
("Dave" "is" "blue" "+")
int3
((triple6 ((((triple9) -> (rule6 % int3))) -> (rule2 % int2))) -> (rule1 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is rough.
("Dave" "is" "rough" "+")
int2
Dave is smart.
("Dave" "is" "smart" "+")
int3
((((triple7) -> (rule4 % int4)) ((((triple9) -> (rule6 % int3))) -> (rule2 % int2))) -> (rule1 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is rough.
("Dave" "is" "rough" "+")
int2
Dave is smart.
("Dave" "is" "smart" "+")
int3
Dave is blue.
("Dave" "is" "blue" "+")
int4
Dave is smart.
("Dave" "is" "smart" "+")
triple12
((triple9) -> (rule6 % int1))
Dave is smart.
("Dave" "is" "smart" "+")
int1
Harry is blue.
("Harry" "is" "blue" "+")
triple13
((triple14) -> (rule4 % int1))
Harry is blue.
("Harry" "is" "blue" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
triple14
Harry is nice.
("Harry" "is" "nice" "+")
triple15
Harry is rough.
("Harry" "is" "rough" "+")
triple16
Bob is smart.
("Bob" "is" "smart" "+")
((triple4) -> (rule6 % int1))
Bob is smart.
("Bob" "is" "smart" "+")
int1
Harry is round.
("Harry" "is" "round" "+")
((triple13 triple16) -> (rule1 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
((((triple14) -> (rule4 % int2)) triple16) -> (rule1 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is blue.
("Harry" "is" "blue" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
((((triple4) -> (rule6 % int2))) -> (rule2 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is smart.
("Bob" "is" "smart" "+")
int2