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