Charlie is furry. Charlie is rough. Charlie is smart. All big things are smart. Big, furry things are quiet. If something is quiet and rough then it is big. If Charlie is furry and Charlie is quiet then Charlie is smart. If Charlie is rough then Charlie is blue. All blue, rough things are kind. Furry things are rough. All kind things are big.
Charlie is furry.
("Charlie" "is" "furry" "+")
Charlie is rough.
("Charlie" "is" "rough" "+")
Charlie is smart.
("Charlie" "is" "smart" "+")
All big things are smart.
((("something" "is" "big" "+")) -> ("something" "is" "smart" "+"))
Big, furry things are quiet.
((("something" "is" "big" "+") ("something" "is" "furry" "+")) -> ("something" "is" "quiet" "+"))
If something is quiet and rough then it is big.
((("something" "is" "quiet" "+") ("something" "is" "rough" "+")) -> ("something" "is" "big" "+"))
If Charlie is furry and Charlie is quiet then Charlie is smart.
((("Charlie" "is" "furry" "+") ("Charlie" "is" "quiet" "+")) -> ("Charlie" "is" "smart" "+"))
If Charlie is rough then Charlie is blue.
((("Charlie" "is" "rough" "+")) -> ("Charlie" "is" "blue" "+"))
All blue, rough things are kind.
((("something" "is" "blue" "+") ("something" "is" "rough" "+")) -> ("something" "is" "kind" "+"))
Furry things are rough.
((("something" "is" "furry" "+")) -> ("something" "is" "rough" "+"))
All kind things are big.
((("something" "is" "kind" "+")) -> ("something" "is" "big" "+"))
Charlie is furry.
True
1
proof
[(triple1)]
("Charlie" "is" "furry" "+")
triple1
Charlie is not rough.
False
1
inv-proof
[(triple2 OR ((triple1) -> rule7))]
("Charlie" "is" "rough" "-")
triple2
((triple1) -> (rule7 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Charlie is blue.
True
2
proof
[(((triple2) -> rule5) OR ((((triple1) -> rule7)) -> rule5))]
("Charlie" "is" "blue" "+")
((triple2) -> (rule5 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
((((triple1) -> (rule7 % int2))) -> (rule5 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Charlie is not blue.
False
2
inv-proof
[(((triple2) -> rule5) OR ((((triple1) -> rule7)) -> rule5))]
("Charlie" "is" "blue" "-")
((triple2) -> (rule5 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
((((triple1) -> (rule7 % int2))) -> (rule5 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Charlie is kind.
True
4
proof
[(((((triple2) -> rule5) triple2) -> rule6) OR ((((triple2) -> rule5) ((triple1) -> rule7)) -> rule6) OR ((((((triple1) -> rule7)) -> rule5) triple2) -> rule6) OR ((((((triple1) -> rule7)) -> rule5) ((triple1) -> rule7)) -> rule6))]
("Charlie" "is" "kind" "+")
((((triple2) -> (rule5 % int2)) triple2) -> (rule6 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
((((triple2) -> (rule5 % int3)) ((triple1) -> (rule7 % int2))) -> (rule6 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Charlie is blue.
("Charlie" "is" "blue" "+")
int3
((((((triple1) -> (rule7 % int3))) -> (rule5 % int2)) triple2) -> (rule6 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
((((((triple1) -> (rule7 % int3))) -> (rule5 % int2)) ((triple1) -> (rule7 % int3))) -> (rule6 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
Charlie is not kind.
False
4
inv-proof
[(((((triple2) -> rule5) triple2) -> rule6) OR ((((triple2) -> rule5) ((triple1) -> rule7)) -> rule6) OR ((((((triple1) -> rule7)) -> rule5) triple2) -> rule6) OR ((((((triple1) -> rule7)) -> rule5) ((triple1) -> rule7)) -> rule6))]
("Charlie" "is" "kind" "-")
((((triple2) -> (rule5 % int2)) triple2) -> (rule6 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
((((triple2) -> (rule5 % int3)) ((triple1) -> (rule7 % int2))) -> (rule6 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Charlie is blue.
("Charlie" "is" "blue" "+")
int3
((((((triple1) -> (rule7 % int3))) -> (rule5 % int2)) triple2) -> (rule6 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
((((((triple1) -> (rule7 % int3))) -> (rule5 % int2)) ((triple1) -> (rule7 % int3))) -> (rule6 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
Charlie is big.
True
5
proof
[(((((((triple2) -> rule5) triple2) -> rule6)) -> rule8) OR ((((((triple2) -> rule5) ((triple1) -> rule7)) -> rule6)) -> rule8) OR ((((((((triple1) -> rule7)) -> rule5) triple2) -> rule6)) -> rule8) OR ((((((((triple1) -> rule7)) -> rule5) ((triple1) -> rule7)) -> rule6)) -> rule8))]
("Charlie" "is" "big" "+")
((((((triple2) -> (rule5 % int3)) triple2) -> (rule6 % int2))) -> (rule8 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
Charlie is blue.
("Charlie" "is" "blue" "+")
int3
((((((triple2) -> (rule5 % int4)) ((triple1) -> (rule7 % int3))) -> (rule6 % int2))) -> (rule8 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
Charlie is blue.
("Charlie" "is" "blue" "+")
int4
((((((((triple1) -> (rule7 % int4))) -> (rule5 % int3)) triple2) -> (rule6 % int2))) -> (rule8 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
Charlie is blue.
("Charlie" "is" "blue" "+")
int3
Charlie is rough.
("Charlie" "is" "rough" "+")
int4
((((((((triple1) -> (rule7 % int4))) -> (rule5 % int3)) ((triple1) -> (rule7 % int4))) -> (rule6 % int2))) -> (rule8 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
Charlie is blue.
("Charlie" "is" "blue" "+")
int3
Charlie is rough.
("Charlie" "is" "rough" "+")
int4
Charlie is not big.
False
5
inv-proof
[(((((((triple2) -> rule5) triple2) -> rule6)) -> rule8) OR ((((((triple2) -> rule5) ((triple1) -> rule7)) -> rule6)) -> rule8) OR ((((((((triple1) -> rule7)) -> rule5) triple2) -> rule6)) -> rule8) OR ((((((((triple1) -> rule7)) -> rule5) ((triple1) -> rule7)) -> rule6)) -> rule8))]
("Charlie" "is" "big" "-")
((((((triple2) -> (rule5 % int3)) triple2) -> (rule6 % int2))) -> (rule8 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
Charlie is blue.
("Charlie" "is" "blue" "+")
int3
((((((triple2) -> (rule5 % int4)) ((triple1) -> (rule7 % int3))) -> (rule6 % int2))) -> (rule8 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
Charlie is blue.
("Charlie" "is" "blue" "+")
int4
((((((((triple1) -> (rule7 % int4))) -> (rule5 % int3)) triple2) -> (rule6 % int2))) -> (rule8 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
Charlie is blue.
("Charlie" "is" "blue" "+")
int3
Charlie is rough.
("Charlie" "is" "rough" "+")
int4
((((((((triple1) -> (rule7 % int4))) -> (rule5 % int3)) ((triple1) -> (rule7 % int4))) -> (rule6 % int2))) -> (rule8 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
Charlie is blue.
("Charlie" "is" "blue" "+")
int3
Charlie is rough.
("Charlie" "is" "rough" "+")
int4
@0: Charlie is furry.[(triple1)] Charlie is rough.[(triple2 OR ((triple1) -> rule7))] Charlie is smart.[(triple3 OR ((((((((triple2) -> rule5) triple2) -> rule6)) -> rule8)) -> rule1) OR ((((((((triple2) -> rule5) ((triple1) -> rule7)) -> rule6)) -> rule8)) -> rule1) OR ((((((((((triple1) -> rule7)) -> rule5) triple2) -> rule6)) -> rule8)) -> rule1) OR ((triple1 ((((((((triple2) -> rule5) triple2) -> rule6)) -> rule8) triple1) -> rule2)) -> rule4) OR ((((((((((triple1) -> rule7)) -> rule5) ((triple1) -> rule7)) -> rule6)) -> rule8)) -> rule1) OR ((triple1 ((((((((triple2) -> rule5) ((triple1) -> rule7)) -> rule6)) -> rule8) triple1) -> rule2)) -> rule4) OR ((triple1 ((((((((((triple1) -> rule7)) -> rule5) triple2) -> rule6)) -> rule8) triple1) -> rule2)) -> rule4) OR ((triple1 ((((((((((triple1) -> rule7)) -> rule5) ((triple1) -> rule7)) -> rule6)) -> rule8) triple1) -> rule2)) -> rule4))] @1: Charlie is blue.[(((triple2) -> rule5) OR ((((triple1) -> rule7)) -> rule5))] @2: Charlie is kind.[(((((triple2) -> rule5) triple2) -> rule6) OR ((((triple2) -> rule5) ((triple1) -> rule7)) -> rule6) OR ((((((triple1) -> rule7)) -> rule5) triple2) -> rule6) OR ((((((triple1) -> rule7)) -> rule5) ((triple1) -> rule7)) -> rule6))] @3: Charlie is big.[(((((((triple2) -> rule5) triple2) -> rule6)) -> rule8) OR ((((((triple2) -> rule5) ((triple1) -> rule7)) -> rule6)) -> rule8) OR ((((((((triple1) -> rule7)) -> rule5) triple2) -> rule6)) -> rule8) OR ((((((((triple1) -> rule7)) -> rule5) ((triple1) -> rule7)) -> rule6)) -> rule8))] @4: Charlie is quiet.[(((((((((triple2) -> rule5) triple2) -> rule6)) -> rule8) triple1) -> rule2) OR ((((((((triple2) -> rule5) ((triple1) -> rule7)) -> rule6)) -> rule8) triple1) -> rule2) OR ((((((((((triple1) -> rule7)) -> rule5) triple2) -> rule6)) -> rule8) triple1) -> rule2) OR ((((((((((triple1) -> rule7)) -> rule5) ((triple1) -> rule7)) -> rule6)) -> rule8) triple1) -> rule2))]
Charlie is furry.
("Charlie" "is" "furry" "+")
triple1
Charlie is rough.
("Charlie" "is" "rough" "+")
triple2
((triple1) -> (rule7 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Charlie is smart.
("Charlie" "is" "smart" "+")
triple3
((((((((triple2) -> (rule5 % int4)) triple2) -> (rule6 % int3))) -> (rule8 % int2))) -> (rule1 % int1))
Charlie is smart.
("Charlie" "is" "smart" "+")
int1
Charlie is big.
("Charlie" "is" "big" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
Charlie is blue.
("Charlie" "is" "blue" "+")
int4
((((((((triple2) -> (rule5 % int5)) ((triple1) -> (rule7 % int4))) -> (rule6 % int3))) -> (rule8 % int2))) -> (rule1 % int1))
Charlie is smart.
("Charlie" "is" "smart" "+")
int1
Charlie is big.
("Charlie" "is" "big" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
Charlie is rough.
("Charlie" "is" "rough" "+")
int4
Charlie is blue.
("Charlie" "is" "blue" "+")
int5
((((((((((triple1) -> (rule7 % int5))) -> (rule5 % int4)) triple2) -> (rule6 % int3))) -> (rule8 % int2))) -> (rule1 % int1))
Charlie is smart.
("Charlie" "is" "smart" "+")
int1
Charlie is big.
("Charlie" "is" "big" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
Charlie is blue.
("Charlie" "is" "blue" "+")
int4
Charlie is rough.
("Charlie" "is" "rough" "+")
int5
((triple1 ((((((((triple2) -> (rule5 % int5)) triple2) -> (rule6 % int4))) -> (rule8 % int3)) triple1) -> (rule2 % int2))) -> (rule4 % int1))
Charlie is smart.
("Charlie" "is" "smart" "+")
int1
Charlie is quiet.
("Charlie" "is" "quiet" "+")
int2
Charlie is big.
("Charlie" "is" "big" "+")
int3
Charlie is kind.
("Charlie" "is" "kind" "+")
int4
Charlie is blue.
("Charlie" "is" "blue" "+")
int5
((((((((((triple1) -> (rule7 % int5))) -> (rule5 % int4)) ((triple1) -> (rule7 % int5))) -> (rule6 % int3))) -> (rule8 % int2))) -> (rule1 % int1))
Charlie is smart.
("Charlie" "is" "smart" "+")
int1
Charlie is big.
("Charlie" "is" "big" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
Charlie is blue.
("Charlie" "is" "blue" "+")
int4
Charlie is rough.
("Charlie" "is" "rough" "+")
int5
((triple1 ((((((((triple2) -> (rule5 % int6)) ((triple1) -> (rule7 % int5))) -> (rule6 % int4))) -> (rule8 % int3)) triple1) -> (rule2 % int2))) -> (rule4 % int1))
Charlie is smart.
("Charlie" "is" "smart" "+")
int1
Charlie is quiet.
("Charlie" "is" "quiet" "+")
int2
Charlie is big.
("Charlie" "is" "big" "+")
int3
Charlie is kind.
("Charlie" "is" "kind" "+")
int4
Charlie is rough.
("Charlie" "is" "rough" "+")
int5
Charlie is blue.
("Charlie" "is" "blue" "+")
int6
((triple1 ((((((((((triple1) -> (rule7 % int6))) -> (rule5 % int5)) triple2) -> (rule6 % int4))) -> (rule8 % int3)) triple1) -> (rule2 % int2))) -> (rule4 % int1))
Charlie is smart.
("Charlie" "is" "smart" "+")
int1
Charlie is quiet.
("Charlie" "is" "quiet" "+")
int2
Charlie is big.
("Charlie" "is" "big" "+")
int3
Charlie is kind.
("Charlie" "is" "kind" "+")
int4
Charlie is blue.
("Charlie" "is" "blue" "+")
int5
Charlie is rough.
("Charlie" "is" "rough" "+")
int6
((triple1 ((((((((((triple1) -> (rule7 % int6))) -> (rule5 % int5)) ((triple1) -> (rule7 % int6))) -> (rule6 % int4))) -> (rule8 % int3)) triple1) -> (rule2 % int2))) -> (rule4 % int1))
Charlie is smart.
("Charlie" "is" "smart" "+")
int1
Charlie is quiet.
("Charlie" "is" "quiet" "+")
int2
Charlie is big.
("Charlie" "is" "big" "+")
int3
Charlie is kind.
("Charlie" "is" "kind" "+")
int4
Charlie is blue.
("Charlie" "is" "blue" "+")
int5
Charlie is rough.
("Charlie" "is" "rough" "+")
int6
Charlie is blue.
("Charlie" "is" "blue" "+")
((triple2) -> (rule5 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
((((triple1) -> (rule7 % int2))) -> (rule5 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
((((triple2) -> (rule5 % int2)) triple2) -> (rule6 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
((((triple2) -> (rule5 % int3)) ((triple1) -> (rule7 % int2))) -> (rule6 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Charlie is blue.
("Charlie" "is" "blue" "+")
int3
((((((triple1) -> (rule7 % int3))) -> (rule5 % int2)) triple2) -> (rule6 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
((((((triple1) -> (rule7 % int3))) -> (rule5 % int2)) ((triple1) -> (rule7 % int3))) -> (rule6 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
Charlie is big.
("Charlie" "is" "big" "+")
((((((triple2) -> (rule5 % int3)) triple2) -> (rule6 % int2))) -> (rule8 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
Charlie is blue.
("Charlie" "is" "blue" "+")
int3
((((((triple2) -> (rule5 % int4)) ((triple1) -> (rule7 % int3))) -> (rule6 % int2))) -> (rule8 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
int3
Charlie is blue.
("Charlie" "is" "blue" "+")
int4
((((((((triple1) -> (rule7 % int4))) -> (rule5 % int3)) triple2) -> (rule6 % int2))) -> (rule8 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
Charlie is blue.
("Charlie" "is" "blue" "+")
int3
Charlie is rough.
("Charlie" "is" "rough" "+")
int4
((((((((triple1) -> (rule7 % int4))) -> (rule5 % int3)) ((triple1) -> (rule7 % int4))) -> (rule6 % int2))) -> (rule8 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is kind.
("Charlie" "is" "kind" "+")
int2
Charlie is blue.
("Charlie" "is" "blue" "+")
int3
Charlie is rough.
("Charlie" "is" "rough" "+")
int4
Charlie is quiet.
("Charlie" "is" "quiet" "+")
((((((((triple2) -> (rule5 % int4)) triple2) -> (rule6 % int3))) -> (rule8 % int2)) triple1) -> (rule2 % int1))
Charlie is quiet.
("Charlie" "is" "quiet" "+")
int1
Charlie is big.
("Charlie" "is" "big" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
Charlie is blue.
("Charlie" "is" "blue" "+")
int4
((((((((triple2) -> (rule5 % int5)) ((triple1) -> (rule7 % int4))) -> (rule6 % int3))) -> (rule8 % int2)) triple1) -> (rule2 % int1))
Charlie is quiet.
("Charlie" "is" "quiet" "+")
int1
Charlie is big.
("Charlie" "is" "big" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
Charlie is rough.
("Charlie" "is" "rough" "+")
int4
Charlie is blue.
("Charlie" "is" "blue" "+")
int5
((((((((((triple1) -> (rule7 % int5))) -> (rule5 % int4)) triple2) -> (rule6 % int3))) -> (rule8 % int2)) triple1) -> (rule2 % int1))
Charlie is quiet.
("Charlie" "is" "quiet" "+")
int1
Charlie is big.
("Charlie" "is" "big" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
Charlie is blue.
("Charlie" "is" "blue" "+")
int4
Charlie is rough.
("Charlie" "is" "rough" "+")
int5
((((((((((triple1) -> (rule7 % int5))) -> (rule5 % int4)) ((triple1) -> (rule7 % int5))) -> (rule6 % int3))) -> (rule8 % int2)) triple1) -> (rule2 % int1))
Charlie is quiet.
("Charlie" "is" "quiet" "+")
int1
Charlie is big.
("Charlie" "is" "big" "+")
int2
Charlie is kind.
("Charlie" "is" "kind" "+")
int3
Charlie is blue.
("Charlie" "is" "blue" "+")
int4
Charlie is rough.
("Charlie" "is" "rough" "+")
int5