Friday, November 13, 2026 4,523 lists 78,994 records on file
List your app or device

  1. Home
  2. Formal Verification Tools
  3. Stainless

Stainless

On the record

Browser workflow
The documentation describes running Stainless in GitHub Codespaces, including through a browser.epfl-lara.github.io · read 8 Oct 2026
Contracts
It checks user-provided function preconditions and postconditions.epfl-lara.github.io · read 8 Oct 2026
Correctness checks
It can statically verify that a program conforms to a specification and cannot crash at runtime.epfl-lara.github.io · read 7 Oct 2026
Counterexamples
When a function does not satisfy its contract, Stainless can return a concrete counterexample.epfl-lara.github.io · read 8 Oct 2026
Editor integration
The project page links installation instructions for standalone use, Docker, sbt, and Metals.ecocloud.epfl.ch · read 7 Oct 2026
Installation
Stainless can be installed from a standalone release, through Snap or the Arch User Repository, built from source, or used as an sbt plugin.epfl-lara.github.io · read 8 Oct 2026
Installation options
The installation documentation lists standalone releases, Snap, source builds, and an sbt plugin.epfl-lara.github.io · read 7 Oct 2026
Intended users
The documentation describes using Stainless within an existing sbt project to check Scala code in enabled modules.epfl-lara.github.io · read 8 Oct 2026
Language limits
The language does not provide a default encoding for concurrency with a shared mutable heap.epfl-lara.github.io · read 7 Oct 2026
License
The repository states that Stainless is released under the Apache 2.0 license.github.com · read 8 Oct 2026
Limitations
The documentation warns that verification assumes unbounded data types and sufficient stack space, so verified code may still encounter stack or heap overflow at runtime.epfl-lara.github.io · read 8 Oct 2026
Purpose
Stainless is a verification framework and tool for a subset of the Scala programming language.github.com · read 8 Oct 2026
Runtime requirement
The installation documentation lists Java 17 JRE as a general requirement.epfl-lara.github.io · read 8 Oct 2026
Safety checks
It checks array bounds and whether pattern matches cover all possible cases.epfl-lara.github.io · read 8 Oct 2026
Scala subset
Stainless verifies a Pure Scala fragment and also supports certain imperative features by translating them into Pure Scala concepts.epfl-lara.github.io · read 7 Oct 2026
Scala support
The current repository README says Stainless supports Scala 3.5.0 and later, and no longer supports the Scala 2 frontend.github.com · read 8 Oct 2026
Solvers
Stainless uses the Inox backend and can use SMT solvers including Z3 and cvc5; Princess is included as a Scala-based fallback solver.epfl-lara.github.io · read 8 Oct 2026
Solver support
Stainless relies on Inox and supports SMT solvers including Z3, cvc5, and Princess.github.com · read 7 Oct 2026

Alternatives to Stainless

Every alternative, ranked