---
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
================================================================================