Charlie is blue. Charlie is cold. Charlie is kind. Charlie is red. Charlie is round. Charlie is smart. Charlie is white. Fiona is blue. Fiona is cold. Fiona is red. Fiona is round. Fiona is white. Cold, blue things are kind. All white things are kind. All smart, kind things are cold.
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 round.
("Charlie" "is" "round" "+")
Charlie is smart.
("Charlie" "is" "smart" "+")
Charlie is white.
("Charlie" "is" "white" "+")
Fiona is blue.
("Fiona" "is" "blue" "+")
Fiona is cold.
("Fiona" "is" "cold" "+")
Fiona is red.
("Fiona" "is" "red" "+")
Fiona is round.
("Fiona" "is" "round" "+")
Fiona is white.
("Fiona" "is" "white" "+")
Cold, blue things are kind.
((("something" "is" "cold" "+") ("something" "is" "blue" "+")) -> ("something" "is" "kind" "+"))
All white things are kind.
((("something" "is" "white" "+")) -> ("something" "is" "kind" "+"))
All smart, kind things are cold.
((("something" "is" "smart" "+") ("something" "is" "kind" "+")) -> ("something" "is" "cold" "+"))
Charlie is round.
True
1
proof
[(triple5)]
("Charlie" "is" "round" "+")
triple5
Charlie is not round.
False
1
inv-proof
[(triple5)]
("Charlie" "is" "round" "-")
triple5
Fiona is kind.
True
2
proof
[(((triple12) -> rule2) OR ((triple9 triple8) -> rule1))]
("Fiona" "is" "kind" "+")
((triple12) -> (rule2 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
((triple9 triple8) -> (rule1 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
Fiona is not kind.
False
2
inv-proof
[(((triple12) -> rule2) OR ((triple9 triple8) -> rule1))]
("Fiona" "is" "kind" "-")
((triple12) -> (rule2 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
((triple9 triple8) -> (rule1 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
@0: Charlie is blue.[(triple1)] Charlie is cold.[(triple2 OR ((triple6 triple3) -> rule3) OR ((triple6 ((triple7) -> rule2)) -> rule3))] Charlie is kind.[(triple3 OR ((triple7) -> rule2) OR ((triple2 triple1) -> rule1))] Charlie is red.[(triple4)] Charlie is round.[(triple5)] Charlie is smart.[(triple6)] Charlie is white.[(triple7)] Fiona is blue.[(triple8)] Fiona is cold.[(triple9)] Fiona is red.[(triple10)] Fiona is round.[(triple11)] Fiona is white.[(triple12)] @1: Fiona is kind.[(((triple12) -> rule2) OR ((triple9 triple8) -> rule1))]
Charlie is blue.
("Charlie" "is" "blue" "+")
triple1
Charlie is cold.
("Charlie" "is" "cold" "+")
triple2
((triple6 triple3) -> (rule3 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
((triple6 ((triple7) -> (rule2 % int2))) -> (rule3 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
triple3
((triple7) -> (rule2 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
((triple2 triple1) -> (rule1 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is red.
("Charlie" "is" "red" "+")
triple4
Charlie is round.
("Charlie" "is" "round" "+")
triple5
Charlie is smart.
("Charlie" "is" "smart" "+")
triple6
Charlie is white.
("Charlie" "is" "white" "+")
triple7
Fiona is blue.
("Fiona" "is" "blue" "+")
triple8
Fiona is cold.
("Fiona" "is" "cold" "+")
triple9
Fiona is red.
("Fiona" "is" "red" "+")
triple10
Fiona is round.
("Fiona" "is" "round" "+")
triple11
Fiona is white.
("Fiona" "is" "white" "+")
triple12
Fiona is kind.
("Fiona" "is" "kind" "+")
((triple12) -> (rule2 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
((triple9 triple8) -> (rule1 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1