Earlier quoted context omitted.
The latter ones can be all incorrect for all you care Good point. Maybe we can call this the TSP (trusted specification base)? In my experience the TSP is subtle and contains most of the intermediate definitions too. A few years back I had a very large Isabelle/HOL proof invalidated because of some small mistake in an obscure part of the specification that I never though could be important. It required a redesign fro…
In your second point you are referring to fact that is needed in a calling context when proving a large spec, that means it is a top level specification, and therefor trusted. You don't need to prove an implementation only touches the allocated array to verify it as a sorting algorithm, its because there is some other part of the top level specification that requires that. For example I recently verified a JIT compil…
calling context
In compositional verification, you generally want to prove as much as
possible about the piece of code at hand -- irrespective of calling
context. spec very similar to this
Yes, I was using something similar. Note that this is right only in a
purely sequential setting ... I recently verified a JIT compiler,
That sounds exciting. That must
have been a major piece of work. Anything published yet?With JIT compilers the issue of self-modification becomes pertinent. I know that Magnus Myreen has verified a small JIT compiler a few years back but I don't remember exactly what theorem he proves. IIRC he was using a tailor-made Hoare logic for x86 code that basically moved some of the complexity of the spec into the logic.