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