Model Checker Result Explainer
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
Model Checker Result Explainer is a security-focused tool that translates model checker output logs into human-readable explanations. It takes model checker output (from tools like SMTChecker, Certora, or other formal verification tools) and optionally contract source code, then analyzes the output to detect common verification patterns. The tool identifies assertion violations, arithmetic overflows/underflows, reentrancy vulnerabilities, access control issues, counterexamples, timeouts, and gas concerns. For each detected issue, it provides a clear explanation of what the issue means, why it matters, and potential remediation guidance. The output includes severity classifications (critical, warning, info) and source context when available, making model checker results accessible to developers without deep formal verification expertise.
HOW TO USE
Paste the output from your model checker into the "Model checker output / log" text area. Optionally paste the contract source code for additional context. Click "Explain results" to generate the explanations. The tool will display a summary including the number of explanations, critical issues, warnings, and info items. Each explanation includes a title, a detailed description, the relevant output snippet, and a severity label (CRITICAL, WARNING, or INFO). If source context is provided, the tool also displays the contract name and functions detected.
TECHNICAL NOTE: PATTERN MATCHING AND CONTEXT EXTRACTION
The tool employs a multi-stage pattern matching system to analyze model checker output. It scans each line of the output and applies pattern recognition rules for common verification issues: assertion violations (detected via patterns like "assertion", "violation", "failed"), arithmetic issues ("overflow", "underflow"), reentrancy ("reentrancy", "reentrant"), access control ("access control", "permission", "unauthorized", "role"), counterexamples ("counterexample", "example:"), timeouts ("timeout", "time out", "killed"), and gas concerns ("gas", "resource", "cost"). When a pattern is matched, the tool extracts relevant context (function names, values, state variables) and generates a structured explanation with severity classification. If source code is provided, the tool extracts contract name and function signatures to provide additional context in the explanations.
WHAT IT CANNOT SEE
The tool cannot guarantee that generated explanations are complete or correct for the specific model checker output. It cannot automatically verify contract security; the explanations are interpretations and may not capture all nuances. It cannot detect all edge cases or vulnerabilities in the contract. The tool is limited to the accuracy of source code analysis and pattern matching; complex or non-standard issues may be misidentified. It cannot generate fixed contracts or code; it only provides explanations. It cannot handle complex contract interactions with external contracts or cross-contract properties. The tool is limited by the expressiveness of the model checker output format; unsupported formats may not be parsed correctly. It cannot verify contracts with non-standard patterns that deviate from common verification outputs.
PLEASE NOTE
This tool is designed exclusively for Solidity contracts on EVM-compatible chains. It supports outputs from common model checkers including SMTChecker (built into Solidity compiler), Certora, and other formal verification tools. The explanations are generated based on pattern matching and are intended as guidance, not as authoritative verification results. Always verify the explanations against the actual contract logic and model checker documentation. The tool provides no warranty that the explanations are accurate or complete; users are responsible for validating all findings.