Bob is furry. Bob is green. Bob is not nice. Bob is red. Bob is not smart. Bob is young. Charlie is green. Charlie is kind. Charlie is nice. Charlie is young. If Charlie is not furry then Charlie is not nice. If Bob is furry then Bob is not smart. All nice things are smart. If Bob is young then Bob is not kind. All green, red things are young. If something is kind and not smart then it is not red. If something is kind and not nice then it is red. All smart things are red.
Bob is furry.
("Bob" "is" "furry" "+")
Bob is green.
("Bob" "is" "green" "+")
Bob is not nice.
("Bob" "is" "nice" "-")
Bob is red.
("Bob" "is" "red" "+")
Bob is not smart.
("Bob" "is" "smart" "-")
Bob is young.
("Bob" "is" "young" "+")
Charlie is green.
("Charlie" "is" "green" "+")
Charlie is kind.
("Charlie" "is" "kind" "+")
Charlie is nice.
("Charlie" "is" "nice" "+")
Charlie is young.
("Charlie" "is" "young" "+")
If Charlie is not furry then Charlie is not nice.
((("Charlie" "is" "furry" "~")) -> ("Charlie" "is" "nice" "-"))
If Bob is furry then Bob is not smart.
((("Bob" "is" "furry" "+")) -> ("Bob" "is" "smart" "-"))
All nice things are smart.
((("something" "is" "nice" "+")) -> ("something" "is" "smart" "+"))
If Bob is young then Bob is not kind.
((("Bob" "is" "young" "+")) -> ("Bob" "is" "kind" "-"))
All green, red things are young.
((("something" "is" "green" "+") ("something" "is" "red" "+")) -> ("something" "is" "young" "+"))
If something is kind and not smart then it is not red.
((("something" "is" "kind" "+") ("something" "is" "smart" "~")) -> ("something" "is" "red" "-"))
If something is kind and not nice then it is red.
((("something" "is" "kind" "+") ("something" "is" "nice" "~")) -> ("something" "is" "red" "+"))
All smart things are red.
((("something" "is" "smart" "+")) -> ("something" "is" "red" "+"))
Charlie is kind.
True
1
proof
[(triple8)]
("Charlie" "is" "kind" "+")
triple8
Charlie is not young.
False
1
inv-proof
[(triple10 OR ((triple7 ((((triple9) -> rule3)) -> rule8)) -> rule5))]
("Charlie" "is" "young" "-")
triple10
((triple7 ((((triple9) -> (rule3 % int3))) -> (rule8 % int2))) -> (rule5 % int1))
Charlie is young.
("Charlie" "is" "young" "+")
int1
Charlie is red.
("Charlie" "is" "red" "+")
int2
Charlie is smart.
("Charlie" "is" "smart" "+")
int3
Charlie is smart.
True
2
proof
[(((triple9) -> rule3))]
("Charlie" "is" "smart" "+")
((triple9) -> (rule3 % int1))
Charlie is smart.
("Charlie" "is" "smart" "+")
int1
Charlie is not smart.
False
2
inv-proof
[(((triple9) -> rule3))]
("Charlie" "is" "smart" "-")
((triple9) -> (rule3 % int1))
Charlie is smart.
("Charlie" "is" "smart" "+")
int1
@0: Bob is furry.[(triple1)] Bob is green.[(triple2)] Bob is not nice.[(triple3)] Bob is not smart.[(triple5 OR ((triple1) -> rule2))] Bob is red.[(triple4)] Bob is young.[(triple6 OR ((triple2 triple4) -> rule5))] Charlie is green.[(triple7)] Charlie is kind.[(triple8)] Charlie is nice.[(triple9)] Charlie is young.[(triple10 OR ((triple7 ((((triple9) -> rule3)) -> rule8)) -> rule5))] @1: Bob is not kind.[(((triple6) -> rule4) OR ((((triple2 triple4) -> rule5)) -> rule4))] Charlie is smart.[(((triple9) -> rule3))] @2: Charlie is red.[(((((triple9) -> rule3)) -> rule8))]
Bob is furry.
("Bob" "is" "furry" "+")
triple1
Bob is green.
("Bob" "is" "green" "+")
triple2
Bob is not nice.
("Bob" "is" "nice" "-")
triple3
Bob is not smart.
("Bob" "is" "smart" "-")
triple5
((triple1) -> (rule2 % int1))
Bob is not smart.
("Bob" "is" "smart" "-")
int1
Bob is red.
("Bob" "is" "red" "+")
triple4
Bob is young.
("Bob" "is" "young" "+")
triple6
((triple2 triple4) -> (rule5 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Charlie is green.
("Charlie" "is" "green" "+")
triple7
Charlie is kind.
("Charlie" "is" "kind" "+")
triple8
Charlie is nice.
("Charlie" "is" "nice" "+")
triple9
Charlie is young.
("Charlie" "is" "young" "+")
triple10
((triple7 ((((triple9) -> (rule3 % int3))) -> (rule8 % int2))) -> (rule5 % int1))
Charlie is young.
("Charlie" "is" "young" "+")
int1
Charlie is red.
("Charlie" "is" "red" "+")
int2
Charlie is smart.
("Charlie" "is" "smart" "+")
int3
Bob is not kind.
("Bob" "is" "kind" "-")
((triple6) -> (rule4 % int1))
Bob is not kind.
("Bob" "is" "kind" "-")
int1
((((triple2 triple4) -> (rule5 % int2))) -> (rule4 % int1))
Bob is not kind.
("Bob" "is" "kind" "-")
int1
Bob is young.
("Bob" "is" "young" "+")
int2
Charlie is smart.
("Charlie" "is" "smart" "+")
((triple9) -> (rule3 % int1))
Charlie is smart.
("Charlie" "is" "smart" "+")
int1
Charlie is red.
("Charlie" "is" "red" "+")
((((triple9) -> (rule3 % int2))) -> (rule8 % int1))
Charlie is red.
("Charlie" "is" "red" "+")
int1
Charlie is smart.
("Charlie" "is" "smart" "+")
int2