Dave is big. Dave is furry. Dave is nice. Dave is red. Gary is big. Gary is cold. Gary is not furry. Gary is rough. Harry is big. Harry is cold. Harry is furry. Harry is nice. Harry is red. Harry is rough. Harry is young. All big, young things are red. If something is nice and not furry then it is not red. All nice things are big. All furry things are cold. All furry, young things are cold. All big, furry things are cold. Rough things are nice. Red things are nice.
Dave is big.
("Dave" "is" "big" "+")
Dave is furry.
("Dave" "is" "furry" "+")
Dave is nice.
("Dave" "is" "nice" "+")
Dave is red.
("Dave" "is" "red" "+")
Gary is big.
("Gary" "is" "big" "+")
Gary is cold.
("Gary" "is" "cold" "+")
Gary is not furry.
("Gary" "is" "furry" "-")
Gary is rough.
("Gary" "is" "rough" "+")
Harry is big.
("Harry" "is" "big" "+")
Harry is cold.
("Harry" "is" "cold" "+")
Harry is furry.
("Harry" "is" "furry" "+")
Harry is nice.
("Harry" "is" "nice" "+")
Harry is red.
("Harry" "is" "red" "+")
Harry is rough.
("Harry" "is" "rough" "+")
Harry is young.
("Harry" "is" "young" "+")
All big, young things are red.
((("something" "is" "big" "+") ("something" "is" "young" "+")) -> ("something" "is" "red" "+"))
If something is nice and not furry then it is not red.
((("something" "is" "nice" "+") ("something" "is" "furry" "~")) -> ("something" "is" "red" "-"))
All nice things are big.
((("something" "is" "nice" "+")) -> ("something" "is" "big" "+"))
All furry things are cold.
((("something" "is" "furry" "+")) -> ("something" "is" "cold" "+"))
All furry, young things are cold.
((("something" "is" "furry" "+") ("something" "is" "young" "+")) -> ("something" "is" "cold" "+"))
All big, furry things are cold.
((("something" "is" "big" "+") ("something" "is" "furry" "+")) -> ("something" "is" "cold" "+"))
Rough things are nice.
((("something" "is" "rough" "+")) -> ("something" "is" "nice" "+"))
Red things are nice.
((("something" "is" "red" "+")) -> ("something" "is" "nice" "+"))
Harry is nice.
True
1
proof
[(triple12 OR ((triple13) -> rule8) OR ((triple14) -> rule7) OR ((((triple9 triple15) -> rule1)) -> rule8))]
("Harry" "is" "nice" "+")
triple12
((triple13) -> (rule8 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
((triple14) -> (rule7 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
((((triple9 triple15) -> (rule1 % int2))) -> (rule8 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is red.
("Harry" "is" "red" "+")
int2
Harry is not big.
False
1
inv-proof
[(triple9 OR ((triple12) -> rule3) OR ((((triple13) -> rule8)) -> rule3) OR ((((triple14) -> rule7)) -> rule3))]
("Harry" "is" "big" "-")
triple9
((triple12) -> (rule3 % int1))
Harry is big.
("Harry" "is" "big" "+")
int1
((((triple13) -> (rule8 % int2))) -> (rule3 % int1))
Harry is big.
("Harry" "is" "big" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
((((triple14) -> (rule7 % int2))) -> (rule3 % int1))
Harry is big.
("Harry" "is" "big" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Dave is cold.
True
2
proof
[(((triple2) -> rule4) OR ((triple1 triple2) -> rule6) OR ((((triple3) -> rule3) triple2) -> rule6) OR ((((((triple4) -> rule8)) -> rule3) triple2) -> rule6))]
("Dave" "is" "cold" "+")
((triple2) -> (rule4 % int1))
Dave is cold.
("Dave" "is" "cold" "+")
int1
((triple1 triple2) -> (rule6 % int1))
Dave is cold.
("Dave" "is" "cold" "+")
int1
((((triple3) -> (rule3 % int2)) triple2) -> (rule6 % int1))
Dave is cold.
("Dave" "is" "cold" "+")
int1
Dave is big.
("Dave" "is" "big" "+")
int2
((((((triple4) -> (rule8 % int3))) -> (rule3 % int2)) triple2) -> (rule6 % int1))
Dave is cold.
("Dave" "is" "cold" "+")
int1
Dave is big.
("Dave" "is" "big" "+")
int2
Dave is nice.
("Dave" "is" "nice" "+")
int3
Dave is not cold.
False
2
inv-proof
[(((triple2) -> rule4) OR ((triple1 triple2) -> rule6) OR ((((triple3) -> rule3) triple2) -> rule6) OR ((((((triple4) -> rule8)) -> rule3) triple2) -> rule6))]
("Dave" "is" "cold" "-")
((triple2) -> (rule4 % int1))
Dave is cold.
("Dave" "is" "cold" "+")
int1
((triple1 triple2) -> (rule6 % int1))
Dave is cold.
("Dave" "is" "cold" "+")
int1
((((triple3) -> (rule3 % int2)) triple2) -> (rule6 % int1))
Dave is cold.
("Dave" "is" "cold" "+")
int1
Dave is big.
("Dave" "is" "big" "+")
int2
((((((triple4) -> (rule8 % int3))) -> (rule3 % int2)) triple2) -> (rule6 % int1))
Dave is cold.
("Dave" "is" "cold" "+")
int1
Dave is big.
("Dave" "is" "big" "+")
int2
Dave is nice.
("Dave" "is" "nice" "+")
int3
Gary is not red.
True
4
proof
[(((((triple8) -> rule7) triple7) -> rule2))]
("Gary" "is" "red" "-")
((((triple8) -> (rule7 % int2)) triple7) -> (rule2 % int1))
Gary is not red.
("Gary" "is" "red" "-")
int1
Gary is nice.
("Gary" "is" "nice" "+")
int2
Gary is red.
False
4
inv-proof
[(((((triple8) -> rule7) triple7) -> rule2))]
("Gary" "is" "red" "+")
((((triple8) -> (rule7 % int2)) triple7) -> (rule2 % int1))
Gary is not red.
("Gary" "is" "red" "-")
int1
Gary is nice.
("Gary" "is" "nice" "+")
int2
Gary is not young.
Unknown
inv-random
[@0: Gary is young.[CWA. Example of deepest failure = (FAIL)]]
("Gary" "is" "young" "-")
Dave is rough.
Unknown
random
[@0: Dave is rough.[CWA. Example of deepest failure = (FAIL)]]
("Dave" "is" "rough" "+")
@0: Dave is big.[(triple1 OR ((triple3) -> rule3) OR ((((triple4) -> rule8)) -> rule3))] Dave is furry.[(triple2)] Dave is nice.[(triple3 OR ((triple4) -> rule8))] Dave is red.[(triple4)] Gary is big.[(triple5 OR ((((triple8) -> rule7)) -> rule3))] Gary is cold.[(triple6)] Gary is not furry.[(triple7)] Gary is rough.[(triple8)] Harry is big.[(triple9 OR ((triple12) -> rule3) OR ((((triple13) -> rule8)) -> rule3) OR ((((triple14) -> rule7)) -> rule3))] Harry is cold.[(triple10 OR ((triple11) -> rule4) OR ((triple11 triple15) -> rule5) OR ((triple9 triple11) -> rule6) OR ((((triple12) -> rule3) triple11) -> rule6) OR ((((((triple13) -> rule8)) -> rule3) triple11) -> rule6) OR ((((((triple14) -> rule7)) -> rule3) triple11) -> rule6))] Harry is furry.[(triple11)] Harry is nice.[(triple12 OR ((triple13) -> rule8) OR ((triple14) -> rule7) OR ((((triple9 triple15) -> rule1)) -> rule8))] Harry is red.[(triple13 OR ((triple9 triple15) -> rule1) OR ((((triple12) -> rule3) triple15) -> rule1) OR ((((((triple14) -> rule7)) -> rule3) triple15) -> rule1))] Harry is rough.[(triple14)] Harry is young.[(triple15)] @1: Dave is cold.[(((triple2) -> rule4) OR ((triple1 triple2) -> rule6) OR ((((triple3) -> rule3) triple2) -> rule6) OR ((((((triple4) -> rule8)) -> rule3) triple2) -> rule6))] Gary is nice.[(((triple8) -> rule7))] @2: Gary is not red.[(((((triple8) -> rule7) triple7) -> rule2))]
Dave is big.
("Dave" "is" "big" "+")
triple1
((triple3) -> (rule3 % int1))
Dave is big.
("Dave" "is" "big" "+")
int1
((((triple4) -> (rule8 % int2))) -> (rule3 % int1))
Dave is big.
("Dave" "is" "big" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is furry.
("Dave" "is" "furry" "+")
triple2
Dave is nice.
("Dave" "is" "nice" "+")
triple3
((triple4) -> (rule8 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is red.
("Dave" "is" "red" "+")
triple4
Gary is big.
("Gary" "is" "big" "+")
triple5
((((triple8) -> (rule7 % int2))) -> (rule3 % int1))
Gary is big.
("Gary" "is" "big" "+")
int1
Gary is nice.
("Gary" "is" "nice" "+")
int2
Gary is cold.
("Gary" "is" "cold" "+")
triple6
Gary is not furry.
("Gary" "is" "furry" "-")
triple7
Gary is rough.
("Gary" "is" "rough" "+")
triple8
Harry is big.
("Harry" "is" "big" "+")
triple9
((triple12) -> (rule3 % int1))
Harry is big.
("Harry" "is" "big" "+")
int1
((((triple13) -> (rule8 % int2))) -> (rule3 % int1))
Harry is big.
("Harry" "is" "big" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
((((triple14) -> (rule7 % int2))) -> (rule3 % int1))
Harry is big.
("Harry" "is" "big" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is cold.
("Harry" "is" "cold" "+")
triple10
((triple11) -> (rule4 % int1))
Harry is cold.
("Harry" "is" "cold" "+")
int1
((triple11 triple15) -> (rule5 % int1))
Harry is cold.
("Harry" "is" "cold" "+")
int1
((triple9 triple11) -> (rule6 % int1))
Harry is cold.
("Harry" "is" "cold" "+")
int1
((((triple12) -> (rule3 % int2)) triple11) -> (rule6 % int1))
Harry is cold.
("Harry" "is" "cold" "+")
int1
Harry is big.
("Harry" "is" "big" "+")
int2
((((((triple13) -> (rule8 % int3))) -> (rule3 % int2)) triple11) -> (rule6 % int1))
Harry is cold.
("Harry" "is" "cold" "+")
int1
Harry is big.
("Harry" "is" "big" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
((((((triple14) -> (rule7 % int3))) -> (rule3 % int2)) triple11) -> (rule6 % int1))
Harry is cold.
("Harry" "is" "cold" "+")
int1
Harry is big.
("Harry" "is" "big" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is furry.
("Harry" "is" "furry" "+")
triple11
Harry is nice.
("Harry" "is" "nice" "+")
triple12
((triple13) -> (rule8 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
((triple14) -> (rule7 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
((((triple9 triple15) -> (rule1 % int2))) -> (rule8 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is red.
("Harry" "is" "red" "+")
int2
Harry is red.
("Harry" "is" "red" "+")
triple13
((triple9 triple15) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
((((triple12) -> (rule3 % int2)) triple15) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Harry is big.
("Harry" "is" "big" "+")
int2
((((((triple14) -> (rule7 % int3))) -> (rule3 % int2)) triple15) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Harry is big.
("Harry" "is" "big" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is rough.
("Harry" "is" "rough" "+")
triple14
Harry is young.
("Harry" "is" "young" "+")
triple15
Dave is cold.
("Dave" "is" "cold" "+")
((triple2) -> (rule4 % int1))
Dave is cold.
("Dave" "is" "cold" "+")
int1
((triple1 triple2) -> (rule6 % int1))
Dave is cold.
("Dave" "is" "cold" "+")
int1
((((triple3) -> (rule3 % int2)) triple2) -> (rule6 % int1))
Dave is cold.
("Dave" "is" "cold" "+")
int1
Dave is big.
("Dave" "is" "big" "+")
int2
((((((triple4) -> (rule8 % int3))) -> (rule3 % int2)) triple2) -> (rule6 % int1))
Dave is cold.
("Dave" "is" "cold" "+")
int1
Dave is big.
("Dave" "is" "big" "+")
int2
Dave is nice.
("Dave" "is" "nice" "+")
int3
Gary is nice.
("Gary" "is" "nice" "+")
((triple8) -> (rule7 % int1))
Gary is nice.
("Gary" "is" "nice" "+")
int1
Gary is not red.
("Gary" "is" "red" "-")
((((triple8) -> (rule7 % int2)) triple7) -> (rule2 % int1))
Gary is not red.
("Gary" "is" "red" "-")
int1
Gary is nice.
("Gary" "is" "nice" "+")
int2