Bob is furry. Bob is green. Bob is quiet. Bob is red. Bob is smart. Charlie is smart. Fiona is white. Harry is furry. Harry is quiet. Harry is smart. If something is green then it is red. All round, smart things are furry. If something is quiet and white then it is furry. All furry, round things are smart. Smart things are round. All round, red things are white. Furry things are green. If something is round then it is white.
Bob is furry.
("Bob" "is" "furry" "+")
Bob is green.
("Bob" "is" "green" "+")
Bob is quiet.
("Bob" "is" "quiet" "+")
Bob is red.
("Bob" "is" "red" "+")
Bob is smart.
("Bob" "is" "smart" "+")
Charlie is smart.
("Charlie" "is" "smart" "+")
Fiona is white.
("Fiona" "is" "white" "+")
Harry is furry.
("Harry" "is" "furry" "+")
Harry is quiet.
("Harry" "is" "quiet" "+")
Harry is smart.
("Harry" "is" "smart" "+")
If something is green then it is red.
((("something" "is" "green" "+")) -> ("something" "is" "red" "+"))
All round, smart things are furry.
((("something" "is" "round" "+") ("something" "is" "smart" "+")) -> ("something" "is" "furry" "+"))
If something is quiet and white then it is furry.
((("something" "is" "quiet" "+") ("something" "is" "white" "+")) -> ("something" "is" "furry" "+"))
All furry, round things are smart.
((("something" "is" "furry" "+") ("something" "is" "round" "+")) -> ("something" "is" "smart" "+"))
Smart things are round.
((("something" "is" "smart" "+")) -> ("something" "is" "round" "+"))
All round, red things are white.
((("something" "is" "round" "+") ("something" "is" "red" "+")) -> ("something" "is" "white" "+"))
Furry things are green.
((("something" "is" "furry" "+")) -> ("something" "is" "green" "+"))
If something is round then it is white.
((("something" "is" "round" "+")) -> ("something" "is" "white" "+"))
Harry is quiet.
True
1
proof
[(triple9)]
("Harry" "is" "quiet" "+")
triple9
Fiona is not white.
False
1
inv-proof
[(triple7)]
("Fiona" "is" "white" "-")
triple7
Harry is round.
True
2
proof
[(((triple10) -> rule5))]
("Harry" "is" "round" "+")
((triple10) -> (rule5 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Bob is not round.
False
2
inv-proof
[(((triple5) -> rule5))]
("Bob" "is" "round" "-")
((triple5) -> (rule5 % int1))
Bob is round.
("Bob" "is" "round" "+")
int1
Bob is white.
True
3
proof
[(((((triple5) -> rule5)) -> rule8) OR ((((triple5) -> rule5) triple4) -> rule6) OR ((((triple5) -> rule5) ((triple2) -> rule1)) -> rule6) OR ((((triple5) -> rule5) ((((triple1) -> rule7)) -> rule1)) -> rule6) OR ((((triple5) -> rule5) ((((((((triple5) -> rule5) triple5) -> rule2)) -> rule7)) -> rule1)) -> rule6))]
("Bob" "is" "white" "+")
((((triple5) -> (rule5 % int2))) -> (rule8 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
((((triple5) -> (rule5 % int2)) triple4) -> (rule6 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
((((triple5) -> (rule5 % int3)) ((triple2) -> (rule1 % int2))) -> (rule6 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is round.
("Bob" "is" "round" "+")
int3
((((triple5) -> (rule5 % int4)) ((((triple1) -> (rule7 % int3))) -> (rule1 % int2))) -> (rule6 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is green.
("Bob" "is" "green" "+")
int3
Bob is round.
("Bob" "is" "round" "+")
int4
((((triple5) -> (rule5 % int5)) ((((((((triple5) -> (rule5 % int5)) triple5) -> (rule2 % int4))) -> (rule7 % int3))) -> (rule1 % int2))) -> (rule6 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is green.
("Bob" "is" "green" "+")
int3
Bob is furry.
("Bob" "is" "furry" "+")
int4
Bob is round.
("Bob" "is" "round" "+")
int5
Harry is not red.
False
3
inv-proof
[(((((triple8) -> rule7)) -> rule1) OR ((((((((triple10) -> rule5) triple10) -> rule2)) -> rule7)) -> rule1) OR ((((((triple9 ((((triple10) -> rule5)) -> rule8)) -> rule3)) -> rule7)) -> rule1))]
("Harry" "is" "red" "-")
((((triple8) -> (rule7 % int2))) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
((((((((triple10) -> (rule5 % int4)) triple10) -> (rule2 % int3))) -> (rule7 % int2))) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Harry is furry.
("Harry" "is" "furry" "+")
int3
Harry is round.
("Harry" "is" "round" "+")
int4
((((((triple9 ((((triple10) -> (rule5 % int5))) -> (rule8 % int4))) -> (rule3 % int3))) -> (rule7 % int2))) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Harry is furry.
("Harry" "is" "furry" "+")
int3
Harry is white.
("Harry" "is" "white" "+")
int4
Harry is round.
("Harry" "is" "round" "+")
int5
Fiona is not smart.
Unknown
inv-rconc
[@2: Fiona is smart.[CWA. Example of deepest failure = (rule4 <- rule2 <- FAIL)]]
("Fiona" "is" "smart" "-")
Fiona is round.
Unknown
rconc
[@2: Fiona is round.[CWA. Example of deepest failure = (rule5 <- rule4 <- FAIL)]]
("Fiona" "is" "round" "+")
Fiona is not furry.
Unknown
inv-rconc
[@3: Fiona is furry.[CWA. Example of deepest failure = (rule2 <- rule5 <- rule4 <- FAIL)]]
("Fiona" "is" "furry" "-")
Charlie is quiet.
Unknown
random
[@0: Charlie is quiet.[CWA. Example of deepest failure = (FAIL)]]
("Charlie" "is" "quiet" "+")
@0: Bob is furry.[(triple1 OR ((((triple5) -> rule5) triple5) -> rule2) OR ((triple3 ((((triple5) -> rule5)) -> rule8)) -> rule3) OR ((triple3 ((((triple5) -> rule5) triple4) -> rule6)) -> rule3) OR ((triple3 ((((triple5) -> rule5) ((triple2) -> rule1)) -> rule6)) -> rule3))] Bob is green.[(triple2 OR ((triple1) -> rule7) OR ((((((triple5) -> rule5) triple5) -> rule2)) -> rule7) OR ((((triple3 ((((triple5) -> rule5)) -> rule8)) -> rule3)) -> rule7) OR ((((triple3 ((((triple5) -> rule5) triple4) -> rule6)) -> rule3)) -> rule7))] Bob is quiet.[(triple3)] Bob is red.[(triple4 OR ((triple2) -> rule1) OR ((((triple1) -> rule7)) -> rule1) OR ((((((((triple5) -> rule5) triple5) -> rule2)) -> rule7)) -> rule1) OR ((((((triple3 ((((triple5) -> rule5)) -> rule8)) -> rule3)) -> rule7)) -> rule1))] Bob is smart.[(triple5)] Charlie is smart.[(triple6)] Fiona is white.[(triple7)] Harry is furry.[(triple8 OR ((((triple10) -> rule5) triple10) -> rule2) OR ((triple9 ((((triple10) -> rule5)) -> rule8)) -> rule3))] Harry is quiet.[(triple9)] Harry is smart.[(triple10)] @1: Bob is round.[(((triple5) -> rule5))] Charlie is round.[(((triple6) -> rule5))] Harry is green.[(((triple8) -> rule7) OR ((((((triple10) -> rule5) triple10) -> rule2)) -> rule7) OR ((((triple9 ((((triple10) -> rule5)) -> rule8)) -> rule3)) -> rule7))] Harry is round.[(((triple10) -> rule5))] @2: Bob is white.[(((((triple5) -> rule5)) -> rule8) OR ((((triple5) -> rule5) triple4) -> rule6) OR ((((triple5) -> rule5) ((triple2) -> rule1)) -> rule6) OR ((((triple5) -> rule5) ((((triple1) -> rule7)) -> rule1)) -> rule6) OR ((((triple5) -> rule5) ((((((((triple5) -> rule5) triple5) -> rule2)) -> rule7)) -> rule1)) -> rule6))] Charlie is furry.[(((((triple6) -> rule5) triple6) -> rule2))] Charlie is white.[(((((triple6) -> rule5)) -> rule8) OR ((((triple6) -> rule5) ((((((((triple6) -> rule5) triple6) -> rule2)) -> rule7)) -> rule1)) -> rule6))] Harry is red.[(((((triple8) -> rule7)) -> rule1) OR ((((((((triple10) -> rule5) triple10) -> rule2)) -> rule7)) -> rule1) OR ((((((triple9 ((((triple10) -> rule5)) -> rule8)) -> rule3)) -> rule7)) -> rule1))] Harry is white.[(((((triple10) -> rule5)) -> rule8) OR ((((triple10) -> rule5) ((((triple8) -> rule7)) -> rule1)) -> rule6) OR ((((triple10) -> rule5) ((((((((triple10) -> rule5) triple10) -> rule2)) -> rule7)) -> rule1)) -> rule6))] @3: Charlie is green.[(((((((triple6) -> rule5) triple6) -> rule2)) -> rule7))] @4: Charlie is red.[(((((((((triple6) -> rule5) triple6) -> rule2)) -> rule7)) -> rule1))]
Bob is furry.
("Bob" "is" "furry" "+")
triple1
((((triple5) -> (rule5 % int2)) triple5) -> (rule2 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
((triple3 ((((triple5) -> (rule5 % int3))) -> (rule8 % int2))) -> (rule3 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is white.
("Bob" "is" "white" "+")
int2
Bob is round.
("Bob" "is" "round" "+")
int3
((triple3 ((((triple5) -> (rule5 % int3)) triple4) -> (rule6 % int2))) -> (rule3 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is white.
("Bob" "is" "white" "+")
int2
Bob is round.
("Bob" "is" "round" "+")
int3
((triple3 ((((triple5) -> (rule5 % int4)) ((triple2) -> (rule1 % int3))) -> (rule6 % int2))) -> (rule3 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is white.
("Bob" "is" "white" "+")
int2
Bob is red.
("Bob" "is" "red" "+")
int3
Bob is round.
("Bob" "is" "round" "+")
int4
Bob is green.
("Bob" "is" "green" "+")
triple2
((triple1) -> (rule7 % int1))
Bob is green.
("Bob" "is" "green" "+")
int1
((((((triple5) -> (rule5 % int3)) triple5) -> (rule2 % int2))) -> (rule7 % int1))
Bob is green.
("Bob" "is" "green" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
Bob is round.
("Bob" "is" "round" "+")
int3
((((triple3 ((((triple5) -> (rule5 % int4))) -> (rule8 % int3))) -> (rule3 % int2))) -> (rule7 % int1))
Bob is green.
("Bob" "is" "green" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
Bob is white.
("Bob" "is" "white" "+")
int3
Bob is round.
("Bob" "is" "round" "+")
int4
((((triple3 ((((triple5) -> (rule5 % int4)) triple4) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule7 % int1))
Bob is green.
("Bob" "is" "green" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
Bob is white.
("Bob" "is" "white" "+")
int3
Bob is round.
("Bob" "is" "round" "+")
int4
Bob is quiet.
("Bob" "is" "quiet" "+")
triple3
Bob is red.
("Bob" "is" "red" "+")
triple4
((triple2) -> (rule1 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
((((triple1) -> (rule7 % int2))) -> (rule1 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is green.
("Bob" "is" "green" "+")
int2
((((((((triple5) -> (rule5 % int4)) triple5) -> (rule2 % int3))) -> (rule7 % int2))) -> (rule1 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is green.
("Bob" "is" "green" "+")
int2
Bob is furry.
("Bob" "is" "furry" "+")
int3
Bob is round.
("Bob" "is" "round" "+")
int4
((((((triple3 ((((triple5) -> (rule5 % int5))) -> (rule8 % int4))) -> (rule3 % int3))) -> (rule7 % int2))) -> (rule1 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is green.
("Bob" "is" "green" "+")
int2
Bob is furry.
("Bob" "is" "furry" "+")
int3
Bob is white.
("Bob" "is" "white" "+")
int4
Bob is round.
("Bob" "is" "round" "+")
int5
Bob is smart.
("Bob" "is" "smart" "+")
triple5
Charlie is smart.
("Charlie" "is" "smart" "+")
triple6
Fiona is white.
("Fiona" "is" "white" "+")
triple7
Harry is furry.
("Harry" "is" "furry" "+")
triple8
((((triple10) -> (rule5 % int2)) triple10) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is round.
("Harry" "is" "round" "+")
int2
((triple9 ((((triple10) -> (rule5 % int3))) -> (rule8 % int2))) -> (rule3 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is white.
("Harry" "is" "white" "+")
int2
Harry is round.
("Harry" "is" "round" "+")
int3
Harry is quiet.
("Harry" "is" "quiet" "+")
triple9
Harry is smart.
("Harry" "is" "smart" "+")
triple10
Bob is round.
("Bob" "is" "round" "+")
((triple5) -> (rule5 % int1))
Bob is round.
("Bob" "is" "round" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
((triple6) -> (rule5 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
((triple8) -> (rule7 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
((((((triple10) -> (rule5 % int3)) triple10) -> (rule2 % int2))) -> (rule7 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
Harry is round.
("Harry" "is" "round" "+")
int3
((((triple9 ((((triple10) -> (rule5 % int4))) -> (rule8 % int3))) -> (rule3 % int2))) -> (rule7 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
Harry is white.
("Harry" "is" "white" "+")
int3
Harry is round.
("Harry" "is" "round" "+")
int4
Harry is round.
("Harry" "is" "round" "+")
((triple10) -> (rule5 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Bob is white.
("Bob" "is" "white" "+")
((((triple5) -> (rule5 % int2))) -> (rule8 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
((((triple5) -> (rule5 % int2)) triple4) -> (rule6 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
((((triple5) -> (rule5 % int3)) ((triple2) -> (rule1 % int2))) -> (rule6 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is round.
("Bob" "is" "round" "+")
int3
((((triple5) -> (rule5 % int4)) ((((triple1) -> (rule7 % int3))) -> (rule1 % int2))) -> (rule6 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is green.
("Bob" "is" "green" "+")
int3
Bob is round.
("Bob" "is" "round" "+")
int4
((((triple5) -> (rule5 % int5)) ((((((((triple5) -> (rule5 % int5)) triple5) -> (rule2 % int4))) -> (rule7 % int3))) -> (rule1 % int2))) -> (rule6 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is green.
("Bob" "is" "green" "+")
int3
Bob is furry.
("Bob" "is" "furry" "+")
int4
Bob is round.
("Bob" "is" "round" "+")
int5
Charlie is furry.
("Charlie" "is" "furry" "+")
((((triple6) -> (rule5 % int2)) triple6) -> (rule2 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is white.
("Charlie" "is" "white" "+")
((((triple6) -> (rule5 % int2))) -> (rule8 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
((((triple6) -> (rule5 % int5)) ((((((((triple6) -> (rule5 % int5)) triple6) -> (rule2 % int4))) -> (rule7 % int3))) -> (rule1 % int2))) -> (rule6 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
Charlie is red.
("Charlie" "is" "red" "+")
int2
Charlie is green.
("Charlie" "is" "green" "+")
int3
Charlie is furry.
("Charlie" "is" "furry" "+")
int4
Charlie is round.
("Charlie" "is" "round" "+")
int5
Harry is red.
("Harry" "is" "red" "+")
((((triple8) -> (rule7 % int2))) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
((((((((triple10) -> (rule5 % int4)) triple10) -> (rule2 % int3))) -> (rule7 % int2))) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Harry is furry.
("Harry" "is" "furry" "+")
int3
Harry is round.
("Harry" "is" "round" "+")
int4
((((((triple9 ((((triple10) -> (rule5 % int5))) -> (rule8 % int4))) -> (rule3 % int3))) -> (rule7 % int2))) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Harry is furry.
("Harry" "is" "furry" "+")
int3
Harry is white.
("Harry" "is" "white" "+")
int4
Harry is round.
("Harry" "is" "round" "+")
int5
Harry is white.
("Harry" "is" "white" "+")
((((triple10) -> (rule5 % int2))) -> (rule8 % int1))
Harry is white.
("Harry" "is" "white" "+")
int1
Harry is round.
("Harry" "is" "round" "+")
int2
((((triple10) -> (rule5 % int4)) ((((triple8) -> (rule7 % int3))) -> (rule1 % int2))) -> (rule6 % int1))
Harry is white.
("Harry" "is" "white" "+")
int1
Harry is red.
("Harry" "is" "red" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
int3
Harry is round.
("Harry" "is" "round" "+")
int4
((((triple10) -> (rule5 % int5)) ((((((((triple10) -> (rule5 % int5)) triple10) -> (rule2 % int4))) -> (rule7 % int3))) -> (rule1 % int2))) -> (rule6 % int1))
Harry is white.
("Harry" "is" "white" "+")
int1
Harry is red.
("Harry" "is" "red" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
int3
Harry is furry.
("Harry" "is" "furry" "+")
int4
Harry is round.
("Harry" "is" "round" "+")
int5
Charlie is green.
("Charlie" "is" "green" "+")
((((((triple6) -> (rule5 % int3)) triple6) -> (rule2 % int2))) -> (rule7 % int1))
Charlie is green.
("Charlie" "is" "green" "+")
int1
Charlie is furry.
("Charlie" "is" "furry" "+")
int2
Charlie is round.
("Charlie" "is" "round" "+")
int3
Charlie is red.
("Charlie" "is" "red" "+")
((((((((triple6) -> (rule5 % int4)) triple6) -> (rule2 % int3))) -> (rule7 % int2))) -> (rule1 % int1))
Charlie is red.
("Charlie" "is" "red" "+")
int1
Charlie is green.
("Charlie" "is" "green" "+")
int2
Charlie is furry.
("Charlie" "is" "furry" "+")
int3
Charlie is round.
("Charlie" "is" "round" "+")
int4