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