Anne is big. Anne is red. Anne is round. Anne is young. Bob is big. Bob is red. Bob is rough. Bob is round. Bob is smart. Bob is young. Harry is big. Harry is red. If something is rough and red then it is smart. Smart, young things are rough. If something is young then it is rough. Round, smart things are nice. If Bob is round and Bob is rough then Bob is red. If something is red and round then it is big.
Anne is big.
("Anne" "is" "big" "+")
Anne is red.
("Anne" "is" "red" "+")
Anne is round.
("Anne" "is" "round" "+")
Anne is young.
("Anne" "is" "young" "+")
Bob is big.
("Bob" "is" "big" "+")
Bob is red.
("Bob" "is" "red" "+")
Bob is rough.
("Bob" "is" "rough" "+")
Bob is round.
("Bob" "is" "round" "+")
Bob is smart.
("Bob" "is" "smart" "+")
Bob is young.
("Bob" "is" "young" "+")
Harry is big.
("Harry" "is" "big" "+")
Harry is red.
("Harry" "is" "red" "+")
If something is rough and red then it is smart.
((("something" "is" "rough" "+") ("something" "is" "red" "+")) -> ("something" "is" "smart" "+"))
Smart, young things are rough.
((("something" "is" "smart" "+") ("something" "is" "young" "+")) -> ("something" "is" "rough" "+"))
If something is young then it is rough.
((("something" "is" "young" "+")) -> ("something" "is" "rough" "+"))
Round, smart things are nice.
((("something" "is" "round" "+") ("something" "is" "smart" "+")) -> ("something" "is" "nice" "+"))
If Bob is round and Bob is rough then Bob is red.
((("Bob" "is" "round" "+") ("Bob" "is" "rough" "+")) -> ("Bob" "is" "red" "+"))
If something is red and round then it is big.
((("something" "is" "red" "+") ("something" "is" "round" "+")) -> ("something" "is" "big" "+"))
Bob is rough.
True
1
proof
[(triple7 OR ((triple10) -> rule3) OR ((triple9 triple10) -> rule2))]
("Bob" "is" "rough" "+")
triple7
((triple10) -> (rule3 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
((triple9 triple10) -> (rule2 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is not young.
False
1
inv-proof
[(triple10)]
("Bob" "is" "young" "-")
triple10
Bob is nice.
True
3
proof
[(((triple8 triple9) -> rule4) OR ((triple8 ((triple7 triple6) -> rule1)) -> rule4) OR ((triple8 ((triple7 ((triple8 triple7) -> rule5)) -> rule1)) -> rule4) OR ((triple8 ((((triple10) -> rule3) triple6) -> rule1)) -> rule4) OR ((triple8 ((((triple10) -> rule3) ((triple8 triple7) -> rule5)) -> rule1)) -> rule4) OR ((triple8 ((triple7 ((triple8 ((triple10) -> rule3)) -> rule5)) -> rule1)) -> rule4) OR ((triple8 ((((triple10) -> rule3) ((triple8 ((triple10) -> rule3)) -> rule5)) -> rule1)) -> rule4))]
("Bob" "is" "nice" "+")
((triple8 triple9) -> (rule4 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
((triple8 ((triple7 triple6) -> (rule1 % int2))) -> (rule4 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is smart.
("Bob" "is" "smart" "+")
int2
((triple8 ((triple7 ((triple8 triple7) -> (rule5 % int3))) -> (rule1 % int2))) -> (rule4 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is smart.
("Bob" "is" "smart" "+")
int2
Bob is red.
("Bob" "is" "red" "+")
int3
((triple8 ((((triple10) -> (rule3 % int3)) triple6) -> (rule1 % int2))) -> (rule4 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is smart.
("Bob" "is" "smart" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
((triple8 ((((triple10) -> (rule3 % int4)) ((triple8 triple7) -> (rule5 % int3))) -> (rule1 % int2))) -> (rule4 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is smart.
("Bob" "is" "smart" "+")
int2
Bob is red.
("Bob" "is" "red" "+")
int3
Bob is rough.
("Bob" "is" "rough" "+")
int4
((triple8 ((triple7 ((triple8 ((triple10) -> (rule3 % int4))) -> (rule5 % int3))) -> (rule1 % int2))) -> (rule4 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is smart.
("Bob" "is" "smart" "+")
int2
Bob is red.
("Bob" "is" "red" "+")
int3
Bob is rough.
("Bob" "is" "rough" "+")
int4
((triple8 ((((triple10) -> (rule3 % int4)) ((triple8 ((triple10) -> (rule3 % int4))) -> (rule5 % int3))) -> (rule1 % int2))) -> (rule4 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is smart.
("Bob" "is" "smart" "+")
int2
Bob is red.
("Bob" "is" "red" "+")
int3
Bob is rough.
("Bob" "is" "rough" "+")
int4
Anne is not rough.
False
2
inv-proof
[(((triple4) -> rule3))]
("Anne" "is" "rough" "-")
((triple4) -> (rule3 % int1))
Anne is rough.
("Anne" "is" "rough" "+")
int1
Anne is smart.
True
4
proof
[(((((triple4) -> rule3) triple2) -> rule1))]
("Anne" "is" "smart" "+")
((((triple4) -> (rule3 % int2)) triple2) -> (rule1 % int1))
Anne is smart.
("Anne" "is" "smart" "+")
int1
Anne is rough.
("Anne" "is" "rough" "+")
int2
Anne is not smart.
False
4
inv-proof
[(((((triple4) -> rule3) triple2) -> rule1))]
("Anne" "is" "smart" "-")
((((triple4) -> (rule3 % int2)) triple2) -> (rule1 % int1))
Anne is smart.
("Anne" "is" "smart" "+")
int1
Anne is rough.
("Anne" "is" "rough" "+")
int2
Anne is nice.
True
6
proof
[(((triple3 ((((triple4) -> rule3) triple2) -> rule1)) -> rule4))]
("Anne" "is" "nice" "+")
((triple3 ((((triple4) -> (rule3 % int3)) triple2) -> (rule1 % int2))) -> (rule4 % int1))
Anne is nice.
("Anne" "is" "nice" "+")
int1
Anne is smart.
("Anne" "is" "smart" "+")
int2
Anne is rough.
("Anne" "is" "rough" "+")
int3
Anne is not nice.
False
6
inv-proof
[(((triple3 ((((triple4) -> rule3) triple2) -> rule1)) -> rule4))]
("Anne" "is" "nice" "-")
((triple3 ((((triple4) -> (rule3 % int3)) triple2) -> (rule1 % int2))) -> (rule4 % int1))
Anne is nice.
("Anne" "is" "nice" "+")
int1
Anne is smart.
("Anne" "is" "smart" "+")
int2
Anne is rough.
("Anne" "is" "rough" "+")
int3
Harry is not nice.
Unknown
inv-rconc
[@1: Harry is nice.[CWA. Example of deepest failure = (rule4 <- FAIL)]]
("Harry" "is" "nice" "-")
Harry is smart.
Unknown
rconc
[@2: Harry is smart.[CWA. Example of deepest failure = (rule1 <- rule2 <- FAIL)]]
("Harry" "is" "smart" "+")
Harry is not rough.
Unknown
inv-rconc
[@1: Harry is rough.[CWA. Example of deepest failure = (rule2 <- FAIL)]]
("Harry" "is" "rough" "-")
Harry is round.
Unknown
random
[@0: Harry is round.[CWA. Example of deepest failure = (FAIL)]]
("Harry" "is" "round" "+")
@0: Anne is big.[(triple1 OR ((triple2 triple3) -> rule6))] Anne is red.[(triple2)] Anne is round.[(triple3)] Anne is young.[(triple4)] Bob is big.[(triple5 OR ((triple6 triple8) -> rule6) OR ((((triple8 triple7) -> rule5) triple8) -> rule6) OR ((((triple8 ((triple10) -> rule3)) -> rule5) triple8) -> rule6) OR ((((triple8 ((triple9 triple10) -> rule2)) -> rule5) triple8) -> rule6))] Bob is red.[(triple6 OR ((triple8 triple7) -> rule5) OR ((triple8 ((triple10) -> rule3)) -> rule5) OR ((triple8 ((triple9 triple10) -> rule2)) -> rule5))] Bob is rough.[(triple7 OR ((triple10) -> rule3) OR ((triple9 triple10) -> rule2))] Bob is round.[(triple8)] Bob is smart.[(triple9 OR ((triple7 triple6) -> rule1) OR ((triple7 ((triple8 triple7) -> rule5)) -> rule1) OR ((((triple10) -> rule3) triple6) -> rule1) OR ((((triple10) -> rule3) ((triple8 triple7) -> rule5)) -> rule1) OR ((triple7 ((triple8 ((triple10) -> rule3)) -> rule5)) -> rule1) OR ((((triple10) -> rule3) ((triple8 ((triple10) -> rule3)) -> rule5)) -> rule1))] Bob is young.[(triple10)] Harry is big.[(triple11)] Harry is red.[(triple12)] @1: Anne is rough.[(((triple4) -> rule3))] Bob is nice.[(((triple8 triple9) -> rule4) OR ((triple8 ((triple7 triple6) -> rule1)) -> rule4) OR ((triple8 ((triple7 ((triple8 triple7) -> rule5)) -> rule1)) -> rule4) OR ((triple8 ((((triple10) -> rule3) triple6) -> rule1)) -> rule4) OR ((triple8 ((((triple10) -> rule3) ((triple8 triple7) -> rule5)) -> rule1)) -> rule4) OR ((triple8 ((triple7 ((triple8 ((triple10) -> rule3)) -> rule5)) -> rule1)) -> rule4) OR ((triple8 ((((triple10) -> rule3) ((triple8 ((triple10) -> rule3)) -> rule5)) -> rule1)) -> rule4))] @2: Anne is smart.[(((((triple4) -> rule3) triple2) -> rule1))] @3: Anne is nice.[(((triple3 ((((triple4) -> rule3) triple2) -> rule1)) -> rule4))]
Anne is big.
("Anne" "is" "big" "+")
triple1
((triple2 triple3) -> (rule6 % int1))
Anne is big.
("Anne" "is" "big" "+")
int1
Anne is red.
("Anne" "is" "red" "+")
triple2
Anne is round.
("Anne" "is" "round" "+")
triple3
Anne is young.
("Anne" "is" "young" "+")
triple4
Bob is big.
("Bob" "is" "big" "+")
triple5
((triple6 triple8) -> (rule6 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
((((triple8 triple7) -> (rule5 % int2)) triple8) -> (rule6 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
((((triple8 ((triple10) -> (rule3 % int3))) -> (rule5 % int2)) triple8) -> (rule6 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
((((triple8 ((triple9 triple10) -> (rule2 % int3))) -> (rule5 % int2)) triple8) -> (rule6 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
Bob is red.
("Bob" "is" "red" "+")
triple6
((triple8 triple7) -> (rule5 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
((triple8 ((triple10) -> (rule3 % int2))) -> (rule5 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
((triple8 ((triple9 triple10) -> (rule2 % int2))) -> (rule5 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
triple7
((triple10) -> (rule3 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
((triple9 triple10) -> (rule2 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
triple8
Bob is smart.
("Bob" "is" "smart" "+")
triple9
((triple7 triple6) -> (rule1 % int1))
Bob is smart.
("Bob" "is" "smart" "+")
int1
((triple7 ((triple8 triple7) -> (rule5 % int2))) -> (rule1 % int1))
Bob is smart.
("Bob" "is" "smart" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
((((triple10) -> (rule3 % int2)) triple6) -> (rule1 % int1))
Bob is smart.
("Bob" "is" "smart" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
((((triple10) -> (rule3 % int3)) ((triple8 triple7) -> (rule5 % int2))) -> (rule1 % int1))
Bob is smart.
("Bob" "is" "smart" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
((triple7 ((triple8 ((triple10) -> (rule3 % int3))) -> (rule5 % int2))) -> (rule1 % int1))
Bob is smart.
("Bob" "is" "smart" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
((((triple10) -> (rule3 % int3)) ((triple8 ((triple10) -> (rule3 % int3))) -> (rule5 % int2))) -> (rule1 % int1))
Bob is smart.
("Bob" "is" "smart" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
Bob is young.
("Bob" "is" "young" "+")
triple10
Harry is big.
("Harry" "is" "big" "+")
triple11
Harry is red.
("Harry" "is" "red" "+")
triple12
Anne is rough.
("Anne" "is" "rough" "+")
((triple4) -> (rule3 % int1))
Anne is rough.
("Anne" "is" "rough" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
((triple8 triple9) -> (rule4 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
((triple8 ((triple7 triple6) -> (rule1 % int2))) -> (rule4 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is smart.
("Bob" "is" "smart" "+")
int2
((triple8 ((triple7 ((triple8 triple7) -> (rule5 % int3))) -> (rule1 % int2))) -> (rule4 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is smart.
("Bob" "is" "smart" "+")
int2
Bob is red.
("Bob" "is" "red" "+")
int3
((triple8 ((((triple10) -> (rule3 % int3)) triple6) -> (rule1 % int2))) -> (rule4 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is smart.
("Bob" "is" "smart" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
((triple8 ((((triple10) -> (rule3 % int4)) ((triple8 triple7) -> (rule5 % int3))) -> (rule1 % int2))) -> (rule4 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is smart.
("Bob" "is" "smart" "+")
int2
Bob is red.
("Bob" "is" "red" "+")
int3
Bob is rough.
("Bob" "is" "rough" "+")
int4
((triple8 ((triple7 ((triple8 ((triple10) -> (rule3 % int4))) -> (rule5 % int3))) -> (rule1 % int2))) -> (rule4 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is smart.
("Bob" "is" "smart" "+")
int2
Bob is red.
("Bob" "is" "red" "+")
int3
Bob is rough.
("Bob" "is" "rough" "+")
int4
((triple8 ((((triple10) -> (rule3 % int4)) ((triple8 ((triple10) -> (rule3 % int4))) -> (rule5 % int3))) -> (rule1 % int2))) -> (rule4 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is smart.
("Bob" "is" "smart" "+")
int2
Bob is red.
("Bob" "is" "red" "+")
int3
Bob is rough.
("Bob" "is" "rough" "+")
int4
Anne is smart.
("Anne" "is" "smart" "+")
((((triple4) -> (rule3 % int2)) triple2) -> (rule1 % int1))
Anne is smart.
("Anne" "is" "smart" "+")
int1
Anne is rough.
("Anne" "is" "rough" "+")
int2
Anne is nice.
("Anne" "is" "nice" "+")
((triple3 ((((triple4) -> (rule3 % int3)) triple2) -> (rule1 % int2))) -> (rule4 % int1))
Anne is nice.
("Anne" "is" "nice" "+")
int1
Anne is smart.
("Anne" "is" "smart" "+")
int2
Anne is rough.
("Anne" "is" "rough" "+")
int3