5/5
_Follow along with this video:_ --- ### Optimistic Fallback Prover Args In the last lesson we saw our verification HAVOCing because Certora didn't know how to resolve the low level `call` function executed within withdrawProceeds. So, how do we account for these arbitrary calls with the prover? Introducing: [**Prover Arguments**](https://docs.certora.com/en/latest/docs/prover/cli/options.html#prover-args) Prover arguments (prover_args) are CLI (or conf file) options which can be used to fine tune the behaviour of the prover. I greatly encourage you to read through the options available on the Certora Docs. For our purposes, we want to consider the `-optimisticFallback` option is going to be useful. ::image{src='/formal-verification-3/19-optimistic-fallback-prover-args/optimistic-fallback-prover-args1.png' style='width: 100%; height: auto;'} Let's apply this argument to our `GasBad.conf`. ```js { "files": [ "src/GasBadNftMarketplace.sol:GasBadNftMarketplace", "src/NftMarketplace.sol:NftMarketplace", "test/mocks/NftMock.sol:NftMock" ], "verify": "GasBadNftMarketplace:certora/spec/GasBadNft.spec", "wait_for_results": "all", "rule_sanity": "basic", "optimistic_loop": true, "msg": "Verification of NftMarketplace", "prover_args":[ "-optimistic_fallback true" ] } ``` Any of the options we add to this `prover_args` list will act as though we passed that option to our CLI command when running the prover! > ❗ **NOTE** > As of May 25, 2024 the above conf configuration may not work. You can pass this option _with_ your CLI command if necessary: `certoraRun ./certora/conf/GasBadNft.conf --optimistic_fallback` ### Wrap Up Ok, we have `prover_args` configured and we've constructed our method block to include `wildcard entries` as well as summary declarations. With all of this defined, let's run the prover again. ```bash certoraRun ./certora/conf/GasBadNft.conf ``` See you in the next lesson for the results!
This lesson emphasizes using Prover Args for argument configuration and setting OptimisticFallback to true. Patrick explains the importance of exploring different Prover Arg types for tailored configurations.
Previous lesson
Previous
Next lesson
Next
Give us feedback
Prover Args
Last updated on March 15, 2024
Course Overview
About the course
Assembly
Writing smart contracts using Huff and Yul
Ethereum Virtual Machine OPCodes
Formal verification testing
Smart contract invariant testing
Halmos, Certora, Kontrol
Security researcher
$49,999 - $120,000 (avg. salary)
Smart Contract Auditor
$100,000 - $200,000 (avg. salary)
Guest lecturers:
Josselin Feist
Head of Blockchain at Trail of Bits
Last updated on June 6, 2025
Duration: 30min
Duration: 4h 38min
Duration: 3h 57min
Duration: 1h 56min
Course Overview
About the course
Assembly
Writing smart contracts using Huff and Yul
Ethereum Virtual Machine OPCodes
Formal verification testing
Smart contract invariant testing
Halmos, Certora, Kontrol
Security researcher
$49,999 - $120,000 (avg. salary)
Smart Contract Auditor
$100,000 - $200,000 (avg. salary)
Guest lecturers:
Josselin Feist
Head of Blockchain at Trail of Bits
Last updated on June 6, 2025