Theory TypeIds
section ‹TypeIds›
theory TypeIds imports Main begin
text ‹\label{java_typeid_definitions}
This theory contains the program specific names of abstract and concrete classes and
interfaces. It has to
be generated for each program we want to verify.
The following classes are an example taken from the program given in Sect.
\ref{example-program}.
They are complemented by the classes that are known to exist in each Java program
implicitly,
namely \texttt{Object}, \texttt{Exception}, \texttt{ClassCastException} and
\texttt{NullPointerException}.
The example program does not contain any abstract classes, but since we cannot
formalize datatypes without
constructors, we have to insert a dummy class which we call \texttt{Dummy}.
The datatype CTypeId must contain a constructor called \texttt{Object} because subsequent
proofs in the Subtype theory rely on it.
›