Charlie is cold. Charlie is nice. Charlie is not rough. Dave is round. Fiona is furry. Fiona is nice. Fiona is red. If something is rough and red then it is furry. All round things are furry. All furry things are nice. If something is red and not cold then it is not round. If something is nice and red then it is not round. If something is white and not red then it is rough.
Charlie is cold.
("Charlie" "is" "cold" "+")
Charlie is nice.
("Charlie" "is" "nice" "+")
Charlie is not rough.
("Charlie" "is" "rough" "-")
Dave is round.
("Dave" "is" "round" "+")
Fiona is furry.
("Fiona" "is" "furry" "+")
Fiona is nice.
("Fiona" "is" "nice" "+")
Fiona is red.
("Fiona" "is" "red" "+")
If something is rough and red then it is furry.
((("something" "is" "rough" "+") ("something" "is" "red" "+")) -> ("something" "is" "furry" "+"))
All round things are furry.
((("something" "is" "round" "+")) -> ("something" "is" "furry" "+"))
All furry things are nice.
((("something" "is" "furry" "+")) -> ("something" "is" "nice" "+"))
If something is red and not cold then it is not round.
((("something" "is" "red" "+") ("something" "is" "cold" "~")) -> ("something" "is" "round" "-"))
If something is nice and red then it is not round.
((("something" "is" "nice" "+") ("something" "is" "red" "+")) -> ("something" "is" "round" "-"))
If something is white and not red then it is rough.
((("something" "is" "white" "+") ("something" "is" "red" "~")) -> ("something" "is" "rough" "+"))
Charlie is not rough.
True
1
proof
[(triple3)]
("Charlie" "is" "rough" "-")
triple3
Fiona is not red.
False
1
inv-proof
[(triple7)]
("Fiona" "is" "red" "-")
triple7
Dave is furry.
True
2
proof
[(((triple4) -> rule2))]
("Dave" "is" "furry" "+")
((triple4) -> (rule2 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Dave is not furry.
False
2
inv-proof
[(((triple4) -> rule2))]
("Dave" "is" "furry" "-")
((triple4) -> (rule2 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Dave is nice.
True
3
proof
[(((((triple4) -> rule2)) -> rule3))]
("Dave" "is" "nice" "+")
((((triple4) -> (rule2 % int2))) -> (rule3 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is furry.
("Dave" "is" "furry" "+")
int2
Dave is not nice.
False
3
inv-proof
[(((((triple4) -> rule2)) -> rule3))]
("Dave" "is" "nice" "-")
((((triple4) -> (rule2 % int2))) -> (rule3 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is furry.
("Dave" "is" "furry" "+")
int2
Dave is not rough.
Unknown
inv-rconc
[@1: Dave is rough.[CWA. Example of deepest failure = (rule6 <- FAIL)]]
("Dave" "is" "rough" "-")
Charlie is furry.
Unknown
rconc
[@1: Charlie is furry.[CWA. Example of deepest failure = (rule1 <- FAIL)]]
("Charlie" "is" "furry" "+")
Fiona is not rough.
Unknown
inv-rconc
[@1: Fiona is rough.[CWA. Example of deepest failure = (rule6 <- FAIL)]]
("Fiona" "is" "rough" "-")
Charlie is white.
Unknown
random
[@0: Charlie is white.[CWA. Example of deepest failure = (FAIL)]]
("Charlie" "is" "white" "+")
Dave is not red.
Unknown
inv-random
[@0: Dave is red.[CWA. Example of deepest failure = (FAIL)]]
("Dave" "is" "red" "-")
Fiona is cold.
Unknown
random
[@0: Fiona is cold.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "cold" "+")
@0: Charlie is cold.[(triple1)] Charlie is nice.[(triple2)] Charlie is not rough.[(triple3)] Dave is round.[(triple4)] Fiona is furry.[(triple5)] Fiona is nice.[(triple6 OR ((triple5) -> rule3))] Fiona is red.[(triple7)] @1: Dave is furry.[(((triple4) -> rule2))] Fiona is not round.[(((triple6 triple7) -> rule5) OR ((((triple5) -> rule3) triple7) -> rule5))] @2: Dave is nice.[(((((triple4) -> rule2)) -> rule3))]
Charlie is cold.
("Charlie" "is" "cold" "+")
triple1
Charlie is nice.
("Charlie" "is" "nice" "+")
triple2
Charlie is not rough.
("Charlie" "is" "rough" "-")
triple3
Dave is round.
("Dave" "is" "round" "+")
triple4
Fiona is furry.
("Fiona" "is" "furry" "+")
triple5
Fiona is nice.
("Fiona" "is" "nice" "+")
triple6
((triple5) -> (rule3 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
triple7
Dave is furry.
("Dave" "is" "furry" "+")
((triple4) -> (rule2 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Fiona is not round.
("Fiona" "is" "round" "-")
((triple6 triple7) -> (rule5 % int1))
Fiona is not round.
("Fiona" "is" "round" "-")
int1
((((triple5) -> (rule3 % int2)) triple7) -> (rule5 % int1))
Fiona is not round.
("Fiona" "is" "round" "-")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
Dave is nice.
("Dave" "is" "nice" "+")
((((triple4) -> (rule2 % int2))) -> (rule3 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is furry.
("Dave" "is" "furry" "+")
int2