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