Knowledge-based program are programs with explicit tests for knowledge. The
y have been used successfully in a number of applications. Sanders has poin
ted out what seem to be a counterintuitive property of knowledge-based prog
rams. Roughly speaking, they do not satisfy a certain monotonicity property
, while standard programs (ones without tests for knowledge) do. It is show
n that there are two ways of defining the monotonicity property, which agre
e for standard programs. Knowledge-based programs satisfy the first, but do
not satisfy the second. It is further argued by example that the fact that
they do not satisfy the second is actually a feature, not a problem. Moreo
ver, once we allow the more general class of knowledge-based specifications
, standard programs do not satisfy the monotonicity property either.