Bob is big. Bob is not blue. Bob is furry. Bob is not kind. Bob is rough. Bob is white. Bob is young. Fiona is big. Fiona is not blue. Fiona is furry. Fiona is kind. Fiona is rough. Fiona is white. Fiona is young. All rough, furry things are big. If something is kind and white then it is furry. If Bob is not big then Bob is blue.
Bob is big.
("Bob" "is" "big" "+")
Bob is not blue.
("Bob" "is" "blue" "-")
Bob is furry.
("Bob" "is" "furry" "+")
Bob is not kind.
("Bob" "is" "kind" "-")
Bob is rough.
("Bob" "is" "rough" "+")
Bob is white.
("Bob" "is" "white" "+")
Bob is young.
("Bob" "is" "young" "+")
Fiona is big.
("Fiona" "is" "big" "+")
Fiona is not blue.
("Fiona" "is" "blue" "-")
Fiona is furry.
("Fiona" "is" "furry" "+")
Fiona is kind.
("Fiona" "is" "kind" "+")
Fiona is rough.
("Fiona" "is" "rough" "+")
Fiona is white.
("Fiona" "is" "white" "+")
Fiona is young.
("Fiona" "is" "young" "+")
All rough, furry things are big.
((("something" "is" "rough" "+") ("something" "is" "furry" "+")) -> ("something" "is" "big" "+"))
If something is kind and white then it is furry.
((("something" "is" "kind" "+") ("something" "is" "white" "+")) -> ("something" "is" "furry" "+"))
If Bob is not big then Bob is blue.
((("Bob" "is" "big" "~")) -> ("Bob" "is" "blue" "+"))
Fiona is white.
True
1
proof
[(triple13)]
("Fiona" "is" "white" "+")
triple13
Bob is kind.
False
1
inv-proof
[(triple4)]
("Bob" "is" "kind" "+")
triple4
@0: Bob is big.[(triple1 OR ((triple5 triple3) -> rule1))] Bob is furry.[(triple3)] Bob is not blue.[(triple2)] Bob is not kind.[(triple4)] Bob is rough.[(triple5)] Bob is white.[(triple6)] Bob is young.[(triple7)] Fiona is big.[(triple8 OR ((triple12 triple10) -> rule1) OR ((triple12 ((triple11 triple13) -> rule2)) -> rule1))] Fiona is furry.[(triple10 OR ((triple11 triple13) -> rule2))] Fiona is kind.[(triple11)] Fiona is not blue.[(triple9)] Fiona is rough.[(triple12)] Fiona is white.[(triple13)] Fiona is young.[(triple14)]
Bob is big.
("Bob" "is" "big" "+")
triple1
((triple5 triple3) -> (rule1 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
triple3
Bob is not blue.
("Bob" "is" "blue" "-")
triple2
Bob is not kind.
("Bob" "is" "kind" "-")
triple4
Bob is rough.
("Bob" "is" "rough" "+")
triple5
Bob is white.
("Bob" "is" "white" "+")
triple6
Bob is young.
("Bob" "is" "young" "+")
triple7
Fiona is big.
("Fiona" "is" "big" "+")
triple8
((triple12 triple10) -> (rule1 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
((triple12 ((triple11 triple13) -> (rule2 % int2))) -> (rule1 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is furry.
("Fiona" "is" "furry" "+")
triple10
((triple11 triple13) -> (rule2 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
triple11
Fiona is not blue.
("Fiona" "is" "blue" "-")
triple9
Fiona is rough.
("Fiona" "is" "rough" "+")
triple12
Fiona is white.
("Fiona" "is" "white" "+")
triple13
Fiona is young.
("Fiona" "is" "young" "+")
triple14