Fiona is blue. Fiona is kind. Fiona is red. Fiona is rough. Fiona is round. Fiona is smart. Fiona is white. All rough, red things are kind. All blue things are rough. Round things are red.
Fiona is blue.
("Fiona" "is" "blue" "+")
Fiona is kind.
("Fiona" "is" "kind" "+")
Fiona is red.
("Fiona" "is" "red" "+")
Fiona is rough.
("Fiona" "is" "rough" "+")
Fiona is round.
("Fiona" "is" "round" "+")
Fiona is smart.
("Fiona" "is" "smart" "+")
Fiona is white.
("Fiona" "is" "white" "+")
All rough, red things are kind.
((("something" "is" "rough" "+") ("something" "is" "red" "+")) -> ("something" "is" "kind" "+"))
All blue things are rough.
((("something" "is" "blue" "+")) -> ("something" "is" "rough" "+"))
Round things are red.
((("something" "is" "round" "+")) -> ("something" "is" "red" "+"))
Fiona is rough.
True
1
proof
[(triple4 OR ((triple1) -> rule2))]
("Fiona" "is" "rough" "+")
triple4
((triple1) -> (rule2 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Fiona is not red.
False
1
inv-proof
[(triple3 OR ((triple5) -> rule3))]
("Fiona" "is" "red" "-")
triple3
((triple5) -> (rule3 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
@0: Fiona is blue.[(triple1)] Fiona is kind.[(triple2 OR ((triple4 triple3) -> rule1) OR ((triple4 ((triple5) -> rule3)) -> rule1) OR ((((triple1) -> rule2) triple3) -> rule1) OR ((((triple1) -> rule2) ((triple5) -> rule3)) -> rule1))] Fiona is red.[(triple3 OR ((triple5) -> rule3))] Fiona is rough.[(triple4 OR ((triple1) -> rule2))] Fiona is round.[(triple5)] Fiona is smart.[(triple6)] Fiona is white.[(triple7)]
Fiona is blue.
("Fiona" "is" "blue" "+")
triple1
Fiona is kind.
("Fiona" "is" "kind" "+")
triple2
((triple4 triple3) -> (rule1 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
((triple4 ((triple5) -> (rule3 % int2))) -> (rule1 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
((((triple1) -> (rule2 % int2)) triple3) -> (rule1 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2
((((triple1) -> (rule2 % int3)) ((triple5) -> (rule3 % int2))) -> (rule1 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
Fiona is rough.
("Fiona" "is" "rough" "+")
int3
Fiona is red.
("Fiona" "is" "red" "+")
triple3
((triple5) -> (rule3 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
triple4
((triple1) -> (rule2 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Fiona is round.
("Fiona" "is" "round" "+")
triple5
Fiona is smart.
("Fiona" "is" "smart" "+")
triple6
Fiona is white.
("Fiona" "is" "white" "+")
triple7