A semantic model of program faults | Synapse