>>17
Your definition doesn't really make sense to me:
(((a & b & c) | b | c) == a)
Since a, b, and c are integers, and | is a logical operator,
(((a & b & c) | b | c)
will always evaluate to TRUE unless a, b, and c are all 0.
here is what tD() would look like in C:
bool tD( int a, int b, int c )
{
return !( (a == b) || (b == c) || (a == c) )
}