Bob is round. Charlie is smart. Fiona is young. If Bob is round and Bob is white then Bob is cold. If something is round then it is white. Young, red things are round. If something is cold then it is young. Blue, round things are smart. If something is young and blue then it is white. Cold, young things are red. Red, blue things are cold.
Bob is round.
("Bob" "is" "round" "+")
Charlie is smart.
("Charlie" "is" "smart" "+")
Fiona is young.
("Fiona" "is" "young" "+")
If Bob is round and Bob is white then Bob is cold.
((("Bob" "is" "round" "+") ("Bob" "is" "white" "+")) -> ("Bob" "is" "cold" "+"))
If something is round then it is white.
((("something" "is" "round" "+")) -> ("something" "is" "white" "+"))
Young, red things are round.
((("something" "is" "young" "+") ("something" "is" "red" "+")) -> ("something" "is" "round" "+"))
If something is cold then it is young.
((("something" "is" "cold" "+")) -> ("something" "is" "young" "+"))
Blue, round things are smart.
((("something" "is" "blue" "+") ("something" "is" "round" "+")) -> ("something" "is" "smart" "+"))
If something is young and blue then it is white.
((("something" "is" "young" "+") ("something" "is" "blue" "+")) -> ("something" "is" "white" "+"))
Cold, young things are red.
((("something" "is" "cold" "+") ("something" "is" "young" "+")) -> ("something" "is" "red" "+"))
Red, blue things are cold.
((("something" "is" "red" "+") ("something" "is" "blue" "+")) -> ("something" "is" "cold" "+"))
Charlie is smart.
True
1
proof
[(triple2)]
("Charlie" "is" "smart" "+")
triple2
Charlie is not smart.
False
1
inv-proof
[(triple2)]
("Charlie" "is" "smart" "-")
triple2
Bob is white.
True
2
proof
[(((triple1) -> rule2))]
("Bob" "is" "white" "+")
((triple1) -> (rule2 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is not white.
False
2
inv-proof
[(((triple1) -> rule2))]
("Bob" "is" "white" "-")
((triple1) -> (rule2 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is cold.
True
4
proof
[(((triple1 ((triple1) -> rule2)) -> rule1))]
("Bob" "is" "cold" "+")
((triple1 ((triple1) -> (rule2 % int2))) -> (rule1 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
Bob is white.
("Bob" "is" "white" "+")
int2
Bob is not cold.
False
4
inv-proof
[(((triple1 ((triple1) -> rule2)) -> rule1))]
("Bob" "is" "cold" "-")
((triple1 ((triple1) -> (rule2 % int2))) -> (rule1 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
Bob is white.
("Bob" "is" "white" "+")
int2
Bob is young.
True
5
proof
[(((((triple1 ((triple1) -> rule2)) -> rule1)) -> rule4))]
("Bob" "is" "young" "+")
((((triple1 ((triple1) -> (rule2 % int3))) -> (rule1 % int2))) -> (rule4 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is cold.
("Bob" "is" "cold" "+")
int2
Bob is white.
("Bob" "is" "white" "+")
int3
Bob is not young.
False
5
inv-proof
[(((((triple1 ((triple1) -> rule2)) -> rule1)) -> rule4))]
("Bob" "is" "young" "-")
((((triple1 ((triple1) -> (rule2 % int3))) -> (rule1 % int2))) -> (rule4 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is cold.
("Bob" "is" "cold" "+")
int2
Bob is white.
("Bob" "is" "white" "+")
int3
Fiona is not white.
Unknown
inv-rconc
[@4: Fiona is white.[CWA. Example of deepest failure = (rule2 <- rule3 <- rule7 <- rule8 <- FAIL)]]
("Fiona" "is" "white" "-")
Bob is smart.
Unknown
rconc
[@1: Bob is smart.[CWA. Example of deepest failure = (rule5 <- FAIL)]]
("Bob" "is" "smart" "+")
Charlie is not young.
Unknown
inv-rconc
[@2: Charlie is young.[CWA. Example of deepest failure = (rule4 <- rule8 <- FAIL)]]
("Charlie" "is" "young" "-")
Fiona is round.
Unknown
rconc
[@3: Fiona is round.[CWA. Example of deepest failure = (rule3 <- rule7 <- rule8 <- FAIL)]]
("Fiona" "is" "round" "+")
Bob is not blue.
Unknown
inv-random
[@0: Bob is blue.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "blue" "-")
Fiona is blue.
Unknown
random
[@0: Fiona is blue.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "blue" "+")
@0: Bob is round.[(triple1)] Charlie is smart.[(triple2)] Fiona is young.[(triple3)] @1: Bob is white.[(((triple1) -> rule2))] @2: Bob is cold.[(((triple1 ((triple1) -> rule2)) -> rule1))] @3: Bob is young.[(((((triple1 ((triple1) -> rule2)) -> rule1)) -> rule4))] @4: Bob is red.[(((((triple1 ((triple1) -> rule2)) -> rule1) ((((triple1 ((triple1) -> rule2)) -> rule1)) -> rule4)) -> rule7))]
Bob is round.
("Bob" "is" "round" "+")
triple1
Charlie is smart.
("Charlie" "is" "smart" "+")
triple2
Fiona is young.
("Fiona" "is" "young" "+")
triple3
Bob is white.
("Bob" "is" "white" "+")
((triple1) -> (rule2 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is cold.
("Bob" "is" "cold" "+")
((triple1 ((triple1) -> (rule2 % int2))) -> (rule1 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
Bob is white.
("Bob" "is" "white" "+")
int2
Bob is young.
("Bob" "is" "young" "+")
((((triple1 ((triple1) -> (rule2 % int3))) -> (rule1 % int2))) -> (rule4 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is cold.
("Bob" "is" "cold" "+")
int2
Bob is white.
("Bob" "is" "white" "+")
int3
Bob is red.
("Bob" "is" "red" "+")
((((triple1 ((triple1) -> (rule2 % int4))) -> (rule1 % int3)) ((((triple1 ((triple1) -> (rule2 % int4))) -> (rule1 % int3))) -> (rule4 % int2))) -> (rule7 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is young.
("Bob" "is" "young" "+")
int2
Bob is cold.
("Bob" "is" "cold" "+")
int3
Bob is white.
("Bob" "is" "white" "+")
int4