Skip to content

Inductive invariant validation. #72

Inductive invariant validation.

Inductive invariant validation. #72

Workflow file for this run

name: TLA
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
workflow_dispatch:
jobs:
apalache-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: 'microsoft'
java-version: '17'
- name: Setup
run: |
wget https://github.com/informalsystems/apalache/releases/latest/download/apalache.tgz
tar zxvf apalache.tgz
- name: Type- and (ordinary) invariant checking with Apalache
run: |
## -length=4 to finish in reasonable time.
./apalache/bin/apalache-mc check --config=APApbft.cfg --length=4 APApbft.tla
- name: Upload Apalache's counterexample (if any)
uses: actions/upload-artifact@v4
if: always()
with:
name: apalache-check
path: |
_apalache-out/
## Too expensive as of now.
# apalache-check-inductive:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - uses: actions/setup-java@v4
# with:
# distribution: 'microsoft'
# java-version: '17'
# - name: Setup
# run: |
# wget https://github.com/informalsystems/apalache/releases/latest/download/apalache.tgz
# tar zxvf apalache.tgz
# - name: Partial inductive invariant checking with Apalache
# if: always()
# run: |
# # Check that Init => SafetyInv
# ./apalache/bin/apalache-mc check --config=APApbft.cfg --init=GenInit --inv=SafetyInv --length=0 APAIndpbft.tla
# # Check that SafetyInv /\ Next => SafetyInv'
# ./apalache/bin/apalache-mc check --config=APApbft.cfg --init=GenInit --inv=SafetyInv --length=1 APAIndpbft.tla
# - name: Upload Apalache's counterexample (if any)
# uses: actions/upload-artifact@v4
# if: always()
# with:
# name: apalache-check-inductive
# path: |
# _apalache-out/
apalache-simulate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: 'microsoft'
java-version: '17'
- name: Setup
run: |
wget https://github.com/informalsystems/apalache/releases/latest/download/apalache.tgz
tar zxvf apalache.tgz
- name: Simulation with Apalache
run: |
./apalache/bin/apalache-mc simulate --config=APApbft.cfg --max-run=20 --length=25 APApbft.tla
- name: Upload Apalache's counterexample (if any)
uses: actions/upload-artifact@v4
if: always()
with:
name: apalache-simulate
path: |
_apalache-out/
apalache-simulate-geninit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: 'microsoft'
java-version: '17'
- name: Setup
run: |
wget https://github.com/informalsystems/apalache/releases/latest/download/apalache.tgz
tar zxvf apalache.tgz
- name: Simulation GenInit predicate with Apalache
run: |
./apalache/bin/apalache-mc simulate --config=APApbft.cfg --init=GenInit --max-run=1 --length=1 APIndApbft.tla
- name: Upload Apalache's counterexample (if any)
uses: actions/upload-artifact@v4
if: always()
with:
name: apalache-simulate-geninit
path: |
_apalache-out/
tlc-generate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install TLA+ Tools
run: |
git clone https://github.com/pmer/tla-bin.git
cd tla-bin
./download_or_update_tla.sh --nightly
sudo ./install.sh
- name: Random generation with TLC
run: JAVA_OPTS="-Dtlc2.TLC.stopAfter=600 -XX:+UseParallelGC" tlc -workers auto -generate MCpbft.tla
tlc-simulate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install TLA+ Tools
run: |
git clone https://github.com/pmer/tla-bin.git
cd tla-bin
./download_or_update_tla.sh --nightly
sudo ./install.sh
- name: Random simulation with TLC
run: JAVA_OPTS="-Dtlc2.TLC.stopAfter=600 -XX:+UseParallelGC" tlc -workers auto -simulate MCpbft.tla