[Prev][Next][Index]

Re: LSL boolean combinations involving undefined terms



For the record, I agree completely with Patrice Chalin's response to Gary Leaven's
question.  

The semantics of LSL is based on the standard semantics of first-order logic.  Every
structure with an appropriate signature defines some value for every term in an LSL
expression, although the value may not be specified by the axioms of a particular LSL
trait.  Hence, strictly speaking, while there may be such a thing as an "unspecified
value", there is no such thing as an "undefined term".  Furthermore, since every term
has some value in every model, operational notions like "order of evaluation" play no
role in the semantics of first-order logic or LSL.

The proof obligation for "converts isPositive" is trivial to discharge because the trait
contains an explicit definition of isPositive, that is, a definition of the form
     isPositive(x) == ...
where ... does not contain any (direct or recursive) reference to isPositive.

Reference(s):