Charlie is nice. Charlie is smart. Charlie is young. All smart things are kind. If something is round then it is young. Kind, blue things are round. If something is kind then it is blue. All red, kind things are young. If something is red then it is blue. All young, blue things are nice. All red, young things are nice.
Charlie is nice.
("Charlie" "is" "nice" "+")
Charlie is smart.
("Charlie" "is" "smart" "+")
Charlie is young.
("Charlie" "is" "young" "+")
All smart things are kind.
((("something" "is" "smart" "+")) -> ("something" "is" "kind" "+"))
If something is round then it is young.
((("something" "is" "round" "+")) -> ("something" "is" "young" "+"))
Kind, blue things are round.
((("something" "is" "kind" "+") ("something" "is" "blue" "+")) -> ("something" "is" "round" "+"))
If something is kind then it is blue.
((("something" "is" "kind" "+")) -> ("something" "is" "blue" "+"))
All red, kind things are young.
((("something" "is" "red" "+") ("something" "is" "kind" "+")) -> ("something" "is" "young" "+"))
If something is red then it is blue.
((("something" "is" "red" "+")) -> ("something" "is" "blue" "+"))
All young, blue things are nice.
((("something" "is" "young" "+") ("something" "is" "blue" "+")) -> ("something" "is" "nice" "+"))
All red, young things are nice.
((("something" "is" "red" "+") ("something" "is" "young" "+")) -> ("something" "is" "nice" "+"))
Charlie is nice.
True
1
proof
[(triple1 OR ((triple3 ((((triple2) -> rule1)) -> rule4)) -> rule7) OR ((((((((triple2) -> rule1) ((((triple2) -> rule1)) -> rule4)) -> rule3)) -> rule2) ((((triple2) -> rule1)) -> rule4)) -> rule7))]
("Charlie" "is" "nice" "+")
triple1
((triple3 ((((triple2) -> (rule1 % int3))) -> (rule4 % int2))) -> (rule7 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
((((((((triple2) -> (rule1 % int5)) ((((triple2) -> (rule1 % int5))) -> (rule4 % int4))) -> (rule3 % int3))) -> (rule2 % int2)) ((((triple2) -> (rule1 % int5))) -> (rule4 % int4))) -> (rule7 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is young.
("Charlie" "is" "young" "+")
int2
Charlie is round.
("Charlie" "is" "round" "+")
int3
Charlie is blue.
("Charlie" "is" "blue" "+")
int4
Charlie is kind.
("Charlie" "is" "kind" "+")
int5
Charlie is not smart.
False
1
inv-proof
[(triple2)]
("Charlie" "is" "smart" "-")
triple2
Charlie is kind.
True
2
proof
[(((triple2) -> rule1))]
("Charlie" "is" "kind" "+")
((triple2) -> (rule1 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is not kind.
False
2
inv-proof
[(((triple2) -> rule1))]
("Charlie" "is" "kind" "-")
((triple2) -> (rule1 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is blue.
True
3
proof
[(((((triple2) -> rule1)) -> rule4))]
("Charlie" "is" "blue" "+")
((((triple2) -> (rule1 % int2))) -> (rule4 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
Charlie is not blue.
False
3
inv-proof
[(((((triple2) -> rule1)) -> rule4))]
("Charlie" "is" "blue" "-")
((((triple2) -> (rule1 % int2))) -> (rule4 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
Charlie is round.
True
6
proof
[(((((triple2) -> rule1) ((((triple2) -> rule1)) -> rule4)) -> rule3))]
("Charlie" "is" "round" "+")
((((triple2) -> (rule1 % int3)) ((((triple2) -> (rule1 % int3))) -> (rule4 % int2))) -> (rule3 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
Charlie is not round.
False
6
inv-proof
[(((((triple2) -> rule1) ((((triple2) -> rule1)) -> rule4)) -> rule3))]
("Charlie" "is" "round" "-")
((((triple2) -> (rule1 % int3)) ((((triple2) -> (rule1 % int3))) -> (rule4 % int2))) -> (rule3 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
@0: Charlie is nice.[(triple1 OR ((triple3 ((((triple2) -> rule1)) -> rule4)) -> rule7) OR ((((((((triple2) -> rule1) ((((triple2) -> rule1)) -> rule4)) -> rule3)) -> rule2) ((((triple2) -> rule1)) -> rule4)) -> rule7))] Charlie is smart.[(triple2)] Charlie is young.[(triple3 OR ((((((triple2) -> rule1) ((((triple2) -> rule1)) -> rule4)) -> rule3)) -> rule2))] @1: Charlie is kind.[(((triple2) -> rule1))] @2: Charlie is blue.[(((((triple2) -> rule1)) -> rule4))] @3: Charlie is round.[(((((triple2) -> rule1) ((((triple2) -> rule1)) -> rule4)) -> rule3))]
Charlie is nice.
("Charlie" "is" "nice" "+")
triple1
((triple3 ((((triple2) -> (rule1 % int3))) -> (rule4 % int2))) -> (rule7 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
((((((((triple2) -> (rule1 % int5)) ((((triple2) -> (rule1 % int5))) -> (rule4 % int4))) -> (rule3 % int3))) -> (rule2 % int2)) ((((triple2) -> (rule1 % int5))) -> (rule4 % int4))) -> (rule7 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is young.
("Charlie" "is" "young" "+")
int2
Charlie is round.
("Charlie" "is" "round" "+")
int3
Charlie is blue.
("Charlie" "is" "blue" "+")
int4
Charlie is kind.
("Charlie" "is" "kind" "+")
int5
Charlie is smart.
("Charlie" "is" "smart" "+")
triple2
Charlie is young.
("Charlie" "is" "young" "+")
triple3
((((((triple2) -> (rule1 % int4)) ((((triple2) -> (rule1 % int4))) -> (rule4 % int3))) -> (rule3 % int2))) -> (rule2 % int1))
Charlie is young.
("Charlie" "is" "young" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is blue.
("Charlie" "is" "blue" "+")
int3
Charlie is kind.
("Charlie" "is" "kind" "+")
int4
Charlie is kind.
("Charlie" "is" "kind" "+")
((triple2) -> (rule1 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
((((triple2) -> (rule1 % int2))) -> (rule4 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
Charlie is round.
("Charlie" "is" "round" "+")
((((triple2) -> (rule1 % int3)) ((((triple2) -> (rule1 % int3))) -> (rule4 % int2))) -> (rule3 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3