I'm not sure Wirth has ever sacrificed correctness. He has been willing to sacrifice performance though, that is, if a simpler solution was fast enough he went with that (e.g. linked list instead of hash table for symbol lookup in a compiler). He's also not been afraid to question established wisdom and practice if it lead to simpler implementations (e.g. the file API in Oberon).
I suspect Wirth would not object to codifying pre/post-conditions and invariants per se. But I think he would object to using them as a band-aid around complicated implementations. It's hard to convince yourself that your implementation is correct when the pre/post-conditions and invariants are themselves complicated and hard to understand.
I suspect Wirth would not object to codifying pre/post-conditions and invariants per se. But I think he would object to using them as a band-aid around complicated implementations. It's hard to convince yourself that your implementation is correct when the pre/post-conditions and invariants are themselves complicated and hard to understand.