Ну то есть я должен приводить ввод к числу и обрабатывать ситуацию, когда он не соответствует числу, то есть по сути делать то же самое, что и без доказательств, но только вне тела функции, правильно?
Ты можешь доказывать где угодно, главное чтобы доказательство было в месте вызова функции.
Да, ты делаешь то же самое. Но ты никогда не забудешь проверить это, потому что верификатор ругнется, если ты это не сделаешь.