Bob is cold. Bob is kind. Bob is quiet. Charlie is blue. Charlie is cold. Charlie is kind. Charlie is nice. Charlie is quiet. Charlie is rough. Charlie is round. Harry is blue. Harry is cold. Harry is kind. Harry is rough. Harry is round. Cold people are blue. Quiet people are cold. Blue, rough people are nice. All nice people are quiet. Round people are cold. Cold people are kind.
Bob is cold.
("Bob" "is" "cold" "+")
Bob is kind.
("Bob" "is" "kind" "+")
Bob is quiet.
("Bob" "is" "quiet" "+")
Charlie is blue.
("Charlie" "is" "blue" "+")
Charlie is cold.
("Charlie" "is" "cold" "+")
Charlie is kind.
("Charlie" "is" "kind" "+")
Charlie is nice.
("Charlie" "is" "nice" "+")
Charlie is quiet.
("Charlie" "is" "quiet" "+")
Charlie is rough.
("Charlie" "is" "rough" "+")
Charlie is round.
("Charlie" "is" "round" "+")
Harry is blue.
("Harry" "is" "blue" "+")
Harry is cold.
("Harry" "is" "cold" "+")
Harry is kind.
("Harry" "is" "kind" "+")
Harry is rough.
("Harry" "is" "rough" "+")
Harry is round.
("Harry" "is" "round" "+")
Cold people are blue.
((("someone" "is" "cold" "+")) -> ("someone" "is" "blue" "+"))
Quiet people are cold.
((("someone" "is" "quiet" "+")) -> ("someone" "is" "cold" "+"))
Blue, rough people are nice.
((("someone" "is" "blue" "+") ("someone" "is" "rough" "+")) -> ("someone" "is" "nice" "+"))
All nice people are quiet.
((("someone" "is" "nice" "+")) -> ("someone" "is" "quiet" "+"))
Round people are cold.
((("someone" "is" "round" "+")) -> ("someone" "is" "cold" "+"))
Cold people are kind.
((("someone" "is" "cold" "+")) -> ("someone" "is" "kind" "+"))
Charlie is nice.
True
1
proof
[(triple7 OR ((triple4 triple9) -> rule3) OR ((((triple5) -> rule1) triple9) -> rule3) OR ((((((triple10) -> rule5)) -> rule1) triple9) -> rule3) OR ((((((triple8) -> rule2)) -> rule1) triple9) -> rule3))]
("Charlie" "is" "nice" "+")
triple7
((triple4 triple9) -> (rule3 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
((((triple5) -> (rule1 % int2)) triple9) -> (rule3 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
((((((triple10) -> (rule5 % int3))) -> (rule1 % int2)) triple9) -> (rule3 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
Charlie is cold.
("Charlie" "is" "cold" "+")
int3
((((((triple8) -> (rule2 % int3))) -> (rule1 % int2)) triple9) -> (rule3 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
Charlie is cold.
("Charlie" "is" "cold" "+")
int3
Harry is not round.
False
1
inv-proof
[(triple15)]
("Harry" "is" "round" "-")
triple15
Bob is not nice.
Unknown
inv-rconc
[@1: Bob is nice.[CWA. Example of deepest failure = (rule3 <- FAIL)]]
("Bob" "is" "nice" "-")
Bob is rough.
Unknown
random
[@0: Bob is rough.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "rough" "+")
@0: Bob is cold.[(triple1 OR ((triple3) -> rule2))] Bob is kind.[(triple2 OR ((triple1) -> rule6) OR ((((triple3) -> rule2)) -> rule6))] Bob is quiet.[(triple3)] Charlie is blue.[(triple4 OR ((triple5) -> rule1) OR ((((triple10) -> rule5)) -> rule1) OR ((((triple8) -> rule2)) -> rule1) OR ((((((triple7) -> rule4)) -> rule2)) -> rule1))] Charlie is cold.[(triple5 OR ((triple10) -> rule5) OR ((triple8) -> rule2) OR ((((triple7) -> rule4)) -> rule2) OR ((((((triple4 triple9) -> rule3)) -> rule4)) -> rule2))] Charlie is kind.[(triple6 OR ((triple5) -> rule6) OR ((((triple10) -> rule5)) -> rule6) OR ((((triple8) -> rule2)) -> rule6) OR ((((((triple7) -> rule4)) -> rule2)) -> rule6) OR ((((((((triple4 triple9) -> rule3)) -> rule4)) -> rule2)) -> rule6))] Charlie is nice.[(triple7 OR ((triple4 triple9) -> rule3) OR ((((triple5) -> rule1) triple9) -> rule3) OR ((((((triple10) -> rule5)) -> rule1) triple9) -> rule3) OR ((((((triple8) -> rule2)) -> rule1) triple9) -> rule3))] Charlie is quiet.[(triple8 OR ((triple7) -> rule4) OR ((((triple4 triple9) -> rule3)) -> rule4) OR ((((((triple5) -> rule1) triple9) -> rule3)) -> rule4) OR ((((((((triple10) -> rule5)) -> rule1) triple9) -> rule3)) -> rule4))] Charlie is rough.[(triple9)] Charlie is round.[(triple10)] Harry is blue.[(triple11 OR ((triple12) -> rule1) OR ((((triple15) -> rule5)) -> rule1))] Harry is cold.[(triple12 OR ((triple15) -> rule5) OR ((((((triple11 triple14) -> rule3)) -> rule4)) -> rule2))] Harry is kind.[(triple13 OR ((triple12) -> rule6) OR ((((triple15) -> rule5)) -> rule6) OR ((((((((triple11 triple14) -> rule3)) -> rule4)) -> rule2)) -> rule6))] Harry is rough.[(triple14)] Harry is round.[(triple15)] @1: Bob is blue.[(((triple1) -> rule1) OR ((((triple3) -> rule2)) -> rule1))] Harry is nice.[(((triple11 triple14) -> rule3) OR ((((triple12) -> rule1) triple14) -> rule3) OR ((((((triple15) -> rule5)) -> rule1) triple14) -> rule3))] @2: Harry is quiet.[(((((triple11 triple14) -> rule3)) -> rule4) OR ((((((triple12) -> rule1) triple14) -> rule3)) -> rule4) OR ((((((((triple15) -> rule5)) -> rule1) triple14) -> rule3)) -> rule4))]
Bob is cold.
("Bob" "is" "cold" "+")
triple1
((triple3) -> (rule2 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
Bob is kind.
("Bob" "is" "kind" "+")
triple2
((triple1) -> (rule6 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
((((triple3) -> (rule2 % int2))) -> (rule6 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
Bob is cold.
("Bob" "is" "cold" "+")
int2
Bob is quiet.
("Bob" "is" "quiet" "+")
triple3
Charlie is blue.
("Charlie" "is" "blue" "+")
triple4
((triple5) -> (rule1 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
((((triple10) -> (rule5 % int2))) -> (rule1 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is cold.
("Charlie" "is" "cold" "+")
int2
((((triple8) -> (rule2 % int2))) -> (rule1 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is cold.
("Charlie" "is" "cold" "+")
int2
((((((triple7) -> (rule4 % int3))) -> (rule2 % int2))) -> (rule1 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is cold.
("Charlie" "is" "cold" "+")
int2
Charlie is quiet.
("Charlie" "is" "quiet" "+")
int3
Charlie is cold.
("Charlie" "is" "cold" "+")
triple5
((triple10) -> (rule5 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
((triple8) -> (rule2 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
((((triple7) -> (rule4 % int2))) -> (rule2 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
Charlie is quiet.
("Charlie" "is" "quiet" "+")
int2
((((((triple4 triple9) -> (rule3 % int3))) -> (rule4 % int2))) -> (rule2 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
Charlie is quiet.
("Charlie" "is" "quiet" "+")
int2
Charlie is nice.
("Charlie" "is" "nice" "+")
int3
Charlie is kind.
("Charlie" "is" "kind" "+")
triple6
((triple5) -> (rule6 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
((((triple10) -> (rule5 % int2))) -> (rule6 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is cold.
("Charlie" "is" "cold" "+")
int2
((((triple8) -> (rule2 % int2))) -> (rule6 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is cold.
("Charlie" "is" "cold" "+")
int2
((((((triple7) -> (rule4 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is cold.
("Charlie" "is" "cold" "+")
int2
Charlie is quiet.
("Charlie" "is" "quiet" "+")
int3
((((((((triple4 triple9) -> (rule3 % int4))) -> (rule4 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is cold.
("Charlie" "is" "cold" "+")
int2
Charlie is quiet.
("Charlie" "is" "quiet" "+")
int3
Charlie is nice.
("Charlie" "is" "nice" "+")
int4
Charlie is nice.
("Charlie" "is" "nice" "+")
triple7
((triple4 triple9) -> (rule3 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
((((triple5) -> (rule1 % int2)) triple9) -> (rule3 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
((((((triple10) -> (rule5 % int3))) -> (rule1 % int2)) triple9) -> (rule3 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
Charlie is cold.
("Charlie" "is" "cold" "+")
int3
((((((triple8) -> (rule2 % int3))) -> (rule1 % int2)) triple9) -> (rule3 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
Charlie is cold.
("Charlie" "is" "cold" "+")
int3
Charlie is quiet.
("Charlie" "is" "quiet" "+")
triple8
((triple7) -> (rule4 % int1))
Charlie is quiet.
("Charlie" "is" "quiet" "+")
int1
((((triple4 triple9) -> (rule3 % int2))) -> (rule4 % int1))
Charlie is quiet.
("Charlie" "is" "quiet" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
((((((triple5) -> (rule1 % int3)) triple9) -> (rule3 % int2))) -> (rule4 % int1))
Charlie is quiet.
("Charlie" "is" "quiet" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
Charlie is blue.
("Charlie" "is" "blue" "+")
int3
((((((((triple10) -> (rule5 % int4))) -> (rule1 % int3)) triple9) -> (rule3 % int2))) -> (rule4 % int1))
Charlie is quiet.
("Charlie" "is" "quiet" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
Charlie is blue.
("Charlie" "is" "blue" "+")
int3
Charlie is cold.
("Charlie" "is" "cold" "+")
int4
Charlie is rough.
("Charlie" "is" "rough" "+")
triple9
Charlie is round.
("Charlie" "is" "round" "+")
triple10
Harry is blue.
("Harry" "is" "blue" "+")
triple11
((triple12) -> (rule1 % int1))
Harry is blue.
("Harry" "is" "blue" "+")
int1
((((triple15) -> (rule5 % int2))) -> (rule1 % int1))
Harry is blue.
("Harry" "is" "blue" "+")
int1
Harry is cold.
("Harry" "is" "cold" "+")
int2
Harry is cold.
("Harry" "is" "cold" "+")
triple12
((triple15) -> (rule5 % int1))
Harry is cold.
("Harry" "is" "cold" "+")
int1
((((((triple11 triple14) -> (rule3 % int3))) -> (rule4 % int2))) -> (rule2 % int1))
Harry is cold.
("Harry" "is" "cold" "+")
int1
Harry is quiet.
("Harry" "is" "quiet" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is kind.
("Harry" "is" "kind" "+")
triple13
((triple12) -> (rule6 % int1))
Harry is kind.
("Harry" "is" "kind" "+")
int1
((((triple15) -> (rule5 % int2))) -> (rule6 % int1))
Harry is kind.
("Harry" "is" "kind" "+")
int1
Harry is cold.
("Harry" "is" "cold" "+")
int2
((((((((triple11 triple14) -> (rule3 % int4))) -> (rule4 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Harry is kind.
("Harry" "is" "kind" "+")
int1
Harry is cold.
("Harry" "is" "cold" "+")
int2
Harry is quiet.
("Harry" "is" "quiet" "+")
int3
Harry is nice.
("Harry" "is" "nice" "+")
int4
Harry is rough.
("Harry" "is" "rough" "+")
triple14
Harry is round.
("Harry" "is" "round" "+")
triple15
Bob is blue.
("Bob" "is" "blue" "+")
((triple1) -> (rule1 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
((((triple3) -> (rule2 % int2))) -> (rule1 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is cold.
("Bob" "is" "cold" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
((triple11 triple14) -> (rule3 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
((((triple12) -> (rule1 % int2)) triple14) -> (rule3 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is blue.
("Harry" "is" "blue" "+")
int2
((((((triple15) -> (rule5 % int3))) -> (rule1 % int2)) triple14) -> (rule3 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is blue.
("Harry" "is" "blue" "+")
int2
Harry is cold.
("Harry" "is" "cold" "+")
int3
Harry is quiet.
("Harry" "is" "quiet" "+")
((((triple11 triple14) -> (rule3 % int2))) -> (rule4 % int1))
Harry is quiet.
("Harry" "is" "quiet" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
((((((triple12) -> (rule1 % int3)) triple14) -> (rule3 % int2))) -> (rule4 % int1))
Harry is quiet.
("Harry" "is" "quiet" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is blue.
("Harry" "is" "blue" "+")
int3
((((((((triple15) -> (rule5 % int4))) -> (rule1 % int3)) triple14) -> (rule3 % int2))) -> (rule4 % int1))
Harry is quiet.
("Harry" "is" "quiet" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is blue.
("Harry" "is" "blue" "+")
int3
Harry is cold.
("Harry" "is" "cold" "+")
int4