libtlafmt 0.4.1

A formatter library for TLA+ specs, core of tlafmt
Documentation
---
source: libtlafmt/tests/format.rs
expression: output
input_file: libtlafmt/tests/corpus/AsynchInterface.tla
---
---------------------------- MODULE AsynchInterface ----------------------------
EXTENDS Naturals
CONSTANT Data
VARIABLES val, rdy, ack

TypeInvariant ==
    /\ val \in Data
    /\ rdy \in {0, 1}
    /\ ack \in {0, 1}
--------------------------------------------------------------------------------
Init ==
    /\ val \in Data
    /\ rdy \in {0, 1}
    /\ ack = rdy

Send ==
    /\ rdy = ack
    /\ val' \in Data
    /\ rdy' = 1 - rdy
    /\ UNCHANGED ack

Rcv ==
    /\ rdy /= ack
    /\ ack' = 1 - ack
    /\ UNCHANGED << val, rdy >>

Next == Send \/ Rcv

Spec == Init /\ [][Next]_<< val, rdy, ack >>
--------------------------------------------------------------------------------
THEOREM Spec => []TypeInvariant
================================================================================