Take the 2-minute tour ×

In his article on Virtual Environments (a part of his VFSM specification method) Ferdinand Wagner describes some new ways of thinking about Boolean Algebra as a software design tool. On page 4 of this PDF article, when describing operators in his system he says this:

Control statements need Boolean values. Hence, the names must be used to produce Boolean results. To achieve this we want to combine them together using Boolean operators. There is nothing wrong with usage of AND and OR operators with their Boolean meaning. For instance, we may write:


to express the control situation: digital input is on or analog input is larger than 8.1 and timer is over.

We cannot use the NOT operator, because the result of the Boolean negation makes sense only for true Boolean values. The result of, for instance,


would be ambiguous.

If "AI_LARGER_THAN_8.1" is acceptable, why would he consider "NOT (AI_LARGER_THAN_8.1)" to be ambiguous?

share|improve this question
NOT (AI_LARGER_THAN_8.1) has two potential results: one lesser and one equal??! I don't know... –  IMHO Feb 18 '11 at 20:20

1 Answer 1

up vote 6 down vote accepted

There's an error in this paper. Wagner claims this is boolean algebra, but also includes 'UNKNOWN' as a value along with TRUE and FALSE. Therefore, this is not actually boolean algebra but a trinary system of his own creation.

Notably, he does not define NOT with respect to this trinary system. This is a classic gotcha in trinary systems. Unlike a binary system, NOT TRUE does not necessarily equal FALSE, nor does NOT FALSE necessarily equal TRUE.

share|improve this answer
In a trinary system, NOT TRUE yields FileNotFound... :P thedailywtf.com/Articles/What_Is_Truth_0x3f_.aspx –  FrustratedWithFormsDesigner Feb 18 '11 at 20:47
Thanks. I was coming to the same conclusion, but wanted a second opinion. –  oosterwal Feb 19 '11 at 1:31

Your Answer


