Charlie is blue. Charlie is cold. Charlie is red. Charlie is rough. Charlie is white. Charlie is young. Dave is blue. Dave is cold. Dave is furry. Dave is red. Dave is white. Dave is young. All furry things are white. If something is blue and cold then it is rough. All furry things are young. Blue, red things are furry. If Charlie is young and Charlie is furry then Charlie is red. If Dave is white then Dave is cold.
Charlie is blue.
("Charlie" "is" "blue" "+")
Charlie is cold.
("Charlie" "is" "cold" "+")
Charlie is red.
("Charlie" "is" "red" "+")
Charlie is rough.
("Charlie" "is" "rough" "+")
Charlie is white.
("Charlie" "is" "white" "+")
Charlie is young.
("Charlie" "is" "young" "+")
Dave is blue.
("Dave" "is" "blue" "+")
Dave is cold.
("Dave" "is" "cold" "+")
Dave is furry.
("Dave" "is" "furry" "+")
Dave is red.
("Dave" "is" "red" "+")
Dave is white.
("Dave" "is" "white" "+")
Dave is young.
("Dave" "is" "young" "+")
All furry things are white.
((("something" "is" "furry" "+")) -> ("something" "is" "white" "+"))
If something is blue and cold then it is rough.
((("something" "is" "blue" "+") ("something" "is" "cold" "+")) -> ("something" "is" "rough" "+"))
All furry things are young.
((("something" "is" "furry" "+")) -> ("something" "is" "young" "+"))
Blue, red things are furry.
((("something" "is" "blue" "+") ("something" "is" "red" "+")) -> ("something" "is" "furry" "+"))
If Charlie is young and Charlie is furry then Charlie is red.
((("Charlie" "is" "young" "+") ("Charlie" "is" "furry" "+")) -> ("Charlie" "is" "red" "+"))
If Dave is white then Dave is cold.
((("Dave" "is" "white" "+")) -> ("Dave" "is" "cold" "+"))
Charlie is white.
True
1
proof
[(triple5 OR ((((triple1 triple3) -> rule4)) -> rule1))]
("Charlie" "is" "white" "+")
triple5
((((triple1 triple3) -> (rule4 % int2))) -> (rule1 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
Charlie is furry.
("Charlie" "is" "furry" "+")
int2
Dave is not blue.
False
1
inv-proof
[(triple7)]
("Dave" "is" "blue" "-")
triple7
@0: Charlie is blue.[(triple1)] Charlie is cold.[(triple2)] Charlie is red.[(triple3)] Charlie is rough.[(triple4 OR ((triple1 triple2) -> rule2))] Charlie is white.[(triple5 OR ((((triple1 triple3) -> rule4)) -> rule1))] Charlie is young.[(triple6 OR ((((triple1 triple3) -> rule4)) -> rule3))] Dave is blue.[(triple7)] Dave is cold.[(triple8 OR ((triple11) -> rule6) OR ((((triple9) -> rule1)) -> rule6) OR ((((((triple7 triple10) -> rule4)) -> rule1)) -> rule6))] Dave is furry.[(triple9 OR ((triple7 triple10) -> rule4))] Dave is red.[(triple10)] Dave is white.[(triple11 OR ((triple9) -> rule1) OR ((((triple7 triple10) -> rule4)) -> rule1))] Dave is young.[(triple12 OR ((triple9) -> rule3) OR ((((triple7 triple10) -> rule4)) -> rule3))] @1: Charlie is furry.[(((triple1 triple3) -> rule4))] Dave is rough.[(((triple7 triple8) -> rule2) OR ((triple7 ((triple11) -> rule6)) -> rule2) OR ((triple7 ((((triple9) -> rule1)) -> rule6)) -> rule2) OR ((triple7 ((((((triple7 triple10) -> rule4)) -> rule1)) -> rule6)) -> rule2))]
Charlie is blue.
("Charlie" "is" "blue" "+")
triple1
Charlie is cold.
("Charlie" "is" "cold" "+")
triple2
Charlie is red.
("Charlie" "is" "red" "+")
triple3
Charlie is rough.
("Charlie" "is" "rough" "+")
triple4
((triple1 triple2) -> (rule2 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
triple5
((((triple1 triple3) -> (rule4 % int2))) -> (rule1 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
Charlie is furry.
("Charlie" "is" "furry" "+")
int2
Charlie is young.
("Charlie" "is" "young" "+")
triple6
((((triple1 triple3) -> (rule4 % int2))) -> (rule3 % int1))
Charlie is young.
("Charlie" "is" "young" "+")
int1
Charlie is furry.
("Charlie" "is" "furry" "+")
int2
Dave is blue.
("Dave" "is" "blue" "+")
triple7
Dave is cold.
("Dave" "is" "cold" "+")
triple8
((triple11) -> (rule6 % int1))
Dave is cold.
("Dave" "is" "cold" "+")
int1
((((triple9) -> (rule1 % int2))) -> (rule6 % int1))
Dave is cold.
("Dave" "is" "cold" "+")
int1
Dave is white.
("Dave" "is" "white" "+")
int2
((((((triple7 triple10) -> (rule4 % int3))) -> (rule1 % int2))) -> (rule6 % int1))
Dave is cold.
("Dave" "is" "cold" "+")
int1
Dave is white.
("Dave" "is" "white" "+")
int2
Dave is furry.
("Dave" "is" "furry" "+")
int3
Dave is furry.
("Dave" "is" "furry" "+")
triple9
((triple7 triple10) -> (rule4 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Dave is red.
("Dave" "is" "red" "+")
triple10
Dave is white.
("Dave" "is" "white" "+")
triple11
((triple9) -> (rule1 % int1))
Dave is white.
("Dave" "is" "white" "+")
int1
((((triple7 triple10) -> (rule4 % int2))) -> (rule1 % int1))
Dave is white.
("Dave" "is" "white" "+")
int1
Dave is furry.
("Dave" "is" "furry" "+")
int2
Dave is young.
("Dave" "is" "young" "+")
triple12
((triple9) -> (rule3 % int1))
Dave is young.
("Dave" "is" "young" "+")
int1
((((triple7 triple10) -> (rule4 % int2))) -> (rule3 % int1))
Dave is young.
("Dave" "is" "young" "+")
int1
Dave is furry.
("Dave" "is" "furry" "+")
int2
Charlie is furry.
("Charlie" "is" "furry" "+")
((triple1 triple3) -> (rule4 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Dave is rough.
("Dave" "is" "rough" "+")
((triple7 triple8) -> (rule2 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
((triple7 ((triple11) -> (rule6 % int2))) -> (rule2 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
Dave is cold.
("Dave" "is" "cold" "+")
int2
((triple7 ((((triple9) -> (rule1 % int3))) -> (rule6 % int2))) -> (rule2 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
Dave is cold.
("Dave" "is" "cold" "+")
int2
Dave is white.
("Dave" "is" "white" "+")
int3
((triple7 ((((((triple7 triple10) -> (rule4 % int4))) -> (rule1 % int3))) -> (rule6 % int2))) -> (rule2 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
Dave is cold.
("Dave" "is" "cold" "+")
int2
Dave is white.
("Dave" "is" "white" "+")
int3
Dave is furry.
("Dave" "is" "furry" "+")
int4