• Stars
    star
    387
  • Rank 106,568 (Top 3 %)
  • Language
    Scala
  • License
    Apache License 2.0
  • Created almost 9 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

APALACHE: symbolic model checker for TLA+ and Quint
Apalache Logo

APALACHE

A symbolic model checker for TLA+

main badge

Apalache translates TLA+ into the logic supported by SMT solvers such as Microsoft Z3. Apalache can check inductive invariants (for fixed or bounded parameters) and check safety of bounded executions (bounded model checking). To see the list of supported TLA+ constructs, check the supported features. In general, Apalache runs under the same assumptions as TLC.

To learn more about TLA+, visit Leslie Lamport's page on TLA+ and his Video course.

Releases

Check the releases page for our latest release.

For a stable release, we recommend that you pull the latest docker image with docker pull ghcr.io/informalsystems/apalache:main, use the jar from the most recent release, or checkout the source code from the most recent release tag.

To try the latest cool features, check out the head of the main branch.

For more information on installation options, see the manual.

Getting started

Website

Our current website is served at https://apalache.informal.systems .

The site is hosted by github, and changes can be made through PRs into the gh-pages branch of this repository. See the README.md on that branch for more information.

The user documentation is automatically deployed to the website branch as per the CI configuration.

Our old website is still available at https://forsyte.at/research/apalache/ .

Community

Help wanted

Want to contribute? Here is a list of issues that could be solved without knowing too much about the internals of Apalache. Solving these issues would improve usability! Please comment in the relevant issue, if you are going to solve it.

  • Writing annotations in the JSON format: #804
  • Add support for VIEW in the TLC config: #851
  • Translate \E x \in STRING: P and \A x \in STRING: P: #844
  • Interval analysis for a..b: #446

Industrial examples

Talks

Performance

We are collecting apalache benchmarks. See the Apalache performance when checking inductive invariants and running bounded model checking. Versions 0.6.0 and 0.7.2 are a major improvement over version 0.5.2 (the version reported at OOPSLA19).

Academic papers

To read an academic paper about the theory behind Apalache, check our paper at OOPSLA19. For the details of our novel encoding using SMT arrays, check our paper at TACAS23. Related reports and publications can be found at the Apalache page at TU Wien.


Apalache is developed at Informal Systems.

With additional funding from
the Vienna Business Agency.

Past funding from Der Wiener Wissenschafts-, Forschungs- und Technologiefonds.

More Repositories

1

tendermint-rs

Client libraries for Tendermint/CometBFT in Rust!
Rust
568
star
2

quint

An executable specification language with delightful tooling based on the temporal logic of actions (TLA)
TypeScript
550
star
3

hermes

IBC Relayer in Rust
Rust
423
star
4

atomkraft

Advanced fuzzing via Model Based Testing for Cosmos blockchains
Python
76
star
5

basecoin-rs

An example ABCI application making use of tendermint-rs and ibc-rs
Rust
50
star
6

modelator

Model-based testing tool
Python
49
star
7

cosmos.nix

A reproducible package set for Cosmos, IBC and CosmWasm
Nix
46
star
8

themis-contract

A command line-based parameterized contracting tool
Go
45
star
9

tm-load-test

tm-load-test tool - Tendermint load test application
Go
44
star
10

multisig

Painless multisig for many keys across many cosmos-sdk chains
Go
35
star
11

cross-chain-validation

TLA
33
star
12

modelator-py

Utilities for the TLA+ ecoystem and model-based testing using TLA+.
Python
28
star
13

CometMock

Drop-in replacement for CometBFT in end-to-end tests
Go
22
star
14

vdd

Verification-Driven Development
21
star
15

unclog

Unclog your changelog
Rust
21
star
16

tla-apalache-workshop

Material for a workshop on Apalache and TLA+. To be populated with more examples.
20
star
17

testnets

Various different test network-related configurations for Tendermint
Python
15
star
18

sovereign-ibc

Implementation of IBC modules by `ibc-rs` that can run with Sovereign SDK rollups
Rust
15
star
19

hermes-ibc-workshop

Hermes IBC Workshop - Fungible Token Transfer (ics-20) between two Starport chains
TypeScript
14
star
20

flex-error

Rust
13
star
21

audits

Security Audits by Informal Systems
TLA
13
star
22

gm

Tool to manage local gaiad instances - without docker
Shell
12
star
23

atomkraft-cosmos

TLA
11
star
24

verification

Specifications of the protocols and the experiments on their verification
9
star
25

jsonatr

JSON Artifact Translator
Rust
8
star
26

apalache-tests

Benchmarks for apalache
SMT
6
star
27

context-generic-programming

Context-generic programming guide
Rust
6
star
28

gopherator

Modelator's cousin for Golang
Go
5
star
29

apalache-bench

Apalache Bench Tests
HTML
5
star
30

vscode-itf-trace-viewer

VS Code extension for viewing ITF traces
TypeScript
5
star
31

mtcs

Multilateral Trade Credit Set-off
Rust
5
star
32

itf-rs

Rust library for consuming Apalache ITF traces
Rust
5
star
33

audit-celestia

Workspace set up for collaboration in the Celestia audit
Makefile
5
star
34

hermes-sdk

Rust
5
star
35

megablocks

Prototype to investigate an Atomic IBC solution based on Megablocks
Go
4
star
36

quint-ml-experiments

F*
4
star
37

got

Game of Tendermint
Shell
4
star
38

themis-tracer

A tool for managing complex contexts for developing critical systems
Rust
4
star
39

quint-sandbox

Material used in interactive demos and tutorials
Bluespec
3
star
40

stakooler

The koolest tool for Cosmos stakers
Go
3
star
41

gravity-dex-demo

Instructions to run the Gravity Dex Demo
Go
3
star
42

agoric-kernel-models

TLA+ models for Agoric Swingset Kernel
TLA
3
star
43

hermes-hackatom-demo

Demo for Hackatom - Hermes
TypeScript
2
star
44

apalache-chai

Chai: Client for Human-Apalache Interaction
Python
2
star
45

chainpulse

Monitoring tool for IBC relayers
Rust
2
star
46

consumer-chain-tool

One-click Consumer Chain Tool
Go
2
star
47

itf-go

Go library for un/marshalling ITF files
Go
2
star
48

merkleeyes

Go
1
star
49

OsmosisAtomkraft

Informal Systems Atomkraft adaptations and TLA specs for Osmosis audit project
TLA
1
star
50

euc

End-user computing for a better user experience
Shell
1
star
51

safe-regex

Fork of https://gitlab.com/leonhard-llc/safe-regex-rs
Rust
1
star
52

economics-analysis

Economics analysis for various projects
1
star
53

reactor-experiments

Experiments to help us establish a concurrency architecture for Tendermint in Rust
Rust
1
star
54

ics29-fee-tla

TLA
1
star
55

ibc-proto

IBC Proto Rust implementation
Rust
1
star
56

ignite-blog

Cosmos-SDK blockchain following Ignite's Blog tutorial
TypeScript
1
star
57

cgp-workshop

Workshop materials for context-generic programming
Rust
1
star
58

partnership-heliax

Bluespec
1
star