A semantic model of types and machine instructions for proof-carrying code | Synapse