I'm not exactly sure how to simplify this further.
So basically your formula is true if C is 1 & d and p are different or if C is 0 & d and p are equal. So when C
is true then d ^ p
must be true, when C
is false d ^ p
must be false. So C
and ~ (d ^ p)
must always be different. (~
is NOT, ^
is XOR, &
is AND)
So it should be equivalent to:
C ^ ( ~ (d ^ p))
which can even be written as
~ (C ^ (d ^ p))
Its truth table should be
C d p d ^ p ~(d ^ p) C ^ (~(d ^ p))
0 0 0 0 1 1
0 0 1 1 0 0
0 1 0 1 0 0
0 1 1 0 1 1
1 0 0 0 1 0
1 0 1 1 0 1
1 1 0 1 0 1
1 1 1 0 1 0
Now compare it to the truth table of your expression:
C d p d ^ p ~ (d ^ p) ~C ~C & ~(d ^ p) C & (d ^ p) ~C & ~(d ^ p) | C & (d ^ p)
0 0 0 0 1 1 1 0 1
0 0 1 1 0 1 0 0 0
0 1 0 1 0 1 0 0 0
0 1 1 0 1 1 1 0 1
1 0 0 0 1 0 0 0 0
1 0 1 1 0 0 0 1 1
1 1 0 1 0 0 0 1 1
1 1 1 0 1 0 0 0 0