Charlie is cold. Charlie is green. Charlie is red. Charlie is white. Fiona is cold. Fiona is red. Fiona is smart. Fiona is white. Harry is cold. Harry is furry. Harry is green. Harry is red. Harry is round. Harry is smart. Harry is white. All smart, furry things are red. If something is cold and smart then it is furry. If Harry is cold then Harry is red. Cold, smart things are furry. All round, green things are smart. If something is red then it is round.
Charlie is cold.
("Charlie" "is" "cold" "+")
Charlie is green.
("Charlie" "is" "green" "+")
Charlie is red.
("Charlie" "is" "red" "+")
Charlie is white.
("Charlie" "is" "white" "+")
Fiona is cold.
("Fiona" "is" "cold" "+")
Fiona is red.
("Fiona" "is" "red" "+")
Fiona is smart.
("Fiona" "is" "smart" "+")
Fiona is white.
("Fiona" "is" "white" "+")
Harry is cold.
("Harry" "is" "cold" "+")
Harry is furry.
("Harry" "is" "furry" "+")
Harry is green.
("Harry" "is" "green" "+")
Harry is red.
("Harry" "is" "red" "+")
Harry is round.
("Harry" "is" "round" "+")
Harry is smart.
("Harry" "is" "smart" "+")
Harry is white.
("Harry" "is" "white" "+")
All smart, furry things are red.
((("something" "is" "smart" "+") ("something" "is" "furry" "+")) -> ("something" "is" "red" "+"))
If something is cold and smart then it is furry.
((("something" "is" "cold" "+") ("something" "is" "smart" "+")) -> ("something" "is" "furry" "+"))
If Harry is cold then Harry is red.
((("Harry" "is" "cold" "+")) -> ("Harry" "is" "red" "+"))
Cold, smart things are furry.
((("something" "is" "cold" "+") ("something" "is" "smart" "+")) -> ("something" "is" "furry" "+"))
All round, green things are smart.
((("something" "is" "round" "+") ("something" "is" "green" "+")) -> ("something" "is" "smart" "+"))
If something is red then it is round.
((("something" "is" "red" "+")) -> ("something" "is" "round" "+"))
Harry is furry.
True
1
proof
[(triple10 OR ((triple9 triple14) -> rule2) OR ((triple9 triple14) -> rule4) OR ((triple9 ((triple13 triple11) -> rule5)) -> rule2) OR ((triple9 ((triple13 triple11) -> rule5)) -> rule4) OR ((triple9 ((((triple12) -> rule6) triple11) -> rule5)) -> rule2) OR ((triple9 ((((triple12) -> rule6) triple11) -> rule5)) -> rule4) OR ((triple9 ((((((triple9) -> rule3)) -> rule6) triple11) -> rule5)) -> rule2) OR ((triple9 ((((((triple9) -> rule3)) -> rule6) triple11) -> rule5)) -> rule4))]
("Harry" "is" "furry" "+")
triple10
((triple9 triple14) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
((triple9 triple14) -> (rule4 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
((triple9 ((triple13 triple11) -> (rule5 % int2))) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is smart.
("Harry" "is" "smart" "+")
int2
((triple9 ((triple13 triple11) -> (rule5 % int2))) -> (rule4 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is smart.
("Harry" "is" "smart" "+")
int2
((triple9 ((((triple12) -> (rule6 % int3)) triple11) -> (rule5 % int2))) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is smart.
("Harry" "is" "smart" "+")
int2
Harry is round.
("Harry" "is" "round" "+")
int3
((triple9 ((((triple12) -> (rule6 % int3)) triple11) -> (rule5 % int2))) -> (rule4 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is smart.
("Harry" "is" "smart" "+")
int2
Harry is round.
("Harry" "is" "round" "+")
int3
((triple9 ((((((triple9) -> (rule3 % int4))) -> (rule6 % int3)) triple11) -> (rule5 % int2))) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is smart.
("Harry" "is" "smart" "+")
int2
Harry is round.
("Harry" "is" "round" "+")
int3
Harry is red.
("Harry" "is" "red" "+")
int4
((triple9 ((((((triple9) -> (rule3 % int4))) -> (rule6 % int3)) triple11) -> (rule5 % int2))) -> (rule4 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is smart.
("Harry" "is" "smart" "+")
int2
Harry is round.
("Harry" "is" "round" "+")
int3
Harry is red.
("Harry" "is" "red" "+")
int4
Harry is not green.
False
1
inv-proof
[(triple11)]
("Harry" "is" "green" "-")
triple11
Charlie is round.
True
2
proof
[(((triple3) -> rule6))]
("Charlie" "is" "round" "+")
((triple3) -> (rule6 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Fiona is not furry.
False
3
inv-proof
[(((triple5 triple7) -> rule2) OR ((triple5 triple7) -> rule4))]
("Fiona" "is" "furry" "-")
((triple5 triple7) -> (rule2 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
((triple5 triple7) -> (rule4 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Charlie is smart.
True
4
proof
[(((((triple3) -> rule6) triple2) -> rule5))]
("Charlie" "is" "smart" "+")
((((triple3) -> (rule6 % int2)) triple2) -> (rule5 % int1))
Charlie is smart.
("Charlie" "is" "smart" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is not smart.
False
4
inv-proof
[(((((triple3) -> rule6) triple2) -> rule5))]
("Charlie" "is" "smart" "-")
((((triple3) -> (rule6 % int2)) triple2) -> (rule5 % int1))
Charlie is smart.
("Charlie" "is" "smart" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is furry.
True
6
proof
[(((triple1 ((((triple3) -> rule6) triple2) -> rule5)) -> rule2) OR ((triple1 ((((triple3) -> rule6) triple2) -> rule5)) -> rule4))]
("Charlie" "is" "furry" "+")
((triple1 ((((triple3) -> (rule6 % int3)) triple2) -> (rule5 % int2))) -> (rule2 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is smart.
("Charlie" "is" "smart" "+")
int2
Charlie is round.
("Charlie" "is" "round" "+")
int3
((triple1 ((((triple3) -> (rule6 % int3)) triple2) -> (rule5 % int2))) -> (rule4 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is smart.
("Charlie" "is" "smart" "+")
int2
Charlie is round.
("Charlie" "is" "round" "+")
int3
Charlie is not furry.
False
6
inv-proof
[(((triple1 ((((triple3) -> rule6) triple2) -> rule5)) -> rule2) OR ((triple1 ((((triple3) -> rule6) triple2) -> rule5)) -> rule4))]
("Charlie" "is" "furry" "-")
((triple1 ((((triple3) -> (rule6 % int3)) triple2) -> (rule5 % int2))) -> (rule2 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is smart.
("Charlie" "is" "smart" "+")
int2
Charlie is round.
("Charlie" "is" "round" "+")
int3
((triple1 ((((triple3) -> (rule6 % int3)) triple2) -> (rule5 % int2))) -> (rule4 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is smart.
("Charlie" "is" "smart" "+")
int2
Charlie is round.
("Charlie" "is" "round" "+")
int3
@0: Charlie is cold.[(triple1)] Charlie is green.[(triple2)] Charlie is red.[(triple3)] Charlie is white.[(triple4)] Fiona is cold.[(triple5)] Fiona is red.[(triple6 OR ((triple7 ((triple5 triple7) -> rule2)) -> rule1) OR ((triple7 ((triple5 triple7) -> rule4)) -> rule1))] Fiona is smart.[(triple7)] Fiona is white.[(triple8)] Harry is cold.[(triple9)] Harry is furry.[(triple10 OR ((triple9 triple14) -> rule2) OR ((triple9 triple14) -> rule4) OR ((triple9 ((triple13 triple11) -> rule5)) -> rule2) OR ((triple9 ((triple13 triple11) -> rule5)) -> rule4) OR ((triple9 ((((triple12) -> rule6) triple11) -> rule5)) -> rule2) OR ((triple9 ((((triple12) -> rule6) triple11) -> rule5)) -> rule4) OR ((triple9 ((((((triple9) -> rule3)) -> rule6) triple11) -> rule5)) -> rule2) OR ((triple9 ((((((triple9) -> rule3)) -> rule6) triple11) -> rule5)) -> rule4))] Harry is green.[(triple11)] Harry is red.[(triple12 OR ((triple9) -> rule3) OR ((triple14 triple10) -> rule1) OR ((triple14 ((triple9 triple14) -> rule2)) -> rule1) OR ((triple14 ((triple9 triple14) -> rule4)) -> rule1) OR ((((triple13 triple11) -> rule5) triple10) -> rule1) OR ((((triple13 triple11) -> rule5) ((triple9 triple14) -> rule2)) -> rule1) OR ((((triple13 triple11) -> rule5) ((triple9 triple14) -> rule4)) -> rule1) OR ((triple14 ((triple9 ((triple13 triple11) -> rule5)) -> rule2)) -> rule1) OR ((triple14 ((triple9 ((triple13 triple11) -> rule5)) -> rule4)) -> rule1) OR ((((triple13 triple11) -> rule5) ((triple9 ((triple13 triple11) -> rule5)) -> rule2)) -> rule1) OR ((((triple13 triple11) -> rule5) ((triple9 ((triple13 triple11) -> rule5)) -> rule4)) -> rule1))] Harry is round.[(triple13 OR ((triple12) -> rule6) OR ((((triple9) -> rule3)) -> rule6) OR ((((triple14 triple10) -> rule1)) -> rule6) OR ((((triple14 ((triple9 triple14) -> rule2)) -> rule1)) -> rule6) OR ((((triple14 ((triple9 triple14) -> rule4)) -> rule1)) -> rule6))] Harry is smart.[(triple14 OR ((triple13 triple11) -> rule5) OR ((((triple12) -> rule6) triple11) -> rule5) OR ((((((triple9) -> rule3)) -> rule6) triple11) -> rule5))] Harry is white.[(triple15)] @1: Charlie is round.[(((triple3) -> rule6))] Fiona is furry.[(((triple5 triple7) -> rule2) OR ((triple5 triple7) -> rule4))] Fiona is round.[(((triple6) -> rule6) OR ((((triple7 ((triple5 triple7) -> rule2)) -> rule1)) -> rule6) OR ((((triple7 ((triple5 triple7) -> rule4)) -> rule1)) -> rule6))] @2: Charlie is smart.[(((((triple3) -> rule6) triple2) -> rule5))] @3: Charlie is furry.[(((triple1 ((((triple3) -> rule6) triple2) -> rule5)) -> rule2) OR ((triple1 ((((triple3) -> rule6) triple2) -> rule5)) -> rule4))]
Charlie is cold.
("Charlie" "is" "cold" "+")
triple1
Charlie is green.
("Charlie" "is" "green" "+")
triple2
Charlie is red.
("Charlie" "is" "red" "+")
triple3
Charlie is white.
("Charlie" "is" "white" "+")
triple4
Fiona is cold.
("Fiona" "is" "cold" "+")
triple5
Fiona is red.
("Fiona" "is" "red" "+")
triple6
((triple7 ((triple5 triple7) -> (rule2 % int2))) -> (rule1 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
((triple7 ((triple5 triple7) -> (rule4 % int2))) -> (rule1 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is smart.
("Fiona" "is" "smart" "+")
triple7
Fiona is white.
("Fiona" "is" "white" "+")
triple8
Harry is cold.
("Harry" "is" "cold" "+")
triple9
Harry is furry.
("Harry" "is" "furry" "+")
triple10
((triple9 triple14) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
((triple9 triple14) -> (rule4 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
((triple9 ((triple13 triple11) -> (rule5 % int2))) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is smart.
("Harry" "is" "smart" "+")
int2
((triple9 ((triple13 triple11) -> (rule5 % int2))) -> (rule4 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is smart.
("Harry" "is" "smart" "+")
int2
((triple9 ((((triple12) -> (rule6 % int3)) triple11) -> (rule5 % int2))) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is smart.
("Harry" "is" "smart" "+")
int2
Harry is round.
("Harry" "is" "round" "+")
int3
((triple9 ((((triple12) -> (rule6 % int3)) triple11) -> (rule5 % int2))) -> (rule4 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is smart.
("Harry" "is" "smart" "+")
int2
Harry is round.
("Harry" "is" "round" "+")
int3
((triple9 ((((((triple9) -> (rule3 % int4))) -> (rule6 % int3)) triple11) -> (rule5 % int2))) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is smart.
("Harry" "is" "smart" "+")
int2
Harry is round.
("Harry" "is" "round" "+")
int3
Harry is red.
("Harry" "is" "red" "+")
int4
((triple9 ((((((triple9) -> (rule3 % int4))) -> (rule6 % int3)) triple11) -> (rule5 % int2))) -> (rule4 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is smart.
("Harry" "is" "smart" "+")
int2
Harry is round.
("Harry" "is" "round" "+")
int3
Harry is red.
("Harry" "is" "red" "+")
int4
Harry is green.
("Harry" "is" "green" "+")
triple11
Harry is red.
("Harry" "is" "red" "+")
triple12
((triple9) -> (rule3 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
((triple14 triple10) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
((triple14 ((triple9 triple14) -> (rule2 % int2))) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
((triple14 ((triple9 triple14) -> (rule4 % int2))) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
((((triple13 triple11) -> (rule5 % int2)) triple10) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Harry is smart.
("Harry" "is" "smart" "+")
int2
((((triple13 triple11) -> (rule5 % int3)) ((triple9 triple14) -> (rule2 % int2))) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
Harry is smart.
("Harry" "is" "smart" "+")
int3
((((triple13 triple11) -> (rule5 % int3)) ((triple9 triple14) -> (rule4 % int2))) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
Harry is smart.
("Harry" "is" "smart" "+")
int3
((triple14 ((triple9 ((triple13 triple11) -> (rule5 % int3))) -> (rule2 % int2))) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
Harry is smart.
("Harry" "is" "smart" "+")
int3
((triple14 ((triple9 ((triple13 triple11) -> (rule5 % int3))) -> (rule4 % int2))) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
Harry is smart.
("Harry" "is" "smart" "+")
int3
((((triple13 triple11) -> (rule5 % int3)) ((triple9 ((triple13 triple11) -> (rule5 % int3))) -> (rule2 % int2))) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
Harry is smart.
("Harry" "is" "smart" "+")
int3
((((triple13 triple11) -> (rule5 % int3)) ((triple9 ((triple13 triple11) -> (rule5 % int3))) -> (rule4 % int2))) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
Harry is smart.
("Harry" "is" "smart" "+")
int3
Harry is round.
("Harry" "is" "round" "+")
triple13
((triple12) -> (rule6 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
((((triple9) -> (rule3 % int2))) -> (rule6 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is red.
("Harry" "is" "red" "+")
int2
((((triple14 triple10) -> (rule1 % int2))) -> (rule6 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is red.
("Harry" "is" "red" "+")
int2
((((triple14 ((triple9 triple14) -> (rule2 % int3))) -> (rule1 % int2))) -> (rule6 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is red.
("Harry" "is" "red" "+")
int2
Harry is furry.
("Harry" "is" "furry" "+")
int3
((((triple14 ((triple9 triple14) -> (rule4 % int3))) -> (rule1 % int2))) -> (rule6 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is red.
("Harry" "is" "red" "+")
int2
Harry is furry.
("Harry" "is" "furry" "+")
int3
Harry is smart.
("Harry" "is" "smart" "+")
triple14
((triple13 triple11) -> (rule5 % int1))
Harry is smart.
("Harry" "is" "smart" "+")
int1
((((triple12) -> (rule6 % int2)) triple11) -> (rule5 % int1))
Harry is smart.
("Harry" "is" "smart" "+")
int1
Harry is round.
("Harry" "is" "round" "+")
int2
((((((triple9) -> (rule3 % int3))) -> (rule6 % int2)) triple11) -> (rule5 % int1))
Harry is smart.
("Harry" "is" "smart" "+")
int1
Harry is round.
("Harry" "is" "round" "+")
int2
Harry is red.
("Harry" "is" "red" "+")
int3
Harry is white.
("Harry" "is" "white" "+")
triple15
Charlie is round.
("Charlie" "is" "round" "+")
((triple3) -> (rule6 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
((triple5 triple7) -> (rule2 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
((triple5 triple7) -> (rule4 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is round.
("Fiona" "is" "round" "+")
((triple6) -> (rule6 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
((((triple7 ((triple5 triple7) -> (rule2 % int3))) -> (rule1 % int2))) -> (rule6 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
Fiona is furry.
("Fiona" "is" "furry" "+")
int3
((((triple7 ((triple5 triple7) -> (rule4 % int3))) -> (rule1 % int2))) -> (rule6 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
Fiona is furry.
("Fiona" "is" "furry" "+")
int3
Charlie is smart.
("Charlie" "is" "smart" "+")
((((triple3) -> (rule6 % int2)) triple2) -> (rule5 % int1))
Charlie is smart.
("Charlie" "is" "smart" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is furry.
("Charlie" "is" "furry" "+")
((triple1 ((((triple3) -> (rule6 % int3)) triple2) -> (rule5 % int2))) -> (rule2 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is smart.
("Charlie" "is" "smart" "+")
int2
Charlie is round.
("Charlie" "is" "round" "+")
int3
((triple1 ((((triple3) -> (rule6 % int3)) triple2) -> (rule5 % int2))) -> (rule4 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is smart.
("Charlie" "is" "smart" "+")
int2
Charlie is round.
("Charlie" "is" "round" "+")
int3