Dave is blue. Dave is quiet. Fiona is round. Fiona is young. Harry is quiet. Harry is red. Harry is round. If something is red then it is blue. Blue, young things are red. If something is white and young then it is round. White, round things are quiet. If something is blue then it is young. Red things are white. If something is white then it is furry. Blue things are furry.
Dave is blue.
("Dave" "is" "blue" "+")
Dave is quiet.
("Dave" "is" "quiet" "+")
Fiona is round.
("Fiona" "is" "round" "+")
Fiona is young.
("Fiona" "is" "young" "+")
Harry is quiet.
("Harry" "is" "quiet" "+")
Harry is red.
("Harry" "is" "red" "+")
Harry is round.
("Harry" "is" "round" "+")
If something is red then it is blue.
((("something" "is" "red" "+")) -> ("something" "is" "blue" "+"))
Blue, young things are red.
((("something" "is" "blue" "+") ("something" "is" "young" "+")) -> ("something" "is" "red" "+"))
If something is white and young then it is round.
((("something" "is" "white" "+") ("something" "is" "young" "+")) -> ("something" "is" "round" "+"))
White, round things are quiet.
((("something" "is" "white" "+") ("something" "is" "round" "+")) -> ("something" "is" "quiet" "+"))
If something is blue then it is young.
((("something" "is" "blue" "+")) -> ("something" "is" "young" "+"))
Red things are white.
((("something" "is" "red" "+")) -> ("something" "is" "white" "+"))
If something is white then it is furry.
((("something" "is" "white" "+")) -> ("something" "is" "furry" "+"))
Blue things are furry.
((("something" "is" "blue" "+")) -> ("something" "is" "furry" "+"))
Harry is red.
True
1
proof
[(triple6)]
("Harry" "is" "red" "+")
triple6
Dave is not quiet.
False
1
inv-proof
[(triple2 OR ((((((triple1 ((triple1) -> rule5)) -> rule2)) -> rule6) ((((((triple1 ((triple1) -> rule5)) -> rule2)) -> rule6) ((triple1) -> rule5)) -> rule3)) -> rule4))]
("Dave" "is" "quiet" "-")
triple2
((((((triple1 ((triple1) -> (rule5 % int5))) -> (rule2 % int4))) -> (rule6 % int3)) ((((((triple1 ((triple1) -> (rule5 % int5))) -> (rule2 % int4))) -> (rule6 % int3)) ((triple1) -> (rule5 % int5))) -> (rule3 % int2))) -> (rule4 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
int2
Dave is white.
("Dave" "is" "white" "+")
int3
Dave is red.
("Dave" "is" "red" "+")
int4
Dave is young.
("Dave" "is" "young" "+")
int5
Harry is blue.
True
2
proof
[(((triple6) -> rule1))]
("Harry" "is" "blue" "+")
((triple6) -> (rule1 % int1))
Harry is blue.
("Harry" "is" "blue" "+")
int1
Dave is not young.
False
2
inv-proof
[(((triple1) -> rule5))]
("Dave" "is" "young" "-")
((triple1) -> (rule5 % int1))
Dave is young.
("Dave" "is" "young" "+")
int1
Harry is furry.
True
3
proof
[(((((triple6) -> rule1)) -> rule8) OR ((((triple6) -> rule6)) -> rule7))]
("Harry" "is" "furry" "+")
((((triple6) -> (rule1 % int2))) -> (rule8 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is blue.
("Harry" "is" "blue" "+")
int2
((((triple6) -> (rule6 % int2))) -> (rule7 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is white.
("Harry" "is" "white" "+")
int2
Harry is not furry.
False
3
inv-proof
[(((((triple6) -> rule1)) -> rule8) OR ((((triple6) -> rule6)) -> rule7))]
("Harry" "is" "furry" "-")
((((triple6) -> (rule1 % int2))) -> (rule8 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is blue.
("Harry" "is" "blue" "+")
int2
((((triple6) -> (rule6 % int2))) -> (rule7 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is white.
("Harry" "is" "white" "+")
int2
Dave is white.
True
5
proof
[(((((triple1 ((triple1) -> rule5)) -> rule2)) -> rule6))]
("Dave" "is" "white" "+")
((((triple1 ((triple1) -> (rule5 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Dave is white.
("Dave" "is" "white" "+")
int1
Dave is red.
("Dave" "is" "red" "+")
int2
Dave is young.
("Dave" "is" "young" "+")
int3
Dave is not white.
False
5
inv-proof
[(((((triple1 ((triple1) -> rule5)) -> rule2)) -> rule6))]
("Dave" "is" "white" "-")
((((triple1 ((triple1) -> (rule5 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Dave is white.
("Dave" "is" "white" "+")
int1
Dave is red.
("Dave" "is" "red" "+")
int2
Dave is young.
("Dave" "is" "young" "+")
int3
Fiona is not blue.
Unknown
inv-rconc
[@2: Fiona is blue.[CWA. Example of deepest failure = (rule1 <- rule2 <- FAIL)]]
("Fiona" "is" "blue" "-")
Fiona is furry.
Unknown
rconc
[@4: Fiona is furry.[CWA. Example of deepest failure = (rule7 <- rule6 <- rule2 <- rule1 <- FAIL)]]
("Fiona" "is" "furry" "+")
Fiona is not white.
Unknown
inv-rconc
[@3: Fiona is white.[CWA. Example of deepest failure = (rule6 <- rule2 <- rule1 <- FAIL)]]
("Fiona" "is" "white" "-")
Fiona is quiet.
Unknown
rconc
[@4: Fiona is quiet.[CWA. Example of deepest failure = (rule4 <- rule6 <- rule2 <- rule1 <- FAIL)]]
("Fiona" "is" "quiet" "+")
@0: Dave is blue.[(triple1)] Dave is quiet.[(triple2 OR ((((((triple1 ((triple1) -> rule5)) -> rule2)) -> rule6) ((((((triple1 ((triple1) -> rule5)) -> rule2)) -> rule6) ((triple1) -> rule5)) -> rule3)) -> rule4))] Fiona is round.[(triple3)] Fiona is young.[(triple4)] Harry is quiet.[(triple5 OR ((((triple6) -> rule6) triple7) -> rule4) OR ((((triple6) -> rule6) ((((triple6) -> rule6) ((((triple6) -> rule1)) -> rule5)) -> rule3)) -> rule4))] Harry is red.[(triple6)] Harry is round.[(triple7 OR ((((triple6) -> rule6) ((((triple6) -> rule1)) -> rule5)) -> rule3))] @1: Dave is furry.[(((triple1) -> rule8) OR ((((((triple1 ((triple1) -> rule5)) -> rule2)) -> rule6)) -> rule7))] Dave is young.[(((triple1) -> rule5))] Harry is blue.[(((triple6) -> rule1))] Harry is white.[(((triple6) -> rule6))] @2: Dave is red.[(((triple1 ((triple1) -> rule5)) -> rule2))] Harry is furry.[(((((triple6) -> rule1)) -> rule8) OR ((((triple6) -> rule6)) -> rule7))] Harry is young.[(((((triple6) -> rule1)) -> rule5))] @3: Dave is white.[(((((triple1 ((triple1) -> rule5)) -> rule2)) -> rule6))] @4: Dave is round.[(((((((triple1 ((triple1) -> rule5)) -> rule2)) -> rule6) ((triple1) -> rule5)) -> rule3))]
Dave is blue.
("Dave" "is" "blue" "+")
triple1
Dave is quiet.
("Dave" "is" "quiet" "+")
triple2
((((((triple1 ((triple1) -> (rule5 % int5))) -> (rule2 % int4))) -> (rule6 % int3)) ((((((triple1 ((triple1) -> (rule5 % int5))) -> (rule2 % int4))) -> (rule6 % int3)) ((triple1) -> (rule5 % int5))) -> (rule3 % int2))) -> (rule4 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
int2
Dave is white.
("Dave" "is" "white" "+")
int3
Dave is red.
("Dave" "is" "red" "+")
int4
Dave is young.
("Dave" "is" "young" "+")
int5
Fiona is round.
("Fiona" "is" "round" "+")
triple3
Fiona is young.
("Fiona" "is" "young" "+")
triple4
Harry is quiet.
("Harry" "is" "quiet" "+")
triple5
((((triple6) -> (rule6 % int2)) triple7) -> (rule4 % int1))
Harry is quiet.
("Harry" "is" "quiet" "+")
int1
Harry is white.
("Harry" "is" "white" "+")
int2
((((triple6) -> (rule6 % int5)) ((((triple6) -> (rule6 % int5)) ((((triple6) -> (rule1 % int4))) -> (rule5 % int3))) -> (rule3 % int2))) -> (rule4 % int1))
Harry is quiet.
("Harry" "is" "quiet" "+")
int1
Harry is round.
("Harry" "is" "round" "+")
int2
Harry is young.
("Harry" "is" "young" "+")
int3
Harry is blue.
("Harry" "is" "blue" "+")
int4
Harry is white.
("Harry" "is" "white" "+")
int5
Harry is red.
("Harry" "is" "red" "+")
triple6
Harry is round.
("Harry" "is" "round" "+")
triple7
((((triple6) -> (rule6 % int4)) ((((triple6) -> (rule1 % int3))) -> (rule5 % int2))) -> (rule3 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is young.
("Harry" "is" "young" "+")
int2
Harry is blue.
("Harry" "is" "blue" "+")
int3
Harry is white.
("Harry" "is" "white" "+")
int4
Dave is furry.
("Dave" "is" "furry" "+")
((triple1) -> (rule8 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
((((((triple1 ((triple1) -> (rule5 % int4))) -> (rule2 % int3))) -> (rule6 % int2))) -> (rule7 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Dave is white.
("Dave" "is" "white" "+")
int2
Dave is red.
("Dave" "is" "red" "+")
int3
Dave is young.
("Dave" "is" "young" "+")
int4
Dave is young.
("Dave" "is" "young" "+")
((triple1) -> (rule5 % int1))
Dave is young.
("Dave" "is" "young" "+")
int1
Harry is blue.
("Harry" "is" "blue" "+")
((triple6) -> (rule1 % int1))
Harry is blue.
("Harry" "is" "blue" "+")
int1
Harry is white.
("Harry" "is" "white" "+")
((triple6) -> (rule6 % int1))
Harry is white.
("Harry" "is" "white" "+")
int1
Dave is red.
("Dave" "is" "red" "+")
((triple1 ((triple1) -> (rule5 % int2))) -> (rule2 % int1))
Dave is red.
("Dave" "is" "red" "+")
int1
Dave is young.
("Dave" "is" "young" "+")
int2
Harry is furry.
("Harry" "is" "furry" "+")
((((triple6) -> (rule1 % int2))) -> (rule8 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is blue.
("Harry" "is" "blue" "+")
int2
((((triple6) -> (rule6 % int2))) -> (rule7 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is white.
("Harry" "is" "white" "+")
int2
Harry is young.
("Harry" "is" "young" "+")
((((triple6) -> (rule1 % int2))) -> (rule5 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is blue.
("Harry" "is" "blue" "+")
int2
Dave is white.
("Dave" "is" "white" "+")
((((triple1 ((triple1) -> (rule5 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Dave is white.
("Dave" "is" "white" "+")
int1
Dave is red.
("Dave" "is" "red" "+")
int2
Dave is young.
("Dave" "is" "young" "+")
int3
Dave is round.
("Dave" "is" "round" "+")
((((((triple1 ((triple1) -> (rule5 % int4))) -> (rule2 % int3))) -> (rule6 % int2)) ((triple1) -> (rule5 % int4))) -> (rule3 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is white.
("Dave" "is" "white" "+")
int2
Dave is red.
("Dave" "is" "red" "+")
int3
Dave is young.
("Dave" "is" "young" "+")
int4