阅读下列材料,回答问题。 A、B、C、D、E、F、G、H八个嫌疑犯的供词如下: A:C是主犯。 B:D是主犯。 C:我是主犯。 D:我不是主犯。 E:C不是主犯。 F:D是主犯。 G:我和C都不是主犯。 H:D和A之中有主犯。 事后证实,八人中只有三人说真话,其中包括H。 问题:说真话的是谁?谁是主犯?并写出推理过程。
A和C、B和F的供词是等值命题,A、C与E的供词是矛盾命题,B、F与D的供词也是矛盾命题,根据矛盾命题必有一真、必有一假的性质,他们六人中至少有二人说真话,根据已知条件只有三人说真话,其中包括H,可推知两组矛盾供词中只能有二人说真话。可推知另两个说真话的人是E和D,即:“C不是主犯”和“D不是主犯”为真。据说真话的H的供词:“D和A之中有主犯”和“D不是主犯”,可推知“A是主犯”;据说假话的G的供词:“我和C都不是主犯”(“G和C中有主犯”为真)和“C不是主犯”,可推知“G是主犯”。结论:D、E和H说真话,A和G是主犯。