On Legality Assertions in Euclid

The design of the programming language Euclid requires that a compiler for the language produce legality assertions to aid in verification of programs written in the language. This paper analyzes the legality assertions that must be produced and discusses the impact that this requirement has on the implementation of the language.