We present the first formal specification of the SSA form, an intermediate code representation language used in most modern compilers such as GCC or Intel CC, and of its conversion process from imperative languages. More specifically, we provide (1) a denotational semantics of the SSA, the Static Single Assignment form, (2) a collecting denotational semantics for a Turing-complete imperative language Imp, (3) a non-standard denotational semantics specifying the conversion of Imp to SSA and, most importantly, (4) the proof of the consistency of this transformation, showing that the structure of the memory states manipulated by imperative constructs is preserved in compilers ’ middle ends that use the SSA form as control-flow data representat...