Bob is furry. Bob is kind. Bob is nice. Bob is white. Charlie is big. Charlie is nice. Fiona is big. Fiona is round. Fiona is white. Harry is white. If someone is round then they are nice. If Fiona is rough then Fiona is round. All furry, big people are rough. If someone is kind and nice then they are furry. All round people are big. If someone is nice and big then they are kind. All round, big people are white. If Charlie is furry and Charlie is rough then Charlie is round. Kind people are big.
Bob is furry.
("Bob" "is" "furry" "+")
Bob is kind.
("Bob" "is" "kind" "+")
Bob is nice.
("Bob" "is" "nice" "+")
Bob is white.
("Bob" "is" "white" "+")
Charlie is big.
("Charlie" "is" "big" "+")
Charlie is nice.
("Charlie" "is" "nice" "+")
Fiona is big.
("Fiona" "is" "big" "+")
Fiona is round.
("Fiona" "is" "round" "+")
Fiona is white.
("Fiona" "is" "white" "+")
Harry is white.
("Harry" "is" "white" "+")
If someone is round then they are nice.
((("someone" "is" "round" "+")) -> ("someone" "is" "nice" "+"))
If Fiona is rough then Fiona is round.
((("Fiona" "is" "rough" "+")) -> ("Fiona" "is" "round" "+"))
All furry, big people are rough.
((("someone" "is" "furry" "+") ("someone" "is" "big" "+")) -> ("someone" "is" "rough" "+"))
If someone is kind and nice then they are furry.
((("someone" "is" "kind" "+") ("someone" "is" "nice" "+")) -> ("someone" "is" "furry" "+"))
All round people are big.
((("someone" "is" "round" "+")) -> ("someone" "is" "big" "+"))
If someone is nice and big then they are kind.
((("someone" "is" "nice" "+") ("someone" "is" "big" "+")) -> ("someone" "is" "kind" "+"))
All round, big people are white.
((("someone" "is" "round" "+") ("someone" "is" "big" "+")) -> ("someone" "is" "white" "+"))
If Charlie is furry and Charlie is rough then Charlie is round.
((("Charlie" "is" "furry" "+") ("Charlie" "is" "rough" "+")) -> ("Charlie" "is" "round" "+"))
Kind people are big.
((("someone" "is" "kind" "+")) -> ("someone" "is" "big" "+"))
Fiona is big.
True
1
proof
[(triple7 OR ((triple8) -> rule5))]
("Fiona" "is" "big" "+")
triple7
((triple8) -> (rule5 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
Fiona is not big.
False
1
inv-proof
[(triple7 OR ((triple8) -> rule5))]
("Fiona" "is" "big" "-")
triple7
((triple8) -> (rule5 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
Charlie is kind.
True
3
proof
[(((triple6 triple5) -> rule6))]
("Charlie" "is" "kind" "+")
((triple6 triple5) -> (rule6 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Fiona is not nice.
False
2
inv-proof
[(((triple8) -> rule1))]
("Fiona" "is" "nice" "-")
((triple8) -> (rule1 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Charlie is furry.
True
5
proof
[(((((triple6 triple5) -> rule6) triple6) -> rule4))]
("Charlie" "is" "furry" "+")
((((triple6 triple5) -> (rule6 % int2)) triple6) -> (rule4 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
Charlie is not furry.
False
5
inv-proof
[(((((triple6 triple5) -> rule6) triple6) -> rule4))]
("Charlie" "is" "furry" "-")
((((triple6 triple5) -> (rule6 % int2)) triple6) -> (rule4 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
Charlie is rough.
True
7
proof
[(((((((triple6 triple5) -> rule6) triple6) -> rule4) triple5) -> rule3))]
("Charlie" "is" "rough" "+")
((((((triple6 triple5) -> (rule6 % int3)) triple6) -> (rule4 % int2)) triple5) -> (rule3 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Charlie is furry.
("Charlie" "is" "furry" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
Fiona is not furry.
False
7
inv-proof
[(((((((triple8) -> rule1) triple7) -> rule6) ((triple8) -> rule1)) -> rule4) OR ((((((triple8) -> rule1) ((triple8) -> rule5)) -> rule6) ((triple8) -> rule1)) -> rule4))]
("Fiona" "is" "furry" "-")
((((((triple8) -> (rule1 % int3)) triple7) -> (rule6 % int2)) ((triple8) -> (rule1 % int3))) -> (rule4 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
Fiona is nice.
("Fiona" "is" "nice" "+")
int3
((((((triple8) -> (rule1 % int4)) ((triple8) -> (rule5 % int3))) -> (rule6 % int2)) ((triple8) -> (rule1 % int4))) -> (rule4 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
Fiona is big.
("Fiona" "is" "big" "+")
int3
Fiona is nice.
("Fiona" "is" "nice" "+")
int4
Charlie is round.
True
13
proof
[(((((((triple6 triple5) -> rule6) triple6) -> rule4) ((((((triple6 triple5) -> rule6) triple6) -> rule4) triple5) -> rule3)) -> rule8))]
("Charlie" "is" "round" "+")
((((((triple6 triple5) -> (rule6 % int4)) triple6) -> (rule4 % int3)) ((((((triple6 triple5) -> (rule6 % int4)) triple6) -> (rule4 % int3)) triple5) -> (rule3 % int2))) -> (rule8 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Charlie is furry.
("Charlie" "is" "furry" "+")
int3
Charlie is kind.
("Charlie" "is" "kind" "+")
int4
Fiona is not rough.
False
9
inv-proof
[(((((((((triple8) -> rule1) triple7) -> rule6) ((triple8) -> rule1)) -> rule4) triple7) -> rule3) OR ((((((((triple8) -> rule1) triple7) -> rule6) ((triple8) -> rule1)) -> rule4) ((triple8) -> rule5)) -> rule3) OR ((((((((triple8) -> rule1) ((triple8) -> rule5)) -> rule6) ((triple8) -> rule1)) -> rule4) triple7) -> rule3) OR ((((((((triple8) -> rule1) ((triple8) -> rule5)) -> rule6) ((triple8) -> rule1)) -> rule4) ((triple8) -> rule5)) -> rule3))]
("Fiona" "is" "rough" "-")
((((((((triple8) -> (rule1 % int4)) triple7) -> (rule6 % int3)) ((triple8) -> (rule1 % int4))) -> (rule4 % int2)) triple7) -> (rule3 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is kind.
("Fiona" "is" "kind" "+")
int3
Fiona is nice.
("Fiona" "is" "nice" "+")
int4
((((((((triple8) -> (rule1 % int5)) triple7) -> (rule6 % int4)) ((triple8) -> (rule1 % int5))) -> (rule4 % int3)) ((triple8) -> (rule5 % int2))) -> (rule3 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Fiona is big.
("Fiona" "is" "big" "+")
int2
Fiona is furry.
("Fiona" "is" "furry" "+")
int3
Fiona is kind.
("Fiona" "is" "kind" "+")
int4
Fiona is nice.
("Fiona" "is" "nice" "+")
int5
((((((((triple8) -> (rule1 % int5)) ((triple8) -> (rule5 % int4))) -> (rule6 % int3)) ((triple8) -> (rule1 % int5))) -> (rule4 % int2)) triple7) -> (rule3 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is kind.
("Fiona" "is" "kind" "+")
int3
Fiona is big.
("Fiona" "is" "big" "+")
int4
Fiona is nice.
("Fiona" "is" "nice" "+")
int5
((((((((triple8) -> (rule1 % int5)) ((triple8) -> (rule5 % int4))) -> (rule6 % int3)) ((triple8) -> (rule1 % int5))) -> (rule4 % int2)) ((triple8) -> (rule5 % int4))) -> (rule3 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is kind.
("Fiona" "is" "kind" "+")
int3
Fiona is big.
("Fiona" "is" "big" "+")
int4
Fiona is nice.
("Fiona" "is" "nice" "+")
int5
Charlie is white.
True
15
proof
[(((((((((triple6 triple5) -> rule6) triple6) -> rule4) ((((((triple6 triple5) -> rule6) triple6) -> rule4) triple5) -> rule3)) -> rule8) triple5) -> rule7))]
("Charlie" "is" "white" "+")
((((((((triple6 triple5) -> (rule6 % int5)) triple6) -> (rule4 % int4)) ((((((triple6 triple5) -> (rule6 % int5)) triple6) -> (rule4 % int4)) triple5) -> (rule3 % int3))) -> (rule8 % int2)) triple5) -> (rule7 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
Charlie is furry.
("Charlie" "is" "furry" "+")
int4
Charlie is kind.
("Charlie" "is" "kind" "+")
int5
Charlie is not white.
False
15
inv-proof
[(((((((((triple6 triple5) -> rule6) triple6) -> rule4) ((((((triple6 triple5) -> rule6) triple6) -> rule4) triple5) -> rule3)) -> rule8) triple5) -> rule7))]
("Charlie" "is" "white" "-")
((((((((triple6 triple5) -> (rule6 % int5)) triple6) -> (rule4 % int4)) ((((((triple6 triple5) -> (rule6 % int5)) triple6) -> (rule4 % int4)) triple5) -> (rule3 % int3))) -> (rule8 % int2)) triple5) -> (rule7 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
Charlie is furry.
("Charlie" "is" "furry" "+")
int4
Charlie is kind.
("Charlie" "is" "kind" "+")
int5
Harry is not furry.
Unknown
inv-rconc
[@2: Harry is furry.[CWA. Example of deepest failure = (rule4 <- rule1 <- FAIL)]]
("Harry" "is" "furry" "-")
Harry is rough.
Unknown
rconc
[@3: Harry is rough.[CWA. Example of deepest failure = (rule3 <- rule4 <- rule1 <- FAIL)]]
("Harry" "is" "rough" "+")
Harry is not kind.
Unknown
inv-rconc
[@2: Harry is kind.[CWA. Example of deepest failure = (rule6 <- rule1 <- FAIL)]]
("Harry" "is" "kind" "-")
Harry is big.
Unknown
rconc
[@3: Harry is big.[CWA. Example of deepest failure = (rule9 <- rule6 <- rule1 <- FAIL)]]
("Harry" "is" "big" "+")
Harry is not nice.
Unknown
inv-rconc
[@1: Harry is nice.[CWA. Example of deepest failure = (rule1 <- FAIL)]]
("Harry" "is" "nice" "-")
Bob is round.
Unknown
random
[@0: Bob is round.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "round" "+")
@0: Bob is furry.[(triple1 OR ((triple2 triple3) -> rule4))] Bob is kind.[(triple2)] Bob is nice.[(triple3)] Bob is white.[(triple4)] Charlie is big.[(triple5)] Charlie is nice.[(triple6)] Fiona is big.[(triple7 OR ((triple8) -> rule5))] Fiona is round.[(triple8)] Fiona is white.[(triple9 OR ((triple8 triple7) -> rule7) OR ((triple8 ((triple8) -> rule5)) -> rule7))] Harry is white.[(triple10)] @1: Bob is big.[(((triple2) -> rule9))] Charlie is kind.[(((triple6 triple5) -> rule6))] Fiona is nice.[(((triple8) -> rule1))] @2: Bob is rough.[(((triple1 ((triple2) -> rule9)) -> rule3) OR ((((triple2 triple3) -> rule4) ((triple2) -> rule9)) -> rule3))] Charlie is furry.[(((((triple6 triple5) -> rule6) triple6) -> rule4))] Fiona is kind.[(((((triple8) -> rule1) triple7) -> rule6) OR ((((triple8) -> rule1) ((triple8) -> rule5)) -> rule6))] @3: Charlie is rough.[(((((((triple6 triple5) -> rule6) triple6) -> rule4) triple5) -> rule3))] Fiona is furry.[(((((((triple8) -> rule1) triple7) -> rule6) ((triple8) -> rule1)) -> rule4) OR ((((((triple8) -> rule1) ((triple8) -> rule5)) -> rule6) ((triple8) -> rule1)) -> rule4))] @4: Charlie is round.[(((((((triple6 triple5) -> rule6) triple6) -> rule4) ((((((triple6 triple5) -> rule6) triple6) -> rule4) triple5) -> rule3)) -> rule8))] Fiona is rough.[(((((((((triple8) -> rule1) triple7) -> rule6) ((triple8) -> rule1)) -> rule4) triple7) -> rule3) OR ((((((((triple8) -> rule1) triple7) -> rule6) ((triple8) -> rule1)) -> rule4) ((triple8) -> rule5)) -> rule3) OR ((((((((triple8) -> rule1) ((triple8) -> rule5)) -> rule6) ((triple8) -> rule1)) -> rule4) triple7) -> rule3) OR ((((((((triple8) -> rule1) ((triple8) -> rule5)) -> rule6) ((triple8) -> rule1)) -> rule4) ((triple8) -> rule5)) -> rule3))] @5: Charlie is white.[(((((((((triple6 triple5) -> rule6) triple6) -> rule4) ((((((triple6 triple5) -> rule6) triple6) -> rule4) triple5) -> rule3)) -> rule8) triple5) -> rule7))]
Bob is furry.
("Bob" "is" "furry" "+")
triple1
((triple2 triple3) -> (rule4 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is kind.
("Bob" "is" "kind" "+")
triple2
Bob is nice.
("Bob" "is" "nice" "+")
triple3
Bob is white.
("Bob" "is" "white" "+")
triple4
Charlie is big.
("Charlie" "is" "big" "+")
triple5
Charlie is nice.
("Charlie" "is" "nice" "+")
triple6
Fiona is big.
("Fiona" "is" "big" "+")
triple7
((triple8) -> (rule5 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
Fiona is round.
("Fiona" "is" "round" "+")
triple8
Fiona is white.
("Fiona" "is" "white" "+")
triple9
((triple8 triple7) -> (rule7 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
((triple8 ((triple8) -> (rule5 % int2))) -> (rule7 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is big.
("Fiona" "is" "big" "+")
int2
Harry is white.
("Harry" "is" "white" "+")
triple10
Bob is big.
("Bob" "is" "big" "+")
((triple2) -> (rule9 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
((triple6 triple5) -> (rule6 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
((triple8) -> (rule1 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
((triple1 ((triple2) -> (rule9 % int2))) -> (rule3 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is big.
("Bob" "is" "big" "+")
int2
((((triple2 triple3) -> (rule4 % int3)) ((triple2) -> (rule9 % int2))) -> (rule3 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is big.
("Bob" "is" "big" "+")
int2
Bob is furry.
("Bob" "is" "furry" "+")
int3
Charlie is furry.
("Charlie" "is" "furry" "+")
((((triple6 triple5) -> (rule6 % int2)) triple6) -> (rule4 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
Fiona is kind.
("Fiona" "is" "kind" "+")
((((triple8) -> (rule1 % int2)) triple7) -> (rule6 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
((((triple8) -> (rule1 % int3)) ((triple8) -> (rule5 % int2))) -> (rule6 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
Fiona is big.
("Fiona" "is" "big" "+")
int2
Fiona is nice.
("Fiona" "is" "nice" "+")
int3
Charlie is rough.
("Charlie" "is" "rough" "+")
((((((triple6 triple5) -> (rule6 % int3)) triple6) -> (rule4 % int2)) triple5) -> (rule3 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Charlie is furry.
("Charlie" "is" "furry" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
Fiona is furry.
("Fiona" "is" "furry" "+")
((((((triple8) -> (rule1 % int3)) triple7) -> (rule6 % int2)) ((triple8) -> (rule1 % int3))) -> (rule4 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
Fiona is nice.
("Fiona" "is" "nice" "+")
int3
((((((triple8) -> (rule1 % int4)) ((triple8) -> (rule5 % int3))) -> (rule6 % int2)) ((triple8) -> (rule1 % int4))) -> (rule4 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
Fiona is big.
("Fiona" "is" "big" "+")
int3
Fiona is nice.
("Fiona" "is" "nice" "+")
int4
Charlie is round.
("Charlie" "is" "round" "+")
((((((triple6 triple5) -> (rule6 % int4)) triple6) -> (rule4 % int3)) ((((((triple6 triple5) -> (rule6 % int4)) triple6) -> (rule4 % int3)) triple5) -> (rule3 % int2))) -> (rule8 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Charlie is furry.
("Charlie" "is" "furry" "+")
int3
Charlie is kind.
("Charlie" "is" "kind" "+")
int4
Fiona is rough.
("Fiona" "is" "rough" "+")
((((((((triple8) -> (rule1 % int4)) triple7) -> (rule6 % int3)) ((triple8) -> (rule1 % int4))) -> (rule4 % int2)) triple7) -> (rule3 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is kind.
("Fiona" "is" "kind" "+")
int3
Fiona is nice.
("Fiona" "is" "nice" "+")
int4
((((((((triple8) -> (rule1 % int5)) triple7) -> (rule6 % int4)) ((triple8) -> (rule1 % int5))) -> (rule4 % int3)) ((triple8) -> (rule5 % int2))) -> (rule3 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Fiona is big.
("Fiona" "is" "big" "+")
int2
Fiona is furry.
("Fiona" "is" "furry" "+")
int3
Fiona is kind.
("Fiona" "is" "kind" "+")
int4
Fiona is nice.
("Fiona" "is" "nice" "+")
int5
((((((((triple8) -> (rule1 % int5)) ((triple8) -> (rule5 % int4))) -> (rule6 % int3)) ((triple8) -> (rule1 % int5))) -> (rule4 % int2)) triple7) -> (rule3 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is kind.
("Fiona" "is" "kind" "+")
int3
Fiona is big.
("Fiona" "is" "big" "+")
int4
Fiona is nice.
("Fiona" "is" "nice" "+")
int5
((((((((triple8) -> (rule1 % int5)) ((triple8) -> (rule5 % int4))) -> (rule6 % int3)) ((triple8) -> (rule1 % int5))) -> (rule4 % int2)) ((triple8) -> (rule5 % int4))) -> (rule3 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is kind.
("Fiona" "is" "kind" "+")
int3
Fiona is big.
("Fiona" "is" "big" "+")
int4
Fiona is nice.
("Fiona" "is" "nice" "+")
int5
Charlie is white.
("Charlie" "is" "white" "+")
((((((((triple6 triple5) -> (rule6 % int5)) triple6) -> (rule4 % int4)) ((((((triple6 triple5) -> (rule6 % int5)) triple6) -> (rule4 % int4)) triple5) -> (rule3 % int3))) -> (rule8 % int2)) triple5) -> (rule7 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
Charlie is furry.
("Charlie" "is" "furry" "+")
int4
Charlie is kind.
("Charlie" "is" "kind" "+")
int5