A method for program verification comprises receiving a program unit,
determining data types used by the program unit, creating a first mapping
for the data types and using the first mapping to represent type
information in verification information for the program unit. The
verification information comprises the data type of entries on an operand
stack or in a register file during simulated execution of the program
unit.