Charlie is furry. Charlie is rough. Charlie is young. If something is nice then it is young. Rough things are young. Rough things are smart. Nice, smart things are kind. If Charlie is smart then Charlie is nice. All rough, furry things are not green. All green things are nice. All furry things are nice.
Charlie is furry.
("Charlie" "is" "furry" "+")
Charlie is rough.
("Charlie" "is" "rough" "+")
Charlie is young.
("Charlie" "is" "young" "+")
If something is nice then it is young.
((("something" "is" "nice" "+")) -> ("something" "is" "young" "+"))
Rough things are young.
((("something" "is" "rough" "+")) -> ("something" "is" "young" "+"))
Rough things are smart.
((("something" "is" "rough" "+")) -> ("something" "is" "smart" "+"))
Nice, smart things are kind.
((("something" "is" "nice" "+") ("something" "is" "smart" "+")) -> ("something" "is" "kind" "+"))
If Charlie is smart then Charlie is nice.
((("Charlie" "is" "smart" "+")) -> ("Charlie" "is" "nice" "+"))
All rough, furry things are not green.
((("something" "is" "rough" "+") ("something" "is" "furry" "+")) -> ("something" "is" "green" "-"))
All green things are nice.
((("something" "is" "green" "+")) -> ("something" "is" "nice" "+"))
All furry things are nice.
((("something" "is" "furry" "+")) -> ("something" "is" "nice" "+"))
Charlie is furry.
True
1
proof
[(triple1)]
("Charlie" "is" "furry" "+")
triple1
Charlie is not rough.
False
1
inv-proof
[(triple2)]
("Charlie" "is" "rough" "-")
triple2
Charlie is not green.
True
3
proof
[(((triple2 triple1) -> rule6))]
("Charlie" "is" "green" "-")
((triple2 triple1) -> (rule6 % int1))
Charlie is not green.
("Charlie" "is" "green" "-")
int1
Charlie is green.
False
3
inv-proof
[(((triple2 triple1) -> rule6))]
("Charlie" "is" "green" "+")
((triple2 triple1) -> (rule6 % int1))
Charlie is not green.
("Charlie" "is" "green" "-")
int1
Charlie is kind.
True
5
proof
[(((((triple1) -> rule8) ((triple2) -> rule3)) -> rule4) OR ((((((triple2) -> rule3)) -> rule5) ((triple2) -> rule3)) -> rule4))]
("Charlie" "is" "kind" "+")
((((triple1) -> (rule8 % int3)) ((triple2) -> (rule3 % int2))) -> (rule4 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is smart.
("Charlie" "is" "smart" "+")
int2
Charlie is nice.
("Charlie" "is" "nice" "+")
int3
((((((triple2) -> (rule3 % int3))) -> (rule5 % int2)) ((triple2) -> (rule3 % int3))) -> (rule4 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
Charlie is smart.
("Charlie" "is" "smart" "+")
int3
Charlie is not kind.
False
5
inv-proof
[(((((triple1) -> rule8) ((triple2) -> rule3)) -> rule4) OR ((((((triple2) -> rule3)) -> rule5) ((triple2) -> rule3)) -> rule4))]
("Charlie" "is" "kind" "-")
((((triple1) -> (rule8 % int3)) ((triple2) -> (rule3 % int2))) -> (rule4 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is smart.
("Charlie" "is" "smart" "+")
int2
Charlie is nice.
("Charlie" "is" "nice" "+")
int3
((((((triple2) -> (rule3 % int3))) -> (rule5 % int2)) ((triple2) -> (rule3 % int3))) -> (rule4 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
Charlie is smart.
("Charlie" "is" "smart" "+")
int3
@0: Charlie is furry.[(triple1)] Charlie is rough.[(triple2)] Charlie is young.[(triple3 OR ((triple2) -> rule2) OR ((((triple1) -> rule8)) -> rule1) OR ((((((triple2) -> rule3)) -> rule5)) -> rule1))] @1: Charlie is nice.[(((triple1) -> rule8) OR ((((triple2) -> rule3)) -> rule5))] Charlie is not green.[(((triple2 triple1) -> rule6))] Charlie is smart.[(((triple2) -> rule3))] @2: Charlie is kind.[(((((triple1) -> rule8) ((triple2) -> rule3)) -> rule4) OR ((((((triple2) -> rule3)) -> rule5) ((triple2) -> rule3)) -> rule4))]
Charlie is furry.
("Charlie" "is" "furry" "+")
triple1
Charlie is rough.
("Charlie" "is" "rough" "+")
triple2
Charlie is young.
("Charlie" "is" "young" "+")
triple3
((triple2) -> (rule2 % int1))
Charlie is young.
("Charlie" "is" "young" "+")
int1
((((triple1) -> (rule8 % int2))) -> (rule1 % int1))
Charlie is young.
("Charlie" "is" "young" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
((((((triple2) -> (rule3 % int3))) -> (rule5 % int2))) -> (rule1 % int1))
Charlie is young.
("Charlie" "is" "young" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
Charlie is smart.
("Charlie" "is" "smart" "+")
int3
Charlie is nice.
("Charlie" "is" "nice" "+")
((triple1) -> (rule8 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
((((triple2) -> (rule3 % int2))) -> (rule5 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is smart.
("Charlie" "is" "smart" "+")
int2
Charlie is not green.
("Charlie" "is" "green" "-")
((triple2 triple1) -> (rule6 % int1))
Charlie is not green.
("Charlie" "is" "green" "-")
int1
Charlie is smart.
("Charlie" "is" "smart" "+")
((triple2) -> (rule3 % int1))
Charlie is smart.
("Charlie" "is" "smart" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
((((triple1) -> (rule8 % int3)) ((triple2) -> (rule3 % int2))) -> (rule4 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is smart.
("Charlie" "is" "smart" "+")
int2
Charlie is nice.
("Charlie" "is" "nice" "+")
int3
((((((triple2) -> (rule3 % int3))) -> (rule5 % int2)) ((triple2) -> (rule3 % int3))) -> (rule4 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
Charlie is smart.
("Charlie" "is" "smart" "+")
int3