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