Bob is blue. Bob is nice. Bob is red. Charlie is blue. Charlie is nice. Charlie is red. Charlie is white. Charlie is young. Fiona is nice. Fiona is rough. Young, rough people are cold. Blue people are cold. Young people are cold. Red people are young. If someone is young and blue then they are white. If someone is young and nice then they are rough. If Fiona is cold and Fiona is young then Fiona is white. If someone is red and blue then they are cold.
Bob is blue.
("Bob" "is" "blue" "+")
Bob is nice.
("Bob" "is" "nice" "+")
Bob is red.
("Bob" "is" "red" "+")
Charlie is blue.
("Charlie" "is" "blue" "+")
Charlie is nice.
("Charlie" "is" "nice" "+")
Charlie is red.
("Charlie" "is" "red" "+")
Charlie is white.
("Charlie" "is" "white" "+")
Charlie is young.
("Charlie" "is" "young" "+")
Fiona is nice.
("Fiona" "is" "nice" "+")
Fiona is rough.
("Fiona" "is" "rough" "+")
Young, rough people are cold.
((("someone" "is" "young" "+") ("someone" "is" "rough" "+")) -> ("someone" "is" "cold" "+"))
Blue people are cold.
((("someone" "is" "blue" "+")) -> ("someone" "is" "cold" "+"))
Young people are cold.
((("someone" "is" "young" "+")) -> ("someone" "is" "cold" "+"))
Red people are young.
((("someone" "is" "red" "+")) -> ("someone" "is" "young" "+"))
If someone is young and blue then they are white.
((("someone" "is" "young" "+") ("someone" "is" "blue" "+")) -> ("someone" "is" "white" "+"))
If someone is young and nice then they are rough.
((("someone" "is" "young" "+") ("someone" "is" "nice" "+")) -> ("someone" "is" "rough" "+"))
If Fiona is cold and Fiona is young then Fiona is white.
((("Fiona" "is" "cold" "+") ("Fiona" "is" "young" "+")) -> ("Fiona" "is" "white" "+"))
If someone is red and blue then they are cold.
((("someone" "is" "red" "+") ("someone" "is" "blue" "+")) -> ("someone" "is" "cold" "+"))
Bob is nice.
True
1
proof
[(triple2)]
("Bob" "is" "nice" "+")
triple2
Charlie is not red.
False
1
inv-proof
[(triple6)]
("Charlie" "is" "red" "-")
triple6
Bob is young.
True
2
proof
[(((triple3) -> rule4))]
("Bob" "is" "young" "+")
((triple3) -> (rule4 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is not young.
False
2
inv-proof
[(((triple3) -> rule4))]
("Bob" "is" "young" "-")
((triple3) -> (rule4 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is white.
True
4
proof
[(((((triple3) -> rule4) triple1) -> rule5))]
("Bob" "is" "white" "+")
((((triple3) -> (rule4 % int2)) triple1) -> (rule5 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is young.
("Bob" "is" "young" "+")
int2
Bob is not white.
False
4
inv-proof
[(((((triple3) -> rule4) triple1) -> rule5))]
("Bob" "is" "white" "-")
((((triple3) -> (rule4 % int2)) triple1) -> (rule5 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is young.
("Bob" "is" "young" "+")
int2
Fiona is not white.
Unknown
inv-rconc
[@2: Fiona is white.[CWA. Example of deepest failure = (rule7 <- rule4 <- FAIL)]]
("Fiona" "is" "white" "-")
Fiona is young.
Unknown
rconc
[@1: Fiona is young.[CWA. Example of deepest failure = (rule4 <- FAIL)]]
("Fiona" "is" "young" "+")
Fiona is not cold.
Unknown
inv-rconc
[@2: Fiona is cold.[CWA. Example of deepest failure = (rule1 <- rule4 <- FAIL)]]
("Fiona" "is" "cold" "-")
Fiona is blue.
Unknown
random
[@0: Fiona is blue.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "blue" "+")
@0: Bob is blue.[(triple1)] Bob is nice.[(triple2)] Bob is red.[(triple3)] Charlie is blue.[(triple4)] Charlie is nice.[(triple5)] Charlie is red.[(triple6)] Charlie is white.[(triple7 OR ((triple8 triple4) -> rule5) OR ((((triple6) -> rule4) triple4) -> rule5))] Charlie is young.[(triple8 OR ((triple6) -> rule4))] Fiona is nice.[(triple9)] Fiona is rough.[(triple10)] @1: Bob is cold.[(((triple1) -> rule2) OR ((triple3 triple1) -> rule8) OR ((((triple3) -> rule4)) -> rule3) OR ((((triple3) -> rule4) ((((triple3) -> rule4) triple2) -> rule6)) -> rule1))] Bob is young.[(((triple3) -> rule4))] Charlie is cold.[(((triple4) -> rule2) OR ((triple8) -> rule3) OR ((triple6 triple4) -> rule8) OR ((((triple6) -> rule4)) -> rule3) OR ((triple8 ((triple8 triple5) -> rule6)) -> rule1) OR ((((triple6) -> rule4) ((triple8 triple5) -> rule6)) -> rule1) OR ((triple8 ((((triple6) -> rule4) triple5) -> rule6)) -> rule1) OR ((((triple6) -> rule4) ((((triple6) -> rule4) triple5) -> rule6)) -> rule1))] Charlie is rough.[(((triple8 triple5) -> rule6) OR ((((triple6) -> rule4) triple5) -> rule6))] @2: Bob is rough.[(((((triple3) -> rule4) triple2) -> rule6))] Bob is white.[(((((triple3) -> rule4) triple1) -> rule5))]
Bob is blue.
("Bob" "is" "blue" "+")
triple1
Bob is nice.
("Bob" "is" "nice" "+")
triple2
Bob is red.
("Bob" "is" "red" "+")
triple3
Charlie is blue.
("Charlie" "is" "blue" "+")
triple4
Charlie is nice.
("Charlie" "is" "nice" "+")
triple5
Charlie is red.
("Charlie" "is" "red" "+")
triple6
Charlie is white.
("Charlie" "is" "white" "+")
triple7
((triple8 triple4) -> (rule5 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
((((triple6) -> (rule4 % int2)) triple4) -> (rule5 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
Charlie is young.
("Charlie" "is" "young" "+")
int2
Charlie is young.
("Charlie" "is" "young" "+")
triple8
((triple6) -> (rule4 % int1))
Charlie is young.
("Charlie" "is" "young" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
triple9
Fiona is rough.
("Fiona" "is" "rough" "+")
triple10
Bob is cold.
("Bob" "is" "cold" "+")
((triple1) -> (rule2 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
((triple3 triple1) -> (rule8 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
((((triple3) -> (rule4 % int2))) -> (rule3 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
Bob is young.
("Bob" "is" "young" "+")
int2
((((triple3) -> (rule4 % int3)) ((((triple3) -> (rule4 % int3)) triple2) -> (rule6 % int2))) -> (rule1 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is young.
("Bob" "is" "young" "+")
int3
Bob is young.
("Bob" "is" "young" "+")
((triple3) -> (rule4 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Charlie is cold.
("Charlie" "is" "cold" "+")
((triple4) -> (rule2 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
((triple8) -> (rule3 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
((triple6 triple4) -> (rule8 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
((((triple6) -> (rule4 % int2))) -> (rule3 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
Charlie is young.
("Charlie" "is" "young" "+")
int2
((triple8 ((triple8 triple5) -> (rule6 % int2))) -> (rule1 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
((((triple6) -> (rule4 % int3)) ((triple8 triple5) -> (rule6 % int2))) -> (rule1 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Charlie is young.
("Charlie" "is" "young" "+")
int3
((triple8 ((((triple6) -> (rule4 % int3)) triple5) -> (rule6 % int2))) -> (rule1 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Charlie is young.
("Charlie" "is" "young" "+")
int3
((((triple6) -> (rule4 % int3)) ((((triple6) -> (rule4 % int3)) triple5) -> (rule6 % int2))) -> (rule1 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Charlie is young.
("Charlie" "is" "young" "+")
int3
Charlie is rough.
("Charlie" "is" "rough" "+")
((triple8 triple5) -> (rule6 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
((((triple6) -> (rule4 % int2)) triple5) -> (rule6 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Charlie is young.
("Charlie" "is" "young" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
((((triple3) -> (rule4 % int2)) triple2) -> (rule6 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is young.
("Bob" "is" "young" "+")
int2
Bob is white.
("Bob" "is" "white" "+")
((((triple3) -> (rule4 % int2)) triple1) -> (rule5 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is young.
("Bob" "is" "young" "+")
int2