-
Notifications
You must be signed in to change notification settings - Fork 17
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge remote-tracking branch 'origin/master' into shelly/v5changelog
- Loading branch information
Showing
20 changed files
with
676 additions
and
63 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
(methods-block)= | ||
The Methods Block | ||
================= | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
(hashing)= | ||
Modeling of Hashing in the Prover | ||
========================== | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
(method-summarization)= | ||
Method Summarization | ||
==================== | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
Diagnostic Tools | ||
================ | ||
|
||
|
||
(tac-reports)= | ||
## TAC Reports | ||
|
||
% TODO write this -- https://certora.atlassian.net/browse/DOC-355 | ||
|
||
% ## Timeout TAC Reports | ||
% | ||
% ### Statistics- and Explanation-Box | ||
% | ||
% ### Split- and Heuristical Difficulty-Coloring | ||
% | ||
% ### TAC Source Code Box | ||
|
||
There is a brief explanation of how to use TAC reports in the | ||
[webinar on timeouts](https://www.youtube.com/watch?v=mntP0_EN-ZQ). |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
(verification-report)= | ||
Certora Verification Reports | ||
============================ | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
Techniques Used by Certora Prover | ||
================================= | ||
|
||
In this chapter we describe techniques used by the Certora Prover whose understanding can be relevant for an expert-level usage of the Prover. | ||
|
||
(control-flow-splitting)= | ||
# Control Flow Splitting | ||
|
||
There is a brief explanation of control flow splitting in the | ||
[webinar on timeouts](https://www.youtube.com/watch?v=mntP0_EN-ZQ). | ||
|
||
% TODO write this -- tracked in https://certora.atlassian.net/browse/DOC-351 | ||
|
||
(storage-and-memory-analysis)= | ||
# Storage and Memory Analysis | ||
|
||
The Certora Prover works on EVM bytecode as its input. To the bytecode, the | ||
address space of both Storage and Memory are flat number lines. That two | ||
contract fields `x` and `y` don't share the same memory is an arithmetic | ||
property. With more complex data structures like mappings, arrays, and structs, | ||
this means that every | ||
["non-aliasing"](https://en.wikipedia.org/wiki/Aliasing_(computing)) argument | ||
requires reasoning about multiplications, additions, and hash functions. Certora | ||
Prover models this reasoning correctly, but this naive low-level modeling can | ||
quickly overwhelm SMT solvers. In order to handle storage efficiently, Certora | ||
Prover analyses Storage (Memory) accesses in EVM code in order to understand the | ||
Storage (Memory) layout, thus making information like "an update to mapping `x` | ||
will never overwrite the scalar variable `y`" much more obvious to the SMT | ||
solvers. For scaling SMT solving to larger programs, these simplifications are | ||
essential. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
(managing-timeouts)= | ||
Managing Timeouts | ||
================= | ||
|
||
Certora Prover has a potential to run very long on some inputs. When it runs too | ||
long, it will give up and return a "timeout" (or in some cases "unknown") | ||
result. In this chapter, we present a practical guide to diagnosing the causes | ||
of timeouts and ways to prevent them. | ||
|
||
|
||
```{toctree} | ||
timeouts-main.md | ||
timeouts-theory.md | ||
``` | ||
|
||
|
||
|
||
|
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.