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