Bob is rough. Dave is cold. Dave is kind. Dave is nice. Dave is red. Dave is rough. Dave is young. Erin is nice. Erin is red. Erin is white. Erin is young. Harry is cold. Harry is kind. Harry is nice. Harry is white. Harry is young. Rough people are white. If Dave is kind then Dave is cold. If someone is white then they are rough. All rough people are cold. All white people are young. All red, cold people are kind. All nice, rough people are white. If Erin is rough then Erin is red.
Bob is rough.
("Bob" "is" "rough" "+")
Dave is cold.
("Dave" "is" "cold" "+")
Dave is kind.
("Dave" "is" "kind" "+")
Dave is nice.
("Dave" "is" "nice" "+")
Dave is red.
("Dave" "is" "red" "+")
Dave is rough.
("Dave" "is" "rough" "+")
Dave is young.
("Dave" "is" "young" "+")
Erin is nice.
("Erin" "is" "nice" "+")
Erin is red.
("Erin" "is" "red" "+")
Erin is white.
("Erin" "is" "white" "+")
Erin is young.
("Erin" "is" "young" "+")
Harry is cold.
("Harry" "is" "cold" "+")
Harry is kind.
("Harry" "is" "kind" "+")
Harry is nice.
("Harry" "is" "nice" "+")
Harry is white.
("Harry" "is" "white" "+")
Harry is young.
("Harry" "is" "young" "+")
Rough people are white.
((("someone" "is" "rough" "+")) -> ("someone" "is" "white" "+"))
If Dave is kind then Dave is cold.
((("Dave" "is" "kind" "+")) -> ("Dave" "is" "cold" "+"))
If someone is white then they are rough.
((("someone" "is" "white" "+")) -> ("someone" "is" "rough" "+"))
All rough people are cold.
((("someone" "is" "rough" "+")) -> ("someone" "is" "cold" "+"))
All white people are young.
((("someone" "is" "white" "+")) -> ("someone" "is" "young" "+"))
All red, cold people are kind.
((("someone" "is" "red" "+") ("someone" "is" "cold" "+")) -> ("someone" "is" "kind" "+"))
All nice, rough people are white.
((("someone" "is" "nice" "+") ("someone" "is" "rough" "+")) -> ("someone" "is" "white" "+"))
If Erin is rough then Erin is red.
((("Erin" "is" "rough" "+")) -> ("Erin" "is" "red" "+"))
Bob is rough.
True
1
proof
[(triple1)]
("Bob" "is" "rough" "+")
triple1
Harry is not cold.
False
1
inv-proof
[(triple12 OR ((((triple15) -> rule3)) -> rule4))]
("Harry" "is" "cold" "-")
triple12
((((triple15) -> (rule3 % int2))) -> (rule4 % int1))
Harry is cold.
("Harry" "is" "cold" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
Bob is cold.
True
2
proof
[(((triple1) -> rule4))]
("Bob" "is" "cold" "+")
((triple1) -> (rule4 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
Harry is not rough.
False
2
inv-proof
[(((triple15) -> rule3))]
("Harry" "is" "rough" "-")
((triple15) -> (rule3 % int1))
Harry is rough.
("Harry" "is" "rough" "+")
int1
Erin is cold.
True
3
proof
[(((((triple10) -> rule3)) -> rule4))]
("Erin" "is" "cold" "+")
((((triple10) -> (rule3 % int2))) -> (rule4 % int1))
Erin is cold.
("Erin" "is" "cold" "+")
int1
Erin is rough.
("Erin" "is" "rough" "+")
int2
Bob is not young.
False
3
inv-proof
[(((((triple1) -> rule1)) -> rule5))]
("Bob" "is" "young" "-")
((((triple1) -> (rule1 % int2))) -> (rule5 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is white.
("Bob" "is" "white" "+")
int2
Erin is kind.
True
5
proof
[(((triple9 ((((triple10) -> rule3)) -> rule4)) -> rule6) OR ((((((triple10) -> rule3)) -> rule8) ((((triple10) -> rule3)) -> rule4)) -> rule6))]
("Erin" "is" "kind" "+")
((triple9 ((((triple10) -> (rule3 % int3))) -> (rule4 % int2))) -> (rule6 % int1))
Erin is kind.
("Erin" "is" "kind" "+")
int1
Erin is cold.
("Erin" "is" "cold" "+")
int2
Erin is rough.
("Erin" "is" "rough" "+")
int3
((((((triple10) -> (rule3 % int4))) -> (rule8 % int3)) ((((triple10) -> (rule3 % int4))) -> (rule4 % int2))) -> (rule6 % int1))
Erin is kind.
("Erin" "is" "kind" "+")
int1
Erin is cold.
("Erin" "is" "cold" "+")
int2
Erin is red.
("Erin" "is" "red" "+")
int3
Erin is rough.
("Erin" "is" "rough" "+")
int4
Erin is not kind.
False
5
inv-proof
[(((triple9 ((((triple10) -> rule3)) -> rule4)) -> rule6) OR ((((((triple10) -> rule3)) -> rule8) ((((triple10) -> rule3)) -> rule4)) -> rule6))]
("Erin" "is" "kind" "-")
((triple9 ((((triple10) -> (rule3 % int3))) -> (rule4 % int2))) -> (rule6 % int1))
Erin is kind.
("Erin" "is" "kind" "+")
int1
Erin is cold.
("Erin" "is" "cold" "+")
int2
Erin is rough.
("Erin" "is" "rough" "+")
int3
((((((triple10) -> (rule3 % int4))) -> (rule8 % int3)) ((((triple10) -> (rule3 % int4))) -> (rule4 % int2))) -> (rule6 % int1))
Erin is kind.
("Erin" "is" "kind" "+")
int1
Erin is cold.
("Erin" "is" "cold" "+")
int2
Erin is red.
("Erin" "is" "red" "+")
int3
Erin is rough.
("Erin" "is" "rough" "+")
int4
Bob is not kind.
Unknown
inv-rconc
[@1: Bob is kind.[CWA. Example of deepest failure = (rule6 <- FAIL)]]
("Bob" "is" "kind" "-")
Bob is nice.
Unknown
random
[@0: Bob is nice.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "nice" "+")
Bob is not red.
Unknown
inv-random
[@0: Bob is red.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "red" "-")
Harry is red.
Unknown
random
[@0: Harry is red.[CWA. Example of deepest failure = (FAIL)]]
("Harry" "is" "red" "+")
@0: Bob is rough.[(triple1)] Dave is cold.[(triple2 OR ((triple3) -> rule2) OR ((triple6) -> rule4))] Dave is kind.[(triple3 OR ((triple5 triple2) -> rule6) OR ((triple5 ((triple6) -> rule4)) -> rule6))] Dave is nice.[(triple4)] Dave is red.[(triple5)] Dave is rough.[(triple6)] Dave is young.[(triple7 OR ((((triple6) -> rule1)) -> rule5) OR ((((triple4 triple6) -> rule7)) -> rule5))] Erin is nice.[(triple8)] Erin is red.[(triple9 OR ((((triple10) -> rule3)) -> rule8))] Erin is white.[(triple10)] Erin is young.[(triple11 OR ((triple10) -> rule5))] Harry is cold.[(triple12 OR ((((triple15) -> rule3)) -> rule4))] Harry is kind.[(triple13)] Harry is nice.[(triple14)] Harry is white.[(triple15)] Harry is young.[(triple16 OR ((triple15) -> rule5))] @1: Bob is cold.[(((triple1) -> rule4))] Bob is white.[(((triple1) -> rule1))] Dave is white.[(((triple6) -> rule1) OR ((triple4 triple6) -> rule7))] Erin is rough.[(((triple10) -> rule3))] Harry is rough.[(((triple15) -> rule3))] @2: Bob is young.[(((((triple1) -> rule1)) -> rule5))] Erin is cold.[(((((triple10) -> rule3)) -> rule4))] @3: Erin is kind.[(((triple9 ((((triple10) -> rule3)) -> rule4)) -> rule6) OR ((((((triple10) -> rule3)) -> rule8) ((((triple10) -> rule3)) -> rule4)) -> rule6))]
Bob is rough.
("Bob" "is" "rough" "+")
triple1
Dave is cold.
("Dave" "is" "cold" "+")
triple2
((triple3) -> (rule2 % int1))
Dave is cold.
("Dave" "is" "cold" "+")
int1
((triple6) -> (rule4 % int1))
Dave is cold.
("Dave" "is" "cold" "+")
int1
Dave is kind.
("Dave" "is" "kind" "+")
triple3
((triple5 triple2) -> (rule6 % int1))
Dave is kind.
("Dave" "is" "kind" "+")
int1
((triple5 ((triple6) -> (rule4 % int2))) -> (rule6 % int1))
Dave is kind.
("Dave" "is" "kind" "+")
int1
Dave is cold.
("Dave" "is" "cold" "+")
int2
Dave is nice.
("Dave" "is" "nice" "+")
triple4
Dave is red.
("Dave" "is" "red" "+")
triple5
Dave is rough.
("Dave" "is" "rough" "+")
triple6
Dave is young.
("Dave" "is" "young" "+")
triple7
((((triple6) -> (rule1 % int2))) -> (rule5 % int1))
Dave is young.
("Dave" "is" "young" "+")
int1
Dave is white.
("Dave" "is" "white" "+")
int2
((((triple4 triple6) -> (rule7 % int2))) -> (rule5 % int1))
Dave is young.
("Dave" "is" "young" "+")
int1
Dave is white.
("Dave" "is" "white" "+")
int2
Erin is nice.
("Erin" "is" "nice" "+")
triple8
Erin is red.
("Erin" "is" "red" "+")
triple9
((((triple10) -> (rule3 % int2))) -> (rule8 % int1))
Erin is red.
("Erin" "is" "red" "+")
int1
Erin is rough.
("Erin" "is" "rough" "+")
int2
Erin is white.
("Erin" "is" "white" "+")
triple10
Erin is young.
("Erin" "is" "young" "+")
triple11
((triple10) -> (rule5 % int1))
Erin is young.
("Erin" "is" "young" "+")
int1
Harry is cold.
("Harry" "is" "cold" "+")
triple12
((((triple15) -> (rule3 % int2))) -> (rule4 % int1))
Harry is cold.
("Harry" "is" "cold" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
Harry is kind.
("Harry" "is" "kind" "+")
triple13
Harry is nice.
("Harry" "is" "nice" "+")
triple14
Harry is white.
("Harry" "is" "white" "+")
triple15
Harry is young.
("Harry" "is" "young" "+")
triple16
((triple15) -> (rule5 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Bob is cold.
("Bob" "is" "cold" "+")
((triple1) -> (rule4 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
Bob is white.
("Bob" "is" "white" "+")
((triple1) -> (rule1 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Dave is white.
("Dave" "is" "white" "+")
((triple6) -> (rule1 % int1))
Dave is white.
("Dave" "is" "white" "+")
int1
((triple4 triple6) -> (rule7 % int1))
Dave is white.
("Dave" "is" "white" "+")
int1
Erin is rough.
("Erin" "is" "rough" "+")
((triple10) -> (rule3 % int1))
Erin is rough.
("Erin" "is" "rough" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
((triple15) -> (rule3 % int1))
Harry is rough.
("Harry" "is" "rough" "+")
int1
Bob is young.
("Bob" "is" "young" "+")
((((triple1) -> (rule1 % int2))) -> (rule5 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is white.
("Bob" "is" "white" "+")
int2
Erin is cold.
("Erin" "is" "cold" "+")
((((triple10) -> (rule3 % int2))) -> (rule4 % int1))
Erin is cold.
("Erin" "is" "cold" "+")
int1
Erin is rough.
("Erin" "is" "rough" "+")
int2
Erin is kind.
("Erin" "is" "kind" "+")
((triple9 ((((triple10) -> (rule3 % int3))) -> (rule4 % int2))) -> (rule6 % int1))
Erin is kind.
("Erin" "is" "kind" "+")
int1
Erin is cold.
("Erin" "is" "cold" "+")
int2
Erin is rough.
("Erin" "is" "rough" "+")
int3
((((((triple10) -> (rule3 % int4))) -> (rule8 % int3)) ((((triple10) -> (rule3 % int4))) -> (rule4 % int2))) -> (rule6 % int1))
Erin is kind.
("Erin" "is" "kind" "+")
int1
Erin is cold.
("Erin" "is" "cold" "+")
int2
Erin is red.
("Erin" "is" "red" "+")
int3
Erin is rough.
("Erin" "is" "rough" "+")
int4