Anne is blue. Anne is furry. Anne is kind. Anne is rough. Bob is blue. Bob is cold. Bob is kind. Bob is nice. Charlie is blue. Charlie is cold. Charlie is kind. Charlie is nice. Charlie is red. Fiona is blue. Fiona is red. Fiona is rough. If Bob is red then Bob is kind. If something is blue then it is rough. Kind things are rough. Furry things are blue. Furry, blue things are cold. Blue, furry things are rough. Kind things are blue. Kind things are red.
Anne is blue.
("Anne" "is" "blue" "+")
Anne is furry.
("Anne" "is" "furry" "+")
Anne is kind.
("Anne" "is" "kind" "+")
Anne is rough.
("Anne" "is" "rough" "+")
Bob is blue.
("Bob" "is" "blue" "+")
Bob is cold.
("Bob" "is" "cold" "+")
Bob is kind.
("Bob" "is" "kind" "+")
Bob is nice.
("Bob" "is" "nice" "+")
Charlie is blue.
("Charlie" "is" "blue" "+")
Charlie is cold.
("Charlie" "is" "cold" "+")
Charlie is kind.
("Charlie" "is" "kind" "+")
Charlie is nice.
("Charlie" "is" "nice" "+")
Charlie is red.
("Charlie" "is" "red" "+")
Fiona is blue.
("Fiona" "is" "blue" "+")
Fiona is red.
("Fiona" "is" "red" "+")
Fiona is rough.
("Fiona" "is" "rough" "+")
If Bob is red then Bob is kind.
((("Bob" "is" "red" "+")) -> ("Bob" "is" "kind" "+"))
If something is blue then it is rough.
((("something" "is" "blue" "+")) -> ("something" "is" "rough" "+"))
Kind things are rough.
((("something" "is" "kind" "+")) -> ("something" "is" "rough" "+"))
Furry things are blue.
((("something" "is" "furry" "+")) -> ("something" "is" "blue" "+"))
Furry, blue things are cold.
((("something" "is" "furry" "+") ("something" "is" "blue" "+")) -> ("something" "is" "cold" "+"))
Blue, furry things are rough.
((("something" "is" "blue" "+") ("something" "is" "furry" "+")) -> ("something" "is" "rough" "+"))
Kind things are blue.
((("something" "is" "kind" "+")) -> ("something" "is" "blue" "+"))
Kind things are red.
((("something" "is" "kind" "+")) -> ("something" "is" "red" "+"))
Bob is blue.
True
1
proof
[(triple5 OR ((triple7) -> rule7))]
("Bob" "is" "blue" "+")
triple5
((triple7) -> (rule7 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Anne is not rough.
False
1
inv-proof
[(triple4 OR ((triple1) -> rule2) OR ((triple3) -> rule3) OR ((triple1 triple2) -> rule6) OR ((((triple2) -> rule4)) -> rule2) OR ((((triple3) -> rule7)) -> rule2) OR ((((triple2) -> rule4) triple2) -> rule6) OR ((((triple3) -> rule7) triple2) -> rule6))]
("Anne" "is" "rough" "-")
triple4
((triple1) -> (rule2 % int1))
Anne is rough.
("Anne" "is" "rough" "+")
int1
((triple3) -> (rule3 % int1))
Anne is rough.
("Anne" "is" "rough" "+")
int1
((triple1 triple2) -> (rule6 % int1))
Anne is rough.
("Anne" "is" "rough" "+")
int1
((((triple2) -> (rule4 % int2))) -> (rule2 % int1))
Anne is rough.
("Anne" "is" "rough" "+")
int1
Anne is blue.
("Anne" "is" "blue" "+")
int2
((((triple3) -> (rule7 % int2))) -> (rule2 % int1))
Anne is rough.
("Anne" "is" "rough" "+")
int1
Anne is blue.
("Anne" "is" "blue" "+")
int2
((((triple2) -> (rule4 % int2)) triple2) -> (rule6 % int1))
Anne is rough.
("Anne" "is" "rough" "+")
int1
Anne is blue.
("Anne" "is" "blue" "+")
int2
((((triple3) -> (rule7 % int2)) triple2) -> (rule6 % int1))
Anne is rough.
("Anne" "is" "rough" "+")
int1
Anne is blue.
("Anne" "is" "blue" "+")
int2
Fiona is not cold.
Unknown
inv-rconc
[@1: Fiona is cold.[CWA. Example of deepest failure = (rule5 <- FAIL)]]
("Fiona" "is" "cold" "-")
Anne is nice.
Unknown
random
[@0: Anne is nice.[CWA. Example of deepest failure = (FAIL)]]
("Anne" "is" "nice" "+")
@0: Anne is blue.[(triple1 OR ((triple2) -> rule4) OR ((triple3) -> rule7))] Anne is furry.[(triple2)] Anne is kind.[(triple3)] Anne is rough.[(triple4 OR ((triple1) -> rule2) OR ((triple3) -> rule3) OR ((triple1 triple2) -> rule6) OR ((((triple2) -> rule4)) -> rule2) OR ((((triple3) -> rule7)) -> rule2) OR ((((triple2) -> rule4) triple2) -> rule6) OR ((((triple3) -> rule7) triple2) -> rule6))] Bob is blue.[(triple5 OR ((triple7) -> rule7))] Bob is cold.[(triple6)] Bob is kind.[(triple7)] Bob is nice.[(triple8)] Charlie is blue.[(triple9 OR ((triple11) -> rule7))] Charlie is cold.[(triple10)] Charlie is kind.[(triple11)] Charlie is nice.[(triple12)] Charlie is red.[(triple13 OR ((triple11) -> rule8))] Fiona is blue.[(triple14)] Fiona is red.[(triple15)] Fiona is rough.[(triple16 OR ((triple14) -> rule2))] @1: Anne is cold.[(((triple2 triple1) -> rule5) OR ((triple2 ((triple2) -> rule4)) -> rule5) OR ((triple2 ((triple3) -> rule7)) -> rule5))] Anne is red.[(((triple3) -> rule8))] Bob is red.[(((triple7) -> rule8))] Bob is rough.[(((triple5) -> rule2) OR ((triple7) -> rule3) OR ((((triple7) -> rule7)) -> rule2))] Charlie is rough.[(((triple11) -> rule3) OR ((triple9) -> rule2) OR ((((triple11) -> rule7)) -> rule2))]
Anne is blue.
("Anne" "is" "blue" "+")
triple1
((triple2) -> (rule4 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
((triple3) -> (rule7 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
Anne is furry.
("Anne" "is" "furry" "+")
triple2
Anne is kind.
("Anne" "is" "kind" "+")
triple3
Anne is rough.
("Anne" "is" "rough" "+")
triple4
((triple1) -> (rule2 % int1))
Anne is rough.
("Anne" "is" "rough" "+")
int1
((triple3) -> (rule3 % int1))
Anne is rough.
("Anne" "is" "rough" "+")
int1
((triple1 triple2) -> (rule6 % int1))
Anne is rough.
("Anne" "is" "rough" "+")
int1
((((triple2) -> (rule4 % int2))) -> (rule2 % int1))
Anne is rough.
("Anne" "is" "rough" "+")
int1
Anne is blue.
("Anne" "is" "blue" "+")
int2
((((triple3) -> (rule7 % int2))) -> (rule2 % int1))
Anne is rough.
("Anne" "is" "rough" "+")
int1
Anne is blue.
("Anne" "is" "blue" "+")
int2
((((triple2) -> (rule4 % int2)) triple2) -> (rule6 % int1))
Anne is rough.
("Anne" "is" "rough" "+")
int1
Anne is blue.
("Anne" "is" "blue" "+")
int2
((((triple3) -> (rule7 % int2)) triple2) -> (rule6 % int1))
Anne is rough.
("Anne" "is" "rough" "+")
int1
Anne is blue.
("Anne" "is" "blue" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
triple5
((triple7) -> (rule7 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is cold.
("Bob" "is" "cold" "+")
triple6
Bob is kind.
("Bob" "is" "kind" "+")
triple7
Bob is nice.
("Bob" "is" "nice" "+")
triple8
Charlie is blue.
("Charlie" "is" "blue" "+")
triple9
((triple11) -> (rule7 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is cold.
("Charlie" "is" "cold" "+")
triple10
Charlie is kind.
("Charlie" "is" "kind" "+")
triple11
Charlie is nice.
("Charlie" "is" "nice" "+")
triple12
Charlie is red.
("Charlie" "is" "red" "+")
triple13
((triple11) -> (rule8 % int1))
Charlie is red.
("Charlie" "is" "red" "+")
int1
Fiona is blue.
("Fiona" "is" "blue" "+")
triple14
Fiona is red.
("Fiona" "is" "red" "+")
triple15
Fiona is rough.
("Fiona" "is" "rough" "+")
triple16
((triple14) -> (rule2 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Anne is cold.
("Anne" "is" "cold" "+")
((triple2 triple1) -> (rule5 % int1))
Anne is cold.
("Anne" "is" "cold" "+")
int1
((triple2 ((triple2) -> (rule4 % int2))) -> (rule5 % int1))
Anne is cold.
("Anne" "is" "cold" "+")
int1
Anne is blue.
("Anne" "is" "blue" "+")
int2
((triple2 ((triple3) -> (rule7 % int2))) -> (rule5 % int1))
Anne is cold.
("Anne" "is" "cold" "+")
int1
Anne is blue.
("Anne" "is" "blue" "+")
int2
Anne is red.
("Anne" "is" "red" "+")
((triple3) -> (rule8 % int1))
Anne is red.
("Anne" "is" "red" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
((triple7) -> (rule8 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
((triple5) -> (rule2 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
((triple7) -> (rule3 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
((((triple7) -> (rule7 % int2))) -> (rule2 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
((triple11) -> (rule3 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
((triple9) -> (rule2 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
((((triple11) -> (rule7 % int2))) -> (rule2 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2