The Answer to the Question
is below this banner.
Here's the Solution to this Question
The objective is to determine whether these specifications are consistent.
A system is consistent if there is an assignment of truth values to the variables in the expression that makes each expression true.
First express the system specifications using logical expressions.
Let p denote “the file system is locked”, q denote “new messages will be queued”, r denote “the system is functioning normally”, and s denotes “the new messages will be sent to the message buffer.”
The specifications can be written as:
If the file system is not locked, the new messages will be queued:
¬p → q
If the file system is not locked, then the system is functioning normally and conversely:
¬p ↔ r
If new messages are not queued, then they will be sent to the message buffer:
¬q → s
If the file system is not locked, then new messages will be sent to the message buffer:
¬p → s
New messages will not be sent to the message buffer:
The translations of the specifications are:
(1) ¬p → q
(2) ¬p ↔ r
(3) ¬q → s
(4) ¬p → s
To get consistency, then take r false in order that ¬r be true.
This requires that both p and q be true, by the two conditional statements that have r as their consequence.
The first conditional statement ¬p → q is of the form F?T, which is true.
Finally, the ¬p → s can be satisfied by taking s to be false.
Thus this set of specifications is consistent.
The following truth value assignment makes all these expressions true:
The table below shows the consistency of the system:
Hence, these specifications are consistent.