\subsection{Expressions}
%%%%%%%% \mpi_empty_in %%%%%%%%
\subsubsection{\textbackslash mpi\_empty\_in(int source)}
A boolean expression denotes a predicate that the receive buffer of
the process for receiving messages from the given source is empty.
The argument specifies the source.

%%%%%%%% \mpi_empty_out %%%%%%%%
\subsubsection{\textbackslash mpi\_empty\_out(int dest)}
A boolean expression denotes a predicate that the send buffer of the
process for sending messages to the given destination is empty.  The
argument specifies the destination.

%%%%%%%% \mpi_size %%%%%%%%
\subsubsection{\textbackslash mpi\_size(int count, MPI\_Datatype datatype)}
A integer numeric expression denotes the total size of a sequence of
memory units. The first argument specifies the number of memory
units. The second argument specifies the data type of a memory unit.

%%%%%%%% \mpi_region %%%%%%%%
\subsubsection{\textbackslash mpi\_region(void * buf, int count, MPI\_Datatype datatype)}
An expression denotes a memory region. The start address of the memory
region is given by the first argument. The second argument specifies
the number of sequential memory units which are composed of the memory
region. The third argument specifies the data type of a memory unit.

%%%%%%%% \mpi_equals %%%%%%%%
\subsubsection{\textbackslash mpi\_equals(void * buf0, int count, MPI\_Datatype datatype, void * buf1)}
A boolean expression returns true if and only if the given two
sequence of memory units are equivalent. The first argument is the
start address for one sequence of memory units. The second argument
specifies the number of memory units for both sequences. The third
argument specifies the data type of a memory unit. The fourth argument
is the start address of the other sequence.

%%%%%%%% remote access , or is it a operator ? %%%%%%%%
\subsubsection{Remote access expression} 
A remote access expression is an expression which will be evaluated on
the context of a process with the given rank. A remote access
expression should have such a form:
\begin{equation}
 \textbf{expression \# rank}
\end{equation}
The semantics of evaluating a remote access expression in an MPI
environment is the evaluation happens when it is reached, but due to
the concurrency of an MPI environment, the target context where the
expression will be evaluated on is non-deterministic and only depends
on the status of that process. The purpose of giving such an
expression is to express some global collective properties of MPI
programs. The evaluation will be determinitic only if it is used by
some collective constructors (see. \ref{} ).







