Question

For a small digital system, I am given the requirement that "The doors should not lock (a = doors lock) when the driver has got out of the car (b = driver in car) but the keys are still inside (c = keys inside) the engine, even though the driver has closed the door lock lever. (d = lock lever closed). NOTE: if the driver is in the car (b) and requests the door to be locked (d), then the doors must lock (a) ".

I thought this could be taken in 2 parts (where the overall expression is the 1. first set of requirements and 2. the "NOTE" part, so 1 + 2?)

For the first part, I thought the boolean expression would look like this:

a' = b' AND c AND d. 
a' = b'cd.

Then I tried taking the complement of both sides: (a')' = (b'cd)'

...and using DeMorgan's law... a = (b'c)' + d' ...and then using DeMorgan's law again... a = b + c' + d'.

But wouldn't this mean that "The doors should lock when the driver is in the car OR the keys are not in the car OR the door lock lever is not engaged." This doesn't make sense at all.

In the second part (NOTE:), I got a = bd. So, is the overall expression supposed to be an addition of this with the incorrect-sounding part from before? Then I'd have: a = b + c' + d' + bd. By a tricky distributive property given in class, I think I can simplify the c' + bd component into (c' + b)(c' + d). So then I'd have a = (c' + b)(c' + d) + b + d'.

This is getting confusing; can I simplify if even more? (well, actually, it's probably not correct in the first place!) Where did I go wrong, and where do I stop?

Was it helpful?

Solution

I think you have a problem with your initial assumptions and then everything falls apart after that. What you have is an incomplete truth table:

a  b  c  d
?  0  0  0
?  0  0  1
?  0  1  0
0  0  1  1  <<< - this is the only data you have
?  1  0  0
?  1  0  1
?  1  1  0
?  1  1  1

Actually, if you read the problem statement carefully, it looks like d is really a "don't care" (since it says "even if ..."), so you may actually have two entries in your truth table:

a  b  c  d
?  0  0  0
?  0  0  1
0  0  1  0
0  0  1  1
?  1  0  0
?  1  0  1
?  1  1  0
?  1  1  1

A further possible problem is with your interpretation of a. a doesn't mean "the doors should lock", it means the "the doors can be locked", since you are specifying a case where it should not be possible to lock the doors.

If we assume then that a is TRUE for all the unknown cases above (i.e. the doors can be locked in all other cases) then we have:

a  b  c  d
1  0  0  0
1  0  0  1
0  0  1  0
0  0  1  1
1  1  0  0
1  1  0  1
1  1  1  0
1  1  1  1

which can be expressed as:

a = (b' AND c') OR b

i.e. the doors can only ever be locked if either: (i) the driver is outside the car and the keys are not inside or (ii) the driver is inside the car.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top