Bob is big. Bob is blue. Bob is furry. Dave is big. Dave is blue. Dave is cold. Dave is furry. Dave is green. Erin is furry. Erin is rough. Erin is young. Harry is big. Harry is furry. Harry is green. Harry is young. Big, furry things are blue. If Erin is young and Erin is rough then Erin is green. Big things are rough. If something is blue and big then it is cold. All cold things are rough. All rough things are green.
Bob is big.
("Bob" "is" "big" "+")
Bob is blue.
("Bob" "is" "blue" "+")
Bob is furry.
("Bob" "is" "furry" "+")
Dave is big.
("Dave" "is" "big" "+")
Dave is blue.
("Dave" "is" "blue" "+")
Dave is cold.
("Dave" "is" "cold" "+")
Dave is furry.
("Dave" "is" "furry" "+")
Dave is green.
("Dave" "is" "green" "+")
Erin is furry.
("Erin" "is" "furry" "+")
Erin is rough.
("Erin" "is" "rough" "+")
Erin is young.
("Erin" "is" "young" "+")
Harry is big.
("Harry" "is" "big" "+")
Harry is furry.
("Harry" "is" "furry" "+")
Harry is green.
("Harry" "is" "green" "+")
Harry is young.
("Harry" "is" "young" "+")
Big, furry things are blue.
((("something" "is" "big" "+") ("something" "is" "furry" "+")) -> ("something" "is" "blue" "+"))
If Erin is young and Erin is rough then Erin is green.
((("Erin" "is" "young" "+") ("Erin" "is" "rough" "+")) -> ("Erin" "is" "green" "+"))
Big things are rough.
((("something" "is" "big" "+")) -> ("something" "is" "rough" "+"))
If something is blue and big then it is cold.
((("something" "is" "blue" "+") ("something" "is" "big" "+")) -> ("something" "is" "cold" "+"))
All cold things are rough.
((("something" "is" "cold" "+")) -> ("something" "is" "rough" "+"))
All rough things are green.
((("something" "is" "rough" "+")) -> ("something" "is" "green" "+"))
Harry is furry.
True
1
proof
[(triple13)]
("Harry" "is" "furry" "+")
triple13
Bob is not blue.
False
1
inv-proof
[(triple2 OR ((triple1 triple3) -> rule1))]
("Bob" "is" "blue" "-")
triple2
((triple1 triple3) -> (rule1 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Harry is blue.
True
3
proof
[(((triple12 triple13) -> rule1))]
("Harry" "is" "blue" "+")
((triple12 triple13) -> (rule1 % int1))
Harry is blue.
("Harry" "is" "blue" "+")
int1
Bob is not rough.
False
2
inv-proof
[(((triple1) -> rule3) OR ((((triple2 triple1) -> rule4)) -> rule5) OR ((((((triple1 triple3) -> rule1) triple1) -> rule4)) -> rule5))]
("Bob" "is" "rough" "-")
((triple1) -> (rule3 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
((((triple2 triple1) -> (rule4 % int2))) -> (rule5 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is cold.
("Bob" "is" "cold" "+")
int2
((((((triple1 triple3) -> (rule1 % int3)) triple1) -> (rule4 % int2))) -> (rule5 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is cold.
("Bob" "is" "cold" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
Erin is not blue.
Unknown
inv-rconc
[@1: Erin is blue.[CWA. Example of deepest failure = (rule1 <- FAIL)]]
("Erin" "is" "blue" "-")
Erin is cold.
Unknown
rconc
[@1: Erin is cold.[CWA. Example of deepest failure = (rule4 <- FAIL)]]
("Erin" "is" "cold" "+")
Bob is not young.
Unknown
inv-random
[@0: Bob is young.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "young" "-")
Dave is young.
Unknown
random
[@0: Dave is young.[CWA. Example of deepest failure = (FAIL)]]
("Dave" "is" "young" "+")
@0: Bob is big.[(triple1)] Bob is blue.[(triple2 OR ((triple1 triple3) -> rule1))] Bob is furry.[(triple3)] Dave is big.[(triple4)] Dave is blue.[(triple5 OR ((triple4 triple7) -> rule1))] Dave is cold.[(triple6 OR ((triple5 triple4) -> rule4) OR ((((triple4 triple7) -> rule1) triple4) -> rule4))] Dave is furry.[(triple7)] Dave is green.[(triple8 OR ((((triple4) -> rule3)) -> rule6) OR ((((triple6) -> rule5)) -> rule6) OR ((((((triple5 triple4) -> rule4)) -> rule5)) -> rule6) OR ((((((((triple4 triple7) -> rule1) triple4) -> rule4)) -> rule5)) -> rule6))] Erin is furry.[(triple9)] Erin is rough.[(triple10)] Erin is young.[(triple11)] Harry is big.[(triple12)] Harry is furry.[(triple13)] Harry is green.[(triple14 OR ((((triple12) -> rule3)) -> rule6) OR ((((((((triple12 triple13) -> rule1) triple12) -> rule4)) -> rule5)) -> rule6))] Harry is young.[(triple15)] @1: Bob is cold.[(((triple2 triple1) -> rule4) OR ((((triple1 triple3) -> rule1) triple1) -> rule4))] Bob is rough.[(((triple1) -> rule3) OR ((((triple2 triple1) -> rule4)) -> rule5) OR ((((((triple1 triple3) -> rule1) triple1) -> rule4)) -> rule5))] Dave is rough.[(((triple4) -> rule3) OR ((triple6) -> rule5) OR ((((triple5 triple4) -> rule4)) -> rule5) OR ((((((triple4 triple7) -> rule1) triple4) -> rule4)) -> rule5))] Erin is green.[(((triple10) -> rule6) OR ((triple11 triple10) -> rule2))] Harry is blue.[(((triple12 triple13) -> rule1))] Harry is rough.[(((triple12) -> rule3) OR ((((((triple12 triple13) -> rule1) triple12) -> rule4)) -> rule5))] @2: Bob is green.[(((((triple1) -> rule3)) -> rule6) OR ((((((triple2 triple1) -> rule4)) -> rule5)) -> rule6) OR ((((((((triple1 triple3) -> rule1) triple1) -> rule4)) -> rule5)) -> rule6))] Harry is cold.[(((((triple12 triple13) -> rule1) triple12) -> rule4))]
Bob is big.
("Bob" "is" "big" "+")
triple1
Bob is blue.
("Bob" "is" "blue" "+")
triple2
((triple1 triple3) -> (rule1 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
triple3
Dave is big.
("Dave" "is" "big" "+")
triple4
Dave is blue.
("Dave" "is" "blue" "+")
triple5
((triple4 triple7) -> (rule1 % int1))
Dave is blue.
("Dave" "is" "blue" "+")
int1
Dave is cold.
("Dave" "is" "cold" "+")
triple6
((triple5 triple4) -> (rule4 % int1))
Dave is cold.
("Dave" "is" "cold" "+")
int1
((((triple4 triple7) -> (rule1 % int2)) triple4) -> (rule4 % int1))
Dave is cold.
("Dave" "is" "cold" "+")
int1
Dave is blue.
("Dave" "is" "blue" "+")
int2
Dave is furry.
("Dave" "is" "furry" "+")
triple7
Dave is green.
("Dave" "is" "green" "+")
triple8
((((triple4) -> (rule3 % int2))) -> (rule6 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
Dave is rough.
("Dave" "is" "rough" "+")
int2
((((triple6) -> (rule5 % int2))) -> (rule6 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
Dave is rough.
("Dave" "is" "rough" "+")
int2
((((((triple5 triple4) -> (rule4 % int3))) -> (rule5 % int2))) -> (rule6 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
Dave is rough.
("Dave" "is" "rough" "+")
int2
Dave is cold.
("Dave" "is" "cold" "+")
int3
((((((((triple4 triple7) -> (rule1 % int4)) triple4) -> (rule4 % int3))) -> (rule5 % int2))) -> (rule6 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
Dave is rough.
("Dave" "is" "rough" "+")
int2
Dave is cold.
("Dave" "is" "cold" "+")
int3
Dave is blue.
("Dave" "is" "blue" "+")
int4
Erin is furry.
("Erin" "is" "furry" "+")
triple9
Erin is rough.
("Erin" "is" "rough" "+")
triple10
Erin is young.
("Erin" "is" "young" "+")
triple11
Harry is big.
("Harry" "is" "big" "+")
triple12
Harry is furry.
("Harry" "is" "furry" "+")
triple13
Harry is green.
("Harry" "is" "green" "+")
triple14
((((triple12) -> (rule3 % int2))) -> (rule6 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
((((((((triple12 triple13) -> (rule1 % int4)) triple12) -> (rule4 % int3))) -> (rule5 % int2))) -> (rule6 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
Harry is cold.
("Harry" "is" "cold" "+")
int3
Harry is blue.
("Harry" "is" "blue" "+")
int4
Harry is young.
("Harry" "is" "young" "+")
triple15
Bob is cold.
("Bob" "is" "cold" "+")
((triple2 triple1) -> (rule4 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
((((triple1 triple3) -> (rule1 % int2)) triple1) -> (rule4 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
((triple1) -> (rule3 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
((((triple2 triple1) -> (rule4 % int2))) -> (rule5 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is cold.
("Bob" "is" "cold" "+")
int2
((((((triple1 triple3) -> (rule1 % int3)) triple1) -> (rule4 % int2))) -> (rule5 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is cold.
("Bob" "is" "cold" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
Dave is rough.
("Dave" "is" "rough" "+")
((triple4) -> (rule3 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
((triple6) -> (rule5 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
((((triple5 triple4) -> (rule4 % int2))) -> (rule5 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
Dave is cold.
("Dave" "is" "cold" "+")
int2
((((((triple4 triple7) -> (rule1 % int3)) triple4) -> (rule4 % int2))) -> (rule5 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
Dave is cold.
("Dave" "is" "cold" "+")
int2
Dave is blue.
("Dave" "is" "blue" "+")
int3
Erin is green.
("Erin" "is" "green" "+")
((triple10) -> (rule6 % int1))
Erin is green.
("Erin" "is" "green" "+")
int1
((triple11 triple10) -> (rule2 % int1))
Erin is green.
("Erin" "is" "green" "+")
int1
Harry is blue.
("Harry" "is" "blue" "+")
((triple12 triple13) -> (rule1 % int1))
Harry is blue.
("Harry" "is" "blue" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
((triple12) -> (rule3 % int1))
Harry is rough.
("Harry" "is" "rough" "+")
int1
((((((triple12 triple13) -> (rule1 % int3)) triple12) -> (rule4 % int2))) -> (rule5 % int1))
Harry is rough.
("Harry" "is" "rough" "+")
int1
Harry is cold.
("Harry" "is" "cold" "+")
int2
Harry is blue.
("Harry" "is" "blue" "+")
int3
Bob is green.
("Bob" "is" "green" "+")
((((triple1) -> (rule3 % int2))) -> (rule6 % int1))
Bob is green.
("Bob" "is" "green" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
((((((triple2 triple1) -> (rule4 % int3))) -> (rule5 % int2))) -> (rule6 % int1))
Bob is green.
("Bob" "is" "green" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is cold.
("Bob" "is" "cold" "+")
int3
((((((((triple1 triple3) -> (rule1 % int4)) triple1) -> (rule4 % int3))) -> (rule5 % int2))) -> (rule6 % int1))
Bob is green.
("Bob" "is" "green" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is cold.
("Bob" "is" "cold" "+")
int3
Bob is blue.
("Bob" "is" "blue" "+")
int4
Harry is cold.
("Harry" "is" "cold" "+")
((((triple12 triple13) -> (rule1 % int2)) triple12) -> (rule4 % int1))
Harry is cold.
("Harry" "is" "cold" "+")
int1
Harry is blue.
("Harry" "is" "blue" "+")
int2