Bob is white. Charlie is big. Fiona is smart. Gary is round. All white things are nice. If something is red and round then it is cold. If Gary is round then Gary is red. Cold, round things are white. If Gary is nice and Gary is big then Gary is red. Smart, red things are big.
Bob is white.
("Bob" "is" "white" "+")
Charlie is big.
("Charlie" "is" "big" "+")
Fiona is smart.
("Fiona" "is" "smart" "+")
Gary is round.
("Gary" "is" "round" "+")
All white things are nice.
((("something" "is" "white" "+")) -> ("something" "is" "nice" "+"))
If something is red and round then it is cold.
((("something" "is" "red" "+") ("something" "is" "round" "+")) -> ("something" "is" "cold" "+"))
If Gary is round then Gary is red.
((("Gary" "is" "round" "+")) -> ("Gary" "is" "red" "+"))
Cold, round things are white.
((("something" "is" "cold" "+") ("something" "is" "round" "+")) -> ("something" "is" "white" "+"))
If Gary is nice and Gary is big then Gary is red.
((("Gary" "is" "nice" "+") ("Gary" "is" "big" "+")) -> ("Gary" "is" "red" "+"))
Smart, red things are big.
((("something" "is" "smart" "+") ("something" "is" "red" "+")) -> ("something" "is" "big" "+"))
Bob is white.
True
1
proof
[(triple1)]
("Bob" "is" "white" "+")
triple1
Fiona is not smart.
False
1
inv-proof
[(triple3)]
("Fiona" "is" "smart" "-")
triple3
Bob is nice.
True
2
proof
[(((triple1) -> rule1))]
("Bob" "is" "nice" "+")
((triple1) -> (rule1 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is not nice.
False
2
inv-proof
[(((triple1) -> rule1))]
("Bob" "is" "nice" "-")
((triple1) -> (rule1 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Gary is cold.
True
4
proof
[(((((triple4) -> rule3) triple4) -> rule2))]
("Gary" "is" "cold" "+")
((((triple4) -> (rule3 % int2)) triple4) -> (rule2 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is red.
("Gary" "is" "red" "+")
int2
Gary is not cold.
False
4
inv-proof
[(((((triple4) -> rule3) triple4) -> rule2))]
("Gary" "is" "cold" "-")
((((triple4) -> (rule3 % int2)) triple4) -> (rule2 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is red.
("Gary" "is" "red" "+")
int2
Gary is white.
True
6
proof
[(((((((triple4) -> rule3) triple4) -> rule2) triple4) -> rule4))]
("Gary" "is" "white" "+")
((((((triple4) -> (rule3 % int3)) triple4) -> (rule2 % int2)) triple4) -> (rule4 % int1))
Gary is white.
("Gary" "is" "white" "+")
int1
Gary is cold.
("Gary" "is" "cold" "+")
int2
Gary is red.
("Gary" "is" "red" "+")
int3
Gary is not white.
False
6
inv-proof
[(((((((triple4) -> rule3) triple4) -> rule2) triple4) -> rule4))]
("Gary" "is" "white" "-")
((((((triple4) -> (rule3 % int3)) triple4) -> (rule2 % int2)) triple4) -> (rule4 % int1))
Gary is white.
("Gary" "is" "white" "+")
int1
Gary is cold.
("Gary" "is" "cold" "+")
int2
Gary is red.
("Gary" "is" "red" "+")
int3
Fiona is not white.
Unknown
inv-rconc
[@1: Fiona is white.[CWA. Example of deepest failure = (rule4 <- FAIL)]]
("Fiona" "is" "white" "-")
Fiona is cold.
Unknown
rconc
[@1: Fiona is cold.[CWA. Example of deepest failure = (rule2 <- FAIL)]]
("Fiona" "is" "cold" "+")
Bob is not cold.
Unknown
inv-rconc
[@1: Bob is cold.[CWA. Example of deepest failure = (rule2 <- FAIL)]]
("Bob" "is" "cold" "-")
Fiona is nice.
Unknown
rconc
[@2: Fiona is nice.[CWA. Example of deepest failure = (rule1 <- rule4 <- FAIL)]]
("Fiona" "is" "nice" "+")
Charlie is not smart.
Unknown
inv-random
[@0: Charlie is smart.[CWA. Example of deepest failure = (FAIL)]]
("Charlie" "is" "smart" "-")
Fiona is round.
Unknown
random
[@0: Fiona is round.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "round" "+")
Charlie is not red.
Unknown
inv-random
[@0: Charlie is red.[CWA. Example of deepest failure = (FAIL)]]
("Charlie" "is" "red" "-")
Gary is smart.
Unknown
random
[@0: Gary is smart.[CWA. Example of deepest failure = (FAIL)]]
("Gary" "is" "smart" "+")
@0: Bob is white.[(triple1)] Charlie is big.[(triple2)] Fiona is smart.[(triple3)] Gary is round.[(triple4)] @1: Bob is nice.[(((triple1) -> rule1))] Gary is red.[(((triple4) -> rule3))] @2: Gary is cold.[(((((triple4) -> rule3) triple4) -> rule2))] @3: Gary is white.[(((((((triple4) -> rule3) triple4) -> rule2) triple4) -> rule4))] @4: Gary is nice.[(((((((((triple4) -> rule3) triple4) -> rule2) triple4) -> rule4)) -> rule1))]
Bob is white.
("Bob" "is" "white" "+")
triple1
Charlie is big.
("Charlie" "is" "big" "+")
triple2
Fiona is smart.
("Fiona" "is" "smart" "+")
triple3
Gary is round.
("Gary" "is" "round" "+")
triple4
Bob is nice.
("Bob" "is" "nice" "+")
((triple1) -> (rule1 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Gary is red.
("Gary" "is" "red" "+")
((triple4) -> (rule3 % int1))
Gary is red.
("Gary" "is" "red" "+")
int1
Gary is cold.
("Gary" "is" "cold" "+")
((((triple4) -> (rule3 % int2)) triple4) -> (rule2 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is red.
("Gary" "is" "red" "+")
int2
Gary is white.
("Gary" "is" "white" "+")
((((((triple4) -> (rule3 % int3)) triple4) -> (rule2 % int2)) triple4) -> (rule4 % int1))
Gary is white.
("Gary" "is" "white" "+")
int1
Gary is cold.
("Gary" "is" "cold" "+")
int2
Gary is red.
("Gary" "is" "red" "+")
int3
Gary is nice.
("Gary" "is" "nice" "+")
((((((((triple4) -> (rule3 % int4)) triple4) -> (rule2 % int3)) triple4) -> (rule4 % int2))) -> (rule1 % int1))
Gary is nice.
("Gary" "is" "nice" "+")
int1
Gary is white.
("Gary" "is" "white" "+")
int2
Gary is cold.
("Gary" "is" "cold" "+")
int3
Gary is red.
("Gary" "is" "red" "+")
int4