One of the (many) reasons people feel that proving code is unacceptable
is that every change requires a proof check. This is certainly the case.
Of course, code that implements known mathematical functions would
have far fewer changes as the specifications would not change.

But, then, every change to a code base SHOULD require a code review.
Part of that review would be to check that the change is 'sane' (e.g.
passes a proof check against specifications).

Since code development is a continuous process, Peter O'Hearn has
suggested that proof technology should also be continuous. His paper
"Continuous Reasoning: Scaling the Impact of Formal Methods"
(LICS 18, ACM, ISBN 978-1-4503-5583) talks about this idea and
gives examples from Facebook. They have a tool, called "Infer" that
is run on code patches and generates comments (likely proof obligations
but I don't know for sure) that would be discussed during code review.

The current design for proving Axiom sane includes a compiler stage
that does proof checking. Failing proofs would generate proof obligations
as "error messages".

Peter's paper is worth a read.

Tim
_______________________________________________
Axiom-developer mailing list
Axiom-developer@nongnu.org
https://lists.nongnu.org/mailman/listinfo/axiom-developer

Reply via email to