A XLANG/s compiler recognizes a statement in XLANG/s code to make an
assumption as to the success or failure of a specified transaction. The
assignment states of variables are tracked and changes to such states are
recorded. While processing XLANG/s code, the compiler determines whether
the assignment state of a particular correlation, operation or the like
is correct for the transaction being performed. If not, the compiler may
generate an error message. Moreover, by using declarative assumptions
such as if(succeeded(T)) or if(!succeeded(T)), definite-assignment
analysis of shared state variables may cross transactional boundaries.