Erin is big. Erin is blue. Erin is furry. Erin is green. Erin is kind. Erin is red. Fiona is blue. Fiona is green. Fiona is kind. Fiona is red. Fiona is rough. Harry is big. Harry is blue. Harry is furry. Harry is green. Furry things are kind. Kind things are rough. If something is big then it is blue. If something is furry then it is green. All red, blue things are green. All furry, kind things are red. All blue, green things are big. Rough, furry things are green.
Erin is big.
("Erin" "is" "big" "+")
Erin is blue.
("Erin" "is" "blue" "+")
Erin is furry.
("Erin" "is" "furry" "+")
Erin is green.
("Erin" "is" "green" "+")
Erin is kind.
("Erin" "is" "kind" "+")
Erin is red.
("Erin" "is" "red" "+")
Fiona is blue.
("Fiona" "is" "blue" "+")
Fiona is green.
("Fiona" "is" "green" "+")
Fiona is kind.
("Fiona" "is" "kind" "+")
Fiona is red.
("Fiona" "is" "red" "+")
Fiona is rough.
("Fiona" "is" "rough" "+")
Harry is big.
("Harry" "is" "big" "+")
Harry is blue.
("Harry" "is" "blue" "+")
Harry is furry.
("Harry" "is" "furry" "+")
Harry is green.
("Harry" "is" "green" "+")
Furry things are kind.
((("something" "is" "furry" "+")) -> ("something" "is" "kind" "+"))
Kind things are rough.
((("something" "is" "kind" "+")) -> ("something" "is" "rough" "+"))
If something is big then it is blue.
((("something" "is" "big" "+")) -> ("something" "is" "blue" "+"))
If something is furry then it is green.
((("something" "is" "furry" "+")) -> ("something" "is" "green" "+"))
All red, blue things are green.
((("something" "is" "red" "+") ("something" "is" "blue" "+")) -> ("something" "is" "green" "+"))
All furry, kind things are red.
((("something" "is" "furry" "+") ("something" "is" "kind" "+")) -> ("something" "is" "red" "+"))
All blue, green things are big.
((("something" "is" "blue" "+") ("something" "is" "green" "+")) -> ("something" "is" "big" "+"))
Rough, furry things are green.
((("something" "is" "rough" "+") ("something" "is" "furry" "+")) -> ("something" "is" "green" "+"))
Fiona is blue.
True
1
proof
[(triple7)]
("Fiona" "is" "blue" "+")
triple7
Erin is not red.
False
1
inv-proof
[(triple6 OR ((triple3 triple5) -> rule6) OR ((triple3 ((triple3) -> rule1)) -> rule6))]
("Erin" "is" "red" "-")
triple6
((triple3 triple5) -> (rule6 % int1))
Erin is red.
("Erin" "is" "red" "+")
int1
((triple3 ((triple3) -> (rule1 % int2))) -> (rule6 % int1))
Erin is red.
("Erin" "is" "red" "+")
int1
Erin is kind.
("Erin" "is" "kind" "+")
int2
@0: Erin is big.[(triple1 OR ((triple2 triple4) -> rule7) OR ((triple2 ((triple3) -> rule4)) -> rule7) OR ((triple2 ((triple6 triple2) -> rule5)) -> rule7) OR ((triple2 ((((triple5) -> rule2) triple3) -> rule8)) -> rule7) OR ((triple2 ((((triple3 triple5) -> rule6) triple2) -> rule5)) -> rule7) OR ((triple2 ((((((triple3) -> rule1)) -> rule2) triple3) -> rule8)) -> rule7) OR ((triple2 ((((triple3 ((triple3) -> rule1)) -> rule6) triple2) -> rule5)) -> rule7))] Erin is blue.[(triple2 OR ((triple1) -> rule3))] Erin is furry.[(triple3)] Erin is green.[(triple4 OR ((triple3) -> rule4) OR ((triple6 triple2) -> rule5) OR ((triple6 ((triple1) -> rule3)) -> rule5) OR ((((triple5) -> rule2) triple3) -> rule8) OR ((((triple3 triple5) -> rule6) triple2) -> rule5) OR ((((triple3 triple5) -> rule6) ((triple1) -> rule3)) -> rule5) OR ((((((triple3) -> rule1)) -> rule2) triple3) -> rule8) OR ((((triple3 ((triple3) -> rule1)) -> rule6) triple2) -> rule5) OR ((((triple3 ((triple3) -> rule1)) -> rule6) ((triple1) -> rule3)) -> rule5))] Erin is kind.[(triple5 OR ((triple3) -> rule1))] Erin is red.[(triple6 OR ((triple3 triple5) -> rule6) OR ((triple3 ((triple3) -> rule1)) -> rule6))] Fiona is blue.[(triple7)] Fiona is green.[(triple8 OR ((triple10 triple7) -> rule5))] Fiona is kind.[(triple9)] Fiona is red.[(triple10)] Fiona is rough.[(triple11 OR ((triple9) -> rule2))] Harry is big.[(triple12 OR ((triple13 triple15) -> rule7) OR ((triple13 ((triple14) -> rule4)) -> rule7) OR ((triple13 ((((((triple14) -> rule1)) -> rule2) triple14) -> rule8)) -> rule7) OR ((triple13 ((((triple14 ((triple14) -> rule1)) -> rule6) triple13) -> rule5)) -> rule7))] Harry is blue.[(triple13 OR ((triple12) -> rule3))] Harry is furry.[(triple14)] Harry is green.[(triple15 OR ((triple14) -> rule4) OR ((((((triple14) -> rule1)) -> rule2) triple14) -> rule8) OR ((((triple14 ((triple14) -> rule1)) -> rule6) triple13) -> rule5) OR ((((triple14 ((triple14) -> rule1)) -> rule6) ((triple12) -> rule3)) -> rule5))] @1: Erin is rough.[(((triple5) -> rule2) OR ((((triple3) -> rule1)) -> rule2))] Fiona is big.[(((triple7 triple8) -> rule7) OR ((triple7 ((triple10 triple7) -> rule5)) -> rule7))] Harry is kind.[(((triple14) -> rule1))] @2: Harry is red.[(((triple14 ((triple14) -> rule1)) -> rule6))] Harry is rough.[(((((triple14) -> rule1)) -> rule2))]
Erin is big.
("Erin" "is" "big" "+")
triple1
((triple2 triple4) -> (rule7 % int1))
Erin is big.
("Erin" "is" "big" "+")
int1
((triple2 ((triple3) -> (rule4 % int2))) -> (rule7 % int1))
Erin is big.
("Erin" "is" "big" "+")
int1
Erin is green.
("Erin" "is" "green" "+")
int2
((triple2 ((triple6 triple2) -> (rule5 % int2))) -> (rule7 % int1))
Erin is big.
("Erin" "is" "big" "+")
int1
Erin is green.
("Erin" "is" "green" "+")
int2
((triple2 ((((triple5) -> (rule2 % int3)) triple3) -> (rule8 % int2))) -> (rule7 % int1))
Erin is big.
("Erin" "is" "big" "+")
int1
Erin is green.
("Erin" "is" "green" "+")
int2
Erin is rough.
("Erin" "is" "rough" "+")
int3
((triple2 ((((triple3 triple5) -> (rule6 % int3)) triple2) -> (rule5 % int2))) -> (rule7 % int1))
Erin is big.
("Erin" "is" "big" "+")
int1
Erin is green.
("Erin" "is" "green" "+")
int2
Erin is red.
("Erin" "is" "red" "+")
int3
((triple2 ((((((triple3) -> (rule1 % int4))) -> (rule2 % int3)) triple3) -> (rule8 % int2))) -> (rule7 % int1))
Erin is big.
("Erin" "is" "big" "+")
int1
Erin is green.
("Erin" "is" "green" "+")
int2
Erin is rough.
("Erin" "is" "rough" "+")
int3
Erin is kind.
("Erin" "is" "kind" "+")
int4
((triple2 ((((triple3 ((triple3) -> (rule1 % int4))) -> (rule6 % int3)) triple2) -> (rule5 % int2))) -> (rule7 % int1))
Erin is big.
("Erin" "is" "big" "+")
int1
Erin is green.
("Erin" "is" "green" "+")
int2
Erin is red.
("Erin" "is" "red" "+")
int3
Erin is kind.
("Erin" "is" "kind" "+")
int4
Erin is blue.
("Erin" "is" "blue" "+")
triple2
((triple1) -> (rule3 % int1))
Erin is blue.
("Erin" "is" "blue" "+")
int1
Erin is furry.
("Erin" "is" "furry" "+")
triple3
Erin is green.
("Erin" "is" "green" "+")
triple4
((triple3) -> (rule4 % int1))
Erin is green.
("Erin" "is" "green" "+")
int1
((triple6 triple2) -> (rule5 % int1))
Erin is green.
("Erin" "is" "green" "+")
int1
((triple6 ((triple1) -> (rule3 % int2))) -> (rule5 % int1))
Erin is green.
("Erin" "is" "green" "+")
int1
Erin is blue.
("Erin" "is" "blue" "+")
int2
((((triple5) -> (rule2 % int2)) triple3) -> (rule8 % int1))
Erin is green.
("Erin" "is" "green" "+")
int1
Erin is rough.
("Erin" "is" "rough" "+")
int2
((((triple3 triple5) -> (rule6 % int2)) triple2) -> (rule5 % int1))
Erin is green.
("Erin" "is" "green" "+")
int1
Erin is red.
("Erin" "is" "red" "+")
int2
((((triple3 triple5) -> (rule6 % int3)) ((triple1) -> (rule3 % int2))) -> (rule5 % int1))
Erin is green.
("Erin" "is" "green" "+")
int1
Erin is blue.
("Erin" "is" "blue" "+")
int2
Erin is red.
("Erin" "is" "red" "+")
int3
((((((triple3) -> (rule1 % int3))) -> (rule2 % int2)) triple3) -> (rule8 % int1))
Erin is green.
("Erin" "is" "green" "+")
int1
Erin is rough.
("Erin" "is" "rough" "+")
int2
Erin is kind.
("Erin" "is" "kind" "+")
int3
((((triple3 ((triple3) -> (rule1 % int3))) -> (rule6 % int2)) triple2) -> (rule5 % int1))
Erin is green.
("Erin" "is" "green" "+")
int1
Erin is red.
("Erin" "is" "red" "+")
int2
Erin is kind.
("Erin" "is" "kind" "+")
int3
((((triple3 ((triple3) -> (rule1 % int4))) -> (rule6 % int3)) ((triple1) -> (rule3 % int2))) -> (rule5 % int1))
Erin is green.
("Erin" "is" "green" "+")
int1
Erin is blue.
("Erin" "is" "blue" "+")
int2
Erin is red.
("Erin" "is" "red" "+")
int3
Erin is kind.
("Erin" "is" "kind" "+")
int4
Erin is kind.
("Erin" "is" "kind" "+")
triple5
((triple3) -> (rule1 % int1))
Erin is kind.
("Erin" "is" "kind" "+")
int1
Erin is red.
("Erin" "is" "red" "+")
triple6
((triple3 triple5) -> (rule6 % int1))
Erin is red.
("Erin" "is" "red" "+")
int1
((triple3 ((triple3) -> (rule1 % int2))) -> (rule6 % int1))
Erin is red.
("Erin" "is" "red" "+")
int1
Erin is kind.
("Erin" "is" "kind" "+")
int2
Fiona is blue.
("Fiona" "is" "blue" "+")
triple7
Fiona is green.
("Fiona" "is" "green" "+")
triple8
((triple10 triple7) -> (rule5 % int1))
Fiona is green.
("Fiona" "is" "green" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
triple9
Fiona is red.
("Fiona" "is" "red" "+")
triple10
Fiona is rough.
("Fiona" "is" "rough" "+")
triple11
((triple9) -> (rule2 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Harry is big.
("Harry" "is" "big" "+")
triple12
((triple13 triple15) -> (rule7 % int1))
Harry is big.
("Harry" "is" "big" "+")
int1
((triple13 ((triple14) -> (rule4 % int2))) -> (rule7 % int1))
Harry is big.
("Harry" "is" "big" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
((triple13 ((((((triple14) -> (rule1 % int4))) -> (rule2 % int3)) triple14) -> (rule8 % int2))) -> (rule7 % int1))
Harry is big.
("Harry" "is" "big" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
int3
Harry is kind.
("Harry" "is" "kind" "+")
int4
((triple13 ((((triple14 ((triple14) -> (rule1 % int4))) -> (rule6 % int3)) triple13) -> (rule5 % int2))) -> (rule7 % int1))
Harry is big.
("Harry" "is" "big" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Harry is red.
("Harry" "is" "red" "+")
int3
Harry is kind.
("Harry" "is" "kind" "+")
int4
Harry is blue.
("Harry" "is" "blue" "+")
triple13
((triple12) -> (rule3 % int1))
Harry is blue.
("Harry" "is" "blue" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
triple14
Harry is green.
("Harry" "is" "green" "+")
triple15
((triple14) -> (rule4 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
((((((triple14) -> (rule1 % int3))) -> (rule2 % int2)) triple14) -> (rule8 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
int2
Harry is kind.
("Harry" "is" "kind" "+")
int3
((((triple14 ((triple14) -> (rule1 % int3))) -> (rule6 % int2)) triple13) -> (rule5 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is red.
("Harry" "is" "red" "+")
int2
Harry is kind.
("Harry" "is" "kind" "+")
int3
((((triple14 ((triple14) -> (rule1 % int4))) -> (rule6 % int3)) ((triple12) -> (rule3 % int2))) -> (rule5 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is blue.
("Harry" "is" "blue" "+")
int2
Harry is red.
("Harry" "is" "red" "+")
int3
Harry is kind.
("Harry" "is" "kind" "+")
int4
Erin is rough.
("Erin" "is" "rough" "+")
((triple5) -> (rule2 % int1))
Erin is rough.
("Erin" "is" "rough" "+")
int1
((((triple3) -> (rule1 % int2))) -> (rule2 % int1))
Erin is rough.
("Erin" "is" "rough" "+")
int1
Erin is kind.
("Erin" "is" "kind" "+")
int2
Fiona is big.
("Fiona" "is" "big" "+")
((triple7 triple8) -> (rule7 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
((triple7 ((triple10 triple7) -> (rule5 % int2))) -> (rule7 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
Fiona is green.
("Fiona" "is" "green" "+")
int2
Harry is kind.
("Harry" "is" "kind" "+")
((triple14) -> (rule1 % int1))
Harry is kind.
("Harry" "is" "kind" "+")
int1
Harry is red.
("Harry" "is" "red" "+")
((triple14 ((triple14) -> (rule1 % int2))) -> (rule6 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Harry is kind.
("Harry" "is" "kind" "+")
int2
Harry is rough.
("Harry" "is" "rough" "+")
((((triple14) -> (rule1 % int2))) -> (rule2 % int1))
Harry is rough.
("Harry" "is" "rough" "+")
int1
Harry is kind.
("Harry" "is" "kind" "+")
int2