Fuzzing is essentially the same as just throwing values at it hoping its all okay.
What I meant was what @AstralStorm said about mathematical and logic proofs that it works for all defined values.
What I meant was what @AstralStorm said about mathematical and logic proofs that it works for all defined values.
Proofs are powerful, but you can still make errors in the proof or the transcription into code. And of course you don't know what other emergent behaviours will surprise you when the proved code interacts with unproved code.
Depending on your means and needs, you want to try both.