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