Bob is green. Bob is rough. Bob is round. Charlie is cold. Charlie is furry. Charlie is green. Charlie is nice. Charlie is rough. Dave is cold. Dave is furry. Dave is green. Harry is blue. Harry is cold. Harry is green. Harry is nice. Harry is round. Cold, nice things are furry. If Harry is rough then Harry is green. If something is nice and furry then it is round. Green things are nice. Blue things are green. Green things are rough.
Bob is green.
("Bob" "is" "green" "+")
Bob is rough.
("Bob" "is" "rough" "+")
Bob is round.
("Bob" "is" "round" "+")
Charlie is cold.
("Charlie" "is" "cold" "+")
Charlie is furry.
("Charlie" "is" "furry" "+")
Charlie is green.
("Charlie" "is" "green" "+")
Charlie is nice.
("Charlie" "is" "nice" "+")
Charlie is rough.
("Charlie" "is" "rough" "+")
Dave is cold.
("Dave" "is" "cold" "+")
Dave is furry.
("Dave" "is" "furry" "+")
Dave is green.
("Dave" "is" "green" "+")
Harry is blue.
("Harry" "is" "blue" "+")
Harry is cold.
("Harry" "is" "cold" "+")
Harry is green.
("Harry" "is" "green" "+")
Harry is nice.
("Harry" "is" "nice" "+")
Harry is round.
("Harry" "is" "round" "+")
Cold, nice things are furry.
((("something" "is" "cold" "+") ("something" "is" "nice" "+")) -> ("something" "is" "furry" "+"))
If Harry is rough then Harry is green.
((("Harry" "is" "rough" "+")) -> ("Harry" "is" "green" "+"))
If something is nice and furry then it is round.
((("something" "is" "nice" "+") ("something" "is" "furry" "+")) -> ("something" "is" "round" "+"))
Green things are nice.
((("something" "is" "green" "+")) -> ("something" "is" "nice" "+"))
Blue things are green.
((("something" "is" "blue" "+")) -> ("something" "is" "green" "+"))
Green things are rough.
((("something" "is" "green" "+")) -> ("something" "is" "rough" "+"))
Dave is green.
True
1
proof
[(triple11)]
("Dave" "is" "green" "+")
triple11
Harry is not round.
False
1
inv-proof
[(triple16 OR ((triple15 ((triple13 triple15) -> rule1)) -> rule3) OR ((((triple14) -> rule4) ((triple13 triple15) -> rule1)) -> rule3) OR ((triple15 ((triple13 ((triple14) -> rule4)) -> rule1)) -> rule3) OR ((((triple14) -> rule4) ((triple13 ((triple14) -> rule4)) -> rule1)) -> rule3) OR ((((((triple12) -> rule5)) -> rule4) ((triple13 triple15) -> rule1)) -> rule3) OR ((((((triple12) -> rule5)) -> rule4) ((triple13 ((triple14) -> rule4)) -> rule1)) -> rule3) OR ((triple15 ((triple13 ((((triple12) -> rule5)) -> rule4)) -> rule1)) -> rule3) OR ((((triple14) -> rule4) ((triple13 ((((triple12) -> rule5)) -> rule4)) -> rule1)) -> rule3) OR ((((((triple12) -> rule5)) -> rule4) ((triple13 ((((triple12) -> rule5)) -> rule4)) -> rule1)) -> rule3))]
("Harry" "is" "round" "-")
triple16
((triple15 ((triple13 triple15) -> (rule1 % int2))) -> (rule3 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
((((triple14) -> (rule4 % int3)) ((triple13 triple15) -> (rule1 % int2))) -> (rule3 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
((triple15 ((triple13 ((triple14) -> (rule4 % int3))) -> (rule1 % int2))) -> (rule3 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
((((triple14) -> (rule4 % int3)) ((triple13 ((triple14) -> (rule4 % int3))) -> (rule1 % int2))) -> (rule3 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
((((((triple12) -> (rule5 % int4))) -> (rule4 % int3)) ((triple13 triple15) -> (rule1 % int2))) -> (rule3 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is green.
("Harry" "is" "green" "+")
int4
((((((triple12) -> (rule5 % int4))) -> (rule4 % int3)) ((triple13 ((triple14) -> (rule4 % int3))) -> (rule1 % int2))) -> (rule3 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is green.
("Harry" "is" "green" "+")
int4
((triple15 ((triple13 ((((triple12) -> (rule5 % int4))) -> (rule4 % int3))) -> (rule1 % int2))) -> (rule3 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is green.
("Harry" "is" "green" "+")
int4
((((triple14) -> (rule4 % int4)) ((triple13 ((((triple12) -> (rule5 % int3))) -> (rule4 % int4))) -> (rule1 % int2))) -> (rule3 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
int3
Harry is nice.
("Harry" "is" "nice" "+")
int4
((((((triple12) -> (rule5 % int4))) -> (rule4 % int3)) ((triple13 ((((triple12) -> (rule5 % int4))) -> (rule4 % int3))) -> (rule1 % int2))) -> (rule3 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is green.
("Harry" "is" "green" "+")
int4
Bob is nice.
True
2
proof
[(((triple1) -> rule4))]
("Bob" "is" "nice" "+")
((triple1) -> (rule4 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Dave is not rough.
False
2
inv-proof
[(((triple11) -> rule6))]
("Dave" "is" "rough" "-")
((triple11) -> (rule6 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
Dave is round.
True
4
proof
[(((((triple11) -> rule4) triple10) -> rule3) OR ((((triple11) -> rule4) ((triple9 ((triple11) -> rule4)) -> rule1)) -> rule3))]
("Dave" "is" "round" "+")
((((triple11) -> (rule4 % int2)) triple10) -> (rule3 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
((((triple11) -> (rule4 % int3)) ((triple9 ((triple11) -> (rule4 % int3))) -> (rule1 % int2))) -> (rule3 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is furry.
("Dave" "is" "furry" "+")
int2
Dave is nice.
("Dave" "is" "nice" "+")
int3
Dave is not round.
False
4
inv-proof
[(((((triple11) -> rule4) triple10) -> rule3) OR ((((triple11) -> rule4) ((triple9 ((triple11) -> rule4)) -> rule1)) -> rule3))]
("Dave" "is" "round" "-")
((((triple11) -> (rule4 % int2)) triple10) -> (rule3 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
((((triple11) -> (rule4 % int3)) ((triple9 ((triple11) -> (rule4 % int3))) -> (rule1 % int2))) -> (rule3 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is furry.
("Dave" "is" "furry" "+")
int2
Dave is nice.
("Dave" "is" "nice" "+")
int3
Bob is not furry.
Unknown
inv-rconc
[@1: Bob is furry.[CWA. Example of deepest failure = (rule1 <- FAIL)]]
("Bob" "is" "furry" "-")
Dave is blue.
Unknown
random
[@0: Dave is blue.[CWA. Example of deepest failure = (FAIL)]]
("Dave" "is" "blue" "+")
Bob is not cold.
Unknown
inv-random
[@0: Bob is cold.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "cold" "-")
Bob is blue.
Unknown
random
[@0: Bob is blue.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "blue" "+")
@0: Bob is green.[(triple1)] Bob is rough.[(triple2 OR ((triple1) -> rule6))] Bob is round.[(triple3)] Charlie is cold.[(triple4)] Charlie is furry.[(triple5 OR ((triple4 triple7) -> rule1) OR ((triple4 ((triple6) -> rule4)) -> rule1))] Charlie is green.[(triple6)] Charlie is nice.[(triple7 OR ((triple6) -> rule4))] Charlie is rough.[(triple8 OR ((triple6) -> rule6))] Dave is cold.[(triple9)] Dave is furry.[(triple10 OR ((triple9 ((triple11) -> rule4)) -> rule1))] Dave is green.[(triple11)] Harry is blue.[(triple12)] Harry is cold.[(triple13)] Harry is green.[(triple14 OR ((triple12) -> rule5))] Harry is nice.[(triple15 OR ((triple14) -> rule4) OR ((((triple12) -> rule5)) -> rule4))] Harry is round.[(triple16 OR ((triple15 ((triple13 triple15) -> rule1)) -> rule3) OR ((((triple14) -> rule4) ((triple13 triple15) -> rule1)) -> rule3) OR ((triple15 ((triple13 ((triple14) -> rule4)) -> rule1)) -> rule3) OR ((((triple14) -> rule4) ((triple13 ((triple14) -> rule4)) -> rule1)) -> rule3) OR ((((((triple12) -> rule5)) -> rule4) ((triple13 triple15) -> rule1)) -> rule3) OR ((((((triple12) -> rule5)) -> rule4) ((triple13 ((triple14) -> rule4)) -> rule1)) -> rule3) OR ((triple15 ((triple13 ((((triple12) -> rule5)) -> rule4)) -> rule1)) -> rule3) OR ((((triple14) -> rule4) ((triple13 ((((triple12) -> rule5)) -> rule4)) -> rule1)) -> rule3) OR ((((((triple12) -> rule5)) -> rule4) ((triple13 ((((triple12) -> rule5)) -> rule4)) -> rule1)) -> rule3))] @1: Bob is nice.[(((triple1) -> rule4))] Charlie is round.[(((triple7 triple5) -> rule3) OR ((triple7 ((triple4 triple7) -> rule1)) -> rule3) OR ((((triple6) -> rule4) triple5) -> rule3) OR ((((triple6) -> rule4) ((triple4 triple7) -> rule1)) -> rule3) OR ((triple7 ((triple4 ((triple6) -> rule4)) -> rule1)) -> rule3) OR ((((triple6) -> rule4) ((triple4 ((triple6) -> rule4)) -> rule1)) -> rule3))] Dave is nice.[(((triple11) -> rule4))] Dave is rough.[(((triple11) -> rule6))] Harry is furry.[(((triple13 triple15) -> rule1) OR ((triple13 ((triple14) -> rule4)) -> rule1) OR ((triple13 ((((triple12) -> rule5)) -> rule4)) -> rule1))] Harry is rough.[(((triple14) -> rule6) OR ((((triple12) -> rule5)) -> rule6))] @2: Dave is round.[(((((triple11) -> rule4) triple10) -> rule3) OR ((((triple11) -> rule4) ((triple9 ((triple11) -> rule4)) -> rule1)) -> rule3))]
Bob is green.
("Bob" "is" "green" "+")
triple1
Bob is rough.
("Bob" "is" "rough" "+")
triple2
((triple1) -> (rule6 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
triple3
Charlie is cold.
("Charlie" "is" "cold" "+")
triple4
Charlie is furry.
("Charlie" "is" "furry" "+")
triple5
((triple4 triple7) -> (rule1 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
((triple4 ((triple6) -> (rule4 % int2))) -> (rule1 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
Charlie is green.
("Charlie" "is" "green" "+")
triple6
Charlie is nice.
("Charlie" "is" "nice" "+")
triple7
((triple6) -> (rule4 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
triple8
((triple6) -> (rule6 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Dave is cold.
("Dave" "is" "cold" "+")
triple9
Dave is furry.
("Dave" "is" "furry" "+")
triple10
((triple9 ((triple11) -> (rule4 % int2))) -> (rule1 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is green.
("Dave" "is" "green" "+")
triple11
Harry is blue.
("Harry" "is" "blue" "+")
triple12
Harry is cold.
("Harry" "is" "cold" "+")
triple13
Harry is green.
("Harry" "is" "green" "+")
triple14
((triple12) -> (rule5 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
triple15
((triple14) -> (rule4 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
((((triple12) -> (rule5 % int2))) -> (rule4 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Harry is round.
("Harry" "is" "round" "+")
triple16
((triple15 ((triple13 triple15) -> (rule1 % int2))) -> (rule3 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
((((triple14) -> (rule4 % int3)) ((triple13 triple15) -> (rule1 % int2))) -> (rule3 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
((triple15 ((triple13 ((triple14) -> (rule4 % int3))) -> (rule1 % int2))) -> (rule3 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
((((triple14) -> (rule4 % int3)) ((triple13 ((triple14) -> (rule4 % int3))) -> (rule1 % int2))) -> (rule3 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
((((((triple12) -> (rule5 % int4))) -> (rule4 % int3)) ((triple13 triple15) -> (rule1 % int2))) -> (rule3 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is green.
("Harry" "is" "green" "+")
int4
((((((triple12) -> (rule5 % int4))) -> (rule4 % int3)) ((triple13 ((triple14) -> (rule4 % int3))) -> (rule1 % int2))) -> (rule3 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is green.
("Harry" "is" "green" "+")
int4
((triple15 ((triple13 ((((triple12) -> (rule5 % int4))) -> (rule4 % int3))) -> (rule1 % int2))) -> (rule3 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is green.
("Harry" "is" "green" "+")
int4
((((triple14) -> (rule4 % int4)) ((triple13 ((((triple12) -> (rule5 % int3))) -> (rule4 % int4))) -> (rule1 % int2))) -> (rule3 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
int3
Harry is nice.
("Harry" "is" "nice" "+")
int4
((((((triple12) -> (rule5 % int4))) -> (rule4 % int3)) ((triple13 ((((triple12) -> (rule5 % int4))) -> (rule4 % int3))) -> (rule1 % int2))) -> (rule3 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is green.
("Harry" "is" "green" "+")
int4
Bob is nice.
("Bob" "is" "nice" "+")
((triple1) -> (rule4 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
((triple7 triple5) -> (rule3 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
((triple7 ((triple4 triple7) -> (rule1 % int2))) -> (rule3 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is furry.
("Charlie" "is" "furry" "+")
int2
((((triple6) -> (rule4 % int2)) triple5) -> (rule3 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
((((triple6) -> (rule4 % int3)) ((triple4 triple7) -> (rule1 % int2))) -> (rule3 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is furry.
("Charlie" "is" "furry" "+")
int2
Charlie is nice.
("Charlie" "is" "nice" "+")
int3
((triple7 ((triple4 ((triple6) -> (rule4 % int3))) -> (rule1 % int2))) -> (rule3 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is furry.
("Charlie" "is" "furry" "+")
int2
Charlie is nice.
("Charlie" "is" "nice" "+")
int3
((((triple6) -> (rule4 % int3)) ((triple4 ((triple6) -> (rule4 % int3))) -> (rule1 % int2))) -> (rule3 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is furry.
("Charlie" "is" "furry" "+")
int2
Charlie is nice.
("Charlie" "is" "nice" "+")
int3
Dave is nice.
("Dave" "is" "nice" "+")
((triple11) -> (rule4 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is rough.
("Dave" "is" "rough" "+")
((triple11) -> (rule6 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
((triple13 triple15) -> (rule1 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
((triple13 ((triple14) -> (rule4 % int2))) -> (rule1 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
((triple13 ((((triple12) -> (rule5 % int3))) -> (rule4 % int2))) -> (rule1 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
int3
Harry is rough.
("Harry" "is" "rough" "+")
((triple14) -> (rule6 % int1))
Harry is rough.
("Harry" "is" "rough" "+")
int1
((((triple12) -> (rule5 % int2))) -> (rule6 % int1))
Harry is rough.
("Harry" "is" "rough" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Dave is round.
("Dave" "is" "round" "+")
((((triple11) -> (rule4 % int2)) triple10) -> (rule3 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
((((triple11) -> (rule4 % int3)) ((triple9 ((triple11) -> (rule4 % int3))) -> (rule1 % int2))) -> (rule3 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Dave is furry.
("Dave" "is" "furry" "+")
int2
Dave is nice.
("Dave" "is" "nice" "+")
int3