-The statement of A can already be considered a LIE because it "lacks a self-reference".

-Hence, his true statement would be: "B is not the criminal.".

[B: The criminal is D.]

-The statement of B can also be considered a LIE because it "lacks a self-reference".

-Hence, his true statement would be: "D is not the criminal".

[C: I'm not the criminal.]

-C's statement is true because it "has a self-reference" - indicated by the pronoun "I".

-If C lied, he would have admitted that he is the criminal.

-C can't lie. He is telling the truth that "he is not the criminal".

[D: B is lying.]

-The statement of D is also a LIE because it "lacks self-reference".

I think "D" IS THE CRIMINAL because:

-D stated that "B is lying". He is the only one in the group saying that others are lying. Only A and B lied - reversing their lies would reveal that their TRUE statements accuse no one and only state other people's innocence. And, C was telling the truth.

-Furthermore, if D was lying, then the statement of B would have been true - "B: The criminal is D."