Next:  Semantics
Up:  Some Other Simple 
 Previous:  Some Other Simple 
 
In , guards were Boolean terms.  Now we introduce a separate syntactic
category of guards.  Intuitively, guards are first-order formulas with
bound variables.  It is intended that bound variables range over finite
domains, though exceptions are possible.  Here is a recursive definition:
- 
  If f is an r -ary relation name and 
 are terms, then
  f(
) is a guard.
 -  Any Boolean combination of guards is a guard.
 -  If g is a guard and U a universe name, then 
(
 v 
 U) g
 and 
(
 v 
 U) g
 are guards.
 
Call a guard closed if it has no free variables.  Extend the definition of
basic ealgebras by replacing the condition ``
 are Boolean
terms'' with the condition ``
 are closed guards'' in the
definition of the conditional rule constructor.