Charlie is green. Dave is blue. Dave is cold. Dave is furry. Dave is rough. Fiona is cold. Fiona is furry. Fiona is nice. Fiona is rough. Fiona is round. Harry is blue. Harry is furry. Harry is green. Harry is rough. Harry is round. Cold people are nice. If someone is nice then they are green. Blue, rough people are nice. If someone is round and rough then they are green. If someone is green then they are cold. All blue people are cold. All green people are rough. If someone is blue and green then they are furry.
Charlie is green.
("Charlie" "is" "green" "+")
Dave is blue.
("Dave" "is" "blue" "+")
Dave is cold.
("Dave" "is" "cold" "+")
Dave is furry.
("Dave" "is" "furry" "+")
Dave is rough.
("Dave" "is" "rough" "+")
Fiona is cold.
("Fiona" "is" "cold" "+")
Fiona is furry.
("Fiona" "is" "furry" "+")
Fiona is nice.
("Fiona" "is" "nice" "+")
Fiona is rough.
("Fiona" "is" "rough" "+")
Fiona is round.
("Fiona" "is" "round" "+")
Harry is blue.
("Harry" "is" "blue" "+")
Harry is furry.
("Harry" "is" "furry" "+")
Harry is green.
("Harry" "is" "green" "+")
Harry is rough.
("Harry" "is" "rough" "+")
Harry is round.
("Harry" "is" "round" "+")
Cold people are nice.
((("someone" "is" "cold" "+")) -> ("someone" "is" "nice" "+"))
If someone is nice then they are green.
((("someone" "is" "nice" "+")) -> ("someone" "is" "green" "+"))
Blue, rough people are nice.
((("someone" "is" "blue" "+") ("someone" "is" "rough" "+")) -> ("someone" "is" "nice" "+"))
If someone is round and rough then they are green.
((("someone" "is" "round" "+") ("someone" "is" "rough" "+")) -> ("someone" "is" "green" "+"))
If someone is green then they are cold.
((("someone" "is" "green" "+")) -> ("someone" "is" "cold" "+"))
All blue people are cold.
((("someone" "is" "blue" "+")) -> ("someone" "is" "cold" "+"))
All green people are rough.
((("someone" "is" "green" "+")) -> ("someone" "is" "rough" "+"))
If someone is blue and green then they are furry.
((("someone" "is" "blue" "+") ("someone" "is" "green" "+")) -> ("someone" "is" "furry" "+"))
Harry is round.
True
1
proof
[(triple15)]
("Harry" "is" "round" "+")
triple15
Fiona is not furry.
False
1
inv-proof
[(triple7)]
("Fiona" "is" "furry" "-")
triple7
Charlie is rough.
True
2
proof
[(((triple1) -> rule7))]
("Charlie" "is" "rough" "+")
((triple1) -> (rule7 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Harry is not cold.
False
2
inv-proof
[(((triple11) -> rule6) OR ((triple13) -> rule5) OR ((((triple15 triple14) -> rule4)) -> rule5) OR ((((((triple11 triple14) -> rule3)) -> rule2)) -> rule5))]
("Harry" "is" "cold" "-")
((triple11) -> (rule6 % int1))
Harry is cold.
("Harry" "is" "cold" "+")
int1
((triple13) -> (rule5 % int1))
Harry is cold.
("Harry" "is" "cold" "+")
int1
((((triple15 triple14) -> (rule4 % int2))) -> (rule5 % int1))
Harry is cold.
("Harry" "is" "cold" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
((((((triple11 triple14) -> (rule3 % int3))) -> (rule2 % int2))) -> (rule5 % int1))
Harry is cold.
("Harry" "is" "cold" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Charlie is nice.
True
3
proof
[(((((triple1) -> rule5)) -> rule1))]
("Charlie" "is" "nice" "+")
((((triple1) -> (rule5 % int2))) -> (rule1 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is cold.
("Charlie" "is" "cold" "+")
int2
Dave is not green.
False
3
inv-proof
[(((((triple3) -> rule1)) -> rule2) OR ((((triple2 triple5) -> rule3)) -> rule2) OR ((((((triple2) -> rule6)) -> rule1)) -> rule2))]
("Dave" "is" "green" "-")
((((triple3) -> (rule1 % int2))) -> (rule2 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
((((triple2 triple5) -> (rule3 % int2))) -> (rule2 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
((((((triple2) -> (rule6 % int3))) -> (rule1 % int2))) -> (rule2 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is cold.
("Dave" "is" "cold" "+")
int3
Charlie is not furry.
Unknown
inv-rconc
[@1: Charlie is furry.[CWA. Example of deepest failure = (rule8 <- FAIL)]]
("Charlie" "is" "furry" "-")
Charlie is round.
Unknown
random
[@0: Charlie is round.[CWA. Example of deepest failure = (FAIL)]]
("Charlie" "is" "round" "+")
Charlie is not blue.
Unknown
inv-random
[@0: Charlie is blue.[CWA. Example of deepest failure = (FAIL)]]
("Charlie" "is" "blue" "-")
Fiona is blue.
Unknown
random
[@0: Fiona is blue.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "blue" "+")
@0: Charlie is green.[(triple1)] Dave is blue.[(triple2)] Dave is cold.[(triple3 OR ((triple2) -> rule6) OR ((((((triple2 triple5) -> rule3)) -> rule2)) -> rule5))] Dave is furry.[(triple4 OR ((triple2 ((((triple3) -> rule1)) -> rule2)) -> rule8) OR ((triple2 ((((triple2 triple5) -> rule3)) -> rule2)) -> rule8) OR ((triple2 ((((((triple2) -> rule6)) -> rule1)) -> rule2)) -> rule8))] Dave is rough.[(triple5 OR ((((((triple3) -> rule1)) -> rule2)) -> rule7) OR ((((((((triple2) -> rule6)) -> rule1)) -> rule2)) -> rule7))] Fiona is cold.[(triple6 OR ((((triple8) -> rule2)) -> rule5) OR ((((triple10 triple9) -> rule4)) -> rule5))] Fiona is furry.[(triple7)] Fiona is nice.[(triple8 OR ((triple6) -> rule1) OR ((((((triple10 triple9) -> rule4)) -> rule5)) -> rule1))] Fiona is rough.[(triple9 OR ((((triple8) -> rule2)) -> rule7) OR ((((((triple6) -> rule1)) -> rule2)) -> rule7))] Fiona is round.[(triple10)] Harry is blue.[(triple11)] Harry is furry.[(triple12 OR ((triple11 triple13) -> rule8) OR ((triple11 ((triple15 triple14) -> rule4)) -> rule8) OR ((triple11 ((((triple11 triple14) -> rule3)) -> rule2)) -> rule8) OR ((triple11 ((((((triple11) -> rule6)) -> rule1)) -> rule2)) -> rule8))] Harry is green.[(triple13 OR ((triple15 triple14) -> rule4) OR ((((triple11 triple14) -> rule3)) -> rule2) OR ((((((triple11) -> rule6)) -> rule1)) -> rule2))] Harry is rough.[(triple14 OR ((triple13) -> rule7) OR ((((((((triple11) -> rule6)) -> rule1)) -> rule2)) -> rule7))] Harry is round.[(triple15)] @1: Charlie is cold.[(((triple1) -> rule5))] Charlie is rough.[(((triple1) -> rule7))] Dave is nice.[(((triple3) -> rule1) OR ((triple2 triple5) -> rule3) OR ((((triple2) -> rule6)) -> rule1))] Fiona is green.[(((triple8) -> rule2) OR ((triple10 triple9) -> rule4) OR ((((triple6) -> rule1)) -> rule2))] Harry is cold.[(((triple11) -> rule6) OR ((triple13) -> rule5) OR ((((triple15 triple14) -> rule4)) -> rule5) OR ((((((triple11 triple14) -> rule3)) -> rule2)) -> rule5))] Harry is nice.[(((triple11 triple14) -> rule3) OR ((((triple11) -> rule6)) -> rule1) OR ((((triple13) -> rule5)) -> rule1) OR ((triple11 ((triple13) -> rule7)) -> rule3) OR ((((((triple15 triple14) -> rule4)) -> rule5)) -> rule1))] @2: Charlie is nice.[(((((triple1) -> rule5)) -> rule1))] Dave is green.[(((((triple3) -> rule1)) -> rule2) OR ((((triple2 triple5) -> rule3)) -> rule2) OR ((((((triple2) -> rule6)) -> rule1)) -> rule2))]
Charlie is green.
("Charlie" "is" "green" "+")
triple1
Dave is blue.
("Dave" "is" "blue" "+")
triple2
Dave is cold.
("Dave" "is" "cold" "+")
triple3
((triple2) -> (rule6 % int1))
Dave is cold.
("Dave" "is" "cold" "+")
int1
((((((triple2 triple5) -> (rule3 % int3))) -> (rule2 % int2))) -> (rule5 % int1))
Dave is cold.
("Dave" "is" "cold" "+")
int1
Dave is green.
("Dave" "is" "green" "+")
int2
Dave is nice.
("Dave" "is" "nice" "+")
int3
Dave is furry.
("Dave" "is" "furry" "+")
triple4
((triple2 ((((triple3) -> (rule1 % int3))) -> (rule2 % int2))) -> (rule8 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Dave is green.
("Dave" "is" "green" "+")
int2
Dave is nice.
("Dave" "is" "nice" "+")
int3
((triple2 ((((triple2 triple5) -> (rule3 % int3))) -> (rule2 % int2))) -> (rule8 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Dave is green.
("Dave" "is" "green" "+")
int2
Dave is nice.
("Dave" "is" "nice" "+")
int3
((triple2 ((((((triple2) -> (rule6 % int4))) -> (rule1 % int3))) -> (rule2 % int2))) -> (rule8 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Dave is green.
("Dave" "is" "green" "+")
int2
Dave is nice.
("Dave" "is" "nice" "+")
int3
Dave is cold.
("Dave" "is" "cold" "+")
int4
Dave is rough.
("Dave" "is" "rough" "+")
triple5
((((((triple3) -> (rule1 % int3))) -> (rule2 % int2))) -> (rule7 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
Dave is green.
("Dave" "is" "green" "+")
int2
Dave is nice.
("Dave" "is" "nice" "+")
int3
((((((((triple2) -> (rule6 % int4))) -> (rule1 % int3))) -> (rule2 % int2))) -> (rule7 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
Dave is green.
("Dave" "is" "green" "+")
int2
Dave is nice.
("Dave" "is" "nice" "+")
int3
Dave is cold.
("Dave" "is" "cold" "+")
int4
Fiona is cold.
("Fiona" "is" "cold" "+")
triple6
((((triple8) -> (rule2 % int2))) -> (rule5 % int1))
Fiona is cold.
("Fiona" "is" "cold" "+")
int1
Fiona is green.
("Fiona" "is" "green" "+")
int2
((((triple10 triple9) -> (rule4 % int2))) -> (rule5 % int1))
Fiona is cold.
("Fiona" "is" "cold" "+")
int1
Fiona is green.
("Fiona" "is" "green" "+")
int2
Fiona is furry.
("Fiona" "is" "furry" "+")
triple7
Fiona is nice.
("Fiona" "is" "nice" "+")
triple8
((triple6) -> (rule1 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
((((((triple10 triple9) -> (rule4 % int3))) -> (rule5 % int2))) -> (rule1 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is cold.
("Fiona" "is" "cold" "+")
int2
Fiona is green.
("Fiona" "is" "green" "+")
int3
Fiona is rough.
("Fiona" "is" "rough" "+")
triple9
((((triple8) -> (rule2 % int2))) -> (rule7 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Fiona is green.
("Fiona" "is" "green" "+")
int2
((((((triple6) -> (rule1 % int3))) -> (rule2 % int2))) -> (rule7 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Fiona is green.
("Fiona" "is" "green" "+")
int2
Fiona is nice.
("Fiona" "is" "nice" "+")
int3
Fiona is round.
("Fiona" "is" "round" "+")
triple10
Harry is blue.
("Harry" "is" "blue" "+")
triple11
Harry is furry.
("Harry" "is" "furry" "+")
triple12
((triple11 triple13) -> (rule8 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
((triple11 ((triple15 triple14) -> (rule4 % int2))) -> (rule8 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
((triple11 ((((triple11 triple14) -> (rule3 % int3))) -> (rule2 % int2))) -> (rule8 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
((triple11 ((((((triple11) -> (rule6 % int4))) -> (rule1 % int3))) -> (rule2 % int2))) -> (rule8 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is cold.
("Harry" "is" "cold" "+")
int4
Harry is green.
("Harry" "is" "green" "+")
triple13
((triple15 triple14) -> (rule4 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
((((triple11 triple14) -> (rule3 % int2))) -> (rule2 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
((((((triple11) -> (rule6 % int3))) -> (rule1 % int2))) -> (rule2 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is cold.
("Harry" "is" "cold" "+")
int3
Harry is rough.
("Harry" "is" "rough" "+")
triple14
((triple13) -> (rule7 % int1))
Harry is rough.
("Harry" "is" "rough" "+")
int1
((((((((triple11) -> (rule6 % int4))) -> (rule1 % int3))) -> (rule2 % int2))) -> (rule7 % int1))
Harry is rough.
("Harry" "is" "rough" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is cold.
("Harry" "is" "cold" "+")
int4
Harry is round.
("Harry" "is" "round" "+")
triple15
Charlie is cold.
("Charlie" "is" "cold" "+")
((triple1) -> (rule5 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
((triple1) -> (rule7 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
((triple3) -> (rule1 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
((triple2 triple5) -> (rule3 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
((((triple2) -> (rule6 % int2))) -> (rule1 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is cold.
("Dave" "is" "cold" "+")
int2
Fiona is green.
("Fiona" "is" "green" "+")
((triple8) -> (rule2 % int1))
Fiona is green.
("Fiona" "is" "green" "+")
int1
((triple10 triple9) -> (rule4 % int1))
Fiona is green.
("Fiona" "is" "green" "+")
int1
((((triple6) -> (rule1 % int2))) -> (rule2 % int1))
Fiona is green.
("Fiona" "is" "green" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
Harry is cold.
("Harry" "is" "cold" "+")
((triple11) -> (rule6 % int1))
Harry is cold.
("Harry" "is" "cold" "+")
int1
((triple13) -> (rule5 % int1))
Harry is cold.
("Harry" "is" "cold" "+")
int1
((((triple15 triple14) -> (rule4 % int2))) -> (rule5 % int1))
Harry is cold.
("Harry" "is" "cold" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
((((((triple11 triple14) -> (rule3 % int3))) -> (rule2 % int2))) -> (rule5 % int1))
Harry is cold.
("Harry" "is" "cold" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is nice.
("Harry" "is" "nice" "+")
((triple11 triple14) -> (rule3 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
((((triple11) -> (rule6 % int2))) -> (rule1 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is cold.
("Harry" "is" "cold" "+")
int2
((((triple13) -> (rule5 % int2))) -> (rule1 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is cold.
("Harry" "is" "cold" "+")
int2
((triple11 ((triple13) -> (rule7 % int2))) -> (rule3 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
((((((triple15 triple14) -> (rule4 % int3))) -> (rule5 % int2))) -> (rule1 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is cold.
("Harry" "is" "cold" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
int3
Charlie is nice.
("Charlie" "is" "nice" "+")
((((triple1) -> (rule5 % int2))) -> (rule1 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is cold.
("Charlie" "is" "cold" "+")
int2
Dave is green.
("Dave" "is" "green" "+")
((((triple3) -> (rule1 % int2))) -> (rule2 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
((((triple2 triple5) -> (rule3 % int2))) -> (rule2 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
((((((triple2) -> (rule6 % int3))) -> (rule1 % int2))) -> (rule2 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is cold.
("Dave" "is" "cold" "+")
int3