Bob is big. Bob is white. Dave is furry. Dave is rough. Dave is round. Gary is big. Gary is furry. Gary is not kind. Gary is nice. Harry is kind. Harry is white. If Harry is round then Harry is nice. All white things are rough. All round, nice things are rough. If something is nice and big then it is furry. Rough things are round. If something is nice and kind then it is big. All round things are nice.
Bob is big.
("Bob" "is" "big" "+")
Bob is white.
("Bob" "is" "white" "+")
Dave is furry.
("Dave" "is" "furry" "+")
Dave is rough.
("Dave" "is" "rough" "+")
Dave is round.
("Dave" "is" "round" "+")
Gary is big.
("Gary" "is" "big" "+")
Gary is furry.
("Gary" "is" "furry" "+")
Gary is not kind.
("Gary" "is" "kind" "-")
Gary is nice.
("Gary" "is" "nice" "+")
Harry is kind.
("Harry" "is" "kind" "+")
Harry is white.
("Harry" "is" "white" "+")
If Harry is round then Harry is nice.
((("Harry" "is" "round" "+")) -> ("Harry" "is" "nice" "+"))
All white things are rough.
((("something" "is" "white" "+")) -> ("something" "is" "rough" "+"))
All round, nice things are rough.
((("something" "is" "round" "+") ("something" "is" "nice" "+")) -> ("something" "is" "rough" "+"))
If something is nice and big then it is furry.
((("something" "is" "nice" "+") ("something" "is" "big" "+")) -> ("something" "is" "furry" "+"))
Rough things are round.
((("something" "is" "rough" "+")) -> ("something" "is" "round" "+"))
If something is nice and kind then it is big.
((("something" "is" "nice" "+") ("something" "is" "kind" "+")) -> ("something" "is" "big" "+"))
All round things are nice.
((("something" "is" "round" "+")) -> ("something" "is" "nice" "+"))
Gary is furry.
True
1
proof
[(triple7 OR ((triple9 triple6) -> rule4))]
("Gary" "is" "furry" "+")
triple7
((triple9 triple6) -> (rule4 % int1))
Gary is furry.
("Gary" "is" "furry" "+")
int1
Dave is not round.
False
1
inv-proof
[(triple5 OR ((triple4) -> rule5))]
("Dave" "is" "round" "-")
triple5
((triple4) -> (rule5 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Harry is rough.
True
2
proof
[(((triple11) -> rule2))]
("Harry" "is" "rough" "+")
((triple11) -> (rule2 % int1))
Harry is rough.
("Harry" "is" "rough" "+")
int1
Harry is not rough.
False
2
inv-proof
[(((triple11) -> rule2))]
("Harry" "is" "rough" "-")
((triple11) -> (rule2 % int1))
Harry is rough.
("Harry" "is" "rough" "+")
int1
Bob is round.
True
3
proof
[(((((triple2) -> rule2)) -> rule5))]
("Bob" "is" "round" "+")
((((triple2) -> (rule2 % int2))) -> (rule5 % int1))
Bob is round.
("Bob" "is" "round" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Harry is not round.
False
3
inv-proof
[(((((triple11) -> rule2)) -> rule5))]
("Harry" "is" "round" "-")
((((triple11) -> (rule2 % int2))) -> (rule5 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
Harry is nice.
True
4
proof
[(((((((triple11) -> rule2)) -> rule5)) -> rule1) OR ((((((triple11) -> rule2)) -> rule5)) -> rule7))]
("Harry" "is" "nice" "+")
((((((triple11) -> (rule2 % int3))) -> (rule5 % int2))) -> (rule1 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is round.
("Harry" "is" "round" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
int3
((((((triple11) -> (rule2 % int3))) -> (rule5 % int2))) -> (rule7 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is round.
("Harry" "is" "round" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
int3
Harry is not nice.
False
4
inv-proof
[(((((((triple11) -> rule2)) -> rule5)) -> rule1) OR ((((((triple11) -> rule2)) -> rule5)) -> rule7))]
("Harry" "is" "nice" "-")
((((((triple11) -> (rule2 % int3))) -> (rule5 % int2))) -> (rule1 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is round.
("Harry" "is" "round" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
int3
((((((triple11) -> (rule2 % int3))) -> (rule5 % int2))) -> (rule7 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is round.
("Harry" "is" "round" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
int3
Bob is furry.
True
6
proof
[(((((((((triple2) -> rule2)) -> rule5)) -> rule7) triple1) -> rule4))]
("Bob" "is" "furry" "+")
((((((((triple2) -> (rule2 % int4))) -> (rule5 % int3))) -> (rule7 % int2)) triple1) -> (rule4 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is round.
("Bob" "is" "round" "+")
int3
Bob is rough.
("Bob" "is" "rough" "+")
int4
Bob is not furry.
False
6
inv-proof
[(((((((((triple2) -> rule2)) -> rule5)) -> rule7) triple1) -> rule4))]
("Bob" "is" "furry" "-")
((((((((triple2) -> (rule2 % int4))) -> (rule5 % int3))) -> (rule7 % int2)) triple1) -> (rule4 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is round.
("Bob" "is" "round" "+")
int3
Bob is rough.
("Bob" "is" "rough" "+")
int4
Harry is furry.
True
11
proof
[(((((((((triple11) -> rule2)) -> rule5)) -> rule1) ((((((((triple11) -> rule2)) -> rule5)) -> rule1) triple10) -> rule6)) -> rule4) OR ((((((((triple11) -> rule2)) -> rule5)) -> rule1) ((((((((triple11) -> rule2)) -> rule5)) -> rule7) triple10) -> rule6)) -> rule4) OR ((((((((triple11) -> rule2)) -> rule5)) -> rule7) ((((((((triple11) -> rule2)) -> rule5)) -> rule1) triple10) -> rule6)) -> rule4) OR ((((((((triple11) -> rule2)) -> rule5)) -> rule7) ((((((((triple11) -> rule2)) -> rule5)) -> rule7) triple10) -> rule6)) -> rule4))]
("Harry" "is" "furry" "+")
((((((((triple11) -> (rule2 % int5))) -> (rule5 % int4))) -> (rule1 % int3)) ((((((((triple11) -> (rule2 % int5))) -> (rule5 % int4))) -> (rule1 % int3)) triple10) -> (rule6 % int2))) -> (rule4 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is big.
("Harry" "is" "big" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is round.
("Harry" "is" "round" "+")
int4
Harry is rough.
("Harry" "is" "rough" "+")
int5
((((((((triple11) -> (rule2 % int5))) -> (rule5 % int4))) -> (rule1 % int3)) ((((((((triple11) -> (rule2 % int5))) -> (rule5 % int4))) -> (rule7 % int3)) triple10) -> (rule6 % int2))) -> (rule4 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is big.
("Harry" "is" "big" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is round.
("Harry" "is" "round" "+")
int4
Harry is rough.
("Harry" "is" "rough" "+")
int5
((((((((triple11) -> (rule2 % int5))) -> (rule5 % int4))) -> (rule7 % int3)) ((((((((triple11) -> (rule2 % int5))) -> (rule5 % int4))) -> (rule1 % int3)) triple10) -> (rule6 % int2))) -> (rule4 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is big.
("Harry" "is" "big" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is round.
("Harry" "is" "round" "+")
int4
Harry is rough.
("Harry" "is" "rough" "+")
int5
((((((((triple11) -> (rule2 % int5))) -> (rule5 % int4))) -> (rule7 % int3)) ((((((((triple11) -> (rule2 % int5))) -> (rule5 % int4))) -> (rule7 % int3)) triple10) -> (rule6 % int2))) -> (rule4 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is big.
("Harry" "is" "big" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is round.
("Harry" "is" "round" "+")
int4
Harry is rough.
("Harry" "is" "rough" "+")
int5
Harry is not furry.
False
11
inv-proof
[(((((((((triple11) -> rule2)) -> rule5)) -> rule1) ((((((((triple11) -> rule2)) -> rule5)) -> rule1) triple10) -> rule6)) -> rule4) OR ((((((((triple11) -> rule2)) -> rule5)) -> rule1) ((((((((triple11) -> rule2)) -> rule5)) -> rule7) triple10) -> rule6)) -> rule4) OR ((((((((triple11) -> rule2)) -> rule5)) -> rule7) ((((((((triple11) -> rule2)) -> rule5)) -> rule1) triple10) -> rule6)) -> rule4) OR ((((((((triple11) -> rule2)) -> rule5)) -> rule7) ((((((((triple11) -> rule2)) -> rule5)) -> rule7) triple10) -> rule6)) -> rule4))]
("Harry" "is" "furry" "-")
((((((((triple11) -> (rule2 % int5))) -> (rule5 % int4))) -> (rule1 % int3)) ((((((((triple11) -> (rule2 % int5))) -> (rule5 % int4))) -> (rule1 % int3)) triple10) -> (rule6 % int2))) -> (rule4 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is big.
("Harry" "is" "big" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is round.
("Harry" "is" "round" "+")
int4
Harry is rough.
("Harry" "is" "rough" "+")
int5
((((((((triple11) -> (rule2 % int5))) -> (rule5 % int4))) -> (rule1 % int3)) ((((((((triple11) -> (rule2 % int5))) -> (rule5 % int4))) -> (rule7 % int3)) triple10) -> (rule6 % int2))) -> (rule4 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is big.
("Harry" "is" "big" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is round.
("Harry" "is" "round" "+")
int4
Harry is rough.
("Harry" "is" "rough" "+")
int5
((((((((triple11) -> (rule2 % int5))) -> (rule5 % int4))) -> (rule7 % int3)) ((((((((triple11) -> (rule2 % int5))) -> (rule5 % int4))) -> (rule1 % int3)) triple10) -> (rule6 % int2))) -> (rule4 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is big.
("Harry" "is" "big" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is round.
("Harry" "is" "round" "+")
int4
Harry is rough.
("Harry" "is" "rough" "+")
int5
((((((((triple11) -> (rule2 % int5))) -> (rule5 % int4))) -> (rule7 % int3)) ((((((((triple11) -> (rule2 % int5))) -> (rule5 % int4))) -> (rule7 % int3)) triple10) -> (rule6 % int2))) -> (rule4 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is big.
("Harry" "is" "big" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is round.
("Harry" "is" "round" "+")
int4
Harry is rough.
("Harry" "is" "rough" "+")
int5
Dave is not big.
Unknown
inv-rconc
[@1: Dave is big.[CWA. Example of deepest failure = (rule6 <- FAIL)]]
("Dave" "is" "big" "-")
Gary is rough.
Unknown
rconc
[@3: Gary is rough.[CWA. Example of deepest failure = (rule3 <- rule5 <- rule2 <- FAIL)]]
("Gary" "is" "rough" "+")
Gary is not round.
Unknown
inv-rconc
[@2: Gary is round.[CWA. Example of deepest failure = (rule5 <- rule2 <- FAIL)]]
("Gary" "is" "round" "-")
Bob is kind.
Unknown
random
[@0: Bob is kind.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "kind" "+")
Gary is not white.
Unknown
inv-random
[@0: Gary is white.[CWA. Example of deepest failure = (FAIL)]]
("Gary" "is" "white" "-")
Dave is white.
Unknown
random
[@0: Dave is white.[CWA. Example of deepest failure = (FAIL)]]
("Dave" "is" "white" "+")
@0: Bob is big.[(triple1)] Bob is white.[(triple2)] Dave is furry.[(triple3)] Dave is rough.[(triple4 OR ((triple5 ((triple5) -> rule7)) -> rule3))] Dave is round.[(triple5 OR ((triple4) -> rule5))] Gary is big.[(triple6)] Gary is furry.[(triple7 OR ((triple9 triple6) -> rule4))] Gary is nice.[(triple9)] Gary is not kind.[(triple8)] Harry is kind.[(triple10)] Harry is white.[(triple11)] @1: Bob is rough.[(((triple2) -> rule2))] Dave is nice.[(((triple5) -> rule7) OR ((((triple4) -> rule5)) -> rule7))] Harry is rough.[(((triple11) -> rule2))] @2: Bob is round.[(((((triple2) -> rule2)) -> rule5))] Harry is round.[(((((triple11) -> rule2)) -> rule5))] @3: Bob is nice.[(((((((triple2) -> rule2)) -> rule5)) -> rule7))] Harry is nice.[(((((((triple11) -> rule2)) -> rule5)) -> rule1) OR ((((((triple11) -> rule2)) -> rule5)) -> rule7))] @4: Bob is furry.[(((((((((triple2) -> rule2)) -> rule5)) -> rule7) triple1) -> rule4))] Harry is big.[(((((((((triple11) -> rule2)) -> rule5)) -> rule1) triple10) -> rule6) OR ((((((((triple11) -> rule2)) -> rule5)) -> rule7) triple10) -> rule6))] @5: Harry is furry.[(((((((((triple11) -> rule2)) -> rule5)) -> rule1) ((((((((triple11) -> rule2)) -> rule5)) -> rule1) triple10) -> rule6)) -> rule4) OR ((((((((triple11) -> rule2)) -> rule5)) -> rule1) ((((((((triple11) -> rule2)) -> rule5)) -> rule7) triple10) -> rule6)) -> rule4) OR ((((((((triple11) -> rule2)) -> rule5)) -> rule7) ((((((((triple11) -> rule2)) -> rule5)) -> rule1) triple10) -> rule6)) -> rule4) OR ((((((((triple11) -> rule2)) -> rule5)) -> rule7) ((((((((triple11) -> rule2)) -> rule5)) -> rule7) triple10) -> rule6)) -> rule4))]
Bob is big.
("Bob" "is" "big" "+")
triple1
Bob is white.
("Bob" "is" "white" "+")
triple2
Dave is furry.
("Dave" "is" "furry" "+")
triple3
Dave is rough.
("Dave" "is" "rough" "+")
triple4
((triple5 ((triple5) -> (rule7 % int2))) -> (rule3 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is round.
("Dave" "is" "round" "+")
triple5
((triple4) -> (rule5 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Gary is big.
("Gary" "is" "big" "+")
triple6
Gary is furry.
("Gary" "is" "furry" "+")
triple7
((triple9 triple6) -> (rule4 % int1))
Gary is furry.
("Gary" "is" "furry" "+")
int1
Gary is nice.
("Gary" "is" "nice" "+")
triple9
Gary is not kind.
("Gary" "is" "kind" "-")
triple8
Harry is kind.
("Harry" "is" "kind" "+")
triple10
Harry is white.
("Harry" "is" "white" "+")
triple11
Bob is rough.
("Bob" "is" "rough" "+")
((triple2) -> (rule2 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
((triple5) -> (rule7 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
((((triple4) -> (rule5 % int2))) -> (rule7 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
((triple11) -> (rule2 % int1))
Harry is rough.
("Harry" "is" "rough" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
((((triple2) -> (rule2 % int2))) -> (rule5 % int1))
Bob is round.
("Bob" "is" "round" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Harry is round.
("Harry" "is" "round" "+")
((((triple11) -> (rule2 % int2))) -> (rule5 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
((((((triple2) -> (rule2 % int3))) -> (rule5 % int2))) -> (rule7 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
Harry is nice.
("Harry" "is" "nice" "+")
((((((triple11) -> (rule2 % int3))) -> (rule5 % int2))) -> (rule1 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is round.
("Harry" "is" "round" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
int3
((((((triple11) -> (rule2 % int3))) -> (rule5 % int2))) -> (rule7 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is round.
("Harry" "is" "round" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
int3
Bob is furry.
("Bob" "is" "furry" "+")
((((((((triple2) -> (rule2 % int4))) -> (rule5 % int3))) -> (rule7 % int2)) triple1) -> (rule4 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is round.
("Bob" "is" "round" "+")
int3
Bob is rough.
("Bob" "is" "rough" "+")
int4
Harry is big.
("Harry" "is" "big" "+")
((((((((triple11) -> (rule2 % int4))) -> (rule5 % int3))) -> (rule1 % int2)) triple10) -> (rule6 % int1))
Harry is big.
("Harry" "is" "big" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is round.
("Harry" "is" "round" "+")
int3
Harry is rough.
("Harry" "is" "rough" "+")
int4
((((((((triple11) -> (rule2 % int4))) -> (rule5 % int3))) -> (rule7 % int2)) triple10) -> (rule6 % int1))
Harry is big.
("Harry" "is" "big" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is round.
("Harry" "is" "round" "+")
int3
Harry is rough.
("Harry" "is" "rough" "+")
int4
Harry is furry.
("Harry" "is" "furry" "+")
((((((((triple11) -> (rule2 % int5))) -> (rule5 % int4))) -> (rule1 % int3)) ((((((((triple11) -> (rule2 % int5))) -> (rule5 % int4))) -> (rule1 % int3)) triple10) -> (rule6 % int2))) -> (rule4 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is big.
("Harry" "is" "big" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is round.
("Harry" "is" "round" "+")
int4
Harry is rough.
("Harry" "is" "rough" "+")
int5
((((((((triple11) -> (rule2 % int5))) -> (rule5 % int4))) -> (rule1 % int3)) ((((((((triple11) -> (rule2 % int5))) -> (rule5 % int4))) -> (rule7 % int3)) triple10) -> (rule6 % int2))) -> (rule4 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is big.
("Harry" "is" "big" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is round.
("Harry" "is" "round" "+")
int4
Harry is rough.
("Harry" "is" "rough" "+")
int5
((((((((triple11) -> (rule2 % int5))) -> (rule5 % int4))) -> (rule7 % int3)) ((((((((triple11) -> (rule2 % int5))) -> (rule5 % int4))) -> (rule1 % int3)) triple10) -> (rule6 % int2))) -> (rule4 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is big.
("Harry" "is" "big" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is round.
("Harry" "is" "round" "+")
int4
Harry is rough.
("Harry" "is" "rough" "+")
int5
((((((((triple11) -> (rule2 % int5))) -> (rule5 % int4))) -> (rule7 % int3)) ((((((((triple11) -> (rule2 % int5))) -> (rule5 % int4))) -> (rule7 % int3)) triple10) -> (rule6 % int2))) -> (rule4 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is big.
("Harry" "is" "big" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is round.
("Harry" "is" "round" "+")
int4
Harry is rough.
("Harry" "is" "rough" "+")
int5