Commit 3b4c3b8d authored by Kirill Smelkov's avatar Kirill Smelkov

X 1Bit

parent 7d001ca6
File added
-------------------------------- MODULE 1Bit --------------------------------
\* 1Bit implementation of mutual exclusion
EXTENDS Integers
CONSTANT N
ASSUME N \in Nat
Procs == 0..N
(********
--fair algorithm 1BitProtocol {
variables flag = [i \in Procs |-> FALSE] ;
process (P \in Procs) {
ncs: while (TRUE) {
skip ;
enter: flag[self] := TRUE ;
e2: if (flag[1-self]) {
e3: flag[self] := FALSE;
goto enter;
};
cs: skip ;
exit: flag[self] := FALSE ;
}
}
}
********)
\* BEGIN TRANSLATION (chksum(pcal) = "7c28162a" /\ chksum(tla) = "b89f1da2")
VARIABLES flag, pc
vars == << flag, pc >>
ProcSet == (Procs)
Init == (* Global variables *)
/\ flag = [i \in Procs |-> FALSE]
/\ pc = [self \in ProcSet |-> "ncs"]
ncs(self) == /\ pc[self] = "ncs"
/\ TRUE
/\ pc' = [pc EXCEPT ![self] = "enter"]
/\ flag' = flag
enter(self) == /\ pc[self] = "enter"
/\ flag' = [flag EXCEPT ![self] = TRUE]
/\ pc' = [pc EXCEPT ![self] = "e2"]
e2(self) == /\ pc[self] = "e2"
/\ IF flag[1-self]
THEN /\ pc' = [pc EXCEPT ![self] = "e3"]
ELSE /\ pc' = [pc EXCEPT ![self] = "cs"]
/\ flag' = flag
e3(self) == /\ pc[self] = "e3"
/\ flag' = [flag EXCEPT ![self] = FALSE]
/\ pc' = [pc EXCEPT ![self] = "enter"]
cs(self) == /\ pc[self] = "cs"
/\ TRUE
/\ pc' = [pc EXCEPT ![self] = "exit"]
/\ flag' = flag
exit(self) == /\ pc[self] = "exit"
/\ flag' = [flag EXCEPT ![self] = FALSE]
/\ pc' = [pc EXCEPT ![self] = "ncs"]
P(self) == ncs(self) \/ enter(self) \/ e2(self) \/ e3(self) \/ cs(self)
\/ exit(self)
Next == (\E self \in Procs: P(self))
Spec == /\ Init /\ [][Next]_vars
/\ WF_vars(Next)
\* END TRANSLATION
--------
\* Invariant which implies MutualExclusion
\*Inv == \A i \in Procs : (pc[i] = "cs") => (flag[i] /\ (~flag[1-i] \/ pc[1-i] = "e2"))
Inv == \A i \in Procs : (pc[i] = "cs") => (flag[i] /\ (~flag[1-i] \/ pc[1-i] \in {"e2","e3"}))
ME == INSTANCE MutualExclusionSpec WITH
pc <- [proc \in Procs |-> CASE pc[proc] = "cs" -> "cs"
[] pc[proc] \in {"enter","e2","e3"} -> "csentry"
[] OTHER -> "non-cs"]
THEOREM Spec => ME!Spec
THEOREM Spec => []ME!MutualExclusion
THEOREM Spec => ME!Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 21:21:36 MSK 2022 by kirr
\* Created Wed Feb 09 20:01:56 MSK 2022 by kirr
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>1Bit</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>toolbox.builder.TLAParserBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>toolbox.natures.TLANature</nature>
</natures>
<linkedResources>
<link>
<name>1Bit.tla</name>
<type>1</type>
<locationURI>PARENT-1-PROJECT_LOC/1Bit.tla</locationURI>
</link>
<link>
<name>MutualExclusionSpec.tla</name>
<type>1</type>
<location>/home/kirr/study/tla+/pluscal/ME/MutualExclusionSpec.tla</location>
</link>
</linkedResources>
</projectDescription>
ProjectRootFile=PARENT-1-PROJECT_LOC/1Bit.tla
eclipse.preferences.version=1
\relax
\gdef \@abspage@last{2}
This is pdfTeX, Version 3.14159265-2.6-1.40.21 (TeX Live 2020/Debian) (preloaded format=pdflatex 2021.6.9) 9 FEB 2022 21:12
entering extended mode
restricted \write18 enabled.
%&-line parsing enabled.
**1Bit.tex
(./1Bit.tex
LaTeX2e <2020-10-01> patch level 4
L3 programming layer <2021-01-09> xparse <2020-03-03>
(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls
Document Class: article 2020/04/10 v1.4m Standard LaTeX document class
(/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo
File: size10.clo 2020/04/10 v1.4m Standard LaTeX file (size option)
)
\c@part=\count177
\c@section=\count178
\c@subsection=\count179
\c@subsubsection=\count180
\c@paragraph=\count181
\c@subparagraph=\count182
\c@figure=\count183
\c@table=\count184
\abovecaptionskip=\skip47
\belowcaptionskip=\skip48
\bibindent=\dimen138
) (/usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty
Package: color 2020/02/24 v1.2b Standard LaTeX Color (DPC)
(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg
File: color.cfg 2016/01/02 v1.6 sample color configuration
)
Package color Info: Driver file: pdftex.def on input line 147.
(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def
File: pdftex.def 2020/10/05 v1.2a Graphics/color driver for pdftex
)) (/usr/share/texlive/texmf-dist/tex/latex/base/latexsym.sty
Package: latexsym 1998/08/17 v2.2e Standard LaTeX package (lasy symbols)
\symlasy=\mathgroup4
LaTeX Font Info: Overwriting symbol font `lasy' in version `bold'
(Font) U/lasy/m/n --> U/lasy/b/n on input line 52.
) (/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty
Package: ifthen 2014/09/29 v1.1c Standard LaTeX ifthen package (DPC)
)
\symlength=\skip49
\equalswidth=\skip50
\charwidth=\skip51
\boxrulewd=\skip52
\boxlineht=\skip53
\boxruleht=\skip54
\boxruledp=\skip55
\pcalvspace=\skip56
\lcomindent=\skip57
\@xlen=\skip58
\templena=\skip59
\templenb=\skip60
\tempboxa=\box47
\vshadelen=\skip61
\boxwidth=\skip62
\multicommentdepth=\skip63
\c@pardepth=\count185
\tempsbox=\box48
\@cparht=\skip64
\@cpardp=\skip65
\xmcomlen=\skip66
\spacewidth=\skip67
\alignboxwidth=\skip68
\alignwidth=\skip69
\alignbox=\box49
\symtlaitalics=\mathgroup5
\c@tlx@ctr=\count186
(/usr/share/texlive/texmf-dist/tex/latex/tools/verbatim.sty
Package: verbatim 2020-07-07 v1.5u LaTeX2e package for verbatim enhancements
\every@verbatim=\toks15
\verbatim@line=\toks16
\verbatim@in@stream=\read2
) (/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
File: l3backend-pdftex.def 2020-01-29 L3 backend support: PDF output (pdfTeX)
\l__color_backend_stack_int=\count187
\l__pdf_internal_box=\box50
) (./1Bit.aux)
\openout1 = `1Bit.aux'.
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 939.
LaTeX Font Info: ... okay on input line 939.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 939.
LaTeX Font Info: ... okay on input line 939.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 939.
LaTeX Font Info: ... okay on input line 939.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 939.
LaTeX Font Info: ... okay on input line 939.
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 939.
LaTeX Font Info: ... okay on input line 939.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 939.
LaTeX Font Info: ... okay on input line 939.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 939.
LaTeX Font Info: ... okay on input line 939.
(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).]
\scratchcounter=\count188
\scratchdimen=\dimen139
\scratchbox=\box51
\nofMPsegments=\count189
\nofMParguments=\count190
\everyMPshowfont=\toks17
\MPscratchCnt=\count191
\MPscratchDim=\dimen140
\MPnumerator=\count192
\makeMPintoPDFobject=\count193
\everyMPtoPDFconversion=\toks18
)
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <7> on input line 942.
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <5> on input line 942.
LaTeX Font Info: Trying to load font information for U+lasy on input line 94
2.
(/usr/share/texlive/texmf-dist/tex/latex/base/ulasy.fd
File: ulasy.fd 1998/08/17 v2.2e LaTeX symbol font definitions
)
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <8> on input line 946.
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <6> on input line 946.
LaTeX Font Info: Trying to load font information for OMS+cmr on input line 9
63.
(/usr/share/texlive/texmf-dist/tex/latex/base/omscmr.fd
File: omscmr.fd 2019/12/16 v2.5j Standard LaTeX font definitions
)
LaTeX Font Info: Font shape `OMS/cmr/bx/n' in size <10> not available
(Font) Font shape `OMS/cmsy/b/n' tried instead on input line 963.
[1
{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}]
Overfull \hbox (13.43173pt too wide) in paragraph at lines 1087--1089
[][]
[]
Overfull \hbox (83.84805pt too wide) in paragraph at lines 1089--1095
[][][][]
[]
Overfull \hbox (34.86755pt too wide) in paragraph at lines 1095--1096
[][]
[]
[2] (./1Bit.aux) )
Here is how much of TeX's memory you used:
1332 strings out of 479304
18669 string characters out of 5869780
316173 words of memory out of 5000000
18554 multiletter control sequences out of 15000+600000
409463 words of font info for 50 fonts, out of 8000000 for 9000
1141 hyphenation exceptions out of 8191
44i,11n,50p,213b,320s stack positions out of 5000i,500n,10000p,200000b,80000s
</usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm
/cmbsy10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx
10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmcsc10.pf
b></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></us
r/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/share
/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr5.pfb></usr/share/texlive
/texmf-dist/fonts/type1/public/amsfonts/cm/cmr8.pfb></usr/share/texlive/texmf-d
ist/fonts/type1/public/amsfonts/cm/cmr9.pfb></usr/share/texlive/texmf-dist/font
s/type1/public/amsfonts/cm/cmss10.pfb></usr/share/texlive/texmf-dist/fonts/type
1/public/amsfonts/cm/cmss8.pfb></usr/share/texlive/texmf-dist/fonts/type1/publi
c/amsfonts/cm/cmsy10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsf
onts/cm/cmsy7.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm
/cmsy8.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmti10
.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmti7.pfb></
usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmti8.pfb></usr/sha
re/texlive/texmf-dist/fonts/type1/public/amsfonts/latxfont/lasy10.pfb>
Output written on 1Bit.pdf (2 pages, 172310 bytes).
PDF statistics:
79 PDF objects out of 1000 (max. 8388607)
57 compressed objects within 1 object stream
0 named destinations out of 1000 (max. 500000)
1 words of extra memory for PDF output out of 10000 (max. 10000000)
\batchmode %% Suppresses most terminal output.
\documentclass{article}
\usepackage{color}
\definecolor{boxshade}{gray}{0.85}
\setlength{\textwidth}{360pt}
\setlength{\textheight}{541pt}
\usepackage{latexsym}
\usepackage{ifthen}
% \usepackage{color}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% SWITCHES %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newboolean{shading}
\setboolean{shading}{false}
\makeatletter
%% this is needed only when inserted into the file, not when
%% used as a package file.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% DEFINITIONS OF SYMBOL-PRODUCING COMMANDS %
% %
% TLA+ LaTeX %
% symbol command %
% ------ ------- %
% => \implies %
% <: \ltcolon %
% :> \colongt %
% == \defeq %
% .. \dotdot %
% :: \coloncolon %
% =| \eqdash %
% ++ \pp %
% -- \mm %
% ** \stst %
% // \slsl %
% ^ \ct %
% \A \A %
% \E \E %
% \AA \AA %
% \EE \EE %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newlength{\symlength}
\newcommand{\implies}{\Rightarrow}
\newcommand{\ltcolon}{\mathrel{<\!\!\mbox{:}}}
\newcommand{\colongt}{\mathrel{\!\mbox{:}\!\!>}}
\newcommand{\defeq}{\;\mathrel{\smash %% keep this symbol from being too tall
{{\stackrel{\scriptscriptstyle\Delta}{=}}}}\;}
\newcommand{\dotdot}{\mathrel{\ldotp\ldotp}}
\newcommand{\coloncolon}{\mathrel{::\;}}
\newcommand{\eqdash}{\mathrel = \joinrel \hspace{-.28em}|}
\newcommand{\pp}{\mathbin{++}}
\newcommand{\mm}{\mathbin{--}}
\newcommand{\stst}{*\!*}
\newcommand{\slsl}{/\!/}
\newcommand{\ct}{\hat{\hspace{.4em}}}
\newcommand{\A}{\forall}
\newcommand{\E}{\exists}
\renewcommand{\AA}{\makebox{$\raisebox{.05em}{\makebox[0pt][l]{%
$\forall\hspace{-.517em}\forall\hspace{-.517em}\forall$}}%
\forall\hspace{-.517em}\forall \hspace{-.517em}\forall\,$}}
\newcommand{\EE}{\makebox{$\raisebox{.05em}{\makebox[0pt][l]{%
$\exists\hspace{-.517em}\exists\hspace{-.517em}\exists$}}%
\exists\hspace{-.517em}\exists\hspace{-.517em}\exists\,$}}
\newcommand{\whileop}{\.{\stackrel
{\mbox{\raisebox{-.3em}[0pt][0pt]{$\scriptscriptstyle+\;\,$}}}%
{-\hspace{-.16em}\triangleright}}}
% Commands are defined to produce the upper-case keywords.
% Note that some have space after them.
\newcommand{\ASSUME}{\textsc{assume }}
\newcommand{\ASSUMPTION}{\textsc{assumption }}
\newcommand{\AXIOM}{\textsc{axiom }}
\newcommand{\BOOLEAN}{\textsc{boolean }}
\newcommand{\CASE}{\textsc{case }}
\newcommand{\CONSTANT}{\textsc{constant }}
\newcommand{\CONSTANTS}{\textsc{constants }}
\newcommand{\ELSE}{\settowidth{\symlength}{\THEN}%
\makebox[\symlength][l]{\textsc{ else}}}
\newcommand{\EXCEPT}{\textsc{ except }}
\newcommand{\EXTENDS}{\textsc{extends }}
\newcommand{\FALSE}{\textsc{false}}
\newcommand{\IF}{\textsc{if }}
\newcommand{\IN}{\settowidth{\symlength}{\LET}%
\makebox[\symlength][l]{\textsc{in}}}
\newcommand{\INSTANCE}{\textsc{instance }}
\newcommand{\LET}{\textsc{let }}
\newcommand{\LOCAL}{\textsc{local }}
\newcommand{\MODULE}{\textsc{module }}
\newcommand{\OTHER}{\textsc{other }}
\newcommand{\STRING}{\textsc{string}}
\newcommand{\THEN}{\textsc{ then }}
\newcommand{\THEOREM}{\textsc{theorem }}
\newcommand{\LEMMA}{\textsc{lemma }}
\newcommand{\PROPOSITION}{\textsc{proposition }}
\newcommand{\COROLLARY}{\textsc{corollary }}
\newcommand{\TRUE}{\textsc{true}}
\newcommand{\VARIABLE}{\textsc{variable }}
\newcommand{\VARIABLES}{\textsc{variables }}
\newcommand{\WITH}{\textsc{ with }}
\newcommand{\WF}{\textrm{WF}}
\newcommand{\SF}{\textrm{SF}}
\newcommand{\CHOOSE}{\textsc{choose }}
\newcommand{\ENABLED}{\textsc{enabled }}
\newcommand{\UNCHANGED}{\textsc{unchanged }}
\newcommand{\SUBSET}{\textsc{subset }}
\newcommand{\UNION}{\textsc{union }}
\newcommand{\DOMAIN}{\textsc{domain }}
% Added for tla2tex
\newcommand{\BY}{\textsc{by }}
\newcommand{\OBVIOUS}{\textsc{obvious }}
\newcommand{\HAVE}{\textsc{have }}
\newcommand{\QED}{\textsc{qed }}
\newcommand{\TAKE}{\textsc{take }}
\newcommand{\DEF}{\textsc{ def }}
\newcommand{\HIDE}{\textsc{hide }}
\newcommand{\RECURSIVE}{\textsc{recursive }}
\newcommand{\USE}{\textsc{use }}
\newcommand{\DEFINE}{\textsc{define }}
\newcommand{\PROOF}{\textsc{proof }}
\newcommand{\WITNESS}{\textsc{witness }}
\newcommand{\PICK}{\textsc{pick }}
\newcommand{\DEFS}{\textsc{defs }}
\newcommand{\PROVE}{\settowidth{\symlength}{\ASSUME}%
\makebox[\symlength][l]{\textsc{prove}}\@s{-4.1}}%
%% The \@s{-4.1) is a kludge added on 24 Oct 2009 [happy birthday, Ellen]
%% so the correct alignment occurs if the user types
%% ASSUME X
%% PROVE Y
%% because it cancels the extra 4.1 pts added because of the
%% extra space after the PROVE. This seems to works OK.
%% However, the 4.1 equals Parameters.LaTeXLeftSpace(1) and
%% should be changed if that method ever changes.
\newcommand{\SUFFICES}{\textsc{suffices }}
\newcommand{\NEW}{\textsc{new }}
\newcommand{\LAMBDA}{\textsc{lambda }}
\newcommand{\STATE}{\textsc{state }}
\newcommand{\ACTION}{\textsc{action }}
\newcommand{\TEMPORAL}{\textsc{temporal }}
\newcommand{\ONLY}{\textsc{only }} %% added by LL on 2 Oct 2009
\newcommand{\OMITTED}{\textsc{omitted }} %% added by LL on 31 Oct 2009
\newcommand{\@pfstepnum}[2]{\ensuremath{\langle#1\rangle}\textrm{#2}}
\newcommand{\bang}{\@s{1}\mbox{\small !}\@s{1}}
%% We should format || differently in PlusCal code than in TLA+ formulas.
\newcommand{\p@barbar}{\ifpcalsymbols
\,\,\rule[-.25em]{.075em}{1em}\hspace*{.2em}\rule[-.25em]{.075em}{1em}\,\,%
\else \,||\,\fi}
%% PlusCal keywords
\newcommand{\p@fair}{\textbf{fair }}
\newcommand{\p@semicolon}{\textbf{\,; }}
\newcommand{\p@algorithm}{\textbf{algorithm }}
\newcommand{\p@mmfair}{\textbf{-{}-fair }}
\newcommand{\p@mmalgorithm}{\textbf{-{}-algorithm }}
\newcommand{\p@assert}{\textbf{assert }}
\newcommand{\p@await}{\textbf{await }}
\newcommand{\p@begin}{\textbf{begin }}
\newcommand{\p@end}{\textbf{end }}
\newcommand{\p@call}{\textbf{call }}
\newcommand{\p@define}{\textbf{define }}
\newcommand{\p@do}{\textbf{ do }}
\newcommand{\p@either}{\textbf{either }}
\newcommand{\p@or}{\textbf{or }}
\newcommand{\p@goto}{\textbf{goto }}
\newcommand{\p@if}{\textbf{if }}
\newcommand{\p@then}{\,\,\textbf{then }}
\newcommand{\p@else}{\ifcsyntax \textbf{else } \else \,\,\textbf{else }\fi}
\newcommand{\p@elsif}{\,\,\textbf{elsif }}
\newcommand{\p@macro}{\textbf{macro }}
\newcommand{\p@print}{\textbf{print }}
\newcommand{\p@procedure}{\textbf{procedure }}
\newcommand{\p@process}{\textbf{process }}
\newcommand{\p@return}{\textbf{return}}
\newcommand{\p@skip}{\textbf{skip}}
\newcommand{\p@variable}{\textbf{variable }}
\newcommand{\p@variables}{\textbf{variables }}
\newcommand{\p@while}{\textbf{while }}
\newcommand{\p@when}{\textbf{when }}
\newcommand{\p@with}{\textbf{with }}
\newcommand{\p@lparen}{\textbf{(\,\,}}
\newcommand{\p@rparen}{\textbf{\,\,) }}
\newcommand{\p@lbrace}{\textbf{\{\,\,}}
\newcommand{\p@rbrace}{\textbf{\,\,\} }}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% REDEFINE STANDARD COMMANDS TO MAKE THEM FORMAT BETTER %
% %
% We redefine \in and \notin %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\renewcommand{\_}{\rule{.4em}{.06em}\hspace{.05em}}
\newlength{\equalswidth}
\let\oldin=\in
\let\oldnotin=\notin
\renewcommand{\in}{%
{\settowidth{\equalswidth}{$\.{=}$}\makebox[\equalswidth][c]{$\oldin$}}}
\renewcommand{\notin}{%
{\settowidth{\equalswidth}{$\.{=}$}\makebox[\equalswidth]{$\oldnotin$}}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% HORIZONTAL BARS: %
% %
% \moduleLeftDash |~~~~~~~~~~ %
% \moduleRightDash ~~~~~~~~~~| %
% \midbar |----------| %
% \bottombar |__________| %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newlength{\charwidth}\settowidth{\charwidth}{{\small\tt M}}
\newlength{\boxrulewd}\setlength{\boxrulewd}{.4pt}
\newlength{\boxlineht}\setlength{\boxlineht}{.5\baselineskip}
\newcommand{\boxsep}{\charwidth}
\newlength{\boxruleht}\setlength{\boxruleht}{.5ex}
\newlength{\boxruledp}\setlength{\boxruledp}{-\boxruleht}
\addtolength{\boxruledp}{\boxrulewd}
\newcommand{\boxrule}{\leaders\hrule height \boxruleht depth \boxruledp
\hfill\mbox{}}
\newcommand{\@computerule}{%
\setlength{\boxruleht}{.5ex}%
\setlength{\boxruledp}{-\boxruleht}%
\addtolength{\boxruledp}{\boxrulewd}}
\newcommand{\bottombar}{\hspace{-\boxsep}%
\raisebox{-\boxrulewd}[0pt][0pt]{\rule[.5ex]{\boxrulewd}{\boxlineht}}%
\boxrule
\raisebox{-\boxrulewd}[0pt][0pt]{%
\rule[.5ex]{\boxrulewd}{\boxlineht}}\hspace{-\boxsep}\vspace{0pt}}
\newcommand{\moduleLeftDash}%
{\hspace*{-\boxsep}%
\raisebox{-\boxlineht}[0pt][0pt]{\rule[.5ex]{\boxrulewd
}{\boxlineht}}%
\boxrule\hspace*{.4em }}
\newcommand{\moduleRightDash}%
{\hspace*{.4em}\boxrule
\raisebox{-\boxlineht}[0pt][0pt]{\rule[.5ex]{\boxrulewd
}{\boxlineht}}\hspace{-\boxsep}}%\vspace{.2em}
\newcommand{\midbar}{\hspace{-\boxsep}\raisebox{-.5\boxlineht}[0pt][0pt]{%
\rule[.5ex]{\boxrulewd}{\boxlineht}}\boxrule\raisebox{-.5\boxlineht%
}[0pt][0pt]{\rule[.5ex]{\boxrulewd}{\boxlineht}}\hspace{-\boxsep}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% FORMATING COMMANDS %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% PLUSCAL SHADING %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% The TeX pcalshading switch is set on to cause PlusCal shading to be
% performed. This changes the behavior of the following commands and
% environments to cause full-width shading to be performed on all lines.
%
% \tstrut \@x cpar mcom \@pvspace
%
% The TeX pcalsymbols switch is turned on when typesetting a PlusCal algorithm,
% whether or not shading is being performed. It causes symbols (other than
% parentheses and braces and PlusCal-only keywords) that should be typeset
% differently depending on whether they are in an algorithm to be typeset
% appropriately. Currently, the only such symbol is "||".
%
% The TeX csyntax switch is turned on when typesetting a PlusCal algorithm in
% c-syntax. This allows symbols to be format differently in the two syntaxes.
% The "else" keyword is the only one that is.
\newif\ifpcalshading \pcalshadingfalse
\newif\ifpcalsymbols \pcalsymbolsfalse
\newif\ifcsyntax \csyntaxtrue
% The \@pvspace command makes a vertical space. It uses \vspace
% except with \ifpcalshading, in which case it sets \pvcalvspace
% and the space is added by a following \@x command.
%
\newlength{\pcalvspace}\setlength{\pcalvspace}{0pt}%
\newcommand{\@pvspace}[1]{%
\ifpcalshading
\par\global\setlength{\pcalvspace}{#1}%
\else
\par\vspace{#1}%
\fi
}
% The lcom environment was changed to set \lcomindent equal to
% the indentation it produces. This length is used by the
% cpar environment to make shading extend for the full width
% of the line. This assumes that lcom environments are not
% nested. I hope TLATeX does not nest them.
%
\newlength{\lcomindent}%
\setlength{\lcomindent}{0pt}%
%\tstrut: A strut to produce inter-paragraph space in a comment.
%\rstrut: A strut to extend the bottom of a one-line comment so
% there's no break in the shading between comments on
% successive lines.
\newcommand\tstrut%
{\raisebox{\vshadelen}{\raisebox{-.25em}{\rule{0pt}{1.15em}}}%
\global\setlength{\vshadelen}{0pt}}
\newcommand\rstrut{\raisebox{-.25em}{\rule{0pt}{1.15em}}%
\global\setlength{\vshadelen}{0pt}}
% \.{op} formats operator op in math mode with empty boxes on either side.
% Used because TeX otherwise vary the amount of space it leaves around op.
\renewcommand{\.}[1]{\ensuremath{\mbox{}#1\mbox{}}}
% \@s{n} produces an n-point space
\newcommand{\@s}[1]{\hspace{#1pt}}
% \@x{txt} starts a specification line in the beginning with txt
% in the final LaTeX source.
\newlength{\@xlen}
\newcommand\xtstrut%
{\setlength{\@xlen}{1.05em}%
\addtolength{\@xlen}{\pcalvspace}%
\raisebox{\vshadelen}{\raisebox{-.25em}{\rule{0pt}{\@xlen}}}%
\global\setlength{\vshadelen}{0pt}%
\global\setlength{\pcalvspace}{0pt}}
\newcommand{\@x}[1]{\par
\ifpcalshading
\makebox[0pt][l]{\shadebox{\xtstrut\hspace*{\textwidth}}}%
\fi
\mbox{$\mbox{}#1\mbox{}$}}
% \@xx{txt} continues a specification line with the text txt.
\newcommand{\@xx}[1]{\mbox{$\mbox{}#1\mbox{}$}}
% \@y{cmt} produces a one-line comment.
\newcommand{\@y}[1]{\mbox{\footnotesize\hspace{.65em}%
\ifthenelse{\boolean{shading}}{%
\shadebox{#1\hspace{-\the\lastskip}\rstrut}}%
{#1\hspace{-\the\lastskip}\rstrut}}}
% \@z{cmt} produces a zero-width one-line comment.
\newcommand{\@z}[1]{\makebox[0pt][l]{\footnotesize
\ifthenelse{\boolean{shading}}{%
\shadebox{#1\hspace{-\the\lastskip}\rstrut}}%
{#1\hspace{-\the\lastskip}\rstrut}}}
% \@w{str} produces the TLA+ string "str".
\newcommand{\@w}[1]{\textsf{``{#1}''}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% SHADING %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\graymargin{1}
% The number of points of margin in the shaded box.
% \definecolor{boxshade}{gray}{.85}
% Defines the darkness of the shading: 1 = white, 0 = black
% Added by TLATeX only if needed.
% \shadebox{txt} puts txt in a shaded box.
\newlength{\templena}
\newlength{\templenb}
\newsavebox{\tempboxa}
\newcommand{\shadebox}[1]{{\setlength{\fboxsep}{\graymargin pt}%
\savebox{\tempboxa}{#1}%
\settoheight{\templena}{\usebox{\tempboxa}}%
\settodepth{\templenb}{\usebox{\tempboxa}}%
\hspace*{-\fboxsep}\raisebox{0pt}[\templena][\templenb]%
{\colorbox{boxshade}{\usebox{\tempboxa}}}\hspace*{-\fboxsep}}}
% \vshade{n} makes an n-point inter-paragraph space, with
% shading if the `shading' flag is true.
\newlength{\vshadelen}
\setlength{\vshadelen}{0pt}
\newcommand{\vshade}[1]{\ifthenelse{\boolean{shading}}%
{\global\setlength{\vshadelen}{#1pt}}%
{\vspace{#1pt}}}
\newlength{\boxwidth}
\newlength{\multicommentdepth}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% THE cpar ENVIRONMENT %
% ^^^^^^^^^^^^^^^^^^^^ %
% The LaTeX input %
% %
% \begin{cpar}{pop}{nest}{isLabel}{d}{e}{arg6} %
% XXXXXXXXXXXXXXX %
% XXXXXXXXXXXXXXX %
% XXXXXXXXXXXXXXX %
% \end{cpar} %
% %
% produces one of two possible results. If isLabel is the letter "T", %
% it produces the following, where [label] is the result of typesetting %
% arg6 in an LR box, and d is is a number representing a distance in %
% points. %
% %
% prevailing |<-- d -->[label]<- e ->XXXXXXXXXXXXXXX %
% left | XXXXXXXXXXXXXXX %
% margin | XXXXXXXXXXXXXXX %
% %
% If isLabel is the letter "F", then it produces %
% %
% prevailing |<-- d -->XXXXXXXXXXXXXXXXXXXXXXX %
% left | <- e ->XXXXXXXXXXXXXXXX %
% margin | XXXXXXXXXXXXXXXX %
% %
% where d and e are numbers representing distances in points. %
% %
% The prevailing left margin is the one in effect before the most recent %
% pop (argument 1) cpar environments with "T" as the nest argument, where %
% pop is a number \geq 0. %
% %
% If the nest argument is the letter "T", then the prevailing left %
% margin is moved to the left of the second (and following) lines of %
% X's. Otherwise, the prevailing left margin is left unchanged. %
% %
% An \unnest{n} command moves the prevailing left margin to where it was %
% before the most recent n cpar environments with "T" as the nesting %
% argument. %
% %
% The environment leaves no vertical space above or below it, or between %
% its paragraphs. (TLATeX inserts the proper amount of vertical space.) %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcounter{pardepth}
\setcounter{pardepth}{0}
% \setgmargin{txt} defines \gmarginN to be txt, where N is \roman{pardepth}.
% \thegmargin equals \gmarginN, where N is \roman{pardepth}.
\newcommand{\setgmargin}[1]{%
\expandafter\xdef\csname gmargin\roman{pardepth}\endcsname{#1}}
\newcommand{\thegmargin}{\csname gmargin\roman{pardepth}\endcsname}
\newcommand{\gmargin}{0pt}
\newsavebox{\tempsbox}
\newlength{\@cparht}
\newlength{\@cpardp}
\newenvironment{cpar}[6]{%
\addtocounter{pardepth}{-#1}%
\ifthenelse{\boolean{shading}}{\par\begin{lrbox}{\tempsbox}%
\begin{minipage}[t]{\linewidth}}{}%
\begin{list}{}{%
\edef\temp{\thegmargin}
\ifthenelse{\equal{#3}{T}}%
{\settowidth{\leftmargin}{\hspace{\temp}\footnotesize #6\hspace{#5pt}}%
\addtolength{\leftmargin}{#4pt}}%
{\setlength{\leftmargin}{#4pt}%
\addtolength{\leftmargin}{#5pt}%
\addtolength{\leftmargin}{\temp}%
\setlength{\itemindent}{-#5pt}}%
\ifthenelse{\equal{#2}{T}}{\addtocounter{pardepth}{1}%
\setgmargin{\the\leftmargin}}{}%
\setlength{\labelwidth}{0pt}%
\setlength{\labelsep}{0pt}%
\setlength{\itemindent}{-\leftmargin}%
\setlength{\topsep}{0pt}%
\setlength{\parsep}{0pt}%
\setlength{\partopsep}{0pt}%
\setlength{\parskip}{0pt}%
\setlength{\itemsep}{0pt}
\setlength{\itemindent}{#4pt}%
\addtolength{\itemindent}{-\leftmargin}}%
\ifthenelse{\equal{#3}{T}}%
{\item[\tstrut\footnotesize \hspace{\temp}{#6}\hspace{#5pt}]
}%
{\item[\tstrut\hspace{\temp}]%
}%
\footnotesize}
{\hspace{-\the\lastskip}\tstrut
\end{list}%
\ifthenelse{\boolean{shading}}%
{\end{minipage}%
\end{lrbox}%
\ifpcalshading
\setlength{\@cparht}{\ht\tempsbox}%
\setlength{\@cpardp}{\dp\tempsbox}%
\addtolength{\@cparht}{.15em}%
\addtolength{\@cpardp}{.2em}%
\addtolength{\@cparht}{\@cpardp}%
% I don't know what's going on here. I want to add a
% \pcalvspace high shaded line, but I don't know how to
% do it. A little trial and error shows that the following
% does a reasonable job approximating that, eliminating
% the line if \pcalvspace is small.
\addtolength{\@cparht}{\pcalvspace}%
\ifdim \pcalvspace > .8em
\addtolength{\pcalvspace}{-.2em}%
\hspace*{-\lcomindent}%
\shadebox{\rule{0pt}{\pcalvspace}\hspace*{\textwidth}}\par
\global\setlength{\pcalvspace}{0pt}%
\fi
\hspace*{-\lcomindent}%
\makebox[0pt][l]{\raisebox{-\@cpardp}[0pt][0pt]{%
\shadebox{\rule{0pt}{\@cparht}\hspace*{\textwidth}}}}%
\hspace*{\lcomindent}\usebox{\tempsbox}%
\par
\else
\shadebox{\usebox{\tempsbox}}\par
\fi}%
{}%
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% THE ppar ENVIRONMENT %
% ^^^^^^^^^^^^^^^^^^^^ %
% The environment %
% %
% \begin{ppar} ... \end{ppar} %
% %
% is equivalent to %
% %
% \begin{cpar}{0}{F}{F}{0}{0}{} ... \end{cpar} %
% %
% The environment is put around each line of the output for a PlusCal %
% algorithm. %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\newenvironment{ppar}{%
% \ifthenelse{\boolean{shading}}{\par\begin{lrbox}{\tempsbox}%
% \begin{minipage}[t]{\linewidth}}{}%
% \begin{list}{}{%
% \edef\temp{\thegmargin}
% \setlength{\leftmargin}{0pt}%
% \addtolength{\leftmargin}{\temp}%
% \setlength{\itemindent}{0pt}%
% \setlength{\labelwidth}{0pt}%
% \setlength{\labelsep}{0pt}%
% \setlength{\itemindent}{-\leftmargin}%
% \setlength{\topsep}{0pt}%
% \setlength{\parsep}{0pt}%
% \setlength{\partopsep}{0pt}%
% \setlength{\parskip}{0pt}%
% \setlength{\itemsep}{0pt}
% \setlength{\itemindent}{0pt}%
% \addtolength{\itemindent}{-\leftmargin}}%
% \item[\tstrut\hspace{\temp}]}%
% {\hspace{-\the\lastskip}\tstrut
% \end{list}%
% \ifthenelse{\boolean{shading}}{\end{minipage}
% \end{lrbox}%
% \shadebox{\usebox{\tempsbox}}\par}{}%
% }
%%% TESTING
\newcommand{\xtest}[1]{\par
\makebox[0pt][l]{\shadebox{\xtstrut\hspace*{\textwidth}}}%
\mbox{$\mbox{}#1\mbox{}$}}
% \newcommand{\xxtest}[1]{\par
% \makebox[0pt][l]{\shadebox{\xtstrut{#1}\hspace*{\textwidth}}}%
% \mbox{$\mbox{}#1\mbox{}$}}
%\newlength{\pcalvspace}
%\setlength{\pcalvspace}{0pt}
% \newlength{\xxtestlen}
% \setlength{\xxtestlen}{0pt}
% \newcommand\xtstrut%
% {\setlength{\xxtestlen}{1.15em}%
% \addtolength{\xxtestlen}{\pcalvspace}%
% \raisebox{\vshadelen}{\raisebox{-.25em}{\rule{0pt}{\xxtestlen}}}%
% \global\setlength{\vshadelen}{0pt}%
% \global\setlength{\pcalvspace}{0pt}}
%%%% TESTING
%% The xcpar environment
%% Note: overloaded use of \pcalvspace for testing.
%%
% \newlength{\xcparht}%
% \newlength{\xcpardp}%
% \newenvironment{xcpar}[6]{%
% \addtocounter{pardepth}{-#1}%
% \ifthenelse{\boolean{shading}}{\par\begin{lrbox}{\tempsbox}%
% \begin{minipage}[t]{\linewidth}}{}%
% \begin{list}{}{%
% \edef\temp{\thegmargin}%
% \ifthenelse{\equal{#3}{T}}%
% {\settowidth{\leftmargin}{\hspace{\temp}\footnotesize #6\hspace{#5pt}}%
% \addtolength{\leftmargin}{#4pt}}%
% {\setlength{\leftmargin}{#4pt}%
% \addtolength{\leftmargin}{#5pt}%
% \addtolength{\leftmargin}{\temp}%
% \setlength{\itemindent}{-#5pt}}%
% \ifthenelse{\equal{#2}{T}}{\addtocounter{pardepth}{1}%
% \setgmargin{\the\leftmargin}}{}%
% \setlength{\labelwidth}{0pt}%
% \setlength{\labelsep}{0pt}%
% \setlength{\itemindent}{-\leftmargin}%
% \setlength{\topsep}{0pt}%
% \setlength{\parsep}{0pt}%
% \setlength{\partopsep}{0pt}%
% \setlength{\parskip}{0pt}%
% \setlength{\itemsep}{0pt}%
% \setlength{\itemindent}{#4pt}%
% \addtolength{\itemindent}{-\leftmargin}}%
% \ifthenelse{\equal{#3}{T}}%
% {\item[\xtstrut\footnotesize \hspace{\temp}{#6}\hspace{#5pt}]%
% }%
% {\item[\xtstrut\hspace{\temp}]%
% }%
% \footnotesize}
% {\hspace{-\the\lastskip}\tstrut
% \end{list}%
% \ifthenelse{\boolean{shading}}{\end{minipage}
% \end{lrbox}%
% \setlength{\xcparht}{\ht\tempsbox}%
% \setlength{\xcpardp}{\dp\tempsbox}%
% \addtolength{\xcparht}{.15em}%
% \addtolength{\xcpardp}{.2em}%
% \addtolength{\xcparht}{\xcpardp}%
% \hspace*{-\lcomindent}%
% \makebox[0pt][l]{\raisebox{-\xcpardp}[0pt][0pt]{%
% \shadebox{\rule{0pt}{\xcparht}\hspace*{\textwidth}}}}%
% \hspace*{\lcomindent}\usebox{\tempsbox}%
% \par}{}%
% }
%
% \newlength{\xmcomlen}
%\newenvironment{xmcom}[1]{%
% \setcounter{pardepth}{0}%
% \hspace{.65em}%
% \begin{lrbox}{\alignbox}\sloppypar%
% \setboolean{shading}{false}%
% \setlength{\boxwidth}{#1pt}%
% \addtolength{\boxwidth}{-.65em}%
% \begin{minipage}[t]{\boxwidth}\footnotesize
% \parskip=0pt\relax}%
% {\end{minipage}\end{lrbox}%
% \setlength{\xmcomlen}{\textwidth}%
% \addtolength{\xmcomlen}{-\wd\alignbox}%
% \settodepth{\alignwidth}{\usebox{\alignbox}}%
% \global\setlength{\multicommentdepth}{\alignwidth}%
% \setlength{\boxwidth}{\alignwidth}%
% \global\addtolength{\alignwidth}{-\maxdepth}%
% \addtolength{\boxwidth}{.1em}%
% \raisebox{0pt}[0pt][0pt]{%
% \ifthenelse{\boolean{shading}}%
% {\hspace*{-\xmcomlen}\shadebox{\rule[-\boxwidth]{0pt}{0pt}%
% \hspace*{\xmcomlen}\usebox{\alignbox}}}%
% {\usebox{\alignbox}}}%
% \vspace*{\alignwidth}\pagebreak[0]\vspace{-\alignwidth}\par}
% % a multi-line comment, whose first argument is its width in points.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% THE lcom ENVIRONMENT %
% ^^^^^^^^^^^^^^^^^^^^ %
% A multi-line comment with no text to its left is typeset in an lcom %
% environment, whose argument is a number representing the indentation %
% of the left margin, in points. All the text of the comment should be %
% inside cpar environments. %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newenvironment{lcom}[1]{%
\setlength{\lcomindent}{#1pt} % Added for PlusCal handling.
\par\vspace{.2em}%
\sloppypar
\setcounter{pardepth}{0}%
\footnotesize
\begin{list}{}{%
\setlength{\leftmargin}{#1pt}
\setlength{\labelwidth}{0pt}%
\setlength{\labelsep}{0pt}%
\setlength{\itemindent}{0pt}%
\setlength{\topsep}{0pt}%
\setlength{\parsep}{0pt}%
\setlength{\partopsep}{0pt}%
\setlength{\parskip}{0pt}}
\item[]}%
{\end{list}\vspace{.3em}\setlength{\lcomindent}{0pt}%
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% THE mcom ENVIRONMENT AND \mutivspace COMMAND %
% ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ %
% %
% A part of the spec containing a right-comment of the form %
% %
% xxxx (*************) %
% yyyy (* ccccccccc *) %
% ... (* ccccccccc *) %
% (* ccccccccc *) %
% (* ccccccccc *) %
% (*************) %
% %
% is typeset by %
% %
% XXXX \begin{mcom}{d} %
% CCCC ... CCC %
% \end{mcom} %
% YYYY ... %
% \multivspace{n} %
% %
% where the number d is the width in points of the comment, n is the %
% number of xxxx, yyyy, ... lines to the left of the comment. %
% All the text of the comment should be typeset in cpar environments. %
% %
% This puts the comment into a single box (so no page breaks can occur %
% within it). The entire box is shaded iff the shading flag is true. %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newlength{\xmcomlen}%
\newenvironment{mcom}[1]{%
\setcounter{pardepth}{0}%
\hspace{.65em}%
\begin{lrbox}{\alignbox}\sloppypar%
\setboolean{shading}{false}%
\setlength{\boxwidth}{#1pt}%
\addtolength{\boxwidth}{-.65em}%
\begin{minipage}[t]{\boxwidth}\footnotesize
\parskip=0pt\relax}%
{\end{minipage}\end{lrbox}%
\setlength{\xmcomlen}{\textwidth}% % For PlusCal shading
\addtolength{\xmcomlen}{-\wd\alignbox}% % For PlusCal shading
\settodepth{\alignwidth}{\usebox{\alignbox}}%
\global\setlength{\multicommentdepth}{\alignwidth}%
\setlength{\boxwidth}{\alignwidth}% % For PlusCal shading
\global\addtolength{\alignwidth}{-\maxdepth}%
\addtolength{\boxwidth}{.1em}% % For PlusCal shading
\raisebox{0pt}[0pt][0pt]{%
\ifthenelse{\boolean{shading}}%
{\ifpcalshading
\hspace*{-\xmcomlen}%
\shadebox{\rule[-\boxwidth]{0pt}{0pt}\hspace*{\xmcomlen}%
\usebox{\alignbox}}%
\else
\shadebox{\usebox{\alignbox}}
\fi
}%
{\usebox{\alignbox}}}%
\vspace*{\alignwidth}\pagebreak[0]\vspace{-\alignwidth}\par}
% a multi-line comment, whose first argument is its width in points.
% \multispace{n} produces the vertical space indicated by "|"s in
% this situation
%
% xxxx (*************)
% xxxx (* ccccccccc *)
% | (* ccccccccc *)
% | (* ccccccccc *)
% | (* ccccccccc *)
% | (*************)
%
% where n is the number of "xxxx" lines.
\newcommand{\multivspace}[1]{\addtolength{\multicommentdepth}{-#1\baselineskip}%
\addtolength{\multicommentdepth}{1.2em}%
\ifthenelse{\lengthtest{\multicommentdepth > 0pt}}%
{\par\vspace{\multicommentdepth}\par}{}}
%\newenvironment{hpar}[2]{%
% \begin{list}{}{\setlength{\leftmargin}{#1pt}%
% \addtolength{\leftmargin}{#2pt}%
% \setlength{\itemindent}{-#2pt}%
% \setlength{\topsep}{0pt}%
% \setlength{\parsep}{0pt}%
% \setlength{\partopsep}{0pt}%
% \setlength{\parskip}{0pt}%
% \addtolength{\labelsep}{0pt}}%
% \item[]\footnotesize}{\end{list}}
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% % Typesets a sequence of paragraphs like this: %
% % %
% % left |<-- d1 --> XXXXXXXXXXXXXXXXXXXXXXXX %
% % margin | <- d2 -> XXXXXXXXXXXXXXX %
% % | XXXXXXXXXXXXXXX %
% % | %
% % | XXXXXXXXXXXXXXX %
% % | XXXXXXXXXXXXXXX %
% % %
% % where d1 = #1pt and d2 = #2pt, but with no vspace between %
% % paragraphs. %
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Commands for repeated characters that produce dashes. %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \raisedDash{wd}{ht}{thk} makes a horizontal line wd characters wide,
% raised a distance ht ex's above the baseline, with a thickness of
% thk em's.
\newcommand{\raisedDash}[3]{\raisebox{#2ex}{\setlength{\alignwidth}{.5em}%
\rule{#1\alignwidth}{#3em}}}
% The following commands take a single argument n and produce the
% output for n repeated characters, as follows
% \cdash: -
% \tdash: ~
% \ceqdash: =
% \usdash: _
\newcommand{\cdash}[1]{\raisedDash{#1}{.5}{.04}}
\newcommand{\usdash}[1]{\raisedDash{#1}{0}{.04}}
\newcommand{\ceqdash}[1]{\raisedDash{#1}{.5}{.08}}
\newcommand{\tdash}[1]{\raisedDash{#1}{1}{.08}}
\newlength{\spacewidth}
\setlength{\spacewidth}{.2em}
\newcommand{\e}[1]{\hspace{#1\spacewidth}}
%% \e{i} produces space corresponding to i input spaces.
%% Alignment-file Commands
\newlength{\alignboxwidth}
\newlength{\alignwidth}
\newsavebox{\alignbox}
% \al{i}{j}{txt} is used in the alignment file to put "%{i}{j}{wd}"
% in the log file, where wd is the width of the line up to that point,
% and txt is the following text.
\newcommand{\al}[3]{%
\typeout{\%{#1}{#2}{\the\alignwidth}}%
\cl{#3}}
%% \cl{txt} continues a specification line in the alignment file
%% with text txt.
\newcommand{\cl}[1]{%
\savebox{\alignbox}{\mbox{$\mbox{}#1\mbox{}$}}%
\settowidth{\alignboxwidth}{\usebox{\alignbox}}%
\addtolength{\alignwidth}{\alignboxwidth}%
\usebox{\alignbox}}
% \fl{txt} in the alignment file begins a specification line that
% starts with the text txt.
\newcommand{\fl}[1]{%
\par
\savebox{\alignbox}{\mbox{$\mbox{}#1\mbox{}$}}%
\settowidth{\alignwidth}{\usebox{\alignbox}}%
\usebox{\alignbox}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Ordinarily, TeX typesets letters in math mode in a special math italic %
% font. This makes it typeset "it" to look like the product of the %
% variables i and t, rather than like the word "it". The following %
% commands tell TeX to use an ordinary italic font instead. %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifx\documentclass\undefined
\else
\DeclareSymbolFont{tlaitalics}{\encodingdefault}{cmr}{m}{it}
\let\itfam\symtlaitalics
\fi
\makeatletter
\newcommand{\tlx@c}{\c@tlx@ctr\advance\c@tlx@ctr\@ne}
\newcounter{tlx@ctr}
\c@tlx@ctr=\itfam \multiply\c@tlx@ctr"100\relax \advance\c@tlx@ctr "7061\relax
\mathcode`a=\tlx@c \mathcode`b=\tlx@c \mathcode`c=\tlx@c \mathcode`d=\tlx@c
\mathcode`e=\tlx@c \mathcode`f=\tlx@c \mathcode`g=\tlx@c \mathcode`h=\tlx@c
\mathcode`i=\tlx@c \mathcode`j=\tlx@c \mathcode`k=\tlx@c \mathcode`l=\tlx@c
\mathcode`m=\tlx@c \mathcode`n=\tlx@c \mathcode`o=\tlx@c \mathcode`p=\tlx@c
\mathcode`q=\tlx@c \mathcode`r=\tlx@c \mathcode`s=\tlx@c \mathcode`t=\tlx@c
\mathcode`u=\tlx@c \mathcode`v=\tlx@c \mathcode`w=\tlx@c \mathcode`x=\tlx@c
\mathcode`y=\tlx@c \mathcode`z=\tlx@c
\c@tlx@ctr=\itfam \multiply\c@tlx@ctr"100\relax \advance\c@tlx@ctr "7041\relax
\mathcode`A=\tlx@c \mathcode`B=\tlx@c \mathcode`C=\tlx@c \mathcode`D=\tlx@c
\mathcode`E=\tlx@c \mathcode`F=\tlx@c \mathcode`G=\tlx@c \mathcode`H=\tlx@c
\mathcode`I=\tlx@c \mathcode`J=\tlx@c \mathcode`K=\tlx@c \mathcode`L=\tlx@c
\mathcode`M=\tlx@c \mathcode`N=\tlx@c \mathcode`O=\tlx@c \mathcode`P=\tlx@c
\mathcode`Q=\tlx@c \mathcode`R=\tlx@c \mathcode`S=\tlx@c \mathcode`T=\tlx@c
\mathcode`U=\tlx@c \mathcode`V=\tlx@c \mathcode`W=\tlx@c \mathcode`X=\tlx@c
\mathcode`Y=\tlx@c \mathcode`Z=\tlx@c
\makeatother
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% THE describe ENVIRONMENT %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%
% It is like the description environment except it takes an argument
% ARG that should be the text of the widest label. It adjusts the
% indentation so each item with label LABEL produces
%% LABEL blah blah blah
%% <- width of ARG ->blah blah blah
%% blah blah blah
\newenvironment{describe}[1]%
{\begin{list}{}{\settowidth{\labelwidth}{#1}%
\setlength{\labelsep}{.5em}%
\setlength{\leftmargin}{\labelwidth}%
\addtolength{\leftmargin}{\labelsep}%
\addtolength{\leftmargin}{\parindent}%
\def\makelabel##1{\rm ##1\hfill}}%
\setlength{\topsep}{0pt}}%%
% Sets \topsep to 0 to reduce vertical space above
% and below embedded displayed equations
{\end{list}}
% For tlatex.TeX
\usepackage{verbatim}
\makeatletter
\def\tla{\let\%\relax%
\@bsphack
\typeout{\%{\the\linewidth}}%
\let\do\@makeother\dospecials\catcode`\^^M\active
\let\verbatim@startline\relax
\let\verbatim@addtoline\@gobble
\let\verbatim@processline\relax
\let\verbatim@finish\relax
\verbatim@}
\let\endtla=\@esphack
\let\pcal=\tla
\let\endpcal=\endtla
\let\ppcal=\tla
\let\endppcal=\endtla
% The tlatex environment is used by TLATeX.TeX to typeset TLA+.
% TLATeX.TLA starts its files by writing a \tlatex command. This
% command/environment sets \parindent to 0 and defines \% to its
% standard definition because the writing of the log files is messed up
% if \% is defined to be something else. It also executes
% \@computerule to determine the dimensions for the TLA horizonatl
% bars.
\newenvironment{tlatex}{\@computerule%
\setlength{\parindent}{0pt}%
\makeatletter\chardef\%=`\%}{}
% The notla environment produces no output. You can turn a
% tla environment to a notla environment to prevent tlatex.TeX from
% re-formatting the environment.
\def\notla{\let\%\relax%
\@bsphack
\let\do\@makeother\dospecials\catcode`\^^M\active
\let\verbatim@startline\relax
\let\verbatim@addtoline\@gobble
\let\verbatim@processline\relax
\let\verbatim@finish\relax
\verbatim@}
\let\endnotla=\@esphack
\let\nopcal=\notla
\let\endnopcal=\endnotla
\let\noppcal=\notla
\let\endnoppcal=\endnotla
%%%%%%%%%%%%%%%%%%%%%%%% end of tlatex.sty file %%%%%%%%%%%%%%%%%%%%%%%
% last modified on Fri 3 August 2012 at 14:23:49 PST by lamport
\begin{document}
\tlatex
\setboolean{shading}{true}
\@x{}\moduleLeftDash\@xx{ {\MODULE} 1Bit}\moduleRightDash\@xx{}%
\@x{}%
\@y{\@s{0}%
\ensuremath{1Bit} implementation of mutual exclusion
}%
\@xx{}%
\@x{ {\EXTENDS} Integers}%
\@pvspace{8.0pt}%
\@x{ {\CONSTANT} N}%
\@x{ {\ASSUME} N \.{\in} Nat}%
\@pvspace{8.0pt}%
\@x{ Procs \.{\defeq} 0 \.{\dotdot} N}%
\@pvspace{8.0pt}%
\begin{lcom}{5.0}%
\begin{cpar}{0}{F}{F}{0}{0}{}%
*******
\end{cpar}%
\end{lcom}%
\pcalsymbolstrue
\pcalshadingtrue
\csyntaxtrue
\@x{ {\p@mmalgorithm} 1BitProtocol {\p@lbrace}}%
\@x{\@s{16.4} {\p@variables} flag \.{=} [ i \.{\in} Procs \.{\mapsto}
{\FALSE} ] {\p@semicolon}}%
\@x{\@s{16.4} {\p@process} {\p@lparen} P \.{\in} Procs {\p@rparen}
{\p@lbrace}}%
\@x{\@s{20.5} ncs\@s{.5}\textrm{:}\@s{3} {\p@while} {\p@lparen} {\TRUE}
{\p@rparen} {\p@lbrace}}%
\@x{\@s{50.21} {\p@skip} {\p@semicolon}}%
\@x{\@s{20.5} enter\@s{.5}\textrm{:}\@s{3} flag [ self ] \.{:=} {\TRUE}
{\p@semicolon}}%
\@x{\@s{32.8} e2\@s{.5}\textrm{:}\@s{3}\@s{0.78} {\p@if} {\p@lparen} flag [ 1
\.{-} self ] {\p@rparen} {\p@lbrace}}%
\@x{\@s{32.8} e3\@s{.5}\textrm{:}\@s{3}\@s{8.98} flag [ self ] \.{:=}
{\FALSE} {\p@semicolon}}%
\@x{\@s{58.41} {\p@goto} enter {\p@semicolon}}%
\@x{\@s{50.21} {\p@rbrace} {\p@semicolon}}%
\@x{\@s{32.8} cs\@s{.5}\textrm{:}\@s{3}\@s{1.62} {\p@skip} {\p@semicolon}}%
\@x{\@s{24.6} exit\@s{.5}\textrm{:}\@s{3}\@s{2.76} flag [ self ] \.{:=}
{\FALSE} {\p@semicolon}}%
\@x{\@s{16.4} {\p@rbrace}}%
\@x{\@s{8.2} {\p@rbrace}}%
\@x{ {\p@rbrace}}%
\@y{}%
\@xx{}%
\pcalshadingfalse \pcalsymbolsfalse
\begin{lcom}{5.0}%
\begin{cpar}{0}{F}{F}{0}{0}{}%
*******
\end{cpar}%
\end{lcom}%
\@x{}%
\@y{\@s{0}%
BEGIN TRANSLATION (\ensuremath{chksum(pcal) \.{=}} ``\ensuremath{b33e7cec}''
\ensuremath{\.{\land} chksum(tla) \.{=}} ``\ensuremath{338dfe4c}'')
}%
\@xx{}%
\@x{ {\VARIABLES} flag ,\, pc}%
\@pvspace{8.0pt}%
\@x{ vars \.{\defeq} {\langle} flag ,\, pc {\rangle}}%
\@pvspace{8.0pt}%
\@x{ ProcSet \.{\defeq} ( Procs )}%
\@pvspace{8.0pt}%
\@x{ Init \.{\defeq}}%
\@y{\@s{0}%
Global variables
}%
\@xx{}%
\@x{\@s{35.70} \.{\land} flag \.{=} [ i \.{\in} Procs \.{\mapsto} {\FALSE} ]}%
\@x{\@s{35.70} \.{\land} pc \.{=} [ self \.{\in} ProcSet \.{\mapsto}\@w{ncs}
]}%
\@pvspace{8.0pt}%
\@x{ ncs ( self ) \.{\defeq} \.{\land} pc [ self ] \.{=}\@w{ncs}}%
\@x{\@s{58.22} \.{\land} {\TRUE}}%
\@x{\@s{58.22} \.{\land} pc \.{'} \.{=} [ pc {\EXCEPT} {\bang} [ self ]
\.{=}\@w{enter} ]}%
\@x{\@s{58.22} \.{\land} flag \.{'} \.{=} flag}%
\@pvspace{8.0pt}%
\@x{ enter ( self ) \.{\defeq} \.{\land} pc [ self ] \.{=}\@w{enter}}%
\@x{\@s{66.53} \.{\land} flag \.{'} \.{=} [ flag {\EXCEPT} {\bang} [ self ]
\.{=} {\TRUE} ]}%
\@x{\@s{66.53} \.{\land} pc \.{'} \.{=} [ pc {\EXCEPT} {\bang} [ self ]
\.{=}\@w{e2} ]}%
\@pvspace{8.0pt}%
\@x{ e2 ( self ) \.{\defeq} \.{\land} pc [ self ] \.{=}\@w{e2}}%
\@x{\@s{53.44} \.{\land} {\IF} flag [ 1 \.{-} self ]}%
\@x{\@s{76.71} \.{\THEN} \.{\land} pc \.{'} \.{=} [ pc {\EXCEPT} {\bang} [
self ] \.{=}\@w{e3} ]}%
\@x{\@s{76.71} \.{\ELSE} \.{\land} pc \.{'} \.{=} [ pc {\EXCEPT} {\bang} [
self ] \.{=}\@w{cs} ]}%
\@x{\@s{53.44} \.{\land} flag \.{'} \.{=} flag}%
\@pvspace{8.0pt}%
\@x{ e3 ( self ) \.{\defeq} \.{\land} pc [ self ] \.{=}\@w{e3}}%
\@x{\@s{53.44} \.{\land} flag \.{'} \.{=} [ flag {\EXCEPT} {\bang} [ self ]
\.{=} {\FALSE} ]}%
\@x{\@s{53.44} \.{\land} pc \.{'} \.{=} [ pc {\EXCEPT} {\bang} [ self ]
\.{=}\@w{enter} ]}%
\@pvspace{8.0pt}%
\@x{ cs ( self )\@s{0.84} \.{\defeq} \.{\land} pc [ self ] \.{=}\@w{cs}}%
\@x{\@s{53.44} \.{\land} {\TRUE}}%
\@x{\@s{53.44} \.{\land} pc \.{'} \.{=} [ pc {\EXCEPT} {\bang} [ self ]
\.{=}\@w{exit} ]}%
\@x{\@s{53.44} \.{\land} flag \.{'} \.{=} flag}%
\@pvspace{8.0pt}%
\@x{ exit ( self ) \.{\defeq} \.{\land} pc [ self ] \.{=}\@w{exit}}%
\@x{\@s{59.67} \.{\land} flag \.{'} \.{=} [ flag {\EXCEPT} {\bang} [ self ]
\.{=} {\FALSE} ]}%
\@x{\@s{59.67} \.{\land} pc \.{'} \.{=} [ pc {\EXCEPT} {\bang} [ self ]
\.{=}\@w{ncs} ]}%
\@pvspace{8.0pt}%
\@x{ P ( self ) \.{\defeq} ncs ( self ) \.{\lor} enter ( self ) \.{\lor} e2 (
self ) \.{\lor} e3 ( self ) \.{\lor} cs ( self )}%
\@x{\@s{66.03} \.{\lor} exit ( self )}%
\@pvspace{8.0pt}%
\@x{ Next \.{\defeq} ( \E\, self \.{\in} Procs \.{:} P ( self ) )}%
\@pvspace{8.0pt}%
\@x{ Spec\@s{1.46} \.{\defeq} Init \.{\land} {\Box} [ Next ]_{ vars}}%
\@pvspace{8.0pt}%
\@x{}%
\@y{\@s{0}%
END TRANSLATION
}%
\@xx{}%
\@pvspace{8.0pt}%
\@x{}\midbar\@xx{}%
\@pvspace{8.0pt}%
\@x{}%
\@y{\@s{0}%
Invariant which implies \ensuremath{MutualExclusion
}}%
\@xx{}%
\@x{}%
\@y{%
\ensuremath{Inv \.{\defeq} \A\, i \.{\in} Procs} : (\ensuremath{pc[i] \.{=}
\@w{cs}}) \ensuremath{\.{\implies}} (\ensuremath{flag[i] \.{\land}}
(\ensuremath{{\lnot}flag[1\.{-}i] \.{\lor} pc[1\.{-}i] \.{=} \@w{e2}}))
}%
\@xx{}%
\@x{ Inv \.{\defeq} \A\, i \.{\in} Procs \.{:} ( pc [ i ] \.{=}\@w{cs} )
\.{\implies} ( flag [ i ] \.{\land} ( {\lnot} flag [ 1 \.{-} i ] \.{\lor} pc
[ 1 \.{-} i ] \.{=}\@w{e2} ) )}%
\@pvspace{16.0pt}%
\@x{ ME \.{\defeq} {\INSTANCE} MutualExclusionSpec {\WITH}}%
\@x{\@s{86.45} pc \.{\leftarrow} [ proc \.{\in} Procs\@s{4.1}
\.{\mapsto}\@s{4.1} {\CASE} pc [ proc ] \.{=}\@w{cs}\@s{49.19}
\.{\rightarrow}\@s{4.1}\@w{cs}}%
\@x{\@s{203.01} {\Box}\@s{10.30} pc [ proc ] \.{\in} \{\@w{enter} ,\,\@w{e2}
\}\@s{0.83} \.{\rightarrow}\@s{4.09}\@w{csentry}\@s{4.1}}%
\@y{\@s{0}%
\ensuremath{XXX \.{+}e3
}}%
\@xx{}%
\@x{\@s{203.01} {\Box}\@s{10.30} {\OTHER}\@s{80.93}
\.{\rightarrow}\@s{4.1}\@w{non{-}cs} ]}%
\@pvspace{8.0pt}%
\@x{ {\THEOREM} Spec \.{\implies} ME {\bang} Spec}%
\@x{ {\THEOREM} Spec \.{\implies} {\Box} ME {\bang} MutualExclusion}%
\@x{ {\THEOREM} Spec \.{\implies} ME {\bang} Liveness}%
\@pvspace{16.0pt}%
\@x{}\bottombar\@xx{}%
\setboolean{shading}{false}
\begin{lcom}{0}%
\begin{cpar}{0}{F}{F}{0}{0}{}%
\ensuremath{\.{\,\backslash\,}\.{*}} Modification History
\end{cpar}%
\begin{cpar}{0}{F}{F}{0}{0}{}%
\ensuremath{\.{\,\backslash\,}\.{*}} Last modified \ensuremath{Wed}
\ensuremath{Feb} 09 21:12:19 \ensuremath{MSK} 2022 by \ensuremath{kirr
}%
\end{cpar}%
\begin{cpar}{0}{F}{F}{0}{0}{}%
\ensuremath{\.{\,\backslash\,}\.{*}} Created \ensuremath{Wed}
\ensuremath{Feb} 09 20:01:56 \ensuremath{MSK} 2022 by \ensuremath{kirr
}%
\end{cpar}%
\end{lcom}%
\end{document}
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.lamport.tla.toolbox.tool.tlc.modelCheck">
<stringAttribute key="TLCCmdLineParameters" value=""/>
<stringAttribute key="alias" value=""/>
<intAttribute key="collectCoverage" value="1"/>
<stringAttribute key="configurationName" value="Model_1"/>
<booleanAttribute key="deferLiveness" value="false"/>
<intAttribute key="dfidDepth" value="100"/>
<booleanAttribute key="dfidMode" value="false"/>
<intAttribute key="distributedFPSetCount" value="0"/>
<stringAttribute key="distributedNetworkInterface" value="192.168.122.1"/>
<intAttribute key="distributedNodesCount" value="1"/>
<stringAttribute key="distributedTLC" value="off"/>
<stringAttribute key="distributedTLCVMArgs" value=""/>
<intAttribute key="fpBits" value="1"/>
<intAttribute key="fpIndex" value="37"/>
<booleanAttribute key="fpIndexRandom" value="true"/>
<intAttribute key="maxHeapSize" value="25"/>
<intAttribute key="maxSetSize" value="1000000"/>
<booleanAttribute key="mcMode" value="true"/>
<stringAttribute key="modelBehaviorInit" value=""/>
<stringAttribute key="modelBehaviorNext" value=""/>
<stringAttribute key="modelBehaviorSpec" value="Spec"/>
<intAttribute key="modelBehaviorSpecType" value="1"/>
<stringAttribute key="modelBehaviorVars" value="flag, pc"/>
<stringAttribute key="modelComments" value=""/>
<booleanAttribute key="modelCorrectnessCheckDeadlock" value="true"/>
<listAttribute key="modelCorrectnessInvariants">
<listEntry value="1ME!MutualExclusion"/>
<listEntry value="1Inv"/>
</listAttribute>
<listAttribute key="modelCorrectnessProperties">
<listEntry value="0ME!Spec"/>
<listEntry value="1ME!Liveness"/>
</listAttribute>
<intAttribute key="modelEditorOpenTabs" value="8"/>
<stringAttribute key="modelExpressionEval" value=""/>
<listAttribute key="modelParameterConstants">
<listEntry value="N;;1;0;0"/>
</listAttribute>
<intAttribute key="modelVersion" value="20191005"/>
<intAttribute key="numberOfWorkers" value="2"/>
<stringAttribute key="postCondition" value=""/>
<booleanAttribute key="recover" value="false"/>
<stringAttribute key="result.mail.address" value=""/>
<intAttribute key="simuAril" value="-1"/>
<intAttribute key="simuDepth" value="100"/>
<stringAttribute key="simuNumTraces" value="9223372036854775807"/>
<intAttribute key="simuSeed" value="-1"/>
<stringAttribute key="specName" value="1Bit"/>
<stringAttribute key="tlcResourcesProfile" value="local custom"/>
<stringAttribute key="view" value=""/>
<booleanAttribute key="visualizeStateGraph" value="true"/>
</launchConfiguration>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.lamport.tla.toolbox.tool.tlc.modelCheck">
<stringAttribute key="TLCCmdLineParameters" value=""/>
<stringAttribute key="alias" value=""/>
<intAttribute key="collectCoverage" value="1"/>
<stringAttribute key="configurationName" value="Model_1_SnapShot_1644430443440"/>
<booleanAttribute key="deferLiveness" value="false"/>
<intAttribute key="dfidDepth" value="100"/>
<booleanAttribute key="dfidMode" value="false"/>
<intAttribute key="distributedFPSetCount" value="0"/>
<stringAttribute key="distributedNetworkInterface" value="192.168.122.1"/>
<intAttribute key="distributedNodesCount" value="1"/>
<stringAttribute key="distributedTLC" value="off"/>
<stringAttribute key="distributedTLCVMArgs" value=""/>
<intAttribute key="fpBits" value="1"/>
<intAttribute key="fpIndex" value="82"/>
<booleanAttribute key="fpIndexRandom" value="true"/>
<intAttribute key="maxHeapSize" value="25"/>
<intAttribute key="maxSetSize" value="1000000"/>
<booleanAttribute key="mcMode" value="true"/>
<stringAttribute key="modelBehaviorInit" value=""/>
<stringAttribute key="modelBehaviorNext" value=""/>
<stringAttribute key="modelBehaviorSpec" value="Spec"/>
<intAttribute key="modelBehaviorSpecType" value="1"/>
<stringAttribute key="modelBehaviorVars" value="flag, pc"/>
<stringAttribute key="modelComments" value=""/>
<booleanAttribute key="modelCorrectnessCheckDeadlock" value="true"/>
<listAttribute key="modelCorrectnessInvariants">
<listEntry value="1ME!MutualExclusion"/>
<listEntry value="1Inv"/>
</listAttribute>
<listAttribute key="modelCorrectnessProperties">
<listEntry value="0ME!Spec"/>
<listEntry value="0ME!Liveness"/>
</listAttribute>
<intAttribute key="modelEditorOpenTabs" value="8"/>
<stringAttribute key="modelExpressionEval" value=""/>
<listAttribute key="modelParameterConstants">
<listEntry value="N;;1;0;0"/>
</listAttribute>
<intAttribute key="modelVersion" value="20191005"/>
<intAttribute key="numberOfWorkers" value="2"/>
<stringAttribute key="postCondition" value=""/>
<booleanAttribute key="recover" value="false"/>
<stringAttribute key="result.mail.address" value=""/>
<intAttribute key="simuAril" value="-1"/>
<intAttribute key="simuDepth" value="100"/>
<stringAttribute key="simuNumTraces" value="9223372036854775807"/>
<intAttribute key="simuSeed" value="-1"/>
<stringAttribute key="specName" value="1Bit"/>
<stringAttribute key="tlcResourcesProfile" value="local custom"/>
<stringAttribute key="view" value=""/>
<booleanAttribute key="visualizeStateGraph" value="true"/>
</launchConfiguration>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.lamport.tla.toolbox.tool.tlc.modelCheck">
<stringAttribute key="TLCCmdLineParameters" value=""/>
<stringAttribute key="alias" value=""/>
<intAttribute key="collectCoverage" value="1"/>
<stringAttribute key="configurationName" value="Model_1_SnapShot_1644430451766"/>
<booleanAttribute key="deferLiveness" value="false"/>
<intAttribute key="dfidDepth" value="100"/>
<booleanAttribute key="dfidMode" value="false"/>
<intAttribute key="distributedFPSetCount" value="0"/>
<stringAttribute key="distributedNetworkInterface" value="192.168.122.1"/>
<intAttribute key="distributedNodesCount" value="1"/>
<stringAttribute key="distributedTLC" value="off"/>
<stringAttribute key="distributedTLCVMArgs" value=""/>
<intAttribute key="fpBits" value="1"/>
<intAttribute key="fpIndex" value="119"/>
<booleanAttribute key="fpIndexRandom" value="true"/>
<intAttribute key="maxHeapSize" value="25"/>
<intAttribute key="maxSetSize" value="1000000"/>
<booleanAttribute key="mcMode" value="true"/>
<stringAttribute key="modelBehaviorInit" value=""/>
<stringAttribute key="modelBehaviorNext" value=""/>
<stringAttribute key="modelBehaviorSpec" value="Spec"/>
<intAttribute key="modelBehaviorSpecType" value="1"/>
<stringAttribute key="modelBehaviorVars" value="flag, pc"/>
<stringAttribute key="modelComments" value=""/>
<booleanAttribute key="modelCorrectnessCheckDeadlock" value="true"/>
<listAttribute key="modelCorrectnessInvariants">
<listEntry value="1ME!MutualExclusion"/>
<listEntry value="1Inv"/>
</listAttribute>
<listAttribute key="modelCorrectnessProperties">
<listEntry value="1ME!Spec"/>
<listEntry value="0ME!Liveness"/>
</listAttribute>
<intAttribute key="modelEditorOpenTabs" value="8"/>
<stringAttribute key="modelExpressionEval" value=""/>
<listAttribute key="modelParameterConstants">
<listEntry value="N;;1;0;0"/>
</listAttribute>
<intAttribute key="modelVersion" value="20191005"/>
<intAttribute key="numberOfWorkers" value="2"/>
<stringAttribute key="postCondition" value=""/>
<booleanAttribute key="recover" value="false"/>
<stringAttribute key="result.mail.address" value=""/>
<intAttribute key="simuAril" value="-1"/>
<intAttribute key="simuDepth" value="100"/>
<stringAttribute key="simuNumTraces" value="9223372036854775807"/>
<intAttribute key="simuSeed" value="-1"/>
<stringAttribute key="specName" value="1Bit"/>
<stringAttribute key="tlcResourcesProfile" value="local custom"/>
<stringAttribute key="view" value=""/>
<booleanAttribute key="visualizeStateGraph" value="true"/>
</launchConfiguration>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.lamport.tla.toolbox.tool.tlc.modelCheck">
<stringAttribute key="TLCCmdLineParameters" value=""/>
<stringAttribute key="alias" value=""/>
<intAttribute key="collectCoverage" value="1"/>
<stringAttribute key="configurationName" value="Model_1_SnapShot_1644430485644"/>
<booleanAttribute key="deferLiveness" value="false"/>
<intAttribute key="dfidDepth" value="100"/>
<booleanAttribute key="dfidMode" value="false"/>
<intAttribute key="distributedFPSetCount" value="0"/>
<stringAttribute key="distributedNetworkInterface" value="192.168.122.1"/>
<intAttribute key="distributedNodesCount" value="1"/>
<stringAttribute key="distributedTLC" value="off"/>
<stringAttribute key="distributedTLCVMArgs" value=""/>
<intAttribute key="fpBits" value="1"/>
<intAttribute key="fpIndex" value="31"/>
<booleanAttribute key="fpIndexRandom" value="true"/>
<intAttribute key="maxHeapSize" value="25"/>
<intAttribute key="maxSetSize" value="1000000"/>
<booleanAttribute key="mcMode" value="true"/>
<stringAttribute key="modelBehaviorInit" value=""/>
<stringAttribute key="modelBehaviorNext" value=""/>
<stringAttribute key="modelBehaviorSpec" value="Spec"/>
<intAttribute key="modelBehaviorSpecType" value="1"/>
<stringAttribute key="modelBehaviorVars" value="flag, pc"/>
<stringAttribute key="modelComments" value=""/>
<booleanAttribute key="modelCorrectnessCheckDeadlock" value="true"/>
<listAttribute key="modelCorrectnessInvariants">
<listEntry value="1ME!MutualExclusion"/>
<listEntry value="1Inv"/>
</listAttribute>
<listAttribute key="modelCorrectnessProperties">
<listEntry value="1ME!Spec"/>
<listEntry value="0ME!Liveness"/>
</listAttribute>
<intAttribute key="modelEditorOpenTabs" value="8"/>
<stringAttribute key="modelExpressionEval" value=""/>
<listAttribute key="modelParameterConstants">
<listEntry value="N;;1;0;0"/>
</listAttribute>
<intAttribute key="modelVersion" value="20191005"/>
<intAttribute key="numberOfWorkers" value="2"/>
<stringAttribute key="postCondition" value=""/>
<booleanAttribute key="recover" value="false"/>
<stringAttribute key="result.mail.address" value=""/>
<intAttribute key="simuAril" value="-1"/>
<intAttribute key="simuDepth" value="100"/>
<stringAttribute key="simuNumTraces" value="9223372036854775807"/>
<intAttribute key="simuSeed" value="-1"/>
<stringAttribute key="specName" value="1Bit"/>
<stringAttribute key="tlcResourcesProfile" value="local custom"/>
<stringAttribute key="view" value=""/>
<booleanAttribute key="visualizeStateGraph" value="true"/>
</launchConfiguration>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.lamport.tla.toolbox.tool.tlc.modelCheck">
<stringAttribute key="TLCCmdLineParameters" value=""/>
<stringAttribute key="alias" value=""/>
<intAttribute key="collectCoverage" value="1"/>
<stringAttribute key="configurationName" value="Model_1_SnapShot_1644430510155"/>
<booleanAttribute key="deferLiveness" value="false"/>
<intAttribute key="dfidDepth" value="100"/>
<booleanAttribute key="dfidMode" value="false"/>
<intAttribute key="distributedFPSetCount" value="0"/>
<stringAttribute key="distributedNetworkInterface" value="192.168.122.1"/>
<intAttribute key="distributedNodesCount" value="1"/>
<stringAttribute key="distributedTLC" value="off"/>
<stringAttribute key="distributedTLCVMArgs" value=""/>
<intAttribute key="fpBits" value="1"/>
<intAttribute key="fpIndex" value="30"/>
<booleanAttribute key="fpIndexRandom" value="true"/>
<intAttribute key="maxHeapSize" value="25"/>
<intAttribute key="maxSetSize" value="1000000"/>
<booleanAttribute key="mcMode" value="true"/>
<stringAttribute key="modelBehaviorInit" value=""/>
<stringAttribute key="modelBehaviorNext" value=""/>
<stringAttribute key="modelBehaviorSpec" value="Spec"/>
<intAttribute key="modelBehaviorSpecType" value="1"/>
<stringAttribute key="modelBehaviorVars" value="flag, pc"/>
<stringAttribute key="modelComments" value=""/>
<booleanAttribute key="modelCorrectnessCheckDeadlock" value="true"/>
<listAttribute key="modelCorrectnessInvariants">
<listEntry value="1ME!MutualExclusion"/>
<listEntry value="1Inv"/>
</listAttribute>
<listAttribute key="modelCorrectnessProperties">
<listEntry value="0ME!Spec"/>
<listEntry value="0ME!Liveness"/>
</listAttribute>
<intAttribute key="modelEditorOpenTabs" value="8"/>
<stringAttribute key="modelExpressionEval" value=""/>
<listAttribute key="modelParameterConstants">
<listEntry value="N;;1;0;0"/>
</listAttribute>
<intAttribute key="modelVersion" value="20191005"/>
<intAttribute key="numberOfWorkers" value="2"/>
<stringAttribute key="postCondition" value=""/>
<booleanAttribute key="recover" value="false"/>
<stringAttribute key="result.mail.address" value=""/>
<intAttribute key="simuAril" value="-1"/>
<intAttribute key="simuDepth" value="100"/>
<stringAttribute key="simuNumTraces" value="9223372036854775807"/>
<intAttribute key="simuSeed" value="-1"/>
<stringAttribute key="specName" value="1Bit"/>
<stringAttribute key="tlcResourcesProfile" value="local custom"/>
<stringAttribute key="view" value=""/>
<booleanAttribute key="visualizeStateGraph" value="true"/>
</launchConfiguration>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.lamport.tla.toolbox.tool.tlc.modelCheck">
<stringAttribute key="TLCCmdLineParameters" value=""/>
<stringAttribute key="alias" value=""/>
<intAttribute key="collectCoverage" value="1"/>
<stringAttribute key="configurationName" value="Model_1_SnapShot_1644430518151"/>
<booleanAttribute key="deferLiveness" value="false"/>
<intAttribute key="dfidDepth" value="100"/>
<booleanAttribute key="dfidMode" value="false"/>
<intAttribute key="distributedFPSetCount" value="0"/>
<stringAttribute key="distributedNetworkInterface" value="192.168.122.1"/>
<intAttribute key="distributedNodesCount" value="1"/>
<stringAttribute key="distributedTLC" value="off"/>
<stringAttribute key="distributedTLCVMArgs" value=""/>
<intAttribute key="fpBits" value="1"/>
<intAttribute key="fpIndex" value="93"/>
<booleanAttribute key="fpIndexRandom" value="true"/>
<intAttribute key="maxHeapSize" value="25"/>
<intAttribute key="maxSetSize" value="1000000"/>
<booleanAttribute key="mcMode" value="true"/>
<stringAttribute key="modelBehaviorInit" value=""/>
<stringAttribute key="modelBehaviorNext" value=""/>
<stringAttribute key="modelBehaviorSpec" value="Spec"/>
<intAttribute key="modelBehaviorSpecType" value="1"/>
<stringAttribute key="modelBehaviorVars" value="flag, pc"/>
<stringAttribute key="modelComments" value=""/>
<booleanAttribute key="modelCorrectnessCheckDeadlock" value="true"/>
<listAttribute key="modelCorrectnessInvariants">
<listEntry value="1ME!MutualExclusion"/>
<listEntry value="1Inv"/>
</listAttribute>
<listAttribute key="modelCorrectnessProperties">
<listEntry value="0ME!Spec"/>
<listEntry value="1ME!Liveness"/>
</listAttribute>
<intAttribute key="modelEditorOpenTabs" value="8"/>
<stringAttribute key="modelExpressionEval" value=""/>
<listAttribute key="modelParameterConstants">
<listEntry value="N;;1;0;0"/>
</listAttribute>
<intAttribute key="modelVersion" value="20191005"/>
<intAttribute key="numberOfWorkers" value="2"/>
<stringAttribute key="postCondition" value=""/>
<booleanAttribute key="recover" value="false"/>
<stringAttribute key="result.mail.address" value=""/>
<intAttribute key="simuAril" value="-1"/>
<intAttribute key="simuDepth" value="100"/>
<stringAttribute key="simuNumTraces" value="9223372036854775807"/>
<intAttribute key="simuSeed" value="-1"/>
<stringAttribute key="specName" value="1Bit"/>
<stringAttribute key="tlcResourcesProfile" value="local custom"/>
<stringAttribute key="view" value=""/>
<booleanAttribute key="visualizeStateGraph" value="true"/>
</launchConfiguration>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.lamport.tla.toolbox.tool.tlc.modelCheck">
<stringAttribute key="TLCCmdLineParameters" value=""/>
<stringAttribute key="alias" value=""/>
<intAttribute key="collectCoverage" value="1"/>
<stringAttribute key="configurationName" value="Model_1_SnapShot_1644430537188"/>
<booleanAttribute key="deferLiveness" value="false"/>
<intAttribute key="dfidDepth" value="100"/>
<booleanAttribute key="dfidMode" value="false"/>
<intAttribute key="distributedFPSetCount" value="0"/>
<stringAttribute key="distributedNetworkInterface" value="192.168.122.1"/>
<intAttribute key="distributedNodesCount" value="1"/>
<stringAttribute key="distributedTLC" value="off"/>
<stringAttribute key="distributedTLCVMArgs" value=""/>
<intAttribute key="fpBits" value="1"/>
<intAttribute key="fpIndex" value="4"/>
<booleanAttribute key="fpIndexRandom" value="true"/>
<intAttribute key="maxHeapSize" value="25"/>
<intAttribute key="maxSetSize" value="1000000"/>
<booleanAttribute key="mcMode" value="true"/>
<stringAttribute key="modelBehaviorInit" value=""/>
<stringAttribute key="modelBehaviorNext" value=""/>
<stringAttribute key="modelBehaviorSpec" value="Spec"/>
<intAttribute key="modelBehaviorSpecType" value="1"/>
<stringAttribute key="modelBehaviorVars" value="flag, pc"/>
<stringAttribute key="modelComments" value=""/>
<booleanAttribute key="modelCorrectnessCheckDeadlock" value="true"/>
<listAttribute key="modelCorrectnessInvariants">
<listEntry value="1ME!MutualExclusion"/>
<listEntry value="1Inv"/>
</listAttribute>
<listAttribute key="modelCorrectnessProperties">
<listEntry value="0ME!Spec"/>
<listEntry value="1ME!Liveness"/>
</listAttribute>
<intAttribute key="modelEditorOpenTabs" value="8"/>
<stringAttribute key="modelExpressionEval" value=""/>
<listAttribute key="modelParameterConstants">
<listEntry value="N;;1;0;0"/>
</listAttribute>
<intAttribute key="modelVersion" value="20191005"/>
<intAttribute key="numberOfWorkers" value="2"/>
<stringAttribute key="postCondition" value=""/>
<booleanAttribute key="recover" value="false"/>
<stringAttribute key="result.mail.address" value=""/>
<intAttribute key="simuAril" value="-1"/>
<intAttribute key="simuDepth" value="100"/>
<stringAttribute key="simuNumTraces" value="9223372036854775807"/>
<intAttribute key="simuSeed" value="-1"/>
<stringAttribute key="specName" value="1Bit"/>
<stringAttribute key="tlcResourcesProfile" value="local custom"/>
<stringAttribute key="view" value=""/>
<booleanAttribute key="visualizeStateGraph" value="true"/>
</launchConfiguration>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.lamport.tla.toolbox.tool.tlc.modelCheck">
<stringAttribute key="TLCCmdLineParameters" value=""/>
<stringAttribute key="alias" value=""/>
<intAttribute key="collectCoverage" value="1"/>
<stringAttribute key="configurationName" value="Model_1_SnapShot_1644430548616"/>
<booleanAttribute key="deferLiveness" value="false"/>
<intAttribute key="dfidDepth" value="100"/>
<booleanAttribute key="dfidMode" value="false"/>
<intAttribute key="distributedFPSetCount" value="0"/>
<stringAttribute key="distributedNetworkInterface" value="192.168.122.1"/>
<intAttribute key="distributedNodesCount" value="1"/>
<stringAttribute key="distributedTLC" value="off"/>
<stringAttribute key="distributedTLCVMArgs" value=""/>
<intAttribute key="fpBits" value="1"/>
<intAttribute key="fpIndex" value="70"/>
<booleanAttribute key="fpIndexRandom" value="true"/>
<intAttribute key="maxHeapSize" value="25"/>
<intAttribute key="maxSetSize" value="1000000"/>
<booleanAttribute key="mcMode" value="true"/>
<stringAttribute key="modelBehaviorInit" value=""/>
<stringAttribute key="modelBehaviorNext" value=""/>
<stringAttribute key="modelBehaviorSpec" value="Spec"/>
<intAttribute key="modelBehaviorSpecType" value="1"/>
<stringAttribute key="modelBehaviorVars" value="flag, pc"/>
<stringAttribute key="modelComments" value=""/>
<booleanAttribute key="modelCorrectnessCheckDeadlock" value="true"/>
<listAttribute key="modelCorrectnessInvariants">
<listEntry value="1ME!MutualExclusion"/>
<listEntry value="1Inv"/>
</listAttribute>
<listAttribute key="modelCorrectnessProperties">
<listEntry value="0ME!Spec"/>
<listEntry value="0ME!Liveness"/>
</listAttribute>
<intAttribute key="modelEditorOpenTabs" value="8"/>
<stringAttribute key="modelExpressionEval" value=""/>
<listAttribute key="modelParameterConstants">
<listEntry value="N;;1;0;0"/>
</listAttribute>
<intAttribute key="modelVersion" value="20191005"/>
<intAttribute key="numberOfWorkers" value="2"/>
<stringAttribute key="postCondition" value=""/>
<booleanAttribute key="recover" value="false"/>
<stringAttribute key="result.mail.address" value=""/>
<intAttribute key="simuAril" value="-1"/>
<intAttribute key="simuDepth" value="100"/>
<stringAttribute key="simuNumTraces" value="9223372036854775807"/>
<intAttribute key="simuSeed" value="-1"/>
<stringAttribute key="specName" value="1Bit"/>
<stringAttribute key="tlcResourcesProfile" value="local custom"/>
<stringAttribute key="view" value=""/>
<booleanAttribute key="visualizeStateGraph" value="true"/>
</launchConfiguration>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.lamport.tla.toolbox.tool.tlc.modelCheck">
<stringAttribute key="TLCCmdLineParameters" value=""/>
<stringAttribute key="alias" value=""/>
<intAttribute key="collectCoverage" value="1"/>
<stringAttribute key="configurationName" value="Model_1_SnapShot_1644430556719"/>
<booleanAttribute key="deferLiveness" value="false"/>
<intAttribute key="dfidDepth" value="100"/>
<booleanAttribute key="dfidMode" value="false"/>
<intAttribute key="distributedFPSetCount" value="0"/>
<stringAttribute key="distributedNetworkInterface" value="192.168.122.1"/>
<intAttribute key="distributedNodesCount" value="1"/>
<stringAttribute key="distributedTLC" value="off"/>
<stringAttribute key="distributedTLCVMArgs" value=""/>
<intAttribute key="fpBits" value="1"/>
<intAttribute key="fpIndex" value="76"/>
<booleanAttribute key="fpIndexRandom" value="true"/>
<intAttribute key="maxHeapSize" value="25"/>
<intAttribute key="maxSetSize" value="1000000"/>
<booleanAttribute key="mcMode" value="true"/>
<stringAttribute key="modelBehaviorInit" value=""/>
<stringAttribute key="modelBehaviorNext" value=""/>
<stringAttribute key="modelBehaviorSpec" value="Spec"/>
<intAttribute key="modelBehaviorSpecType" value="1"/>
<stringAttribute key="modelBehaviorVars" value="flag, pc"/>
<stringAttribute key="modelComments" value=""/>
<booleanAttribute key="modelCorrectnessCheckDeadlock" value="true"/>
<listAttribute key="modelCorrectnessInvariants">
<listEntry value="1ME!MutualExclusion"/>
<listEntry value="1Inv"/>
</listAttribute>
<listAttribute key="modelCorrectnessProperties">
<listEntry value="1ME!Spec"/>
<listEntry value="0ME!Liveness"/>
</listAttribute>
<intAttribute key="modelEditorOpenTabs" value="8"/>
<stringAttribute key="modelExpressionEval" value=""/>
<listAttribute key="modelParameterConstants">
<listEntry value="N;;1;0;0"/>
</listAttribute>
<intAttribute key="modelVersion" value="20191005"/>
<intAttribute key="numberOfWorkers" value="2"/>
<stringAttribute key="postCondition" value=""/>
<booleanAttribute key="recover" value="false"/>
<stringAttribute key="result.mail.address" value=""/>
<intAttribute key="simuAril" value="-1"/>
<intAttribute key="simuDepth" value="100"/>
<stringAttribute key="simuNumTraces" value="9223372036854775807"/>
<intAttribute key="simuSeed" value="-1"/>
<stringAttribute key="specName" value="1Bit"/>
<stringAttribute key="tlcResourcesProfile" value="local custom"/>
<stringAttribute key="view" value=""/>
<booleanAttribute key="visualizeStateGraph" value="true"/>
</launchConfiguration>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.lamport.tla.toolbox.tool.tlc.modelCheck">
<stringAttribute key="TLCCmdLineParameters" value=""/>
<stringAttribute key="alias" value=""/>
<intAttribute key="collectCoverage" value="1"/>
<stringAttribute key="configurationName" value="Model_1_SnapShot_1644430725151"/>
<booleanAttribute key="deferLiveness" value="false"/>
<intAttribute key="dfidDepth" value="100"/>
<booleanAttribute key="dfidMode" value="false"/>
<intAttribute key="distributedFPSetCount" value="0"/>
<stringAttribute key="distributedNetworkInterface" value="192.168.122.1"/>
<intAttribute key="distributedNodesCount" value="1"/>
<stringAttribute key="distributedTLC" value="off"/>
<stringAttribute key="distributedTLCVMArgs" value=""/>
<intAttribute key="fpBits" value="1"/>
<intAttribute key="fpIndex" value="44"/>
<booleanAttribute key="fpIndexRandom" value="true"/>
<intAttribute key="maxHeapSize" value="25"/>
<intAttribute key="maxSetSize" value="1000000"/>
<booleanAttribute key="mcMode" value="true"/>
<stringAttribute key="modelBehaviorInit" value=""/>
<stringAttribute key="modelBehaviorNext" value=""/>
<stringAttribute key="modelBehaviorSpec" value="Spec"/>
<intAttribute key="modelBehaviorSpecType" value="1"/>
<stringAttribute key="modelBehaviorVars" value="flag, pc"/>
<stringAttribute key="modelComments" value=""/>
<booleanAttribute key="modelCorrectnessCheckDeadlock" value="true"/>
<listAttribute key="modelCorrectnessInvariants">
<listEntry value="1ME!MutualExclusion"/>
<listEntry value="1Inv"/>
</listAttribute>
<listAttribute key="modelCorrectnessProperties">
<listEntry value="0ME!Spec"/>
<listEntry value="1ME!Liveness"/>
</listAttribute>
<intAttribute key="modelEditorOpenTabs" value="8"/>
<stringAttribute key="modelExpressionEval" value=""/>
<listAttribute key="modelParameterConstants">
<listEntry value="N;;1;0;0"/>
</listAttribute>
<intAttribute key="modelVersion" value="20191005"/>
<intAttribute key="numberOfWorkers" value="2"/>
<stringAttribute key="postCondition" value=""/>
<booleanAttribute key="recover" value="false"/>
<stringAttribute key="result.mail.address" value=""/>
<intAttribute key="simuAril" value="-1"/>
<intAttribute key="simuDepth" value="100"/>
<stringAttribute key="simuNumTraces" value="9223372036854775807"/>
<intAttribute key="simuSeed" value="-1"/>
<stringAttribute key="specName" value="1Bit"/>
<stringAttribute key="tlcResourcesProfile" value="local custom"/>
<stringAttribute key="view" value=""/>
<booleanAttribute key="visualizeStateGraph" value="true"/>
</launchConfiguration>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.lamport.tla.toolbox.tool.tlc.modelCheck">
<stringAttribute key="TLCCmdLineParameters" value=""/>
<stringAttribute key="alias" value=""/>
<intAttribute key="collectCoverage" value="1"/>
<stringAttribute key="configurationName" value="Model_1_SnapShot_1644430854275"/>
<booleanAttribute key="deferLiveness" value="false"/>
<intAttribute key="dfidDepth" value="100"/>
<booleanAttribute key="dfidMode" value="false"/>
<intAttribute key="distributedFPSetCount" value="0"/>
<stringAttribute key="distributedNetworkInterface" value="192.168.122.1"/>
<intAttribute key="distributedNodesCount" value="1"/>
<stringAttribute key="distributedTLC" value="off"/>
<stringAttribute key="distributedTLCVMArgs" value=""/>
<intAttribute key="fpBits" value="1"/>
<intAttribute key="fpIndex" value="37"/>
<booleanAttribute key="fpIndexRandom" value="true"/>
<intAttribute key="maxHeapSize" value="25"/>
<intAttribute key="maxSetSize" value="1000000"/>
<booleanAttribute key="mcMode" value="true"/>
<stringAttribute key="modelBehaviorInit" value=""/>
<stringAttribute key="modelBehaviorNext" value=""/>
<stringAttribute key="modelBehaviorSpec" value="Spec"/>
<intAttribute key="modelBehaviorSpecType" value="1"/>
<stringAttribute key="modelBehaviorVars" value="flag, pc"/>
<stringAttribute key="modelComments" value=""/>
<booleanAttribute key="modelCorrectnessCheckDeadlock" value="true"/>
<listAttribute key="modelCorrectnessInvariants">
<listEntry value="1ME!MutualExclusion"/>
<listEntry value="1Inv"/>
</listAttribute>
<listAttribute key="modelCorrectnessProperties">
<listEntry value="0ME!Spec"/>
<listEntry value="1ME!Liveness"/>
</listAttribute>
<intAttribute key="modelEditorOpenTabs" value="8"/>
<stringAttribute key="modelExpressionEval" value=""/>
<listAttribute key="modelParameterConstants">
<listEntry value="N;;1;0;0"/>
</listAttribute>
<intAttribute key="modelVersion" value="20191005"/>
<intAttribute key="numberOfWorkers" value="2"/>
<stringAttribute key="postCondition" value=""/>
<booleanAttribute key="recover" value="false"/>
<stringAttribute key="result.mail.address" value=""/>
<intAttribute key="simuAril" value="-1"/>
<intAttribute key="simuDepth" value="100"/>
<stringAttribute key="simuNumTraces" value="9223372036854775807"/>
<intAttribute key="simuSeed" value="-1"/>
<stringAttribute key="specName" value="1Bit"/>
<stringAttribute key="tlcResourcesProfile" value="local custom"/>
<stringAttribute key="view" value=""/>
<booleanAttribute key="visualizeStateGraph" value="true"/>
</launchConfiguration>
-------------------------------- MODULE 1Bit --------------------------------
\* 1Bit implementation of mutual exclusion
EXTENDS Integers
CONSTANT N
ASSUME N \in Nat
Procs == 0..N
(********
--algorithm 1BitProtocol {
variables flag = [i \in Procs |-> FALSE] ;
process (P \in Procs) {
ncs: while (TRUE) {
skip ;
enter: flag[self] := TRUE ;
e2: if (flag[1-self]) {
e3: flag[self] := FALSE;
goto enter;
};
cs: skip ;
exit: flag[self] := FALSE ;
}
}
}
********)
\* BEGIN TRANSLATION (chksum(pcal) = "b33e7cec" /\ chksum(tla) = "338dfe4c")
VARIABLES flag, pc
vars == << flag, pc >>
ProcSet == (Procs)
Init == (* Global variables *)
/\ flag = [i \in Procs |-> FALSE]
/\ pc = [self \in ProcSet |-> "ncs"]
ncs(self) == /\ pc[self] = "ncs"
/\ TRUE
/\ pc' = [pc EXCEPT ![self] = "enter"]
/\ flag' = flag
enter(self) == /\ pc[self] = "enter"
/\ flag' = [flag EXCEPT ![self] = TRUE]
/\ pc' = [pc EXCEPT ![self] = "e2"]
e2(self) == /\ pc[self] = "e2"
/\ IF flag[1-self]
THEN /\ pc' = [pc EXCEPT ![self] = "e3"]
ELSE /\ pc' = [pc EXCEPT ![self] = "cs"]
/\ flag' = flag
e3(self) == /\ pc[self] = "e3"
/\ flag' = [flag EXCEPT ![self] = FALSE]
/\ pc' = [pc EXCEPT ![self] = "enter"]
cs(self) == /\ pc[self] = "cs"
/\ TRUE
/\ pc' = [pc EXCEPT ![self] = "exit"]
/\ flag' = flag
exit(self) == /\ pc[self] = "exit"
/\ flag' = [flag EXCEPT ![self] = FALSE]
/\ pc' = [pc EXCEPT ![self] = "ncs"]
P(self) == ncs(self) \/ enter(self) \/ e2(self) \/ e3(self) \/ cs(self)
\/ exit(self)
Next == (\E self \in Procs: P(self))
Spec == Init /\ [][Next]_vars
\* END TRANSLATION
--------
\* Invariant which implies MutualExclusion
\*Inv == \A i \in Procs : (pc[i] = "cs") => (flag[i] /\ (~flag[1-i] \/ pc[1-i] = "e2"))
Inv == \A i \in Procs : (pc[i] = "cs") => (flag[i] /\ (~flag[1-i] \/ pc[1-i] \in {"e2","e3"}))
ME == INSTANCE MutualExclusionSpec WITH
pc <- [proc \in Procs |-> CASE pc[proc] = "cs" -> "cs"
[] pc[proc] \in {"enter","e2","e3"} -> "csentry"
[] OTHER -> "non-cs"]
THEOREM Spec => ME!Spec
THEOREM Spec => []ME!MutualExclusion
THEOREM Spec => ME!Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 21:20:48 MSK 2022 by kirr
\* Created Wed Feb 09 20:01:56 MSK 2022 by kirr
\* CONSTANT definitions
CONSTANT
N <- const_1644430852007674000
\* SPECIFICATION definition
SPECIFICATION
Spec
\* INVARIANT definition
INVARIANT
inv_1644430852007675000
Inv
\* PROPERTY definition
PROPERTY
prop_1644430852007677000
\* Generated on Wed Feb 09 21:20:52 MSK 2022
\ No newline at end of file
@!@!@STARTMSG 2262:0 @!@!@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 37 and seed 2858152806069431466 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 79207] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
@!@!@ENDMSG 2220 @!@!@
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MC.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/1Bit.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/TLC.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Integers.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Naturals.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MutualExclusionSpec.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Sequences.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/FiniteSets.tla
Semantic processing of module Naturals
Semantic processing of module Integers
Semantic processing of module MutualExclusionSpec
Semantic processing of module 1Bit
Semantic processing of module Sequences
Semantic processing of module FiniteSets
Semantic processing of module TLC
Semantic processing of module MC
@!@!@STARTMSG 2219:0 @!@!@
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 21:20:52)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 4 branches.
@!@!@ENDMSG 2212 @!@!@
@!@!@STARTMSG 2189:0 @!@!@
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 21:20:53.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(9) at 2022-02-09 21:20:53: 65 states generated, 32 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2192:0 @!@!@
Checking 4 branches of temporal properties for the complete state space with 128 total distinct states at (2022-02-09 21:20:53)
@!@!@ENDMSG 2192 @!@!@
@!@!@STARTMSG 2116:1 @!@!@
Temporal properties were violated.
@!@!@ENDMSG 2116 @!@!@
@!@!@STARTMSG 2264:1 @!@!@
The following behavior constitutes a counter-example:
@!@!@ENDMSG 2264 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
1: <Initial predicate>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "ncs" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
2: <ncs line 38, col 14 to line 41, col 28 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "enter" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
3: <ncs line 38, col 14 to line 41, col 28 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "enter" @@ 1 :> "enter")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2218:4 @!@!@
4: Stuttering
@!@!@ENDMSG 2218 @!@!@
@!@!@STARTMSG 2267:0 @!@!@
Finished checking temporal properties in 00s at 2022-02-09 21:20:53
@!@!@ENDMSG 2267 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 21:20:53
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 34, col 1 to line 34, col 4 of module 1Bit>: 2:2
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
line 35, col 19 to line 35, col 41 of module 1Bit: 2:4
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 35, col 26 to line 35, col 30 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 36, col 12 to line 36, col 44 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 36, col 17 to line 36, col 44 of module 1Bit: 2:4
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 36, col 27 to line 36, col 33 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ncs line 38, col 1 to line 38, col 9 of module 1Bit>: 6:18
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 38, col 17 to line 38, col 32 of module 1Bit: 93
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 38, col 17 to line 38, col 24 of module 1Bit: 75
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 39, col 17 to line 39, col 20 of module 1Bit: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 40, col 17 to line 40, col 51 of module 1Bit: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 41, col 17 to line 41, col 28 of module 1Bit: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<enter line 43, col 1 to line 43, col 11 of module 1Bit>: 7:15
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 43, col 19 to line 43, col 36 of module 1Bit: 88
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 43, col 19 to line 43, col 26 of module 1Bit: 73
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 44, col 19 to line 44, col 54 of module 1Bit: 15
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 45, col 19 to line 45, col 50 of module 1Bit: 15
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e2 line 47, col 1 to line 47, col 8 of module 1Bit>: 9:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 47, col 16 to line 47, col 30 of module 1Bit: 85
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 16 to line 47, col 23 of module 1Bit: 73
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 48, col 19 to line 48, col 30 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 49, col 24 to line 49, col 58 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 50, col 24 to line 50, col 58 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 51, col 16 to line 51, col 27 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e3 line 53, col 1 to line 53, col 8 of module 1Bit>: 2:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 53, col 16 to line 53, col 30 of module 1Bit: 85
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 53, col 16 to line 53, col 23 of module 1Bit: 73
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 54, col 16 to line 54, col 52 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 55, col 16 to line 55, col 50 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<cs line 57, col 1 to line 57, col 8 of module 1Bit>: 5:10
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 57, col 16 to line 57, col 30 of module 1Bit: 83
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 57, col 16 to line 57, col 23 of module 1Bit: 73
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 58, col 16 to line 58, col 19 of module 1Bit: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 59, col 16 to line 59, col 49 of module 1Bit: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 60, col 16 to line 60, col 27 of module 1Bit: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<exit line 62, col 1 to line 62, col 10 of module 1Bit>: 2:8
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 62, col 18 to line 62, col 34 of module 1Bit: 81
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 62, col 18 to line 62, col 25 of module 1Bit: 73
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 63, col 18 to line 63, col 54 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 64, col 18 to line 64, col 50 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<inv_1644430852007675000 line 10, col 1 to line 10, col 23 of module MC>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 11, col 1 to line 11, col 18 of module MC: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 83, col 23 to line 85, col 90 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 82, col 1 to line 85, col 90 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<Inv line 79, col 1 to line 79, col 3 of module 1Bit>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 79, col 8 to line 79, col 94 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 79, col 25 to line 79, col 94 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 79, col 26 to line 79, col 37 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 79, col 44 to line 79, col 93 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 79, col 44 to line 79, col 50 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 79, col 56 to line 79, col 92 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 79, col 56 to line 79, col 65 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 79, col 70 to line 79, col 92 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 79, col 17 to line 79, col 21 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(9) at 2022-02-09 21:20:53: 65 states generated (2 685 s/min), 32 distinct states found (1 322 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
65 states generated, 32 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 9.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1466ms at (2022-02-09 21:20:53)
@!@!@ENDMSG 2186 @!@!@
---- MODULE MC ----
EXTENDS 1Bit, TLC
\* CONSTANT definitions @modelParameterConstants:0N
const_1644430852007674000 ==
1
----
\* INVARIANT definition @modelCorrectnessInvariants:0
inv_1644430852007675000 ==
ME!MutualExclusion
----
\* PROPERTY definition @modelCorrectnessProperties:0
prop_1644430852007677000 ==
ME!Liveness
----
=============================================================================
\* Modification History
\* Created Wed Feb 09 21:20:52 MSK 2022 by kirr
@!@!@STARTMSG 2262:0 @!@!@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 37 and seed 2858152806069431466 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 79207] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
@!@!@ENDMSG 2220 @!@!@
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MC.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/1Bit.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/TLC.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Integers.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Naturals.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MutualExclusionSpec.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Sequences.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/FiniteSets.tla
Semantic processing of module Naturals
Semantic processing of module Integers
Semantic processing of module MutualExclusionSpec
Semantic processing of module 1Bit
Semantic processing of module Sequences
Semantic processing of module FiniteSets
Semantic processing of module TLC
Semantic processing of module MC
@!@!@STARTMSG 2219:0 @!@!@
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 21:20:52)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 4 branches.
@!@!@ENDMSG 2212 @!@!@
@!@!@STARTMSG 2189:0 @!@!@
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 21:20:53.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(9) at 2022-02-09 21:20:53: 65 states generated, 32 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2192:0 @!@!@
Checking 4 branches of temporal properties for the complete state space with 128 total distinct states at (2022-02-09 21:20:53)
@!@!@ENDMSG 2192 @!@!@
@!@!@STARTMSG 2116:1 @!@!@
Temporal properties were violated.
@!@!@ENDMSG 2116 @!@!@
@!@!@STARTMSG 2264:1 @!@!@
The following behavior constitutes a counter-example:
@!@!@ENDMSG 2264 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
1: <Initial predicate>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "ncs" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
2: <ncs line 38, col 14 to line 41, col 28 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "enter" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
3: <ncs line 38, col 14 to line 41, col 28 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "enter" @@ 1 :> "enter")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2218:4 @!@!@
4: Stuttering
@!@!@ENDMSG 2218 @!@!@
@!@!@STARTMSG 2267:0 @!@!@
Finished checking temporal properties in 00s at 2022-02-09 21:20:53
@!@!@ENDMSG 2267 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 21:20:53
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 34, col 1 to line 34, col 4 of module 1Bit>: 2:2
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
line 35, col 19 to line 35, col 41 of module 1Bit: 2:4
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 35, col 26 to line 35, col 30 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 36, col 12 to line 36, col 44 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 36, col 17 to line 36, col 44 of module 1Bit: 2:4
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 36, col 27 to line 36, col 33 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ncs line 38, col 1 to line 38, col 9 of module 1Bit>: 6:18
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 38, col 17 to line 38, col 32 of module 1Bit: 93
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 38, col 17 to line 38, col 24 of module 1Bit: 75
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 39, col 17 to line 39, col 20 of module 1Bit: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 40, col 17 to line 40, col 51 of module 1Bit: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 41, col 17 to line 41, col 28 of module 1Bit: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<enter line 43, col 1 to line 43, col 11 of module 1Bit>: 7:15
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 43, col 19 to line 43, col 36 of module 1Bit: 88
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 43, col 19 to line 43, col 26 of module 1Bit: 73
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 44, col 19 to line 44, col 54 of module 1Bit: 15
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 45, col 19 to line 45, col 50 of module 1Bit: 15
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e2 line 47, col 1 to line 47, col 8 of module 1Bit>: 9:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 47, col 16 to line 47, col 30 of module 1Bit: 85
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 16 to line 47, col 23 of module 1Bit: 73
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 48, col 19 to line 48, col 30 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 49, col 24 to line 49, col 58 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 50, col 24 to line 50, col 58 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 51, col 16 to line 51, col 27 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e3 line 53, col 1 to line 53, col 8 of module 1Bit>: 2:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 53, col 16 to line 53, col 30 of module 1Bit: 85
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 53, col 16 to line 53, col 23 of module 1Bit: 73
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 54, col 16 to line 54, col 52 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 55, col 16 to line 55, col 50 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<cs line 57, col 1 to line 57, col 8 of module 1Bit>: 5:10
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 57, col 16 to line 57, col 30 of module 1Bit: 83
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 57, col 16 to line 57, col 23 of module 1Bit: 73
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 58, col 16 to line 58, col 19 of module 1Bit: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 59, col 16 to line 59, col 49 of module 1Bit: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 60, col 16 to line 60, col 27 of module 1Bit: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<exit line 62, col 1 to line 62, col 10 of module 1Bit>: 2:8
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 62, col 18 to line 62, col 34 of module 1Bit: 81
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 62, col 18 to line 62, col 25 of module 1Bit: 73
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 63, col 18 to line 63, col 54 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 64, col 18 to line 64, col 50 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<inv_1644430852007675000 line 10, col 1 to line 10, col 23 of module MC>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 11, col 1 to line 11, col 18 of module MC: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 83, col 23 to line 85, col 90 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 82, col 1 to line 85, col 90 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<Inv line 79, col 1 to line 79, col 3 of module 1Bit>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 79, col 8 to line 79, col 94 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 79, col 25 to line 79, col 94 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 79, col 26 to line 79, col 37 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 79, col 44 to line 79, col 93 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 79, col 44 to line 79, col 50 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 79, col 56 to line 79, col 92 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 79, col 56 to line 79, col 65 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 79, col 70 to line 79, col 92 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 79, col 17 to line 79, col 21 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(9) at 2022-02-09 21:20:53: 65 states generated (2 685 s/min), 32 distinct states found (1 322 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
65 states generated, 32 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 9.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1466ms at (2022-02-09 21:20:53)
@!@!@ENDMSG 2186 @!@!@
strict digraph DiskGraph {
edge [colorscheme="paired12"]
nodesep=0.35;
subgraph cluster_graph {
color="white";
5085455432294731190 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")",style = filled]
5085455432294731190 -> 3524579045693731114 [label="",color="2",fontcolor="2"];
3524579045693731114 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")"];
5085455432294731190 -> -8911842714561954920 [label="",color="2",fontcolor="2"];
-8911842714561954920 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")"];
5085455432294731190 -> 5085455432294731190 [style="dashed"];
3524579045693731114 -> -516069171314509563 [label="",color="3",fontcolor="3"];
-516069171314509563 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")"];
3524579045693731114 -> 7805651401774470092 [label="",color="2",fontcolor="2"];
7805651401774470092 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")"];
3524579045693731114 -> 3524579045693731114 [style="dashed"];
-8911842714561954920 -> 7805651401774470092 [label="",color="2",fontcolor="2"];
-8911842714561954920 -> 7128099167373912858 [label="",color="3",fontcolor="3"];
7128099167373912858 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")"];
-8911842714561954920 -> -8911842714561954920 [style="dashed"];
-516069171314509563 -> -4891172302811509810 [label="",color="4",fontcolor="4"];
-4891172302811509810 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")"];
-516069171314509563 -> 6775617846239370668 [label="",color="2",fontcolor="2"];
6775617846239370668 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")"];
-516069171314509563 -> -516069171314509563 [style="dashed"];
7805651401774470092 -> 6775617846239370668 [label="",color="3",fontcolor="3"];
7805651401774470092 -> 3905739610096960540 [label="",color="3",fontcolor="3"];
3905739610096960540 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")"];
7805651401774470092 -> 7805651401774470092 [style="dashed"];
7128099167373912858 -> 3905739610096960540 [label="",color="2",fontcolor="2"];
7128099167373912858 -> -1534383658450382740 [label="",color="4",fontcolor="4"];
-1534383658450382740 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")"];
7128099167373912858 -> 7128099167373912858 [style="dashed"];
-4891172302811509810 -> -4737441124444714616 [label="",color="5",fontcolor="5"];
-4737441124444714616 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")"];
-4891172302811509810 -> -7533759817854830743 [label="",color="2",fontcolor="2"];
-7533759817854830743 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")"];
-4891172302811509810 -> -4891172302811509810 [style="dashed"];
6775617846239370668 -> -7533759817854830743 [label="",color="4",fontcolor="4"];
6775617846239370668 -> -1088739534983396591 [label="",color="3",fontcolor="3"];
-1088739534983396591 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e2\")"];
6775617846239370668 -> 6775617846239370668 [style="dashed"];
3905739610096960540 -> -1088739534983396591 [label="",color="3",fontcolor="3"];
3905739610096960540 -> -4725640334347698326 [label="",color="4",fontcolor="4"];
-4725640334347698326 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")"];
3905739610096960540 -> 3905739610096960540 [style="dashed"];
-1534383658450382740 -> -4725640334347698326 [label="",color="2",fontcolor="2"];
-1534383658450382740 -> -6297107797553737216 [label="",color="5",fontcolor="5"];
-6297107797553737216 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")"];
-1534383658450382740 -> -1534383658450382740 [style="dashed"];
-4737441124444714616 -> 5085455432294731190 [label="",color="6",fontcolor="6"];
-4737441124444714616 -> -7976570240747132033 [label="",color="2",fontcolor="2"];
-7976570240747132033 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")"];
-4737441124444714616 -> -4737441124444714616 [style="dashed"];
-7533759817854830743 -> -7976570240747132033 [label="",color="5",fontcolor="5"];
-7533759817854830743 -> -7358308420137391307 [label="",color="3",fontcolor="3"];
-7358308420137391307 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")"];
-7533759817854830743 -> -7533759817854830743 [style="dashed"];
-1088739534983396591 -> -4011009453110952578 [label="",color="4",fontcolor="4"];
-4011009453110952578 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")"];
-1088739534983396591 -> -384302305046358828 [label="",color="4",fontcolor="4"];
-384302305046358828 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")"];
-1088739534983396591 -> -1088739534983396591 [style="dashed"];
-4725640334347698326 -> 8700069877200124007 [label="",color="3",fontcolor="3"];
8700069877200124007 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")"];
-4725640334347698326 -> -5716330678854760024 [label="",color="5",fontcolor="5"];
-5716330678854760024 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")"];
-4725640334347698326 -> -4725640334347698326 [style="dashed"];
-6297107797553737216 -> -5716330678854760024 [label="",color="2",fontcolor="2"];
-6297107797553737216 -> 5085455432294731190 [label="",color="6",fontcolor="6"];
-6297107797553737216 -> -6297107797553737216 [style="dashed"];
-7976570240747132033 -> -8911842714561954920 [label="",color="6",fontcolor="6"];
-7976570240747132033 -> 209506020327074019 [label="",color="3",fontcolor="3"];
209506020327074019 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")"];
-7358308420137391307 -> 209506020327074019 [label="",color="5",fontcolor="5"];
-7976570240747132033 -> -7976570240747132033 [style="dashed"];
-7358308420137391307 -> -7805684533418984208 [label="",color="4",fontcolor="4"];
-7805684533418984208 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")"];
-7358308420137391307 -> -7358308420137391307 [style="dashed"];
-4011009453110952578 -> 3905739610096960540 [label="",color="7",fontcolor="7"];
-4011009453110952578 -> -4460637202960127301 [label="",color="4",fontcolor="4"];
-4460637202960127301 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")"];
-4011009453110952578 -> -4011009453110952578 [style="dashed"];
-384302305046358828 -> -4460637202960127301 [label="",color="4",fontcolor="4"];
-384302305046358828 -> 6775617846239370668 [label="",color="7",fontcolor="7"];
-384302305046358828 -> -384302305046358828 [style="dashed"];
8700069877200124007 -> 4615862493202646536 [label="",color="4",fontcolor="4"];
4615862493202646536 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")"];
8700069877200124007 -> -3653511980151831675 [label="",color="5",fontcolor="5"];
-3653511980151831675 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")"];
8700069877200124007 -> 8700069877200124007 [style="dashed"];
-5716330678854760024 -> -3653511980151831675 [label="",color="3",fontcolor="3"];
-5716330678854760024 -> 3524579045693731114 [label="",color="6",fontcolor="6"];
-5716330678854760024 -> -5716330678854760024 [style="dashed"];
209506020327074019 -> 7128099167373912858 [label="",color="6",fontcolor="6"];
209506020327074019 -> 623461173049409318 [label="",color="4",fontcolor="4"];
623461173049409318 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")"];
-7805684533418984208 -> 623461173049409318 [label="",color="5",fontcolor="5"];
209506020327074019 -> 209506020327074019 [style="dashed"];
-7805684533418984208 -> -7533759817854830743 [label="",color="7",fontcolor="7"];
-7805684533418984208 -> -7805684533418984208 [style="dashed"];
-4460637202960127301 -> 4358731569716630489 [label="",color="7",fontcolor="7"];
4358731569716630489 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")"];
-4460637202960127301 -> 5726825228716880478 [label="",color="7",fontcolor="7"];
5726825228716880478 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")"];
-4460637202960127301 -> -4460637202960127301 [style="dashed"];
4615862493202646536 -> -4725640334347698326 [label="",color="7",fontcolor="7"];
4615862493202646536 -> -7243062553507743412 [label="",color="5",fontcolor="5"];
-7243062553507743412 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")"];
4615862493202646536 -> 4615862493202646536 [style="dashed"];
-3653511980151831675 -> -7243062553507743412 [label="",color="4",fontcolor="4"];
-3653511980151831675 -> -516069171314509563 [label="",color="6",fontcolor="6"];
-3653511980151831675 -> -3653511980151831675 [style="dashed"];
623461173049409318 -> 7539784793880886495 [label="",color="6",fontcolor="6"];
7539784793880886495 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")"];
623461173049409318 -> -7976570240747132033 [label="",color="7",fontcolor="7"];
623461173049409318 -> 623461173049409318 [style="dashed"];
4358731569716630489 -> -384302305046358828 [label="",color="3",fontcolor="3"];
4358731569716630489 -> 7805651401774470092 [label="",color="7",fontcolor="7"];
4358731569716630489 -> 4358731569716630489 [style="dashed"];
5726825228716880478 -> 7805651401774470092 [label="",color="7",fontcolor="7"];
5726825228716880478 -> -4011009453110952578 [label="",color="3",fontcolor="3"];
5726825228716880478 -> 5726825228716880478 [style="dashed"];
-7243062553507743412 -> -5716330678854760024 [label="",color="7",fontcolor="7"];
-7243062553507743412 -> 3160519931459361361 [label="",color="6",fontcolor="6"];
3160519931459361361 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"ncs\")"];
-7243062553507743412 -> -7243062553507743412 [style="dashed"];
7539784793880886495 -> 4358731569716630489 [label="",color="2",fontcolor="2"];
7539784793880886495 -> -8911842714561954920 [label="",color="7",fontcolor="7"];
7539784793880886495 -> 7539784793880886495 [style="dashed"];
3160519931459361361 -> 3524579045693731114 [label="",color="7",fontcolor="7"];
3160519931459361361 -> 5726825228716880478 [label="",color="2",fontcolor="2"];
3160519931459361361 -> 3160519931459361361 [style="dashed"];
{rank = same; 5085455432294731190;}
{rank = same; 3524579045693731114;-8911842714561954920;}
{rank = same; -516069171314509563;7805651401774470092;7128099167373912858;}
{rank = same; 3905739610096960540;-4891172302811509810;6775617846239370668;-1534383658450382740;}
{rank = same; -7533759817854830743;-4725640334347698326;-1088739534983396591;-4737441124444714616;-6297107797553737216;}
{rank = same; -384302305046358828;-7976570240747132033;8700069877200124007;-4011009453110952578;-5716330678854760024;-7358308420137391307;}
{rank = same; 209506020327074019;-4460637202960127301;-7805684533418984208;-3653511980151831675;4615862493202646536;}
{rank = same; -7243062553507743412;623461173049409318;5726825228716880478;4358731569716630489;}
{rank = same; 3160519931459361361;7539784793880886495;}
}
subgraph cluster_legend {graph[style=bold];label = "Next State Actions" style="solid"
node [ labeljust="l",colorscheme="paired12",style=filled,shape=record ]
cs [label="cs",fillcolor=5]
exit [label="exit",fillcolor=6]
enter [label="enter",fillcolor=3]
e2 [label="e2",fillcolor=4]
e3 [label="e3",fillcolor=7]
ncs [label="ncs",fillcolor=2]
}}
\ No newline at end of file
digraph DiskGraph {
nodesep=0.35;
subgraph cluster_graph {
color="white";
"5085455432294731190.1" [style = filled] [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")
#5085455432294731190.1#"]
"5085455432294731190.1" -> "5085455432294731190.1";
"5085455432294731190.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")
#5085455432294731190.1#"];
"5085455432294731190.1" -> "-8911842714561954920.1";
"-8911842714561954920.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#-8911842714561954920.1#"];
"5085455432294731190.1" -> "3524579045693731114.1";
"3524579045693731114.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")
#3524579045693731114.1#"];
"-8911842714561954920.1" -> "-8911842714561954920.1";
"-8911842714561954920.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#-8911842714561954920.1#"];
"-8911842714561954920.1" -> "7128099167373912858.1";
"7128099167373912858.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")
#7128099167373912858.1#"];
"-8911842714561954920.1" -> "7805651401774470092.1";
"7805651401774470092.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#7805651401774470092.1#"];
"3524579045693731114.1" -> "-516069171314509563.1";
"-516069171314509563.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")
#-516069171314509563.1#"];
"3524579045693731114.1" -> "3524579045693731114.1";
"3524579045693731114.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")
#3524579045693731114.1#"];
"3524579045693731114.1" -> "7805651401774470092.1";
"7805651401774470092.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#7805651401774470092.1#"];
"-516069171314509563.1" -> "-516069171314509563.1";
"-516069171314509563.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")
#-516069171314509563.1#"];
"-516069171314509563.1" -> "6775617846239370668.1";
"6775617846239370668.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#6775617846239370668.1#"];
"-516069171314509563.1" -> "-4891172302811509810.1";
"-4891172302811509810.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")
#-4891172302811509810.1#"];
"7805651401774470092.1" -> "6775617846239370668.1";
"6775617846239370668.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#6775617846239370668.1#"];
"7805651401774470092.1" -> "3905739610096960540.1";
"3905739610096960540.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#3905739610096960540.1#"];
"7805651401774470092.1" -> "7805651401774470092.1";
"7805651401774470092.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#7805651401774470092.1#"];
"7128099167373912858.1" -> "7128099167373912858.1";
"7128099167373912858.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")
#7128099167373912858.1#"];
"7128099167373912858.1" -> "3905739610096960540.1";
"3905739610096960540.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#3905739610096960540.1#"];
"7128099167373912858.1" -> "-1534383658450382740.0";
"-1534383658450382740.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")
#-1534383658450382740.0#"];
"7128099167373912858.1" -> "-1534383658450382740.1";
"-1534383658450382740.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")
#-1534383658450382740.1#"];
"-4891172302811509810.1" -> "-4737441124444714616.1";
"-4737441124444714616.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")
#-4737441124444714616.1#"];
"-4891172302811509810.1" -> "-7533759817854830743.1";
"-7533759817854830743.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#-7533759817854830743.1#"];
"-4891172302811509810.1" -> "-4891172302811509810.1";
"-4891172302811509810.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")
#-4891172302811509810.1#"];
"6775617846239370668.1" -> "-1088739534983396591.1";
"-1088739534983396591.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e2\")
#-1088739534983396591.1#"];
"6775617846239370668.1" -> "-7533759817854830743.1";
"-7533759817854830743.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#-7533759817854830743.1#"];
"6775617846239370668.1" -> "6775617846239370668.1";
"6775617846239370668.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#6775617846239370668.1#"];
"3905739610096960540.1" -> "-1088739534983396591.1";
"-1088739534983396591.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e2\")
#-1088739534983396591.1#"];
"3905739610096960540.1" -> "-4725640334347698326.0";
"-4725640334347698326.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4725640334347698326.0#"];
"3905739610096960540.1" -> "-4725640334347698326.1";
"-4725640334347698326.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4725640334347698326.1#"];
"3905739610096960540.1" -> "3905739610096960540.1";
"3905739610096960540.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#3905739610096960540.1#"];
"-1534383658450382740.0" -> "-4725640334347698326.2";
"-4725640334347698326.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4725640334347698326.2#"];
"-1534383658450382740.0" -> "-1534383658450382740.2";
"-1534383658450382740.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")
#-1534383658450382740.2#"];
"-1534383658450382740.2" -> "-4725640334347698326.2" [style="dotted"];
"-1534383658450382740.1" -> "-6297107797553737216.1";
"-6297107797553737216.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")
#-6297107797553737216.1#"];
"-1534383658450382740.1" -> "-4725640334347698326.0";
"-4725640334347698326.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4725640334347698326.0#"];
"-1534383658450382740.1" -> "-4725640334347698326.1";
"-4725640334347698326.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4725640334347698326.1#"];
"-1534383658450382740.1" -> "-1534383658450382740.0";
"-1534383658450382740.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")
#-1534383658450382740.0#"];
"-1534383658450382740.1" -> "-1534383658450382740.1";
"-1534383658450382740.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")
#-1534383658450382740.1#"];
"-4737441124444714616.1" -> "5085455432294731190.1";
"5085455432294731190.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")
#5085455432294731190.1#"];
"-4737441124444714616.1" -> "-4737441124444714616.1";
"-4737441124444714616.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")
#-4737441124444714616.1#"];
"-4737441124444714616.1" -> "-7976570240747132033.1";
"-7976570240747132033.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#-7976570240747132033.1#"];
"-7533759817854830743.1" -> "-7358308420137391307.1";
"-7358308420137391307.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")
#-7358308420137391307.1#"];
"-7533759817854830743.1" -> "-7533759817854830743.1";
"-7533759817854830743.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#-7533759817854830743.1#"];
"-7533759817854830743.1" -> "-7976570240747132033.1";
"-7976570240747132033.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#-7976570240747132033.1#"];
"-1088739534983396591.1" -> "-1088739534983396591.1";
"-1088739534983396591.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e2\")
#-1088739534983396591.1#"];
"-1088739534983396591.1" -> "-384302305046358828.1";
"-384302305046358828.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-384302305046358828.1#"];
"-1088739534983396591.1" -> "-4011009453110952578.1";
"-4011009453110952578.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#-4011009453110952578.1#"];
"-4725640334347698326.0" -> "8700069877200124007.2";
"8700069877200124007.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#8700069877200124007.2#"];
"-4725640334347698326.0" -> "-4725640334347698326.2";
"-4725640334347698326.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4725640334347698326.2#"];
"-4725640334347698326.1" -> "8700069877200124007.0";
"8700069877200124007.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#8700069877200124007.0#"];
"-4725640334347698326.1" -> "8700069877200124007.1";
"8700069877200124007.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#8700069877200124007.1#"];
"-4725640334347698326.1" -> "-5716330678854760024.1";
"-5716330678854760024.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")
#-5716330678854760024.1#"];
"-4725640334347698326.1" -> "-4725640334347698326.0";
"-4725640334347698326.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4725640334347698326.0#"];
"-4725640334347698326.1" -> "-4725640334347698326.1";
"-4725640334347698326.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4725640334347698326.1#"];
"-4725640334347698326.2" -> "8700069877200124007.2";
"8700069877200124007.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#8700069877200124007.2#"];
"-4725640334347698326.2" -> "-4725640334347698326.2";
"-4725640334347698326.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4725640334347698326.2#"];
"-6297107797553737216.1" -> "-6297107797553737216.1";
"-6297107797553737216.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")
#-6297107797553737216.1#"];
"-6297107797553737216.1" -> "5085455432294731190.1";
"5085455432294731190.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")
#5085455432294731190.1#"];
"-6297107797553737216.1" -> "-5716330678854760024.1";
"-5716330678854760024.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")
#-5716330678854760024.1#"];
"-7976570240747132033.1" -> "209506020327074019.1";
"209506020327074019.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#209506020327074019.1#"];
"-7976570240747132033.1" -> "-8911842714561954920.1";
"-8911842714561954920.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#-8911842714561954920.1#"];
"-7976570240747132033.1" -> "-7976570240747132033.1";
"-7976570240747132033.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#-7976570240747132033.1#"];
"-7358308420137391307.1" -> "-7805684533418984208.1";
"-7805684533418984208.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-7805684533418984208.1#"];
"-7358308420137391307.1" -> "209506020327074019.1";
"209506020327074019.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#209506020327074019.1#"];
"-7358308420137391307.1" -> "-7358308420137391307.1";
"-7358308420137391307.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")
#-7358308420137391307.1#"];
"-4011009453110952578.1" -> "-4460637202960127301.1";
"-4460637202960127301.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-4460637202960127301.1#"];
"-4011009453110952578.1" -> "3905739610096960540.1";
"3905739610096960540.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#3905739610096960540.1#"];
"-4011009453110952578.1" -> "-4011009453110952578.1";
"-4011009453110952578.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#-4011009453110952578.1#"];
"-384302305046358828.1" -> "-384302305046358828.1";
"-384302305046358828.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-384302305046358828.1#"];
"-384302305046358828.1" -> "-4460637202960127301.1";
"-4460637202960127301.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-4460637202960127301.1#"];
"-384302305046358828.1" -> "6775617846239370668.1";
"6775617846239370668.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#6775617846239370668.1#"];
"8700069877200124007.2" -> "8700069877200124007.2";
"8700069877200124007.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#8700069877200124007.2#"];
"8700069877200124007.2" -> "4615862493202646536.2";
"4615862493202646536.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#4615862493202646536.2#"];
"8700069877200124007.0" -> "8700069877200124007.2";
"8700069877200124007.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#8700069877200124007.2#"];
"8700069877200124007.0" -> "4615862493202646536.2";
"4615862493202646536.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#4615862493202646536.2#"];
"8700069877200124007.1" -> "-3653511980151831675.1";
"-3653511980151831675.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")
#-3653511980151831675.1#"];
"8700069877200124007.1" -> "8700069877200124007.0";
"8700069877200124007.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#8700069877200124007.0#"];
"8700069877200124007.1" -> "8700069877200124007.1";
"8700069877200124007.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#8700069877200124007.1#"];
"8700069877200124007.1" -> "4615862493202646536.0";
"4615862493202646536.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#4615862493202646536.0#"];
"8700069877200124007.1" -> "4615862493202646536.1";
"4615862493202646536.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#4615862493202646536.1#"];
"-5716330678854760024.1" -> "-3653511980151831675.1";
"-3653511980151831675.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")
#-3653511980151831675.1#"];
"-5716330678854760024.1" -> "-5716330678854760024.1";
"-5716330678854760024.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")
#-5716330678854760024.1#"];
"-5716330678854760024.1" -> "3524579045693731114.1";
"3524579045693731114.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")
#3524579045693731114.1#"];
"209506020327074019.1" -> "209506020327074019.1";
"209506020327074019.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#209506020327074019.1#"];
"209506020327074019.1" -> "623461173049409318.1";
"623461173049409318.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#623461173049409318.1#"];
"209506020327074019.1" -> "7128099167373912858.1";
"7128099167373912858.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")
#7128099167373912858.1#"];
"-7805684533418984208.1" -> "-7805684533418984208.1";
"-7805684533418984208.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-7805684533418984208.1#"];
"-7805684533418984208.1" -> "623461173049409318.1";
"623461173049409318.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#623461173049409318.1#"];
"-7805684533418984208.1" -> "-7533759817854830743.1";
"-7533759817854830743.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#-7533759817854830743.1#"];
"-4460637202960127301.1" -> "4358731569716630489.1";
"4358731569716630489.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#4358731569716630489.1#"];
"-4460637202960127301.1" -> "-4460637202960127301.1";
"-4460637202960127301.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-4460637202960127301.1#"];
"-4460637202960127301.1" -> "5726825228716880478.1";
"5726825228716880478.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#5726825228716880478.1#"];
"4615862493202646536.2" -> "4615862493202646536.2";
"4615862493202646536.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#4615862493202646536.2#"];
"4615862493202646536.2" -> "-4725640334347698326.2";
"-4725640334347698326.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4725640334347698326.2#"];
"4615862493202646536.0" -> "4615862493202646536.2";
"4615862493202646536.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#4615862493202646536.2#"];
"4615862493202646536.0" -> "-4725640334347698326.2";
"-4725640334347698326.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4725640334347698326.2#"];
"4615862493202646536.1" -> "4615862493202646536.0";
"4615862493202646536.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#4615862493202646536.0#"];
"4615862493202646536.1" -> "4615862493202646536.1";
"4615862493202646536.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#4615862493202646536.1#"];
"4615862493202646536.1" -> "-4725640334347698326.0";
"-4725640334347698326.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4725640334347698326.0#"];
"4615862493202646536.1" -> "-4725640334347698326.1";
"-4725640334347698326.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4725640334347698326.1#"];
"4615862493202646536.1" -> "-7243062553507743412.1";
"-7243062553507743412.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")
#-7243062553507743412.1#"];
"-3653511980151831675.1" -> "-516069171314509563.1";
"-516069171314509563.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")
#-516069171314509563.1#"];
"-3653511980151831675.1" -> "-3653511980151831675.1";
"-3653511980151831675.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")
#-3653511980151831675.1#"];
"-3653511980151831675.1" -> "-7243062553507743412.1";
"-7243062553507743412.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")
#-7243062553507743412.1#"];
"623461173049409318.1" -> "-7976570240747132033.1";
"-7976570240747132033.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#-7976570240747132033.1#"];
"623461173049409318.1" -> "623461173049409318.1";
"623461173049409318.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#623461173049409318.1#"];
"623461173049409318.1" -> "7539784793880886495.1";
"7539784793880886495.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#7539784793880886495.1#"];
"4358731569716630489.1" -> "-384302305046358828.1";
"-384302305046358828.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-384302305046358828.1#"];
"4358731569716630489.1" -> "4358731569716630489.1";
"4358731569716630489.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#4358731569716630489.1#"];
"4358731569716630489.1" -> "7805651401774470092.1";
"7805651401774470092.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#7805651401774470092.1#"];
"5726825228716880478.1" -> "7805651401774470092.1";
"7805651401774470092.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#7805651401774470092.1#"];
"5726825228716880478.1" -> "-4011009453110952578.1";
"-4011009453110952578.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#-4011009453110952578.1#"];
"5726825228716880478.1" -> "5726825228716880478.1";
"5726825228716880478.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#5726825228716880478.1#"];
"-7243062553507743412.1" -> "3160519931459361361.1";
"3160519931459361361.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"ncs\")
#3160519931459361361.1#"];
"-7243062553507743412.1" -> "-5716330678854760024.1";
"-5716330678854760024.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")
#-5716330678854760024.1#"];
"-7243062553507743412.1" -> "-7243062553507743412.1";
"-7243062553507743412.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")
#-7243062553507743412.1#"];
"7539784793880886495.1" -> "-8911842714561954920.1";
"-8911842714561954920.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#-8911842714561954920.1#"];
"7539784793880886495.1" -> "4358731569716630489.1";
"4358731569716630489.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#4358731569716630489.1#"];
"7539784793880886495.1" -> "7539784793880886495.1";
"7539784793880886495.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#7539784793880886495.1#"];
"3160519931459361361.1" -> "3160519931459361361.1";
"3160519931459361361.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"ncs\")
#3160519931459361361.1#"];
"3160519931459361361.1" -> "3524579045693731114.1";
"3524579045693731114.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")
#3524579045693731114.1#"];
"3160519931459361361.1" -> "5726825228716880478.1";
"5726825228716880478.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#5726825228716880478.1#"];
}
}@ 1 :> \"enter\")
#5726825228716880478.1#"];
}
} TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#3905739610096960540.1#"];
"-4011009453110952578.1" -> "-4011009453110952578.0";
"-4011009453110952578.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#-4011009453110952578.0#"];
"-4011009453110952578.1" -> "-4011009453110952578.1";
"-4011009453110952578.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#-4011009453110952578.1#"];
"-384302305046358828.2" -> "-384302305046358828.2";
"-384302305046358828.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-384302305046358828.2#"];
"-384302305046358828.2" -> "-4460637202960127301.2";
"-4460637202960127301.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-4460637202960127301.2#"];
"-384302305046358828.2" -> "6775617846239370668.2";
"6775617846239370668.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#6775617846239370668.2#"];
"-384302305046358828.0" -> "-384302305046358828.2";
"-384302305046358828.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-384302305046358828.2#"];
"-384302305046358828.0" -> "-4460637202960127301.2";
"-4460637202960127301.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-4460637202960127301.2#"];
"-384302305046358828.0" -> 137391307.0#"];
"-7358308420137391307.1" -> "-7358308420137391307.1";
"-7358308420137391307.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")
#-7358308420137391307.1#"];
"-4011009453110952578.2" -> "-4460637202960127301.2";
"-4460637202960127301.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-4460637202960127301.2#"];
"-4011009453110952578.2" -> "3905739610096960540.2";
"3905739610096960540.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#3905739610096960540.2#"];
"-4011009453110952578.2" -> "-4011009453110952578.2";
"-4011009453110952578.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#-4011009453110952578.2#"];
"-4011009453110952578.0" -> "-4460637202960127301.2";
"-4460637202960127301.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-4460637202960127301.2#"];
"-4011009453110952578.0" -> "3905739610096960540.2";
"3905739610096960540.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#3905739610096960540.2#"];
"-4011009453110952578.0" -> "-4011009453110952578.2";
"-4011009453110952578.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#-4011009453110952578.2#"];
"-4011009453110952578.1" -> "-4460637202960127301.0";
"-4460637202960127301.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-4460637202960127301.0#"];
"-4011009453110952578.1" -> "-4460637202960127301.1";
"-4460637202960127301.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-4460637202960127301.1#"];
"-4011009453110952578.1" -> "3905739610096960540.0";
"3905739610096960540.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#3905739610096960540.0#"];
"-4011009453110952578.1" -> "3905739610096960540.1";
"3905739610096960540.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#3905739610096960540.1#"];
"-4011009453110952578.1" -> "-4011009453110952578.0";
"-4011009453110952578.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#-4011009453110952578.0#"];
"-4011009453110952578.1" -> "-4011009453110952578.1";
"-4011009453110952578.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#-4011009453110952578.1#"];
"-384302305046358828.2" -> "-384302305046358828.2";
"-384302305046358828.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-384302305046358828.2#"];
"-384302305046358828.2" -> "-4460637202960127301.2";
"-4460637202960127301.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-4460637202960127301.2#"];
"-384302305046358828.2" -> "6775617846239370668.2";
"6775617846239370668.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#6775617846239370668.2#"];
"-384302305046358828.0" -> "-384302305046358828.2";
"-384302305046358828.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-384302305046358828.2#"];
"-384302305046358828.0" -> "-4460637202960127301.2";
"-4460637202960127301.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-4460637202960127301.2#"];
"-384302305046358828.0" -> "6775617846239370668.2";
"6775617846239370668.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#6775617846239370668.2#"];
"-384302305046358828.1" -> "-384302305046358828.0";
"-384302305046358828.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-384302305046358828.0#"];
"-384302305046358828.1" -> "-384302305046358828.1";
"-384302305046358828.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-384302305046358828.1#"];
"-384302305046358828.1" -> "-4460637202960127301.0";
"-4460637202960127301.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-4460637202960127301.0#"];
"-384302305046358828.1" -> "-4460637202960127301.1";
"-4460637202960127301.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-4460637202960127301.1#"];
"-384302305046358828.1" -> "6775617846239370668.0";
"6775617846239370668.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#6775617846239370668.0#"];
"-384302305046358828.1" -> "6775617846239370668.1";
"6775617846239370668.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#6775617846239370668.1#"];
"8700069877200124007.1" -> "-3653511980151831675.1";
"-3653511980151831675.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")
#-3653511980151831675.1#"];
"8700069877200124007.1" -> "8700069877200124007.1";
"8700069877200124007.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#8700069877200124007.1#"];
"8700069877200124007.1" -> "4615862493202646536.1";
"4615862493202646536.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#4615862493202646536.1#"];
"-5716330678854760024.1" -> "-3653511980151831675.1";
"-3653511980151831675.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")
#-3653511980151831675.1#"];
"-5716330678854760024.1" -> "-5716330678854760024.1";
"-5716330678854760024.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")
#-5716330678854760024.1#"];
"-5716330678854760024.1" -> "3524579045693731114.1";
"3524579045693731114.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")
#3524579045693731114.1#"];
"209506020327074019.2" -> "209506020327074019.2";
"209506020327074019.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#209506020327074019.2#"];
"209506020327074019.2" -> "623461173049409318.2";
"623461173049409318.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#623461173049409318.2#"];
"209506020327074019.2" -> "7128099167373912858.2";
"7128099167373912858.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")
#7128099167373912858.2#"];
"209506020327074019.0" -> "209506020327074019.2";
"209506020327074019.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#209506020327074019.2#"];
"209506020327074019.0" -> "623461173049409318.2";
"623461173049409318.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#623461173049409318.2#"];
"209506020327074019.0" -> "7128099167373912858.2";
"7128099167373912858.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")
#7128099167373912858.2#"];
"209506020327074019.1" -> "209506020327074019.0";
"209506020327074019.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#209506020327074019.0#"];
"209506020327074019.1" -> "209506020327074019.1";
"209506020327074019.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#209506020327074019.1#"];
"209506020327074019.1" -> "623461173049409318.0";
"623461173049409318.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#623461173049409318.0#"];
"209506020327074019.1" -> "623461173049409318.1";
"623461173049409318.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#623461173049409318.1#"];
"209506020327074019.1" -> "7128099167373912858.0";
"7128099167373912858.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")
#7128099167373912858.0#"];
"209506020327074019.1" -> "7128099167373912858.1";
"7128099167373912858.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")
#7128099167373912858.1#"];
"-7805684533418984208.2" -> "-7805684533418984208.2";
"-7805684533418984208.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-7805684533418984208.2#"];
"-7805684533418984208.2" -> "623461173049409318.2";
"623461173049409318.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#623461173049409318.2#"];
"-7805684533418984208.2" -> "-7533759817854830743.2";
"-7533759817854830743.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#-7533759817854830743.2#"];
"-7805684533418984208.0" -> "-7805684533418984208.2";
"-7805684533418984208.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-7805684533418984208.2#"];
"-7805684533418984208.0" -> "623461173049409318.2";
"623461173049409318.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#623461173049409318.2#"];
"-7805684533418984208.0" -> "-7533759817854830743.2";
"-7533759817854830743.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#-7533759817854830743.2#"];
"-7805684533418984208.1" -> "-7805684533418984208.0";
"-7805684533418984208.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-7805684533418984208.0#"];
"-7805684533418984208.1" -> "-7805684533418984208.1";
"-7805684533418984208.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-7805684533418984208.1#"];
"-7805684533418984208.1" -> "623461173049409318.0";
"623461173049409318.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#623461173049409318.0#"];
"-7805684533418984208.1" -> "623461173049409318.1";
"623461173049409318.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#623461173049409318.1#"];
"-7805684533418984208.1" -> "-7533759817854830743.0";
"-7533759817854830743.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#-7533759817854830743.0#"];
"-7805684533418984208.1" -> "-7533759817854830743.1";
"-7533759817854830743.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#-7533759817854830743.1#"];
"-4460637202960127301.2" -> "4358731569716630489.2";
"4358731569716630489.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#4358731569716630489.2#"];
"-4460637202960127301.2" -> "-4460637202960127301.2";
"-4460637202960127301.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-4460637202960127301.2#"];
"-4460637202960127301.2" -> "5726825228716880478.2";
"5726825228716880478.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#5726825228716880478.2#"];
"-4460637202960127301.0" -> "4358731569716630489.2";
"4358731569716630489.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#4358731569716630489.2#"];
"-4460637202960127301.0" -> "-4460637202960127301.2";
"-4460637202960127301.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-4460637202960127301.2#"];
"-4460637202960127301.0" -> "5726825228716880478.2";
"5726825228716880478.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#5726825228716880478.2#"];
"-4460637202960127301.1" -> "4358731569716630489.0";
"4358731569716630489.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#4358731569716630489.0#"];
"-4460637202960127301.1" -> "4358731569716630489.1";
"4358731569716630489.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#4358731569716630489.1#"];
"-4460637202960127301.1" -> "-4460637202960127301.0";
"-4460637202960127301.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-4460637202960127301.0#"];
"-4460637202960127301.1" -> "-4460637202960127301.1";
"-4460637202960127301.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-4460637202960127301.1#"];
"-4460637202960127301.1" -> "5726825228716880478.0";
"5726825228716880478.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#5726825228716880478.0#"];
"-4460637202960127301.1" -> "5726825228716880478.1";
"5726825228716880478.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#5726825228716880478.1#"];
"4615862493202646536.1" -> "4615862493202646536.1";
"4615862493202646536.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#4615862493202646536.1#"];
"4615862493202646536.1" -> "-4725640334347698326.1";
"-4725640334347698326.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4725640334347698326.1#"];
"4615862493202646536.1" -> "-7243062553507743412.1";
"-7243062553507743412.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")
#-7243062553507743412.1#"];
"-3653511980151831675.1" -> "-516069171314509563.1";
"-516069171314509563.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")
#-516069171314509563.1#"];
"-3653511980151831675.1" -> "-3653511980151831675.1";
"-3653511980151831675.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")
#-3653511980151831675.1#"];
"-3653511980151831675.1" -> "-7243062553507743412.1";
"-7243062553507743412.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")
#-7243062553507743412.1#"];
"623461173049409318.2" -> "-7976570240747132033.2";
"-7976570240747132033.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#-7976570240747132033.2#"];
"623461173049409318.2" -> "623461173049409318.2";
"623461173049409318.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#623461173049409318.2#"];
"623461173049409318.2" -> "7539784793880886495.2";
"7539784793880886495.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#7539784793880886495.2#"];
"623461173049409318.0" -> "-7976570240747132033.2";
"-7976570240747132033.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#-7976570240747132033.2#"];
"623461173049409318.0" -> "623461173049409318.2";
"623461173049409318.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#623461173049409318.2#"];
"623461173049409318.0" -> "7539784793880886495.2";
"7539784793880886495.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#7539784793880886495.2#"];
"623461173049409318.1" -> "-7976570240747132033.0";
"-7976570240747132033.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#-7976570240747132033.0#"];
"623461173049409318.1" -> "-7976570240747132033.1";
"-7976570240747132033.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#-7976570240747132033.1#"];
"623461173049409318.1" -> "623461173049409318.0";
"623461173049409318.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#623461173049409318.0#"];
"623461173049409318.1" -> "623461173049409318.1";
"623461173049409318.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#623461173049409318.1#"];
"623461173049409318.1" -> "7539784793880886495.0";
"7539784793880886495.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#7539784793880886495.0#"];
"623461173049409318.1" -> "7539784793880886495.1";
"7539784793880886495.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#7539784793880886495.1#"];
"4358731569716630489.2" -> "-384302305046358828.2";
"-384302305046358828.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-384302305046358828.2#"];
"4358731569716630489.2" -> "4358731569716630489.2";
"4358731569716630489.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#4358731569716630489.2#"];
"4358731569716630489.2" -> "7805651401774470092.2";
"7805651401774470092.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#7805651401774470092.2#"];
"4358731569716630489.0" -> "-384302305046358828.2";
"-384302305046358828.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-384302305046358828.2#"];
"4358731569716630489.0" -> "4358731569716630489.2";
"4358731569716630489.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#4358731569716630489.2#"];
"4358731569716630489.0" -> "7805651401774470092.2";
"7805651401774470092.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#7805651401774470092.2#"];
"4358731569716630489.1" -> "-384302305046358828.0";
"-384302305046358828.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-384302305046358828.0#"];
"4358731569716630489.1" -> "-384302305046358828.1";
"-384302305046358828.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-384302305046358828.1#"];
"4358731569716630489.1" -> "4358731569716630489.0";
"4358731569716630489.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#4358731569716630489.0#"];
"4358731569716630489.1" -> "4358731569716630489.1";
"4358731569716630489.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#4358731569716630489.1#"];
"4358731569716630489.1" -> "7805651401774470092.0";
"7805651401774470092.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#7805651401774470092.0#"];
"4358731569716630489.1" -> "7805651401774470092.1";
"7805651401774470092.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#7805651401774470092.1#"];
"5726825228716880478.2" -> "7805651401774470092.2";
"7805651401774470092.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#7805651401774470092.2#"];
"5726825228716880478.2" -> "-4011009453110952578.2";
"-4011009453110952578.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#-4011009453110952578.2#"];
"5726825228716880478.2" -> "5726825228716880478.2";
"5726825228716880478.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#5726825228716880478.2#"];
"5726825228716880478.0" -> "7805651401774470092.2";
"7805651401774470092.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#7805651401774470092.2#"];
"5726825228716880478.0" -> "-4011009453110952578.2";
"-4011009453110952578.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#-4011009453110952578.2#"];
"5726825228716880478.0" -> "5726825228716880478.2";
"5726825228716880478.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#5726825228716880478.2#"];
"5726825228716880478.1" -> "7805651401774470092.0";
"7805651401774470092.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#7805651401774470092.0#"];
"5726825228716880478.1" -> "7805651401774470092.1";
"7805651401774470092.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#7805651401774470092.1#"];
"5726825228716880478.1" -> "-4011009453110952578.0";
"-4011009453110952578.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#-4011009453110952578.0#"];
"5726825228716880478.1" -> "-4011009453110952578.1";
"-4011009453110952578.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#-4011009453110952578.1#"];
"5726825228716880478.1" -> "5726825228716880478.0";
"5726825228716880478.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#5726825228716880478.0#"];
"5726825228716880478.1" -> "5726825228716880478.1";
"5726825228716880478.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#5726825228716880478.1#"];
"-7243062553507743412.1" -> "3160519931459361361.1";
"3160519931459361361.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"ncs\")
#3160519931459361361.1#"];
"-7243062553507743412.1" -> "-5716330678854760024.1";
"-5716330678854760024.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")
#-5716330678854760024.1#"];
"-7243062553507743412.1" -> "-7243062553507743412.1";
"-7243062553507743412.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")
#-7243062553507743412.1#"];
"7539784793880886495.2" -> "-8911842714561954920.2";
"-8911842714561954920.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#-8911842714561954920.2#"];
"7539784793880886495.2" -> "4358731569716630489.2";
"4358731569716630489.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#4358731569716630489.2#"];
"7539784793880886495.2" -> "7539784793880886495.2";
"7539784793880886495.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#7539784793880886495.2#"];
"7539784793880886495.0" -> "-8911842714561954920.2";
"-8911842714561954920.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#-8911842714561954920.2#"];
"7539784793880886495.0" -> "4358731569716630489.2";
"4358731569716630489.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#4358731569716630489.2#"];
"7539784793880886495.0" -> "7539784793880886495.2";
"7539784793880886495.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#7539784793880886495.2#"];
"7539784793880886495.1" -> "-8911842714561954920.0";
"-8911842714561954920.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#-8911842714561954920.0#"];
"7539784793880886495.1" -> "-8911842714561954920.1";
"-8911842714561954920.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#-8911842714561954920.1#"];
"7539784793880886495.1" -> "4358731569716630489.0";
"4358731569716630489.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#4358731569716630489.0#"];
"7539784793880886495.1" -> "4358731569716630489.1";
"4358731569716630489.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#4358731569716630489.1#"];
"7539784793880886495.1" -> "7539784793880886495.0";
"7539784793880886495.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#7539784793880886495.0#"];
"7539784793880886495.1" -> "7539784793880886495.1";
"7539784793880886495.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#7539784793880886495.1#"];
"3160519931459361361.1" -> "3160519931459361361.1";
"3160519931459361361.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"ncs\")
#3160519931459361361.1#"];
"3160519931459361361.1" -> "3524579045693731114.1";
"3524579045693731114.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")
#3524579045693731114.1#"];
"3160519931459361361.1" -> "5726825228716880478.0";
"5726825228716880478.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#5726825228716880478.0#"];
"3160519931459361361.1" -> "5726825228716880478.1";
"5726825228716880478.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#5726825228716880478.1#"];
}
}\"e3\" @@ 1 :> \"enter\")
#5726825228716880478.1#"];
}
}
\ No newline at end of file
------------------------ MODULE MutualExclusionSpec ------------------------
\* Module MutualExclusionSpec provides general specification for mutual-exclusion problem.
\* Procs is set of processes.
\* Every process is assumed to loop and enter into "cs" state on every interation.
\* Non-critical state is represented as "non-cs".
\* When process decides it want to enter into critical-section, it first goes into "csentry" state.
CONSTANT Procs
VARIABLES pc
TypeOK == pc \in [Procs -> {"non-cs", "csentry", "cs"}]
vars == <<pc>>
\* All processes start from non-critical section.
Init == pc \in [Procs -> {"non-cs"}]
\* WantCS(proc) is action when proc decides that it wants to enter into critical section.
WantCS(proc) ==
/\ pc[proc] = "non-cs"
/\ pc' = [pc EXCEPT ![proc] = "csentry"]
\* EnterCS(proc) is action when proc enters critical section.
EnterCS(proc) ==
/\ pc[proc] = "csentry"
/\ \A i \in Procs \ {proc} : pc[i] /= "cs"
/\ pc' = [pc EXCEPT ![proc] = "cs"]
\* ExitCS(proc) is action when proc leaves critical section.
ExitCS(proc) ==
/\ pc[proc] = "cs"
/\ pc' = [pc EXCEPT ![proc] = "non-cs"]
Next == \E i \in Procs: WantCS(i) \/ EnterCS(i) \/ ExitCS(i)
Spec == /\ Init
/\ [][Next]_vars
/\ \A i \in Procs: ( \* fairness
\* not fair for WantCS - it can pause and even hang there
/\ SF_vars(EnterCS(i))
/\ SF_vars(ExitCS(i)))
----------------
\* MutualExclusion is invariant indicating that no two processes can be inside critical section at the same time.
MutualExclusion == \A i,j \in Procs: (i /= j) => ~((pc[i] = "cs") /\ (pc[j] = "cs"))
\* Liveness is temporal property indicating that every process has a chance to enter critical section and leaves it.
Liveness == \A i \in Procs:
/\ (pc[i] = "csentry") ~> (pc[i] = "cs")
/\ (pc[i] = "cs") ~> (pc[i] = "non-cs")
THEOREM Spec => []TypeOK
THEOREM Spec => []MutualExclusion
THEOREM Spec => Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 19:11:11 MSK 2022 by kirr
\* Created Wed Feb 09 13:11:29 MSK 2022 by kirr
-------------------------------- MODULE 1Bit --------------------------------
\* 1Bit implementation of mutual exclusion
EXTENDS Integers
CONSTANT N
ASSUME N \in Nat
Procs == 0..N
(********
--algorithm 1BitProtocol {
variables flag = [i \in Procs |-> FALSE] ;
process (P \in Procs) {
ncs: while (TRUE) {
skip ;
enter: flag[self] := TRUE ;
e2: if (flag[1-self]) {
e3: flag[self] := FALSE;
goto enter;
};
cs: skip ;
exit: flag[self] := FALSE ;
}
}
}
********)
\* BEGIN TRANSLATION (chksum(pcal) = "b33e7cec" /\ chksum(tla) = "338dfe4c")
VARIABLES flag, pc
vars == << flag, pc >>
ProcSet == (Procs)
Init == (* Global variables *)
/\ flag = [i \in Procs |-> FALSE]
/\ pc = [self \in ProcSet |-> "ncs"]
ncs(self) == /\ pc[self] = "ncs"
/\ TRUE
/\ pc' = [pc EXCEPT ![self] = "enter"]
/\ flag' = flag
enter(self) == /\ pc[self] = "enter"
/\ flag' = [flag EXCEPT ![self] = TRUE]
/\ pc' = [pc EXCEPT ![self] = "e2"]
e2(self) == /\ pc[self] = "e2"
/\ IF flag[1-self]
THEN /\ pc' = [pc EXCEPT ![self] = "e3"]
ELSE /\ pc' = [pc EXCEPT ![self] = "cs"]
/\ flag' = flag
e3(self) == /\ pc[self] = "e3"
/\ flag' = [flag EXCEPT ![self] = FALSE]
/\ pc' = [pc EXCEPT ![self] = "enter"]
cs(self) == /\ pc[self] = "cs"
/\ TRUE
/\ pc' = [pc EXCEPT ![self] = "exit"]
/\ flag' = flag
exit(self) == /\ pc[self] = "exit"
/\ flag' = [flag EXCEPT ![self] = FALSE]
/\ pc' = [pc EXCEPT ![self] = "ncs"]
P(self) == ncs(self) \/ enter(self) \/ e2(self) \/ e3(self) \/ cs(self)
\/ exit(self)
Next == (\E self \in Procs: P(self))
Spec == Init /\ [][Next]_vars
\* END TRANSLATION
--------
\* Invariant which implies MutualExclusion
\*Inv == \A i \in Procs : (pc[i] = "cs") => (flag[i] /\ (~flag[1-i] \/ pc[1-i] = "e2"))
Inv == \A i \in Procs : (pc[i] = "cs") => (flag[i] /\ (~flag[1-i] \/ pc[1-i] \in {"e2","e3"}))
ME == INSTANCE MutualExclusionSpec WITH
pc <- [proc \in Procs |-> CASE pc[proc] = "cs" -> "cs"
[] pc[proc] \in {"enter","e2"} -> "csentry" \* XXX +e3
[] OTHER -> "non-cs"]
THEOREM Spec => ME!Spec
THEOREM Spec => []ME!MutualExclusion
THEOREM Spec => ME!Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 21:13:48 MSK 2022 by kirr
\* Created Wed Feb 09 20:01:56 MSK 2022 by kirr
\* CONSTANT definitions
CONSTANT
N <- const_1644430441430619000
\* SPECIFICATION definition
SPECIFICATION
Spec
\* INVARIANT definition
INVARIANT
inv_1644430441430620000
Inv
\* Generated on Wed Feb 09 21:14:01 MSK 2022
\ No newline at end of file
@!@!@STARTMSG 2262:0 @!@!@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 82 and seed -655975556858912913 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 78566] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
@!@!@ENDMSG 2220 @!@!@
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MC.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/1Bit.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/TLC.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Integers.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Naturals.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MutualExclusionSpec.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Sequences.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/FiniteSets.tla
Semantic processing of module Naturals
Semantic processing of module Integers
Semantic processing of module MutualExclusionSpec
Semantic processing of module 1Bit
Semantic processing of module Sequences
Semantic processing of module FiniteSets
Semantic processing of module TLC
Semantic processing of module MC
@!@!@STARTMSG 2219:0 @!@!@
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 21:14:01)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2189:0 @!@!@
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 21:14:02.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2193:0 @!@!@
Model checking completed. No error has been found.
Estimates of the probability that TLC did not check all reachable states
because two distinct states had the same fingerprint:
calculated (optimistic): val = 5.7E-17
@!@!@ENDMSG 2193 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 21:14:02
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 34, col 1 to line 34, col 4 of module 1Bit>: 1:1
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
line 35, col 19 to line 35, col 41 of module 1Bit: 1:2
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 35, col 26 to line 35, col 30 of module 1Bit: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 36, col 12 to line 36, col 44 of module 1Bit: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 36, col 17 to line 36, col 44 of module 1Bit: 1:2
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 36, col 27 to line 36, col 33 of module 1Bit: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ncs line 38, col 1 to line 38, col 9 of module 1Bit>: 3:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 38, col 17 to line 38, col 32 of module 1Bit: 76
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 38, col 17 to line 38, col 24 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 39, col 17 to line 39, col 20 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 40, col 17 to line 40, col 51 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 41, col 17 to line 41, col 28 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<enter line 43, col 1 to line 43, col 11 of module 1Bit>: 8:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 43, col 19 to line 43, col 36 of module 1Bit: 76
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 43, col 19 to line 43, col 26 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 44, col 19 to line 44, col 54 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 45, col 19 to line 45, col 50 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e2 line 47, col 1 to line 47, col 8 of module 1Bit>: 10:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 47, col 16 to line 47, col 30 of module 1Bit: 76
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 16 to line 47, col 23 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 48, col 19 to line 48, col 30 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 49, col 24 to line 49, col 58 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 50, col 24 to line 50, col 58 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 51, col 16 to line 51, col 27 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e3 line 53, col 1 to line 53, col 8 of module 1Bit>: 2:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 53, col 16 to line 53, col 30 of module 1Bit: 76
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 53, col 16 to line 53, col 23 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 54, col 16 to line 54, col 52 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 55, col 16 to line 55, col 50 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<cs line 57, col 1 to line 57, col 8 of module 1Bit>: 6:8
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 57, col 16 to line 57, col 30 of module 1Bit: 72
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 57, col 16 to line 57, col 23 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 58, col 16 to line 58, col 19 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 59, col 16 to line 59, col 49 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 60, col 16 to line 60, col 27 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<exit line 62, col 1 to line 62, col 10 of module 1Bit>: 2:8
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 62, col 18 to line 62, col 34 of module 1Bit: 72
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 62, col 18 to line 62, col 25 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 63, col 18 to line 63, col 54 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 64, col 18 to line 64, col 50 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<inv_1644430441430620000 line 10, col 1 to line 10, col 23 of module MC>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 11, col 1 to line 11, col 18 of module MC: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 83, col 23 to line 85, col 90 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 82, col 1 to line 85, col 90 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<Inv line 79, col 1 to line 79, col 3 of module 1Bit>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 79, col 8 to line 79, col 94 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 79, col 25 to line 79, col 94 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 79, col 26 to line 79, col 37 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 79, col 44 to line 79, col 93 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 79, col 44 to line 79, col 50 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 79, col 56 to line 79, col 92 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 79, col 56 to line 79, col 65 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 79, col 70 to line 79, col 92 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 79, col 17 to line 79, col 21 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(9) at 2022-02-09 21:14:02: 65 states generated (3 025 s/min), 32 distinct states found (1 489 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
65 states generated, 32 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 9.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2268:0 @!@!@
The average outdegree of the complete state graph is 1 (minimum is 0, the maximum 2 and the 95th percentile is 2).
@!@!@ENDMSG 2268 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1297ms at (2022-02-09 21:14:02)
@!@!@ENDMSG 2186 @!@!@
---- MODULE MC ----
EXTENDS 1Bit, TLC
\* CONSTANT definitions @modelParameterConstants:0N
const_1644430441430619000 ==
1
----
\* INVARIANT definition @modelCorrectnessInvariants:0
inv_1644430441430620000 ==
ME!MutualExclusion
----
=============================================================================
\* Modification History
\* Created Wed Feb 09 21:14:01 MSK 2022 by kirr
@!@!@STARTMSG 2262:0 @!@!@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 82 and seed -655975556858912913 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 78566] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
@!@!@ENDMSG 2220 @!@!@
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MC.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/1Bit.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/TLC.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Integers.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Naturals.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MutualExclusionSpec.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Sequences.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/FiniteSets.tla
Semantic processing of module Naturals
Semantic processing of module Integers
Semantic processing of module MutualExclusionSpec
Semantic processing of module 1Bit
Semantic processing of module Sequences
Semantic processing of module FiniteSets
Semantic processing of module TLC
Semantic processing of module MC
@!@!@STARTMSG 2219:0 @!@!@
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 21:14:01)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2189:0 @!@!@
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 21:14:02.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2193:0 @!@!@
Model checking completed. No error has been found.
Estimates of the probability that TLC did not check all reachable states
because two distinct states had the same fingerprint:
calculated (optimistic): val = 5.7E-17
@!@!@ENDMSG 2193 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 21:14:02
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 34, col 1 to line 34, col 4 of module 1Bit>: 1:1
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
line 35, col 19 to line 35, col 41 of module 1Bit: 1:2
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 35, col 26 to line 35, col 30 of module 1Bit: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 36, col 12 to line 36, col 44 of module 1Bit: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 36, col 17 to line 36, col 44 of module 1Bit: 1:2
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 36, col 27 to line 36, col 33 of module 1Bit: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ncs line 38, col 1 to line 38, col 9 of module 1Bit>: 3:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 38, col 17 to line 38, col 32 of module 1Bit: 76
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 38, col 17 to line 38, col 24 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 39, col 17 to line 39, col 20 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 40, col 17 to line 40, col 51 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 41, col 17 to line 41, col 28 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<enter line 43, col 1 to line 43, col 11 of module 1Bit>: 8:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 43, col 19 to line 43, col 36 of module 1Bit: 76
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 43, col 19 to line 43, col 26 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 44, col 19 to line 44, col 54 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 45, col 19 to line 45, col 50 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e2 line 47, col 1 to line 47, col 8 of module 1Bit>: 10:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 47, col 16 to line 47, col 30 of module 1Bit: 76
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 16 to line 47, col 23 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 48, col 19 to line 48, col 30 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 49, col 24 to line 49, col 58 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 50, col 24 to line 50, col 58 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 51, col 16 to line 51, col 27 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e3 line 53, col 1 to line 53, col 8 of module 1Bit>: 2:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 53, col 16 to line 53, col 30 of module 1Bit: 76
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 53, col 16 to line 53, col 23 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 54, col 16 to line 54, col 52 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 55, col 16 to line 55, col 50 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<cs line 57, col 1 to line 57, col 8 of module 1Bit>: 6:8
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 57, col 16 to line 57, col 30 of module 1Bit: 72
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 57, col 16 to line 57, col 23 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 58, col 16 to line 58, col 19 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 59, col 16 to line 59, col 49 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 60, col 16 to line 60, col 27 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<exit line 62, col 1 to line 62, col 10 of module 1Bit>: 2:8
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 62, col 18 to line 62, col 34 of module 1Bit: 72
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 62, col 18 to line 62, col 25 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 63, col 18 to line 63, col 54 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 64, col 18 to line 64, col 50 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<inv_1644430441430620000 line 10, col 1 to line 10, col 23 of module MC>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 11, col 1 to line 11, col 18 of module MC: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 83, col 23 to line 85, col 90 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 82, col 1 to line 85, col 90 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<Inv line 79, col 1 to line 79, col 3 of module 1Bit>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 79, col 8 to line 79, col 94 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 79, col 25 to line 79, col 94 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 79, col 26 to line 79, col 37 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 79, col 44 to line 79, col 93 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 79, col 44 to line 79, col 50 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 79, col 56 to line 79, col 92 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 79, col 56 to line 79, col 65 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 79, col 70 to line 79, col 92 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 79, col 17 to line 79, col 21 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(9) at 2022-02-09 21:14:02: 65 states generated (3 025 s/min), 32 distinct states found (1 489 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
65 states generated, 32 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 9.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2268:0 @!@!@
The average outdegree of the complete state graph is 1 (minimum is 0, the maximum 2 and the 95th percentile is 2).
@!@!@ENDMSG 2268 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1297ms at (2022-02-09 21:14:02)
@!@!@ENDMSG 2186 @!@!@
strict digraph DiskGraph {
edge [colorscheme="paired12"]
nodesep=0.35;
subgraph cluster_graph {
color="white";
-8207800682143011604 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")",style = filled]
-8207800682143011604 -> -1898859409693584170 [label="",color="2",fontcolor="2"];
-1898859409693584170 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")"];
-8207800682143011604 -> 8680679855716785430 [label="",color="2",fontcolor="2"];
8680679855716785430 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")"];
8680679855716785430 -> 2609446035001071015 [label="",color="2",fontcolor="2"];
2609446035001071015 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")"];
-1898859409693584170 -> 649276215269042678 [label="",color="3",fontcolor="3"];
649276215269042678 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")"];
8680679855716785430 -> -3513800155198664853 [label="",color="3",fontcolor="3"];
-3513800155198664853 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")"];
-1898859409693584170 -> 2609446035001071015 [label="",color="2",fontcolor="2"];
2609446035001071015 -> 8566278427511381018 [label="",color="3",fontcolor="3"];
8566278427511381018 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")"];
649276215269042678 -> -7515084137797002991 [label="",color="4",fontcolor="4"];
-7515084137797002991 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")"];
2609446035001071015 -> -4134979692026463607 [label="",color="3",fontcolor="3"];
-4134979692026463607 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")"];
649276215269042678 -> 8566278427511381018 [label="",color="2",fontcolor="2"];
-3513800155198664853 -> -4134979692026463607 [label="",color="2",fontcolor="2"];
8566278427511381018 -> -9205930425329188375 [label="",color="4",fontcolor="4"];
-9205930425329188375 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")"];
-3513800155198664853 -> 7641499007996120982 [label="",color="4",fontcolor="4"];
7641499007996120982 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")"];
8566278427511381018 -> -638942661406916565 [label="",color="3",fontcolor="3"];
-638942661406916565 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e2\")"];
-7515084137797002991 -> 8770575480411227391 [label="",color="5",fontcolor="5"];
8770575480411227391 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")"];
-4134979692026463607 -> -638942661406916565 [label="",color="3",fontcolor="3"];
-7515084137797002991 -> -9205930425329188375 [label="",color="2",fontcolor="2"];
-4134979692026463607 -> 7182659061744073332 [label="",color="4",fontcolor="4"];
7182659061744073332 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")"];
-9205930425329188375 -> -6790909092300373228 [label="",color="5",fontcolor="5"];
-6790909092300373228 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")"];
7641499007996120982 -> 7182659061744073332 [label="",color="2",fontcolor="2"];
-9205930425329188375 -> -8172443221505060476 [label="",color="3",fontcolor="3"];
-8172443221505060476 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")"];
-638942661406916565 -> -6573916343649216732 [label="",color="4",fontcolor="4"];
-6573916343649216732 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")"];
7641499007996120982 -> 735209579287226230 [label="",color="5",fontcolor="5"];
735209579287226230 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")"];
-638942661406916565 -> 8121221749300902528 [label="",color="4",fontcolor="4"];
8121221749300902528 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")"];
8770575480411227391 -> -8207800682143011604 [label="",color="6",fontcolor="6"];
7182659061744073332 -> 5913915379457949910 [label="",color="3",fontcolor="3"];
5913915379457949910 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")"];
8770575480411227391 -> -6790909092300373228 [label="",color="2",fontcolor="2"];
7182659061744073332 -> -1702765690716794846 [label="",color="5",fontcolor="5"];
-1702765690716794846 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")"];
-6790909092300373228 -> 8680679855716785430 [label="",color="6",fontcolor="6"];
-6790909092300373228 -> -5317099644774915964 [label="",color="3",fontcolor="3"];
-5317099644774915964 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")"];
-8172443221505060476 -> -5317099644774915964 [label="",color="5",fontcolor="5"];
-8172443221505060476 -> 649577310333856559 [label="",color="4",fontcolor="4"];
649577310333856559 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")"];
-6573916343649216732 -> -4134979692026463607 [label="",color="7",fontcolor="7"];
-6573916343649216732 -> 2545277908219948431 [label="",color="4",fontcolor="4"];
2545277908219948431 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")"];
8121221749300902528 -> 2545277908219948431 [label="",color="4",fontcolor="4"];
8121221749300902528 -> 8566278427511381018 [label="",color="7",fontcolor="7"];
5913915379457949910 -> 140937972380293081 [label="",color="4",fontcolor="4"];
140937972380293081 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")"];
5913915379457949910 -> -7176741646622990333 [label="",color="5",fontcolor="5"];
-7176741646622990333 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")"];
-1702765690716794846 -> -7176741646622990333 [label="",color="3",fontcolor="3"];
-1702765690716794846 -> -1898859409693584170 [label="",color="6",fontcolor="6"];
-5317099644774915964 -> -3513800155198664853 [label="",color="6",fontcolor="6"];
-5317099644774915964 -> 3576908294812064303 [label="",color="4",fontcolor="4"];
3576908294812064303 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")"];
649577310333856559 -> 3576908294812064303 [label="",color="5",fontcolor="5"];
649577310333856559 -> -9205930425329188375 [label="",color="7",fontcolor="7"];
2545277908219948431 -> 4687117803347558434 [label="",color="7",fontcolor="7"];
4687117803347558434 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")"];
2545277908219948431 -> -3663462464026719478 [label="",color="7",fontcolor="7"];
-3663462464026719478 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")"];
140937972380293081 -> 7182659061744073332 [label="",color="7",fontcolor="7"];
140937972380293081 -> 5212372912309122395 [label="",color="5",fontcolor="5"];
5212372912309122395 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")"];
-7176741646622990333 -> 5212372912309122395 [label="",color="4",fontcolor="4"];
735209579287226230 -> -1702765690716794846 [label="",color="2",fontcolor="2"];
735209579287226230 -> -8207800682143011604 [label="",color="6",fontcolor="6"];
3576908294812064303 -> 5236028646528251328 [label="",color="6",fontcolor="6"];
5236028646528251328 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")"];
3576908294812064303 -> -6790909092300373228 [label="",color="7",fontcolor="7"];
4687117803347558434 -> 8121221749300902528 [label="",color="3",fontcolor="3"];
4687117803347558434 -> 2609446035001071015 [label="",color="7",fontcolor="7"];
-3663462464026719478 -> 2609446035001071015 [label="",color="7",fontcolor="7"];
-3663462464026719478 -> -6573916343649216732 [label="",color="3",fontcolor="3"];
5212372912309122395 -> -1702765690716794846 [label="",color="7",fontcolor="7"];
5212372912309122395 -> 1953735775303871838 [label="",color="6",fontcolor="6"];
1953735775303871838 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"ncs\")"];
5236028646528251328 -> 4687117803347558434 [label="",color="2",fontcolor="2"];
5236028646528251328 -> 8680679855716785430 [label="",color="7",fontcolor="7"];
1953735775303871838 -> -1898859409693584170 [label="",color="7",fontcolor="7"];
1953735775303871838 -> -3663462464026719478 [label="",color="2",fontcolor="2"];
-7176741646622990333 -> 649276215269042678 [label="",color="6",fontcolor="6"];
{rank = same; -8207800682143011604;}
{rank = same; -1898859409693584170;8680679855716785430;}
{rank = same; 649276215269042678;2609446035001071015;-3513800155198664853;}
{rank = same; -7515084137797002991;8566278427511381018;-4134979692026463607;7641499007996120982;}
{rank = same; -9205930425329188375;735209579287226230;7182659061744073332;-638942661406916565;8770575480411227391;}
{rank = same; 8121221749300902528;-8172443221505060476;-1702765690716794846;-6790909092300373228;-6573916343649216732;5913915379457949910;}
{rank = same; 2545277908219948431;-7176741646622990333;649577310333856559;140937972380293081;-5317099644774915964;}
{rank = same; 3576908294812064303;4687117803347558434;-3663462464026719478;5212372912309122395;}
{rank = same; 5236028646528251328;1953735775303871838;}
}
subgraph cluster_legend {graph[style=bold];label = "Next State Actions" style="solid"
node [ labeljust="l",colorscheme="paired12",style=filled,shape=record ]
cs [label="cs",fillcolor=5]
exit [label="exit",fillcolor=6]
enter [label="enter",fillcolor=3]
e2 [label="e2",fillcolor=4]
e3 [label="e3",fillcolor=7]
ncs [label="ncs",fillcolor=2]
}}
\ No newline at end of file
------------------------ MODULE MutualExclusionSpec ------------------------
\* Module MutualExclusionSpec provides general specification for mutual-exclusion problem.
\* Procs is set of processes.
\* Every process is assumed to loop and enter into "cs" state on every interation.
\* Non-critical state is represented as "non-cs".
\* When process decides it want to enter into critical-section, it first goes into "csentry" state.
CONSTANT Procs
VARIABLES pc
TypeOK == pc \in [Procs -> {"non-cs", "csentry", "cs"}]
vars == <<pc>>
\* All processes start from non-critical section.
Init == pc \in [Procs -> {"non-cs"}]
\* WantCS(proc) is action when proc decides that it wants to enter into critical section.
WantCS(proc) ==
/\ pc[proc] = "non-cs"
/\ pc' = [pc EXCEPT ![proc] = "csentry"]
\* EnterCS(proc) is action when proc enters critical section.
EnterCS(proc) ==
/\ pc[proc] = "csentry"
/\ \A i \in Procs \ {proc} : pc[i] /= "cs"
/\ pc' = [pc EXCEPT ![proc] = "cs"]
\* ExitCS(proc) is action when proc leaves critical section.
ExitCS(proc) ==
/\ pc[proc] = "cs"
/\ pc' = [pc EXCEPT ![proc] = "non-cs"]
Next == \E i \in Procs: WantCS(i) \/ EnterCS(i) \/ ExitCS(i)
Spec == /\ Init
/\ [][Next]_vars
/\ \A i \in Procs: ( \* fairness
\* not fair for WantCS - it can pause and even hang there
/\ SF_vars(EnterCS(i))
/\ SF_vars(ExitCS(i)))
----------------
\* MutualExclusion is invariant indicating that no two processes can be inside critical section at the same time.
MutualExclusion == \A i,j \in Procs: (i /= j) => ~((pc[i] = "cs") /\ (pc[j] = "cs"))
\* Liveness is temporal property indicating that every process has a chance to enter critical section and leaves it.
Liveness == \A i \in Procs:
/\ (pc[i] = "csentry") ~> (pc[i] = "cs")
/\ (pc[i] = "cs") ~> (pc[i] = "non-cs")
THEOREM Spec => []TypeOK
THEOREM Spec => []MutualExclusion
THEOREM Spec => Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 19:11:11 MSK 2022 by kirr
\* Created Wed Feb 09 13:11:29 MSK 2022 by kirr
-------------------------------- MODULE 1Bit --------------------------------
\* 1Bit implementation of mutual exclusion
EXTENDS Integers
CONSTANT N
ASSUME N \in Nat
Procs == 0..N
(********
--algorithm 1BitProtocol {
variables flag = [i \in Procs |-> FALSE] ;
process (P \in Procs) {
ncs: while (TRUE) {
skip ;
enter: flag[self] := TRUE ;
e2: if (flag[1-self]) {
e3: flag[self] := FALSE;
goto enter;
};
cs: skip ;
exit: flag[self] := FALSE ;
}
}
}
********)
\* BEGIN TRANSLATION (chksum(pcal) = "b33e7cec" /\ chksum(tla) = "338dfe4c")
VARIABLES flag, pc
vars == << flag, pc >>
ProcSet == (Procs)
Init == (* Global variables *)
/\ flag = [i \in Procs |-> FALSE]
/\ pc = [self \in ProcSet |-> "ncs"]
ncs(self) == /\ pc[self] = "ncs"
/\ TRUE
/\ pc' = [pc EXCEPT ![self] = "enter"]
/\ flag' = flag
enter(self) == /\ pc[self] = "enter"
/\ flag' = [flag EXCEPT ![self] = TRUE]
/\ pc' = [pc EXCEPT ![self] = "e2"]
e2(self) == /\ pc[self] = "e2"
/\ IF flag[1-self]
THEN /\ pc' = [pc EXCEPT ![self] = "e3"]
ELSE /\ pc' = [pc EXCEPT ![self] = "cs"]
/\ flag' = flag
e3(self) == /\ pc[self] = "e3"
/\ flag' = [flag EXCEPT ![self] = FALSE]
/\ pc' = [pc EXCEPT ![self] = "enter"]
cs(self) == /\ pc[self] = "cs"
/\ TRUE
/\ pc' = [pc EXCEPT ![self] = "exit"]
/\ flag' = flag
exit(self) == /\ pc[self] = "exit"
/\ flag' = [flag EXCEPT ![self] = FALSE]
/\ pc' = [pc EXCEPT ![self] = "ncs"]
P(self) == ncs(self) \/ enter(self) \/ e2(self) \/ e3(self) \/ cs(self)
\/ exit(self)
Next == (\E self \in Procs: P(self))
Spec == Init /\ [][Next]_vars
\* END TRANSLATION
--------
\* Invariant which implies MutualExclusion
\*Inv == \A i \in Procs : (pc[i] = "cs") => (flag[i] /\ (~flag[1-i] \/ pc[1-i] = "e2"))
Inv == \A i \in Procs : (pc[i] = "cs") => (flag[i] /\ (~flag[1-i] \/ pc[1-i] \in {"e2","e3"}))
ME == INSTANCE MutualExclusionSpec WITH
pc <- [proc \in Procs |-> CASE pc[proc] = "cs" -> "cs"
[] pc[proc] \in {"enter","e2"} -> "csentry" \* XXX +e3
[] OTHER -> "non-cs"]
THEOREM Spec => ME!Spec
THEOREM Spec => []ME!MutualExclusion
THEOREM Spec => ME!Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 21:13:48 MSK 2022 by kirr
\* Created Wed Feb 09 20:01:56 MSK 2022 by kirr
\* CONSTANT definitions
CONSTANT
N <- const_1644430449414626000
\* SPECIFICATION definition
SPECIFICATION
Spec
\* INVARIANT definition
INVARIANT
inv_1644430449414627000
Inv
\* PROPERTY definition
PROPERTY
prop_1644430449414629000
\* Generated on Wed Feb 09 21:14:09 MSK 2022
\ No newline at end of file
@!@!@STARTMSG 2262:0 @!@!@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 119 and seed 5300682053200386809 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 78619] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
@!@!@ENDMSG 2220 @!@!@
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MC.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/1Bit.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/TLC.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Integers.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Naturals.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MutualExclusionSpec.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Sequences.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/FiniteSets.tla
Semantic processing of module Naturals
Semantic processing of module Integers
Semantic processing of module MutualExclusionSpec
Semantic processing of module 1Bit
Semantic processing of module Sequences
Semantic processing of module FiniteSets
Semantic processing of module TLC
Semantic processing of module MC
@!@!@STARTMSG 2219:0 @!@!@
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 21:14:09)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 1 branches.
@!@!@ENDMSG 2212 @!@!@
@!@!@STARTMSG 2189:0 @!@!@
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 21:14:10.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2112:1 @!@!@
Action property line 38, col 12 to line 38, col 24 of module MutualExclusionSpec is violated.
@!@!@ENDMSG 2112 @!@!@
@!@!@STARTMSG 2121:1 @!@!@
The behavior up to this point is:
@!@!@ENDMSG 2121 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
1: <Initial predicate>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "ncs" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
2: <ncs line 38, col 14 to line 41, col 28 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "enter" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
3: <enter line 43, col 16 to line 45, col 50 of module 1Bit>
/\ flag = (0 :> TRUE @@ 1 :> FALSE)
/\ pc = (0 :> "e2" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
4: <ncs line 38, col 14 to line 41, col 28 of module 1Bit>
/\ flag = (0 :> TRUE @@ 1 :> FALSE)
/\ pc = (0 :> "e2" @@ 1 :> "enter")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
5: <enter line 43, col 16 to line 45, col 50 of module 1Bit>
/\ flag = (0 :> TRUE @@ 1 :> TRUE)
/\ pc = (0 :> "e2" @@ 1 :> "e2")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
6: <e2 line 47, col 13 to line 51, col 27 of module 1Bit>
/\ flag = (0 :> TRUE @@ 1 :> TRUE)
/\ pc = (0 :> "e3" @@ 1 :> "e2")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 21:14:10
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 34, col 1 to line 34, col 4 of module 1Bit>: 2:2
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
line 35, col 19 to line 35, col 41 of module 1Bit: 2:4
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 35, col 26 to line 35, col 30 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 36, col 12 to line 36, col 44 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 36, col 17 to line 36, col 44 of module 1Bit: 2:4
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 36, col 27 to line 36, col 33 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ncs line 38, col 1 to line 38, col 9 of module 1Bit>: 7:11
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 38, col 17 to line 38, col 32 of module 1Bit: 47
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 38, col 17 to line 38, col 24 of module 1Bit: 36
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 39, col 17 to line 39, col 20 of module 1Bit: 11
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 40, col 17 to line 40, col 51 of module 1Bit: 11
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 41, col 17 to line 41, col 28 of module 1Bit: 11
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<enter line 43, col 1 to line 43, col 11 of module 1Bit>: 6:10
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 43, col 19 to line 43, col 36 of module 1Bit: 44
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 43, col 19 to line 43, col 26 of module 1Bit: 34
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 44, col 19 to line 44, col 54 of module 1Bit: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 45, col 19 to line 45, col 50 of module 1Bit: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e2 line 47, col 1 to line 47, col 8 of module 1Bit>: 4:9
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 47, col 16 to line 47, col 30 of module 1Bit: 39
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 16 to line 47, col 23 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 48, col 19 to line 48, col 30 of module 1Bit: 9
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 49, col 27 to line 49, col 58 of module 1Bit: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 49, col 33 to line 49, col 58 of module 1Bit: 3
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 50, col 24 to line 50, col 58 of module 1Bit: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 51, col 16 to line 51, col 27 of module 1Bit: 7
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 51, col 24 to line 51, col 27 of module 1Bit: 9
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e3 line 53, col 1 to line 53, col 8 of module 1Bit>: 0:0
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 53, col 16 to line 53, col 30 of module 1Bit: 29
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 54, col 16 to line 54, col 52 of module 1Bit: 0
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 55, col 16 to line 55, col 50 of module 1Bit: 0
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<cs line 57, col 1 to line 57, col 8 of module 1Bit>: 2:4
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 57, col 16 to line 57, col 30 of module 1Bit: 33
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 57, col 16 to line 57, col 23 of module 1Bit: 29
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 58, col 16 to line 58, col 19 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 59, col 16 to line 59, col 49 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 60, col 16 to line 60, col 27 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<exit line 62, col 1 to line 62, col 10 of module 1Bit>: 0:2
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 62, col 18 to line 62, col 34 of module 1Bit: 31
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 62, col 18 to line 62, col 25 of module 1Bit: 29
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 63, col 18 to line 63, col 54 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 64, col 18 to line 64, col 50 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<inv_1644430449414627000 line 10, col 1 to line 10, col 23 of module MC>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 11, col 1 to line 11, col 18 of module MC: 20
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 83, col 23 to line 85, col 90 of module 1Bit: 109:144
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 83, col 33 to line 83, col 37 of module 1Bit: 109
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 82, col 1 to line 85, col 90 of module 1Bit: 50
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 20
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 80
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 80
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 40
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 40
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 40
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 20
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<Inv line 79, col 1 to line 79, col 3 of module 1Bit>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 79, col 8 to line 79, col 94 of module 1Bit: 20
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 79, col 25 to line 79, col 94 of module 1Bit: 40
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 79, col 26 to line 79, col 37 of module 1Bit: 40
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 79, col 44 to line 79, col 93 of module 1Bit: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 79, col 44 to line 79, col 50 of module 1Bit: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 79, col 56 to line 79, col 92 of module 1Bit: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 79, col 56 to line 79, col 65 of module 1Bit: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 79, col 70 to line 79, col 92 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 79, col 17 to line 79, col 21 of module 1Bit: 20
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(7) at 2022-02-09 21:14:10: 30 states generated (1 348 s/min), 20 distinct states found (898 ds/min), 3 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
30 states generated, 20 distinct states found, 3 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 7.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1342ms at (2022-02-09 21:14:10)
@!@!@ENDMSG 2186 @!@!@
---- MODULE MC ----
EXTENDS 1Bit, TLC
\* CONSTANT definitions @modelParameterConstants:0N
const_1644430449414626000 ==
1
----
\* INVARIANT definition @modelCorrectnessInvariants:0
inv_1644430449414627000 ==
ME!MutualExclusion
----
\* PROPERTY definition @modelCorrectnessProperties:0
prop_1644430449414629000 ==
ME!Spec
----
=============================================================================
\* Modification History
\* Created Wed Feb 09 21:14:09 MSK 2022 by kirr
@!@!@STARTMSG 2262:0 @!@!@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 119 and seed 5300682053200386809 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 78619] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
@!@!@ENDMSG 2220 @!@!@
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MC.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/1Bit.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/TLC.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Integers.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Naturals.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MutualExclusionSpec.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Sequences.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/FiniteSets.tla
Semantic processing of module Naturals
Semantic processing of module Integers
Semantic processing of module MutualExclusionSpec
Semantic processing of module 1Bit
Semantic processing of module Sequences
Semantic processing of module FiniteSets
Semantic processing of module TLC
Semantic processing of module MC
@!@!@STARTMSG 2219:0 @!@!@
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 21:14:09)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 1 branches.
@!@!@ENDMSG 2212 @!@!@
@!@!@STARTMSG 2189:0 @!@!@
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 21:14:10.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2112:1 @!@!@
Action property line 38, col 12 to line 38, col 24 of module MutualExclusionSpec is violated.
@!@!@ENDMSG 2112 @!@!@
@!@!@STARTMSG 2121:1 @!@!@
The behavior up to this point is:
@!@!@ENDMSG 2121 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
1: <Initial predicate>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "ncs" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
2: <ncs line 38, col 14 to line 41, col 28 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "enter" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
3: <enter line 43, col 16 to line 45, col 50 of module 1Bit>
/\ flag = (0 :> TRUE @@ 1 :> FALSE)
/\ pc = (0 :> "e2" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
4: <ncs line 38, col 14 to line 41, col 28 of module 1Bit>
/\ flag = (0 :> TRUE @@ 1 :> FALSE)
/\ pc = (0 :> "e2" @@ 1 :> "enter")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
5: <enter line 43, col 16 to line 45, col 50 of module 1Bit>
/\ flag = (0 :> TRUE @@ 1 :> TRUE)
/\ pc = (0 :> "e2" @@ 1 :> "e2")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
6: <e2 line 47, col 13 to line 51, col 27 of module 1Bit>
/\ flag = (0 :> TRUE @@ 1 :> TRUE)
/\ pc = (0 :> "e3" @@ 1 :> "e2")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 21:14:10
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 34, col 1 to line 34, col 4 of module 1Bit>: 2:2
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
line 35, col 19 to line 35, col 41 of module 1Bit: 2:4
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 35, col 26 to line 35, col 30 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 36, col 12 to line 36, col 44 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 36, col 17 to line 36, col 44 of module 1Bit: 2:4
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 36, col 27 to line 36, col 33 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ncs line 38, col 1 to line 38, col 9 of module 1Bit>: 7:11
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 38, col 17 to line 38, col 32 of module 1Bit: 47
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 38, col 17 to line 38, col 24 of module 1Bit: 36
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 39, col 17 to line 39, col 20 of module 1Bit: 11
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 40, col 17 to line 40, col 51 of module 1Bit: 11
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 41, col 17 to line 41, col 28 of module 1Bit: 11
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<enter line 43, col 1 to line 43, col 11 of module 1Bit>: 6:10
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 43, col 19 to line 43, col 36 of module 1Bit: 44
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 43, col 19 to line 43, col 26 of module 1Bit: 34
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 44, col 19 to line 44, col 54 of module 1Bit: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 45, col 19 to line 45, col 50 of module 1Bit: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e2 line 47, col 1 to line 47, col 8 of module 1Bit>: 4:9
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 47, col 16 to line 47, col 30 of module 1Bit: 39
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 16 to line 47, col 23 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 48, col 19 to line 48, col 30 of module 1Bit: 9
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 49, col 27 to line 49, col 58 of module 1Bit: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 49, col 33 to line 49, col 58 of module 1Bit: 3
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 50, col 24 to line 50, col 58 of module 1Bit: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 51, col 16 to line 51, col 27 of module 1Bit: 7
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 51, col 24 to line 51, col 27 of module 1Bit: 9
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e3 line 53, col 1 to line 53, col 8 of module 1Bit>: 0:0
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 53, col 16 to line 53, col 30 of module 1Bit: 29
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 54, col 16 to line 54, col 52 of module 1Bit: 0
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 55, col 16 to line 55, col 50 of module 1Bit: 0
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<cs line 57, col 1 to line 57, col 8 of module 1Bit>: 2:4
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 57, col 16 to line 57, col 30 of module 1Bit: 33
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 57, col 16 to line 57, col 23 of module 1Bit: 29
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 58, col 16 to line 58, col 19 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 59, col 16 to line 59, col 49 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 60, col 16 to line 60, col 27 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<exit line 62, col 1 to line 62, col 10 of module 1Bit>: 0:2
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 62, col 18 to line 62, col 34 of module 1Bit: 31
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 62, col 18 to line 62, col 25 of module 1Bit: 29
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 63, col 18 to line 63, col 54 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 64, col 18 to line 64, col 50 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<inv_1644430449414627000 line 10, col 1 to line 10, col 23 of module MC>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 11, col 1 to line 11, col 18 of module MC: 20
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 83, col 23 to line 85, col 90 of module 1Bit: 109:144
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 83, col 33 to line 83, col 37 of module 1Bit: 109
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 82, col 1 to line 85, col 90 of module 1Bit: 50
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 20
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 80
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 80
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 40
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 40
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 40
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 20
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<Inv line 79, col 1 to line 79, col 3 of module 1Bit>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 79, col 8 to line 79, col 94 of module 1Bit: 20
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 79, col 25 to line 79, col 94 of module 1Bit: 40
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 79, col 26 to line 79, col 37 of module 1Bit: 40
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 79, col 44 to line 79, col 93 of module 1Bit: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 79, col 44 to line 79, col 50 of module 1Bit: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 79, col 56 to line 79, col 92 of module 1Bit: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 79, col 56 to line 79, col 65 of module 1Bit: 6
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 79, col 70 to line 79, col 92 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 79, col 17 to line 79, col 21 of module 1Bit: 20
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(7) at 2022-02-09 21:14:10: 30 states generated (1 348 s/min), 20 distinct states found (898 ds/min), 3 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
30 states generated, 20 distinct states found, 3 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 7.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1342ms at (2022-02-09 21:14:10)
@!@!@ENDMSG 2186 @!@!@
strict digraph DiskGraph {
edge [colorscheme="paired12"]
nodesep=0.35;
subgraph cluster_graph {
color="white";
-8180625305189782138 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")",style = filled]
-8180625305189782138 -> -7609163839008188290 [label="",color="2",fontcolor="2"];
-7609163839008188290 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")"];
-7609163839008188290 -> -7922199982538667910 [label="",color="3",fontcolor="3"];
-7922199982538667910 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")"];
-8180625305189782138 -> -4383264161169425949 [label="",color="2",fontcolor="2"];
-4383264161169425949 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")"];
-8180625305189782138 -> -8180625305189782138 [style="dashed"];
-7609163839008188290 -> -3675294217639243219 [label="",color="2",fontcolor="2"];
-3675294217639243219 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")"];
-7609163839008188290 -> -7609163839008188290 [style="dashed"];
-4383264161169425949 -> -3675294217639243219 [label="",color="2",fontcolor="2"];
-4383264161169425949 -> 9018875693532074086 [label="",color="3",fontcolor="3"];
9018875693532074086 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")"];
-7922199982538667910 -> -7793968603789164143 [label="",color="4",fontcolor="4"];
-7793968603789164143 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")"];
-7922199982538667910 -> -3874340436594278200 [label="",color="2",fontcolor="2"];
-3874340436594278200 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")"];
-4383264161169425949 -> -4383264161169425949 [style="dashed"];
-7922199982538667910 -> -7922199982538667910 [style="dashed"];
-3675294217639243219 -> -3874340436594278200 [label="",color="3",fontcolor="3"];
-7793968603789164143 -> 4253599211768313444 [label="",color="5",fontcolor="5"];
4253599211768313444 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")"];
-7793968603789164143 -> 3711068830523647112 [label="",color="2",fontcolor="2"];
3711068830523647112 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")"];
-3675294217639243219 -> -5035101028236171738 [label="",color="3",fontcolor="3"];
-5035101028236171738 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")"];
-7793968603789164143 -> -7793968603789164143 [style="dashed"];
-3675294217639243219 -> -3675294217639243219 [style="dashed"];
9018875693532074086 -> -5035101028236171738 [label="",color="2",fontcolor="2"];
9018875693532074086 -> 3988182878549589540 [label="",color="4",fontcolor="4"];
3988182878549589540 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")"];
-3874340436594278200 -> 3711068830523647112 [label="",color="4",fontcolor="4"];
-3874340436594278200 -> -2834413970213349273 [label="",color="3",fontcolor="3"];
-2834413970213349273 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e2\")"];
9018875693532074086 -> 9018875693532074086 [style="dashed"];
-3874340436594278200 -> -3874340436594278200 [style="dashed"];
4253599211768313444 -> -8180625305189782138 [label="",color="6",fontcolor="6"];
4253599211768313444 -> -1929385232942358230 [label="",color="2",fontcolor="2"];
-1929385232942358230 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")"];
3711068830523647112 -> -1929385232942358230 [label="",color="5",fontcolor="5"];
3711068830523647112 -> 6355215896392948780 [label="",color="3",fontcolor="3"];
6355215896392948780 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")"];
4253599211768313444 -> 4253599211768313444 [style="dashed"];
3711068830523647112 -> 3711068830523647112 [style="dashed"];
-5035101028236171738 -> -2834413970213349273 [label="",color="3",fontcolor="3"];
3988182878549589540 -> -1121925374597724060 [label="",color="2",fontcolor="2"];
-1121925374597724060 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")"];
-5035101028236171738 -> -1121925374597724060 [label="",color="4",fontcolor="4"];
3988182878549589540 -> 6669566137860664447 [label="",color="5",fontcolor="5"];
6669566137860664447 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")"];
-5035101028236171738 -> -5035101028236171738 [style="dashed"];
3988182878549589540 -> 3988182878549589540 [style="dashed"];
-2834413970213349273 -> 7754420173991579283 [label="",color="4",fontcolor="4"];
7754420173991579283 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")"];
-1929385232942358230 -> -4383264161169425949 [label="",color="6",fontcolor="6"];
-1929385232942358230 -> 1062096503402119812 [label="",color="3",fontcolor="3"];
1062096503402119812 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")"];
-1929385232942358230 -> -1929385232942358230 [style="dashed"];
6355215896392948780 -> 1062096503402119812 [label="",color="5",fontcolor="5"];
6355215896392948780 -> -5687246051361371229 [label="",color="4",fontcolor="4"];
-5687246051361371229 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")"];
-2834413970213349273 -> -2834413970213349273 [style="dashed"];
6355215896392948780 -> 6355215896392948780 [style="dashed"];
{rank = same; -8180625305189782138;}
{rank = same; -4383264161169425949;-7609163839008188290;}
{rank = same; -3675294217639243219;9018875693532074086;-7922199982538667910;}
{rank = same; 3988182878549589540;-5035101028236171738;-7793968603789164143;-3874340436594278200;}
{rank = same; 4253599211768313444;-2834413970213349273;3711068830523647112;}
{rank = same; 6355215896392948780;-1929385232942358230;}
}
subgraph cluster_legend {graph[style=bold];label = "Next State Actions" style="solid"
node [ labeljust="l",colorscheme="paired12",style=filled,shape=record ]
cs [label="cs",fillcolor=5]
exit [label="exit",fillcolor=6]
enter [label="enter",fillcolor=3]
e2 [label="e2",fillcolor=4]
ncs [label="ncs",fillcolor=2]
}}
\ No newline at end of file
digraph DiskGraph {
nodesep=0.35;
subgraph cluster_graph {
color="white";
-8180625305189782138 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")",style = filled]
-8180625305189782138 -> -4383264161169425949;
-4383264161169425949 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")"];
-8180625305189782138 -> -8180625305189782138;
-8180625305189782138 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")"];
-8180625305189782138 -> -7609163839008188290;
-7609163839008188290 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")"];
-7609163839008188290 -> -7922199982538667910;
-7922199982538667910 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")"];
-7609163839008188290 -> -3675294217639243219;
-3675294217639243219 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")"];
-7609163839008188290 -> -7609163839008188290;
-7609163839008188290 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")"];
-4383264161169425949 -> -4383264161169425949;
-4383264161169425949 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")"];
-4383264161169425949 -> 9018875693532074086;
9018875693532074086 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")"];
-4383264161169425949 -> -3675294217639243219;
-3675294217639243219 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")"];
-7922199982538667910 -> -7793968603789164143;
-7793968603789164143 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")"];
-7922199982538667910 -> -3874340436594278200;
-3874340436594278200 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")"];
-7922199982538667910 -> -7922199982538667910;
-7922199982538667910 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")"];
-7793968603789164143 -> -7793968603789164143;
-7793968603789164143 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")"];
-7793968603789164143 -> 4253599211768313444;
4253599211768313444 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")"];
-7793968603789164143 -> 3711068830523647112;
3711068830523647112 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")"];
-3675294217639243219 -> -5035101028236171738;
-5035101028236171738 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")"];
-3675294217639243219 -> -3874340436594278200;
-3874340436594278200 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")"];
-3675294217639243219 -> -3675294217639243219;
-3675294217639243219 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")"];
9018875693532074086 -> 3988182878549589540;
3988182878549589540 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")"];
9018875693532074086 -> -5035101028236171738;
-5035101028236171738 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")"];
9018875693532074086 -> 9018875693532074086;
9018875693532074086 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")"];
-3874340436594278200 -> -2834413970213349273;
-2834413970213349273 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e2\")"];
-3874340436594278200 -> 3711068830523647112;
3711068830523647112 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")"];
-3874340436594278200 -> -3874340436594278200;
-3874340436594278200 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")"];
4253599211768313444 -> 4253599211768313444;
4253599211768313444 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")"];
4253599211768313444 -> -8180625305189782138;
4253599211768313444 -> -1929385232942358230;
-1929385232942358230 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")"];
3711068830523647112 -> 3711068830523647112;
3711068830523647112 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")"];
3711068830523647112 -> -1929385232942358230;
-1929385232942358230 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")"];
3711068830523647112 -> 6355215896392948780;
6355215896392948780 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")"];
-5035101028236171738 -> -1121925374597724060;
-1121925374597724060 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")"];
-5035101028236171738 -> -5035101028236171738;
-5035101028236171738 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")"];
-5035101028236171738 -> -2834413970213349273;
-2834413970213349273 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e2\")"];
3988182878549589540 -> -1121925374597724060;
-1121925374597724060 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")"];
3988182878549589540 -> 3988182878549589540;
3988182878549589540 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")"];
3988182878549589540 -> 6669566137860664447;
6669566137860664447 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")"];
-1929385232942358230 -> -4383264161169425949;
-1929385232942358230 -> 1062096503402119812;
1062096503402119812 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")"];
-1929385232942358230 -> -1929385232942358230;
-1929385232942358230 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")"];
-2834413970213349273 -> 7754420173991579283;
7754420173991579283 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")"];
-2834413970213349273 -> -2834413970213349273;
-2834413970213349273 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e2\")"];
6355215896392948780 -> -5687246051361371229;
-5687246051361371229 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")"];
6355215896392948780 -> 1062096503402119812;
1062096503402119812 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")"];
6355215896392948780 -> 6355215896392948780;
6355215896392948780 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")"];
{rank = same; -8180625305189782138;}
{rank = same; -4383264161169425949;-7609163839008188290;}
{rank = same; -3675294217639243219;9018875693532074086;-7922199982538667910;}
{rank = same; 3988182878549589540;-5035101028236171738;-7793968603789164143;-3874340436594278200;}
{rank = same; 4253599211768313444;-2834413970213349273;3711068830523647112;}
{rank = same; 6355215896392948780;-1929385232942358230;}
}
}
\ No newline at end of file
------------------------ MODULE MutualExclusionSpec ------------------------
\* Module MutualExclusionSpec provides general specification for mutual-exclusion problem.
\* Procs is set of processes.
\* Every process is assumed to loop and enter into "cs" state on every interation.
\* Non-critical state is represented as "non-cs".
\* When process decides it want to enter into critical-section, it first goes into "csentry" state.
CONSTANT Procs
VARIABLES pc
TypeOK == pc \in [Procs -> {"non-cs", "csentry", "cs"}]
vars == <<pc>>
\* All processes start from non-critical section.
Init == pc \in [Procs -> {"non-cs"}]
\* WantCS(proc) is action when proc decides that it wants to enter into critical section.
WantCS(proc) ==
/\ pc[proc] = "non-cs"
/\ pc' = [pc EXCEPT ![proc] = "csentry"]
\* EnterCS(proc) is action when proc enters critical section.
EnterCS(proc) ==
/\ pc[proc] = "csentry"
/\ \A i \in Procs \ {proc} : pc[i] /= "cs"
/\ pc' = [pc EXCEPT ![proc] = "cs"]
\* ExitCS(proc) is action when proc leaves critical section.
ExitCS(proc) ==
/\ pc[proc] = "cs"
/\ pc' = [pc EXCEPT ![proc] = "non-cs"]
Next == \E i \in Procs: WantCS(i) \/ EnterCS(i) \/ ExitCS(i)
Spec == /\ Init
/\ [][Next]_vars
/\ \A i \in Procs: ( \* fairness
\* not fair for WantCS - it can pause and even hang there
/\ SF_vars(EnterCS(i))
/\ SF_vars(ExitCS(i)))
----------------
\* MutualExclusion is invariant indicating that no two processes can be inside critical section at the same time.
MutualExclusion == \A i,j \in Procs: (i /= j) => ~((pc[i] = "cs") /\ (pc[j] = "cs"))
\* Liveness is temporal property indicating that every process has a chance to enter critical section and leaves it.
Liveness == \A i \in Procs:
/\ (pc[i] = "csentry") ~> (pc[i] = "cs")
/\ (pc[i] = "cs") ~> (pc[i] = "non-cs")
THEOREM Spec => []TypeOK
THEOREM Spec => []MutualExclusion
THEOREM Spec => Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 19:11:11 MSK 2022 by kirr
\* Created Wed Feb 09 13:11:29 MSK 2022 by kirr
-------------------------------- MODULE 1Bit --------------------------------
\* 1Bit implementation of mutual exclusion
EXTENDS Integers
CONSTANT N
ASSUME N \in Nat
Procs == 0..N
(********
--algorithm 1BitProtocol {
variables flag = [i \in Procs |-> FALSE] ;
process (P \in Procs) {
ncs: while (TRUE) {
skip ;
enter: flag[self] := TRUE ;
e2: if (flag[1-self]) {
e3: flag[self] := FALSE;
goto enter;
};
cs: skip ;
exit: flag[self] := FALSE ;
}
}
}
********)
\* BEGIN TRANSLATION (chksum(pcal) = "b33e7cec" /\ chksum(tla) = "338dfe4c")
VARIABLES flag, pc
vars == << flag, pc >>
ProcSet == (Procs)
Init == (* Global variables *)
/\ flag = [i \in Procs |-> FALSE]
/\ pc = [self \in ProcSet |-> "ncs"]
ncs(self) == /\ pc[self] = "ncs"
/\ TRUE
/\ pc' = [pc EXCEPT ![self] = "enter"]
/\ flag' = flag
enter(self) == /\ pc[self] = "enter"
/\ flag' = [flag EXCEPT ![self] = TRUE]
/\ pc' = [pc EXCEPT ![self] = "e2"]
e2(self) == /\ pc[self] = "e2"
/\ IF flag[1-self]
THEN /\ pc' = [pc EXCEPT ![self] = "e3"]
ELSE /\ pc' = [pc EXCEPT ![self] = "cs"]
/\ flag' = flag
e3(self) == /\ pc[self] = "e3"
/\ flag' = [flag EXCEPT ![self] = FALSE]
/\ pc' = [pc EXCEPT ![self] = "enter"]
cs(self) == /\ pc[self] = "cs"
/\ TRUE
/\ pc' = [pc EXCEPT ![self] = "exit"]
/\ flag' = flag
exit(self) == /\ pc[self] = "exit"
/\ flag' = [flag EXCEPT ![self] = FALSE]
/\ pc' = [pc EXCEPT ![self] = "ncs"]
P(self) == ncs(self) \/ enter(self) \/ e2(self) \/ e3(self) \/ cs(self)
\/ exit(self)
Next == (\E self \in Procs: P(self))
Spec == Init /\ [][Next]_vars
\* END TRANSLATION
--------
\* Invariant which implies MutualExclusion
\*Inv == \A i \in Procs : (pc[i] = "cs") => (flag[i] /\ (~flag[1-i] \/ pc[1-i] = "e2"))
Inv == \A i \in Procs : (pc[i] = "cs") => (flag[i] /\ (~flag[1-i] \/ pc[1-i] \in {"e2","e3"}))
ME == INSTANCE MutualExclusionSpec WITH
pc <- [proc \in Procs |-> CASE pc[proc] = "cs" -> "cs"
[] pc[proc] \in {"enter","e2","e3"} -> "csentry"
[] OTHER -> "non-cs"]
THEOREM Spec => ME!Spec
THEOREM Spec => []ME!MutualExclusion
THEOREM Spec => ME!Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 21:14:33 MSK 2022 by kirr
\* Created Wed Feb 09 20:01:56 MSK 2022 by kirr
\* CONSTANT definitions
CONSTANT
N <- const_1644430483467630000
\* SPECIFICATION definition
SPECIFICATION
Spec
\* INVARIANT definition
INVARIANT
inv_1644430483467631000
Inv
\* PROPERTY definition
PROPERTY
prop_1644430483467633000
\* Generated on Wed Feb 09 21:14:43 MSK 2022
\ No newline at end of file
@!@!@STARTMSG 2262:0 @!@!@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 31 and seed 6430506849743774763 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 78688] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
@!@!@ENDMSG 2220 @!@!@
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MC.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/1Bit.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/TLC.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Integers.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Naturals.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MutualExclusionSpec.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Sequences.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/FiniteSets.tla
Semantic processing of module Naturals
Semantic processing of module Integers
Semantic processing of module MutualExclusionSpec
Semantic processing of module 1Bit
Semantic processing of module Sequences
Semantic processing of module FiniteSets
Semantic processing of module TLC
Semantic processing of module MC
@!@!@STARTMSG 2219:0 @!@!@
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 21:14:43)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 1 branches.
@!@!@ENDMSG 2212 @!@!@
@!@!@STARTMSG 2189:0 @!@!@
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 21:14:44.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(9) at 2022-02-09 21:14:44: 65 states generated, 32 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2192:0 @!@!@
Checking temporal properties for the complete state space with 32 total distinct states at (2022-02-09 21:14:44)
@!@!@ENDMSG 2192 @!@!@
@!@!@STARTMSG 2116:1 @!@!@
Temporal properties were violated.
@!@!@ENDMSG 2116 @!@!@
@!@!@STARTMSG 2264:1 @!@!@
The following behavior constitutes a counter-example:
@!@!@ENDMSG 2264 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
1: <Initial predicate>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "ncs" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
2: <ncs line 38, col 14 to line 41, col 28 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "enter" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
3: <ncs line 38, col 14 to line 41, col 28 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "enter" @@ 1 :> "enter")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2218:4 @!@!@
4: Stuttering
@!@!@ENDMSG 2218 @!@!@
@!@!@STARTMSG 2267:0 @!@!@
Finished checking temporal properties in 00s at 2022-02-09 21:14:44
@!@!@ENDMSG 2267 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 21:14:44
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 34, col 1 to line 34, col 4 of module 1Bit>: 2:2
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
line 35, col 19 to line 35, col 41 of module 1Bit: 2:4
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 35, col 26 to line 35, col 30 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 36, col 12 to line 36, col 44 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 36, col 17 to line 36, col 44 of module 1Bit: 2:4
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 36, col 27 to line 36, col 33 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ncs line 38, col 1 to line 38, col 9 of module 1Bit>: 4:14
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 38, col 17 to line 38, col 32 of module 1Bit: 81
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 38, col 17 to line 38, col 24 of module 1Bit: 67
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 39, col 17 to line 39, col 20 of module 1Bit: 14
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 40, col 17 to line 40, col 51 of module 1Bit: 14
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 41, col 17 to line 41, col 28 of module 1Bit: 14
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<enter line 43, col 1 to line 43, col 11 of module 1Bit>: 8:13
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 43, col 19 to line 43, col 36 of module 1Bit: 78
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 43, col 19 to line 43, col 26 of module 1Bit: 65
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 44, col 19 to line 44, col 54 of module 1Bit: 13
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 45, col 19 to line 45, col 50 of module 1Bit: 13
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e2 line 47, col 1 to line 47, col 8 of module 1Bit>: 9:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 47, col 16 to line 47, col 30 of module 1Bit: 77
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 16 to line 47, col 23 of module 1Bit: 65
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 48, col 19 to line 48, col 30 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 49, col 24 to line 49, col 58 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 50, col 24 to line 50, col 58 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 51, col 16 to line 51, col 27 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e3 line 53, col 1 to line 53, col 8 of module 1Bit>: 2:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 53, col 16 to line 53, col 30 of module 1Bit: 77
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 53, col 16 to line 53, col 23 of module 1Bit: 65
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 54, col 16 to line 54, col 52 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 55, col 16 to line 55, col 50 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<cs line 57, col 1 to line 57, col 8 of module 1Bit>: 6:8
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 57, col 16 to line 57, col 30 of module 1Bit: 73
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 57, col 16 to line 57, col 23 of module 1Bit: 65
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 58, col 16 to line 58, col 19 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 59, col 16 to line 59, col 49 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 60, col 16 to line 60, col 27 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<exit line 62, col 1 to line 62, col 10 of module 1Bit>: 2:8
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 62, col 18 to line 62, col 34 of module 1Bit: 73
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 62, col 18 to line 62, col 25 of module 1Bit: 65
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 63, col 18 to line 63, col 54 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 64, col 18 to line 64, col 50 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<inv_1644430483467631000 line 10, col 1 to line 10, col 23 of module MC>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 11, col 1 to line 11, col 18 of module MC: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 83, col 23 to line 85, col 90 of module 1Bit: 244:376
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 83, col 33 to line 83, col 37 of module 1Bit: 244
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 82, col 1 to line 85, col 90 of module 1Bit: 97
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<Inv line 79, col 1 to line 79, col 3 of module 1Bit>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 79, col 8 to line 79, col 94 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 79, col 25 to line 79, col 94 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 79, col 26 to line 79, col 37 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 79, col 44 to line 79, col 93 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 79, col 44 to line 79, col 50 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 79, col 56 to line 79, col 92 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 79, col 56 to line 79, col 65 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 79, col 70 to line 79, col 92 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 79, col 17 to line 79, col 21 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(9) at 2022-02-09 21:14:44: 65 states generated (2 809 s/min), 32 distinct states found (1 383 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
65 states generated, 32 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 9.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1394ms at (2022-02-09 21:14:44)
@!@!@ENDMSG 2186 @!@!@
---- MODULE MC ----
EXTENDS 1Bit, TLC
\* CONSTANT definitions @modelParameterConstants:0N
const_1644430483467630000 ==
1
----
\* INVARIANT definition @modelCorrectnessInvariants:0
inv_1644430483467631000 ==
ME!MutualExclusion
----
\* PROPERTY definition @modelCorrectnessProperties:0
prop_1644430483467633000 ==
ME!Spec
----
=============================================================================
\* Modification History
\* Created Wed Feb 09 21:14:43 MSK 2022 by kirr
@!@!@STARTMSG 2262:0 @!@!@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 31 and seed 6430506849743774763 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 78688] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
@!@!@ENDMSG 2220 @!@!@
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MC.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/1Bit.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/TLC.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Integers.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Naturals.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MutualExclusionSpec.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Sequences.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/FiniteSets.tla
Semantic processing of module Naturals
Semantic processing of module Integers
Semantic processing of module MutualExclusionSpec
Semantic processing of module 1Bit
Semantic processing of module Sequences
Semantic processing of module FiniteSets
Semantic processing of module TLC
Semantic processing of module MC
@!@!@STARTMSG 2219:0 @!@!@
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 21:14:43)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 1 branches.
@!@!@ENDMSG 2212 @!@!@
@!@!@STARTMSG 2189:0 @!@!@
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 21:14:44.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(9) at 2022-02-09 21:14:44: 65 states generated, 32 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2192:0 @!@!@
Checking temporal properties for the complete state space with 32 total distinct states at (2022-02-09 21:14:44)
@!@!@ENDMSG 2192 @!@!@
@!@!@STARTMSG 2116:1 @!@!@
Temporal properties were violated.
@!@!@ENDMSG 2116 @!@!@
@!@!@STARTMSG 2264:1 @!@!@
The following behavior constitutes a counter-example:
@!@!@ENDMSG 2264 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
1: <Initial predicate>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "ncs" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
2: <ncs line 38, col 14 to line 41, col 28 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "enter" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
3: <ncs line 38, col 14 to line 41, col 28 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "enter" @@ 1 :> "enter")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2218:4 @!@!@
4: Stuttering
@!@!@ENDMSG 2218 @!@!@
@!@!@STARTMSG 2267:0 @!@!@
Finished checking temporal properties in 00s at 2022-02-09 21:14:44
@!@!@ENDMSG 2267 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 21:14:44
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 34, col 1 to line 34, col 4 of module 1Bit>: 2:2
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
line 35, col 19 to line 35, col 41 of module 1Bit: 2:4
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 35, col 26 to line 35, col 30 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 36, col 12 to line 36, col 44 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 36, col 17 to line 36, col 44 of module 1Bit: 2:4
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 36, col 27 to line 36, col 33 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ncs line 38, col 1 to line 38, col 9 of module 1Bit>: 4:14
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 38, col 17 to line 38, col 32 of module 1Bit: 81
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 38, col 17 to line 38, col 24 of module 1Bit: 67
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 39, col 17 to line 39, col 20 of module 1Bit: 14
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 40, col 17 to line 40, col 51 of module 1Bit: 14
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 41, col 17 to line 41, col 28 of module 1Bit: 14
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<enter line 43, col 1 to line 43, col 11 of module 1Bit>: 8:13
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 43, col 19 to line 43, col 36 of module 1Bit: 78
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 43, col 19 to line 43, col 26 of module 1Bit: 65
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 44, col 19 to line 44, col 54 of module 1Bit: 13
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 45, col 19 to line 45, col 50 of module 1Bit: 13
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e2 line 47, col 1 to line 47, col 8 of module 1Bit>: 9:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 47, col 16 to line 47, col 30 of module 1Bit: 77
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 16 to line 47, col 23 of module 1Bit: 65
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 48, col 19 to line 48, col 30 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 49, col 24 to line 49, col 58 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 50, col 24 to line 50, col 58 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 51, col 16 to line 51, col 27 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e3 line 53, col 1 to line 53, col 8 of module 1Bit>: 2:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 53, col 16 to line 53, col 30 of module 1Bit: 77
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 53, col 16 to line 53, col 23 of module 1Bit: 65
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 54, col 16 to line 54, col 52 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 55, col 16 to line 55, col 50 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<cs line 57, col 1 to line 57, col 8 of module 1Bit>: 6:8
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 57, col 16 to line 57, col 30 of module 1Bit: 73
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 57, col 16 to line 57, col 23 of module 1Bit: 65
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 58, col 16 to line 58, col 19 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 59, col 16 to line 59, col 49 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 60, col 16 to line 60, col 27 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<exit line 62, col 1 to line 62, col 10 of module 1Bit>: 2:8
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 62, col 18 to line 62, col 34 of module 1Bit: 73
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 62, col 18 to line 62, col 25 of module 1Bit: 65
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 63, col 18 to line 63, col 54 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 64, col 18 to line 64, col 50 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<inv_1644430483467631000 line 10, col 1 to line 10, col 23 of module MC>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 11, col 1 to line 11, col 18 of module MC: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 83, col 23 to line 85, col 90 of module 1Bit: 244:376
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 83, col 33 to line 83, col 37 of module 1Bit: 244
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 82, col 1 to line 85, col 90 of module 1Bit: 97
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<Inv line 79, col 1 to line 79, col 3 of module 1Bit>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 79, col 8 to line 79, col 94 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 79, col 25 to line 79, col 94 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 79, col 26 to line 79, col 37 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 79, col 44 to line 79, col 93 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 79, col 44 to line 79, col 50 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 79, col 56 to line 79, col 92 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 79, col 56 to line 79, col 65 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 79, col 70 to line 79, col 92 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 79, col 17 to line 79, col 21 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(9) at 2022-02-09 21:14:44: 65 states generated (2 809 s/min), 32 distinct states found (1 383 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
65 states generated, 32 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 9.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1394ms at (2022-02-09 21:14:44)
@!@!@ENDMSG 2186 @!@!@
strict digraph DiskGraph {
edge [colorscheme="paired12"]
nodesep=0.35;
subgraph cluster_graph {
color="white";
-8964303785423021614 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")",style = filled]
-8964303785423021614 -> 4530045777437271313 [label="",color="2",fontcolor="2"];
4530045777437271313 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")"];
4530045777437271313 -> -8544194819155234587 [label="",color="3",fontcolor="3"];
-8544194819155234587 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")"];
-8964303785423021614 -> -4023483181235787275 [label="",color="2",fontcolor="2"];
-4023483181235787275 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")"];
-8964303785423021614 -> -8964303785423021614 [style="dashed"];
4530045777437271313 -> -2033649034712785780 [label="",color="2",fontcolor="2"];
-2033649034712785780 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")"];
-4023483181235787275 -> -2033649034712785780 [label="",color="2",fontcolor="2"];
-4023483181235787275 -> -4430473893592713178 [label="",color="3",fontcolor="3"];
-4430473893592713178 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")"];
4530045777437271313 -> 4530045777437271313 [style="dashed"];
-4023483181235787275 -> -4023483181235787275 [style="dashed"];
-8544194819155234587 -> 4045106221932510508 [label="",color="4",fontcolor="4"];
4045106221932510508 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")"];
-2033649034712785780 -> -4886816695501758117 [label="",color="3",fontcolor="3"];
-4886816695501758117 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")"];
-8544194819155234587 -> -4886816695501758117 [label="",color="2",fontcolor="2"];
-8544194819155234587 -> -8544194819155234587 [style="dashed"];
-2033649034712785780 -> 3676406703460468266 [label="",color="3",fontcolor="3"];
3676406703460468266 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")"];
-2033649034712785780 -> -2033649034712785780 [style="dashed"];
-4430473893592713178 -> 3676406703460468266 [label="",color="2",fontcolor="2"];
-4430473893592713178 -> -2877520370756086329 [label="",color="4",fontcolor="4"];
-2877520370756086329 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")"];
-4430473893592713178 -> -4430473893592713178 [style="dashed"];
4045106221932510508 -> 277764073825938 [label="",color="5",fontcolor="5"];
277764073825938 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")"];
4045106221932510508 -> -2161939503493106014 [label="",color="2",fontcolor="2"];
-2161939503493106014 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")"];
-4886816695501758117 -> -2161939503493106014 [label="",color="4",fontcolor="4"];
4045106221932510508 -> 4045106221932510508 [style="dashed"];
-4886816695501758117 -> -4272457737377053902 [label="",color="3",fontcolor="3"];
-4272457737377053902 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e2\")"];
-4886816695501758117 -> -4886816695501758117 [style="dashed"];
3676406703460468266 -> -4272457737377053902 [label="",color="3",fontcolor="3"];
3676406703460468266 -> 2996597356402699211 [label="",color="4",fontcolor="4"];
2996597356402699211 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")"];
-2877520370756086329 -> 2996597356402699211 [label="",color="2",fontcolor="2"];
-2877520370756086329 -> -3942143380667776268 [label="",color="5",fontcolor="5"];
-3942143380667776268 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")"];
3676406703460468266 -> 3676406703460468266 [style="dashed"];
-2877520370756086329 -> -2877520370756086329 [style="dashed"];
277764073825938 -> -8964303785423021614 [label="",color="6",fontcolor="6"];
-2161939503493106014 -> -5899718588920292357 [label="",color="5",fontcolor="5"];
-5899718588920292357 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")"];
-2161939503493106014 -> 4036052116671491312 [label="",color="3",fontcolor="3"];
4036052116671491312 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")"];
277764073825938 -> -5899718588920292357 [label="",color="2",fontcolor="2"];
-2161939503493106014 -> -2161939503493106014 [style="dashed"];
277764073825938 -> 277764073825938 [style="dashed"];
-4272457737377053902 -> -5278761048179753467 [label="",color="4",fontcolor="4"];
-5278761048179753467 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")"];
2996597356402699211 -> -2439232103282102573 [label="",color="3",fontcolor="3"];
-2439232103282102573 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")"];
-4272457737377053902 -> -5327088271902616357 [label="",color="4",fontcolor="4"];
-5327088271902616357 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")"];
2996597356402699211 -> -1433128988881287457 [label="",color="5",fontcolor="5"];
-1433128988881287457 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")"];
-4272457737377053902 -> -4272457737377053902 [style="dashed"];
2996597356402699211 -> 2996597356402699211 [style="dashed"];
-3942143380667776268 -> -1433128988881287457 [label="",color="2",fontcolor="2"];
-5899718588920292357 -> -4023483181235787275 [label="",color="6",fontcolor="6"];
-3942143380667776268 -> -8964303785423021614 [label="",color="6",fontcolor="6"];
-3942143380667776268 -> -3942143380667776268 [style="dashed"];
-5899718588920292357 -> -8172712548417917753 [label="",color="3",fontcolor="3"];
-8172712548417917753 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")"];
4036052116671491312 -> -8172712548417917753 [label="",color="5",fontcolor="5"];
-5899718588920292357 -> -5899718588920292357 [style="dashed"];
4036052116671491312 -> 5378915508399061785 [label="",color="4",fontcolor="4"];
5378915508399061785 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")"];
4036052116671491312 -> 4036052116671491312 [style="dashed"];
-5278761048179753467 -> 3676406703460468266 [label="",color="7",fontcolor="7"];
-5278761048179753467 -> -4316315513978459668 [label="",color="4",fontcolor="4"];
-4316315513978459668 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")"];
-2439232103282102573 -> -6040127771597728796 [label="",color="4",fontcolor="4"];
-6040127771597728796 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")"];
-5278761048179753467 -> -5278761048179753467 [style="dashed"];
-2439232103282102573 -> -6914657696728467550 [label="",color="5",fontcolor="5"];
-6914657696728467550 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")"];
-2439232103282102573 -> -2439232103282102573 [style="dashed"];
-5327088271902616357 -> -4316315513978459668 [label="",color="4",fontcolor="4"];
-5327088271902616357 -> -4886816695501758117 [label="",color="7",fontcolor="7"];
-1433128988881287457 -> -6914657696728467550 [label="",color="3",fontcolor="3"];
-5327088271902616357 -> -5327088271902616357 [style="dashed"];
-1433128988881287457 -> 4530045777437271313 [label="",color="6",fontcolor="6"];
-1433128988881287457 -> -1433128988881287457 [style="dashed"];
-8172712548417917753 -> -4430473893592713178 [label="",color="6",fontcolor="6"];
-8172712548417917753 -> -273595742504748242 [label="",color="4",fontcolor="4"];
-273595742504748242 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")"];
5378915508399061785 -> -273595742504748242 [label="",color="5",fontcolor="5"];
5378915508399061785 -> -2161939503493106014 [label="",color="7",fontcolor="7"];
-8172712548417917753 -> -8172712548417917753 [style="dashed"];
5378915508399061785 -> 5378915508399061785 [style="dashed"];
-4316315513978459668 -> 4729473713143910851 [label="",color="7",fontcolor="7"];
4729473713143910851 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")"];
-6040127771597728796 -> 2996597356402699211 [label="",color="7",fontcolor="7"];
-6040127771597728796 -> -8133272252339626888 [label="",color="5",fontcolor="5"];
-8133272252339626888 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")"];
-4316315513978459668 -> -5848236219372145199 [label="",color="7",fontcolor="7"];
-5848236219372145199 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")"];
-6040127771597728796 -> -6040127771597728796 [style="dashed"];
-4316315513978459668 -> -4316315513978459668 [style="dashed"];
-6914657696728467550 -> -8133272252339626888 [label="",color="4",fontcolor="4"];
-273595742504748242 -> -5754328925578825777 [label="",color="6",fontcolor="6"];
-5754328925578825777 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")"];
-6914657696728467550 -> -8544194819155234587 [label="",color="6",fontcolor="6"];
-6914657696728467550 -> -6914657696728467550 [style="dashed"];
-273595742504748242 -> -5899718588920292357 [label="",color="7",fontcolor="7"];
-273595742504748242 -> -273595742504748242 [style="dashed"];
4729473713143910851 -> -5327088271902616357 [label="",color="3",fontcolor="3"];
-8133272252339626888 -> -1433128988881287457 [label="",color="7",fontcolor="7"];
4729473713143910851 -> -2033649034712785780 [label="",color="7",fontcolor="7"];
-8133272252339626888 -> -7880734702324856887 [label="",color="6",fontcolor="6"];
-7880734702324856887 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"ncs\")"];
4729473713143910851 -> 4729473713143910851 [style="dashed"];
-8133272252339626888 -> -8133272252339626888 [style="dashed"];
-5848236219372145199 -> -2033649034712785780 [label="",color="7",fontcolor="7"];
-5848236219372145199 -> -5278761048179753467 [label="",color="3",fontcolor="3"];
-5754328925578825777 -> 4729473713143910851 [label="",color="2",fontcolor="2"];
-5848236219372145199 -> -5848236219372145199 [style="dashed"];
-5754328925578825777 -> -4023483181235787275 [label="",color="7",fontcolor="7"];
-5754328925578825777 -> -5754328925578825777 [style="dashed"];
-7880734702324856887 -> 4530045777437271313 [label="",color="7",fontcolor="7"];
-7880734702324856887 -> -5848236219372145199 [label="",color="2",fontcolor="2"];
-7880734702324856887 -> -7880734702324856887 [style="dashed"];
{rank = same; -8964303785423021614;}
{rank = same; 4530045777437271313;-4023483181235787275;}
{rank = same; -2033649034712785780;-4430473893592713178;-8544194819155234587;}
{rank = same; 4045106221932510508;-2877520370756086329;3676406703460468266;-4886816695501758117;}
{rank = same; -4272457737377053902;-3942143380667776268;2996597356402699211;-2161939503493106014;277764073825938;}
{rank = same; -5327088271902616357;-2439232103282102573;-5278761048179753467;-5899718588920292357;4036052116671491312;-1433128988881287457;}
{rank = same; -6040127771597728796;-8172712548417917753;-4316315513978459668;-6914657696728467550;5378915508399061785;}
{rank = same; -273595742504748242;-8133272252339626888;4729473713143910851;-5848236219372145199;}
{rank = same; -5754328925578825777;-7880734702324856887;}
}
subgraph cluster_legend {graph[style=bold];label = "Next State Actions" style="solid"
node [ labeljust="l",colorscheme="paired12",style=filled,shape=record ]
cs [label="cs",fillcolor=5]
exit [label="exit",fillcolor=6]
enter [label="enter",fillcolor=3]
e2 [label="e2",fillcolor=4]
e3 [label="e3",fillcolor=7]
ncs [label="ncs",fillcolor=2]
}}
\ No newline at end of file
digraph DiskGraph {
nodesep=0.35;
subgraph cluster_graph {
color="white";
-8964303785423021614 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")",style = filled]
-8964303785423021614 -> 4530045777437271313;
4530045777437271313 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")"];
-8964303785423021614 -> -8964303785423021614;
-8964303785423021614 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")"];
-8964303785423021614 -> -4023483181235787275;
-4023483181235787275 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")"];
4530045777437271313 -> 4530045777437271313;
4530045777437271313 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")"];
4530045777437271313 -> -8544194819155234587;
-8544194819155234587 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")"];
4530045777437271313 -> -2033649034712785780;
-2033649034712785780 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")"];
-4023483181235787275 -> -4023483181235787275;
-4023483181235787275 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")"];
-4023483181235787275 -> -4430473893592713178;
-4430473893592713178 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")"];
-4023483181235787275 -> -2033649034712785780;
-2033649034712785780 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")"];
-8544194819155234587 -> -8544194819155234587;
-8544194819155234587 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")"];
-8544194819155234587 -> -4886816695501758117;
-4886816695501758117 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")"];
-8544194819155234587 -> 4045106221932510508;
4045106221932510508 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")"];
-2033649034712785780 -> 3676406703460468266;
3676406703460468266 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")"];
-2033649034712785780 -> -4886816695501758117;
-4886816695501758117 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")"];
-2033649034712785780 -> -2033649034712785780;
-2033649034712785780 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")"];
-4430473893592713178 -> -4430473893592713178;
-4430473893592713178 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")"];
-4430473893592713178 -> -2877520370756086329;
-2877520370756086329 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")"];
-4430473893592713178 -> 3676406703460468266;
3676406703460468266 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")"];
4045106221932510508 -> 277764073825938;
277764073825938 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")"];
4045106221932510508 -> -2161939503493106014;
-2161939503493106014 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")"];
4045106221932510508 -> 4045106221932510508;
4045106221932510508 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")"];
-4886816695501758117 -> -2161939503493106014;
-2161939503493106014 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")"];
-4886816695501758117 -> -4272457737377053902;
-4272457737377053902 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e2\")"];
-4886816695501758117 -> -4886816695501758117;
-4886816695501758117 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")"];
3676406703460468266 -> -4272457737377053902;
-4272457737377053902 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e2\")"];
3676406703460468266 -> 3676406703460468266;
3676406703460468266 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")"];
3676406703460468266 -> 2996597356402699211;
2996597356402699211 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")"];
-2877520370756086329 -> -3942143380667776268;
-3942143380667776268 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")"];
-2877520370756086329 -> -2877520370756086329;
-2877520370756086329 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")"];
-2877520370756086329 -> 2996597356402699211;
2996597356402699211 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")"];
-2161939503493106014 -> 4036052116671491312;
4036052116671491312 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")"];
-2161939503493106014 -> -2161939503493106014;
-2161939503493106014 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")"];
-2161939503493106014 -> -5899718588920292357;
-5899718588920292357 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")"];
277764073825938 -> -8964303785423021614;
277764073825938 -> 277764073825938;
277764073825938 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")"];
277764073825938 -> -5899718588920292357;
-5899718588920292357 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")"];
-4272457737377053902 -> -4272457737377053902;
-4272457737377053902 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e2\")"];
-4272457737377053902 -> -5278761048179753467;
-5278761048179753467 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")"];
-4272457737377053902 -> -5327088271902616357;
-5327088271902616357 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")"];
2996597356402699211 -> -2439232103282102573;
-2439232103282102573 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")"];
2996597356402699211 -> 2996597356402699211;
2996597356402699211 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")"];
2996597356402699211 -> -1433128988881287457;
-1433128988881287457 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")"];
-3942143380667776268 -> -8964303785423021614;
-3942143380667776268 -> -3942143380667776268;
-3942143380667776268 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")"];
-3942143380667776268 -> -1433128988881287457;
-1433128988881287457 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")"];
-5899718588920292357 -> -4023483181235787275;
-5899718588920292357 -> -8172712548417917753;
-8172712548417917753 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")"];
-5899718588920292357 -> -5899718588920292357;
-5899718588920292357 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")"];
4036052116671491312 -> 4036052116671491312;
4036052116671491312 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")"];
4036052116671491312 -> -8172712548417917753;
-8172712548417917753 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")"];
4036052116671491312 -> 5378915508399061785;
5378915508399061785 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")"];
-5278761048179753467 -> -5278761048179753467;
-5278761048179753467 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")"];
-5278761048179753467 -> 3676406703460468266;
-5278761048179753467 -> -4316315513978459668;
-4316315513978459668 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")"];
-2439232103282102573 -> -6914657696728467550;
-6914657696728467550 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")"];
-2439232103282102573 -> -2439232103282102573;
-2439232103282102573 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")"];
-2439232103282102573 -> -6040127771597728796;
-6040127771597728796 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")"];
-5327088271902616357 -> -4886816695501758117;
-5327088271902616357 -> -4316315513978459668;
-4316315513978459668 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")"];
-5327088271902616357 -> -5327088271902616357;
-5327088271902616357 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")"];
-1433128988881287457 -> 4530045777437271313;
-1433128988881287457 -> -6914657696728467550;
-6914657696728467550 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")"];
-1433128988881287457 -> -1433128988881287457;
-1433128988881287457 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")"];
-8172712548417917753 -> -4430473893592713178;
-8172712548417917753 -> -8172712548417917753;
-8172712548417917753 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")"];
-8172712548417917753 -> -273595742504748242;
-273595742504748242 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")"];
5378915508399061785 -> -2161939503493106014;
5378915508399061785 -> 5378915508399061785;
5378915508399061785 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")"];
5378915508399061785 -> -273595742504748242;
-273595742504748242 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")"];
-6040127771597728796 -> -6040127771597728796;
-6040127771597728796 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")"];
-6040127771597728796 -> -8133272252339626888;
-8133272252339626888 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")"];
-6040127771597728796 -> 2996597356402699211;
-4316315513978459668 -> -5848236219372145199;
-5848236219372145199 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")"];
-4316315513978459668 -> 4729473713143910851;
4729473713143910851 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")"];
-4316315513978459668 -> -4316315513978459668;
-4316315513978459668 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")"];
-6914657696728467550 -> -6914657696728467550;
-6914657696728467550 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")"];
-6914657696728467550 -> -8544194819155234587;
-6914657696728467550 -> -8133272252339626888;
-8133272252339626888 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")"];
-273595742504748242 -> -5899718588920292357;
-273595742504748242 -> -273595742504748242;
-273595742504748242 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")"];
-273595742504748242 -> -5754328925578825777;
-5754328925578825777 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")"];
4729473713143910851 -> 4729473713143910851;
4729473713143910851 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")"];
4729473713143910851 -> -5327088271902616357;
4729473713143910851 -> -2033649034712785780;
-8133272252339626888 -> -8133272252339626888;
-8133272252339626888 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")"];
-8133272252339626888 -> -7880734702324856887;
-7880734702324856887 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"ncs\")"];
-8133272252339626888 -> -1433128988881287457;
-5848236219372145199 -> -5848236219372145199;
-5848236219372145199 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")"];
-5848236219372145199 -> -5278761048179753467;
-5848236219372145199 -> -2033649034712785780;
-5754328925578825777 -> 4729473713143910851;
-5754328925578825777 -> -4023483181235787275;
-5754328925578825777 -> -5754328925578825777;
-5754328925578825777 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")"];
-7880734702324856887 -> 4530045777437271313;
-7880734702324856887 -> -5848236219372145199;
-7880734702324856887 -> -7880734702324856887;
-7880734702324856887 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"ncs\")"];
{rank = same; -8964303785423021614;}
{rank = same; 4530045777437271313;-4023483181235787275;}
{rank = same; -2033649034712785780;-4430473893592713178;-8544194819155234587;}
{rank = same; 4045106221932510508;-2877520370756086329;3676406703460468266;-4886816695501758117;}
{rank = same; -4272457737377053902;-3942143380667776268;2996597356402699211;-2161939503493106014;277764073825938;}
{rank = same; -5327088271902616357;-2439232103282102573;-5278761048179753467;-5899718588920292357;4036052116671491312;-1433128988881287457;}
{rank = same; -6040127771597728796;-8172712548417917753;-4316315513978459668;-6914657696728467550;5378915508399061785;}
{rank = same; -273595742504748242;-8133272252339626888;4729473713143910851;-5848236219372145199;}
{rank = same; -5754328925578825777;-7880734702324856887;}
}
}
\ No newline at end of file
------------------------ MODULE MutualExclusionSpec ------------------------
\* Module MutualExclusionSpec provides general specification for mutual-exclusion problem.
\* Procs is set of processes.
\* Every process is assumed to loop and enter into "cs" state on every interation.
\* Non-critical state is represented as "non-cs".
\* When process decides it want to enter into critical-section, it first goes into "csentry" state.
CONSTANT Procs
VARIABLES pc
TypeOK == pc \in [Procs -> {"non-cs", "csentry", "cs"}]
vars == <<pc>>
\* All processes start from non-critical section.
Init == pc \in [Procs -> {"non-cs"}]
\* WantCS(proc) is action when proc decides that it wants to enter into critical section.
WantCS(proc) ==
/\ pc[proc] = "non-cs"
/\ pc' = [pc EXCEPT ![proc] = "csentry"]
\* EnterCS(proc) is action when proc enters critical section.
EnterCS(proc) ==
/\ pc[proc] = "csentry"
/\ \A i \in Procs \ {proc} : pc[i] /= "cs"
/\ pc' = [pc EXCEPT ![proc] = "cs"]
\* ExitCS(proc) is action when proc leaves critical section.
ExitCS(proc) ==
/\ pc[proc] = "cs"
/\ pc' = [pc EXCEPT ![proc] = "non-cs"]
Next == \E i \in Procs: WantCS(i) \/ EnterCS(i) \/ ExitCS(i)
Spec == /\ Init
/\ [][Next]_vars
/\ \A i \in Procs: ( \* fairness
\* not fair for WantCS - it can pause and even hang there
/\ SF_vars(EnterCS(i))
/\ SF_vars(ExitCS(i)))
----------------
\* MutualExclusion is invariant indicating that no two processes can be inside critical section at the same time.
MutualExclusion == \A i,j \in Procs: (i /= j) => ~((pc[i] = "cs") /\ (pc[j] = "cs"))
\* Liveness is temporal property indicating that every process has a chance to enter critical section and leaves it.
Liveness == \A i \in Procs:
/\ (pc[i] = "csentry") ~> (pc[i] = "cs")
/\ (pc[i] = "cs") ~> (pc[i] = "non-cs")
THEOREM Spec => []TypeOK
THEOREM Spec => []MutualExclusion
THEOREM Spec => Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 19:11:11 MSK 2022 by kirr
\* Created Wed Feb 09 13:11:29 MSK 2022 by kirr
-------------------------------- MODULE 1Bit --------------------------------
\* 1Bit implementation of mutual exclusion
EXTENDS Integers
CONSTANT N
ASSUME N \in Nat
Procs == 0..N
(********
--algorithm 1BitProtocol {
variables flag = [i \in Procs |-> FALSE] ;
process (P \in Procs) {
ncs: while (TRUE) {
skip ;
enter: flag[self] := TRUE ;
e2: if (flag[1-self]) {
e3: flag[self] := FALSE;
goto enter;
};
cs: skip ;
exit: flag[self] := FALSE ;
}
}
}
********)
\* BEGIN TRANSLATION (chksum(pcal) = "b33e7cec" /\ chksum(tla) = "338dfe4c")
VARIABLES flag, pc
vars == << flag, pc >>
ProcSet == (Procs)
Init == (* Global variables *)
/\ flag = [i \in Procs |-> FALSE]
/\ pc = [self \in ProcSet |-> "ncs"]
ncs(self) == /\ pc[self] = "ncs"
/\ TRUE
/\ pc' = [pc EXCEPT ![self] = "enter"]
/\ flag' = flag
enter(self) == /\ pc[self] = "enter"
/\ flag' = [flag EXCEPT ![self] = TRUE]
/\ pc' = [pc EXCEPT ![self] = "e2"]
e2(self) == /\ pc[self] = "e2"
/\ IF flag[1-self]
THEN /\ pc' = [pc EXCEPT ![self] = "e3"]
ELSE /\ pc' = [pc EXCEPT ![self] = "cs"]
/\ flag' = flag
e3(self) == /\ pc[self] = "e3"
/\ flag' = [flag EXCEPT ![self] = FALSE]
/\ pc' = [pc EXCEPT ![self] = "enter"]
cs(self) == /\ pc[self] = "cs"
/\ TRUE
/\ pc' = [pc EXCEPT ![self] = "exit"]
/\ flag' = flag
exit(self) == /\ pc[self] = "exit"
/\ flag' = [flag EXCEPT ![self] = FALSE]
/\ pc' = [pc EXCEPT ![self] = "ncs"]
P(self) == ncs(self) \/ enter(self) \/ e2(self) \/ e3(self) \/ cs(self)
\/ exit(self)
Next == (\E self \in Procs: P(self))
Spec == Init /\ [][Next]_vars
\* END TRANSLATION
--------
\* Invariant which implies MutualExclusion
\*Inv == \A i \in Procs : (pc[i] = "cs") => (flag[i] /\ (~flag[1-i] \/ pc[1-i] = "e2"))
Inv == \A i \in Procs : (pc[i] = "cs") => (flag[i] /\ (~flag[1-i] \/ pc[1-i] \in {"e2","e3"}))
ME == INSTANCE MutualExclusionSpec WITH
pc <- [proc \in Procs |-> CASE pc[proc] = "cs" -> "cs"
[] pc[proc] \in {"enter","e2","e3"} -> "csentry"
[] OTHER -> "non-cs"]
THEOREM Spec => ME!Spec
THEOREM Spec => []ME!MutualExclusion
THEOREM Spec => ME!Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 21:14:33 MSK 2022 by kirr
\* Created Wed Feb 09 20:01:56 MSK 2022 by kirr
\* CONSTANT definitions
CONSTANT
N <- const_1644430508144637000
\* SPECIFICATION definition
SPECIFICATION
Spec
\* INVARIANT definition
INVARIANT
inv_1644430508144638000
Inv
\* Generated on Wed Feb 09 21:15:08 MSK 2022
\ No newline at end of file
@!@!@STARTMSG 2262:0 @!@!@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 30 and seed 8284908516444942695 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 78747] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
@!@!@ENDMSG 2220 @!@!@
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MC.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/1Bit.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/TLC.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Integers.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Naturals.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MutualExclusionSpec.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Sequences.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/FiniteSets.tla
Semantic processing of module Naturals
Semantic processing of module Integers
Semantic processing of module MutualExclusionSpec
Semantic processing of module 1Bit
Semantic processing of module Sequences
Semantic processing of module FiniteSets
Semantic processing of module TLC
Semantic processing of module MC
@!@!@STARTMSG 2219:0 @!@!@
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 21:15:08)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2189:0 @!@!@
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 21:15:09.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2193:0 @!@!@
Model checking completed. No error has been found.
Estimates of the probability that TLC did not check all reachable states
because two distinct states had the same fingerprint:
calculated (optimistic): val = 5.7E-17
@!@!@ENDMSG 2193 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 21:15:09
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 34, col 1 to line 34, col 4 of module 1Bit>: 1:1
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
line 35, col 19 to line 35, col 41 of module 1Bit: 1:2
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 35, col 26 to line 35, col 30 of module 1Bit: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 36, col 12 to line 36, col 44 of module 1Bit: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 36, col 17 to line 36, col 44 of module 1Bit: 1:2
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 36, col 27 to line 36, col 33 of module 1Bit: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ncs line 38, col 1 to line 38, col 9 of module 1Bit>: 8:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 38, col 17 to line 38, col 32 of module 1Bit: 76
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 38, col 17 to line 38, col 24 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 39, col 17 to line 39, col 20 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 40, col 17 to line 40, col 51 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 41, col 17 to line 41, col 28 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<enter line 43, col 1 to line 43, col 11 of module 1Bit>: 7:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 43, col 19 to line 43, col 36 of module 1Bit: 76
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 43, col 19 to line 43, col 26 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 44, col 19 to line 44, col 54 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 45, col 19 to line 45, col 50 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e2 line 47, col 1 to line 47, col 8 of module 1Bit>: 8:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 47, col 16 to line 47, col 30 of module 1Bit: 76
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 16 to line 47, col 23 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 48, col 19 to line 48, col 30 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 49, col 24 to line 49, col 58 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 50, col 24 to line 50, col 58 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 51, col 16 to line 51, col 27 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e3 line 53, col 1 to line 53, col 8 of module 1Bit>: 2:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 53, col 16 to line 53, col 30 of module 1Bit: 76
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 53, col 16 to line 53, col 23 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 54, col 16 to line 54, col 52 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 55, col 16 to line 55, col 50 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<cs line 57, col 1 to line 57, col 8 of module 1Bit>: 4:8
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 57, col 16 to line 57, col 30 of module 1Bit: 72
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 57, col 16 to line 57, col 23 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 58, col 16 to line 58, col 19 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 59, col 16 to line 59, col 49 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 60, col 16 to line 60, col 27 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<exit line 62, col 1 to line 62, col 10 of module 1Bit>: 2:8
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 62, col 18 to line 62, col 34 of module 1Bit: 72
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 62, col 18 to line 62, col 25 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 63, col 18 to line 63, col 54 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 64, col 18 to line 64, col 50 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<inv_1644430508144638000 line 10, col 1 to line 10, col 23 of module MC>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 11, col 1 to line 11, col 18 of module MC: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 83, col 23 to line 85, col 90 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 82, col 1 to line 85, col 90 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<Inv line 79, col 1 to line 79, col 3 of module 1Bit>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 79, col 8 to line 79, col 94 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 79, col 25 to line 79, col 94 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 79, col 26 to line 79, col 37 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 79, col 44 to line 79, col 93 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 79, col 44 to line 79, col 50 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 79, col 56 to line 79, col 92 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 79, col 56 to line 79, col 65 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 79, col 70 to line 79, col 92 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 79, col 17 to line 79, col 21 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(9) at 2022-02-09 21:15:09: 65 states generated (2 947 s/min), 32 distinct states found (1 451 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
65 states generated, 32 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 9.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2268:0 @!@!@
The average outdegree of the complete state graph is 1 (minimum is 0, the maximum 2 and the 95th percentile is 2).
@!@!@ENDMSG 2268 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1330ms at (2022-02-09 21:15:09)
@!@!@ENDMSG 2186 @!@!@
---- MODULE MC ----
EXTENDS 1Bit, TLC
\* CONSTANT definitions @modelParameterConstants:0N
const_1644430508144637000 ==
1
----
\* INVARIANT definition @modelCorrectnessInvariants:0
inv_1644430508144638000 ==
ME!MutualExclusion
----
=============================================================================
\* Modification History
\* Created Wed Feb 09 21:15:08 MSK 2022 by kirr
@!@!@STARTMSG 2262:0 @!@!@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 30 and seed 8284908516444942695 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 78747] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
@!@!@ENDMSG 2220 @!@!@
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MC.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/1Bit.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/TLC.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Integers.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Naturals.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MutualExclusionSpec.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Sequences.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/FiniteSets.tla
Semantic processing of module Naturals
Semantic processing of module Integers
Semantic processing of module MutualExclusionSpec
Semantic processing of module 1Bit
Semantic processing of module Sequences
Semantic processing of module FiniteSets
Semantic processing of module TLC
Semantic processing of module MC
@!@!@STARTMSG 2219:0 @!@!@
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 21:15:08)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2189:0 @!@!@
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 21:15:09.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2193:0 @!@!@
Model checking completed. No error has been found.
Estimates of the probability that TLC did not check all reachable states
because two distinct states had the same fingerprint:
calculated (optimistic): val = 5.7E-17
@!@!@ENDMSG 2193 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 21:15:09
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 34, col 1 to line 34, col 4 of module 1Bit>: 1:1
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
line 35, col 19 to line 35, col 41 of module 1Bit: 1:2
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 35, col 26 to line 35, col 30 of module 1Bit: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 36, col 12 to line 36, col 44 of module 1Bit: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 36, col 17 to line 36, col 44 of module 1Bit: 1:2
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 36, col 27 to line 36, col 33 of module 1Bit: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ncs line 38, col 1 to line 38, col 9 of module 1Bit>: 8:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 38, col 17 to line 38, col 32 of module 1Bit: 76
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 38, col 17 to line 38, col 24 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 39, col 17 to line 39, col 20 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 40, col 17 to line 40, col 51 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 41, col 17 to line 41, col 28 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<enter line 43, col 1 to line 43, col 11 of module 1Bit>: 7:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 43, col 19 to line 43, col 36 of module 1Bit: 76
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 43, col 19 to line 43, col 26 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 44, col 19 to line 44, col 54 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 45, col 19 to line 45, col 50 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e2 line 47, col 1 to line 47, col 8 of module 1Bit>: 8:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 47, col 16 to line 47, col 30 of module 1Bit: 76
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 16 to line 47, col 23 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 48, col 19 to line 48, col 30 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 49, col 24 to line 49, col 58 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 50, col 24 to line 50, col 58 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 51, col 16 to line 51, col 27 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e3 line 53, col 1 to line 53, col 8 of module 1Bit>: 2:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 53, col 16 to line 53, col 30 of module 1Bit: 76
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 53, col 16 to line 53, col 23 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 54, col 16 to line 54, col 52 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 55, col 16 to line 55, col 50 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<cs line 57, col 1 to line 57, col 8 of module 1Bit>: 4:8
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 57, col 16 to line 57, col 30 of module 1Bit: 72
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 57, col 16 to line 57, col 23 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 58, col 16 to line 58, col 19 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 59, col 16 to line 59, col 49 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 60, col 16 to line 60, col 27 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<exit line 62, col 1 to line 62, col 10 of module 1Bit>: 2:8
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 62, col 18 to line 62, col 34 of module 1Bit: 72
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 62, col 18 to line 62, col 25 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 63, col 18 to line 63, col 54 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 64, col 18 to line 64, col 50 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<inv_1644430508144638000 line 10, col 1 to line 10, col 23 of module MC>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 11, col 1 to line 11, col 18 of module MC: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 83, col 23 to line 85, col 90 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 82, col 1 to line 85, col 90 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<Inv line 79, col 1 to line 79, col 3 of module 1Bit>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 79, col 8 to line 79, col 94 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 79, col 25 to line 79, col 94 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 79, col 26 to line 79, col 37 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 79, col 44 to line 79, col 93 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 79, col 44 to line 79, col 50 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 79, col 56 to line 79, col 92 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 79, col 56 to line 79, col 65 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 79, col 70 to line 79, col 92 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 79, col 17 to line 79, col 21 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(9) at 2022-02-09 21:15:09: 65 states generated (2 947 s/min), 32 distinct states found (1 451 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
65 states generated, 32 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 9.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2268:0 @!@!@
The average outdegree of the complete state graph is 1 (minimum is 0, the maximum 2 and the 95th percentile is 2).
@!@!@ENDMSG 2268 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1330ms at (2022-02-09 21:15:09)
@!@!@ENDMSG 2186 @!@!@
strict digraph DiskGraph {
edge [colorscheme="paired12"]
nodesep=0.35;
subgraph cluster_graph {
color="white";
-6515837008146365232 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")",style = filled]
-6515837008146365232 -> -4247917108933016673 [label="",color="2",fontcolor="2"];
-4247917108933016673 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")"];
-4247917108933016673 -> -898250698584901607 [label="",color="3",fontcolor="3"];
-898250698584901607 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")"];
-6515837008146365232 -> 4036757553934324923 [label="",color="2",fontcolor="2"];
4036757553934324923 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")"];
-4247917108933016673 -> -4922100213422929728 [label="",color="2",fontcolor="2"];
-4922100213422929728 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")"];
-898250698584901607 -> 7793522680819297578 [label="",color="4",fontcolor="4"];
7793522680819297578 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")"];
4036757553934324923 -> -4922100213422929728 [label="",color="2",fontcolor="2"];
4036757553934324923 -> -7287612873189951241 [label="",color="3",fontcolor="3"];
-7287612873189951241 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")"];
-898250698584901607 -> 8653120271346862012 [label="",color="2",fontcolor="2"];
8653120271346862012 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")"];
-4922100213422929728 -> 8653120271346862012 [label="",color="3",fontcolor="3"];
7793522680819297578 -> 1785664340797347593 [label="",color="5",fontcolor="5"];
1785664340797347593 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")"];
-4922100213422929728 -> -4674815136845484689 [label="",color="3",fontcolor="3"];
-4674815136845484689 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")"];
7793522680819297578 -> 4530344404360063248 [label="",color="2",fontcolor="2"];
4530344404360063248 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")"];
-7287612873189951241 -> -4674815136845484689 [label="",color="2",fontcolor="2"];
-7287612873189951241 -> 5128195396982357909 [label="",color="4",fontcolor="4"];
5128195396982357909 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")"];
8653120271346862012 -> 4530344404360063248 [label="",color="4",fontcolor="4"];
8653120271346862012 -> 3588732711430858786 [label="",color="3",fontcolor="3"];
3588732711430858786 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e2\")"];
1785664340797347593 -> -6515837008146365232 [label="",color="6",fontcolor="6"];
1785664340797347593 -> -9113897206107998634 [label="",color="2",fontcolor="2"];
-9113897206107998634 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")"];
4530344404360063248 -> -9113897206107998634 [label="",color="5",fontcolor="5"];
4530344404360063248 -> -2442406105713677994 [label="",color="3",fontcolor="3"];
-2442406105713677994 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")"];
5128195396982357909 -> 7127377804322892301 [label="",color="2",fontcolor="2"];
7127377804322892301 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")"];
-4674815136845484689 -> 3588732711430858786 [label="",color="3",fontcolor="3"];
-4674815136845484689 -> 7127377804322892301 [label="",color="4",fontcolor="4"];
3588732711430858786 -> 2140554630751355069 [label="",color="4",fontcolor="4"];
2140554630751355069 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")"];
5128195396982357909 -> 5650706283625711273 [label="",color="5",fontcolor="5"];
5650706283625711273 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")"];
-9113897206107998634 -> 4036757553934324923 [label="",color="6",fontcolor="6"];
-9113897206107998634 -> -1779660285414009524 [label="",color="3",fontcolor="3"];
-1779660285414009524 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")"];
-2442406105713677994 -> -1779660285414009524 [label="",color="5",fontcolor="5"];
-2442406105713677994 -> 9076914252222203863 [label="",color="4",fontcolor="4"];
9076914252222203863 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")"];
3588732711430858786 -> -7917111957982067037 [label="",color="4",fontcolor="4"];
-7917111957982067037 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")"];
7127377804322892301 -> -1424389430357594304 [label="",color="3",fontcolor="3"];
-1424389430357594304 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")"];
5650706283625711273 -> -7819575803077928763 [label="",color="2",fontcolor="2"];
-7819575803077928763 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")"];
7127377804322892301 -> -7819575803077928763 [label="",color="5",fontcolor="5"];
5650706283625711273 -> -6515837008146365232 [label="",color="6",fontcolor="6"];
-1779660285414009524 -> -7287612873189951241 [label="",color="6",fontcolor="6"];
-1779660285414009524 -> 4944980547195993037 [label="",color="4",fontcolor="4"];
4944980547195993037 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")"];
9076914252222203863 -> 4944980547195993037 [label="",color="5",fontcolor="5"];
9076914252222203863 -> 4530344404360063248 [label="",color="7",fontcolor="7"];
-7917111957982067037 -> -4730540040142000580 [label="",color="4",fontcolor="4"];
-4730540040142000580 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")"];
-7917111957982067037 -> 8653120271346862012 [label="",color="7",fontcolor="7"];
-1424389430357594304 -> -4592836921153075233 [label="",color="4",fontcolor="4"];
-4592836921153075233 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")"];
-1424389430357594304 -> -3889935132254212952 [label="",color="5",fontcolor="5"];
-3889935132254212952 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")"];
-7819575803077928763 -> -3889935132254212952 [label="",color="3",fontcolor="3"];
-7819575803077928763 -> -4247917108933016673 [label="",color="6",fontcolor="6"];
4944980547195993037 -> 4120876439759263350 [label="",color="6",fontcolor="6"];
4120876439759263350 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")"];
4944980547195993037 -> -9113897206107998634 [label="",color="7",fontcolor="7"];
-4730540040142000580 -> 2085942450272519150 [label="",color="7",fontcolor="7"];
2085942450272519150 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")"];
-4730540040142000580 -> 6374315077046870841 [label="",color="7",fontcolor="7"];
6374315077046870841 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")"];
-4592836921153075233 -> 7127377804322892301 [label="",color="7",fontcolor="7"];
-4592836921153075233 -> -9199678861996253596 [label="",color="5",fontcolor="5"];
-9199678861996253596 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")"];
-3889935132254212952 -> -9199678861996253596 [label="",color="4",fontcolor="4"];
-3889935132254212952 -> -898250698584901607 [label="",color="6",fontcolor="6"];
4120876439759263350 -> 2085942450272519150 [label="",color="2",fontcolor="2"];
4120876439759263350 -> 4036757553934324923 [label="",color="7",fontcolor="7"];
2085942450272519150 -> -7917111957982067037 [label="",color="3",fontcolor="3"];
2085942450272519150 -> -4922100213422929728 [label="",color="7",fontcolor="7"];
6374315077046870841 -> -4922100213422929728 [label="",color="7",fontcolor="7"];
6374315077046870841 -> 2140554630751355069 [label="",color="3",fontcolor="3"];
-9199678861996253596 -> -7819575803077928763 [label="",color="7",fontcolor="7"];
-9199678861996253596 -> -5313569148024031452 [label="",color="6",fontcolor="6"];
-5313569148024031452 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"ncs\")"];
2140554630751355069 -> -4674815136845484689 [label="",color="7",fontcolor="7"];
-5313569148024031452 -> -4247917108933016673 [label="",color="7",fontcolor="7"];
2140554630751355069 -> -4730540040142000580 [label="",color="4",fontcolor="4"];
-5313569148024031452 -> 6374315077046870841 [label="",color="2",fontcolor="2"];
{rank = same; -6515837008146365232;}
{rank = same; 4036757553934324923;-4247917108933016673;}
{rank = same; -4922100213422929728;-898250698584901607;-7287612873189951241;}
{rank = same; -4674815136845484689;5128195396982357909;7793522680819297578;8653120271346862012;}
{rank = same; 1785664340797347593;3588732711430858786;7127377804322892301;4530344404360063248;5650706283625711273;}
{rank = same; -1424389430357594304;2140554630751355069;-9113897206107998634;-7917111957982067037;-2442406105713677994;-7819575803077928763;}
{rank = same; -1779660285414009524;-4730540040142000580;-4592836921153075233;9076914252222203863;-3889935132254212952;}
{rank = same; 2085942450272519150;4944980547195993037;-9199678861996253596;6374315077046870841;}
{rank = same; -5313569148024031452;4120876439759263350;}
}
subgraph cluster_legend {graph[style=bold];label = "Next State Actions" style="solid"
node [ labeljust="l",colorscheme="paired12",style=filled,shape=record ]
cs [label="cs",fillcolor=5]
exit [label="exit",fillcolor=6]
enter [label="enter",fillcolor=3]
e2 [label="e2",fillcolor=4]
e3 [label="e3",fillcolor=7]
ncs [label="ncs",fillcolor=2]
}}
\ No newline at end of file
------------------------ MODULE MutualExclusionSpec ------------------------
\* Module MutualExclusionSpec provides general specification for mutual-exclusion problem.
\* Procs is set of processes.
\* Every process is assumed to loop and enter into "cs" state on every interation.
\* Non-critical state is represented as "non-cs".
\* When process decides it want to enter into critical-section, it first goes into "csentry" state.
CONSTANT Procs
VARIABLES pc
TypeOK == pc \in [Procs -> {"non-cs", "csentry", "cs"}]
vars == <<pc>>
\* All processes start from non-critical section.
Init == pc \in [Procs -> {"non-cs"}]
\* WantCS(proc) is action when proc decides that it wants to enter into critical section.
WantCS(proc) ==
/\ pc[proc] = "non-cs"
/\ pc' = [pc EXCEPT ![proc] = "csentry"]
\* EnterCS(proc) is action when proc enters critical section.
EnterCS(proc) ==
/\ pc[proc] = "csentry"
/\ \A i \in Procs \ {proc} : pc[i] /= "cs"
/\ pc' = [pc EXCEPT ![proc] = "cs"]
\* ExitCS(proc) is action when proc leaves critical section.
ExitCS(proc) ==
/\ pc[proc] = "cs"
/\ pc' = [pc EXCEPT ![proc] = "non-cs"]
Next == \E i \in Procs: WantCS(i) \/ EnterCS(i) \/ ExitCS(i)
Spec == /\ Init
/\ [][Next]_vars
/\ \A i \in Procs: ( \* fairness
\* not fair for WantCS - it can pause and even hang there
/\ SF_vars(EnterCS(i))
/\ SF_vars(ExitCS(i)))
----------------
\* MutualExclusion is invariant indicating that no two processes can be inside critical section at the same time.
MutualExclusion == \A i,j \in Procs: (i /= j) => ~((pc[i] = "cs") /\ (pc[j] = "cs"))
\* Liveness is temporal property indicating that every process has a chance to enter critical section and leaves it.
Liveness == \A i \in Procs:
/\ (pc[i] = "csentry") ~> (pc[i] = "cs")
/\ (pc[i] = "cs") ~> (pc[i] = "non-cs")
THEOREM Spec => []TypeOK
THEOREM Spec => []MutualExclusion
THEOREM Spec => Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 19:11:11 MSK 2022 by kirr
\* Created Wed Feb 09 13:11:29 MSK 2022 by kirr
-------------------------------- MODULE 1Bit --------------------------------
\* 1Bit implementation of mutual exclusion
EXTENDS Integers
CONSTANT N
ASSUME N \in Nat
Procs == 0..N
(********
--algorithm 1BitProtocol {
variables flag = [i \in Procs |-> FALSE] ;
process (P \in Procs) {
ncs: while (TRUE) {
skip ;
enter: flag[self] := TRUE ;
e2: if (flag[1-self]) {
e3: flag[self] := FALSE;
goto enter;
};
cs: skip ;
exit: flag[self] := FALSE ;
}
}
}
********)
\* BEGIN TRANSLATION (chksum(pcal) = "b33e7cec" /\ chksum(tla) = "338dfe4c")
VARIABLES flag, pc
vars == << flag, pc >>
ProcSet == (Procs)
Init == (* Global variables *)
/\ flag = [i \in Procs |-> FALSE]
/\ pc = [self \in ProcSet |-> "ncs"]
ncs(self) == /\ pc[self] = "ncs"
/\ TRUE
/\ pc' = [pc EXCEPT ![self] = "enter"]
/\ flag' = flag
enter(self) == /\ pc[self] = "enter"
/\ flag' = [flag EXCEPT ![self] = TRUE]
/\ pc' = [pc EXCEPT ![self] = "e2"]
e2(self) == /\ pc[self] = "e2"
/\ IF flag[1-self]
THEN /\ pc' = [pc EXCEPT ![self] = "e3"]
ELSE /\ pc' = [pc EXCEPT ![self] = "cs"]
/\ flag' = flag
e3(self) == /\ pc[self] = "e3"
/\ flag' = [flag EXCEPT ![self] = FALSE]
/\ pc' = [pc EXCEPT ![self] = "enter"]
cs(self) == /\ pc[self] = "cs"
/\ TRUE
/\ pc' = [pc EXCEPT ![self] = "exit"]
/\ flag' = flag
exit(self) == /\ pc[self] = "exit"
/\ flag' = [flag EXCEPT ![self] = FALSE]
/\ pc' = [pc EXCEPT ![self] = "ncs"]
P(self) == ncs(self) \/ enter(self) \/ e2(self) \/ e3(self) \/ cs(self)
\/ exit(self)
Next == (\E self \in Procs: P(self))
Spec == Init /\ [][Next]_vars
\* END TRANSLATION
--------
\* Invariant which implies MutualExclusion
\*Inv == \A i \in Procs : (pc[i] = "cs") => (flag[i] /\ (~flag[1-i] \/ pc[1-i] = "e2"))
Inv == \A i \in Procs : (pc[i] = "cs") => (flag[i] /\ (~flag[1-i] \/ pc[1-i] \in {"e2","e3"}))
ME == INSTANCE MutualExclusionSpec WITH
pc <- [proc \in Procs |-> CASE pc[proc] = "cs" -> "cs"
[] pc[proc] \in {"enter","e2","e3"} -> "csentry"
[] OTHER -> "non-cs"]
THEOREM Spec => ME!Spec
THEOREM Spec => []ME!MutualExclusion
THEOREM Spec => ME!Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 21:14:33 MSK 2022 by kirr
\* Created Wed Feb 09 20:01:56 MSK 2022 by kirr
\* CONSTANT definitions
CONSTANT
N <- const_1644430515753644000
\* SPECIFICATION definition
SPECIFICATION
Spec
\* INVARIANT definition
INVARIANT
inv_1644430515753645000
Inv
\* PROPERTY definition
PROPERTY
prop_1644430515753647000
\* Generated on Wed Feb 09 21:15:15 MSK 2022
\ No newline at end of file
@!@!@STARTMSG 2262:0 @!@!@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 93 and seed 3026727181919614077 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 78796] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
@!@!@ENDMSG 2220 @!@!@
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MC.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/1Bit.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/TLC.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Integers.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Naturals.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MutualExclusionSpec.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Sequences.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/FiniteSets.tla
Semantic processing of module Naturals
Semantic processing of module Integers
Semantic processing of module MutualExclusionSpec
Semantic processing of module 1Bit
Semantic processing of module Sequences
Semantic processing of module FiniteSets
Semantic processing of module TLC
Semantic processing of module MC
@!@!@STARTMSG 2219:0 @!@!@
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 21:15:16)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 4 branches.
@!@!@ENDMSG 2212 @!@!@
@!@!@STARTMSG 2189:0 @!@!@
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 21:15:17.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(9) at 2022-02-09 21:15:17: 65 states generated, 32 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2192:0 @!@!@
Checking 4 branches of temporal properties for the complete state space with 128 total distinct states at (2022-02-09 21:15:17)
@!@!@ENDMSG 2192 @!@!@
@!@!@STARTMSG 2116:1 @!@!@
Temporal properties were violated.
@!@!@ENDMSG 2116 @!@!@
@!@!@STARTMSG 2264:1 @!@!@
The following behavior constitutes a counter-example:
@!@!@ENDMSG 2264 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
1: <Initial predicate>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "ncs" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
2: <ncs line 38, col 14 to line 41, col 28 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "enter" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2218:4 @!@!@
3: Stuttering
@!@!@ENDMSG 2218 @!@!@
@!@!@STARTMSG 2267:0 @!@!@
Finished checking temporal properties in 00s at 2022-02-09 21:15:17
@!@!@ENDMSG 2267 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 21:15:17
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 34, col 1 to line 34, col 4 of module 1Bit>: 2:2
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
line 35, col 19 to line 35, col 41 of module 1Bit: 2:4
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 35, col 26 to line 35, col 30 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 36, col 12 to line 36, col 44 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 36, col 17 to line 36, col 44 of module 1Bit: 2:4
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 36, col 27 to line 36, col 33 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ncs line 38, col 1 to line 38, col 9 of module 1Bit>: 6:17
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 38, col 17 to line 38, col 32 of module 1Bit: 90
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 38, col 17 to line 38, col 24 of module 1Bit: 73
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 39, col 17 to line 39, col 20 of module 1Bit: 17
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 40, col 17 to line 40, col 51 of module 1Bit: 17
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 41, col 17 to line 41, col 28 of module 1Bit: 17
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<enter line 43, col 1 to line 43, col 11 of module 1Bit>: 7:14
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 43, col 19 to line 43, col 36 of module 1Bit: 86
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 43, col 19 to line 43, col 26 of module 1Bit: 72
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 44, col 19 to line 44, col 54 of module 1Bit: 14
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 45, col 19 to line 45, col 50 of module 1Bit: 14
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e2 line 47, col 1 to line 47, col 8 of module 1Bit>: 9:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 47, col 16 to line 47, col 30 of module 1Bit: 84
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 16 to line 47, col 23 of module 1Bit: 72
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 48, col 19 to line 48, col 30 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 49, col 24 to line 49, col 58 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 50, col 24 to line 50, col 58 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 51, col 16 to line 51, col 27 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e3 line 53, col 1 to line 53, col 8 of module 1Bit>: 2:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 53, col 16 to line 53, col 30 of module 1Bit: 84
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 53, col 16 to line 53, col 23 of module 1Bit: 72
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 54, col 16 to line 54, col 52 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 55, col 16 to line 55, col 50 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<cs line 57, col 1 to line 57, col 8 of module 1Bit>: 5:10
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 57, col 16 to line 57, col 30 of module 1Bit: 82
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 57, col 16 to line 57, col 23 of module 1Bit: 72
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 58, col 16 to line 58, col 19 of module 1Bit: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 59, col 16 to line 59, col 49 of module 1Bit: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 60, col 16 to line 60, col 27 of module 1Bit: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<exit line 62, col 1 to line 62, col 10 of module 1Bit>: 2:8
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 62, col 18 to line 62, col 34 of module 1Bit: 80
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 62, col 18 to line 62, col 25 of module 1Bit: 72
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 63, col 18 to line 63, col 54 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 64, col 18 to line 64, col 50 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<inv_1644430515753645000 line 10, col 1 to line 10, col 23 of module MC>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 11, col 1 to line 11, col 18 of module MC: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 83, col 23 to line 85, col 90 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 82, col 1 to line 85, col 90 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<Inv line 79, col 1 to line 79, col 3 of module 1Bit>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 79, col 8 to line 79, col 94 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 79, col 25 to line 79, col 94 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 79, col 26 to line 79, col 37 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 79, col 44 to line 79, col 93 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 79, col 44 to line 79, col 50 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 79, col 56 to line 79, col 92 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 79, col 56 to line 79, col 65 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 79, col 70 to line 79, col 92 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 79, col 17 to line 79, col 21 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(9) at 2022-02-09 21:15:17: 65 states generated (2 706 s/min), 32 distinct states found (1 332 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
65 states generated, 32 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 9.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1458ms at (2022-02-09 21:15:17)
@!@!@ENDMSG 2186 @!@!@
---- MODULE MC ----
EXTENDS 1Bit, TLC
\* CONSTANT definitions @modelParameterConstants:0N
const_1644430515753644000 ==
1
----
\* INVARIANT definition @modelCorrectnessInvariants:0
inv_1644430515753645000 ==
ME!MutualExclusion
----
\* PROPERTY definition @modelCorrectnessProperties:0
prop_1644430515753647000 ==
ME!Liveness
----
=============================================================================
\* Modification History
\* Created Wed Feb 09 21:15:15 MSK 2022 by kirr
@!@!@STARTMSG 2262:0 @!@!@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 93 and seed 3026727181919614077 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 78796] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
@!@!@ENDMSG 2220 @!@!@
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MC.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/1Bit.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/TLC.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Integers.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Naturals.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MutualExclusionSpec.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Sequences.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/FiniteSets.tla
Semantic processing of module Naturals
Semantic processing of module Integers
Semantic processing of module MutualExclusionSpec
Semantic processing of module 1Bit
Semantic processing of module Sequences
Semantic processing of module FiniteSets
Semantic processing of module TLC
Semantic processing of module MC
@!@!@STARTMSG 2219:0 @!@!@
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 21:15:16)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 4 branches.
@!@!@ENDMSG 2212 @!@!@
@!@!@STARTMSG 2189:0 @!@!@
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 21:15:17.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(9) at 2022-02-09 21:15:17: 65 states generated, 32 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2192:0 @!@!@
Checking 4 branches of temporal properties for the complete state space with 128 total distinct states at (2022-02-09 21:15:17)
@!@!@ENDMSG 2192 @!@!@
@!@!@STARTMSG 2116:1 @!@!@
Temporal properties were violated.
@!@!@ENDMSG 2116 @!@!@
@!@!@STARTMSG 2264:1 @!@!@
The following behavior constitutes a counter-example:
@!@!@ENDMSG 2264 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
1: <Initial predicate>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "ncs" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
2: <ncs line 38, col 14 to line 41, col 28 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "enter" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2218:4 @!@!@
3: Stuttering
@!@!@ENDMSG 2218 @!@!@
@!@!@STARTMSG 2267:0 @!@!@
Finished checking temporal properties in 00s at 2022-02-09 21:15:17
@!@!@ENDMSG 2267 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 21:15:17
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 34, col 1 to line 34, col 4 of module 1Bit>: 2:2
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
line 35, col 19 to line 35, col 41 of module 1Bit: 2:4
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 35, col 26 to line 35, col 30 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 36, col 12 to line 36, col 44 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 36, col 17 to line 36, col 44 of module 1Bit: 2:4
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 36, col 27 to line 36, col 33 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ncs line 38, col 1 to line 38, col 9 of module 1Bit>: 6:17
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 38, col 17 to line 38, col 32 of module 1Bit: 90
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 38, col 17 to line 38, col 24 of module 1Bit: 73
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 39, col 17 to line 39, col 20 of module 1Bit: 17
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 40, col 17 to line 40, col 51 of module 1Bit: 17
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 41, col 17 to line 41, col 28 of module 1Bit: 17
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<enter line 43, col 1 to line 43, col 11 of module 1Bit>: 7:14
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 43, col 19 to line 43, col 36 of module 1Bit: 86
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 43, col 19 to line 43, col 26 of module 1Bit: 72
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 44, col 19 to line 44, col 54 of module 1Bit: 14
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 45, col 19 to line 45, col 50 of module 1Bit: 14
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e2 line 47, col 1 to line 47, col 8 of module 1Bit>: 9:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 47, col 16 to line 47, col 30 of module 1Bit: 84
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 16 to line 47, col 23 of module 1Bit: 72
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 48, col 19 to line 48, col 30 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 49, col 24 to line 49, col 58 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 50, col 24 to line 50, col 58 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 51, col 16 to line 51, col 27 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e3 line 53, col 1 to line 53, col 8 of module 1Bit>: 2:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 53, col 16 to line 53, col 30 of module 1Bit: 84
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 53, col 16 to line 53, col 23 of module 1Bit: 72
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 54, col 16 to line 54, col 52 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 55, col 16 to line 55, col 50 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<cs line 57, col 1 to line 57, col 8 of module 1Bit>: 5:10
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 57, col 16 to line 57, col 30 of module 1Bit: 82
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 57, col 16 to line 57, col 23 of module 1Bit: 72
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 58, col 16 to line 58, col 19 of module 1Bit: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 59, col 16 to line 59, col 49 of module 1Bit: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 60, col 16 to line 60, col 27 of module 1Bit: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<exit line 62, col 1 to line 62, col 10 of module 1Bit>: 2:8
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 62, col 18 to line 62, col 34 of module 1Bit: 80
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 62, col 18 to line 62, col 25 of module 1Bit: 72
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 63, col 18 to line 63, col 54 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 64, col 18 to line 64, col 50 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<inv_1644430515753645000 line 10, col 1 to line 10, col 23 of module MC>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 11, col 1 to line 11, col 18 of module MC: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 83, col 23 to line 85, col 90 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 82, col 1 to line 85, col 90 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<Inv line 79, col 1 to line 79, col 3 of module 1Bit>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 79, col 8 to line 79, col 94 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 79, col 25 to line 79, col 94 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 79, col 26 to line 79, col 37 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 79, col 44 to line 79, col 93 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 79, col 44 to line 79, col 50 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 79, col 56 to line 79, col 92 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 79, col 56 to line 79, col 65 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 79, col 70 to line 79, col 92 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 79, col 17 to line 79, col 21 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(9) at 2022-02-09 21:15:17: 65 states generated (2 706 s/min), 32 distinct states found (1 332 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
65 states generated, 32 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 9.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1458ms at (2022-02-09 21:15:17)
@!@!@ENDMSG 2186 @!@!@
strict digraph DiskGraph {
edge [colorscheme="paired12"]
nodesep=0.35;
subgraph cluster_graph {
color="white";
968912574367855564 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")",style = filled]
968912574367855564 -> -8850555836875767044 [label="",color="2",fontcolor="2"];
-8850555836875767044 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")"];
-8850555836875767044 -> -8980666221997435302 [label="",color="3",fontcolor="3"];
-8980666221997435302 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")"];
968912574367855564 -> 8576019821852960722 [label="",color="2",fontcolor="2"];
8576019821852960722 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")"];
968912574367855564 -> 968912574367855564 [style="dashed"];
-8850555836875767044 -> -2456536820716344901 [label="",color="2",fontcolor="2"];
-2456536820716344901 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")"];
-8850555836875767044 -> -8850555836875767044 [style="dashed"];
8576019821852960722 -> -2456536820716344901 [label="",color="2",fontcolor="2"];
8576019821852960722 -> 3017016124509380318 [label="",color="3",fontcolor="3"];
3017016124509380318 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")"];
8576019821852960722 -> 8576019821852960722 [style="dashed"];
-8980666221997435302 -> 5802726970152990101 [label="",color="4",fontcolor="4"];
5802726970152990101 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")"];
-8980666221997435302 -> 1251699485899976639 [label="",color="2",fontcolor="2"];
1251699485899976639 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")"];
-8980666221997435302 -> -8980666221997435302 [style="dashed"];
-2456536820716344901 -> 1251699485899976639 [label="",color="3",fontcolor="3"];
-2456536820716344901 -> -5237921262873196009 [label="",color="3",fontcolor="3"];
-5237921262873196009 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")"];
-2456536820716344901 -> -2456536820716344901 [style="dashed"];
3017016124509380318 -> -5237921262873196009 [label="",color="2",fontcolor="2"];
3017016124509380318 -> 6869878783474499340 [label="",color="4",fontcolor="4"];
6869878783474499340 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")"];
3017016124509380318 -> 3017016124509380318 [style="dashed"];
5802726970152990101 -> -5312976959213372600 [label="",color="5",fontcolor="5"];
-5312976959213372600 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")"];
5802726970152990101 -> 1517340181206742884 [label="",color="2",fontcolor="2"];
1517340181206742884 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")"];
1251699485899976639 -> 1517340181206742884 [label="",color="4",fontcolor="4"];
1251699485899976639 -> -3098434985791622676 [label="",color="3",fontcolor="3"];
-3098434985791622676 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e2\")"];
1251699485899976639 -> 1251699485899976639 [style="dashed"];
5802726970152990101 -> 5802726970152990101 [style="dashed"];
-5237921262873196009 -> -3098434985791622676 [label="",color="3",fontcolor="3"];
-5237921262873196009 -> -4483610333624734779 [label="",color="4",fontcolor="4"];
-4483610333624734779 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")"];
-5237921262873196009 -> -5237921262873196009 [style="dashed"];
6869878783474499340 -> -4483610333624734779 [label="",color="2",fontcolor="2"];
6869878783474499340 -> -1461594362843814026 [label="",color="5",fontcolor="5"];
-1461594362843814026 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")"];
6869878783474499340 -> 6869878783474499340 [style="dashed"];
-5312976959213372600 -> 968912574367855564 [label="",color="6",fontcolor="6"];
-5312976959213372600 -> -676095070970902001 [label="",color="2",fontcolor="2"];
-676095070970902001 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")"];
-5312976959213372600 -> -5312976959213372600 [style="dashed"];
-3098434985791622676 -> 3289339305228601023 [label="",color="4",fontcolor="4"];
3289339305228601023 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")"];
-3098434985791622676 -> 8617661252582606850 [label="",color="4",fontcolor="4"];
8617661252582606850 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")"];
-3098434985791622676 -> -3098434985791622676 [style="dashed"];
1517340181206742884 -> -676095070970902001 [label="",color="5",fontcolor="5"];
1517340181206742884 -> 3469265956276561433 [label="",color="3",fontcolor="3"];
3469265956276561433 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")"];
1517340181206742884 -> 1517340181206742884 [style="dashed"];
-4483610333624734779 -> -6663062733094399938 [label="",color="3",fontcolor="3"];
-6663062733094399938 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")"];
-4483610333624734779 -> -7698239619337181016 [label="",color="5",fontcolor="5"];
-7698239619337181016 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")"];
-4483610333624734779 -> -4483610333624734779 [style="dashed"];
-1461594362843814026 -> -7698239619337181016 [label="",color="2",fontcolor="2"];
-1461594362843814026 -> 968912574367855564 [label="",color="6",fontcolor="6"];
-1461594362843814026 -> -1461594362843814026 [style="dashed"];
-676095070970902001 -> 8576019821852960722 [label="",color="6",fontcolor="6"];
-676095070970902001 -> 1503708932597026881 [label="",color="3",fontcolor="3"];
1503708932597026881 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")"];
-676095070970902001 -> -676095070970902001 [style="dashed"];
3289339305228601023 -> -5237921262873196009 [label="",color="7",fontcolor="7"];
8617661252582606850 -> -8125016956076327087 [label="",color="4",fontcolor="4"];
-8125016956076327087 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")"];
8617661252582606850 -> 1251699485899976639 [label="",color="7",fontcolor="7"];
8617661252582606850 -> 8617661252582606850 [style="dashed"];
3289339305228601023 -> -8125016956076327087 [label="",color="4",fontcolor="4"];
3289339305228601023 -> 3289339305228601023 [style="dashed"];
3469265956276561433 -> 1503708932597026881 [label="",color="5",fontcolor="5"];
3469265956276561433 -> -7872996341518786569 [label="",color="4",fontcolor="4"];
-7872996341518786569 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")"];
-6663062733094399938 -> 6570253637780318061 [label="",color="4",fontcolor="4"];
6570253637780318061 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")"];
3469265956276561433 -> 3469265956276561433 [style="dashed"];
-6663062733094399938 -> 7333381763420603411 [label="",color="5",fontcolor="5"];
7333381763420603411 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")"];
-6663062733094399938 -> -6663062733094399938 [style="dashed"];
-7698239619337181016 -> 7333381763420603411 [label="",color="3",fontcolor="3"];
-7698239619337181016 -> -8850555836875767044 [label="",color="6",fontcolor="6"];
-7698239619337181016 -> -7698239619337181016 [style="dashed"];
1503708932597026881 -> 3017016124509380318 [label="",color="6",fontcolor="6"];
1503708932597026881 -> -5312541369776084561 [label="",color="4",fontcolor="4"];
-5312541369776084561 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")"];
1503708932597026881 -> 1503708932597026881 [style="dashed"];
-8125016956076327087 -> 1573756106550850553 [label="",color="7",fontcolor="7"];
1573756106550850553 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")"];
-8125016956076327087 -> -5286334749894696407 [label="",color="7",fontcolor="7"];
-5286334749894696407 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")"];
-8125016956076327087 -> -8125016956076327087 [style="dashed"];
-7872996341518786569 -> -5312541369776084561 [label="",color="5",fontcolor="5"];
-7872996341518786569 -> 1517340181206742884 [label="",color="7",fontcolor="7"];
-7872996341518786569 -> -7872996341518786569 [style="dashed"];
6570253637780318061 -> -4483610333624734779 [label="",color="7",fontcolor="7"];
6570253637780318061 -> -8962433469894360314 [label="",color="5",fontcolor="5"];
-8962433469894360314 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")"];
6570253637780318061 -> 6570253637780318061 [style="dashed"];
7333381763420603411 -> -8962433469894360314 [label="",color="4",fontcolor="4"];
7333381763420603411 -> -8980666221997435302 [label="",color="6",fontcolor="6"];
7333381763420603411 -> 7333381763420603411 [style="dashed"];
-5312541369776084561 -> -8410849823587358928 [label="",color="6",fontcolor="6"];
-8410849823587358928 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")"];
-5312541369776084561 -> -676095070970902001 [label="",color="7",fontcolor="7"];
-5312541369776084561 -> -5312541369776084561 [style="dashed"];
1573756106550850553 -> 8617661252582606850 [label="",color="3",fontcolor="3"];
1573756106550850553 -> -2456536820716344901 [label="",color="7",fontcolor="7"];
1573756106550850553 -> 1573756106550850553 [style="dashed"];
-5286334749894696407 -> -2456536820716344901 [label="",color="7",fontcolor="7"];
-5286334749894696407 -> 3289339305228601023 [label="",color="3",fontcolor="3"];
-5286334749894696407 -> -5286334749894696407 [style="dashed"];
-8962433469894360314 -> -7698239619337181016 [label="",color="7",fontcolor="7"];
-8962433469894360314 -> 1363346347143729574 [label="",color="6",fontcolor="6"];
1363346347143729574 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"ncs\")"];
-8962433469894360314 -> -8962433469894360314 [style="dashed"];
-8410849823587358928 -> 1573756106550850553 [label="",color="2",fontcolor="2"];
-8410849823587358928 -> 8576019821852960722 [label="",color="7",fontcolor="7"];
-8410849823587358928 -> -8410849823587358928 [style="dashed"];
1363346347143729574 -> -8850555836875767044 [label="",color="7",fontcolor="7"];
1363346347143729574 -> -5286334749894696407 [label="",color="2",fontcolor="2"];
1363346347143729574 -> 1363346347143729574 [style="dashed"];
{rank = same; 968912574367855564;}
{rank = same; 8576019821852960722;-8850555836875767044;}
{rank = same; -8980666221997435302;-2456536820716344901;3017016124509380318;}
{rank = same; 5802726970152990101;1251699485899976639;6869878783474499340;-5237921262873196009;}
{rank = same; 1517340181206742884;-1461594362843814026;-5312976959213372600;-3098434985791622676;-4483610333624734779;}
{rank = same; 3289339305228601023;3469265956276561433;-7698239619337181016;-6663062733094399938;-676095070970902001;8617661252582606850;}
{rank = same; 6570253637780318061;-7872996341518786569;-8125016956076327087;1503708932597026881;7333381763420603411;}
{rank = same; -5312541369776084561;-8962433469894360314;1573756106550850553;-5286334749894696407;}
{rank = same; -8410849823587358928;1363346347143729574;}
}
subgraph cluster_legend {graph[style=bold];label = "Next State Actions" style="solid"
node [ labeljust="l",colorscheme="paired12",style=filled,shape=record ]
cs [label="cs",fillcolor=5]
exit [label="exit",fillcolor=6]
enter [label="enter",fillcolor=3]
e2 [label="e2",fillcolor=4]
e3 [label="e3",fillcolor=7]
ncs [label="ncs",fillcolor=2]
}}
\ No newline at end of file
digraph DiskGraph {
nodesep=0.35;
subgraph cluster_graph {
color="white";
"968912574367855564.1" [style = filled] [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")
#968912574367855564.1#"]
"968912574367855564.1" -> "8576019821852960722.1";
"8576019821852960722.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#8576019821852960722.1#"];
"968912574367855564.1" -> "-8850555836875767044.1";
"-8850555836875767044.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")
#-8850555836875767044.1#"];
"968912574367855564.1" -> "968912574367855564.1";
"968912574367855564.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")
#968912574367855564.1#"];
"-8850555836875767044.1" -> "-8980666221997435302.1";
"-8980666221997435302.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")
#-8980666221997435302.1#"];
"-8850555836875767044.1" -> "-2456536820716344901.1";
"-2456536820716344901.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#-2456536820716344901.1#"];
"-8850555836875767044.1" -> "-8850555836875767044.1";
"-8850555836875767044.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")
#-8850555836875767044.1#"];
"8576019821852960722.1" -> "8576019821852960722.1";
"8576019821852960722.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#8576019821852960722.1#"];
"8576019821852960722.1" -> "-2456536820716344901.1";
"-2456536820716344901.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#-2456536820716344901.1#"];
"8576019821852960722.1" -> "3017016124509380318.1";
"3017016124509380318.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")
#3017016124509380318.1#"];
"-8980666221997435302.1" -> "5802726970152990101.1";
"5802726970152990101.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")
#5802726970152990101.1#"];
"-8980666221997435302.1" -> "-8980666221997435302.1";
"-8980666221997435302.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")
#-8980666221997435302.1#"];
"-8980666221997435302.1" -> "1251699485899976639.1";
"1251699485899976639.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#1251699485899976639.1#"];
"-2456536820716344901.1" -> "-5237921262873196009.1";
"-5237921262873196009.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#-5237921262873196009.1#"];
"-2456536820716344901.1" -> "-2456536820716344901.1";
"-2456536820716344901.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#-2456536820716344901.1#"];
"-2456536820716344901.1" -> "1251699485899976639.1";
"1251699485899976639.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#1251699485899976639.1#"];
"3017016124509380318.1" -> "-5237921262873196009.1";
"-5237921262873196009.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#-5237921262873196009.1#"];
"3017016124509380318.1" -> "6869878783474499340.0";
"6869878783474499340.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")
#6869878783474499340.0#"];
"3017016124509380318.1" -> "6869878783474499340.1";
"6869878783474499340.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")
#6869878783474499340.1#"];
"3017016124509380318.1" -> "3017016124509380318.1";
"3017016124509380318.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")
#3017016124509380318.1#"];
"5802726970152990101.1" -> "1517340181206742884.1";
"1517340181206742884.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#1517340181206742884.1#"];
"5802726970152990101.1" -> "5802726970152990101.1";
"5802726970152990101.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")
#5802726970152990101.1#"];
"5802726970152990101.1" -> "-5312976959213372600.1";
"-5312976959213372600.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")
#-5312976959213372600.1#"];
"-5237921262873196009.1" -> "-4483610333624734779.0";
"-4483610333624734779.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4483610333624734779.0#"];
"-5237921262873196009.1" -> "-4483610333624734779.1";
"-4483610333624734779.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4483610333624734779.1#"];
"-5237921262873196009.1" -> "-5237921262873196009.1";
"-5237921262873196009.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#-5237921262873196009.1#"];
"-5237921262873196009.1" -> "-3098434985791622676.1";
"-3098434985791622676.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e2\")
#-3098434985791622676.1#"];
"1251699485899976639.1" -> "1517340181206742884.1";
"1517340181206742884.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#1517340181206742884.1#"];
"1251699485899976639.1" -> "-3098434985791622676.1";
"-3098434985791622676.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e2\")
#-3098434985791622676.1#"];
"1251699485899976639.1" -> "1251699485899976639.1";
"1251699485899976639.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#1251699485899976639.1#"];
"6869878783474499340.0" -> "-4483610333624734779.2";
"-4483610333624734779.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4483610333624734779.2#"];
"6869878783474499340.0" -> "6869878783474499340.2";
"6869878783474499340.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")
#6869878783474499340.2#"];
"6869878783474499340.2" -> "-4483610333624734779.2" [style="dotted"];
"6869878783474499340.1" -> "-4483610333624734779.0";
"-4483610333624734779.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4483610333624734779.0#"];
"6869878783474499340.1" -> "-4483610333624734779.1";
"-4483610333624734779.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4483610333624734779.1#"];
"6869878783474499340.1" -> "-1461594362843814026.1";
"-1461594362843814026.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")
#-1461594362843814026.1#"];
"6869878783474499340.1" -> "6869878783474499340.0";
"6869878783474499340.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")
#6869878783474499340.0#"];
"6869878783474499340.1" -> "6869878783474499340.1";
"6869878783474499340.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")
#6869878783474499340.1#"];
"-5312976959213372600.1" -> "-5312976959213372600.1";
"-5312976959213372600.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")
#-5312976959213372600.1#"];
"-5312976959213372600.1" -> "968912574367855564.1";
"968912574367855564.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")
#968912574367855564.1#"];
"-5312976959213372600.1" -> "-676095070970902001.1";
"-676095070970902001.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#-676095070970902001.1#"];
"-3098434985791622676.1" -> "8617661252582606850.1";
"8617661252582606850.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#8617661252582606850.1#"];
"-3098434985791622676.1" -> "-3098434985791622676.1";
"-3098434985791622676.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e2\")
#-3098434985791622676.1#"];
"-3098434985791622676.1" -> "3289339305228601023.1";
"3289339305228601023.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#3289339305228601023.1#"];
"1517340181206742884.1" -> "1517340181206742884.1";
"1517340181206742884.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#1517340181206742884.1#"];
"1517340181206742884.1" -> "3469265956276561433.1";
"3469265956276561433.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")
#3469265956276561433.1#"];
"1517340181206742884.1" -> "-676095070970902001.1";
"-676095070970902001.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#-676095070970902001.1#"];
"-4483610333624734779.0" -> "-4483610333624734779.2";
"-4483610333624734779.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4483610333624734779.2#"];
"-4483610333624734779.0" -> "-6663062733094399938.2";
"-6663062733094399938.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#-6663062733094399938.2#"];
"-4483610333624734779.1" -> "-4483610333624734779.0";
"-4483610333624734779.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4483610333624734779.0#"];
"-4483610333624734779.1" -> "-4483610333624734779.1";
"-4483610333624734779.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4483610333624734779.1#"];
"-4483610333624734779.1" -> "-7698239619337181016.1";
"-7698239619337181016.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")
#-7698239619337181016.1#"];
"-4483610333624734779.1" -> "-6663062733094399938.0";
"-6663062733094399938.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#-6663062733094399938.0#"];
"-4483610333624734779.1" -> "-6663062733094399938.1";
"-6663062733094399938.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#-6663062733094399938.1#"];
"-4483610333624734779.2" -> "-4483610333624734779.2";
"-4483610333624734779.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4483610333624734779.2#"];
"-4483610333624734779.2" -> "-6663062733094399938.2";
"-6663062733094399938.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#-6663062733094399938.2#"];
"-676095070970902001.1" -> "1503708932597026881.1";
"1503708932597026881.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#1503708932597026881.1#"];
"-676095070970902001.1" -> "8576019821852960722.1";
"8576019821852960722.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#8576019821852960722.1#"];
"-676095070970902001.1" -> "-676095070970902001.1";
"-676095070970902001.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#-676095070970902001.1#"];
"-1461594362843814026.1" -> "-1461594362843814026.1";
"-1461594362843814026.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")
#-1461594362843814026.1#"];
"-1461594362843814026.1" -> "-7698239619337181016.1";
"-7698239619337181016.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")
#-7698239619337181016.1#"];
"-1461594362843814026.1" -> "968912574367855564.1";
"968912574367855564.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")
#968912574367855564.1#"];
"8617661252582606850.1" -> "-8125016956076327087.1";
"-8125016956076327087.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-8125016956076327087.1#"];
"8617661252582606850.1" -> "8617661252582606850.1";
"8617661252582606850.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#8617661252582606850.1#"];
"8617661252582606850.1" -> "1251699485899976639.1";
"1251699485899976639.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#1251699485899976639.1#"];
"3289339305228601023.1" -> "-8125016956076327087.1";
"-8125016956076327087.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-8125016956076327087.1#"];
"3289339305228601023.1" -> "-5237921262873196009.1";
"-5237921262873196009.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#-5237921262873196009.1#"];
"3289339305228601023.1" -> "3289339305228601023.1";
"3289339305228601023.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#3289339305228601023.1#"];
"3469265956276561433.1" -> "1503708932597026881.1";
"1503708932597026881.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#1503708932597026881.1#"];
"3469265956276561433.1" -> "-7872996341518786569.1";
"-7872996341518786569.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-7872996341518786569.1#"];
"3469265956276561433.1" -> "3469265956276561433.1";
"3469265956276561433.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")
#3469265956276561433.1#"];
"-6663062733094399938.2" -> "6570253637780318061.2";
"6570253637780318061.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#6570253637780318061.2#"];
"-6663062733094399938.2" -> "-6663062733094399938.2";
"-6663062733094399938.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#-6663062733094399938.2#"];
"-6663062733094399938.0" -> "6570253637780318061.2";
"6570253637780318061.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#6570253637780318061.2#"];
"-6663062733094399938.0" -> "-6663062733094399938.2";
"-6663062733094399938.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#-6663062733094399938.2#"];
"-6663062733094399938.1" -> "7333381763420603411.1";
"7333381763420603411.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")
#7333381763420603411.1#"];
"-6663062733094399938.1" -> "6570253637780318061.0";
"6570253637780318061.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#6570253637780318061.0#"];
"-6663062733094399938.1" -> "6570253637780318061.1";
"6570253637780318061.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#6570253637780318061.1#"];
"-6663062733094399938.1" -> "-6663062733094399938.0";
"-6663062733094399938.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#-6663062733094399938.0#"];
"-6663062733094399938.1" -> "-6663062733094399938.1";
"-6663062733094399938.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#-6663062733094399938.1#"];
"-7698239619337181016.1" -> "7333381763420603411.1";
"7333381763420603411.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")
#7333381763420603411.1#"];
"-7698239619337181016.1" -> "-7698239619337181016.1";
"-7698239619337181016.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")
#-7698239619337181016.1#"];
"-7698239619337181016.1" -> "-8850555836875767044.1";
"-8850555836875767044.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")
#-8850555836875767044.1#"];
"1503708932597026881.1" -> "1503708932597026881.1";
"1503708932597026881.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#1503708932597026881.1#"];
"1503708932597026881.1" -> "3017016124509380318.1";
"3017016124509380318.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")
#3017016124509380318.1#"];
"1503708932597026881.1" -> "-5312541369776084561.1";
"-5312541369776084561.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#-5312541369776084561.1#"];
"-8125016956076327087.1" -> "-8125016956076327087.1";
"-8125016956076327087.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-8125016956076327087.1#"];
"-8125016956076327087.1" -> "1573756106550850553.1";
"1573756106550850553.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#1573756106550850553.1#"];
"-8125016956076327087.1" -> "-5286334749894696407.1";
"-5286334749894696407.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#-5286334749894696407.1#"];
"-7872996341518786569.1" -> "1517340181206742884.1";
"1517340181206742884.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#1517340181206742884.1#"];
"-7872996341518786569.1" -> "-7872996341518786569.1";
"-7872996341518786569.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-7872996341518786569.1#"];
"-7872996341518786569.1" -> "-5312541369776084561.1";
"-5312541369776084561.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#-5312541369776084561.1#"];
"6570253637780318061.2" -> "-4483610333624734779.2";
"-4483610333624734779.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4483610333624734779.2#"];
"6570253637780318061.2" -> "6570253637780318061.2";
"6570253637780318061.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#6570253637780318061.2#"];
"6570253637780318061.0" -> "-4483610333624734779.2";
"-4483610333624734779.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4483610333624734779.2#"];
"6570253637780318061.0" -> "6570253637780318061.2";
"6570253637780318061.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#6570253637780318061.2#"];
"6570253637780318061.1" -> "-4483610333624734779.0";
"-4483610333624734779.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4483610333624734779.0#"];
"6570253637780318061.1" -> "-4483610333624734779.1";
"-4483610333624734779.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4483610333624734779.1#"];
"6570253637780318061.1" -> "-8962433469894360314.1";
"-8962433469894360314.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")
#-8962433469894360314.1#"];
"6570253637780318061.1" -> "6570253637780318061.0";
"6570253637780318061.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#6570253637780318061.0#"];
"6570253637780318061.1" -> "6570253637780318061.1";
"6570253637780318061.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#6570253637780318061.1#"];
"7333381763420603411.1" -> "7333381763420603411.1";
"7333381763420603411.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")
#7333381763420603411.1#"];
"7333381763420603411.1" -> "-8962433469894360314.1";
"-8962433469894360314.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")
#-8962433469894360314.1#"];
"7333381763420603411.1" -> "-8980666221997435302.1";
"-8980666221997435302.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")
#-8980666221997435302.1#"];
"-5312541369776084561.1" -> "-8410849823587358928.1";
"-8410849823587358928.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#-8410849823587358928.1#"];
"-5312541369776084561.1" -> "-5312541369776084561.1";
"-5312541369776084561.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#-5312541369776084561.1#"];
"-5312541369776084561.1" -> "-676095070970902001.1";
"-676095070970902001.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#-676095070970902001.1#"];
"-5286334749894696407.1" -> "-5286334749894696407.1";
"-5286334749894696407.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#-5286334749894696407.1#"];
"-5286334749894696407.1" -> "-2456536820716344901.1";
"-2456536820716344901.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#-2456536820716344901.1#"];
"-5286334749894696407.1" -> "3289339305228601023.1";
"3289339305228601023.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#3289339305228601023.1#"];
"-8962433469894360314.1" -> "1363346347143729574.1";
"1363346347143729574.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"ncs\")
#1363346347143729574.1#"];
"-8962433469894360314.1" -> "-8962433469894360314.1";
"-8962433469894360314.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")
#-8962433469894360314.1#"];
"-8962433469894360314.1" -> "-7698239619337181016.1";
"-7698239619337181016.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")
#-7698239619337181016.1#"];
"-8410849823587358928.1" -> "-8410849823587358928.1";
"-8410849823587358928.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#-8410849823587358928.1#"];
"-8410849823587358928.1" -> "8576019821852960722.1";
"8576019821852960722.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#8576019821852960722.1#"];
"-8410849823587358928.1" -> "1573756106550850553.1";
"1573756106550850553.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#1573756106550850553.1#"];
"1363346347143729574.1" -> "1363346347143729574.1";
"1363346347143729574.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"ncs\")
#1363346347143729574.1#"];
"1363346347143729574.1" -> "-5286334749894696407.1";
"-5286334749894696407.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#-5286334749894696407.1#"];
"1363346347143729574.1" -> "-8850555836875767044.1";
"-8850555836875767044.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")
#-8850555836875767044.1#"];
"1573756106550850553.1" -> "8617661252582606850.1";
"8617661252582606850.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#8617661252582606850.1#"];
"1573756106550850553.1" -> "1573756106550850553.1";
"1573756106550850553.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#1573756106550850553.1#"];
"1573756106550850553.1" -> "-2456536820716344901.1";
"-2456536820716344901.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#-2456536820716344901.1#"];
}
}@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-8125016956076327087.2#"];
"8617661252582606850.0" -> "8617661252582606850.2";
"8617661252582606850.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#8617661252582606850.2#"];
"8617661252582606850.0" -> "1251699485899976639.2";
"1251699485899976639.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#1251699485899976639.2#"];
"8617661252582606850.1" -> "-8125016956076327087.0";
"-8125016956076327087.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-8125016956076327087.0#"];
"8617661252582606850.1" -> "-8125016956076327087.1";
"-8125016956076327087.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-8125016956076327087.1#"];
"8617661252582606850.1" -> "8617661252582606850.0";
"8617661252582606850.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#8617661252582606850.0#"];
"8617661252582606850.1" -> "8617661252582606850.1";
"8617661252582606850.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#8617661252582606850.1#"];
"8617661252582606850.1" -> "1251699485899976639.0";
"1251699485899976639.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#1251699485899976639.0#"];
"8617661252582606850.1" -> "1251699485899976639.1";
"1251699485899976639.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#1251699485899976639.1#"];
"3289339305228601023.2" -> "-8125016956076327087.2";
"-8125016956076327087.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-8125016956076327087.2#"];
"3289339305228601023.2" -> "-5237921262873196009.2";
"-5237921262873196009.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#-5237921262873196009.2#"];
"3289339305228601023.2" -> "3289339305228601023.2";
"3289339305228601023.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#3289339305228601023.2#"];
"3289339305228601023.0" -> "-8125016956076327087.2";
"-8125016956076327087.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-8125016956076327087.2#"];
"3289339305228601023.0" -> "-5237921262873196009.2";
"-5237921262873196009.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#-5237921262873196009.2#"];
"3289339305228601023.0" -> "3289339305228601023.2";
"3289339305228601023.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#3289339305228601023.2#"];
"3289339305228601023.1" -> "-8125016956076327087.0";
"-8125016956076327087.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-8125016956076327087.0#"];
"3289339305228601023.1" -> "-8125016956076327087.1";
"-8125016956076327087.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-8125016956076327087.1#"];
"3289339305228601023.1" -> "-5237921262873196009.0";
"-5237921262873196009.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#-5237921262873196009.0#"];
"3289339305228601023.1" -> "-5237921262873196009.1";
"-5237921262873196009.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#-5237921262873196009.1#"];
"3289339305228601023.1" -> "3289339305228601023.0";
"3289339305228601023.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#3289339305228601023.0#"];
"3289339305228601023.1" -> "3289339305228601023.1";
"3289339305228601023.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#3289339305228601023.1#"];
"3469265956276561433.2" -> "1503708932597026881.2";
"1503708932597026881.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#1503708932597026881.2#"];
"3469265956276561433.2" -> "-7872996341518786569.2";
"-7872996341518786569.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-7872996341518786569.2#"];
"3469265956276561433.2" -> "3469265956276561433.2";
"3469265956276561433.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")
#3469265956276561433.2#"];
"3469265956276561433.0" -> "1503708932597026881.2";
"1503708932597026881.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#1503708932597026881.2#"];
"3469265956276561433.0" -> "-7872996341518786569.2";
"-7872996341518786569.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-7872996341518786569.2#"];
"3469265956276561433.0" -> "3469265956276561433.2";
"3469265956276561433.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")
#3469265956276561433.2#"];
"3469265956276561433.1" -> "1503708932597026881.0";
"1503708932597026881.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#1503708932597026881.0#"];
"3469265956276561433.1" -> "1503708932597026881.1";
"1503708932597026881.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#1503708932597026881.1#"];
"3469265956276561433.1" -> "-7872996341518786569.0";
"-7872996341518786569.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-7872996341518786569.0#"];
"3469265956276561433.1" -> "-7872996341518786569.1";
"-7872996341518786569.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-7872996341518786569.1#"];
"3469265956276561433.1" -> "3469265956276561433.0";
"3469265956276561433.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")
#3469265956276561433.0#"];
"3469265956276561433.1" -> "3469265956276561433.1";
"3469265956276561433.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")
#3469265956276561433.1#"];
"-6663062733094399938.1" -> "7333381763420603411.1";
"7333381763420603411.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")
#7333381763420603411.1#"];
"-6663062733094399938.1" -> "6570253637780318061.1";
"6570253637780318061.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#6570253637780318061.1#"];
"-6663062733094399938.1" -> "-6663062733094399938.1";
"-6663062733094399938.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#-6663062733094399938.1#"];
"-7698239619337181016.1" -> "7333381763420603411.1";
"7333381763420603411.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")
#7333381763420603411.1#"];
"-7698239619337181016.1" -> "-7698239619337181016.1";
"-7698239619337181016.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")
#-7698239619337181016.1#"];
"-7698239619337181016.1" -> "-8850555836875767044.1";
"-8850555836875767044.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")
#-8850555836875767044.1#"];
"1503708932597026881.2" -> "1503708932597026881.2";
"1503708932597026881.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#1503708932597026881.2#"];
"1503708932597026881.2" -> "3017016124509380318.2";
"3017016124509380318.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")
#3017016124509380318.2#"];
"1503708932597026881.2" -> "-5312541369776084561.2";
"-5312541369776084561.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#-5312541369776084561.2#"];
"1503708932597026881.0" -> "1503708932597026881.2";
"1503708932597026881.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#1503708932597026881.2#"];
"1503708932597026881.0" -> "3017016124509380318.2";
"3017016124509380318.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")
#3017016124509380318.2#"];
"1503708932597026881.0" -> "-5312541369776084561.2";
"-5312541369776084561.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#-5312541369776084561.2#"];
"1503708932597026881.1" -> "1503708932597026881.0";
"1503708932597026881.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#1503708932597026881.0#"];
"1503708932597026881.1" -> "1503708932597026881.1";
"1503708932597026881.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#1503708932597026881.1#"];
"1503708932597026881.1" -> "3017016124509380318.0";
"3017016124509380318.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")
#3017016124509380318.0#"];
"1503708932597026881.1" -> "3017016124509380318.1";
"3017016124509380318.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")
#3017016124509380318.1#"];
"1503708932597026881.1" -> "-5312541369776084561.0";
"-5312541369776084561.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#-5312541369776084561.0#"];
"1503708932597026881.1" -> "-5312541369776084561.1";
"-5312541369776084561.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#-5312541369776084561.1#"];
"-8125016956076327087.2" -> "-8125016956076327087.2";
"-8125016956076327087.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-8125016956076327087.2#"];
"-8125016956076327087.2" -> "1573756106550850553.2";
"1573756106550850553.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#1573756106550850553.2#"];
"-8125016956076327087.2" -> "-5286334749894696407.2";
"-5286334749894696407.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#-5286334749894696407.2#"];
"-8125016956076327087.0" -> "-8125016956076327087.2";
"-8125016956076327087.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-8125016956076327087.2#"];
"-8125016956076327087.0" -> "1573756106550850553.2";
"1573756106550850553.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#1573756106550850553.2#"];
"-8125016956076327087.0" -> "-5286334749894696407.2";
"-5286334749894696407.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#-5286334749894696407.2#"];
"-8125016956076327087.1" -> "-8125016956076327087.0";
"-8125016956076327087.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-8125016956076327087.0#"];
"-8125016956076327087.1" -> "-8125016956076327087.1";
"-8125016956076327087.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-8125016956076327087.1#"];
"-8125016956076327087.1" -> "1573756106550850553.0";
"1573756106550850553.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#1573756106550850553.0#"];
"-8125016956076327087.1" -> "1573756106550850553.1";
"1573756106550850553.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#1573756106550850553.1#"];
"-8125016956076327087.1" -> "-5286334749894696407.0";
"-5286334749894696407.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#-5286334749894696407.0#"];
"-8125016956076327087.1" -> "-5286334749894696407.1";
"-5286334749894696407.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#-5286334749894696407.1#"];
"-7872996341518786569.2" -> "1517340181206742884.2";
"1517340181206742884.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#1517340181206742884.2#"];
"-7872996341518786569.2" -> "-7872996341518786569.2";
"-7872996341518786569.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-7872996341518786569.2#"];
"-7872996341518786569.2" -> "-5312541369776084561.2";
"-5312541369776084561.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#-5312541369776084561.2#"];
"-7872996341518786569.0" -> "1517340181206742884.2";
"1517340181206742884.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#1517340181206742884.2#"];
"-7872996341518786569.0" -> "-7872996341518786569.2";
"-7872996341518786569.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-7872996341518786569.2#"];
"-7872996341518786569.0" -> "-5312541369776084561.2";
"-5312541369776084561.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#-5312541369776084561.2#"];
"-7872996341518786569.1" -> "1517340181206742884.0";
"1517340181206742884.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#1517340181206742884.0#"];
"-7872996341518786569.1" -> "1517340181206742884.1";
"1517340181206742884.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#1517340181206742884.1#"];
"-7872996341518786569.1" -> "-7872996341518786569.0";
"-7872996341518786569.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-7872996341518786569.0#"];
"-7872996341518786569.1" -> "-7872996341518786569.1";
"-7872996341518786569.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-7872996341518786569.1#"];
"-7872996341518786569.1" -> "-5312541369776084561.0";
"-5312541369776084561.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#-5312541369776084561.0#"];
"-7872996341518786569.1" -> "-5312541369776084561.1";
"-5312541369776084561.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#-5312541369776084561.1#"];
"6570253637780318061.1" -> "-4483610333624734779.1";
"-4483610333624734779.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4483610333624734779.1#"];
"6570253637780318061.1" -> "-8962433469894360314.1";
"-8962433469894360314.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")
#-8962433469894360314.1#"];
"6570253637780318061.1" -> "6570253637780318061.1";
"6570253637780318061.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#6570253637780318061.1#"];
"7333381763420603411.1" -> "7333381763420603411.1";
"7333381763420603411.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")
#7333381763420603411.1#"];
"7333381763420603411.1" -> "-8962433469894360314.1";
"-8962433469894360314.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")
#-8962433469894360314.1#"];
"7333381763420603411.1" -> "-8980666221997435302.1";
"-8980666221997435302.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")
#-8980666221997435302.1#"];
"-5312541369776084561.2" -> "-8410849823587358928.2";
"-8410849823587358928.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#-8410849823587358928.2#"];
"-5312541369776084561.2" -> "-5312541369776084561.2";
"-5312541369776084561.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#-5312541369776084561.2#"];
"-5312541369776084561.2" -> "-676095070970902001.2";
"-676095070970902001.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#-676095070970902001.2#"];
"-5312541369776084561.0" -> "-8410849823587358928.2";
"-8410849823587358928.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#-8410849823587358928.2#"];
"-5312541369776084561.0" -> "-5312541369776084561.2";
"-5312541369776084561.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#-5312541369776084561.2#"];
"-5312541369776084561.0" -> "-676095070970902001.2";
"-676095070970902001.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#-676095070970902001.2#"];
"-5312541369776084561.1" -> "-8410849823587358928.0";
"-8410849823587358928.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#-8410849823587358928.0#"];
"-5312541369776084561.1" -> "-8410849823587358928.1";
"-8410849823587358928.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#-8410849823587358928.1#"];
"-5312541369776084561.1" -> "-5312541369776084561.0";
"-5312541369776084561.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#-5312541369776084561.0#"];
"-5312541369776084561.1" -> "-5312541369776084561.1";
"-5312541369776084561.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#-5312541369776084561.1#"];
"-5312541369776084561.1" -> "-676095070970902001.0";
"-676095070970902001.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#-676095070970902001.0#"];
"-5312541369776084561.1" -> "-676095070970902001.1";
"-676095070970902001.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#-676095070970902001.1#"];
"1573756106550850553.2" -> "8617661252582606850.2";
"8617661252582606850.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#8617661252582606850.2#"];
"1573756106550850553.2" -> "1573756106550850553.2";
"1573756106550850553.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#1573756106550850553.2#"];
"1573756106550850553.2" -> "-2456536820716344901.2";
"-2456536820716344901.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#-2456536820716344901.2#"];
"1573756106550850553.0" -> "8617661252582606850.2";
"8617661252582606850.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#8617661252582606850.2#"];
"1573756106550850553.0" -> "1573756106550850553.2";
"1573756106550850553.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#1573756106550850553.2#"];
"1573756106550850553.0" -> "-2456536820716344901.2";
"-2456536820716344901.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#-2456536820716344901.2#"];
"1573756106550850553.1" -> "8617661252582606850.0";
"8617661252582606850.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#8617661252582606850.0#"];
"1573756106550850553.1" -> "8617661252582606850.1";
"8617661252582606850.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#8617661252582606850.1#"];
"1573756106550850553.1" -> "1573756106550850553.0";
"1573756106550850553.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#1573756106550850553.0#"];
"1573756106550850553.1" -> "1573756106550850553.1";
"1573756106550850553.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#1573756106550850553.1#"];
"1573756106550850553.1" -> "-2456536820716344901.0";
"-2456536820716344901.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#-2456536820716344901.0#"];
"1573756106550850553.1" -> "-2456536820716344901.1";
"-2456536820716344901.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#-2456536820716344901.1#"];
"-5286334749894696407.2" -> "-5286334749894696407.2";
"-5286334749894696407.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#-5286334749894696407.2#"];
"-5286334749894696407.2" -> "-2456536820716344901.2";
"-2456536820716344901.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#-2456536820716344901.2#"];
"-5286334749894696407.2" -> "3289339305228601023.2";
"3289339305228601023.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#3289339305228601023.2#"];
"-5286334749894696407.0" -> "-5286334749894696407.2";
"-5286334749894696407.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#-5286334749894696407.2#"];
"-5286334749894696407.0" -> "-2456536820716344901.2";
"-2456536820716344901.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#-2456536820716344901.2#"];
"-5286334749894696407.0" -> "3289339305228601023.2";
"3289339305228601023.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#3289339305228601023.2#"];
"-5286334749894696407.1" -> "-5286334749894696407.0";
"-5286334749894696407.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#-5286334749894696407.0#"];
"-5286334749894696407.1" -> "-5286334749894696407.1";
"-5286334749894696407.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#-5286334749894696407.1#"];
"-5286334749894696407.1" -> "-2456536820716344901.0";
"-2456536820716344901.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#-2456536820716344901.0#"];
"-5286334749894696407.1" -> "-2456536820716344901.1";
"-2456536820716344901.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#-2456536820716344901.1#"];
"-5286334749894696407.1" -> "3289339305228601023.0";
"3289339305228601023.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#3289339305228601023.0#"];
"-5286334749894696407.1" -> "3289339305228601023.1";
"3289339305228601023.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#3289339305228601023.1#"];
"-8962433469894360314.1" -> "1363346347143729574.1";
"1363346347143729574.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"ncs\")
#1363346347143729574.1#"];
"-8962433469894360314.1" -> "-8962433469894360314.1";
"-8962433469894360314.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")
#-8962433469894360314.1#"];
"-8962433469894360314.1" -> "-7698239619337181016.1";
"-7698239619337181016.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")
#-7698239619337181016.1#"];
"-8410849823587358928.2" -> "-8410849823587358928.2";
"-8410849823587358928.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#-8410849823587358928.2#"];
"-8410849823587358928.2" -> "8576019821852960722.2";
"8576019821852960722.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#8576019821852960722.2#"];
"-8410849823587358928.2" -> "1573756106550850553.2";
"1573756106550850553.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#1573756106550850553.2#"];
"-8410849823587358928.0" -> "-8410849823587358928.2";
"-8410849823587358928.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#-8410849823587358928.2#"];
"-8410849823587358928.0" -> "8576019821852960722.2";
"8576019821852960722.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#8576019821852960722.2#"];
"-8410849823587358928.0" -> "1573756106550850553.2";
"1573756106550850553.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#1573756106550850553.2#"];
"-8410849823587358928.1" -> "-8410849823587358928.0";
"-8410849823587358928.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#-8410849823587358928.0#"];
"-8410849823587358928.1" -> "-8410849823587358928.1";
"-8410849823587358928.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#-8410849823587358928.1#"];
"-8410849823587358928.1" -> "8576019821852960722.0";
"8576019821852960722.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#8576019821852960722.0#"];
"-8410849823587358928.1" -> "8576019821852960722.1";
"8576019821852960722.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#8576019821852960722.1#"];
"-8410849823587358928.1" -> "1573756106550850553.0";
"1573756106550850553.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#1573756106550850553.0#"];
"-8410849823587358928.1" -> "1573756106550850553.1";
"1573756106550850553.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#1573756106550850553.1#"];
"1363346347143729574.1" -> "1363346347143729574.1";
"1363346347143729574.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"ncs\")
#1363346347143729574.1#"];
"1363346347143729574.1" -> "-5286334749894696407.0";
"-5286334749894696407.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#-5286334749894696407.0#"];
"1363346347143729574.1" -> "-5286334749894696407.1";
"-5286334749894696407.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#-5286334749894696407.1#"];
"1363346347143729574.1" -> "-8850555836875767044.1";
"-8850555836875767044.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")
#-8850555836875767044.1#"];
}
}label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")
#-8850555836875767044.1#"];
}
}
\ No newline at end of file
------------------------ MODULE MutualExclusionSpec ------------------------
\* Module MutualExclusionSpec provides general specification for mutual-exclusion problem.
\* Procs is set of processes.
\* Every process is assumed to loop and enter into "cs" state on every interation.
\* Non-critical state is represented as "non-cs".
\* When process decides it want to enter into critical-section, it first goes into "csentry" state.
CONSTANT Procs
VARIABLES pc
TypeOK == pc \in [Procs -> {"non-cs", "csentry", "cs"}]
vars == <<pc>>
\* All processes start from non-critical section.
Init == pc \in [Procs -> {"non-cs"}]
\* WantCS(proc) is action when proc decides that it wants to enter into critical section.
WantCS(proc) ==
/\ pc[proc] = "non-cs"
/\ pc' = [pc EXCEPT ![proc] = "csentry"]
\* EnterCS(proc) is action when proc enters critical section.
EnterCS(proc) ==
/\ pc[proc] = "csentry"
/\ \A i \in Procs \ {proc} : pc[i] /= "cs"
/\ pc' = [pc EXCEPT ![proc] = "cs"]
\* ExitCS(proc) is action when proc leaves critical section.
ExitCS(proc) ==
/\ pc[proc] = "cs"
/\ pc' = [pc EXCEPT ![proc] = "non-cs"]
Next == \E i \in Procs: WantCS(i) \/ EnterCS(i) \/ ExitCS(i)
Spec == /\ Init
/\ [][Next]_vars
/\ \A i \in Procs: ( \* fairness
\* not fair for WantCS - it can pause and even hang there
/\ SF_vars(EnterCS(i))
/\ SF_vars(ExitCS(i)))
----------------
\* MutualExclusion is invariant indicating that no two processes can be inside critical section at the same time.
MutualExclusion == \A i,j \in Procs: (i /= j) => ~((pc[i] = "cs") /\ (pc[j] = "cs"))
\* Liveness is temporal property indicating that every process has a chance to enter critical section and leaves it.
Liveness == \A i \in Procs:
/\ (pc[i] = "csentry") ~> (pc[i] = "cs")
/\ (pc[i] = "cs") ~> (pc[i] = "non-cs")
THEOREM Spec => []TypeOK
THEOREM Spec => []MutualExclusion
THEOREM Spec => Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 19:11:11 MSK 2022 by kirr
\* Created Wed Feb 09 13:11:29 MSK 2022 by kirr
-------------------------------- MODULE 1Bit --------------------------------
\* 1Bit implementation of mutual exclusion
EXTENDS Integers
CONSTANT N
ASSUME N \in Nat
Procs == 0..N
(********
--fair algorithm 1BitProtocol {
variables flag = [i \in Procs |-> FALSE] ;
process (P \in Procs) {
ncs: while (TRUE) {
skip ;
enter: flag[self] := TRUE ;
e2: if (flag[1-self]) {
e3: flag[self] := FALSE;
goto enter;
};
cs: skip ;
exit: flag[self] := FALSE ;
}
}
}
********)
\* BEGIN TRANSLATION (chksum(pcal) = "7c28162a" /\ chksum(tla) = "b89f1da2")
VARIABLES flag, pc
vars == << flag, pc >>
ProcSet == (Procs)
Init == (* Global variables *)
/\ flag = [i \in Procs |-> FALSE]
/\ pc = [self \in ProcSet |-> "ncs"]
ncs(self) == /\ pc[self] = "ncs"
/\ TRUE
/\ pc' = [pc EXCEPT ![self] = "enter"]
/\ flag' = flag
enter(self) == /\ pc[self] = "enter"
/\ flag' = [flag EXCEPT ![self] = TRUE]
/\ pc' = [pc EXCEPT ![self] = "e2"]
e2(self) == /\ pc[self] = "e2"
/\ IF flag[1-self]
THEN /\ pc' = [pc EXCEPT ![self] = "e3"]
ELSE /\ pc' = [pc EXCEPT ![self] = "cs"]
/\ flag' = flag
e3(self) == /\ pc[self] = "e3"
/\ flag' = [flag EXCEPT ![self] = FALSE]
/\ pc' = [pc EXCEPT ![self] = "enter"]
cs(self) == /\ pc[self] = "cs"
/\ TRUE
/\ pc' = [pc EXCEPT ![self] = "exit"]
/\ flag' = flag
exit(self) == /\ pc[self] = "exit"
/\ flag' = [flag EXCEPT ![self] = FALSE]
/\ pc' = [pc EXCEPT ![self] = "ncs"]
P(self) == ncs(self) \/ enter(self) \/ e2(self) \/ e3(self) \/ cs(self)
\/ exit(self)
Next == (\E self \in Procs: P(self))
Spec == /\ Init /\ [][Next]_vars
/\ WF_vars(Next)
\* END TRANSLATION
--------
\* Invariant which implies MutualExclusion
\*Inv == \A i \in Procs : (pc[i] = "cs") => (flag[i] /\ (~flag[1-i] \/ pc[1-i] = "e2"))
Inv == \A i \in Procs : (pc[i] = "cs") => (flag[i] /\ (~flag[1-i] \/ pc[1-i] \in {"e2","e3"}))
ME == INSTANCE MutualExclusionSpec WITH
pc <- [proc \in Procs |-> CASE pc[proc] = "cs" -> "cs"
[] pc[proc] \in {"enter","e2","e3"} -> "csentry"
[] OTHER -> "non-cs"]
THEOREM Spec => ME!Spec
THEOREM Spec => []ME!MutualExclusion
THEOREM Spec => ME!Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 21:15:31 MSK 2022 by kirr
\* Created Wed Feb 09 20:01:56 MSK 2022 by kirr
\* CONSTANT definitions
CONSTANT
N <- const_1644430535178648000
\* SPECIFICATION definition
SPECIFICATION
Spec
\* INVARIANT definition
INVARIANT
inv_1644430535178649000
Inv
\* PROPERTY definition
PROPERTY
prop_1644430535178651000
\* Generated on Wed Feb 09 21:15:35 MSK 2022
\ No newline at end of file
@!@!@STARTMSG 2262:0 @!@!@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 4 and seed 2000308313193243541 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 78871] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
@!@!@ENDMSG 2220 @!@!@
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MC.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/1Bit.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/TLC.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Integers.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Naturals.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MutualExclusionSpec.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Sequences.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/FiniteSets.tla
Semantic processing of module Naturals
Semantic processing of module Integers
Semantic processing of module MutualExclusionSpec
Semantic processing of module 1Bit
Semantic processing of module Sequences
Semantic processing of module FiniteSets
Semantic processing of module TLC
Semantic processing of module MC
@!@!@STARTMSG 2219:0 @!@!@
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 21:15:35)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 4 branches.
@!@!@ENDMSG 2212 @!@!@
@!@!@STARTMSG 2189:0 @!@!@
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 21:15:36.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(9) at 2022-02-09 21:15:36: 65 states generated, 32 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2192:0 @!@!@
Checking 4 branches of temporal properties for the complete state space with 128 total distinct states at (2022-02-09 21:15:36)
@!@!@ENDMSG 2192 @!@!@
@!@!@STARTMSG 2116:1 @!@!@
Temporal properties were violated.
@!@!@ENDMSG 2116 @!@!@
@!@!@STARTMSG 2264:1 @!@!@
The following behavior constitutes a counter-example:
@!@!@ENDMSG 2264 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
1: <Initial predicate>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "ncs" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
2: <ncs line 38, col 14 to line 41, col 28 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "enter" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
3: <enter line 43, col 16 to line 45, col 50 of module 1Bit>
/\ flag = (0 :> TRUE @@ 1 :> FALSE)
/\ pc = (0 :> "e2" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
4: <ncs line 38, col 14 to line 41, col 28 of module 1Bit>
/\ flag = (0 :> TRUE @@ 1 :> FALSE)
/\ pc = (0 :> "e2" @@ 1 :> "enter")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
5: <enter line 43, col 16 to line 45, col 50 of module 1Bit>
/\ flag = (0 :> TRUE @@ 1 :> TRUE)
/\ pc = (0 :> "e2" @@ 1 :> "e2")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
6: <e2 line 47, col 13 to line 51, col 27 of module 1Bit>
/\ flag = (0 :> TRUE @@ 1 :> TRUE)
/\ pc = (0 :> "e3" @@ 1 :> "e2")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
7: <e3 line 53, col 13 to line 55, col 50 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> TRUE)
/\ pc = (0 :> "enter" @@ 1 :> "e2")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
8: <e2 line 47, col 13 to line 51, col 27 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> TRUE)
/\ pc = (0 :> "enter" @@ 1 :> "cs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
9: <cs line 57, col 13 to line 60, col 27 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> TRUE)
/\ pc = (0 :> "enter" @@ 1 :> "exit")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2122:4 @!@!@
2: Back to state: <exit line 62, col 15 to line 64, col 50 of module 1Bit>
@!@!@ENDMSG 2122 @!@!@
@!@!@STARTMSG 2267:0 @!@!@
Finished checking temporal properties in 00s at 2022-02-09 21:15:36
@!@!@ENDMSG 2267 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 21:15:36
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 34, col 1 to line 34, col 4 of module 1Bit>: 2:2
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
line 35, col 19 to line 35, col 41 of module 1Bit: 2:4
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 35, col 26 to line 35, col 30 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 36, col 12 to line 36, col 44 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 36, col 17 to line 36, col 44 of module 1Bit: 2:4
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 36, col 27 to line 36, col 33 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ncs line 38, col 1 to line 38, col 9 of module 1Bit>: 6:18
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 38, col 17 to line 38, col 32 of module 1Bit: 104
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 38, col 17 to line 38, col 24 of module 1Bit: 86
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 39, col 17 to line 39, col 20 of module 1Bit: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 40, col 17 to line 40, col 51 of module 1Bit: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 41, col 17 to line 41, col 28 of module 1Bit: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<enter line 43, col 1 to line 43, col 11 of module 1Bit>: 7:19
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 43, col 19 to line 43, col 36 of module 1Bit: 103
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 43, col 19 to line 43, col 26 of module 1Bit: 84
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 44, col 19 to line 44, col 54 of module 1Bit: 19
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 45, col 19 to line 45, col 50 of module 1Bit: 19
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e2 line 47, col 1 to line 47, col 8 of module 1Bit>: 9:16
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 47, col 16 to line 47, col 30 of module 1Bit: 98
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 16 to line 47, col 23 of module 1Bit: 82
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 48, col 19 to line 48, col 30 of module 1Bit: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 49, col 24 to line 49, col 58 of module 1Bit: 9
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 50, col 24 to line 50, col 58 of module 1Bit: 7
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 51, col 16 to line 51, col 27 of module 1Bit: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e3 line 53, col 1 to line 53, col 8 of module 1Bit>: 2:13
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 53, col 16 to line 53, col 30 of module 1Bit: 93
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 53, col 16 to line 53, col 23 of module 1Bit: 80
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 54, col 16 to line 54, col 52 of module 1Bit: 13
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 55, col 16 to line 55, col 50 of module 1Bit: 13
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<cs line 57, col 1 to line 57, col 8 of module 1Bit>: 5:11
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 57, col 16 to line 57, col 30 of module 1Bit: 90
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 57, col 16 to line 57, col 23 of module 1Bit: 79
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 58, col 16 to line 58, col 19 of module 1Bit: 11
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 59, col 16 to line 59, col 49 of module 1Bit: 11
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 60, col 16 to line 60, col 27 of module 1Bit: 11
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<exit line 62, col 1 to line 62, col 10 of module 1Bit>: 2:9
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 62, col 18 to line 62, col 34 of module 1Bit: 87
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 62, col 18 to line 62, col 25 of module 1Bit: 78
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 63, col 18 to line 63, col 54 of module 1Bit: 9
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 64, col 18 to line 64, col 50 of module 1Bit: 9
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<inv_1644430535178649000 line 10, col 1 to line 10, col 23 of module MC>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 11, col 1 to line 11, col 18 of module MC: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 84, col 23 to line 86, col 90 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 83, col 1 to line 86, col 90 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<Inv line 80, col 1 to line 80, col 3 of module 1Bit>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 80, col 8 to line 80, col 94 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 80, col 25 to line 80, col 94 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 80, col 26 to line 80, col 37 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 80, col 44 to line 80, col 93 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 80, col 44 to line 80, col 50 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 80, col 56 to line 80, col 92 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 80, col 56 to line 80, col 65 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 80, col 70 to line 80, col 92 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 80, col 17 to line 80, col 21 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(9) at 2022-02-09 21:15:36: 65 states generated (2 733 s/min), 32 distinct states found (1 345 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
65 states generated, 32 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 9.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1442ms at (2022-02-09 21:15:36)
@!@!@ENDMSG 2186 @!@!@
---- MODULE MC ----
EXTENDS 1Bit, TLC
\* CONSTANT definitions @modelParameterConstants:0N
const_1644430535178648000 ==
1
----
\* INVARIANT definition @modelCorrectnessInvariants:0
inv_1644430535178649000 ==
ME!MutualExclusion
----
\* PROPERTY definition @modelCorrectnessProperties:0
prop_1644430535178651000 ==
ME!Liveness
----
=============================================================================
\* Modification History
\* Created Wed Feb 09 21:15:35 MSK 2022 by kirr
@!@!@STARTMSG 2262:0 @!@!@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 4 and seed 2000308313193243541 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 78871] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
@!@!@ENDMSG 2220 @!@!@
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MC.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/1Bit.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/TLC.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Integers.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Naturals.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MutualExclusionSpec.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Sequences.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/FiniteSets.tla
Semantic processing of module Naturals
Semantic processing of module Integers
Semantic processing of module MutualExclusionSpec
Semantic processing of module 1Bit
Semantic processing of module Sequences
Semantic processing of module FiniteSets
Semantic processing of module TLC
Semantic processing of module MC
@!@!@STARTMSG 2219:0 @!@!@
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 21:15:35)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 4 branches.
@!@!@ENDMSG 2212 @!@!@
@!@!@STARTMSG 2189:0 @!@!@
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 21:15:36.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(9) at 2022-02-09 21:15:36: 65 states generated, 32 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2192:0 @!@!@
Checking 4 branches of temporal properties for the complete state space with 128 total distinct states at (2022-02-09 21:15:36)
@!@!@ENDMSG 2192 @!@!@
@!@!@STARTMSG 2116:1 @!@!@
Temporal properties were violated.
@!@!@ENDMSG 2116 @!@!@
@!@!@STARTMSG 2264:1 @!@!@
The following behavior constitutes a counter-example:
@!@!@ENDMSG 2264 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
1: <Initial predicate>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "ncs" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
2: <ncs line 38, col 14 to line 41, col 28 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "enter" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
3: <enter line 43, col 16 to line 45, col 50 of module 1Bit>
/\ flag = (0 :> TRUE @@ 1 :> FALSE)
/\ pc = (0 :> "e2" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
4: <ncs line 38, col 14 to line 41, col 28 of module 1Bit>
/\ flag = (0 :> TRUE @@ 1 :> FALSE)
/\ pc = (0 :> "e2" @@ 1 :> "enter")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
5: <enter line 43, col 16 to line 45, col 50 of module 1Bit>
/\ flag = (0 :> TRUE @@ 1 :> TRUE)
/\ pc = (0 :> "e2" @@ 1 :> "e2")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
6: <e2 line 47, col 13 to line 51, col 27 of module 1Bit>
/\ flag = (0 :> TRUE @@ 1 :> TRUE)
/\ pc = (0 :> "e3" @@ 1 :> "e2")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
7: <e3 line 53, col 13 to line 55, col 50 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> TRUE)
/\ pc = (0 :> "enter" @@ 1 :> "e2")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
8: <e2 line 47, col 13 to line 51, col 27 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> TRUE)
/\ pc = (0 :> "enter" @@ 1 :> "cs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
9: <cs line 57, col 13 to line 60, col 27 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> TRUE)
/\ pc = (0 :> "enter" @@ 1 :> "exit")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2122:4 @!@!@
2: Back to state: <exit line 62, col 15 to line 64, col 50 of module 1Bit>
@!@!@ENDMSG 2122 @!@!@
@!@!@STARTMSG 2267:0 @!@!@
Finished checking temporal properties in 00s at 2022-02-09 21:15:36
@!@!@ENDMSG 2267 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 21:15:36
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 34, col 1 to line 34, col 4 of module 1Bit>: 2:2
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
line 35, col 19 to line 35, col 41 of module 1Bit: 2:4
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 35, col 26 to line 35, col 30 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 36, col 12 to line 36, col 44 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 36, col 17 to line 36, col 44 of module 1Bit: 2:4
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 36, col 27 to line 36, col 33 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ncs line 38, col 1 to line 38, col 9 of module 1Bit>: 6:18
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 38, col 17 to line 38, col 32 of module 1Bit: 104
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 38, col 17 to line 38, col 24 of module 1Bit: 86
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 39, col 17 to line 39, col 20 of module 1Bit: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 40, col 17 to line 40, col 51 of module 1Bit: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 41, col 17 to line 41, col 28 of module 1Bit: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<enter line 43, col 1 to line 43, col 11 of module 1Bit>: 7:19
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 43, col 19 to line 43, col 36 of module 1Bit: 103
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 43, col 19 to line 43, col 26 of module 1Bit: 84
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 44, col 19 to line 44, col 54 of module 1Bit: 19
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 45, col 19 to line 45, col 50 of module 1Bit: 19
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e2 line 47, col 1 to line 47, col 8 of module 1Bit>: 9:16
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 47, col 16 to line 47, col 30 of module 1Bit: 98
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 16 to line 47, col 23 of module 1Bit: 82
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 48, col 19 to line 48, col 30 of module 1Bit: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 49, col 24 to line 49, col 58 of module 1Bit: 9
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 50, col 24 to line 50, col 58 of module 1Bit: 7
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 51, col 16 to line 51, col 27 of module 1Bit: 16
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e3 line 53, col 1 to line 53, col 8 of module 1Bit>: 2:13
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 53, col 16 to line 53, col 30 of module 1Bit: 93
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 53, col 16 to line 53, col 23 of module 1Bit: 80
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 54, col 16 to line 54, col 52 of module 1Bit: 13
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 55, col 16 to line 55, col 50 of module 1Bit: 13
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<cs line 57, col 1 to line 57, col 8 of module 1Bit>: 5:11
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 57, col 16 to line 57, col 30 of module 1Bit: 90
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 57, col 16 to line 57, col 23 of module 1Bit: 79
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 58, col 16 to line 58, col 19 of module 1Bit: 11
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 59, col 16 to line 59, col 49 of module 1Bit: 11
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 60, col 16 to line 60, col 27 of module 1Bit: 11
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<exit line 62, col 1 to line 62, col 10 of module 1Bit>: 2:9
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 62, col 18 to line 62, col 34 of module 1Bit: 87
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 62, col 18 to line 62, col 25 of module 1Bit: 78
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 63, col 18 to line 63, col 54 of module 1Bit: 9
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 64, col 18 to line 64, col 50 of module 1Bit: 9
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<inv_1644430535178649000 line 10, col 1 to line 10, col 23 of module MC>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 11, col 1 to line 11, col 18 of module MC: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 84, col 23 to line 86, col 90 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 83, col 1 to line 86, col 90 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<Inv line 80, col 1 to line 80, col 3 of module 1Bit>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 80, col 8 to line 80, col 94 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 80, col 25 to line 80, col 94 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 80, col 26 to line 80, col 37 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 80, col 44 to line 80, col 93 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 80, col 44 to line 80, col 50 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 80, col 56 to line 80, col 92 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 80, col 56 to line 80, col 65 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 80, col 70 to line 80, col 92 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 80, col 17 to line 80, col 21 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(9) at 2022-02-09 21:15:36: 65 states generated (2 733 s/min), 32 distinct states found (1 345 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
65 states generated, 32 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 9.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1442ms at (2022-02-09 21:15:36)
@!@!@ENDMSG 2186 @!@!@
strict digraph DiskGraph {
edge [colorscheme="paired12"]
nodesep=0.35;
subgraph cluster_graph {
color="white";
-1457499892520553625 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")",style = filled]
-1457499892520553625 -> -1691556781350233989 [label="",color="2",fontcolor="2"];
-1691556781350233989 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")"];
-1457499892520553625 -> 5082504470648985495 [label="",color="2",fontcolor="2"];
5082504470648985495 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")"];
-1691556781350233989 -> -5600932010499000304 [label="",color="3",fontcolor="3"];
-5600932010499000304 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")"];
-1457499892520553625 -> -1457499892520553625 [style="dashed"];
-1691556781350233989 -> 6292824480006330437 [label="",color="2",fontcolor="2"];
6292824480006330437 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")"];
-1691556781350233989 -> -1691556781350233989 [style="dashed"];
5082504470648985495 -> 6292824480006330437 [label="",color="2",fontcolor="2"];
5082504470648985495 -> 3142652060462247600 [label="",color="3",fontcolor="3"];
3142652060462247600 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")"];
5082504470648985495 -> 5082504470648985495 [style="dashed"];
-5600932010499000304 -> -9142703953764988286 [label="",color="4",fontcolor="4"];
-9142703953764988286 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")"];
-5600932010499000304 -> 1372687362790198362 [label="",color="2",fontcolor="2"];
1372687362790198362 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")"];
-5600932010499000304 -> -5600932010499000304 [style="dashed"];
6292824480006330437 -> 1372687362790198362 [label="",color="3",fontcolor="3"];
6292824480006330437 -> -1620618063634592881 [label="",color="3",fontcolor="3"];
-1620618063634592881 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")"];
6292824480006330437 -> 6292824480006330437 [style="dashed"];
3142652060462247600 -> -1620618063634592881 [label="",color="2",fontcolor="2"];
3142652060462247600 -> -3232491973645675371 [label="",color="4",fontcolor="4"];
-3232491973645675371 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")"];
3142652060462247600 -> 3142652060462247600 [style="dashed"];
-9142703953764988286 -> -4266311570467837491 [label="",color="5",fontcolor="5"];
-4266311570467837491 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")"];
-9142703953764988286 -> -638357031575933554 [label="",color="2",fontcolor="2"];
-638357031575933554 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")"];
-9142703953764988286 -> -9142703953764988286 [style="dashed"];
1372687362790198362 -> -638357031575933554 [label="",color="4",fontcolor="4"];
1372687362790198362 -> 1872184807609968622 [label="",color="3",fontcolor="3"];
1872184807609968622 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e2\")"];
1372687362790198362 -> 1372687362790198362 [style="dashed"];
-1620618063634592881 -> 1872184807609968622 [label="",color="3",fontcolor="3"];
-1620618063634592881 -> 1242281829922681258 [label="",color="4",fontcolor="4"];
1242281829922681258 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")"];
-1620618063634592881 -> -1620618063634592881 [style="dashed"];
-3232491973645675371 -> 1242281829922681258 [label="",color="2",fontcolor="2"];
-3232491973645675371 -> -4994663408750924400 [label="",color="5",fontcolor="5"];
-4994663408750924400 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")"];
-3232491973645675371 -> -3232491973645675371 [style="dashed"];
-4266311570467837491 -> -1457499892520553625 [label="",color="6",fontcolor="6"];
-4266311570467837491 -> 3303560244708086570 [label="",color="2",fontcolor="2"];
3303560244708086570 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")"];
-4266311570467837491 -> -4266311570467837491 [style="dashed"];
-638357031575933554 -> 3303560244708086570 [label="",color="5",fontcolor="5"];
-638357031575933554 -> 7744605423676533749 [label="",color="3",fontcolor="3"];
7744605423676533749 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")"];
-638357031575933554 -> -638357031575933554 [style="dashed"];
1872184807609968622 -> 201366421118272624 [label="",color="4",fontcolor="4"];
201366421118272624 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")"];
1872184807609968622 -> -2063910807674570354 [label="",color="4",fontcolor="4"];
-2063910807674570354 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")"];
1872184807609968622 -> 1872184807609968622 [style="dashed"];
1242281829922681258 -> -2214567176449974837 [label="",color="3",fontcolor="3"];
-2214567176449974837 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")"];
1242281829922681258 -> 87614053918538516 [label="",color="5",fontcolor="5"];
87614053918538516 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")"];
1242281829922681258 -> 1242281829922681258 [style="dashed"];
-4994663408750924400 -> 87614053918538516 [label="",color="2",fontcolor="2"];
-4994663408750924400 -> -1457499892520553625 [label="",color="6",fontcolor="6"];
-4994663408750924400 -> -4994663408750924400 [style="dashed"];
3303560244708086570 -> 5082504470648985495 [label="",color="6",fontcolor="6"];
3303560244708086570 -> 8104378092414938380 [label="",color="3",fontcolor="3"];
8104378092414938380 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")"];
3303560244708086570 -> 3303560244708086570 [style="dashed"];
7744605423676533749 -> 8104378092414938380 [label="",color="5",fontcolor="5"];
7744605423676533749 -> -7936873345524189803 [label="",color="4",fontcolor="4"];
-7936873345524189803 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")"];
7744605423676533749 -> 7744605423676533749 [style="dashed"];
201366421118272624 -> -1620618063634592881 [label="",color="7",fontcolor="7"];
201366421118272624 -> -546141072515114480 [label="",color="4",fontcolor="4"];
-546141072515114480 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")"];
201366421118272624 -> 201366421118272624 [style="dashed"];
-2063910807674570354 -> -546141072515114480 [label="",color="4",fontcolor="4"];
-2063910807674570354 -> 1372687362790198362 [label="",color="7",fontcolor="7"];
-2063910807674570354 -> -2063910807674570354 [style="dashed"];
-2214567176449974837 -> -399565298480546219 [label="",color="4",fontcolor="4"];
-399565298480546219 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")"];
-2214567176449974837 -> -2509631684428290056 [label="",color="5",fontcolor="5"];
-2509631684428290056 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")"];
-2214567176449974837 -> -2214567176449974837 [style="dashed"];
87614053918538516 -> -2509631684428290056 [label="",color="3",fontcolor="3"];
87614053918538516 -> -1691556781350233989 [label="",color="6",fontcolor="6"];
87614053918538516 -> 87614053918538516 [style="dashed"];
8104378092414938380 -> 3142652060462247600 [label="",color="6",fontcolor="6"];
8104378092414938380 -> -8441897685042613396 [label="",color="4",fontcolor="4"];
-8441897685042613396 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")"];
8104378092414938380 -> 8104378092414938380 [style="dashed"];
-7936873345524189803 -> -8441897685042613396 [label="",color="5",fontcolor="5"];
-7936873345524189803 -> -638357031575933554 [label="",color="7",fontcolor="7"];
-7936873345524189803 -> -7936873345524189803 [style="dashed"];
-546141072515114480 -> 1378869301027837423 [label="",color="7",fontcolor="7"];
1378869301027837423 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")"];
-546141072515114480 -> 4105155781820333391 [label="",color="7",fontcolor="7"];
4105155781820333391 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")"];
-546141072515114480 -> -546141072515114480 [style="dashed"];
-399565298480546219 -> 1242281829922681258 [label="",color="7",fontcolor="7"];
-399565298480546219 -> -2358786443862457741 [label="",color="5",fontcolor="5"];
-2358786443862457741 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")"];
-399565298480546219 -> -399565298480546219 [style="dashed"];
-2509631684428290056 -> -2358786443862457741 [label="",color="4",fontcolor="4"];
-2509631684428290056 -> -5600932010499000304 [label="",color="6",fontcolor="6"];
-2509631684428290056 -> -2509631684428290056 [style="dashed"];
-8441897685042613396 -> -3369779654879711024 [label="",color="6",fontcolor="6"];
-3369779654879711024 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")"];
-8441897685042613396 -> 3303560244708086570 [label="",color="7",fontcolor="7"];
-8441897685042613396 -> -8441897685042613396 [style="dashed"];
1378869301027837423 -> -2063910807674570354 [label="",color="3",fontcolor="3"];
1378869301027837423 -> 6292824480006330437 [label="",color="7",fontcolor="7"];
1378869301027837423 -> 1378869301027837423 [style="dashed"];
4105155781820333391 -> 6292824480006330437 [label="",color="7",fontcolor="7"];
4105155781820333391 -> 201366421118272624 [label="",color="3",fontcolor="3"];
4105155781820333391 -> 4105155781820333391 [style="dashed"];
-2358786443862457741 -> 87614053918538516 [label="",color="7",fontcolor="7"];
-2358786443862457741 -> 5503255533271085099 [label="",color="6",fontcolor="6"];
5503255533271085099 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"ncs\")"];
-2358786443862457741 -> -2358786443862457741 [style="dashed"];
-3369779654879711024 -> 1378869301027837423 [label="",color="2",fontcolor="2"];
-3369779654879711024 -> 5082504470648985495 [label="",color="7",fontcolor="7"];
-3369779654879711024 -> -3369779654879711024 [style="dashed"];
5503255533271085099 -> -1691556781350233989 [label="",color="7",fontcolor="7"];
5503255533271085099 -> 4105155781820333391 [label="",color="2",fontcolor="2"];
5503255533271085099 -> 5503255533271085099 [style="dashed"];
{rank = same; -1457499892520553625;}
{rank = same; 5082504470648985495;-1691556781350233989;}
{rank = same; -5600932010499000304;3142652060462247600;6292824480006330437;}
{rank = same; -1620618063634592881;1372687362790198362;-3232491973645675371;-9142703953764988286;}
{rank = same; 1872184807609968622;-638357031575933554;-4994663408750924400;-4266311570467837491;1242281829922681258;}
{rank = same; 87614053918538516;3303560244708086570;201366421118272624;-2214567176449974837;7744605423676533749;-2063910807674570354;}
{rank = same; -546141072515114480;8104378092414938380;-7936873345524189803;-2509631684428290056;-399565298480546219;}
{rank = same; 4105155781820333391;-2358786443862457741;-8441897685042613396;1378869301027837423;}
{rank = same; -3369779654879711024;5503255533271085099;}
}
subgraph cluster_legend {graph[style=bold];label = "Next State Actions" style="solid"
node [ labeljust="l",colorscheme="paired12",style=filled,shape=record ]
cs [label="cs",fillcolor=5]
exit [label="exit",fillcolor=6]
enter [label="enter",fillcolor=3]
e2 [label="e2",fillcolor=4]
e3 [label="e3",fillcolor=7]
ncs [label="ncs",fillcolor=2]
}}
\ No newline at end of file
digraph DiskGraph {
nodesep=0.35;
subgraph cluster_graph {
color="white";
"-1457499892520553625.1" [style = filled] [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")
#-1457499892520553625.1#"]
"-1457499892520553625.1" -> "5082504470648985495.1" [label="[t]"];
"5082504470648985495.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#5082504470648985495.1#"];
"-1457499892520553625.1" -> "-1457499892520553625.1" [label="[f]"];
"-1457499892520553625.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")
#-1457499892520553625.1#"];
"-1457499892520553625.1" -> "-1691556781350233989.1" [label="[t]"];
"-1691556781350233989.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")
#-1691556781350233989.1#"];
"-1691556781350233989.1" -> "-5600932010499000304.1" [label="[t]"];
"-5600932010499000304.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")
#-5600932010499000304.1#"];
"-1691556781350233989.1" -> "6292824480006330437.1" [label="[t]"];
"6292824480006330437.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#6292824480006330437.1#"];
"-1691556781350233989.1" -> "-1691556781350233989.1" [label="[f]"];
"-1691556781350233989.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")
#-1691556781350233989.1#"];
"5082504470648985495.1" -> "3142652060462247600.1" [label="[t]"];
"3142652060462247600.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")
#3142652060462247600.1#"];
"5082504470648985495.1" -> "6292824480006330437.1" [label="[t]"];
"6292824480006330437.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#6292824480006330437.1#"];
"5082504470648985495.1" -> "5082504470648985495.1" [label="[f]"];
"5082504470648985495.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#5082504470648985495.1#"];
"-5600932010499000304.1" -> "-5600932010499000304.1" [label="[f]"];
"-5600932010499000304.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")
#-5600932010499000304.1#"];
"-5600932010499000304.1" -> "-9142703953764988286.1" [label="[t]"];
"-9142703953764988286.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")
#-9142703953764988286.1#"];
"-5600932010499000304.1" -> "1372687362790198362.1" [label="[t]"];
"1372687362790198362.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#1372687362790198362.1#"];
"6292824480006330437.1" -> "6292824480006330437.1" [label="[f]"];
"6292824480006330437.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#6292824480006330437.1#"];
"6292824480006330437.1" -> "1372687362790198362.1" [label="[t]"];
"1372687362790198362.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#1372687362790198362.1#"];
"6292824480006330437.1" -> "-1620618063634592881.1" [label="[t]"];
"-1620618063634592881.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#-1620618063634592881.1#"];
"3142652060462247600.1" -> "3142652060462247600.1" [label="[f]"];
"3142652060462247600.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")
#3142652060462247600.1#"];
"3142652060462247600.1" -> "-3232491973645675371.0" [label="[t]"];
"-3232491973645675371.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")
#-3232491973645675371.0#"];
"3142652060462247600.1" -> "-3232491973645675371.1" [label="[t]"];
"-3232491973645675371.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")
#-3232491973645675371.1#"];
"3142652060462247600.1" -> "-1620618063634592881.1" [label="[t]"];
"-1620618063634592881.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#-1620618063634592881.1#"];
"-9142703953764988286.1" -> "-9142703953764988286.1" [label="[f]"];
"-9142703953764988286.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")
#-9142703953764988286.1#"];
"-9142703953764988286.1" -> "-4266311570467837491.1" [label="[t]"];
"-4266311570467837491.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")
#-4266311570467837491.1#"];
"-9142703953764988286.1" -> "-638357031575933554.1" [label="[t]"];
"-638357031575933554.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#-638357031575933554.1#"];
"1372687362790198362.1" -> "1372687362790198362.1" [label="[f]"];
"1372687362790198362.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#1372687362790198362.1#"];
"1372687362790198362.1" -> "-638357031575933554.1" [label="[t]"];
"-638357031575933554.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#-638357031575933554.1#"];
"1372687362790198362.1" -> "1872184807609968622.1" [label="[t]"];
"1872184807609968622.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e2\")
#1872184807609968622.1#"];
"-1620618063634592881.1" -> "1242281829922681258.0" [label="[t]"];
"1242281829922681258.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#1242281829922681258.0#"];
"-1620618063634592881.1" -> "1242281829922681258.1" [label="[t]"];
"1242281829922681258.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#1242281829922681258.1#"];
"-1620618063634592881.1" -> "1872184807609968622.1" [label="[t]"];
"1872184807609968622.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e2\")
#1872184807609968622.1#"];
"-1620618063634592881.1" -> "-1620618063634592881.1" [label="[f]"];
"-1620618063634592881.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#-1620618063634592881.1#"];
"-3232491973645675371.0" -> "-3232491973645675371.2" [label="[f]"];
"-3232491973645675371.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")
#-3232491973645675371.2#"];
"-3232491973645675371.2" -> "1242281829922681258.2" [style="dotted"] [label="[t]"];
"-3232491973645675371.0" -> "1242281829922681258.2" [label="[t]"];
"1242281829922681258.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#1242281829922681258.2#"];
"-3232491973645675371.1" -> "-4994663408750924400.1" [label="[t]"];
"-4994663408750924400.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")
#-4994663408750924400.1#"];
"-3232491973645675371.1" -> "-3232491973645675371.0" [label="[f]"];
"-3232491973645675371.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")
#-3232491973645675371.0#"];
"-3232491973645675371.1" -> "-3232491973645675371.1" [label="[f]"];
"-3232491973645675371.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")
#-3232491973645675371.1#"];
"-3232491973645675371.1" -> "1242281829922681258.0" [label="[t]"];
"1242281829922681258.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#1242281829922681258.0#"];
"-3232491973645675371.1" -> "1242281829922681258.1" [label="[t]"];
"1242281829922681258.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#1242281829922681258.1#"];
"-4266311570467837491.1" -> "-1457499892520553625.1" [label="[t]"];
"-1457499892520553625.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")
#-1457499892520553625.1#"];
"-4266311570467837491.1" -> "3303560244708086570.1" [label="[t]"];
"3303560244708086570.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#3303560244708086570.1#"];
"-4266311570467837491.1" -> "-4266311570467837491.1" [label="[f]"];
"-4266311570467837491.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")
#-4266311570467837491.1#"];
"-638357031575933554.1" -> "7744605423676533749.1" [label="[t]"];
"7744605423676533749.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")
#7744605423676533749.1#"];
"-638357031575933554.1" -> "3303560244708086570.1" [label="[t]"];
"3303560244708086570.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#3303560244708086570.1#"];
"-638357031575933554.1" -> "-638357031575933554.1" [label="[f]"];
"-638357031575933554.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#-638357031575933554.1#"];
"1872184807609968622.1" -> "201366421118272624.1" [label="[t]"];
"201366421118272624.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#201366421118272624.1#"];
"1872184807609968622.1" -> "-2063910807674570354.1" [label="[t]"];
"-2063910807674570354.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-2063910807674570354.1#"];
"1872184807609968622.1" -> "1872184807609968622.1" [label="[f]"];
"1872184807609968622.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e2\")
#1872184807609968622.1#"];
"1242281829922681258.0" -> "1242281829922681258.2" [label="[f]"];
"1242281829922681258.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#1242281829922681258.2#"];
"1242281829922681258.0" -> "-2214567176449974837.2" [label="[t]"];
"-2214567176449974837.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#-2214567176449974837.2#"];
"1242281829922681258.1" -> "87614053918538516.1" [label="[t]"];
"87614053918538516.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")
#87614053918538516.1#"];
"1242281829922681258.1" -> "1242281829922681258.0" [label="[f]"];
"1242281829922681258.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#1242281829922681258.0#"];
"1242281829922681258.1" -> "1242281829922681258.1" [label="[f]"];
"1242281829922681258.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#1242281829922681258.1#"];
"1242281829922681258.1" -> "-2214567176449974837.0" [label="[t]"];
"-2214567176449974837.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#-2214567176449974837.0#"];
"1242281829922681258.1" -> "-2214567176449974837.1" [label="[t]"];
"-2214567176449974837.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#-2214567176449974837.1#"];
"1242281829922681258.2" -> "1242281829922681258.2" [label="[f]"];
"1242281829922681258.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#1242281829922681258.2#"];
"1242281829922681258.2" -> "-2214567176449974837.2" [label="[t]"];
"-2214567176449974837.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#-2214567176449974837.2#"];
"-4994663408750924400.1" -> "-4994663408750924400.1" [label="[f]"];
"-4994663408750924400.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")
#-4994663408750924400.1#"];
"-4994663408750924400.1" -> "87614053918538516.1" [label="[t]"];
"87614053918538516.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")
#87614053918538516.1#"];
"-4994663408750924400.1" -> "-1457499892520553625.1" [label="[t]"];
"-1457499892520553625.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")
#-1457499892520553625.1#"];
"3303560244708086570.1" -> "5082504470648985495.1" [label="[t]"];
"5082504470648985495.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#5082504470648985495.1#"];
"3303560244708086570.1" -> "3303560244708086570.1" [label="[f]"];
"3303560244708086570.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#3303560244708086570.1#"];
"3303560244708086570.1" -> "8104378092414938380.1" [label="[t]"];
"8104378092414938380.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#8104378092414938380.1#"];
"7744605423676533749.1" -> "-7936873345524189803.1" [label="[t]"];
"-7936873345524189803.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-7936873345524189803.1#"];
"7744605423676533749.1" -> "7744605423676533749.1" [label="[f]"];
"7744605423676533749.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")
#7744605423676533749.1#"];
"7744605423676533749.1" -> "8104378092414938380.1" [label="[t]"];
"8104378092414938380.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#8104378092414938380.1#"];
"201366421118272624.1" -> "-546141072515114480.1" [label="[t]"];
"-546141072515114480.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-546141072515114480.1#"];
"201366421118272624.1" -> "201366421118272624.1" [label="[f]"];
"201366421118272624.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#201366421118272624.1#"];
"201366421118272624.1" -> "-1620618063634592881.1" [label="[t]"];
"-1620618063634592881.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#-1620618063634592881.1#"];
"-2063910807674570354.1" -> "-546141072515114480.1" [label="[t]"];
"-546141072515114480.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-546141072515114480.1#"];
"-2063910807674570354.1" -> "1372687362790198362.1" [label="[t]"];
"1372687362790198362.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#1372687362790198362.1#"];
"-2063910807674570354.1" -> "-2063910807674570354.1" [label="[f]"];
"-2063910807674570354.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-2063910807674570354.1#"];
"-2214567176449974837.2" -> "-399565298480546219.2" [label="[t]"];
"-399565298480546219.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#-399565298480546219.2#"];
"-2214567176449974837.2" -> "-2214567176449974837.2" [label="[f]"];
"-2214567176449974837.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#-2214567176449974837.2#"];
"-2214567176449974837.0" -> "-399565298480546219.2" [label="[t]"];
"-399565298480546219.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#-399565298480546219.2#"];
"-2214567176449974837.0" -> "-2214567176449974837.2" [label="[f]"];
"-2214567176449974837.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#-2214567176449974837.2#"];
"-2214567176449974837.1" -> "-399565298480546219.0" [label="[t]"];
"-399565298480546219.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#-399565298480546219.0#"];
"-2214567176449974837.1" -> "-399565298480546219.1" [label="[t]"];
"-399565298480546219.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#-399565298480546219.1#"];
"-2214567176449974837.1" -> "-2509631684428290056.1" [label="[t]"];
"-2509631684428290056.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")
#-2509631684428290056.1#"];
"-2214567176449974837.1" -> "-2214567176449974837.0" [label="[f]"];
"-2214567176449974837.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#-2214567176449974837.0#"];
"-2214567176449974837.1" -> "-2214567176449974837.1" [label="[f]"];
"-2214567176449974837.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#-2214567176449974837.1#"];
"87614053918538516.1" -> "87614053918538516.1" [label="[f]"];
"87614053918538516.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")
#87614053918538516.1#"];
"87614053918538516.1" -> "-2509631684428290056.1" [label="[t]"];
"-2509631684428290056.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")
#-2509631684428290056.1#"];
"87614053918538516.1" -> "-1691556781350233989.1" [label="[t]"];
"-1691556781350233989.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")
#-1691556781350233989.1#"];
"8104378092414938380.1" -> "3142652060462247600.1" [label="[t]"];
"3142652060462247600.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")
#3142652060462247600.1#"];
"8104378092414938380.1" -> "-8441897685042613396.1" [label="[t]"];
"-8441897685042613396.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#-8441897685042613396.1#"];
"8104378092414938380.1" -> "8104378092414938380.1" [label="[f]"];
"8104378092414938380.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#8104378092414938380.1#"];
"-7936873345524189803.1" -> "-7936873345524189803.1" [label="[f]"];
"-7936873345524189803.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-7936873345524189803.1#"];
"-7936873345524189803.1" -> "-8441897685042613396.1" [label="[t]"];
"-8441897685042613396.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#-8441897685042613396.1#"];
"-7936873345524189803.1" -> "-638357031575933554.1" [label="[t]"];
"-638357031575933554.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#-638357031575933554.1#"];
"-546141072515114480.1" -> "4105155781820333391.1" [label="[t]"];
"4105155781820333391.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#4105155781820333391.1#"];
"-546141072515114480.1" -> "-546141072515114480.1" [label="[f]"];
"-546141072515114480.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-546141072515114480.1#"];
"-546141072515114480.1" -> "1378869301027837423.1" [label="[t]"];
"1378869301027837423.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#1378869301027837423.1#"];
"-399565298480546219.2" -> "-399565298480546219.2" [label="[f]"];
"-399565298480546219.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#-399565298480546219.2#"];
"-399565298480546219.2" -> "1242281829922681258.2" [label="[t]"];
"1242281829922681258.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#1242281829922681258.2#"];
"-399565298480546219.0" -> "-399565298480546219.2" [label="[f]"];
"-399565298480546219.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#-399565298480546219.2#"];
"-399565298480546219.0" -> "1242281829922681258.2" [label="[t]"];
"1242281829922681258.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#1242281829922681258.2#"];
"-399565298480546219.1" -> "-2358786443862457741.1" [label="[t]"];
"-2358786443862457741.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")
#-2358786443862457741.1#"];
"-399565298480546219.1" -> "-399565298480546219.0" [label="[f]"];
"-399565298480546219.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#-399565298480546219.0#"];
"-399565298480546219.1" -> "-399565298480546219.1" [label="[f]"];
"-399565298480546219.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#-399565298480546219.1#"];
"-399565298480546219.1" -> "1242281829922681258.0" [label="[t]"];
"1242281829922681258.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#1242281829922681258.0#"];
"-399565298480546219.1" -> "1242281829922681258.1" [label="[t]"];
"1242281829922681258.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#1242281829922681258.1#"];
"-2509631684428290056.1" -> "-5600932010499000304.1" [label="[t]"];
"-5600932010499000304.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")
#-5600932010499000304.1#"];
"-2509631684428290056.1" -> "-2358786443862457741.1" [label="[t]"];
"-2358786443862457741.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")
#-2358786443862457741.1#"];
"-2509631684428290056.1" -> "-2509631684428290056.1" [label="[f]"];
"-2509631684428290056.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")
#-2509631684428290056.1#"];
"-8441897685042613396.1" -> "-3369779654879711024.1" [label="[t]"];
"-3369779654879711024.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#-3369779654879711024.1#"];
"-8441897685042613396.1" -> "3303560244708086570.1" [label="[t]"];
"3303560244708086570.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#3303560244708086570.1#"];
"-8441897685042613396.1" -> "-8441897685042613396.1" [label="[f]"];
"-8441897685042613396.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#-8441897685042613396.1#"];
"1378869301027837423.1" -> "6292824480006330437.1" [label="[t]"];
"6292824480006330437.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#6292824480006330437.1#"];
"1378869301027837423.1" -> "-2063910807674570354.1" [label="[t]"];
"-2063910807674570354.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-2063910807674570354.1#"];
"1378869301027837423.1" -> "1378869301027837423.1" [label="[f]"];
"1378869301027837423.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#1378869301027837423.1#"];
"4105155781820333391.1" -> "201366421118272624.1" [label="[t]"];
"201366421118272624.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#201366421118272624.1#"];
"4105155781820333391.1" -> "6292824480006330437.1" [label="[t]"];
"6292824480006330437.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#6292824480006330437.1#"];
"4105155781820333391.1" -> "4105155781820333391.1" [label="[f]"];
"4105155781820333391.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#4105155781820333391.1#"];
"-2358786443862457741.1" -> "-2358786443862457741.1" [label="[f]"];
"-2358786443862457741.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")
#-2358786443862457741.1#"];
"-2358786443862457741.1" -> "87614053918538516.1" [label="[t]"];
"87614053918538516.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")
#87614053918538516.1#"];
"-2358786443862457741.1" -> "5503255533271085099.1" [label="[t]"];
"5503255533271085099.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"ncs\")
#5503255533271085099.1#"];
"-3369779654879711024.1" -> "-3369779654879711024.1" [label="[f]"];
"-3369779654879711024.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#-3369779654879711024.1#"];
"-3369779654879711024.1" -> "5082504470648985495.1" [label="[t]"];
"5082504470648985495.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#5082504470648985495.1#"];
"-3369779654879711024.1" -> "1378869301027837423.1" [label="[t]"];
"1378869301027837423.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#1378869301027837423.1#"];
"5503255533271085099.1" -> "-1691556781350233989.1" [label="[t]"];
"-1691556781350233989.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")
#-1691556781350233989.1#"];
"5503255533271085099.1" -> "5503255533271085099.1" [label="[f]"];
"5503255533271085099.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"ncs\")
#5503255533271085099.1#"];
"5503255533271085099.1" -> "4105155781820333391.1" [label="[t]"];
"4105155781820333391.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#4105155781820333391.1#"];
}
}flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-7936873345524189803.2#"];
"7744605423676533749.0" -> "7744605423676533749.2" [label="[f]"];
"7744605423676533749.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")
#7744605423676533749.2#"];
"7744605423676533749.0" -> "8104378092414938380.2" [label="[t]"];
"8104378092414938380.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#8104378092414938380.2#"];
"7744605423676533749.1" -> "-7936873345524189803.0" [label="[t]"];
"-7936873345524189803.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-7936873345524189803.0#"];
"7744605423676533749.1" -> "-7936873345524189803.1" [label="[t]"];
"-7936873345524189803.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-7936873345524189803.1#"];
"7744605423676533749.1" -> "7744605423676533749.0" [label="[f]"];
"7744605423676533749.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")
#7744605423676533749.0#"];
"7744605423676533749.1" -> "7744605423676533749.1" [label="[f]"];
"7744605423676533749.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")
#7744605423676533749.1#"];
"7744605423676533749.1" -> "8104378092414938380.0" [label="[t]"];
"8104378092414938380.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#8104378092414938380.0#"];
"7744605423676533749.1" -> "8104378092414938380.1" [label="[t]"];
"8104378092414938380.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#8104378092414938380.1#"];
"201366421118272624.2" -> "-546141072515114480.2" [label="[t]"];
"-546141072515114480.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-546141072515114480.2#"];
"201366421118272624.2" -> "201366421118272624.2" [label="[f]"];
"201366421118272624.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#201366421118272624.2#"];
"201366421118272624.2" -> "-1620618063634592881.2" [label="[t]"];
"-1620618063634592881.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#-1620618063634592881.2#"];
"201366421118272624.0" -> "-546141072515114480.2" [label="[t]"];
"-546141072515114480.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-546141072515114480.2#"];
"201366421118272624.0" -> "201366421118272624.2" [label="[f]"];
"201366421118272624.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#201366421118272624.2#"];
"201366421118272624.0" -> "-1620618063634592881.2" [label="[t]"];
"-1620618063634592881.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#-1620618063634592881.2#"];
"201366421118272624.1" -> "-546141072515114480.0" [label="[t]"];
"-546141072515114480.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-546141072515114480.0#"];
"201366421118272624.1" -> "-546141072515114480.1" [label="[t]"];
"-546141072515114480.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-546141072515114480.1#"];
"201366421118272624.1" -> "201366421118272624.0" [label="[f]"];
"201366421118272624.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#201366421118272624.0#"];
"201366421118272624.1" -> "201366421118272624.1" [label="[f]"];
"201366421118272624.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#201366421118272624.1#"];
"201366421118272624.1" -> "-1620618063634592881.0" [label="[t]"];
"-1620618063634592881.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#-1620618063634592881.0#"];
"201366421118272624.1" -> "-1620618063634592881.1" [label="[t]"];
"-1620618063634592881.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#-1620618063634592881.1#"];
"-2063910807674570354.2" -> "-546141072515114480.2" [label="[t]"];
"-546141072515114480.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-546141072515114480.2#"];
"-2063910807674570354.2" -> "1372687362790198362.2" [label="[t]"];
"1372687362790198362.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#1372687362790198362.2#"];
"-2063910807674570354.2" -> "-2063910807674570354.2" [label="[f]"];
"-2063910807674570354.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-2063910807674570354.2#"];
"-2063910807674570354.0" -> "-546141072515114480.2" [label="[t]"];
"-546141072515114480.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-546141072515114480.2#"];
"-2063910807674570354.0" -> "1372687362790198362.2" [label="[t]"];
"1372687362790198362.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#1372687362790198362.2#"];
"-2063910807674570354.0" -> "-2063910807674570354.2" [label="[f]"];
"-2063910807674570354.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-2063910807674570354.2#"];
"-2063910807674570354.1" -> "-546141072515114480.0" [label="[t]"];
"-546141072515114480.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-546141072515114480.0#"];
"-2063910807674570354.1" -> "-546141072515114480.1" [label="[t]"];
"-546141072515114480.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-546141072515114480.1#"];
"-2063910807674570354.1" -> "1372687362790198362.0" [label="[t]"];
"1372687362790198362.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#1372687362790198362.0#"];
"-2063910807674570354.1" -> "1372687362790198362.1" [label="[t]"];
"1372687362790198362.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#1372687362790198362.1#"];
"-2063910807674570354.1" -> "-2063910807674570354.0" [label="[f]"];
"-2063910807674570354.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-2063910807674570354.0#"];
"-2063910807674570354.1" -> "-2063910807674570354.1" [label="[f]"];
"-2063910807674570354.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-2063910807674570354.1#"];
"-2214567176449974837.1" -> "-399565298480546219.1" [label="[t]"];
"-399565298480546219.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#-399565298480546219.1#"];
"-2214567176449974837.1" -> "-2509631684428290056.1" [label="[t]"];
"-2509631684428290056.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")
#-2509631684428290056.1#"];
"-2214567176449974837.1" -> "-2214567176449974837.1" [label="[f]"];
"-2214567176449974837.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#-2214567176449974837.1#"];
"87614053918538516.1" -> "87614053918538516.1" [label="[f]"];
"87614053918538516.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")
#87614053918538516.1#"];
"87614053918538516.1" -> "-2509631684428290056.1" [label="[t]"];
"-2509631684428290056.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")
#-2509631684428290056.1#"];
"87614053918538516.1" -> "-1691556781350233989.1" [label="[t]"];
"-1691556781350233989.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")
#-1691556781350233989.1#"];
"8104378092414938380.2" -> "3142652060462247600.2" [label="[t]"];
"3142652060462247600.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")
#3142652060462247600.2#"];
"8104378092414938380.2" -> "-8441897685042613396.2" [label="[t]"];
"-8441897685042613396.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#-8441897685042613396.2#"];
"8104378092414938380.2" -> "8104378092414938380.2" [label="[f]"];
"8104378092414938380.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#8104378092414938380.2#"];
"8104378092414938380.0" -> "3142652060462247600.2" [label="[t]"];
"3142652060462247600.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")
#3142652060462247600.2#"];
"8104378092414938380.0" -> "-8441897685042613396.2" [label="[t]"];
"-8441897685042613396.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#-8441897685042613396.2#"];
"8104378092414938380.0" -> "8104378092414938380.2" [label="[f]"];
"8104378092414938380.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#8104378092414938380.2#"];
"8104378092414938380.1" -> "3142652060462247600.0" [label="[t]"];
"3142652060462247600.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")
#3142652060462247600.0#"];
"8104378092414938380.1" -> "3142652060462247600.1" [label="[t]"];
"3142652060462247600.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")
#3142652060462247600.1#"];
"8104378092414938380.1" -> "-8441897685042613396.0" [label="[t]"];
"-8441897685042613396.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#-8441897685042613396.0#"];
"8104378092414938380.1" -> "-8441897685042613396.1" [label="[t]"];
"-8441897685042613396.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#-8441897685042613396.1#"];
"8104378092414938380.1" -> "8104378092414938380.0" [label="[f]"];
"8104378092414938380.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#8104378092414938380.0#"];
"8104378092414938380.1" -> "8104378092414938380.1" [label="[f]"];
"8104378092414938380.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#8104378092414938380.1#"];
"-7936873345524189803.2" -> "-7936873345524189803.2" [label="[f]"];
"-7936873345524189803.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-7936873345524189803.2#"];
"-7936873345524189803.2" -> "-8441897685042613396.2" [label="[t]"];
"-8441897685042613396.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#-8441897685042613396.2#"];
"-7936873345524189803.2" -> "-638357031575933554.2" [label="[t]"];
"-638357031575933554.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#-638357031575933554.2#"];
"-7936873345524189803.0" -> "-7936873345524189803.2" [label="[f]"];
"-7936873345524189803.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-7936873345524189803.2#"];
"-7936873345524189803.0" -> "-8441897685042613396.2" [label="[t]"];
"-8441897685042613396.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#-8441897685042613396.2#"];
"-7936873345524189803.0" -> "-638357031575933554.2" [label="[t]"];
"-638357031575933554.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#-638357031575933554.2#"];
"-7936873345524189803.1" -> "-7936873345524189803.0" [label="[f]"];
"-7936873345524189803.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-7936873345524189803.0#"];
"-7936873345524189803.1" -> "-7936873345524189803.1" [label="[f]"];
"-7936873345524189803.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-7936873345524189803.1#"];
"-7936873345524189803.1" -> "-8441897685042613396.0" [label="[t]"];
"-8441897685042613396.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#-8441897685042613396.0#"];
"-7936873345524189803.1" -> "-8441897685042613396.1" [label="[t]"];
"-8441897685042613396.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#-8441897685042613396.1#"];
"-7936873345524189803.1" -> "-638357031575933554.0" [label="[t]"];
"-638357031575933554.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#-638357031575933554.0#"];
"-7936873345524189803.1" -> "-638357031575933554.1" [label="[t]"];
"-638357031575933554.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#-638357031575933554.1#"];
"-546141072515114480.2" -> "4105155781820333391.2" [label="[t]"];
"4105155781820333391.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#4105155781820333391.2#"];
"-546141072515114480.2" -> "-546141072515114480.2" [label="[f]"];
"-546141072515114480.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-546141072515114480.2#"];
"-546141072515114480.2" -> "1378869301027837423.2" [label="[t]"];
"1378869301027837423.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#1378869301027837423.2#"];
"-546141072515114480.0" -> "4105155781820333391.2" [label="[t]"];
"4105155781820333391.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#4105155781820333391.2#"];
"-546141072515114480.0" -> "-546141072515114480.2" [label="[f]"];
"-546141072515114480.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-546141072515114480.2#"];
"-546141072515114480.0" -> "1378869301027837423.2" [label="[t]"];
"1378869301027837423.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#1378869301027837423.2#"];
"-546141072515114480.1" -> "4105155781820333391.0" [label="[t]"];
"4105155781820333391.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#4105155781820333391.0#"];
"-546141072515114480.1" -> "4105155781820333391.1" [label="[t]"];
"4105155781820333391.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#4105155781820333391.1#"];
"-546141072515114480.1" -> "-546141072515114480.0" [label="[f]"];
"-546141072515114480.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-546141072515114480.0#"];
"-546141072515114480.1" -> "-546141072515114480.1" [label="[f]"];
"-546141072515114480.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-546141072515114480.1#"];
"-546141072515114480.1" -> "1378869301027837423.0" [label="[t]"];
"1378869301027837423.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#1378869301027837423.0#"];
"-546141072515114480.1" -> "1378869301027837423.1" [label="[t]"];
"1378869301027837423.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#1378869301027837423.1#"];
"-399565298480546219.1" -> "-2358786443862457741.1" [label="[t]"];
"-2358786443862457741.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")
#-2358786443862457741.1#"];
"-399565298480546219.1" -> "-399565298480546219.1" [label="[f]"];
"-399565298480546219.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#-399565298480546219.1#"];
"-399565298480546219.1" -> "1242281829922681258.1" [label="[t]"];
"1242281829922681258.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#1242281829922681258.1#"];
"-2509631684428290056.1" -> "-5600932010499000304.1" [label="[t]"];
"-5600932010499000304.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")
#-5600932010499000304.1#"];
"-2509631684428290056.1" -> "-2358786443862457741.1" [label="[t]"];
"-2358786443862457741.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")
#-2358786443862457741.1#"];
"-2509631684428290056.1" -> "-2509631684428290056.1" [label="[f]"];
"-2509631684428290056.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")
#-2509631684428290056.1#"];
"-8441897685042613396.2" -> "-3369779654879711024.2" [label="[t]"];
"-3369779654879711024.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#-3369779654879711024.2#"];
"-8441897685042613396.2" -> "3303560244708086570.2" [label="[t]"];
"3303560244708086570.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#3303560244708086570.2#"];
"-8441897685042613396.2" -> "-8441897685042613396.2" [label="[f]"];
"-8441897685042613396.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#-8441897685042613396.2#"];
"-8441897685042613396.0" -> "-3369779654879711024.2" [label="[t]"];
"-3369779654879711024.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#-3369779654879711024.2#"];
"-8441897685042613396.0" -> "3303560244708086570.2" [label="[t]"];
"3303560244708086570.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#3303560244708086570.2#"];
"-8441897685042613396.0" -> "-8441897685042613396.2" [label="[f]"];
"-8441897685042613396.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#-8441897685042613396.2#"];
"-8441897685042613396.1" -> "-3369779654879711024.0" [label="[t]"];
"-3369779654879711024.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#-3369779654879711024.0#"];
"-8441897685042613396.1" -> "-3369779654879711024.1" [label="[t]"];
"-3369779654879711024.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#-3369779654879711024.1#"];
"-8441897685042613396.1" -> "3303560244708086570.0" [label="[t]"];
"3303560244708086570.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#3303560244708086570.0#"];
"-8441897685042613396.1" -> "3303560244708086570.1" [label="[t]"];
"3303560244708086570.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#3303560244708086570.1#"];
"-8441897685042613396.1" -> "-8441897685042613396.0" [label="[f]"];
"-8441897685042613396.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#-8441897685042613396.0#"];
"-8441897685042613396.1" -> "-8441897685042613396.1" [label="[f]"];
"-8441897685042613396.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#-8441897685042613396.1#"];
"1378869301027837423.2" -> "6292824480006330437.2" [label="[t]"];
"6292824480006330437.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#6292824480006330437.2#"];
"1378869301027837423.2" -> "-2063910807674570354.2" [label="[t]"];
"-2063910807674570354.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-2063910807674570354.2#"];
"1378869301027837423.2" -> "1378869301027837423.2" [label="[f]"];
"1378869301027837423.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#1378869301027837423.2#"];
"1378869301027837423.0" -> "6292824480006330437.2" [label="[t]"];
"6292824480006330437.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#6292824480006330437.2#"];
"1378869301027837423.0" -> "-2063910807674570354.2" [label="[t]"];
"-2063910807674570354.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-2063910807674570354.2#"];
"1378869301027837423.0" -> "1378869301027837423.2" [label="[f]"];
"1378869301027837423.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#1378869301027837423.2#"];
"1378869301027837423.1" -> "6292824480006330437.0" [label="[t]"];
"6292824480006330437.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#6292824480006330437.0#"];
"1378869301027837423.1" -> "6292824480006330437.1" [label="[t]"];
"6292824480006330437.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#6292824480006330437.1#"];
"1378869301027837423.1" -> "-2063910807674570354.0" [label="[t]"];
"-2063910807674570354.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-2063910807674570354.0#"];
"1378869301027837423.1" -> "-2063910807674570354.1" [label="[t]"];
"-2063910807674570354.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-2063910807674570354.1#"];
"1378869301027837423.1" -> "1378869301027837423.0" [label="[f]"];
"1378869301027837423.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#1378869301027837423.0#"];
"1378869301027837423.1" -> "1378869301027837423.1" [label="[f]"];
"1378869301027837423.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#1378869301027837423.1#"];
"4105155781820333391.2" -> "201366421118272624.2" [label="[t]"];
"201366421118272624.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#201366421118272624.2#"];
"4105155781820333391.2" -> "6292824480006330437.2" [label="[t]"];
"6292824480006330437.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#6292824480006330437.2#"];
"4105155781820333391.2" -> "4105155781820333391.2" [label="[f]"];
"4105155781820333391.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#4105155781820333391.2#"];
"4105155781820333391.0" -> "201366421118272624.2" [label="[t]"];
"201366421118272624.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#201366421118272624.2#"];
"4105155781820333391.0" -> "6292824480006330437.2" [label="[t]"];
"6292824480006330437.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#6292824480006330437.2#"];
"4105155781820333391.0" -> "4105155781820333391.2" [label="[f]"];
"4105155781820333391.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#4105155781820333391.2#"];
"4105155781820333391.1" -> "201366421118272624.0" [label="[t]"];
"201366421118272624.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#201366421118272624.0#"];
"4105155781820333391.1" -> "201366421118272624.1" [label="[t]"];
"201366421118272624.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#201366421118272624.1#"];
"4105155781820333391.1" -> "6292824480006330437.0" [label="[t]"];
"6292824480006330437.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#6292824480006330437.0#"];
"4105155781820333391.1" -> "6292824480006330437.1" [label="[t]"];
"6292824480006330437.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#6292824480006330437.1#"];
"4105155781820333391.1" -> "4105155781820333391.0" [label="[f]"];
"4105155781820333391.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#4105155781820333391.0#"];
"4105155781820333391.1" -> "4105155781820333391.1" [label="[f]"];
"4105155781820333391.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#4105155781820333391.1#"];
"-2358786443862457741.1" -> "-2358786443862457741.1" [label="[f]"];
"-2358786443862457741.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")
#-2358786443862457741.1#"];
"-2358786443862457741.1" -> "87614053918538516.1" [label="[t]"];
"87614053918538516.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")
#87614053918538516.1#"];
"-2358786443862457741.1" -> "5503255533271085099.1" [label="[t]"];
"5503255533271085099.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"ncs\")
#5503255533271085099.1#"];
"-3369779654879711024.2" -> "-3369779654879711024.2" [label="[f]"];
"-3369779654879711024.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#-3369779654879711024.2#"];
"-3369779654879711024.2" -> "5082504470648985495.2" [label="[t]"];
"5082504470648985495.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#5082504470648985495.2#"];
"-3369779654879711024.2" -> "1378869301027837423.2" [label="[t]"];
"1378869301027837423.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#1378869301027837423.2#"];
"-3369779654879711024.0" -> "-3369779654879711024.2" [label="[f]"];
"-3369779654879711024.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#-3369779654879711024.2#"];
"-3369779654879711024.0" -> "5082504470648985495.2" [label="[t]"];
"5082504470648985495.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#5082504470648985495.2#"];
"-3369779654879711024.0" -> "1378869301027837423.2" [label="[t]"];
"1378869301027837423.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#1378869301027837423.2#"];
"-3369779654879711024.1" -> "-3369779654879711024.0" [label="[f]"];
"-3369779654879711024.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#-3369779654879711024.0#"];
"-3369779654879711024.1" -> "-3369779654879711024.1" [label="[f]"];
"-3369779654879711024.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#-3369779654879711024.1#"];
"-3369779654879711024.1" -> "5082504470648985495.0" [label="[t]"];
"5082504470648985495.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#5082504470648985495.0#"];
"-3369779654879711024.1" -> "5082504470648985495.1" [label="[t]"];
"5082504470648985495.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#5082504470648985495.1#"];
"-3369779654879711024.1" -> "1378869301027837423.0" [label="[t]"];
"1378869301027837423.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#1378869301027837423.0#"];
"-3369779654879711024.1" -> "1378869301027837423.1" [label="[t]"];
"1378869301027837423.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#1378869301027837423.1#"];
"5503255533271085099.1" -> "-1691556781350233989.1" [label="[t]"];
"-1691556781350233989.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")
#-1691556781350233989.1#"];
"5503255533271085099.1" -> "5503255533271085099.1" [label="[f]"];
"5503255533271085099.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"ncs\")
#5503255533271085099.1#"];
"5503255533271085099.1" -> "4105155781820333391.0" [label="[t]"];
"4105155781820333391.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#4105155781820333391.0#"];
"5503255533271085099.1" -> "4105155781820333391.1" [label="[t]"];
"4105155781820333391.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#4105155781820333391.1#"];
}
}
\ No newline at end of file
------------------------ MODULE MutualExclusionSpec ------------------------
\* Module MutualExclusionSpec provides general specification for mutual-exclusion problem.
\* Procs is set of processes.
\* Every process is assumed to loop and enter into "cs" state on every interation.
\* Non-critical state is represented as "non-cs".
\* When process decides it want to enter into critical-section, it first goes into "csentry" state.
CONSTANT Procs
VARIABLES pc
TypeOK == pc \in [Procs -> {"non-cs", "csentry", "cs"}]
vars == <<pc>>
\* All processes start from non-critical section.
Init == pc \in [Procs -> {"non-cs"}]
\* WantCS(proc) is action when proc decides that it wants to enter into critical section.
WantCS(proc) ==
/\ pc[proc] = "non-cs"
/\ pc' = [pc EXCEPT ![proc] = "csentry"]
\* EnterCS(proc) is action when proc enters critical section.
EnterCS(proc) ==
/\ pc[proc] = "csentry"
/\ \A i \in Procs \ {proc} : pc[i] /= "cs"
/\ pc' = [pc EXCEPT ![proc] = "cs"]
\* ExitCS(proc) is action when proc leaves critical section.
ExitCS(proc) ==
/\ pc[proc] = "cs"
/\ pc' = [pc EXCEPT ![proc] = "non-cs"]
Next == \E i \in Procs: WantCS(i) \/ EnterCS(i) \/ ExitCS(i)
Spec == /\ Init
/\ [][Next]_vars
/\ \A i \in Procs: ( \* fairness
\* not fair for WantCS - it can pause and even hang there
/\ SF_vars(EnterCS(i))
/\ SF_vars(ExitCS(i)))
----------------
\* MutualExclusion is invariant indicating that no two processes can be inside critical section at the same time.
MutualExclusion == \A i,j \in Procs: (i /= j) => ~((pc[i] = "cs") /\ (pc[j] = "cs"))
\* Liveness is temporal property indicating that every process has a chance to enter critical section and leaves it.
Liveness == \A i \in Procs:
/\ (pc[i] = "csentry") ~> (pc[i] = "cs")
/\ (pc[i] = "cs") ~> (pc[i] = "non-cs")
THEOREM Spec => []TypeOK
THEOREM Spec => []MutualExclusion
THEOREM Spec => Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 19:11:11 MSK 2022 by kirr
\* Created Wed Feb 09 13:11:29 MSK 2022 by kirr
-------------------------------- MODULE 1Bit --------------------------------
\* 1Bit implementation of mutual exclusion
EXTENDS Integers
CONSTANT N
ASSUME N \in Nat
Procs == 0..N
(********
--fair algorithm 1BitProtocol {
variables flag = [i \in Procs |-> FALSE] ;
process (P \in Procs) {
ncs: while (TRUE) {
skip ;
enter: flag[self] := TRUE ;
e2: if (flag[1-self]) {
e3: flag[self] := FALSE;
goto enter;
};
cs: skip ;
exit: flag[self] := FALSE ;
}
}
}
********)
\* BEGIN TRANSLATION (chksum(pcal) = "7c28162a" /\ chksum(tla) = "b89f1da2")
VARIABLES flag, pc
vars == << flag, pc >>
ProcSet == (Procs)
Init == (* Global variables *)
/\ flag = [i \in Procs |-> FALSE]
/\ pc = [self \in ProcSet |-> "ncs"]
ncs(self) == /\ pc[self] = "ncs"
/\ TRUE
/\ pc' = [pc EXCEPT ![self] = "enter"]
/\ flag' = flag
enter(self) == /\ pc[self] = "enter"
/\ flag' = [flag EXCEPT ![self] = TRUE]
/\ pc' = [pc EXCEPT ![self] = "e2"]
e2(self) == /\ pc[self] = "e2"
/\ IF flag[1-self]
THEN /\ pc' = [pc EXCEPT ![self] = "e3"]
ELSE /\ pc' = [pc EXCEPT ![self] = "cs"]
/\ flag' = flag
e3(self) == /\ pc[self] = "e3"
/\ flag' = [flag EXCEPT ![self] = FALSE]
/\ pc' = [pc EXCEPT ![self] = "enter"]
cs(self) == /\ pc[self] = "cs"
/\ TRUE
/\ pc' = [pc EXCEPT ![self] = "exit"]
/\ flag' = flag
exit(self) == /\ pc[self] = "exit"
/\ flag' = [flag EXCEPT ![self] = FALSE]
/\ pc' = [pc EXCEPT ![self] = "ncs"]
P(self) == ncs(self) \/ enter(self) \/ e2(self) \/ e3(self) \/ cs(self)
\/ exit(self)
Next == (\E self \in Procs: P(self))
Spec == /\ Init /\ [][Next]_vars
/\ WF_vars(Next)
\* END TRANSLATION
--------
\* Invariant which implies MutualExclusion
\*Inv == \A i \in Procs : (pc[i] = "cs") => (flag[i] /\ (~flag[1-i] \/ pc[1-i] = "e2"))
Inv == \A i \in Procs : (pc[i] = "cs") => (flag[i] /\ (~flag[1-i] \/ pc[1-i] \in {"e2","e3"}))
ME == INSTANCE MutualExclusionSpec WITH
pc <- [proc \in Procs |-> CASE pc[proc] = "cs" -> "cs"
[] pc[proc] \in {"enter","e2","e3"} -> "csentry"
[] OTHER -> "non-cs"]
THEOREM Spec => ME!Spec
THEOREM Spec => []ME!MutualExclusion
THEOREM Spec => ME!Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 21:15:31 MSK 2022 by kirr
\* Created Wed Feb 09 20:01:56 MSK 2022 by kirr
\* CONSTANT definitions
CONSTANT
N <- const_1644430546606655000
\* SPECIFICATION definition
SPECIFICATION
Spec
\* INVARIANT definition
INVARIANT
inv_1644430546606656000
Inv
\* Generated on Wed Feb 09 21:15:46 MSK 2022
\ No newline at end of file
@!@!@STARTMSG 2262:0 @!@!@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 70 and seed 335625962150299577 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 78923] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
@!@!@ENDMSG 2220 @!@!@
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MC.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/1Bit.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/TLC.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Integers.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Naturals.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MutualExclusionSpec.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Sequences.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/FiniteSets.tla
Semantic processing of module Naturals
Semantic processing of module Integers
Semantic processing of module MutualExclusionSpec
Semantic processing of module 1Bit
Semantic processing of module Sequences
Semantic processing of module FiniteSets
Semantic processing of module TLC
Semantic processing of module MC
@!@!@STARTMSG 2219:0 @!@!@
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 21:15:47)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2189:0 @!@!@
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 21:15:47.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2193:0 @!@!@
Model checking completed. No error has been found.
Estimates of the probability that TLC did not check all reachable states
because two distinct states had the same fingerprint:
calculated (optimistic): val = 5.7E-17
@!@!@ENDMSG 2193 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 21:15:47
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 34, col 1 to line 34, col 4 of module 1Bit>: 1:1
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
line 35, col 19 to line 35, col 41 of module 1Bit: 1:2
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 35, col 26 to line 35, col 30 of module 1Bit: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 36, col 12 to line 36, col 44 of module 1Bit: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 36, col 17 to line 36, col 44 of module 1Bit: 1:2
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 36, col 27 to line 36, col 33 of module 1Bit: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ncs line 38, col 1 to line 38, col 9 of module 1Bit>: 3:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 38, col 17 to line 38, col 32 of module 1Bit: 76
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 38, col 17 to line 38, col 24 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 39, col 17 to line 39, col 20 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 40, col 17 to line 40, col 51 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 41, col 17 to line 41, col 28 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<enter line 43, col 1 to line 43, col 11 of module 1Bit>: 8:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 43, col 19 to line 43, col 36 of module 1Bit: 76
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 43, col 19 to line 43, col 26 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 44, col 19 to line 44, col 54 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 45, col 19 to line 45, col 50 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e2 line 47, col 1 to line 47, col 8 of module 1Bit>: 10:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 47, col 16 to line 47, col 30 of module 1Bit: 76
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 16 to line 47, col 23 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 48, col 19 to line 48, col 30 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 49, col 24 to line 49, col 58 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 50, col 24 to line 50, col 58 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 51, col 16 to line 51, col 27 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e3 line 53, col 1 to line 53, col 8 of module 1Bit>: 2:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 53, col 16 to line 53, col 30 of module 1Bit: 76
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 53, col 16 to line 53, col 23 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 54, col 16 to line 54, col 52 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 55, col 16 to line 55, col 50 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<cs line 57, col 1 to line 57, col 8 of module 1Bit>: 6:8
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 57, col 16 to line 57, col 30 of module 1Bit: 72
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 57, col 16 to line 57, col 23 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 58, col 16 to line 58, col 19 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 59, col 16 to line 59, col 49 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 60, col 16 to line 60, col 27 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<exit line 62, col 1 to line 62, col 10 of module 1Bit>: 2:8
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 62, col 18 to line 62, col 34 of module 1Bit: 72
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 62, col 18 to line 62, col 25 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 63, col 18 to line 63, col 54 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 64, col 18 to line 64, col 50 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<inv_1644430546606656000 line 10, col 1 to line 10, col 23 of module MC>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 11, col 1 to line 11, col 18 of module MC: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 84, col 23 to line 86, col 90 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 83, col 1 to line 86, col 90 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<Inv line 80, col 1 to line 80, col 3 of module 1Bit>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 80, col 8 to line 80, col 94 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 80, col 25 to line 80, col 94 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 80, col 26 to line 80, col 37 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 80, col 44 to line 80, col 93 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 80, col 44 to line 80, col 50 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 80, col 56 to line 80, col 92 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 80, col 56 to line 80, col 65 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 80, col 70 to line 80, col 92 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 80, col 17 to line 80, col 21 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(9) at 2022-02-09 21:15:47: 65 states generated (3 025 s/min), 32 distinct states found (1 489 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
65 states generated, 32 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 9.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2268:0 @!@!@
The average outdegree of the complete state graph is 1 (minimum is 0, the maximum 2 and the 95th percentile is 2).
@!@!@ENDMSG 2268 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1301ms at (2022-02-09 21:15:47)
@!@!@ENDMSG 2186 @!@!@
---- MODULE MC ----
EXTENDS 1Bit, TLC
\* CONSTANT definitions @modelParameterConstants:0N
const_1644430546606655000 ==
1
----
\* INVARIANT definition @modelCorrectnessInvariants:0
inv_1644430546606656000 ==
ME!MutualExclusion
----
=============================================================================
\* Modification History
\* Created Wed Feb 09 21:15:46 MSK 2022 by kirr
@!@!@STARTMSG 2262:0 @!@!@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 70 and seed 335625962150299577 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 78923] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
@!@!@ENDMSG 2220 @!@!@
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MC.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/1Bit.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/TLC.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Integers.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Naturals.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MutualExclusionSpec.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Sequences.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/FiniteSets.tla
Semantic processing of module Naturals
Semantic processing of module Integers
Semantic processing of module MutualExclusionSpec
Semantic processing of module 1Bit
Semantic processing of module Sequences
Semantic processing of module FiniteSets
Semantic processing of module TLC
Semantic processing of module MC
@!@!@STARTMSG 2219:0 @!@!@
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 21:15:47)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2189:0 @!@!@
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 21:15:47.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2193:0 @!@!@
Model checking completed. No error has been found.
Estimates of the probability that TLC did not check all reachable states
because two distinct states had the same fingerprint:
calculated (optimistic): val = 5.7E-17
@!@!@ENDMSG 2193 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 21:15:47
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 34, col 1 to line 34, col 4 of module 1Bit>: 1:1
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
line 35, col 19 to line 35, col 41 of module 1Bit: 1:2
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 35, col 26 to line 35, col 30 of module 1Bit: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 36, col 12 to line 36, col 44 of module 1Bit: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 36, col 17 to line 36, col 44 of module 1Bit: 1:2
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 36, col 27 to line 36, col 33 of module 1Bit: 1
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ncs line 38, col 1 to line 38, col 9 of module 1Bit>: 3:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 38, col 17 to line 38, col 32 of module 1Bit: 76
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 38, col 17 to line 38, col 24 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 39, col 17 to line 39, col 20 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 40, col 17 to line 40, col 51 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 41, col 17 to line 41, col 28 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<enter line 43, col 1 to line 43, col 11 of module 1Bit>: 8:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 43, col 19 to line 43, col 36 of module 1Bit: 76
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 43, col 19 to line 43, col 26 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 44, col 19 to line 44, col 54 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 45, col 19 to line 45, col 50 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e2 line 47, col 1 to line 47, col 8 of module 1Bit>: 10:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 47, col 16 to line 47, col 30 of module 1Bit: 76
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 16 to line 47, col 23 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 48, col 19 to line 48, col 30 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 49, col 24 to line 49, col 58 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 50, col 24 to line 50, col 58 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 51, col 16 to line 51, col 27 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e3 line 53, col 1 to line 53, col 8 of module 1Bit>: 2:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 53, col 16 to line 53, col 30 of module 1Bit: 76
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 53, col 16 to line 53, col 23 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 54, col 16 to line 54, col 52 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 55, col 16 to line 55, col 50 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<cs line 57, col 1 to line 57, col 8 of module 1Bit>: 6:8
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 57, col 16 to line 57, col 30 of module 1Bit: 72
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 57, col 16 to line 57, col 23 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 58, col 16 to line 58, col 19 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 59, col 16 to line 59, col 49 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 60, col 16 to line 60, col 27 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<exit line 62, col 1 to line 62, col 10 of module 1Bit>: 2:8
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 62, col 18 to line 62, col 34 of module 1Bit: 72
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 62, col 18 to line 62, col 25 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 63, col 18 to line 63, col 54 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 64, col 18 to line 64, col 50 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<inv_1644430546606656000 line 10, col 1 to line 10, col 23 of module MC>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 11, col 1 to line 11, col 18 of module MC: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 84, col 23 to line 86, col 90 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 83, col 1 to line 86, col 90 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<Inv line 80, col 1 to line 80, col 3 of module 1Bit>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 80, col 8 to line 80, col 94 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 80, col 25 to line 80, col 94 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 80, col 26 to line 80, col 37 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 80, col 44 to line 80, col 93 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 80, col 44 to line 80, col 50 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 80, col 56 to line 80, col 92 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 80, col 56 to line 80, col 65 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 80, col 70 to line 80, col 92 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 80, col 17 to line 80, col 21 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(9) at 2022-02-09 21:15:47: 65 states generated (3 025 s/min), 32 distinct states found (1 489 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
65 states generated, 32 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 9.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2268:0 @!@!@
The average outdegree of the complete state graph is 1 (minimum is 0, the maximum 2 and the 95th percentile is 2).
@!@!@ENDMSG 2268 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1301ms at (2022-02-09 21:15:47)
@!@!@ENDMSG 2186 @!@!@
strict digraph DiskGraph {
edge [colorscheme="paired12"]
nodesep=0.35;
subgraph cluster_graph {
color="white";
-3453948983116398701 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")",style = filled]
-3453948983116398701 -> -8640028231165027327 [label="",color="2",fontcolor="2"];
-8640028231165027327 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")"];
-3453948983116398701 -> -3122284819905792065 [label="",color="2",fontcolor="2"];
-3122284819905792065 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")"];
-8640028231165027327 -> 6666676344837492044 [label="",color="3",fontcolor="3"];
6666676344837492044 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")"];
-3122284819905792065 -> -7272560286558339165 [label="",color="2",fontcolor="2"];
-7272560286558339165 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")"];
-3122284819905792065 -> 7077852457059884168 [label="",color="3",fontcolor="3"];
7077852457059884168 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")"];
-7272560286558339165 -> 8643086762770051903 [label="",color="3",fontcolor="3"];
8643086762770051903 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")"];
-7272560286558339165 -> 3258395002578452750 [label="",color="3",fontcolor="3"];
3258395002578452750 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")"];
7077852457059884168 -> 3258395002578452750 [label="",color="2",fontcolor="2"];
7077852457059884168 -> 7623632247078806259 [label="",color="4",fontcolor="4"];
7623632247078806259 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")"];
-8640028231165027327 -> -7272560286558339165 [label="",color="2",fontcolor="2"];
3258395002578452750 -> 4896095563025212182 [label="",color="3",fontcolor="3"];
4896095563025212182 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e2\")"];
8643086762770051903 -> 4999672480204711632 [label="",color="4",fontcolor="4"];
4999672480204711632 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")"];
3258395002578452750 -> 2795931152755375989 [label="",color="4",fontcolor="4"];
2795931152755375989 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")"];
8643086762770051903 -> 4896095563025212182 [label="",color="3",fontcolor="3"];
6666676344837492044 -> -8390231084257514089 [label="",color="4",fontcolor="4"];
-8390231084257514089 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")"];
7623632247078806259 -> 2795931152755375989 [label="",color="2",fontcolor="2"];
6666676344837492044 -> 8643086762770051903 [label="",color="2",fontcolor="2"];
7623632247078806259 -> 324324401566986225 [label="",color="5",fontcolor="5"];
324324401566986225 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")"];
4896095563025212182 -> -6749679583658276097 [label="",color="4",fontcolor="4"];
-6749679583658276097 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")"];
4999672480204711632 -> 1815376609652354437 [label="",color="5",fontcolor="5"];
1815376609652354437 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")"];
4896095563025212182 -> -9049673061260027627 [label="",color="4",fontcolor="4"];
-9049673061260027627 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")"];
4999672480204711632 -> 6531024858180442786 [label="",color="3",fontcolor="3"];
6531024858180442786 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")"];
2795931152755375989 -> 5190236482883657069 [label="",color="3",fontcolor="3"];
5190236482883657069 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")"];
-8390231084257514089 -> 3337007329062196548 [label="",color="5",fontcolor="5"];
3337007329062196548 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")"];
2795931152755375989 -> 928463514121005778 [label="",color="5",fontcolor="5"];
928463514121005778 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")"];
-8390231084257514089 -> 4999672480204711632 [label="",color="2",fontcolor="2"];
324324401566986225 -> 928463514121005778 [label="",color="2",fontcolor="2"];
-6749679583658276097 -> 3258395002578452750 [label="",color="6",fontcolor="6"];
324324401566986225 -> -3453948983116398701 [label="",color="7",fontcolor="7"];
-6749679583658276097 -> 7192007378240336124 [label="",color="4",fontcolor="4"];
7192007378240336124 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")"];
1815376609652354437 -> -3122284819905792065 [label="",color="7",fontcolor="7"];
1815376609652354437 -> 5475325632057216183 [label="",color="3",fontcolor="3"];
5475325632057216183 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")"];
-9049673061260027627 -> 7192007378240336124 [label="",color="4",fontcolor="4"];
-9049673061260027627 -> 8643086762770051903 [label="",color="6",fontcolor="6"];
6531024858180442786 -> 5475325632057216183 [label="",color="5",fontcolor="5"];
5190236482883657069 -> -6223602765442976636 [label="",color="4",fontcolor="4"];
-6223602765442976636 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")"];
5190236482883657069 -> -6425514240637587098 [label="",color="5",fontcolor="5"];
-6425514240637587098 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")"];
3337007329062196548 -> -3453948983116398701 [label="",color="7",fontcolor="7"];
3337007329062196548 -> 1815376609652354437 [label="",color="2",fontcolor="2"];
928463514121005778 -> -6425514240637587098 [label="",color="3",fontcolor="3"];
928463514121005778 -> -8640028231165027327 [label="",color="7",fontcolor="7"];
7192007378240336124 -> -1395180987598521587 [label="",color="6",fontcolor="6"];
-1395180987598521587 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")"];
7192007378240336124 -> 2080279400504481724 [label="",color="6",fontcolor="6"];
2080279400504481724 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")"];
5475325632057216183 -> 7077852457059884168 [label="",color="7",fontcolor="7"];
5475325632057216183 -> -8473745821407643980 [label="",color="4",fontcolor="4"];
-8473745821407643980 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")"];
-6223602765442976636 -> 2795931152755375989 [label="",color="6",fontcolor="6"];
-6223602765442976636 -> 225427551988187964 [label="",color="5",fontcolor="5"];
225427551988187964 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")"];
-6425514240637587098 -> 225427551988187964 [label="",color="4",fontcolor="4"];
-6425514240637587098 -> 6666676344837492044 [label="",color="7",fontcolor="7"];
-1395180987598521587 -> -9049673061260027627 [label="",color="3",fontcolor="3"];
-1395180987598521587 -> -7272560286558339165 [label="",color="6",fontcolor="6"];
2080279400504481724 -> -7272560286558339165 [label="",color="6",fontcolor="6"];
2080279400504481724 -> -6749679583658276097 [label="",color="3",fontcolor="3"];
6531024858180442786 -> -7261585782010273631 [label="",color="4",fontcolor="4"];
-7261585782010273631 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")"];
-8473745821407643980 -> -6655506634842216821 [label="",color="7",fontcolor="7"];
-6655506634842216821 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")"];
225427551988187964 -> 928463514121005778 [label="",color="6",fontcolor="6"];
-8473745821407643980 -> 1815376609652354437 [label="",color="6",fontcolor="6"];
225427551988187964 -> 4717930976636446312 [label="",color="7",fontcolor="7"];
4717930976636446312 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"ncs\")"];
-7261585782010273631 -> -8473745821407643980 [label="",color="5",fontcolor="5"];
-6655506634842216821 -> -1395180987598521587 [label="",color="2",fontcolor="2"];
-7261585782010273631 -> 4999672480204711632 [label="",color="6",fontcolor="6"];
-6655506634842216821 -> -3122284819905792065 [label="",color="6",fontcolor="6"];
4717930976636446312 -> -8640028231165027327 [label="",color="6",fontcolor="6"];
4717930976636446312 -> 2080279400504481724 [label="",color="2",fontcolor="2"];
{rank = same; -3453948983116398701;}
{rank = same; -3122284819905792065;-8640028231165027327;}
{rank = same; 7077852457059884168;-7272560286558339165;6666676344837492044;}
{rank = same; 3258395002578452750;-8390231084257514089;7623632247078806259;8643086762770051903;}
{rank = same; 4896095563025212182;4999672480204711632;324324401566986225;2795931152755375989;3337007329062196548;}
{rank = same; -6749679583658276097;5190236482883657069;928463514121005778;6531024858180442786;-9049673061260027627;1815376609652354437;}
{rank = same; 5475325632057216183;-6223602765442976636;-6425514240637587098;7192007378240336124;-7261585782010273631;}
{rank = same; 225427551988187964;2080279400504481724;-1395180987598521587;-8473745821407643980;}
{rank = same; 4717930976636446312;-6655506634842216821;}
}
subgraph cluster_legend {graph[style=bold];label = "Next State Actions" style="solid"
node [ labeljust="l",colorscheme="paired12",style=filled,shape=record ]
cs [label="cs",fillcolor=5]
exit [label="exit",fillcolor=7]
enter [label="enter",fillcolor=3]
e2 [label="e2",fillcolor=4]
e3 [label="e3",fillcolor=6]
ncs [label="ncs",fillcolor=2]
}}
\ No newline at end of file
------------------------ MODULE MutualExclusionSpec ------------------------
\* Module MutualExclusionSpec provides general specification for mutual-exclusion problem.
\* Procs is set of processes.
\* Every process is assumed to loop and enter into "cs" state on every interation.
\* Non-critical state is represented as "non-cs".
\* When process decides it want to enter into critical-section, it first goes into "csentry" state.
CONSTANT Procs
VARIABLES pc
TypeOK == pc \in [Procs -> {"non-cs", "csentry", "cs"}]
vars == <<pc>>
\* All processes start from non-critical section.
Init == pc \in [Procs -> {"non-cs"}]
\* WantCS(proc) is action when proc decides that it wants to enter into critical section.
WantCS(proc) ==
/\ pc[proc] = "non-cs"
/\ pc' = [pc EXCEPT ![proc] = "csentry"]
\* EnterCS(proc) is action when proc enters critical section.
EnterCS(proc) ==
/\ pc[proc] = "csentry"
/\ \A i \in Procs \ {proc} : pc[i] /= "cs"
/\ pc' = [pc EXCEPT ![proc] = "cs"]
\* ExitCS(proc) is action when proc leaves critical section.
ExitCS(proc) ==
/\ pc[proc] = "cs"
/\ pc' = [pc EXCEPT ![proc] = "non-cs"]
Next == \E i \in Procs: WantCS(i) \/ EnterCS(i) \/ ExitCS(i)
Spec == /\ Init
/\ [][Next]_vars
/\ \A i \in Procs: ( \* fairness
\* not fair for WantCS - it can pause and even hang there
/\ SF_vars(EnterCS(i))
/\ SF_vars(ExitCS(i)))
----------------
\* MutualExclusion is invariant indicating that no two processes can be inside critical section at the same time.
MutualExclusion == \A i,j \in Procs: (i /= j) => ~((pc[i] = "cs") /\ (pc[j] = "cs"))
\* Liveness is temporal property indicating that every process has a chance to enter critical section and leaves it.
Liveness == \A i \in Procs:
/\ (pc[i] = "csentry") ~> (pc[i] = "cs")
/\ (pc[i] = "cs") ~> (pc[i] = "non-cs")
THEOREM Spec => []TypeOK
THEOREM Spec => []MutualExclusion
THEOREM Spec => Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 19:11:11 MSK 2022 by kirr
\* Created Wed Feb 09 13:11:29 MSK 2022 by kirr
-------------------------------- MODULE 1Bit --------------------------------
\* 1Bit implementation of mutual exclusion
EXTENDS Integers
CONSTANT N
ASSUME N \in Nat
Procs == 0..N
(********
--fair algorithm 1BitProtocol {
variables flag = [i \in Procs |-> FALSE] ;
process (P \in Procs) {
ncs: while (TRUE) {
skip ;
enter: flag[self] := TRUE ;
e2: if (flag[1-self]) {
e3: flag[self] := FALSE;
goto enter;
};
cs: skip ;
exit: flag[self] := FALSE ;
}
}
}
********)
\* BEGIN TRANSLATION (chksum(pcal) = "7c28162a" /\ chksum(tla) = "b89f1da2")
VARIABLES flag, pc
vars == << flag, pc >>
ProcSet == (Procs)
Init == (* Global variables *)
/\ flag = [i \in Procs |-> FALSE]
/\ pc = [self \in ProcSet |-> "ncs"]
ncs(self) == /\ pc[self] = "ncs"
/\ TRUE
/\ pc' = [pc EXCEPT ![self] = "enter"]
/\ flag' = flag
enter(self) == /\ pc[self] = "enter"
/\ flag' = [flag EXCEPT ![self] = TRUE]
/\ pc' = [pc EXCEPT ![self] = "e2"]
e2(self) == /\ pc[self] = "e2"
/\ IF flag[1-self]
THEN /\ pc' = [pc EXCEPT ![self] = "e3"]
ELSE /\ pc' = [pc EXCEPT ![self] = "cs"]
/\ flag' = flag
e3(self) == /\ pc[self] = "e3"
/\ flag' = [flag EXCEPT ![self] = FALSE]
/\ pc' = [pc EXCEPT ![self] = "enter"]
cs(self) == /\ pc[self] = "cs"
/\ TRUE
/\ pc' = [pc EXCEPT ![self] = "exit"]
/\ flag' = flag
exit(self) == /\ pc[self] = "exit"
/\ flag' = [flag EXCEPT ![self] = FALSE]
/\ pc' = [pc EXCEPT ![self] = "ncs"]
P(self) == ncs(self) \/ enter(self) \/ e2(self) \/ e3(self) \/ cs(self)
\/ exit(self)
Next == (\E self \in Procs: P(self))
Spec == /\ Init /\ [][Next]_vars
/\ WF_vars(Next)
\* END TRANSLATION
--------
\* Invariant which implies MutualExclusion
\*Inv == \A i \in Procs : (pc[i] = "cs") => (flag[i] /\ (~flag[1-i] \/ pc[1-i] = "e2"))
Inv == \A i \in Procs : (pc[i] = "cs") => (flag[i] /\ (~flag[1-i] \/ pc[1-i] \in {"e2","e3"}))
ME == INSTANCE MutualExclusionSpec WITH
pc <- [proc \in Procs |-> CASE pc[proc] = "cs" -> "cs"
[] pc[proc] \in {"enter","e2","e3"} -> "csentry"
[] OTHER -> "non-cs"]
THEOREM Spec => ME!Spec
THEOREM Spec => []ME!MutualExclusion
THEOREM Spec => ME!Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 21:15:31 MSK 2022 by kirr
\* Created Wed Feb 09 20:01:56 MSK 2022 by kirr
\* CONSTANT definitions
CONSTANT
N <- const_1644430554364662000
\* SPECIFICATION definition
SPECIFICATION
Spec
\* INVARIANT definition
INVARIANT
inv_1644430554365663000
Inv
\* PROPERTY definition
PROPERTY
prop_1644430554365665000
\* Generated on Wed Feb 09 21:15:54 MSK 2022
\ No newline at end of file
@!@!@STARTMSG 2262:0 @!@!@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 76 and seed 7718090864724317436 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 78975] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
@!@!@ENDMSG 2220 @!@!@
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MC.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/1Bit.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/TLC.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Integers.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Naturals.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MutualExclusionSpec.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Sequences.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/FiniteSets.tla
Semantic processing of module Naturals
Semantic processing of module Integers
Semantic processing of module MutualExclusionSpec
Semantic processing of module 1Bit
Semantic processing of module Sequences
Semantic processing of module FiniteSets
Semantic processing of module TLC
Semantic processing of module MC
@!@!@STARTMSG 2219:0 @!@!@
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 21:15:54)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 1 branches.
@!@!@ENDMSG 2212 @!@!@
@!@!@STARTMSG 2189:0 @!@!@
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 21:15:55.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(9) at 2022-02-09 21:15:55: 65 states generated, 32 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2192:0 @!@!@
Checking temporal properties for the complete state space with 32 total distinct states at (2022-02-09 21:15:55)
@!@!@ENDMSG 2192 @!@!@
@!@!@STARTMSG 2116:1 @!@!@
Temporal properties were violated.
@!@!@ENDMSG 2116 @!@!@
@!@!@STARTMSG 2264:1 @!@!@
The following behavior constitutes a counter-example:
@!@!@ENDMSG 2264 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
1: <Initial predicate>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "ncs" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
2: <ncs line 38, col 14 to line 41, col 28 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "enter" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
3: <ncs line 38, col 14 to line 41, col 28 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "enter" @@ 1 :> "enter")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
4: <enter line 43, col 16 to line 45, col 50 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> TRUE)
/\ pc = (0 :> "enter" @@ 1 :> "e2")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
5: <e2 line 47, col 13 to line 51, col 27 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> TRUE)
/\ pc = (0 :> "enter" @@ 1 :> "cs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
6: <cs line 57, col 13 to line 60, col 27 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> TRUE)
/\ pc = (0 :> "enter" @@ 1 :> "exit")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2122:4 @!@!@
2: Back to state: <exit line 62, col 15 to line 64, col 50 of module 1Bit>
@!@!@ENDMSG 2122 @!@!@
@!@!@STARTMSG 2267:0 @!@!@
Finished checking temporal properties in 00s at 2022-02-09 21:15:55
@!@!@ENDMSG 2267 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 21:15:55
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 34, col 1 to line 34, col 4 of module 1Bit>: 2:2
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
line 35, col 19 to line 35, col 41 of module 1Bit: 2:4
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 35, col 26 to line 35, col 30 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 36, col 12 to line 36, col 44 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 36, col 17 to line 36, col 44 of module 1Bit: 2:4
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 36, col 27 to line 36, col 33 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ncs line 38, col 1 to line 38, col 9 of module 1Bit>: 6:14
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 38, col 17 to line 38, col 32 of module 1Bit: 89
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 38, col 17 to line 38, col 24 of module 1Bit: 75
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 39, col 17 to line 39, col 20 of module 1Bit: 14
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 40, col 17 to line 40, col 51 of module 1Bit: 14
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 41, col 17 to line 41, col 28 of module 1Bit: 14
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<enter line 43, col 1 to line 43, col 11 of module 1Bit>: 7:18
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 43, col 19 to line 43, col 36 of module 1Bit: 91
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 43, col 19 to line 43, col 26 of module 1Bit: 73
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 44, col 19 to line 44, col 54 of module 1Bit: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 45, col 19 to line 45, col 50 of module 1Bit: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e2 line 47, col 1 to line 47, col 8 of module 1Bit>: 9:13
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 47, col 16 to line 47, col 30 of module 1Bit: 85
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 16 to line 47, col 23 of module 1Bit: 72
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 48, col 19 to line 48, col 30 of module 1Bit: 13
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 49, col 24 to line 49, col 58 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 50, col 24 to line 50, col 58 of module 1Bit: 5
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 51, col 16 to line 51, col 27 of module 1Bit: 13
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e3 line 53, col 1 to line 53, col 8 of module 1Bit>: 2:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 53, col 16 to line 53, col 30 of module 1Bit: 83
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 53, col 16 to line 53, col 23 of module 1Bit: 71
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 54, col 16 to line 54, col 52 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 55, col 16 to line 55, col 50 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<cs line 57, col 1 to line 57, col 8 of module 1Bit>: 5:9
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 57, col 16 to line 57, col 30 of module 1Bit: 80
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 57, col 16 to line 57, col 23 of module 1Bit: 71
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 58, col 16 to line 58, col 19 of module 1Bit: 9
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 59, col 16 to line 59, col 49 of module 1Bit: 9
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 60, col 16 to line 60, col 27 of module 1Bit: 9
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<exit line 62, col 1 to line 62, col 10 of module 1Bit>: 2:9
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 62, col 18 to line 62, col 34 of module 1Bit: 79
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 62, col 18 to line 62, col 25 of module 1Bit: 70
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 63, col 18 to line 63, col 54 of module 1Bit: 9
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 64, col 18 to line 64, col 50 of module 1Bit: 9
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<inv_1644430554365663000 line 10, col 1 to line 10, col 23 of module MC>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 11, col 1 to line 11, col 18 of module MC: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 84, col 23 to line 86, col 90 of module 1Bit: 244:376
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 84, col 33 to line 84, col 37 of module 1Bit: 244
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 83, col 1 to line 86, col 90 of module 1Bit: 97
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<Inv line 80, col 1 to line 80, col 3 of module 1Bit>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 80, col 8 to line 80, col 94 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 80, col 25 to line 80, col 94 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 80, col 26 to line 80, col 37 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 80, col 44 to line 80, col 93 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 80, col 44 to line 80, col 50 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 80, col 56 to line 80, col 92 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 80, col 56 to line 80, col 65 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 80, col 70 to line 80, col 92 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 80, col 17 to line 80, col 21 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(9) at 2022-02-09 21:15:55: 65 states generated (2 848 s/min), 32 distinct states found (1 402 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
65 states generated, 32 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 9.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1379ms at (2022-02-09 21:15:55)
@!@!@ENDMSG 2186 @!@!@
---- MODULE MC ----
EXTENDS 1Bit, TLC
\* CONSTANT definitions @modelParameterConstants:0N
const_1644430554364662000 ==
1
----
\* INVARIANT definition @modelCorrectnessInvariants:0
inv_1644430554365663000 ==
ME!MutualExclusion
----
\* PROPERTY definition @modelCorrectnessProperties:0
prop_1644430554365665000 ==
ME!Spec
----
=============================================================================
\* Modification History
\* Created Wed Feb 09 21:15:54 MSK 2022 by kirr
@!@!@STARTMSG 2262:0 @!@!@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 76 and seed 7718090864724317436 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 78975] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
@!@!@ENDMSG 2220 @!@!@
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MC.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/1Bit.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/TLC.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Integers.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Naturals.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MutualExclusionSpec.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Sequences.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/FiniteSets.tla
Semantic processing of module Naturals
Semantic processing of module Integers
Semantic processing of module MutualExclusionSpec
Semantic processing of module 1Bit
Semantic processing of module Sequences
Semantic processing of module FiniteSets
Semantic processing of module TLC
Semantic processing of module MC
@!@!@STARTMSG 2219:0 @!@!@
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 21:15:54)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 1 branches.
@!@!@ENDMSG 2212 @!@!@
@!@!@STARTMSG 2189:0 @!@!@
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 21:15:55.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(9) at 2022-02-09 21:15:55: 65 states generated, 32 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2192:0 @!@!@
Checking temporal properties for the complete state space with 32 total distinct states at (2022-02-09 21:15:55)
@!@!@ENDMSG 2192 @!@!@
@!@!@STARTMSG 2116:1 @!@!@
Temporal properties were violated.
@!@!@ENDMSG 2116 @!@!@
@!@!@STARTMSG 2264:1 @!@!@
The following behavior constitutes a counter-example:
@!@!@ENDMSG 2264 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
1: <Initial predicate>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "ncs" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
2: <ncs line 38, col 14 to line 41, col 28 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "enter" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
3: <ncs line 38, col 14 to line 41, col 28 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "enter" @@ 1 :> "enter")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
4: <enter line 43, col 16 to line 45, col 50 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> TRUE)
/\ pc = (0 :> "enter" @@ 1 :> "e2")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
5: <e2 line 47, col 13 to line 51, col 27 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> TRUE)
/\ pc = (0 :> "enter" @@ 1 :> "cs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
6: <cs line 57, col 13 to line 60, col 27 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> TRUE)
/\ pc = (0 :> "enter" @@ 1 :> "exit")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2122:4 @!@!@
2: Back to state: <exit line 62, col 15 to line 64, col 50 of module 1Bit>
@!@!@ENDMSG 2122 @!@!@
@!@!@STARTMSG 2267:0 @!@!@
Finished checking temporal properties in 00s at 2022-02-09 21:15:55
@!@!@ENDMSG 2267 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 21:15:55
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 34, col 1 to line 34, col 4 of module 1Bit>: 2:2
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
line 35, col 19 to line 35, col 41 of module 1Bit: 2:4
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 35, col 26 to line 35, col 30 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 36, col 12 to line 36, col 44 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 36, col 17 to line 36, col 44 of module 1Bit: 2:4
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 36, col 27 to line 36, col 33 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ncs line 38, col 1 to line 38, col 9 of module 1Bit>: 6:14
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 38, col 17 to line 38, col 32 of module 1Bit: 89
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 38, col 17 to line 38, col 24 of module 1Bit: 75
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 39, col 17 to line 39, col 20 of module 1Bit: 14
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 40, col 17 to line 40, col 51 of module 1Bit: 14
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 41, col 17 to line 41, col 28 of module 1Bit: 14
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<enter line 43, col 1 to line 43, col 11 of module 1Bit>: 7:18
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 43, col 19 to line 43, col 36 of module 1Bit: 91
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 43, col 19 to line 43, col 26 of module 1Bit: 73
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 44, col 19 to line 44, col 54 of module 1Bit: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 45, col 19 to line 45, col 50 of module 1Bit: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e2 line 47, col 1 to line 47, col 8 of module 1Bit>: 9:13
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 47, col 16 to line 47, col 30 of module 1Bit: 85
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 16 to line 47, col 23 of module 1Bit: 72
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 48, col 19 to line 48, col 30 of module 1Bit: 13
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 49, col 24 to line 49, col 58 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 50, col 24 to line 50, col 58 of module 1Bit: 5
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 51, col 16 to line 51, col 27 of module 1Bit: 13
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e3 line 53, col 1 to line 53, col 8 of module 1Bit>: 2:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 53, col 16 to line 53, col 30 of module 1Bit: 83
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 53, col 16 to line 53, col 23 of module 1Bit: 71
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 54, col 16 to line 54, col 52 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 55, col 16 to line 55, col 50 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<cs line 57, col 1 to line 57, col 8 of module 1Bit>: 5:9
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 57, col 16 to line 57, col 30 of module 1Bit: 80
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 57, col 16 to line 57, col 23 of module 1Bit: 71
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 58, col 16 to line 58, col 19 of module 1Bit: 9
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 59, col 16 to line 59, col 49 of module 1Bit: 9
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 60, col 16 to line 60, col 27 of module 1Bit: 9
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<exit line 62, col 1 to line 62, col 10 of module 1Bit>: 2:9
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 62, col 18 to line 62, col 34 of module 1Bit: 79
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 62, col 18 to line 62, col 25 of module 1Bit: 70
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 63, col 18 to line 63, col 54 of module 1Bit: 9
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 64, col 18 to line 64, col 50 of module 1Bit: 9
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<inv_1644430554365663000 line 10, col 1 to line 10, col 23 of module MC>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 11, col 1 to line 11, col 18 of module MC: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 84, col 23 to line 86, col 90 of module 1Bit: 244:376
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 84, col 33 to line 84, col 37 of module 1Bit: 244
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 83, col 1 to line 86, col 90 of module 1Bit: 97
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<Inv line 80, col 1 to line 80, col 3 of module 1Bit>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 80, col 8 to line 80, col 94 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 80, col 25 to line 80, col 94 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 80, col 26 to line 80, col 37 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 80, col 44 to line 80, col 93 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 80, col 44 to line 80, col 50 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 80, col 56 to line 80, col 92 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 80, col 56 to line 80, col 65 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 80, col 70 to line 80, col 92 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 80, col 17 to line 80, col 21 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(9) at 2022-02-09 21:15:55: 65 states generated (2 848 s/min), 32 distinct states found (1 402 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
65 states generated, 32 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 9.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1379ms at (2022-02-09 21:15:55)
@!@!@ENDMSG 2186 @!@!@
strict digraph DiskGraph {
edge [colorscheme="paired12"]
nodesep=0.35;
subgraph cluster_graph {
color="white";
-5844199479782010727 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")",style = filled]
-5844199479782010727 -> 2937350363632584253 [label="",color="2",fontcolor="2"];
2937350363632584253 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")"];
2937350363632584253 -> 6213040944845915838 [label="",color="3",fontcolor="3"];
6213040944845915838 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")"];
-5844199479782010727 -> -5736222265815938827 [label="",color="2",fontcolor="2"];
-5736222265815938827 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")"];
-5844199479782010727 -> -5844199479782010727 [style="dashed"];
2937350363632584253 -> -6957647860963232484 [label="",color="2",fontcolor="2"];
-6957647860963232484 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")"];
2937350363632584253 -> 2937350363632584253 [style="dashed"];
-5736222265815938827 -> -6957647860963232484 [label="",color="2",fontcolor="2"];
6213040944845915838 -> -3568915870172113595 [label="",color="4",fontcolor="4"];
-3568915870172113595 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")"];
-5736222265815938827 -> 6045606258322181657 [label="",color="3",fontcolor="3"];
6045606258322181657 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")"];
6213040944845915838 -> -4250933335396210700 [label="",color="2",fontcolor="2"];
-4250933335396210700 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")"];
-5736222265815938827 -> -5736222265815938827 [style="dashed"];
6213040944845915838 -> 6213040944845915838 [style="dashed"];
-6957647860963232484 -> -4250933335396210700 [label="",color="3",fontcolor="3"];
-3568915870172113595 -> 6712711972881168166 [label="",color="5",fontcolor="5"];
6712711972881168166 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")"];
-6957647860963232484 -> -5835616441049197006 [label="",color="3",fontcolor="3"];
-5835616441049197006 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")"];
-3568915870172113595 -> -8766391399773016596 [label="",color="2",fontcolor="2"];
-8766391399773016596 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")"];
-6957647860963232484 -> -6957647860963232484 [style="dashed"];
-3568915870172113595 -> -3568915870172113595 [style="dashed"];
6045606258322181657 -> -5835616441049197006 [label="",color="2",fontcolor="2"];
-4250933335396210700 -> -8766391399773016596 [label="",color="4",fontcolor="4"];
6045606258322181657 -> -7533900032052814667 [label="",color="4",fontcolor="4"];
-7533900032052814667 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")"];
-4250933335396210700 -> 8851920569126505647 [label="",color="3",fontcolor="3"];
8851920569126505647 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e2\")"];
-4250933335396210700 -> -4250933335396210700 [style="dashed"];
6045606258322181657 -> 6045606258322181657 [style="dashed"];
6712711972881168166 -> -5844199479782010727 [label="",color="6",fontcolor="6"];
-5835616441049197006 -> 8851920569126505647 [label="",color="3",fontcolor="3"];
6712711972881168166 -> 2293875469432381173 [label="",color="2",fontcolor="2"];
2293875469432381173 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")"];
-5835616441049197006 -> 7752879455823545502 [label="",color="4",fontcolor="4"];
7752879455823545502 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")"];
6712711972881168166 -> 6712711972881168166 [style="dashed"];
-5835616441049197006 -> -5835616441049197006 [style="dashed"];
-8766391399773016596 -> 2293875469432381173 [label="",color="5",fontcolor="5"];
-8766391399773016596 -> 7798642515178381564 [label="",color="3",fontcolor="3"];
7798642515178381564 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")"];
8851920569126505647 -> -3417457743136802344 [label="",color="4",fontcolor="4"];
-3417457743136802344 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")"];
-8766391399773016596 -> -8766391399773016596 [style="dashed"];
8851920569126505647 -> 4529260692786243806 [label="",color="4",fontcolor="4"];
4529260692786243806 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")"];
8851920569126505647 -> 8851920569126505647 [style="dashed"];
-7533900032052814667 -> 7752879455823545502 [label="",color="2",fontcolor="2"];
-7533900032052814667 -> -6787228893796628969 [label="",color="5",fontcolor="5"];
-6787228893796628969 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")"];
-7533900032052814667 -> -7533900032052814667 [style="dashed"];
2293875469432381173 -> -5736222265815938827 [label="",color="6",fontcolor="6"];
2293875469432381173 -> 7746763128469735352 [label="",color="3",fontcolor="3"];
7746763128469735352 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")"];
7752879455823545502 -> -4734358730020332029 [label="",color="3",fontcolor="3"];
-4734358730020332029 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")"];
2293875469432381173 -> 2293875469432381173 [style="dashed"];
7752879455823545502 -> -4650238674329948055 [label="",color="5",fontcolor="5"];
-4650238674329948055 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")"];
7752879455823545502 -> 7752879455823545502 [style="dashed"];
7798642515178381564 -> 7746763128469735352 [label="",color="5",fontcolor="5"];
7798642515178381564 -> 2898387751023723661 [label="",color="4",fontcolor="4"];
2898387751023723661 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")"];
-3417457743136802344 -> -5835616441049197006 [label="",color="7",fontcolor="7"];
-3417457743136802344 -> -7741199525569126999 [label="",color="4",fontcolor="4"];
-7741199525569126999 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")"];
-3417457743136802344 -> -3417457743136802344 [style="dashed"];
7798642515178381564 -> 7798642515178381564 [style="dashed"];
4529260692786243806 -> -7741199525569126999 [label="",color="4",fontcolor="4"];
4529260692786243806 -> -4250933335396210700 [label="",color="7",fontcolor="7"];
4529260692786243806 -> 4529260692786243806 [style="dashed"];
-6787228893796628969 -> -4650238674329948055 [label="",color="2",fontcolor="2"];
-6787228893796628969 -> -5844199479782010727 [label="",color="6",fontcolor="6"];
-6787228893796628969 -> -6787228893796628969 [style="dashed"];
7746763128469735352 -> 6045606258322181657 [label="",color="6",fontcolor="6"];
7746763128469735352 -> 3423145029900952521 [label="",color="4",fontcolor="4"];
3423145029900952521 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")"];
-4734358730020332029 -> 1443046615084444532 [label="",color="4",fontcolor="4"];
1443046615084444532 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")"];
7746763128469735352 -> 7746763128469735352 [style="dashed"];
-4734358730020332029 -> -1443774378318819939 [label="",color="5",fontcolor="5"];
-1443774378318819939 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")"];
-4734358730020332029 -> -4734358730020332029 [style="dashed"];
-4650238674329948055 -> -1443774378318819939 [label="",color="3",fontcolor="3"];
-4650238674329948055 -> 2937350363632584253 [label="",color="6",fontcolor="6"];
-7741199525569126999 -> -1512992311993241021 [label="",color="7",fontcolor="7"];
-1512992311993241021 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")"];
-4650238674329948055 -> -4650238674329948055 [style="dashed"];
-7741199525569126999 -> 7882495026418781796 [label="",color="7",fontcolor="7"];
7882495026418781796 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")"];
-7741199525569126999 -> -7741199525569126999 [style="dashed"];
2898387751023723661 -> 3423145029900952521 [label="",color="5",fontcolor="5"];
2898387751023723661 -> -8766391399773016596 [label="",color="7",fontcolor="7"];
2898387751023723661 -> 2898387751023723661 [style="dashed"];
3423145029900952521 -> 1721838085270383208 [label="",color="6",fontcolor="6"];
1721838085270383208 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")"];
1443046615084444532 -> 7752879455823545502 [label="",color="7",fontcolor="7"];
3423145029900952521 -> 2293875469432381173 [label="",color="7",fontcolor="7"];
1443046615084444532 -> 3152128076155065661 [label="",color="5",fontcolor="5"];
3152128076155065661 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")"];
3423145029900952521 -> 3423145029900952521 [style="dashed"];
1443046615084444532 -> 1443046615084444532 [style="dashed"];
-1443774378318819939 -> 3152128076155065661 [label="",color="4",fontcolor="4"];
-1512992311993241021 -> 4529260692786243806 [label="",color="3",fontcolor="3"];
-1443774378318819939 -> 6213040944845915838 [label="",color="6",fontcolor="6"];
-1512992311993241021 -> -6957647860963232484 [label="",color="7",fontcolor="7"];
-1443774378318819939 -> -1443774378318819939 [style="dashed"];
-1512992311993241021 -> -1512992311993241021 [style="dashed"];
7882495026418781796 -> -6957647860963232484 [label="",color="7",fontcolor="7"];
1721838085270383208 -> -1512992311993241021 [label="",color="2",fontcolor="2"];
1721838085270383208 -> -5736222265815938827 [label="",color="7",fontcolor="7"];
7882495026418781796 -> -3417457743136802344 [label="",color="3",fontcolor="3"];
1721838085270383208 -> 1721838085270383208 [style="dashed"];
7882495026418781796 -> 7882495026418781796 [style="dashed"];
3152128076155065661 -> -4650238674329948055 [label="",color="7",fontcolor="7"];
3152128076155065661 -> 6292295775528482716 [label="",color="6",fontcolor="6"];
6292295775528482716 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"ncs\")"];
3152128076155065661 -> 3152128076155065661 [style="dashed"];
6292295775528482716 -> 2937350363632584253 [label="",color="7",fontcolor="7"];
6292295775528482716 -> 7882495026418781796 [label="",color="2",fontcolor="2"];
6292295775528482716 -> 6292295775528482716 [style="dashed"];
{rank = same; -5844199479782010727;}
{rank = same; 2937350363632584253;-5736222265815938827;}
{rank = same; -6957647860963232484;6213040944845915838;6045606258322181657;}
{rank = same; -7533900032052814667;-3568915870172113595;-4250933335396210700;-5835616441049197006;}
{rank = same; 6712711972881168166;-8766391399773016596;7752879455823545502;-6787228893796628969;8851920569126505647;}
{rank = same; -4734358730020332029;4529260692786243806;2293875469432381173;-4650238674329948055;-3417457743136802344;7798642515178381564;}
{rank = same; 1443046615084444532;-7741199525569126999;2898387751023723661;7746763128469735352;-1443774378318819939;}
{rank = same; 3152128076155065661;3423145029900952521;-1512992311993241021;7882495026418781796;}
{rank = same; 6292295775528482716;1721838085270383208;}
}
subgraph cluster_legend {graph[style=bold];label = "Next State Actions" style="solid"
node [ labeljust="l",colorscheme="paired12",style=filled,shape=record ]
cs [label="cs",fillcolor=5]
exit [label="exit",fillcolor=6]
enter [label="enter",fillcolor=3]
e2 [label="e2",fillcolor=4]
e3 [label="e3",fillcolor=7]
ncs [label="ncs",fillcolor=2]
}}
\ No newline at end of file
digraph DiskGraph {
nodesep=0.35;
subgraph cluster_graph {
color="white";
-5844199479782010727 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")",style = filled]
-5844199479782010727 -> -5736222265815938827;
-5736222265815938827 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")"];
-5844199479782010727 -> -5844199479782010727;
-5844199479782010727 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")"];
-5844199479782010727 -> 2937350363632584253;
2937350363632584253 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")"];
2937350363632584253 -> -6957647860963232484;
-6957647860963232484 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")"];
2937350363632584253 -> 2937350363632584253;
2937350363632584253 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")"];
2937350363632584253 -> 6213040944845915838;
6213040944845915838 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")"];
-5736222265815938827 -> -5736222265815938827;
-5736222265815938827 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")"];
-5736222265815938827 -> 6045606258322181657;
6045606258322181657 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")"];
-5736222265815938827 -> -6957647860963232484;
-6957647860963232484 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")"];
6213040944845915838 -> -4250933335396210700;
-4250933335396210700 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")"];
6213040944845915838 -> -3568915870172113595;
-3568915870172113595 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")"];
6213040944845915838 -> 6213040944845915838;
6213040944845915838 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")"];
-6957647860963232484 -> -5835616441049197006;
-5835616441049197006 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")"];
-6957647860963232484 -> -4250933335396210700;
-4250933335396210700 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")"];
-6957647860963232484 -> -6957647860963232484;
-6957647860963232484 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")"];
-3568915870172113595 -> -3568915870172113595;
-3568915870172113595 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")"];
-3568915870172113595 -> 6712711972881168166;
6712711972881168166 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")"];
-3568915870172113595 -> -8766391399773016596;
-8766391399773016596 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")"];
-4250933335396210700 -> -4250933335396210700;
-4250933335396210700 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")"];
-4250933335396210700 -> -8766391399773016596;
-8766391399773016596 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")"];
-4250933335396210700 -> 8851920569126505647;
8851920569126505647 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e2\")"];
6045606258322181657 -> -5835616441049197006;
-5835616441049197006 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")"];
6045606258322181657 -> -7533900032052814667;
-7533900032052814667 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")"];
6045606258322181657 -> 6045606258322181657;
6045606258322181657 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")"];
6712711972881168166 -> 2293875469432381173;
2293875469432381173 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")"];
6712711972881168166 -> 6712711972881168166;
6712711972881168166 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")"];
6712711972881168166 -> -5844199479782010727;
-5835616441049197006 -> -5835616441049197006;
-5835616441049197006 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")"];
-5835616441049197006 -> 7752879455823545502;
7752879455823545502 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")"];
-5835616441049197006 -> 8851920569126505647;
8851920569126505647 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e2\")"];
-8766391399773016596 -> 2293875469432381173;
2293875469432381173 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")"];
-8766391399773016596 -> 7798642515178381564;
7798642515178381564 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")"];
-8766391399773016596 -> -8766391399773016596;
-8766391399773016596 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")"];
8851920569126505647 -> -3417457743136802344;
-3417457743136802344 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")"];
8851920569126505647 -> 4529260692786243806;
4529260692786243806 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")"];
8851920569126505647 -> 8851920569126505647;
8851920569126505647 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e2\")"];
-7533900032052814667 -> -7533900032052814667;
-7533900032052814667 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")"];
-7533900032052814667 -> -6787228893796628969;
-6787228893796628969 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")"];
-7533900032052814667 -> 7752879455823545502;
7752879455823545502 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")"];
2293875469432381173 -> -5736222265815938827;
2293875469432381173 -> 2293875469432381173;
2293875469432381173 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")"];
2293875469432381173 -> 7746763128469735352;
7746763128469735352 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")"];
7752879455823545502 -> -4734358730020332029;
-4734358730020332029 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")"];
7752879455823545502 -> -4650238674329948055;
-4650238674329948055 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")"];
7752879455823545502 -> 7752879455823545502;
7752879455823545502 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")"];
-3417457743136802344 -> -5835616441049197006;
-3417457743136802344 -> -3417457743136802344;
-3417457743136802344 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")"];
-3417457743136802344 -> -7741199525569126999;
-7741199525569126999 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")"];
7798642515178381564 -> 7746763128469735352;
7746763128469735352 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")"];
7798642515178381564 -> 7798642515178381564;
7798642515178381564 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")"];
7798642515178381564 -> 2898387751023723661;
2898387751023723661 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")"];
4529260692786243806 -> -4250933335396210700;
4529260692786243806 -> -7741199525569126999;
-7741199525569126999 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")"];
4529260692786243806 -> 4529260692786243806;
4529260692786243806 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")"];
-6787228893796628969 -> -6787228893796628969;
-6787228893796628969 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")"];
-6787228893796628969 -> -4650238674329948055;
-4650238674329948055 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")"];
-6787228893796628969 -> -5844199479782010727;
7746763128469735352 -> 7746763128469735352;
7746763128469735352 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")"];
7746763128469735352 -> 6045606258322181657;
7746763128469735352 -> 3423145029900952521;
3423145029900952521 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")"];
-4734358730020332029 -> -4734358730020332029;
-4734358730020332029 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")"];
-4734358730020332029 -> 1443046615084444532;
1443046615084444532 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")"];
-4734358730020332029 -> -1443774378318819939;
-1443774378318819939 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")"];
-4650238674329948055 -> -4650238674329948055;
-4650238674329948055 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")"];
-4650238674329948055 -> -1443774378318819939;
-1443774378318819939 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")"];
-4650238674329948055 -> 2937350363632584253;
-7741199525569126999 -> -1512992311993241021;
-1512992311993241021 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")"];
-7741199525569126999 -> 7882495026418781796;
7882495026418781796 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")"];
-7741199525569126999 -> -7741199525569126999;
-7741199525569126999 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")"];
2898387751023723661 -> 3423145029900952521;
3423145029900952521 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")"];
2898387751023723661 -> -8766391399773016596;
2898387751023723661 -> 2898387751023723661;
2898387751023723661 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")"];
3423145029900952521 -> 2293875469432381173;
3423145029900952521 -> 1721838085270383208;
1721838085270383208 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")"];
3423145029900952521 -> 3423145029900952521;
3423145029900952521 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")"];
1443046615084444532 -> 1443046615084444532;
1443046615084444532 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")"];
1443046615084444532 -> 3152128076155065661;
3152128076155065661 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")"];
1443046615084444532 -> 7752879455823545502;
-1443774378318819939 -> 3152128076155065661;
3152128076155065661 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")"];
-1443774378318819939 -> 6213040944845915838;
-1443774378318819939 -> -1443774378318819939;
-1443774378318819939 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")"];
-1512992311993241021 -> -1512992311993241021;
-1512992311993241021 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")"];
-1512992311993241021 -> -6957647860963232484;
-1512992311993241021 -> 4529260692786243806;
1721838085270383208 -> -1512992311993241021;
1721838085270383208 -> -5736222265815938827;
1721838085270383208 -> 1721838085270383208;
1721838085270383208 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")"];
7882495026418781796 -> 7882495026418781796;
7882495026418781796 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")"];
7882495026418781796 -> -3417457743136802344;
7882495026418781796 -> -6957647860963232484;
3152128076155065661 -> -4650238674329948055;
3152128076155065661 -> 6292295775528482716;
6292295775528482716 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"ncs\")"];
3152128076155065661 -> 3152128076155065661;
3152128076155065661 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")"];
6292295775528482716 -> 7882495026418781796;
6292295775528482716 -> 6292295775528482716;
6292295775528482716 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"ncs\")"];
6292295775528482716 -> 2937350363632584253;
{rank = same; -5844199479782010727;}
{rank = same; 2937350363632584253;-5736222265815938827;}
{rank = same; -6957647860963232484;6213040944845915838;6045606258322181657;}
{rank = same; -7533900032052814667;-3568915870172113595;-4250933335396210700;-5835616441049197006;}
{rank = same; 6712711972881168166;-8766391399773016596;7752879455823545502;-6787228893796628969;8851920569126505647;}
{rank = same; -4734358730020332029;4529260692786243806;2293875469432381173;-4650238674329948055;-3417457743136802344;7798642515178381564;}
{rank = same; 1443046615084444532;-7741199525569126999;2898387751023723661;7746763128469735352;-1443774378318819939;}
{rank = same; 3152128076155065661;3423145029900952521;-1512992311993241021;7882495026418781796;}
{rank = same; 6292295775528482716;1721838085270383208;}
}
}
\ No newline at end of file
------------------------ MODULE MutualExclusionSpec ------------------------
\* Module MutualExclusionSpec provides general specification for mutual-exclusion problem.
\* Procs is set of processes.
\* Every process is assumed to loop and enter into "cs" state on every interation.
\* Non-critical state is represented as "non-cs".
\* When process decides it want to enter into critical-section, it first goes into "csentry" state.
CONSTANT Procs
VARIABLES pc
TypeOK == pc \in [Procs -> {"non-cs", "csentry", "cs"}]
vars == <<pc>>
\* All processes start from non-critical section.
Init == pc \in [Procs -> {"non-cs"}]
\* WantCS(proc) is action when proc decides that it wants to enter into critical section.
WantCS(proc) ==
/\ pc[proc] = "non-cs"
/\ pc' = [pc EXCEPT ![proc] = "csentry"]
\* EnterCS(proc) is action when proc enters critical section.
EnterCS(proc) ==
/\ pc[proc] = "csentry"
/\ \A i \in Procs \ {proc} : pc[i] /= "cs"
/\ pc' = [pc EXCEPT ![proc] = "cs"]
\* ExitCS(proc) is action when proc leaves critical section.
ExitCS(proc) ==
/\ pc[proc] = "cs"
/\ pc' = [pc EXCEPT ![proc] = "non-cs"]
Next == \E i \in Procs: WantCS(i) \/ EnterCS(i) \/ ExitCS(i)
Spec == /\ Init
/\ [][Next]_vars
/\ \A i \in Procs: ( \* fairness
\* not fair for WantCS - it can pause and even hang there
/\ SF_vars(EnterCS(i))
/\ SF_vars(ExitCS(i)))
----------------
\* MutualExclusion is invariant indicating that no two processes can be inside critical section at the same time.
MutualExclusion == \A i,j \in Procs: (i /= j) => ~((pc[i] = "cs") /\ (pc[j] = "cs"))
\* Liveness is temporal property indicating that every process has a chance to enter critical section and leaves it.
Liveness == \A i \in Procs:
/\ (pc[i] = "csentry") ~> (pc[i] = "cs")
/\ (pc[i] = "cs") ~> (pc[i] = "non-cs")
THEOREM Spec => []TypeOK
THEOREM Spec => []MutualExclusion
THEOREM Spec => Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 19:11:11 MSK 2022 by kirr
\* Created Wed Feb 09 13:11:29 MSK 2022 by kirr
-------------------------------- MODULE 1Bit --------------------------------
\* 1Bit implementation of mutual exclusion
EXTENDS Integers
CONSTANT N
ASSUME N \in Nat
Procs == 0..N
(********
--fair algorithm 1BitProtocol {
variables flag = [i \in Procs |-> FALSE] ;
process (P \in Procs) {
ncs: while (TRUE) {
skip ;
enter: flag[self] := TRUE ;
e2: if (flag[1-self]) {
e3: flag[self] := FALSE;
goto enter;
};
cs: skip ;
exit: flag[self] := FALSE ;
}
}
}
********)
\* BEGIN TRANSLATION (chksum(pcal) = "7c28162a" /\ chksum(tla) = "b89f1da2")
VARIABLES flag, pc
vars == << flag, pc >>
ProcSet == (Procs)
Init == (* Global variables *)
/\ flag = [i \in Procs |-> FALSE]
/\ pc = [self \in ProcSet |-> "ncs"]
ncs(self) == /\ pc[self] = "ncs"
/\ TRUE
/\ pc' = [pc EXCEPT ![self] = "enter"]
/\ flag' = flag
enter(self) == /\ pc[self] = "enter"
/\ flag' = [flag EXCEPT ![self] = TRUE]
/\ pc' = [pc EXCEPT ![self] = "e2"]
e2(self) == /\ pc[self] = "e2"
/\ IF flag[1-self]
THEN /\ pc' = [pc EXCEPT ![self] = "e3"]
ELSE /\ pc' = [pc EXCEPT ![self] = "cs"]
/\ flag' = flag
e3(self) == /\ pc[self] = "e3"
/\ flag' = [flag EXCEPT ![self] = FALSE]
/\ pc' = [pc EXCEPT ![self] = "enter"]
cs(self) == /\ pc[self] = "cs"
/\ TRUE
/\ pc' = [pc EXCEPT ![self] = "exit"]
/\ flag' = flag
exit(self) == /\ pc[self] = "exit"
/\ flag' = [flag EXCEPT ![self] = FALSE]
/\ pc' = [pc EXCEPT ![self] = "ncs"]
P(self) == ncs(self) \/ enter(self) \/ e2(self) \/ e3(self) \/ cs(self)
\/ exit(self)
Next == (\E self \in Procs: P(self))
Spec == /\ Init /\ [][Next]_vars
/\ WF_vars(Next)
\* END TRANSLATION
--------
\* Invariant which implies MutualExclusion
\*Inv == \A i \in Procs : (pc[i] = "cs") => (flag[i] /\ (~flag[1-i] \/ pc[1-i] = "e2"))
Inv == \A i \in Procs : (pc[i] = "cs") => (flag[i] /\ (~flag[1-i] \/ pc[1-i] \in {"e2","e3"}))
ME == INSTANCE MutualExclusionSpec WITH
pc <- [proc \in Procs |-> CASE pc[proc] = "cs" -> "cs"
[] pc[proc] \in {"enter","e2","e3"} -> "csentry"
[] OTHER -> "non-cs"]
THEOREM Spec => ME!Spec
THEOREM Spec => []ME!MutualExclusion
THEOREM Spec => ME!Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 21:15:31 MSK 2022 by kirr
\* Created Wed Feb 09 20:01:56 MSK 2022 by kirr
\* CONSTANT definitions
CONSTANT
N <- const_1644430722260670000
\* SPECIFICATION definition
SPECIFICATION
Spec
\* INVARIANT definition
INVARIANT
inv_1644430722260671000
Inv
\* PROPERTY definition
PROPERTY
prop_1644430722260673000
\* Generated on Wed Feb 09 21:18:42 MSK 2022
\ No newline at end of file
@!@!@STARTMSG 2262:0 @!@!@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 44 and seed 3585913388356632348 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 79087] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
@!@!@ENDMSG 2220 @!@!@
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MC.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/1Bit.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/TLC.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Integers.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Naturals.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MutualExclusionSpec.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Sequences.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/FiniteSets.tla
Semantic processing of module Naturals
Semantic processing of module Integers
Semantic processing of module MutualExclusionSpec
Semantic processing of module 1Bit
Semantic processing of module Sequences
Semantic processing of module FiniteSets
Semantic processing of module TLC
Semantic processing of module MC
@!@!@STARTMSG 2219:0 @!@!@
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 21:18:42)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 4 branches.
@!@!@ENDMSG 2212 @!@!@
@!@!@STARTMSG 2189:0 @!@!@
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 21:18:43.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(9) at 2022-02-09 21:18:43: 65 states generated, 32 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2192:0 @!@!@
Checking 4 branches of temporal properties for the complete state space with 128 total distinct states at (2022-02-09 21:18:43)
@!@!@ENDMSG 2192 @!@!@
@!@!@STARTMSG 2116:1 @!@!@
Temporal properties were violated.
@!@!@ENDMSG 2116 @!@!@
@!@!@STARTMSG 2264:1 @!@!@
The following behavior constitutes a counter-example:
@!@!@ENDMSG 2264 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
1: <Initial predicate>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "ncs" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
2: <ncs line 38, col 14 to line 41, col 28 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "enter" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
3: <ncs line 38, col 14 to line 41, col 28 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "enter" @@ 1 :> "enter")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
4: <enter line 43, col 16 to line 45, col 50 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> TRUE)
/\ pc = (0 :> "enter" @@ 1 :> "e2")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
5: <e2 line 47, col 13 to line 51, col 27 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> TRUE)
/\ pc = (0 :> "enter" @@ 1 :> "cs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
6: <cs line 57, col 13 to line 60, col 27 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> TRUE)
/\ pc = (0 :> "enter" @@ 1 :> "exit")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
7: <exit line 62, col 15 to line 64, col 50 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "enter" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2122:4 @!@!@
3: Back to state: <ncs line 38, col 14 to line 41, col 28 of module 1Bit>
@!@!@ENDMSG 2122 @!@!@
@!@!@STARTMSG 2267:0 @!@!@
Finished checking temporal properties in 00s at 2022-02-09 21:18:43
@!@!@ENDMSG 2267 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 21:18:43
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 34, col 1 to line 34, col 4 of module 1Bit>: 2:2
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
line 35, col 19 to line 35, col 41 of module 1Bit: 2:4
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 35, col 26 to line 35, col 30 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 36, col 12 to line 36, col 44 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 36, col 17 to line 36, col 44 of module 1Bit: 2:4
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 36, col 27 to line 36, col 33 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ncs line 38, col 1 to line 38, col 9 of module 1Bit>: 6:19
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 38, col 17 to line 38, col 32 of module 1Bit: 104
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 38, col 17 to line 38, col 24 of module 1Bit: 85
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 39, col 17 to line 39, col 20 of module 1Bit: 19
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 40, col 17 to line 40, col 51 of module 1Bit: 19
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 41, col 17 to line 41, col 28 of module 1Bit: 19
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<enter line 43, col 1 to line 43, col 11 of module 1Bit>: 7:21
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 43, col 19 to line 43, col 36 of module 1Bit: 103
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 43, col 19 to line 43, col 26 of module 1Bit: 82
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 44, col 19 to line 44, col 54 of module 1Bit: 21
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 45, col 19 to line 45, col 50 of module 1Bit: 21
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e2 line 47, col 1 to line 47, col 8 of module 1Bit>: 9:13
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 47, col 16 to line 47, col 30 of module 1Bit: 94
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 16 to line 47, col 23 of module 1Bit: 81
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 48, col 19 to line 48, col 30 of module 1Bit: 13
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 49, col 24 to line 49, col 58 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 50, col 24 to line 50, col 58 of module 1Bit: 5
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 51, col 16 to line 51, col 27 of module 1Bit: 13
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e3 line 53, col 1 to line 53, col 8 of module 1Bit>: 2:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 53, col 16 to line 53, col 30 of module 1Bit: 92
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 53, col 16 to line 53, col 23 of module 1Bit: 80
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 54, col 16 to line 54, col 52 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 55, col 16 to line 55, col 50 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<cs line 57, col 1 to line 57, col 8 of module 1Bit>: 5:11
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 57, col 16 to line 57, col 30 of module 1Bit: 91
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 57, col 16 to line 57, col 23 of module 1Bit: 80
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 58, col 16 to line 58, col 19 of module 1Bit: 11
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 59, col 16 to line 59, col 49 of module 1Bit: 11
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 60, col 16 to line 60, col 27 of module 1Bit: 11
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<exit line 62, col 1 to line 62, col 10 of module 1Bit>: 2:9
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 62, col 18 to line 62, col 34 of module 1Bit: 88
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 62, col 18 to line 62, col 25 of module 1Bit: 79
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 63, col 18 to line 63, col 54 of module 1Bit: 9
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 64, col 18 to line 64, col 50 of module 1Bit: 9
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<inv_1644430722260671000 line 10, col 1 to line 10, col 23 of module MC>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 11, col 1 to line 11, col 18 of module MC: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 84, col 23 to line 86, col 90 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 83, col 1 to line 86, col 90 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<Inv line 80, col 1 to line 80, col 3 of module 1Bit>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 80, col 8 to line 80, col 94 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 80, col 25 to line 80, col 94 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 80, col 26 to line 80, col 37 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 80, col 44 to line 80, col 93 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 80, col 44 to line 80, col 50 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 80, col 56 to line 80, col 92 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 80, col 56 to line 80, col 65 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 80, col 70 to line 80, col 92 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 80, col 17 to line 80, col 21 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(9) at 2022-02-09 21:18:43: 65 states generated (2 565 s/min), 32 distinct states found (1 263 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
65 states generated, 32 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 9.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1536ms at (2022-02-09 21:18:43)
@!@!@ENDMSG 2186 @!@!@
---- MODULE MC ----
EXTENDS 1Bit, TLC
\* CONSTANT definitions @modelParameterConstants:0N
const_1644430722260670000 ==
1
----
\* INVARIANT definition @modelCorrectnessInvariants:0
inv_1644430722260671000 ==
ME!MutualExclusion
----
\* PROPERTY definition @modelCorrectnessProperties:0
prop_1644430722260673000 ==
ME!Liveness
----
=============================================================================
\* Modification History
\* Created Wed Feb 09 21:18:42 MSK 2022 by kirr
@!@!@STARTMSG 2262:0 @!@!@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 44 and seed 3585913388356632348 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 79087] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
@!@!@ENDMSG 2220 @!@!@
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MC.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/1Bit.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/TLC.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Integers.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Naturals.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MutualExclusionSpec.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Sequences.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/FiniteSets.tla
Semantic processing of module Naturals
Semantic processing of module Integers
Semantic processing of module MutualExclusionSpec
Semantic processing of module 1Bit
Semantic processing of module Sequences
Semantic processing of module FiniteSets
Semantic processing of module TLC
Semantic processing of module MC
@!@!@STARTMSG 2219:0 @!@!@
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 21:18:42)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 4 branches.
@!@!@ENDMSG 2212 @!@!@
@!@!@STARTMSG 2189:0 @!@!@
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 21:18:43.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(9) at 2022-02-09 21:18:43: 65 states generated, 32 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2192:0 @!@!@
Checking 4 branches of temporal properties for the complete state space with 128 total distinct states at (2022-02-09 21:18:43)
@!@!@ENDMSG 2192 @!@!@
@!@!@STARTMSG 2116:1 @!@!@
Temporal properties were violated.
@!@!@ENDMSG 2116 @!@!@
@!@!@STARTMSG 2264:1 @!@!@
The following behavior constitutes a counter-example:
@!@!@ENDMSG 2264 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
1: <Initial predicate>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "ncs" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
2: <ncs line 38, col 14 to line 41, col 28 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "enter" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
3: <ncs line 38, col 14 to line 41, col 28 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "enter" @@ 1 :> "enter")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
4: <enter line 43, col 16 to line 45, col 50 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> TRUE)
/\ pc = (0 :> "enter" @@ 1 :> "e2")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
5: <e2 line 47, col 13 to line 51, col 27 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> TRUE)
/\ pc = (0 :> "enter" @@ 1 :> "cs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
6: <cs line 57, col 13 to line 60, col 27 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> TRUE)
/\ pc = (0 :> "enter" @@ 1 :> "exit")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
7: <exit line 62, col 15 to line 64, col 50 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "enter" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2122:4 @!@!@
3: Back to state: <ncs line 38, col 14 to line 41, col 28 of module 1Bit>
@!@!@ENDMSG 2122 @!@!@
@!@!@STARTMSG 2267:0 @!@!@
Finished checking temporal properties in 00s at 2022-02-09 21:18:43
@!@!@ENDMSG 2267 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 21:18:43
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 34, col 1 to line 34, col 4 of module 1Bit>: 2:2
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
line 35, col 19 to line 35, col 41 of module 1Bit: 2:4
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 35, col 26 to line 35, col 30 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 36, col 12 to line 36, col 44 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 36, col 17 to line 36, col 44 of module 1Bit: 2:4
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 36, col 27 to line 36, col 33 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ncs line 38, col 1 to line 38, col 9 of module 1Bit>: 6:19
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 38, col 17 to line 38, col 32 of module 1Bit: 104
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 38, col 17 to line 38, col 24 of module 1Bit: 85
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 39, col 17 to line 39, col 20 of module 1Bit: 19
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 40, col 17 to line 40, col 51 of module 1Bit: 19
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 41, col 17 to line 41, col 28 of module 1Bit: 19
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<enter line 43, col 1 to line 43, col 11 of module 1Bit>: 7:21
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 43, col 19 to line 43, col 36 of module 1Bit: 103
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 43, col 19 to line 43, col 26 of module 1Bit: 82
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 44, col 19 to line 44, col 54 of module 1Bit: 21
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 45, col 19 to line 45, col 50 of module 1Bit: 21
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e2 line 47, col 1 to line 47, col 8 of module 1Bit>: 9:13
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 47, col 16 to line 47, col 30 of module 1Bit: 94
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 16 to line 47, col 23 of module 1Bit: 81
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 48, col 19 to line 48, col 30 of module 1Bit: 13
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 49, col 24 to line 49, col 58 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 50, col 24 to line 50, col 58 of module 1Bit: 5
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 51, col 16 to line 51, col 27 of module 1Bit: 13
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e3 line 53, col 1 to line 53, col 8 of module 1Bit>: 2:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 53, col 16 to line 53, col 30 of module 1Bit: 92
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 53, col 16 to line 53, col 23 of module 1Bit: 80
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 54, col 16 to line 54, col 52 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 55, col 16 to line 55, col 50 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<cs line 57, col 1 to line 57, col 8 of module 1Bit>: 5:11
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 57, col 16 to line 57, col 30 of module 1Bit: 91
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 57, col 16 to line 57, col 23 of module 1Bit: 80
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 58, col 16 to line 58, col 19 of module 1Bit: 11
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 59, col 16 to line 59, col 49 of module 1Bit: 11
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 60, col 16 to line 60, col 27 of module 1Bit: 11
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<exit line 62, col 1 to line 62, col 10 of module 1Bit>: 2:9
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 62, col 18 to line 62, col 34 of module 1Bit: 88
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 62, col 18 to line 62, col 25 of module 1Bit: 79
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 63, col 18 to line 63, col 54 of module 1Bit: 9
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 64, col 18 to line 64, col 50 of module 1Bit: 9
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<inv_1644430722260671000 line 10, col 1 to line 10, col 23 of module MC>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 11, col 1 to line 11, col 18 of module MC: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 84, col 23 to line 86, col 90 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 83, col 1 to line 86, col 90 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<Inv line 80, col 1 to line 80, col 3 of module 1Bit>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 80, col 8 to line 80, col 94 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 80, col 25 to line 80, col 94 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 80, col 26 to line 80, col 37 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 80, col 44 to line 80, col 93 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 80, col 44 to line 80, col 50 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 80, col 56 to line 80, col 92 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 80, col 56 to line 80, col 65 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 80, col 70 to line 80, col 92 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 80, col 17 to line 80, col 21 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(9) at 2022-02-09 21:18:43: 65 states generated (2 565 s/min), 32 distinct states found (1 263 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
65 states generated, 32 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 9.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1536ms at (2022-02-09 21:18:43)
@!@!@ENDMSG 2186 @!@!@
strict digraph DiskGraph {
edge [colorscheme="paired12"]
nodesep=0.35;
subgraph cluster_graph {
color="white";
5842536125801274075 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")",style = filled]
5842536125801274075 -> -1556555203215492056 [label="",color="2",fontcolor="2"];
-1556555203215492056 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")"];
5842536125801274075 -> 7283859488389107957 [label="",color="2",fontcolor="2"];
7283859488389107957 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")"];
5842536125801274075 -> 5842536125801274075 [style="dashed"];
-1556555203215492056 -> 9093383713321976802 [label="",color="3",fontcolor="3"];
9093383713321976802 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")"];
-1556555203215492056 -> 4127721381544371643 [label="",color="2",fontcolor="2"];
4127721381544371643 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")"];
-1556555203215492056 -> -1556555203215492056 [style="dashed"];
7283859488389107957 -> 4127721381544371643 [label="",color="2",fontcolor="2"];
7283859488389107957 -> -5422048729487208106 [label="",color="3",fontcolor="3"];
-5422048729487208106 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")"];
7283859488389107957 -> 7283859488389107957 [style="dashed"];
9093383713321976802 -> -9009977641550737523 [label="",color="4",fontcolor="4"];
-9009977641550737523 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")"];
9093383713321976802 -> 8708581644610737910 [label="",color="2",fontcolor="2"];
8708581644610737910 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")"];
9093383713321976802 -> 9093383713321976802 [style="dashed"];
4127721381544371643 -> 8708581644610737910 [label="",color="3",fontcolor="3"];
4127721381544371643 -> 3082039774275618113 [label="",color="3",fontcolor="3"];
3082039774275618113 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")"];
4127721381544371643 -> 4127721381544371643 [style="dashed"];
-5422048729487208106 -> 3082039774275618113 [label="",color="2",fontcolor="2"];
-5422048729487208106 -> -1169519837004305570 [label="",color="4",fontcolor="4"];
-1169519837004305570 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")"];
-5422048729487208106 -> -5422048729487208106 [style="dashed"];
-9009977641550737523 -> 995953096327314194 [label="",color="5",fontcolor="5"];
995953096327314194 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")"];
-9009977641550737523 -> -5121863482050502963 [label="",color="2",fontcolor="2"];
-5121863482050502963 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")"];
-9009977641550737523 -> -9009977641550737523 [style="dashed"];
8708581644610737910 -> -5121863482050502963 [label="",color="4",fontcolor="4"];
3082039774275618113 -> -2056792537652954460 [label="",color="3",fontcolor="3"];
-2056792537652954460 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e2\")"];
8708581644610737910 -> -2056792537652954460 [label="",color="3",fontcolor="3"];
8708581644610737910 -> 8708581644610737910 [style="dashed"];
3082039774275618113 -> 8197006895853715273 [label="",color="4",fontcolor="4"];
8197006895853715273 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")"];
3082039774275618113 -> 3082039774275618113 [style="dashed"];
-1169519837004305570 -> 8197006895853715273 [label="",color="2",fontcolor="2"];
-1169519837004305570 -> 8520340123643197421 [label="",color="5",fontcolor="5"];
8520340123643197421 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")"];
-1169519837004305570 -> -1169519837004305570 [style="dashed"];
995953096327314194 -> 5842536125801274075 [label="",color="6",fontcolor="6"];
995953096327314194 -> -8945168453565677249 [label="",color="2",fontcolor="2"];
-8945168453565677249 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")"];
995953096327314194 -> 995953096327314194 [style="dashed"];
-5121863482050502963 -> -8945168453565677249 [label="",color="5",fontcolor="5"];
-5121863482050502963 -> -9031882332271479788 [label="",color="3",fontcolor="3"];
-9031882332271479788 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")"];
-5121863482050502963 -> -5121863482050502963 [style="dashed"];
-2056792537652954460 -> 5925454292439902453 [label="",color="4",fontcolor="4"];
5925454292439902453 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")"];
-2056792537652954460 -> -6541474795592985758 [label="",color="4",fontcolor="4"];
-6541474795592985758 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")"];
-2056792537652954460 -> -2056792537652954460 [style="dashed"];
8197006895853715273 -> -5156398808801869652 [label="",color="3",fontcolor="3"];
-5156398808801869652 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")"];
8197006895853715273 -> 2263292728747463335 [label="",color="5",fontcolor="5"];
2263292728747463335 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")"];
8197006895853715273 -> 8197006895853715273 [style="dashed"];
8520340123643197421 -> 2263292728747463335 [label="",color="2",fontcolor="2"];
8520340123643197421 -> 5842536125801274075 [label="",color="6",fontcolor="6"];
8520340123643197421 -> 8520340123643197421 [style="dashed"];
-8945168453565677249 -> 7283859488389107957 [label="",color="6",fontcolor="6"];
-8945168453565677249 -> 5053446689900193060 [label="",color="3",fontcolor="3"];
5053446689900193060 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")"];
-9031882332271479788 -> 5053446689900193060 [label="",color="5",fontcolor="5"];
-8945168453565677249 -> -8945168453565677249 [style="dashed"];
-9031882332271479788 -> -4259134631500849710 [label="",color="4",fontcolor="4"];
-4259134631500849710 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")"];
-9031882332271479788 -> -9031882332271479788 [style="dashed"];
5925454292439902453 -> 3082039774275618113 [label="",color="7",fontcolor="7"];
5925454292439902453 -> 1474854152591278387 [label="",color="4",fontcolor="4"];
1474854152591278387 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")"];
5925454292439902453 -> 5925454292439902453 [style="dashed"];
-6541474795592985758 -> 1474854152591278387 [label="",color="4",fontcolor="4"];
-5156398808801869652 -> 666380768106959613 [label="",color="4",fontcolor="4"];
666380768106959613 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")"];
-6541474795592985758 -> 8708581644610737910 [label="",color="7",fontcolor="7"];
-6541474795592985758 -> -6541474795592985758 [style="dashed"];
-5156398808801869652 -> 6240527035853587196 [label="",color="5",fontcolor="5"];
6240527035853587196 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")"];
-5156398808801869652 -> -5156398808801869652 [style="dashed"];
5053446689900193060 -> -5422048729487208106 [label="",color="6",fontcolor="6"];
5053446689900193060 -> 30891586767867106 [label="",color="4",fontcolor="4"];
30891586767867106 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")"];
5053446689900193060 -> 5053446689900193060 [style="dashed"];
2263292728747463335 -> 6240527035853587196 [label="",color="3",fontcolor="3"];
2263292728747463335 -> -1556555203215492056 [label="",color="6",fontcolor="6"];
2263292728747463335 -> 2263292728747463335 [style="dashed"];
-4259134631500849710 -> 30891586767867106 [label="",color="5",fontcolor="5"];
-4259134631500849710 -> -5121863482050502963 [label="",color="7",fontcolor="7"];
-4259134631500849710 -> -4259134631500849710 [style="dashed"];
1474854152591278387 -> 7820878542888365191 [label="",color="7",fontcolor="7"];
7820878542888365191 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")"];
666380768106959613 -> 8197006895853715273 [label="",color="7",fontcolor="7"];
666380768106959613 -> 7740283175518426456 [label="",color="5",fontcolor="5"];
7740283175518426456 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")"];
666380768106959613 -> 666380768106959613 [style="dashed"];
6240527035853587196 -> 7740283175518426456 [label="",color="4",fontcolor="4"];
6240527035853587196 -> 9093383713321976802 [label="",color="6",fontcolor="6"];
6240527035853587196 -> 6240527035853587196 [style="dashed"];
1474854152591278387 -> 2581594325022902366 [label="",color="7",fontcolor="7"];
2581594325022902366 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")"];
1474854152591278387 -> 1474854152591278387 [style="dashed"];
30891586767867106 -> -968891668905740144 [label="",color="6",fontcolor="6"];
-968891668905740144 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")"];
30891586767867106 -> -8945168453565677249 [label="",color="7",fontcolor="7"];
30891586767867106 -> 30891586767867106 [style="dashed"];
7740283175518426456 -> 2263292728747463335 [label="",color="7",fontcolor="7"];
7740283175518426456 -> 5456743395259980317 [label="",color="6",fontcolor="6"];
5456743395259980317 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"ncs\")"];
7740283175518426456 -> 7740283175518426456 [style="dashed"];
7820878542888365191 -> -6541474795592985758 [label="",color="3",fontcolor="3"];
7820878542888365191 -> 4127721381544371643 [label="",color="7",fontcolor="7"];
7820878542888365191 -> 7820878542888365191 [style="dashed"];
2581594325022902366 -> 4127721381544371643 [label="",color="7",fontcolor="7"];
2581594325022902366 -> 5925454292439902453 [label="",color="3",fontcolor="3"];
2581594325022902366 -> 2581594325022902366 [style="dashed"];
-968891668905740144 -> 7820878542888365191 [label="",color="2",fontcolor="2"];
-968891668905740144 -> 7283859488389107957 [label="",color="7",fontcolor="7"];
-968891668905740144 -> -968891668905740144 [style="dashed"];
5456743395259980317 -> -1556555203215492056 [label="",color="7",fontcolor="7"];
5456743395259980317 -> 2581594325022902366 [label="",color="2",fontcolor="2"];
5456743395259980317 -> 5456743395259980317 [style="dashed"];
{rank = same; 5842536125801274075;}
{rank = same; 7283859488389107957;-1556555203215492056;}
{rank = same; -5422048729487208106;4127721381544371643;9093383713321976802;}
{rank = same; -9009977641550737523;8708581644610737910;-1169519837004305570;3082039774275618113;}
{rank = same; -2056792537652954460;8520340123643197421;8197006895853715273;995953096327314194;-5121863482050502963;}
{rank = same; 2263292728747463335;-9031882332271479788;5925454292439902453;-5156398808801869652;-8945168453565677249;-6541474795592985758;}
{rank = same; 6240527035853587196;5053446689900193060;-4259134631500849710;1474854152591278387;666380768106959613;}
{rank = same; 7820878542888365191;2581594325022902366;30891586767867106;7740283175518426456;}
{rank = same; -968891668905740144;5456743395259980317;}
}
subgraph cluster_legend {graph[style=bold];label = "Next State Actions" style="solid"
node [ labeljust="l",colorscheme="paired12",style=filled,shape=record ]
cs [label="cs",fillcolor=5]
exit [label="exit",fillcolor=6]
enter [label="enter",fillcolor=3]
e2 [label="e2",fillcolor=4]
e3 [label="e3",fillcolor=7]
ncs [label="ncs",fillcolor=2]
}}
\ No newline at end of file
digraph DiskGraph {
nodesep=0.35;
subgraph cluster_graph {
color="white";
"5842536125801274075.1" [style = filled] [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")
#5842536125801274075.1#"]
"5842536125801274075.1" -> "7283859488389107957.1" [label="[t]"];
"7283859488389107957.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#7283859488389107957.1#"];
"5842536125801274075.1" -> "-1556555203215492056.1" [label="[t]"];
"-1556555203215492056.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")
#-1556555203215492056.1#"];
"5842536125801274075.1" -> "5842536125801274075.1" [label="[f]"];
"5842536125801274075.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")
#5842536125801274075.1#"];
"-1556555203215492056.1" -> "9093383713321976802.1" [label="[t]"];
"9093383713321976802.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")
#9093383713321976802.1#"];
"-1556555203215492056.1" -> "-1556555203215492056.1" [label="[f]"];
"-1556555203215492056.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")
#-1556555203215492056.1#"];
"-1556555203215492056.1" -> "4127721381544371643.1" [label="[t]"];
"4127721381544371643.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#4127721381544371643.1#"];
"9093383713321976802.1" -> "9093383713321976802.1" [label="[f]"];
"9093383713321976802.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")
#9093383713321976802.1#"];
"9093383713321976802.1" -> "8708581644610737910.1" [label="[t]"];
"8708581644610737910.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#8708581644610737910.1#"];
"9093383713321976802.1" -> "-9009977641550737523.1" [label="[t]"];
"-9009977641550737523.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")
#-9009977641550737523.1#"];
"7283859488389107957.1" -> "7283859488389107957.1" [label="[f]"];
"7283859488389107957.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#7283859488389107957.1#"];
"7283859488389107957.1" -> "-5422048729487208106.1" [label="[t]"];
"-5422048729487208106.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")
#-5422048729487208106.1#"];
"7283859488389107957.1" -> "4127721381544371643.1" [label="[t]"];
"4127721381544371643.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#4127721381544371643.1#"];
"4127721381544371643.1" -> "3082039774275618113.1" [label="[t]"];
"3082039774275618113.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#3082039774275618113.1#"];
"4127721381544371643.1" -> "8708581644610737910.1" [label="[t]"];
"8708581644610737910.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#8708581644610737910.1#"];
"4127721381544371643.1" -> "4127721381544371643.1" [label="[f]"];
"4127721381544371643.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#4127721381544371643.1#"];
"-5422048729487208106.1" -> "3082039774275618113.1" [label="[t]"];
"3082039774275618113.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#3082039774275618113.1#"];
"-5422048729487208106.1" -> "-5422048729487208106.1" [label="[f]"];
"-5422048729487208106.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")
#-5422048729487208106.1#"];
"-5422048729487208106.1" -> "-1169519837004305570.0" [label="[t]"];
"-1169519837004305570.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")
#-1169519837004305570.0#"];
"-5422048729487208106.1" -> "-1169519837004305570.1" [label="[t]"];
"-1169519837004305570.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")
#-1169519837004305570.1#"];
"-9009977641550737523.1" -> "995953096327314194.1" [label="[t]"];
"995953096327314194.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")
#995953096327314194.1#"];
"-9009977641550737523.1" -> "-5121863482050502963.1" [label="[t]"];
"-5121863482050502963.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#-5121863482050502963.1#"];
"-9009977641550737523.1" -> "-9009977641550737523.1" [label="[f]"];
"-9009977641550737523.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")
#-9009977641550737523.1#"];
"3082039774275618113.1" -> "3082039774275618113.1" [label="[f]"];
"3082039774275618113.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#3082039774275618113.1#"];
"3082039774275618113.1" -> "-2056792537652954460.1" [label="[t]"];
"-2056792537652954460.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e2\")
#-2056792537652954460.1#"];
"3082039774275618113.1" -> "8197006895853715273.0" [label="[t]"];
"8197006895853715273.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#8197006895853715273.0#"];
"3082039774275618113.1" -> "8197006895853715273.1" [label="[t]"];
"8197006895853715273.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#8197006895853715273.1#"];
"8708581644610737910.1" -> "-2056792537652954460.1" [label="[t]"];
"-2056792537652954460.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e2\")
#-2056792537652954460.1#"];
"8708581644610737910.1" -> "8708581644610737910.1" [label="[f]"];
"8708581644610737910.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#8708581644610737910.1#"];
"8708581644610737910.1" -> "-5121863482050502963.1" [label="[t]"];
"-5121863482050502963.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#-5121863482050502963.1#"];
"-1169519837004305570.0" -> "8197006895853715273.2" [label="[t]"];
"8197006895853715273.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#8197006895853715273.2#"];
"-1169519837004305570.0" -> "-1169519837004305570.2" [label="[f]"];
"-1169519837004305570.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")
#-1169519837004305570.2#"];
"-1169519837004305570.2" -> "8197006895853715273.2" [style="dotted"] [label="[t]"];
"-1169519837004305570.1" -> "8197006895853715273.0" [label="[t]"];
"8197006895853715273.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#8197006895853715273.0#"];
"-1169519837004305570.1" -> "8197006895853715273.1" [label="[t]"];
"8197006895853715273.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#8197006895853715273.1#"];
"-1169519837004305570.1" -> "8520340123643197421.1" [label="[t]"];
"8520340123643197421.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")
#8520340123643197421.1#"];
"-1169519837004305570.1" -> "-1169519837004305570.0" [label="[f]"];
"-1169519837004305570.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")
#-1169519837004305570.0#"];
"-1169519837004305570.1" -> "-1169519837004305570.1" [label="[f]"];
"-1169519837004305570.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")
#-1169519837004305570.1#"];
"995953096327314194.1" -> "995953096327314194.1" [label="[f]"];
"995953096327314194.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")
#995953096327314194.1#"];
"995953096327314194.1" -> "5842536125801274075.1" [label="[t]"];
"5842536125801274075.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")
#5842536125801274075.1#"];
"995953096327314194.1" -> "-8945168453565677249.1" [label="[t]"];
"-8945168453565677249.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#-8945168453565677249.1#"];
"-5121863482050502963.1" -> "-9031882332271479788.1" [label="[t]"];
"-9031882332271479788.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")
#-9031882332271479788.1#"];
"-5121863482050502963.1" -> "-5121863482050502963.1" [label="[f]"];
"-5121863482050502963.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#-5121863482050502963.1#"];
"-5121863482050502963.1" -> "-8945168453565677249.1" [label="[t]"];
"-8945168453565677249.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#-8945168453565677249.1#"];
"-2056792537652954460.1" -> "-6541474795592985758.1" [label="[t]"];
"-6541474795592985758.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-6541474795592985758.1#"];
"-2056792537652954460.1" -> "-2056792537652954460.1" [label="[f]"];
"-2056792537652954460.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e2\")
#-2056792537652954460.1#"];
"-2056792537652954460.1" -> "5925454292439902453.1" [label="[t]"];
"5925454292439902453.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#5925454292439902453.1#"];
"8197006895853715273.0" -> "8197006895853715273.2" [label="[f]"];
"8197006895853715273.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#8197006895853715273.2#"];
"8197006895853715273.0" -> "-5156398808801869652.2" [label="[t]"];
"-5156398808801869652.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#-5156398808801869652.2#"];
"8197006895853715273.1" -> "2263292728747463335.1" [label="[t]"];
"2263292728747463335.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")
#2263292728747463335.1#"];
"8197006895853715273.1" -> "8197006895853715273.0" [label="[f]"];
"8197006895853715273.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#8197006895853715273.0#"];
"8197006895853715273.1" -> "8197006895853715273.1" [label="[f]"];
"8197006895853715273.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#8197006895853715273.1#"];
"8197006895853715273.1" -> "-5156398808801869652.0" [label="[t]"];
"-5156398808801869652.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#-5156398808801869652.0#"];
"8197006895853715273.1" -> "-5156398808801869652.1" [label="[t]"];
"-5156398808801869652.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#-5156398808801869652.1#"];
"8197006895853715273.2" -> "8197006895853715273.2" [label="[f]"];
"8197006895853715273.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#8197006895853715273.2#"];
"8197006895853715273.2" -> "-5156398808801869652.2" [label="[t]"];
"-5156398808801869652.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#-5156398808801869652.2#"];
"8520340123643197421.1" -> "2263292728747463335.1" [label="[t]"];
"2263292728747463335.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")
#2263292728747463335.1#"];
"8520340123643197421.1" -> "5842536125801274075.1" [label="[t]"];
"5842536125801274075.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")
#5842536125801274075.1#"];
"8520340123643197421.1" -> "8520340123643197421.1" [label="[f]"];
"8520340123643197421.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")
#8520340123643197421.1#"];
"-8945168453565677249.1" -> "5053446689900193060.1" [label="[t]"];
"5053446689900193060.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#5053446689900193060.1#"];
"-8945168453565677249.1" -> "7283859488389107957.1" [label="[t]"];
"7283859488389107957.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#7283859488389107957.1#"];
"-8945168453565677249.1" -> "-8945168453565677249.1" [label="[f]"];
"-8945168453565677249.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#-8945168453565677249.1#"];
"-9031882332271479788.1" -> "-4259134631500849710.1" [label="[t]"];
"-4259134631500849710.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-4259134631500849710.1#"];
"-9031882332271479788.1" -> "5053446689900193060.1" [label="[t]"];
"5053446689900193060.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#5053446689900193060.1#"];
"-9031882332271479788.1" -> "-9031882332271479788.1" [label="[f]"];
"-9031882332271479788.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")
#-9031882332271479788.1#"];
"5925454292439902453.1" -> "3082039774275618113.1" [label="[t]"];
"3082039774275618113.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#3082039774275618113.1#"];
"5925454292439902453.1" -> "1474854152591278387.1" [label="[t]"];
"1474854152591278387.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#1474854152591278387.1#"];
"5925454292439902453.1" -> "5925454292439902453.1" [label="[f]"];
"5925454292439902453.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#5925454292439902453.1#"];
"-6541474795592985758.1" -> "-6541474795592985758.1" [label="[f]"];
"-6541474795592985758.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-6541474795592985758.1#"];
"-6541474795592985758.1" -> "1474854152591278387.1" [label="[t]"];
"1474854152591278387.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#1474854152591278387.1#"];
"-6541474795592985758.1" -> "8708581644610737910.1" [label="[t]"];
"8708581644610737910.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#8708581644610737910.1#"];
"-5156398808801869652.2" -> "666380768106959613.2" [label="[t]"];
"666380768106959613.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#666380768106959613.2#"];
"-5156398808801869652.2" -> "-5156398808801869652.2" [label="[f]"];
"-5156398808801869652.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#-5156398808801869652.2#"];
"-5156398808801869652.0" -> "666380768106959613.2" [label="[t]"];
"666380768106959613.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#666380768106959613.2#"];
"-5156398808801869652.0" -> "-5156398808801869652.2" [label="[f]"];
"-5156398808801869652.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#-5156398808801869652.2#"];
"-5156398808801869652.1" -> "6240527035853587196.1" [label="[t]"];
"6240527035853587196.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")
#6240527035853587196.1#"];
"-5156398808801869652.1" -> "666380768106959613.0" [label="[t]"];
"666380768106959613.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#666380768106959613.0#"];
"-5156398808801869652.1" -> "666380768106959613.1" [label="[t]"];
"666380768106959613.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#666380768106959613.1#"];
"-5156398808801869652.1" -> "-5156398808801869652.0" [label="[f]"];
"-5156398808801869652.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#-5156398808801869652.0#"];
"-5156398808801869652.1" -> "-5156398808801869652.1" [label="[f]"];
"-5156398808801869652.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#-5156398808801869652.1#"];
"2263292728747463335.1" -> "2263292728747463335.1" [label="[f]"];
"2263292728747463335.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")
#2263292728747463335.1#"];
"2263292728747463335.1" -> "-1556555203215492056.1" [label="[t]"];
"-1556555203215492056.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")
#-1556555203215492056.1#"];
"2263292728747463335.1" -> "6240527035853587196.1" [label="[t]"];
"6240527035853587196.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")
#6240527035853587196.1#"];
"-4259134631500849710.1" -> "30891586767867106.1" [label="[t]"];
"30891586767867106.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#30891586767867106.1#"];
"-4259134631500849710.1" -> "-4259134631500849710.1" [label="[f]"];
"-4259134631500849710.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-4259134631500849710.1#"];
"-4259134631500849710.1" -> "-5121863482050502963.1" [label="[t]"];
"-5121863482050502963.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#-5121863482050502963.1#"];
"5053446689900193060.1" -> "30891586767867106.1" [label="[t]"];
"30891586767867106.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#30891586767867106.1#"];
"5053446689900193060.1" -> "5053446689900193060.1" [label="[f]"];
"5053446689900193060.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#5053446689900193060.1#"];
"5053446689900193060.1" -> "-5422048729487208106.1" [label="[t]"];
"-5422048729487208106.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")
#-5422048729487208106.1#"];
"666380768106959613.2" -> "8197006895853715273.2" [label="[t]"];
"8197006895853715273.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#8197006895853715273.2#"];
"666380768106959613.2" -> "666380768106959613.2" [label="[f]"];
"666380768106959613.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#666380768106959613.2#"];
"666380768106959613.0" -> "8197006895853715273.2" [label="[t]"];
"8197006895853715273.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#8197006895853715273.2#"];
"666380768106959613.0" -> "666380768106959613.2" [label="[f]"];
"666380768106959613.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#666380768106959613.2#"];
"666380768106959613.1" -> "7740283175518426456.1" [label="[t]"];
"7740283175518426456.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")
#7740283175518426456.1#"];
"666380768106959613.1" -> "8197006895853715273.0" [label="[t]"];
"8197006895853715273.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#8197006895853715273.0#"];
"666380768106959613.1" -> "8197006895853715273.1" [label="[t]"];
"8197006895853715273.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#8197006895853715273.1#"];
"666380768106959613.1" -> "666380768106959613.0" [label="[f]"];
"666380768106959613.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#666380768106959613.0#"];
"666380768106959613.1" -> "666380768106959613.1" [label="[f]"];
"666380768106959613.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#666380768106959613.1#"];
"1474854152591278387.1" -> "1474854152591278387.1" [label="[f]"];
"1474854152591278387.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#1474854152591278387.1#"];
"1474854152591278387.1" -> "7820878542888365191.1" [label="[t]"];
"7820878542888365191.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#7820878542888365191.1#"];
"1474854152591278387.1" -> "2581594325022902366.1" [label="[t]"];
"2581594325022902366.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#2581594325022902366.1#"];
"30891586767867106.1" -> "-968891668905740144.1" [label="[t]"];
"-968891668905740144.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#-968891668905740144.1#"];
"30891586767867106.1" -> "30891586767867106.1" [label="[f]"];
"30891586767867106.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#30891586767867106.1#"];
"30891586767867106.1" -> "-8945168453565677249.1" [label="[t]"];
"-8945168453565677249.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#-8945168453565677249.1#"];
"7740283175518426456.1" -> "2263292728747463335.1" [label="[t]"];
"2263292728747463335.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")
#2263292728747463335.1#"];
"7740283175518426456.1" -> "7740283175518426456.1" [label="[f]"];
"7740283175518426456.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")
#7740283175518426456.1#"];
"7740283175518426456.1" -> "5456743395259980317.1" [label="[t]"];
"5456743395259980317.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"ncs\")
#5456743395259980317.1#"];
"7820878542888365191.1" -> "-6541474795592985758.1" [label="[t]"];
"-6541474795592985758.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-6541474795592985758.1#"];
"7820878542888365191.1" -> "7820878542888365191.1" [label="[f]"];
"7820878542888365191.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#7820878542888365191.1#"];
"7820878542888365191.1" -> "4127721381544371643.1" [label="[t]"];
"4127721381544371643.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#4127721381544371643.1#"];
"2581594325022902366.1" -> "5925454292439902453.1" [label="[t]"];
"5925454292439902453.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#5925454292439902453.1#"];
"2581594325022902366.1" -> "4127721381544371643.1" [label="[t]"];
"4127721381544371643.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#4127721381544371643.1#"];
"2581594325022902366.1" -> "2581594325022902366.1" [label="[f]"];
"2581594325022902366.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#2581594325022902366.1#"];
"-968891668905740144.1" -> "-968891668905740144.1" [label="[f]"];
"-968891668905740144.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#-968891668905740144.1#"];
"-968891668905740144.1" -> "7283859488389107957.1" [label="[t]"];
"7283859488389107957.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#7283859488389107957.1#"];
"-968891668905740144.1" -> "7820878542888365191.1" [label="[t]"];
"7820878542888365191.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#7820878542888365191.1#"];
"6240527035853587196.1" -> "9093383713321976802.1" [label="[t]"];
"9093383713321976802.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")
#9093383713321976802.1#"];
"6240527035853587196.1" -> "7740283175518426456.1" [label="[t]"];
"7740283175518426456.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")
#7740283175518426456.1#"];
"6240527035853587196.1" -> "6240527035853587196.1" [label="[f]"];
"6240527035853587196.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")
#6240527035853587196.1#"];
"5456743395259980317.1" -> "-1556555203215492056.1" [label="[t]"];
"-1556555203215492056.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")
#-1556555203215492056.1#"];
"5456743395259980317.1" -> "5456743395259980317.1" [label="[f]"];
"5456743395259980317.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"ncs\")
#5456743395259980317.1#"];
"5456743395259980317.1" -> "2581594325022902366.1" [label="[t]"];
"2581594325022902366.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#2581594325022902366.1#"];
}
}> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#2581594325022902366.1#"];
}
}1479788.0" -> "-4259134631500849710.2" [label="[t]"];
"-4259134631500849710.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-4259134631500849710.2#"];
"-9031882332271479788.0" -> "5053446689900193060.2" [label="[t]"];
"5053446689900193060.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#5053446689900193060.2#"];
"-9031882332271479788.0" -> "-9031882332271479788.2" [label="[f]"];
"-9031882332271479788.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")
#-9031882332271479788.2#"];
"-9031882332271479788.1" -> "-4259134631500849710.0" [label="[t]"];
"-4259134631500849710.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-4259134631500849710.0#"];
"-9031882332271479788.1" -> "-4259134631500849710.1" [label="[t]"];
"-4259134631500849710.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-4259134631500849710.1#"];
"-9031882332271479788.1" -> "5053446689900193060.0" [label="[t]"];
"5053446689900193060.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#5053446689900193060.0#"];
"-9031882332271479788.1" -> "5053446689900193060.1" [label="[t]"];
"5053446689900193060.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#5053446689900193060.1#"];
"-9031882332271479788.1" -> "-9031882332271479788.0" [label="[f]"];
"-9031882332271479788.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")
#-9031882332271479788.0#"];
"-9031882332271479788.1" -> "-9031882332271479788.1" [label="[f]"];
"-9031882332271479788.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")
#-9031882332271479788.1#"];
"5925454292439902453.2" -> "3082039774275618113.2" [label="[t]"];
"3082039774275618113.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#3082039774275618113.2#"];
"5925454292439902453.2" -> "1474854152591278387.2" [label="[t]"];
"1474854152591278387.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#1474854152591278387.2#"];
"5925454292439902453.2" -> "5925454292439902453.2" [label="[f]"];
"5925454292439902453.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#5925454292439902453.2#"];
"5925454292439902453.0" -> "3082039774275618113.2" [label="[t]"];
"3082039774275618113.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#3082039774275618113.2#"];
"5925454292439902453.0" -> "1474854152591278387.2" [label="[t]"];
"1474854152591278387.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#1474854152591278387.2#"];
"5925454292439902453.0" -> "5925454292439902453.2" [label="[f]"];
"5925454292439902453.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#5925454292439902453.2#"];
"5925454292439902453.1" -> "3082039774275618113.0" [label="[t]"];
"3082039774275618113.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#3082039774275618113.0#"];
"5925454292439902453.1" -> "3082039774275618113.1" [label="[t]"];
"3082039774275618113.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#3082039774275618113.1#"];
"5925454292439902453.1" -> "1474854152591278387.0" [label="[t]"];
"1474854152591278387.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#1474854152591278387.0#"];
"5925454292439902453.1" -> "1474854152591278387.1" [label="[t]"];
"1474854152591278387.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#1474854152591278387.1#"];
"5925454292439902453.1" -> "5925454292439902453.0" [label="[f]"];
"5925454292439902453.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#5925454292439902453.0#"];
"5925454292439902453.1" -> "5925454292439902453.1" [label="[f]"];
"5925454292439902453.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#5925454292439902453.1#"];
"-6541474795592985758.2" -> "-6541474795592985758.2" [label="[f]"];
"-6541474795592985758.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-6541474795592985758.2#"];
"-6541474795592985758.2" -> "1474854152591278387.2" [label="[t]"];
"1474854152591278387.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#1474854152591278387.2#"];
"-6541474795592985758.2" -> "8708581644610737910.2" [label="[t]"];
"8708581644610737910.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#8708581644610737910.2#"];
"-6541474795592985758.0" -> "-6541474795592985758.2" [label="[f]"];
"-6541474795592985758.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-6541474795592985758.2#"];
"-6541474795592985758.0" -> "1474854152591278387.2" [label="[t]"];
"1474854152591278387.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#1474854152591278387.2#"];
"-6541474795592985758.0" -> "8708581644610737910.2" [label="[t]"];
"8708581644610737910.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#8708581644610737910.2#"];
"-6541474795592985758.1" -> "-6541474795592985758.0" [label="[f]"];
"-6541474795592985758.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-6541474795592985758.0#"];
"-6541474795592985758.1" -> "-6541474795592985758.1" [label="[f]"];
"-6541474795592985758.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-6541474795592985758.1#"];
"-6541474795592985758.1" -> "1474854152591278387.0" [label="[t]"];
"1474854152591278387.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#1474854152591278387.0#"];
"-6541474795592985758.1" -> "1474854152591278387.1" [label="[t]"];
"1474854152591278387.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#1474854152591278387.1#"];
"-6541474795592985758.1" -> "8708581644610737910.0" [label="[t]"];
"8708581644610737910.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#8708581644610737910.0#"];
"-6541474795592985758.1" -> "8708581644610737910.1" [label="[t]"];
"8708581644610737910.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#8708581644610737910.1#"];
"-5156398808801869652.1" -> "6240527035853587196.1" [label="[t]"];
"6240527035853587196.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")
#6240527035853587196.1#"];
"-5156398808801869652.1" -> "666380768106959613.1" [label="[t]"];
"666380768106959613.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#666380768106959613.1#"];
"-5156398808801869652.1" -> "-5156398808801869652.1" [label="[f]"];
"-5156398808801869652.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#-5156398808801869652.1#"];
"5053446689900193060.2" -> "30891586767867106.2" [label="[t]"];
"30891586767867106.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#30891586767867106.2#"];
"5053446689900193060.2" -> "5053446689900193060.2" [label="[f]"];
"5053446689900193060.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#5053446689900193060.2#"];
"5053446689900193060.2" -> "-5422048729487208106.2" [label="[t]"];
"-5422048729487208106.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")
#-5422048729487208106.2#"];
"5053446689900193060.0" -> "30891586767867106.2" [label="[t]"];
"30891586767867106.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#30891586767867106.2#"];
"5053446689900193060.0" -> "5053446689900193060.2" [label="[f]"];
"5053446689900193060.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#5053446689900193060.2#"];
"5053446689900193060.0" -> "-5422048729487208106.2" [label="[t]"];
"-5422048729487208106.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")
#-5422048729487208106.2#"];
"5053446689900193060.1" -> "30891586767867106.0" [label="[t]"];
"30891586767867106.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#30891586767867106.0#"];
"5053446689900193060.1" -> "30891586767867106.1" [label="[t]"];
"30891586767867106.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#30891586767867106.1#"];
"5053446689900193060.1" -> "5053446689900193060.0" [label="[f]"];
"5053446689900193060.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#5053446689900193060.0#"];
"5053446689900193060.1" -> "5053446689900193060.1" [label="[f]"];
"5053446689900193060.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#5053446689900193060.1#"];
"5053446689900193060.1" -> "-5422048729487208106.0" [label="[t]"];
"-5422048729487208106.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")
#-5422048729487208106.0#"];
"5053446689900193060.1" -> "-5422048729487208106.1" [label="[t]"];
"-5422048729487208106.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")
#-5422048729487208106.1#"];
"2263292728747463335.1" -> "2263292728747463335.1" [label="[f]"];
"2263292728747463335.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")
#2263292728747463335.1#"];
"2263292728747463335.1" -> "-1556555203215492056.1" [label="[t]"];
"-1556555203215492056.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")
#-1556555203215492056.1#"];
"2263292728747463335.1" -> "6240527035853587196.1" [label="[t]"];
"6240527035853587196.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")
#6240527035853587196.1#"];
"-4259134631500849710.2" -> "30891586767867106.2" [label="[t]"];
"30891586767867106.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#30891586767867106.2#"];
"-4259134631500849710.2" -> "-4259134631500849710.2" [label="[f]"];
"-4259134631500849710.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-4259134631500849710.2#"];
"-4259134631500849710.2" -> "-5121863482050502963.2" [label="[t]"];
"-5121863482050502963.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#-5121863482050502963.2#"];
"-4259134631500849710.0" -> "30891586767867106.2" [label="[t]"];
"30891586767867106.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#30891586767867106.2#"];
"-4259134631500849710.0" -> "-4259134631500849710.2" [label="[f]"];
"-4259134631500849710.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-4259134631500849710.2#"];
"-4259134631500849710.0" -> "-5121863482050502963.2" [label="[t]"];
"-5121863482050502963.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#-5121863482050502963.2#"];
"-4259134631500849710.1" -> "30891586767867106.0" [label="[t]"];
"30891586767867106.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#30891586767867106.0#"];
"-4259134631500849710.1" -> "30891586767867106.1" [label="[t]"];
"30891586767867106.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#30891586767867106.1#"];
"-4259134631500849710.1" -> "-4259134631500849710.0" [label="[f]"];
"-4259134631500849710.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-4259134631500849710.0#"];
"-4259134631500849710.1" -> "-4259134631500849710.1" [label="[f]"];
"-4259134631500849710.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-4259134631500849710.1#"];
"-4259134631500849710.1" -> "-5121863482050502963.0" [label="[t]"];
"-5121863482050502963.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#-5121863482050502963.0#"];
"-4259134631500849710.1" -> "-5121863482050502963.1" [label="[t]"];
"-5121863482050502963.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#-5121863482050502963.1#"];
"666380768106959613.1" -> "7740283175518426456.1" [label="[t]"];
"7740283175518426456.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")
#7740283175518426456.1#"];
"666380768106959613.1" -> "8197006895853715273.1" [label="[t]"];
"8197006895853715273.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#8197006895853715273.1#"];
"666380768106959613.1" -> "666380768106959613.1" [label="[f]"];
"666380768106959613.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#666380768106959613.1#"];
"1474854152591278387.2" -> "1474854152591278387.2" [label="[f]"];
"1474854152591278387.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#1474854152591278387.2#"];
"1474854152591278387.2" -> "7820878542888365191.2" [label="[t]"];
"7820878542888365191.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#7820878542888365191.2#"];
"1474854152591278387.2" -> "2581594325022902366.2" [label="[t]"];
"2581594325022902366.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#2581594325022902366.2#"];
"1474854152591278387.0" -> "1474854152591278387.2" [label="[f]"];
"1474854152591278387.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#1474854152591278387.2#"];
"1474854152591278387.0" -> "7820878542888365191.2" [label="[t]"];
"7820878542888365191.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#7820878542888365191.2#"];
"1474854152591278387.0" -> "2581594325022902366.2" [label="[t]"];
"2581594325022902366.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#2581594325022902366.2#"];
"1474854152591278387.1" -> "1474854152591278387.0" [label="[f]"];
"1474854152591278387.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#1474854152591278387.0#"];
"1474854152591278387.1" -> "1474854152591278387.1" [label="[f]"];
"1474854152591278387.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#1474854152591278387.1#"];
"1474854152591278387.1" -> "7820878542888365191.0" [label="[t]"];
"7820878542888365191.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#7820878542888365191.0#"];
"1474854152591278387.1" -> "7820878542888365191.1" [label="[t]"];
"7820878542888365191.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#7820878542888365191.1#"];
"1474854152591278387.1" -> "2581594325022902366.0" [label="[t]"];
"2581594325022902366.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#2581594325022902366.0#"];
"1474854152591278387.1" -> "2581594325022902366.1" [label="[t]"];
"2581594325022902366.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#2581594325022902366.1#"];
"30891586767867106.2" -> "-968891668905740144.2" [label="[t]"];
"-968891668905740144.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#-968891668905740144.2#"];
"30891586767867106.2" -> "30891586767867106.2" [label="[f]"];
"30891586767867106.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#30891586767867106.2#"];
"30891586767867106.2" -> "-8945168453565677249.2" [label="[t]"];
"-8945168453565677249.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#-8945168453565677249.2#"];
"30891586767867106.0" -> "-968891668905740144.2" [label="[t]"];
"-968891668905740144.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#-968891668905740144.2#"];
"30891586767867106.0" -> "30891586767867106.2" [label="[f]"];
"30891586767867106.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#30891586767867106.2#"];
"30891586767867106.0" -> "-8945168453565677249.2" [label="[t]"];
"-8945168453565677249.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#-8945168453565677249.2#"];
"30891586767867106.1" -> "-968891668905740144.0" [label="[t]"];
"-968891668905740144.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#-968891668905740144.0#"];
"30891586767867106.1" -> "-968891668905740144.1" [label="[t]"];
"-968891668905740144.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#-968891668905740144.1#"];
"30891586767867106.1" -> "30891586767867106.0" [label="[f]"];
"30891586767867106.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#30891586767867106.0#"];
"30891586767867106.1" -> "30891586767867106.1" [label="[f]"];
"30891586767867106.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#30891586767867106.1#"];
"30891586767867106.1" -> "-8945168453565677249.0" [label="[t]"];
"-8945168453565677249.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#-8945168453565677249.0#"];
"30891586767867106.1" -> "-8945168453565677249.1" [label="[t]"];
"-8945168453565677249.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#-8945168453565677249.1#"];
"7740283175518426456.1" -> "2263292728747463335.1" [label="[t]"];
"2263292728747463335.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")
#2263292728747463335.1#"];
"7740283175518426456.1" -> "7740283175518426456.1" [label="[f]"];
"7740283175518426456.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")
#7740283175518426456.1#"];
"7740283175518426456.1" -> "5456743395259980317.1" [label="[t]"];
"5456743395259980317.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"ncs\")
#5456743395259980317.1#"];
"7820878542888365191.2" -> "-6541474795592985758.2" [label="[t]"];
"-6541474795592985758.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-6541474795592985758.2#"];
"7820878542888365191.2" -> "7820878542888365191.2" [label="[f]"];
"7820878542888365191.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#7820878542888365191.2#"];
"7820878542888365191.2" -> "4127721381544371643.2" [label="[t]"];
"4127721381544371643.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#4127721381544371643.2#"];
"7820878542888365191.0" -> "-6541474795592985758.2" [label="[t]"];
"-6541474795592985758.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-6541474795592985758.2#"];
"7820878542888365191.0" -> "7820878542888365191.2" [label="[f]"];
"7820878542888365191.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#7820878542888365191.2#"];
"7820878542888365191.0" -> "4127721381544371643.2" [label="[t]"];
"4127721381544371643.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#4127721381544371643.2#"];
"7820878542888365191.1" -> "-6541474795592985758.0" [label="[t]"];
"-6541474795592985758.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-6541474795592985758.0#"];
"7820878542888365191.1" -> "-6541474795592985758.1" [label="[t]"];
"-6541474795592985758.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-6541474795592985758.1#"];
"7820878542888365191.1" -> "7820878542888365191.0" [label="[f]"];
"7820878542888365191.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#7820878542888365191.0#"];
"7820878542888365191.1" -> "7820878542888365191.1" [label="[f]"];
"7820878542888365191.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#7820878542888365191.1#"];
"7820878542888365191.1" -> "4127721381544371643.0" [label="[t]"];
"4127721381544371643.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#4127721381544371643.0#"];
"7820878542888365191.1" -> "4127721381544371643.1" [label="[t]"];
"4127721381544371643.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#4127721381544371643.1#"];
"2581594325022902366.2" -> "5925454292439902453.2" [label="[t]"];
"5925454292439902453.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#5925454292439902453.2#"];
"2581594325022902366.2" -> "4127721381544371643.2" [label="[t]"];
"4127721381544371643.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#4127721381544371643.2#"];
"2581594325022902366.2" -> "2581594325022902366.2" [label="[f]"];
"2581594325022902366.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#2581594325022902366.2#"];
"2581594325022902366.0" -> "5925454292439902453.2" [label="[t]"];
"5925454292439902453.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#5925454292439902453.2#"];
"2581594325022902366.0" -> "4127721381544371643.2" [label="[t]"];
"4127721381544371643.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#4127721381544371643.2#"];
"2581594325022902366.0" -> "2581594325022902366.2" [label="[f]"];
"2581594325022902366.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#2581594325022902366.2#"];
"2581594325022902366.1" -> "5925454292439902453.0" [label="[t]"];
"5925454292439902453.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#5925454292439902453.0#"];
"2581594325022902366.1" -> "5925454292439902453.1" [label="[t]"];
"5925454292439902453.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#5925454292439902453.1#"];
"2581594325022902366.1" -> "4127721381544371643.0" [label="[t]"];
"4127721381544371643.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#4127721381544371643.0#"];
"2581594325022902366.1" -> "4127721381544371643.1" [label="[t]"];
"4127721381544371643.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#4127721381544371643.1#"];
"2581594325022902366.1" -> "2581594325022902366.0" [label="[f]"];
"2581594325022902366.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#2581594325022902366.0#"];
"2581594325022902366.1" -> "2581594325022902366.1" [label="[f]"];
"2581594325022902366.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#2581594325022902366.1#"];
"-968891668905740144.2" -> "-968891668905740144.2" [label="[f]"];
"-968891668905740144.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#-968891668905740144.2#"];
"-968891668905740144.2" -> "7283859488389107957.2" [label="[t]"];
"7283859488389107957.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#7283859488389107957.2#"];
"-968891668905740144.2" -> "7820878542888365191.2" [label="[t]"];
"7820878542888365191.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#7820878542888365191.2#"];
"-968891668905740144.0" -> "-968891668905740144.2" [label="[f]"];
"-968891668905740144.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#-968891668905740144.2#"];
"-968891668905740144.0" -> "7283859488389107957.2" [label="[t]"];
"7283859488389107957.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#7283859488389107957.2#"];
"-968891668905740144.0" -> "7820878542888365191.2" [label="[t]"];
"7820878542888365191.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#7820878542888365191.2#"];
"-968891668905740144.1" -> "-968891668905740144.0" [label="[f]"];
"-968891668905740144.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#-968891668905740144.0#"];
"-968891668905740144.1" -> "-968891668905740144.1" [label="[f]"];
"-968891668905740144.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#-968891668905740144.1#"];
"-968891668905740144.1" -> "7283859488389107957.0" [label="[t]"];
"7283859488389107957.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#7283859488389107957.0#"];
"-968891668905740144.1" -> "7283859488389107957.1" [label="[t]"];
"7283859488389107957.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#7283859488389107957.1#"];
"-968891668905740144.1" -> "7820878542888365191.0" [label="[t]"];
"7820878542888365191.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#7820878542888365191.0#"];
"-968891668905740144.1" -> "7820878542888365191.1" [label="[t]"];
"7820878542888365191.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#7820878542888365191.1#"];
"6240527035853587196.1" -> "9093383713321976802.1" [label="[t]"];
"9093383713321976802.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")
#9093383713321976802.1#"];
"6240527035853587196.1" -> "7740283175518426456.1" [label="[t]"];
"7740283175518426456.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")
#7740283175518426456.1#"];
"6240527035853587196.1" -> "6240527035853587196.1" [label="[f]"];
"6240527035853587196.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")
#6240527035853587196.1#"];
"5456743395259980317.1" -> "-1556555203215492056.1" [label="[t]"];
"-1556555203215492056.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")
#-1556555203215492056.1#"];
"5456743395259980317.1" -> "5456743395259980317.1" [label="[f]"];
"5456743395259980317.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"ncs\")
#5456743395259980317.1#"];
"5456743395259980317.1" -> "2581594325022902366.0" [label="[t]"];
"2581594325022902366.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#2581594325022902366.0#"];
"5456743395259980317.1" -> "2581594325022902366.1" [label="[t]"];
"2581594325022902366.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#2581594325022902366.1#"];
}
}
\ No newline at end of file
------------------------ MODULE MutualExclusionSpec ------------------------
\* Module MutualExclusionSpec provides general specification for mutual-exclusion problem.
\* Procs is set of processes.
\* Every process is assumed to loop and enter into "cs" state on every interation.
\* Non-critical state is represented as "non-cs".
\* When process decides it want to enter into critical-section, it first goes into "csentry" state.
CONSTANT Procs
VARIABLES pc
TypeOK == pc \in [Procs -> {"non-cs", "csentry", "cs"}]
vars == <<pc>>
\* All processes start from non-critical section.
Init == pc \in [Procs -> {"non-cs"}]
\* WantCS(proc) is action when proc decides that it wants to enter into critical section.
WantCS(proc) ==
/\ pc[proc] = "non-cs"
/\ pc' = [pc EXCEPT ![proc] = "csentry"]
\* EnterCS(proc) is action when proc enters critical section.
EnterCS(proc) ==
/\ pc[proc] = "csentry"
/\ \A i \in Procs \ {proc} : pc[i] /= "cs"
/\ pc' = [pc EXCEPT ![proc] = "cs"]
\* ExitCS(proc) is action when proc leaves critical section.
ExitCS(proc) ==
/\ pc[proc] = "cs"
/\ pc' = [pc EXCEPT ![proc] = "non-cs"]
Next == \E i \in Procs: WantCS(i) \/ EnterCS(i) \/ ExitCS(i)
Spec == /\ Init
/\ [][Next]_vars
/\ \A i \in Procs: ( \* fairness
\* not fair for WantCS - it can pause and even hang there
/\ SF_vars(EnterCS(i))
/\ SF_vars(ExitCS(i)))
----------------
\* MutualExclusion is invariant indicating that no two processes can be inside critical section at the same time.
MutualExclusion == \A i,j \in Procs: (i /= j) => ~((pc[i] = "cs") /\ (pc[j] = "cs"))
\* Liveness is temporal property indicating that every process has a chance to enter critical section and leaves it.
Liveness == \A i \in Procs:
/\ (pc[i] = "csentry") ~> (pc[i] = "cs")
/\ (pc[i] = "cs") ~> (pc[i] = "non-cs")
THEOREM Spec => []TypeOK
THEOREM Spec => []MutualExclusion
THEOREM Spec => Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 19:11:11 MSK 2022 by kirr
\* Created Wed Feb 09 13:11:29 MSK 2022 by kirr
-------------------------------- MODULE 1Bit --------------------------------
\* 1Bit implementation of mutual exclusion
EXTENDS Integers
CONSTANT N
ASSUME N \in Nat
Procs == 0..N
(********
--algorithm 1BitProtocol {
variables flag = [i \in Procs |-> FALSE] ;
process (P \in Procs) {
ncs: while (TRUE) {
skip ;
enter: flag[self] := TRUE ;
e2: if (flag[1-self]) {
e3: flag[self] := FALSE;
goto enter;
};
cs: skip ;
exit: flag[self] := FALSE ;
}
}
}
********)
\* BEGIN TRANSLATION (chksum(pcal) = "b33e7cec" /\ chksum(tla) = "338dfe4c")
VARIABLES flag, pc
vars == << flag, pc >>
ProcSet == (Procs)
Init == (* Global variables *)
/\ flag = [i \in Procs |-> FALSE]
/\ pc = [self \in ProcSet |-> "ncs"]
ncs(self) == /\ pc[self] = "ncs"
/\ TRUE
/\ pc' = [pc EXCEPT ![self] = "enter"]
/\ flag' = flag
enter(self) == /\ pc[self] = "enter"
/\ flag' = [flag EXCEPT ![self] = TRUE]
/\ pc' = [pc EXCEPT ![self] = "e2"]
e2(self) == /\ pc[self] = "e2"
/\ IF flag[1-self]
THEN /\ pc' = [pc EXCEPT ![self] = "e3"]
ELSE /\ pc' = [pc EXCEPT ![self] = "cs"]
/\ flag' = flag
e3(self) == /\ pc[self] = "e3"
/\ flag' = [flag EXCEPT ![self] = FALSE]
/\ pc' = [pc EXCEPT ![self] = "enter"]
cs(self) == /\ pc[self] = "cs"
/\ TRUE
/\ pc' = [pc EXCEPT ![self] = "exit"]
/\ flag' = flag
exit(self) == /\ pc[self] = "exit"
/\ flag' = [flag EXCEPT ![self] = FALSE]
/\ pc' = [pc EXCEPT ![self] = "ncs"]
P(self) == ncs(self) \/ enter(self) \/ e2(self) \/ e3(self) \/ cs(self)
\/ exit(self)
Next == (\E self \in Procs: P(self))
Spec == Init /\ [][Next]_vars
\* END TRANSLATION
--------
\* Invariant which implies MutualExclusion
\*Inv == \A i \in Procs : (pc[i] = "cs") => (flag[i] /\ (~flag[1-i] \/ pc[1-i] = "e2"))
Inv == \A i \in Procs : (pc[i] = "cs") => (flag[i] /\ (~flag[1-i] \/ pc[1-i] \in {"e2","e3"}))
ME == INSTANCE MutualExclusionSpec WITH
pc <- [proc \in Procs |-> CASE pc[proc] = "cs" -> "cs"
[] pc[proc] \in {"enter","e2","e3"} -> "csentry"
[] OTHER -> "non-cs"]
THEOREM Spec => ME!Spec
THEOREM Spec => []ME!MutualExclusion
THEOREM Spec => ME!Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 21:20:48 MSK 2022 by kirr
\* Created Wed Feb 09 20:01:56 MSK 2022 by kirr
\* CONSTANT definitions
CONSTANT
N <- const_1644430852007674000
\* SPECIFICATION definition
SPECIFICATION
Spec
\* INVARIANT definition
INVARIANT
inv_1644430852007675000
Inv
\* PROPERTY definition
PROPERTY
prop_1644430852007677000
\* Generated on Wed Feb 09 21:20:52 MSK 2022
\ No newline at end of file
@!@!@STARTMSG 2262:0 @!@!@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 37 and seed 2858152806069431466 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 79207] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
@!@!@ENDMSG 2220 @!@!@
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MC.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/1Bit.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/TLC.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Integers.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Naturals.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MutualExclusionSpec.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Sequences.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/FiniteSets.tla
Semantic processing of module Naturals
Semantic processing of module Integers
Semantic processing of module MutualExclusionSpec
Semantic processing of module 1Bit
Semantic processing of module Sequences
Semantic processing of module FiniteSets
Semantic processing of module TLC
Semantic processing of module MC
@!@!@STARTMSG 2219:0 @!@!@
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 21:20:52)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 4 branches.
@!@!@ENDMSG 2212 @!@!@
@!@!@STARTMSG 2189:0 @!@!@
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 21:20:53.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(9) at 2022-02-09 21:20:53: 65 states generated, 32 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2192:0 @!@!@
Checking 4 branches of temporal properties for the complete state space with 128 total distinct states at (2022-02-09 21:20:53)
@!@!@ENDMSG 2192 @!@!@
@!@!@STARTMSG 2116:1 @!@!@
Temporal properties were violated.
@!@!@ENDMSG 2116 @!@!@
@!@!@STARTMSG 2264:1 @!@!@
The following behavior constitutes a counter-example:
@!@!@ENDMSG 2264 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
1: <Initial predicate>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "ncs" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
2: <ncs line 38, col 14 to line 41, col 28 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "enter" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
3: <ncs line 38, col 14 to line 41, col 28 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "enter" @@ 1 :> "enter")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2218:4 @!@!@
4: Stuttering
@!@!@ENDMSG 2218 @!@!@
@!@!@STARTMSG 2267:0 @!@!@
Finished checking temporal properties in 00s at 2022-02-09 21:20:53
@!@!@ENDMSG 2267 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 21:20:53
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 34, col 1 to line 34, col 4 of module 1Bit>: 2:2
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
line 35, col 19 to line 35, col 41 of module 1Bit: 2:4
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 35, col 26 to line 35, col 30 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 36, col 12 to line 36, col 44 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 36, col 17 to line 36, col 44 of module 1Bit: 2:4
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 36, col 27 to line 36, col 33 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ncs line 38, col 1 to line 38, col 9 of module 1Bit>: 6:18
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 38, col 17 to line 38, col 32 of module 1Bit: 93
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 38, col 17 to line 38, col 24 of module 1Bit: 75
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 39, col 17 to line 39, col 20 of module 1Bit: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 40, col 17 to line 40, col 51 of module 1Bit: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 41, col 17 to line 41, col 28 of module 1Bit: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<enter line 43, col 1 to line 43, col 11 of module 1Bit>: 7:15
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 43, col 19 to line 43, col 36 of module 1Bit: 88
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 43, col 19 to line 43, col 26 of module 1Bit: 73
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 44, col 19 to line 44, col 54 of module 1Bit: 15
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 45, col 19 to line 45, col 50 of module 1Bit: 15
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e2 line 47, col 1 to line 47, col 8 of module 1Bit>: 9:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 47, col 16 to line 47, col 30 of module 1Bit: 85
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 16 to line 47, col 23 of module 1Bit: 73
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 48, col 19 to line 48, col 30 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 49, col 24 to line 49, col 58 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 50, col 24 to line 50, col 58 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 51, col 16 to line 51, col 27 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e3 line 53, col 1 to line 53, col 8 of module 1Bit>: 2:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 53, col 16 to line 53, col 30 of module 1Bit: 85
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 53, col 16 to line 53, col 23 of module 1Bit: 73
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 54, col 16 to line 54, col 52 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 55, col 16 to line 55, col 50 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<cs line 57, col 1 to line 57, col 8 of module 1Bit>: 5:10
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 57, col 16 to line 57, col 30 of module 1Bit: 83
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 57, col 16 to line 57, col 23 of module 1Bit: 73
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 58, col 16 to line 58, col 19 of module 1Bit: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 59, col 16 to line 59, col 49 of module 1Bit: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 60, col 16 to line 60, col 27 of module 1Bit: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<exit line 62, col 1 to line 62, col 10 of module 1Bit>: 2:8
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 62, col 18 to line 62, col 34 of module 1Bit: 81
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 62, col 18 to line 62, col 25 of module 1Bit: 73
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 63, col 18 to line 63, col 54 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 64, col 18 to line 64, col 50 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<inv_1644430852007675000 line 10, col 1 to line 10, col 23 of module MC>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 11, col 1 to line 11, col 18 of module MC: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 83, col 23 to line 85, col 90 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 82, col 1 to line 85, col 90 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<Inv line 79, col 1 to line 79, col 3 of module 1Bit>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 79, col 8 to line 79, col 94 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 79, col 25 to line 79, col 94 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 79, col 26 to line 79, col 37 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 79, col 44 to line 79, col 93 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 79, col 44 to line 79, col 50 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 79, col 56 to line 79, col 92 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 79, col 56 to line 79, col 65 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 79, col 70 to line 79, col 92 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 79, col 17 to line 79, col 21 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(9) at 2022-02-09 21:20:53: 65 states generated (2 685 s/min), 32 distinct states found (1 322 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
65 states generated, 32 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 9.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1466ms at (2022-02-09 21:20:53)
@!@!@ENDMSG 2186 @!@!@
---- MODULE MC ----
EXTENDS 1Bit, TLC
\* CONSTANT definitions @modelParameterConstants:0N
const_1644430852007674000 ==
1
----
\* INVARIANT definition @modelCorrectnessInvariants:0
inv_1644430852007675000 ==
ME!MutualExclusion
----
\* PROPERTY definition @modelCorrectnessProperties:0
prop_1644430852007677000 ==
ME!Liveness
----
=============================================================================
\* Modification History
\* Created Wed Feb 09 21:20:52 MSK 2022 by kirr
@!@!@STARTMSG 2262:0 @!@!@
TLC2 Version 2.16 of Day Month 20?? (rev: 9310ee7)
@!@!@ENDMSG 2262 @!@!@
@!@!@STARTMSG 2187:0 @!@!@
Running breadth-first search Model-Checking with fp 37 and seed 2858152806069431466 with 2 workers on 4 cores with 1161MB heap and 2608MB offheap memory [pid: 79207] (Linux 5.10.0-10-amd64 amd64, AdoptOpenJDK 14.0.1 x86_64, OffHeapDiskFPSet, DiskStateQueue).
@!@!@ENDMSG 2187 @!@!@
@!@!@STARTMSG 2220:0 @!@!@
Starting SANY...
@!@!@ENDMSG 2220 @!@!@
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MC.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/1Bit.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/TLC.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Integers.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Naturals.tla
Parsing file /home/kirr/study/tla+/pluscal/ME/1Bit.toolbox/Model_1/MutualExclusionSpec.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/Sequences.tla
Parsing file /home/kirr/src/tools/tla+/bin/toolbox/plugins/org.lamport.tlatools_1.0.0.202201240352/tla2sany/StandardModules/FiniteSets.tla
Semantic processing of module Naturals
Semantic processing of module Integers
Semantic processing of module MutualExclusionSpec
Semantic processing of module 1Bit
Semantic processing of module Sequences
Semantic processing of module FiniteSets
Semantic processing of module TLC
Semantic processing of module MC
@!@!@STARTMSG 2219:0 @!@!@
SANY finished.
@!@!@ENDMSG 2219 @!@!@
@!@!@STARTMSG 2185:0 @!@!@
Starting... (2022-02-09 21:20:52)
@!@!@ENDMSG 2185 @!@!@
@!@!@STARTMSG 2212:0 @!@!@
Implied-temporal checking--satisfiability problem has 4 branches.
@!@!@ENDMSG 2212 @!@!@
@!@!@STARTMSG 2189:0 @!@!@
Computing initial states...
@!@!@ENDMSG 2189 @!@!@
@!@!@STARTMSG 2190:0 @!@!@
Finished computing initial states: 1 distinct state generated at 2022-02-09 21:20:53.
@!@!@ENDMSG 2190 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(9) at 2022-02-09 21:20:53: 65 states generated, 32 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2192:0 @!@!@
Checking 4 branches of temporal properties for the complete state space with 128 total distinct states at (2022-02-09 21:20:53)
@!@!@ENDMSG 2192 @!@!@
@!@!@STARTMSG 2116:1 @!@!@
Temporal properties were violated.
@!@!@ENDMSG 2116 @!@!@
@!@!@STARTMSG 2264:1 @!@!@
The following behavior constitutes a counter-example:
@!@!@ENDMSG 2264 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
1: <Initial predicate>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "ncs" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
2: <ncs line 38, col 14 to line 41, col 28 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "enter" @@ 1 :> "ncs")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2217:4 @!@!@
3: <ncs line 38, col 14 to line 41, col 28 of module 1Bit>
/\ flag = (0 :> FALSE @@ 1 :> FALSE)
/\ pc = (0 :> "enter" @@ 1 :> "enter")
@!@!@ENDMSG 2217 @!@!@
@!@!@STARTMSG 2218:4 @!@!@
4: Stuttering
@!@!@ENDMSG 2218 @!@!@
@!@!@STARTMSG 2267:0 @!@!@
Finished checking temporal properties in 00s at 2022-02-09 21:20:53
@!@!@ENDMSG 2267 @!@!@
@!@!@STARTMSG 2201:0 @!@!@
The coverage statistics at 2022-02-09 21:20:53
@!@!@ENDMSG 2201 @!@!@
@!@!@STARTMSG 2773:0 @!@!@
<Init line 34, col 1 to line 34, col 4 of module 1Bit>: 2:2
@!@!@ENDMSG 2773 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
line 35, col 19 to line 35, col 41 of module 1Bit: 2:4
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 35, col 26 to line 35, col 30 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 36, col 12 to line 36, col 44 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2775:0 @!@!@
|line 36, col 17 to line 36, col 44 of module 1Bit: 2:4
@!@!@ENDMSG 2775 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 36, col 27 to line 36, col 33 of module 1Bit: 2
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<ncs line 38, col 1 to line 38, col 9 of module 1Bit>: 6:18
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 38, col 17 to line 38, col 32 of module 1Bit: 93
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 38, col 17 to line 38, col 24 of module 1Bit: 75
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 39, col 17 to line 39, col 20 of module 1Bit: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 40, col 17 to line 40, col 51 of module 1Bit: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 41, col 17 to line 41, col 28 of module 1Bit: 18
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<enter line 43, col 1 to line 43, col 11 of module 1Bit>: 7:15
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 43, col 19 to line 43, col 36 of module 1Bit: 88
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 43, col 19 to line 43, col 26 of module 1Bit: 73
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 44, col 19 to line 44, col 54 of module 1Bit: 15
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 45, col 19 to line 45, col 50 of module 1Bit: 15
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e2 line 47, col 1 to line 47, col 8 of module 1Bit>: 9:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 47, col 16 to line 47, col 30 of module 1Bit: 85
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 16 to line 47, col 23 of module 1Bit: 73
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 48, col 19 to line 48, col 30 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 49, col 24 to line 49, col 58 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 50, col 24 to line 50, col 58 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 51, col 16 to line 51, col 27 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<e3 line 53, col 1 to line 53, col 8 of module 1Bit>: 2:12
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 53, col 16 to line 53, col 30 of module 1Bit: 85
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 53, col 16 to line 53, col 23 of module 1Bit: 73
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 54, col 16 to line 54, col 52 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 55, col 16 to line 55, col 50 of module 1Bit: 12
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<cs line 57, col 1 to line 57, col 8 of module 1Bit>: 5:10
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 57, col 16 to line 57, col 30 of module 1Bit: 83
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 57, col 16 to line 57, col 23 of module 1Bit: 73
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 58, col 16 to line 58, col 19 of module 1Bit: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 59, col 16 to line 59, col 49 of module 1Bit: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 60, col 16 to line 60, col 27 of module 1Bit: 10
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2772:0 @!@!@
<exit line 62, col 1 to line 62, col 10 of module 1Bit>: 2:8
@!@!@ENDMSG 2772 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 62, col 18 to line 62, col 34 of module 1Bit: 81
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 62, col 18 to line 62, col 25 of module 1Bit: 73
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 63, col 18 to line 63, col 54 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 64, col 18 to line 64, col 50 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<inv_1644430852007675000 line 10, col 1 to line 10, col 23 of module MC>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 11, col 1 to line 11, col 18 of module MC: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 83, col 23 to line 85, col 90 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 82, col 1 to line 85, col 90 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 47, col 20 to line 47, col 84 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 38 to line 47, col 84 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 39 to line 47, col 44 of module MutualExclusionSpec: 128
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 47, col 50 to line 47, col 84 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 47, col 52 to line 47, col 83 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 53 to line 47, col 64 of module MutualExclusionSpec: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||||line 47, col 71 to line 47, col 82 of module MutualExclusionSpec: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 47, col 31 to line 47, col 35 of module MutualExclusionSpec: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2774:0 @!@!@
<Inv line 79, col 1 to line 79, col 3 of module 1Bit>
@!@!@ENDMSG 2774 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
line 79, col 8 to line 79, col 94 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 79, col 25 to line 79, col 94 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 79, col 26 to line 79, col 37 of module 1Bit: 64
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||line 79, col 44 to line 79, col 93 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 79, col 44 to line 79, col 50 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|||line 79, col 56 to line 79, col 92 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 79, col 56 to line 79, col 65 of module 1Bit: 8
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
||||line 79, col 70 to line 79, col 92 of module 1Bit: 4
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2221:0 @!@!@
|line 79, col 17 to line 79, col 21 of module 1Bit: 32
@!@!@ENDMSG 2221 @!@!@
@!@!@STARTMSG 2202:0 @!@!@
End of statistics.
@!@!@ENDMSG 2202 @!@!@
@!@!@STARTMSG 2200:0 @!@!@
Progress(9) at 2022-02-09 21:20:53: 65 states generated (2 685 s/min), 32 distinct states found (1 322 ds/min), 0 states left on queue.
@!@!@ENDMSG 2200 @!@!@
@!@!@STARTMSG 2199:0 @!@!@
65 states generated, 32 distinct states found, 0 states left on queue.
@!@!@ENDMSG 2199 @!@!@
@!@!@STARTMSG 2194:0 @!@!@
The depth of the complete state graph search is 9.
@!@!@ENDMSG 2194 @!@!@
@!@!@STARTMSG 2186:0 @!@!@
Finished in 1466ms at (2022-02-09 21:20:53)
@!@!@ENDMSG 2186 @!@!@
strict digraph DiskGraph {
edge [colorscheme="paired12"]
nodesep=0.35;
subgraph cluster_graph {
color="white";
5085455432294731190 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")",style = filled]
5085455432294731190 -> 3524579045693731114 [label="",color="2",fontcolor="2"];
3524579045693731114 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")"];
5085455432294731190 -> -8911842714561954920 [label="",color="2",fontcolor="2"];
-8911842714561954920 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")"];
5085455432294731190 -> 5085455432294731190 [style="dashed"];
3524579045693731114 -> -516069171314509563 [label="",color="3",fontcolor="3"];
-516069171314509563 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")"];
3524579045693731114 -> 7805651401774470092 [label="",color="2",fontcolor="2"];
7805651401774470092 [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")"];
3524579045693731114 -> 3524579045693731114 [style="dashed"];
-8911842714561954920 -> 7805651401774470092 [label="",color="2",fontcolor="2"];
-8911842714561954920 -> 7128099167373912858 [label="",color="3",fontcolor="3"];
7128099167373912858 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")"];
-8911842714561954920 -> -8911842714561954920 [style="dashed"];
-516069171314509563 -> -4891172302811509810 [label="",color="4",fontcolor="4"];
-4891172302811509810 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")"];
-516069171314509563 -> 6775617846239370668 [label="",color="2",fontcolor="2"];
6775617846239370668 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")"];
-516069171314509563 -> -516069171314509563 [style="dashed"];
7805651401774470092 -> 6775617846239370668 [label="",color="3",fontcolor="3"];
7805651401774470092 -> 3905739610096960540 [label="",color="3",fontcolor="3"];
3905739610096960540 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")"];
7805651401774470092 -> 7805651401774470092 [style="dashed"];
7128099167373912858 -> 3905739610096960540 [label="",color="2",fontcolor="2"];
7128099167373912858 -> -1534383658450382740 [label="",color="4",fontcolor="4"];
-1534383658450382740 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")"];
7128099167373912858 -> 7128099167373912858 [style="dashed"];
-4891172302811509810 -> -4737441124444714616 [label="",color="5",fontcolor="5"];
-4737441124444714616 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")"];
-4891172302811509810 -> -7533759817854830743 [label="",color="2",fontcolor="2"];
-7533759817854830743 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")"];
-4891172302811509810 -> -4891172302811509810 [style="dashed"];
6775617846239370668 -> -7533759817854830743 [label="",color="4",fontcolor="4"];
6775617846239370668 -> -1088739534983396591 [label="",color="3",fontcolor="3"];
-1088739534983396591 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e2\")"];
6775617846239370668 -> 6775617846239370668 [style="dashed"];
3905739610096960540 -> -1088739534983396591 [label="",color="3",fontcolor="3"];
3905739610096960540 -> -4725640334347698326 [label="",color="4",fontcolor="4"];
-4725640334347698326 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")"];
3905739610096960540 -> 3905739610096960540 [style="dashed"];
-1534383658450382740 -> -4725640334347698326 [label="",color="2",fontcolor="2"];
-1534383658450382740 -> -6297107797553737216 [label="",color="5",fontcolor="5"];
-6297107797553737216 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")"];
-1534383658450382740 -> -1534383658450382740 [style="dashed"];
-4737441124444714616 -> 5085455432294731190 [label="",color="6",fontcolor="6"];
-4737441124444714616 -> -7976570240747132033 [label="",color="2",fontcolor="2"];
-7976570240747132033 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")"];
-4737441124444714616 -> -4737441124444714616 [style="dashed"];
-7533759817854830743 -> -7976570240747132033 [label="",color="5",fontcolor="5"];
-7533759817854830743 -> -7358308420137391307 [label="",color="3",fontcolor="3"];
-7358308420137391307 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")"];
-7533759817854830743 -> -7533759817854830743 [style="dashed"];
-1088739534983396591 -> -4011009453110952578 [label="",color="4",fontcolor="4"];
-4011009453110952578 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")"];
-1088739534983396591 -> -384302305046358828 [label="",color="4",fontcolor="4"];
-384302305046358828 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")"];
-1088739534983396591 -> -1088739534983396591 [style="dashed"];
-4725640334347698326 -> 8700069877200124007 [label="",color="3",fontcolor="3"];
8700069877200124007 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")"];
-4725640334347698326 -> -5716330678854760024 [label="",color="5",fontcolor="5"];
-5716330678854760024 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")"];
-4725640334347698326 -> -4725640334347698326 [style="dashed"];
-6297107797553737216 -> -5716330678854760024 [label="",color="2",fontcolor="2"];
-6297107797553737216 -> 5085455432294731190 [label="",color="6",fontcolor="6"];
-6297107797553737216 -> -6297107797553737216 [style="dashed"];
-7976570240747132033 -> -8911842714561954920 [label="",color="6",fontcolor="6"];
-7976570240747132033 -> 209506020327074019 [label="",color="3",fontcolor="3"];
209506020327074019 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")"];
-7358308420137391307 -> 209506020327074019 [label="",color="5",fontcolor="5"];
-7976570240747132033 -> -7976570240747132033 [style="dashed"];
-7358308420137391307 -> -7805684533418984208 [label="",color="4",fontcolor="4"];
-7805684533418984208 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")"];
-7358308420137391307 -> -7358308420137391307 [style="dashed"];
-4011009453110952578 -> 3905739610096960540 [label="",color="7",fontcolor="7"];
-4011009453110952578 -> -4460637202960127301 [label="",color="4",fontcolor="4"];
-4460637202960127301 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")"];
-4011009453110952578 -> -4011009453110952578 [style="dashed"];
-384302305046358828 -> -4460637202960127301 [label="",color="4",fontcolor="4"];
-384302305046358828 -> 6775617846239370668 [label="",color="7",fontcolor="7"];
-384302305046358828 -> -384302305046358828 [style="dashed"];
8700069877200124007 -> 4615862493202646536 [label="",color="4",fontcolor="4"];
4615862493202646536 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")"];
8700069877200124007 -> -3653511980151831675 [label="",color="5",fontcolor="5"];
-3653511980151831675 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")"];
8700069877200124007 -> 8700069877200124007 [style="dashed"];
-5716330678854760024 -> -3653511980151831675 [label="",color="3",fontcolor="3"];
-5716330678854760024 -> 3524579045693731114 [label="",color="6",fontcolor="6"];
-5716330678854760024 -> -5716330678854760024 [style="dashed"];
209506020327074019 -> 7128099167373912858 [label="",color="6",fontcolor="6"];
209506020327074019 -> 623461173049409318 [label="",color="4",fontcolor="4"];
623461173049409318 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")"];
-7805684533418984208 -> 623461173049409318 [label="",color="5",fontcolor="5"];
209506020327074019 -> 209506020327074019 [style="dashed"];
-7805684533418984208 -> -7533759817854830743 [label="",color="7",fontcolor="7"];
-7805684533418984208 -> -7805684533418984208 [style="dashed"];
-4460637202960127301 -> 4358731569716630489 [label="",color="7",fontcolor="7"];
4358731569716630489 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")"];
-4460637202960127301 -> 5726825228716880478 [label="",color="7",fontcolor="7"];
5726825228716880478 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")"];
-4460637202960127301 -> -4460637202960127301 [style="dashed"];
4615862493202646536 -> -4725640334347698326 [label="",color="7",fontcolor="7"];
4615862493202646536 -> -7243062553507743412 [label="",color="5",fontcolor="5"];
-7243062553507743412 [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")"];
4615862493202646536 -> 4615862493202646536 [style="dashed"];
-3653511980151831675 -> -7243062553507743412 [label="",color="4",fontcolor="4"];
-3653511980151831675 -> -516069171314509563 [label="",color="6",fontcolor="6"];
-3653511980151831675 -> -3653511980151831675 [style="dashed"];
623461173049409318 -> 7539784793880886495 [label="",color="6",fontcolor="6"];
7539784793880886495 [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")"];
623461173049409318 -> -7976570240747132033 [label="",color="7",fontcolor="7"];
623461173049409318 -> 623461173049409318 [style="dashed"];
4358731569716630489 -> -384302305046358828 [label="",color="3",fontcolor="3"];
4358731569716630489 -> 7805651401774470092 [label="",color="7",fontcolor="7"];
4358731569716630489 -> 4358731569716630489 [style="dashed"];
5726825228716880478 -> 7805651401774470092 [label="",color="7",fontcolor="7"];
5726825228716880478 -> -4011009453110952578 [label="",color="3",fontcolor="3"];
5726825228716880478 -> 5726825228716880478 [style="dashed"];
-7243062553507743412 -> -5716330678854760024 [label="",color="7",fontcolor="7"];
-7243062553507743412 -> 3160519931459361361 [label="",color="6",fontcolor="6"];
3160519931459361361 [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"ncs\")"];
-7243062553507743412 -> -7243062553507743412 [style="dashed"];
7539784793880886495 -> 4358731569716630489 [label="",color="2",fontcolor="2"];
7539784793880886495 -> -8911842714561954920 [label="",color="7",fontcolor="7"];
7539784793880886495 -> 7539784793880886495 [style="dashed"];
3160519931459361361 -> 3524579045693731114 [label="",color="7",fontcolor="7"];
3160519931459361361 -> 5726825228716880478 [label="",color="2",fontcolor="2"];
3160519931459361361 -> 3160519931459361361 [style="dashed"];
{rank = same; 5085455432294731190;}
{rank = same; 3524579045693731114;-8911842714561954920;}
{rank = same; -516069171314509563;7805651401774470092;7128099167373912858;}
{rank = same; 3905739610096960540;-4891172302811509810;6775617846239370668;-1534383658450382740;}
{rank = same; -7533759817854830743;-4725640334347698326;-1088739534983396591;-4737441124444714616;-6297107797553737216;}
{rank = same; -384302305046358828;-7976570240747132033;8700069877200124007;-4011009453110952578;-5716330678854760024;-7358308420137391307;}
{rank = same; 209506020327074019;-4460637202960127301;-7805684533418984208;-3653511980151831675;4615862493202646536;}
{rank = same; -7243062553507743412;623461173049409318;5726825228716880478;4358731569716630489;}
{rank = same; 3160519931459361361;7539784793880886495;}
}
subgraph cluster_legend {graph[style=bold];label = "Next State Actions" style="solid"
node [ labeljust="l",colorscheme="paired12",style=filled,shape=record ]
cs [label="cs",fillcolor=5]
exit [label="exit",fillcolor=6]
enter [label="enter",fillcolor=3]
e2 [label="e2",fillcolor=4]
e3 [label="e3",fillcolor=7]
ncs [label="ncs",fillcolor=2]
}}
\ No newline at end of file
digraph DiskGraph {
nodesep=0.35;
subgraph cluster_graph {
color="white";
"5085455432294731190.1" [style = filled] [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")
#5085455432294731190.1#"]
"5085455432294731190.1" -> "5085455432294731190.1";
"5085455432294731190.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")
#5085455432294731190.1#"];
"5085455432294731190.1" -> "-8911842714561954920.1";
"-8911842714561954920.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#-8911842714561954920.1#"];
"5085455432294731190.1" -> "3524579045693731114.1";
"3524579045693731114.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")
#3524579045693731114.1#"];
"-8911842714561954920.1" -> "-8911842714561954920.1";
"-8911842714561954920.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#-8911842714561954920.1#"];
"-8911842714561954920.1" -> "7128099167373912858.1";
"7128099167373912858.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")
#7128099167373912858.1#"];
"-8911842714561954920.1" -> "7805651401774470092.1";
"7805651401774470092.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#7805651401774470092.1#"];
"3524579045693731114.1" -> "-516069171314509563.1";
"-516069171314509563.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")
#-516069171314509563.1#"];
"3524579045693731114.1" -> "3524579045693731114.1";
"3524579045693731114.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")
#3524579045693731114.1#"];
"3524579045693731114.1" -> "7805651401774470092.1";
"7805651401774470092.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#7805651401774470092.1#"];
"-516069171314509563.1" -> "-516069171314509563.1";
"-516069171314509563.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")
#-516069171314509563.1#"];
"-516069171314509563.1" -> "6775617846239370668.1";
"6775617846239370668.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#6775617846239370668.1#"];
"-516069171314509563.1" -> "-4891172302811509810.1";
"-4891172302811509810.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")
#-4891172302811509810.1#"];
"7805651401774470092.1" -> "6775617846239370668.1";
"6775617846239370668.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#6775617846239370668.1#"];
"7805651401774470092.1" -> "3905739610096960540.1";
"3905739610096960540.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#3905739610096960540.1#"];
"7805651401774470092.1" -> "7805651401774470092.1";
"7805651401774470092.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#7805651401774470092.1#"];
"7128099167373912858.1" -> "7128099167373912858.1";
"7128099167373912858.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")
#7128099167373912858.1#"];
"7128099167373912858.1" -> "3905739610096960540.1";
"3905739610096960540.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#3905739610096960540.1#"];
"7128099167373912858.1" -> "-1534383658450382740.0";
"-1534383658450382740.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")
#-1534383658450382740.0#"];
"7128099167373912858.1" -> "-1534383658450382740.1";
"-1534383658450382740.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")
#-1534383658450382740.1#"];
"-4891172302811509810.1" -> "-4737441124444714616.1";
"-4737441124444714616.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")
#-4737441124444714616.1#"];
"-4891172302811509810.1" -> "-7533759817854830743.1";
"-7533759817854830743.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#-7533759817854830743.1#"];
"-4891172302811509810.1" -> "-4891172302811509810.1";
"-4891172302811509810.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"ncs\")
#-4891172302811509810.1#"];
"6775617846239370668.1" -> "-1088739534983396591.1";
"-1088739534983396591.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e2\")
#-1088739534983396591.1#"];
"6775617846239370668.1" -> "-7533759817854830743.1";
"-7533759817854830743.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#-7533759817854830743.1#"];
"6775617846239370668.1" -> "6775617846239370668.1";
"6775617846239370668.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#6775617846239370668.1#"];
"3905739610096960540.1" -> "-1088739534983396591.1";
"-1088739534983396591.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e2\")
#-1088739534983396591.1#"];
"3905739610096960540.1" -> "-4725640334347698326.0";
"-4725640334347698326.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4725640334347698326.0#"];
"3905739610096960540.1" -> "-4725640334347698326.1";
"-4725640334347698326.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4725640334347698326.1#"];
"3905739610096960540.1" -> "3905739610096960540.1";
"3905739610096960540.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#3905739610096960540.1#"];
"-1534383658450382740.0" -> "-4725640334347698326.2";
"-4725640334347698326.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4725640334347698326.2#"];
"-1534383658450382740.0" -> "-1534383658450382740.2";
"-1534383658450382740.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")
#-1534383658450382740.2#"];
"-1534383658450382740.2" -> "-4725640334347698326.2" [style="dotted"];
"-1534383658450382740.1" -> "-6297107797553737216.1";
"-6297107797553737216.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")
#-6297107797553737216.1#"];
"-1534383658450382740.1" -> "-4725640334347698326.0";
"-4725640334347698326.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4725640334347698326.0#"];
"-1534383658450382740.1" -> "-4725640334347698326.1";
"-4725640334347698326.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4725640334347698326.1#"];
"-1534383658450382740.1" -> "-1534383658450382740.0";
"-1534383658450382740.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")
#-1534383658450382740.0#"];
"-1534383658450382740.1" -> "-1534383658450382740.1";
"-1534383658450382740.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"cs\")
#-1534383658450382740.1#"];
"-4737441124444714616.1" -> "5085455432294731190.1";
"5085455432294731190.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")
#5085455432294731190.1#"];
"-4737441124444714616.1" -> "-4737441124444714616.1";
"-4737441124444714616.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"ncs\")
#-4737441124444714616.1#"];
"-4737441124444714616.1" -> "-7976570240747132033.1";
"-7976570240747132033.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#-7976570240747132033.1#"];
"-7533759817854830743.1" -> "-7358308420137391307.1";
"-7358308420137391307.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")
#-7358308420137391307.1#"];
"-7533759817854830743.1" -> "-7533759817854830743.1";
"-7533759817854830743.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#-7533759817854830743.1#"];
"-7533759817854830743.1" -> "-7976570240747132033.1";
"-7976570240747132033.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#-7976570240747132033.1#"];
"-1088739534983396591.1" -> "-1088739534983396591.1";
"-1088739534983396591.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e2\")
#-1088739534983396591.1#"];
"-1088739534983396591.1" -> "-384302305046358828.1";
"-384302305046358828.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-384302305046358828.1#"];
"-1088739534983396591.1" -> "-4011009453110952578.1";
"-4011009453110952578.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#-4011009453110952578.1#"];
"-4725640334347698326.0" -> "8700069877200124007.2";
"8700069877200124007.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#8700069877200124007.2#"];
"-4725640334347698326.0" -> "-4725640334347698326.2";
"-4725640334347698326.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4725640334347698326.2#"];
"-4725640334347698326.1" -> "8700069877200124007.0";
"8700069877200124007.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#8700069877200124007.0#"];
"-4725640334347698326.1" -> "8700069877200124007.1";
"8700069877200124007.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#8700069877200124007.1#"];
"-4725640334347698326.1" -> "-5716330678854760024.1";
"-5716330678854760024.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")
#-5716330678854760024.1#"];
"-4725640334347698326.1" -> "-4725640334347698326.0";
"-4725640334347698326.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4725640334347698326.0#"];
"-4725640334347698326.1" -> "-4725640334347698326.1";
"-4725640334347698326.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4725640334347698326.1#"];
"-4725640334347698326.2" -> "8700069877200124007.2";
"8700069877200124007.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#8700069877200124007.2#"];
"-4725640334347698326.2" -> "-4725640334347698326.2";
"-4725640334347698326.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4725640334347698326.2#"];
"-6297107797553737216.1" -> "-6297107797553737216.1";
"-6297107797553737216.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"exit\")
#-6297107797553737216.1#"];
"-6297107797553737216.1" -> "5085455432294731190.1";
"5085455432294731190.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"ncs\")
#5085455432294731190.1#"];
"-6297107797553737216.1" -> "-5716330678854760024.1";
"-5716330678854760024.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")
#-5716330678854760024.1#"];
"-7976570240747132033.1" -> "209506020327074019.1";
"209506020327074019.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#209506020327074019.1#"];
"-7976570240747132033.1" -> "-8911842714561954920.1";
"-8911842714561954920.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#-8911842714561954920.1#"];
"-7976570240747132033.1" -> "-7976570240747132033.1";
"-7976570240747132033.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#-7976570240747132033.1#"];
"-7358308420137391307.1" -> "-7805684533418984208.1";
"-7805684533418984208.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-7805684533418984208.1#"];
"-7358308420137391307.1" -> "209506020327074019.1";
"209506020327074019.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#209506020327074019.1#"];
"-7358308420137391307.1" -> "-7358308420137391307.1";
"-7358308420137391307.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")
#-7358308420137391307.1#"];
"-4011009453110952578.1" -> "-4460637202960127301.1";
"-4460637202960127301.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-4460637202960127301.1#"];
"-4011009453110952578.1" -> "3905739610096960540.1";
"3905739610096960540.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#3905739610096960540.1#"];
"-4011009453110952578.1" -> "-4011009453110952578.1";
"-4011009453110952578.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#-4011009453110952578.1#"];
"-384302305046358828.1" -> "-384302305046358828.1";
"-384302305046358828.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-384302305046358828.1#"];
"-384302305046358828.1" -> "-4460637202960127301.1";
"-4460637202960127301.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-4460637202960127301.1#"];
"-384302305046358828.1" -> "6775617846239370668.1";
"6775617846239370668.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#6775617846239370668.1#"];
"8700069877200124007.2" -> "8700069877200124007.2";
"8700069877200124007.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#8700069877200124007.2#"];
"8700069877200124007.2" -> "4615862493202646536.2";
"4615862493202646536.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#4615862493202646536.2#"];
"8700069877200124007.0" -> "8700069877200124007.2";
"8700069877200124007.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#8700069877200124007.2#"];
"8700069877200124007.0" -> "4615862493202646536.2";
"4615862493202646536.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#4615862493202646536.2#"];
"8700069877200124007.1" -> "-3653511980151831675.1";
"-3653511980151831675.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")
#-3653511980151831675.1#"];
"8700069877200124007.1" -> "8700069877200124007.0";
"8700069877200124007.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#8700069877200124007.0#"];
"8700069877200124007.1" -> "8700069877200124007.1";
"8700069877200124007.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#8700069877200124007.1#"];
"8700069877200124007.1" -> "4615862493202646536.0";
"4615862493202646536.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#4615862493202646536.0#"];
"8700069877200124007.1" -> "4615862493202646536.1";
"4615862493202646536.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#4615862493202646536.1#"];
"-5716330678854760024.1" -> "-3653511980151831675.1";
"-3653511980151831675.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")
#-3653511980151831675.1#"];
"-5716330678854760024.1" -> "-5716330678854760024.1";
"-5716330678854760024.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")
#-5716330678854760024.1#"];
"-5716330678854760024.1" -> "3524579045693731114.1";
"3524579045693731114.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")
#3524579045693731114.1#"];
"209506020327074019.1" -> "209506020327074019.1";
"209506020327074019.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#209506020327074019.1#"];
"209506020327074019.1" -> "623461173049409318.1";
"623461173049409318.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#623461173049409318.1#"];
"209506020327074019.1" -> "7128099167373912858.1";
"7128099167373912858.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")
#7128099167373912858.1#"];
"-7805684533418984208.1" -> "-7805684533418984208.1";
"-7805684533418984208.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-7805684533418984208.1#"];
"-7805684533418984208.1" -> "623461173049409318.1";
"623461173049409318.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#623461173049409318.1#"];
"-7805684533418984208.1" -> "-7533759817854830743.1";
"-7533759817854830743.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#-7533759817854830743.1#"];
"-4460637202960127301.1" -> "4358731569716630489.1";
"4358731569716630489.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#4358731569716630489.1#"];
"-4460637202960127301.1" -> "-4460637202960127301.1";
"-4460637202960127301.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-4460637202960127301.1#"];
"-4460637202960127301.1" -> "5726825228716880478.1";
"5726825228716880478.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#5726825228716880478.1#"];
"4615862493202646536.2" -> "4615862493202646536.2";
"4615862493202646536.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#4615862493202646536.2#"];
"4615862493202646536.2" -> "-4725640334347698326.2";
"-4725640334347698326.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4725640334347698326.2#"];
"4615862493202646536.0" -> "4615862493202646536.2";
"4615862493202646536.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#4615862493202646536.2#"];
"4615862493202646536.0" -> "-4725640334347698326.2";
"-4725640334347698326.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4725640334347698326.2#"];
"4615862493202646536.1" -> "4615862493202646536.0";
"4615862493202646536.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#4615862493202646536.0#"];
"4615862493202646536.1" -> "4615862493202646536.1";
"4615862493202646536.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#4615862493202646536.1#"];
"4615862493202646536.1" -> "-4725640334347698326.0";
"-4725640334347698326.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4725640334347698326.0#"];
"4615862493202646536.1" -> "-4725640334347698326.1";
"-4725640334347698326.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4725640334347698326.1#"];
"4615862493202646536.1" -> "-7243062553507743412.1";
"-7243062553507743412.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")
#-7243062553507743412.1#"];
"-3653511980151831675.1" -> "-516069171314509563.1";
"-516069171314509563.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")
#-516069171314509563.1#"];
"-3653511980151831675.1" -> "-3653511980151831675.1";
"-3653511980151831675.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")
#-3653511980151831675.1#"];
"-3653511980151831675.1" -> "-7243062553507743412.1";
"-7243062553507743412.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")
#-7243062553507743412.1#"];
"623461173049409318.1" -> "-7976570240747132033.1";
"-7976570240747132033.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#-7976570240747132033.1#"];
"623461173049409318.1" -> "623461173049409318.1";
"623461173049409318.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#623461173049409318.1#"];
"623461173049409318.1" -> "7539784793880886495.1";
"7539784793880886495.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#7539784793880886495.1#"];
"4358731569716630489.1" -> "-384302305046358828.1";
"-384302305046358828.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-384302305046358828.1#"];
"4358731569716630489.1" -> "4358731569716630489.1";
"4358731569716630489.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#4358731569716630489.1#"];
"4358731569716630489.1" -> "7805651401774470092.1";
"7805651401774470092.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#7805651401774470092.1#"];
"5726825228716880478.1" -> "7805651401774470092.1";
"7805651401774470092.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#7805651401774470092.1#"];
"5726825228716880478.1" -> "-4011009453110952578.1";
"-4011009453110952578.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#-4011009453110952578.1#"];
"5726825228716880478.1" -> "5726825228716880478.1";
"5726825228716880478.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#5726825228716880478.1#"];
"-7243062553507743412.1" -> "3160519931459361361.1";
"3160519931459361361.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"ncs\")
#3160519931459361361.1#"];
"-7243062553507743412.1" -> "-5716330678854760024.1";
"-5716330678854760024.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")
#-5716330678854760024.1#"];
"-7243062553507743412.1" -> "-7243062553507743412.1";
"-7243062553507743412.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")
#-7243062553507743412.1#"];
"7539784793880886495.1" -> "-8911842714561954920.1";
"-8911842714561954920.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#-8911842714561954920.1#"];
"7539784793880886495.1" -> "4358731569716630489.1";
"4358731569716630489.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#4358731569716630489.1#"];
"7539784793880886495.1" -> "7539784793880886495.1";
"7539784793880886495.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#7539784793880886495.1#"];
"3160519931459361361.1" -> "3160519931459361361.1";
"3160519931459361361.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"ncs\")
#3160519931459361361.1#"];
"3160519931459361361.1" -> "3524579045693731114.1";
"3524579045693731114.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")
#3524579045693731114.1#"];
"3160519931459361361.1" -> "5726825228716880478.1";
"5726825228716880478.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#5726825228716880478.1#"];
}
}@ 1 :> \"enter\")
#5726825228716880478.1#"];
}
} TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#3905739610096960540.1#"];
"-4011009453110952578.1" -> "-4011009453110952578.0";
"-4011009453110952578.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#-4011009453110952578.0#"];
"-4011009453110952578.1" -> "-4011009453110952578.1";
"-4011009453110952578.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#-4011009453110952578.1#"];
"-384302305046358828.2" -> "-384302305046358828.2";
"-384302305046358828.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-384302305046358828.2#"];
"-384302305046358828.2" -> "-4460637202960127301.2";
"-4460637202960127301.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-4460637202960127301.2#"];
"-384302305046358828.2" -> "6775617846239370668.2";
"6775617846239370668.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#6775617846239370668.2#"];
"-384302305046358828.0" -> "-384302305046358828.2";
"-384302305046358828.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-384302305046358828.2#"];
"-384302305046358828.0" -> "-4460637202960127301.2";
"-4460637202960127301.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-4460637202960127301.2#"];
"-384302305046358828.0" -> 137391307.0#"];
"-7358308420137391307.1" -> "-7358308420137391307.1";
"-7358308420137391307.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e2\")
#-7358308420137391307.1#"];
"-4011009453110952578.2" -> "-4460637202960127301.2";
"-4460637202960127301.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-4460637202960127301.2#"];
"-4011009453110952578.2" -> "3905739610096960540.2";
"3905739610096960540.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#3905739610096960540.2#"];
"-4011009453110952578.2" -> "-4011009453110952578.2";
"-4011009453110952578.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#-4011009453110952578.2#"];
"-4011009453110952578.0" -> "-4460637202960127301.2";
"-4460637202960127301.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-4460637202960127301.2#"];
"-4011009453110952578.0" -> "3905739610096960540.2";
"3905739610096960540.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#3905739610096960540.2#"];
"-4011009453110952578.0" -> "-4011009453110952578.2";
"-4011009453110952578.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#-4011009453110952578.2#"];
"-4011009453110952578.1" -> "-4460637202960127301.0";
"-4460637202960127301.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-4460637202960127301.0#"];
"-4011009453110952578.1" -> "-4460637202960127301.1";
"-4460637202960127301.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-4460637202960127301.1#"];
"-4011009453110952578.1" -> "3905739610096960540.0";
"3905739610096960540.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#3905739610096960540.0#"];
"-4011009453110952578.1" -> "3905739610096960540.1";
"3905739610096960540.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e2\")
#3905739610096960540.1#"];
"-4011009453110952578.1" -> "-4011009453110952578.0";
"-4011009453110952578.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#-4011009453110952578.0#"];
"-4011009453110952578.1" -> "-4011009453110952578.1";
"-4011009453110952578.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#-4011009453110952578.1#"];
"-384302305046358828.2" -> "-384302305046358828.2";
"-384302305046358828.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-384302305046358828.2#"];
"-384302305046358828.2" -> "-4460637202960127301.2";
"-4460637202960127301.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-4460637202960127301.2#"];
"-384302305046358828.2" -> "6775617846239370668.2";
"6775617846239370668.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#6775617846239370668.2#"];
"-384302305046358828.0" -> "-384302305046358828.2";
"-384302305046358828.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-384302305046358828.2#"];
"-384302305046358828.0" -> "-4460637202960127301.2";
"-4460637202960127301.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-4460637202960127301.2#"];
"-384302305046358828.0" -> "6775617846239370668.2";
"6775617846239370668.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#6775617846239370668.2#"];
"-384302305046358828.1" -> "-384302305046358828.0";
"-384302305046358828.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-384302305046358828.0#"];
"-384302305046358828.1" -> "-384302305046358828.1";
"-384302305046358828.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-384302305046358828.1#"];
"-384302305046358828.1" -> "-4460637202960127301.0";
"-4460637202960127301.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-4460637202960127301.0#"];
"-384302305046358828.1" -> "-4460637202960127301.1";
"-4460637202960127301.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-4460637202960127301.1#"];
"-384302305046358828.1" -> "6775617846239370668.0";
"6775617846239370668.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#6775617846239370668.0#"];
"-384302305046358828.1" -> "6775617846239370668.1";
"6775617846239370668.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"enter\")
#6775617846239370668.1#"];
"8700069877200124007.1" -> "-3653511980151831675.1";
"-3653511980151831675.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")
#-3653511980151831675.1#"];
"8700069877200124007.1" -> "8700069877200124007.1";
"8700069877200124007.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"cs\")
#8700069877200124007.1#"];
"8700069877200124007.1" -> "4615862493202646536.1";
"4615862493202646536.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#4615862493202646536.1#"];
"-5716330678854760024.1" -> "-3653511980151831675.1";
"-3653511980151831675.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")
#-3653511980151831675.1#"];
"-5716330678854760024.1" -> "-5716330678854760024.1";
"-5716330678854760024.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")
#-5716330678854760024.1#"];
"-5716330678854760024.1" -> "3524579045693731114.1";
"3524579045693731114.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")
#3524579045693731114.1#"];
"209506020327074019.2" -> "209506020327074019.2";
"209506020327074019.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#209506020327074019.2#"];
"209506020327074019.2" -> "623461173049409318.2";
"623461173049409318.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#623461173049409318.2#"];
"209506020327074019.2" -> "7128099167373912858.2";
"7128099167373912858.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")
#7128099167373912858.2#"];
"209506020327074019.0" -> "209506020327074019.2";
"209506020327074019.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#209506020327074019.2#"];
"209506020327074019.0" -> "623461173049409318.2";
"623461173049409318.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#623461173049409318.2#"];
"209506020327074019.0" -> "7128099167373912858.2";
"7128099167373912858.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")
#7128099167373912858.2#"];
"209506020327074019.1" -> "209506020327074019.0";
"209506020327074019.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#209506020327074019.0#"];
"209506020327074019.1" -> "209506020327074019.1";
"209506020327074019.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e2\")
#209506020327074019.1#"];
"209506020327074019.1" -> "623461173049409318.0";
"623461173049409318.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#623461173049409318.0#"];
"209506020327074019.1" -> "623461173049409318.1";
"623461173049409318.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#623461173049409318.1#"];
"209506020327074019.1" -> "7128099167373912858.0";
"7128099167373912858.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")
#7128099167373912858.0#"];
"209506020327074019.1" -> "7128099167373912858.1";
"7128099167373912858.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e2\")
#7128099167373912858.1#"];
"-7805684533418984208.2" -> "-7805684533418984208.2";
"-7805684533418984208.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-7805684533418984208.2#"];
"-7805684533418984208.2" -> "623461173049409318.2";
"623461173049409318.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#623461173049409318.2#"];
"-7805684533418984208.2" -> "-7533759817854830743.2";
"-7533759817854830743.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#-7533759817854830743.2#"];
"-7805684533418984208.0" -> "-7805684533418984208.2";
"-7805684533418984208.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-7805684533418984208.2#"];
"-7805684533418984208.0" -> "623461173049409318.2";
"623461173049409318.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#623461173049409318.2#"];
"-7805684533418984208.0" -> "-7533759817854830743.2";
"-7533759817854830743.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#-7533759817854830743.2#"];
"-7805684533418984208.1" -> "-7805684533418984208.0";
"-7805684533418984208.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-7805684533418984208.0#"];
"-7805684533418984208.1" -> "-7805684533418984208.1";
"-7805684533418984208.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"e3\")
#-7805684533418984208.1#"];
"-7805684533418984208.1" -> "623461173049409318.0";
"623461173049409318.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#623461173049409318.0#"];
"-7805684533418984208.1" -> "623461173049409318.1";
"623461173049409318.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#623461173049409318.1#"];
"-7805684533418984208.1" -> "-7533759817854830743.0";
"-7533759817854830743.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#-7533759817854830743.0#"];
"-7805684533418984208.1" -> "-7533759817854830743.1";
"-7533759817854830743.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"cs\" @@ 1 :> \"enter\")
#-7533759817854830743.1#"];
"-4460637202960127301.2" -> "4358731569716630489.2";
"4358731569716630489.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#4358731569716630489.2#"];
"-4460637202960127301.2" -> "-4460637202960127301.2";
"-4460637202960127301.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-4460637202960127301.2#"];
"-4460637202960127301.2" -> "5726825228716880478.2";
"5726825228716880478.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#5726825228716880478.2#"];
"-4460637202960127301.0" -> "4358731569716630489.2";
"4358731569716630489.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#4358731569716630489.2#"];
"-4460637202960127301.0" -> "-4460637202960127301.2";
"-4460637202960127301.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-4460637202960127301.2#"];
"-4460637202960127301.0" -> "5726825228716880478.2";
"5726825228716880478.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#5726825228716880478.2#"];
"-4460637202960127301.1" -> "4358731569716630489.0";
"4358731569716630489.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#4358731569716630489.0#"];
"-4460637202960127301.1" -> "4358731569716630489.1";
"4358731569716630489.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#4358731569716630489.1#"];
"-4460637202960127301.1" -> "-4460637202960127301.0";
"-4460637202960127301.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-4460637202960127301.0#"];
"-4460637202960127301.1" -> "-4460637202960127301.1";
"-4460637202960127301.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e3\")
#-4460637202960127301.1#"];
"-4460637202960127301.1" -> "5726825228716880478.0";
"5726825228716880478.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#5726825228716880478.0#"];
"-4460637202960127301.1" -> "5726825228716880478.1";
"5726825228716880478.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#5726825228716880478.1#"];
"4615862493202646536.1" -> "4615862493202646536.1";
"4615862493202646536.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"cs\")
#4615862493202646536.1#"];
"4615862493202646536.1" -> "-4725640334347698326.1";
"-4725640334347698326.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"cs\")
#-4725640334347698326.1#"];
"4615862493202646536.1" -> "-7243062553507743412.1";
"-7243062553507743412.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")
#-7243062553507743412.1#"];
"-3653511980151831675.1" -> "-516069171314509563.1";
"-516069171314509563.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"ncs\")
#-516069171314509563.1#"];
"-3653511980151831675.1" -> "-3653511980151831675.1";
"-3653511980151831675.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"exit\")
#-3653511980151831675.1#"];
"-3653511980151831675.1" -> "-7243062553507743412.1";
"-7243062553507743412.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")
#-7243062553507743412.1#"];
"623461173049409318.2" -> "-7976570240747132033.2";
"-7976570240747132033.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#-7976570240747132033.2#"];
"623461173049409318.2" -> "623461173049409318.2";
"623461173049409318.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#623461173049409318.2#"];
"623461173049409318.2" -> "7539784793880886495.2";
"7539784793880886495.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#7539784793880886495.2#"];
"623461173049409318.0" -> "-7976570240747132033.2";
"-7976570240747132033.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#-7976570240747132033.2#"];
"623461173049409318.0" -> "623461173049409318.2";
"623461173049409318.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#623461173049409318.2#"];
"623461173049409318.0" -> "7539784793880886495.2";
"7539784793880886495.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#7539784793880886495.2#"];
"623461173049409318.1" -> "-7976570240747132033.0";
"-7976570240747132033.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#-7976570240747132033.0#"];
"623461173049409318.1" -> "-7976570240747132033.1";
"-7976570240747132033.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"enter\")
#-7976570240747132033.1#"];
"623461173049409318.1" -> "623461173049409318.0";
"623461173049409318.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#623461173049409318.0#"];
"623461173049409318.1" -> "623461173049409318.1";
"623461173049409318.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"exit\" @@ 1 :> \"e3\")
#623461173049409318.1#"];
"623461173049409318.1" -> "7539784793880886495.0";
"7539784793880886495.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#7539784793880886495.0#"];
"623461173049409318.1" -> "7539784793880886495.1";
"7539784793880886495.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#7539784793880886495.1#"];
"4358731569716630489.2" -> "-384302305046358828.2";
"-384302305046358828.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-384302305046358828.2#"];
"4358731569716630489.2" -> "4358731569716630489.2";
"4358731569716630489.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#4358731569716630489.2#"];
"4358731569716630489.2" -> "7805651401774470092.2";
"7805651401774470092.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#7805651401774470092.2#"];
"4358731569716630489.0" -> "-384302305046358828.2";
"-384302305046358828.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-384302305046358828.2#"];
"4358731569716630489.0" -> "4358731569716630489.2";
"4358731569716630489.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#4358731569716630489.2#"];
"4358731569716630489.0" -> "7805651401774470092.2";
"7805651401774470092.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#7805651401774470092.2#"];
"4358731569716630489.1" -> "-384302305046358828.0";
"-384302305046358828.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-384302305046358828.0#"];
"4358731569716630489.1" -> "-384302305046358828.1";
"-384302305046358828.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e2\" @@ 1 :> \"e3\")
#-384302305046358828.1#"];
"4358731569716630489.1" -> "4358731569716630489.0";
"4358731569716630489.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#4358731569716630489.0#"];
"4358731569716630489.1" -> "4358731569716630489.1";
"4358731569716630489.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#4358731569716630489.1#"];
"4358731569716630489.1" -> "7805651401774470092.0";
"7805651401774470092.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#7805651401774470092.0#"];
"4358731569716630489.1" -> "7805651401774470092.1";
"7805651401774470092.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#7805651401774470092.1#"];
"5726825228716880478.2" -> "7805651401774470092.2";
"7805651401774470092.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#7805651401774470092.2#"];
"5726825228716880478.2" -> "-4011009453110952578.2";
"-4011009453110952578.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#-4011009453110952578.2#"];
"5726825228716880478.2" -> "5726825228716880478.2";
"5726825228716880478.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#5726825228716880478.2#"];
"5726825228716880478.0" -> "7805651401774470092.2";
"7805651401774470092.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#7805651401774470092.2#"];
"5726825228716880478.0" -> "-4011009453110952578.2";
"-4011009453110952578.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#-4011009453110952578.2#"];
"5726825228716880478.0" -> "5726825228716880478.2";
"5726825228716880478.2" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#5726825228716880478.2#"];
"5726825228716880478.1" -> "7805651401774470092.0";
"7805651401774470092.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#7805651401774470092.0#"];
"5726825228716880478.1" -> "7805651401774470092.1";
"7805651401774470092.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"enter\")
#7805651401774470092.1#"];
"5726825228716880478.1" -> "-4011009453110952578.0";
"-4011009453110952578.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#-4011009453110952578.0#"];
"5726825228716880478.1" -> "-4011009453110952578.1";
"-4011009453110952578.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"e2\")
#-4011009453110952578.1#"];
"5726825228716880478.1" -> "5726825228716880478.0";
"5726825228716880478.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#5726825228716880478.0#"];
"5726825228716880478.1" -> "5726825228716880478.1";
"5726825228716880478.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#5726825228716880478.1#"];
"-7243062553507743412.1" -> "3160519931459361361.1";
"3160519931459361361.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"ncs\")
#3160519931459361361.1#"];
"-7243062553507743412.1" -> "-5716330678854760024.1";
"-5716330678854760024.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"exit\")
#-5716330678854760024.1#"];
"-7243062553507743412.1" -> "-7243062553507743412.1";
"-7243062553507743412.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"exit\")
#-7243062553507743412.1#"];
"7539784793880886495.2" -> "-8911842714561954920.2";
"-8911842714561954920.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#-8911842714561954920.2#"];
"7539784793880886495.2" -> "4358731569716630489.2";
"4358731569716630489.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#4358731569716630489.2#"];
"7539784793880886495.2" -> "7539784793880886495.2";
"7539784793880886495.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#7539784793880886495.2#"];
"7539784793880886495.0" -> "-8911842714561954920.2";
"-8911842714561954920.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#-8911842714561954920.2#"];
"7539784793880886495.0" -> "4358731569716630489.2";
"4358731569716630489.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#4358731569716630489.2#"];
"7539784793880886495.0" -> "7539784793880886495.2";
"7539784793880886495.2" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#7539784793880886495.2#"];
"7539784793880886495.1" -> "-8911842714561954920.0";
"-8911842714561954920.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#-8911842714561954920.0#"];
"7539784793880886495.1" -> "-8911842714561954920.1";
"-8911842714561954920.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"enter\")
#-8911842714561954920.1#"];
"7539784793880886495.1" -> "4358731569716630489.0";
"4358731569716630489.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#4358731569716630489.0#"];
"7539784793880886495.1" -> "4358731569716630489.1";
"4358731569716630489.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"e3\")
#4358731569716630489.1#"];
"7539784793880886495.1" -> "7539784793880886495.0";
"7539784793880886495.0" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#7539784793880886495.0#"];
"7539784793880886495.1" -> "7539784793880886495.1";
"7539784793880886495.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> TRUE)\n/\\ pc = (0 :> \"ncs\" @@ 1 :> \"e3\")
#7539784793880886495.1#"];
"3160519931459361361.1" -> "3160519931459361361.1";
"3160519931459361361.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"ncs\")
#3160519931459361361.1#"];
"3160519931459361361.1" -> "3524579045693731114.1";
"3524579045693731114.1" [label="/\\ flag = (0 :> FALSE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"enter\" @@ 1 :> \"ncs\")
#3524579045693731114.1#"];
"3160519931459361361.1" -> "5726825228716880478.0";
"5726825228716880478.0" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#5726825228716880478.0#"];
"3160519931459361361.1" -> "5726825228716880478.1";
"5726825228716880478.1" [label="/\\ flag = (0 :> TRUE @@ 1 :> FALSE)\n/\\ pc = (0 :> \"e3\" @@ 1 :> \"enter\")
#5726825228716880478.1#"];
}
}\"e3\" @@ 1 :> \"enter\")
#5726825228716880478.1#"];
}
}
\ No newline at end of file
------------------------ MODULE MutualExclusionSpec ------------------------
\* Module MutualExclusionSpec provides general specification for mutual-exclusion problem.
\* Procs is set of processes.
\* Every process is assumed to loop and enter into "cs" state on every interation.
\* Non-critical state is represented as "non-cs".
\* When process decides it want to enter into critical-section, it first goes into "csentry" state.
CONSTANT Procs
VARIABLES pc
TypeOK == pc \in [Procs -> {"non-cs", "csentry", "cs"}]
vars == <<pc>>
\* All processes start from non-critical section.
Init == pc \in [Procs -> {"non-cs"}]
\* WantCS(proc) is action when proc decides that it wants to enter into critical section.
WantCS(proc) ==
/\ pc[proc] = "non-cs"
/\ pc' = [pc EXCEPT ![proc] = "csentry"]
\* EnterCS(proc) is action when proc enters critical section.
EnterCS(proc) ==
/\ pc[proc] = "csentry"
/\ \A i \in Procs \ {proc} : pc[i] /= "cs"
/\ pc' = [pc EXCEPT ![proc] = "cs"]
\* ExitCS(proc) is action when proc leaves critical section.
ExitCS(proc) ==
/\ pc[proc] = "cs"
/\ pc' = [pc EXCEPT ![proc] = "non-cs"]
Next == \E i \in Procs: WantCS(i) \/ EnterCS(i) \/ ExitCS(i)
Spec == /\ Init
/\ [][Next]_vars
/\ \A i \in Procs: ( \* fairness
\* not fair for WantCS - it can pause and even hang there
/\ SF_vars(EnterCS(i))
/\ SF_vars(ExitCS(i)))
----------------
\* MutualExclusion is invariant indicating that no two processes can be inside critical section at the same time.
MutualExclusion == \A i,j \in Procs: (i /= j) => ~((pc[i] = "cs") /\ (pc[j] = "cs"))
\* Liveness is temporal property indicating that every process has a chance to enter critical section and leaves it.
Liveness == \A i \in Procs:
/\ (pc[i] = "csentry") ~> (pc[i] = "cs")
/\ (pc[i] = "cs") ~> (pc[i] = "non-cs")
THEOREM Spec => []TypeOK
THEOREM Spec => []MutualExclusion
THEOREM Spec => Liveness
=============================================================================
\* Modification History
\* Last modified Wed Feb 09 19:11:11 MSK 2022 by kirr
\* Created Wed Feb 09 13:11:29 MSK 2022 by kirr
No preview for this file type
\relax \relax
\gdef \@abspage@last{1} \gdef \@abspage@last{2}
This is pdfTeX, Version 3.14159265-2.6-1.40.21 (TeX Live 2020/Debian) (preloaded format=pdflatex 2021.6.9) 9 FEB 2022 17:49 This is pdfTeX, Version 3.14159265-2.6-1.40.21 (TeX Live 2020/Debian) (preloaded format=pdflatex 2021.6.9) 9 FEB 2022 20:01
entering extended mode entering extended mode
restricted \write18 enabled. restricted \write18 enabled.
%&-line parsing enabled. %&-line parsing enabled.
...@@ -127,7 +127,17 @@ LaTeX Font Info: Font shape `OMS/cmr/bx/n' in size <10> not available ...@@ -127,7 +127,17 @@ LaTeX Font Info: Font shape `OMS/cmr/bx/n' in size <10> not available
(Font) Font shape `OMS/cmsy/b/n' tried instead on input line 979. (Font) Font shape `OMS/cmsy/b/n' tried instead on input line 979.
[1 [1
{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] (./Alternate.aux) ) {/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}]
Overfull \hbox (2.3747pt too wide) in paragraph at lines 1085--1087
[][]
[]
Overfull \hbox (2.57756pt too wide) in paragraph at lines 1087--1088
[][]
[]
[2] (./Alternate.aux) )
Here is how much of TeX's memory you used: Here is how much of TeX's memory you used:
1331 strings out of 479304 1331 strings out of 479304
18714 string characters out of 5869780 18714 string characters out of 5869780
...@@ -136,25 +146,26 @@ Here is how much of TeX's memory you used: ...@@ -136,25 +146,26 @@ Here is how much of TeX's memory you used:
409464 words of font info for 50 fonts, out of 8000000 for 9000 409464 words of font info for 50 fonts, out of 8000000 for 9000
1141 hyphenation exceptions out of 8191 1141 hyphenation exceptions out of 8191
44i,10n,50p,223b,320s stack positions out of 5000i,500n,10000p,200000b,80000s 44i,10n,50p,223b,320s stack positions out of 5000i,500n,10000p,200000b,80000s
</usr/s </usr/share/texlive/texmf-dist/fonts/type1/public/amsfon
hare/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmbsy10.pfb></usr/share/ ts/cm/cmbsy10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm
texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx10.pfb></usr/share/texliv /cmbx10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmcsc
e/texmf-dist/fonts/type1/public/amsfonts/cm/cmcsc10.pfb></usr/share/texlive/tex 10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb
mf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></usr/share/texlive/texmf-dis ></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi8.pfb></usr/
t/fonts/type1/public/amsfonts/cm/cmmi8.pfb></usr/share/texlive/texmf-dist/fonts share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/share/t
/type1/public/amsfonts/cm/cmr10.pfb></usr/share/texlive/texmf-dist/fonts/type1/ exlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr5.pfb></usr/share/texlive/t
public/amsfonts/cm/cmr5.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/a exmf-dist/fonts/type1/public/amsfonts/cm/cmr8.pfb></usr/share/texlive/texmf-dis
msfonts/cm/cmr8.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/ t/fonts/type1/public/amsfonts/cm/cmr9.pfb></usr/share/texlive/texmf-dist/fonts/
cm/cmr9.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmss1 type1/public/amsfonts/cm/cmss10.pfb></usr/share/texlive/texmf-dist/fonts/type1/
0.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb> public/amsfonts/cm/cmsy10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public
</usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy8.pfb></usr/s /amsfonts/cm/cmsy7.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfon
hare/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmti10.pfb></usr/share/t ts/cm/cmsy8.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/c
exlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmti8.pfb></usr/share/texlive/ mti10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmti7.p
texmf-dist/fonts/type1/public/amsfonts/latxfont/lasy10.pfb> fb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmti8.pfb></us
Output written on Alternate.pdf (1 page, 145876 bytes). r/share/texlive/texmf-dist/fonts/type1/public/amsfonts/latxfont/lasy10.pfb>
Output written on Alternate.pdf (2 pages, 168869 bytes).
PDF statistics: PDF statistics:
68 PDF objects out of 1000 (max. 8388607) 79 PDF objects out of 1000 (max. 8388607)
49 compressed objects within 1 object stream 57 compressed objects within 1 object stream
0 named destinations out of 1000 (max. 500000) 0 named destinations out of 1000 (max. 500000)
1 words of extra memory for PDF output out of 10000 (max. 10000000) 1 words of extra memory for PDF output out of 10000 (max. 10000000)
...@@ -1016,14 +1016,75 @@ ...@@ -1016,14 +1016,75 @@
******* *******
\end{cpar}% \end{cpar}%
\end{lcom}% \end{lcom}%
\@x{}%
\@y{\@s{0}%
BEGIN TRANSLATION (\ensuremath{chksum(pcal) \.{=}} ``\ensuremath{7c28162a}''
\ensuremath{\.{\land} chksum(tla) \.{=}} ``\ensuremath{dc237cc6}'')
}%
\@xx{}%
\@x{ {\VARIABLES} turn ,\, pc}%
\@pvspace{8.0pt}%
\@x{ vars \.{\defeq} {\langle} turn ,\, pc {\rangle}}%
\@pvspace{8.0pt}%
\@x{ ProcSet \.{\defeq} ( Procs )}%
\@pvspace{8.0pt}%
\@x{ Init \.{\defeq}}%
\@y{\@s{0}%
Global variables
}%
\@xx{}%
\@x{\@s{35.70} \.{\land} turn \.{\in} Procs}%
\@x{\@s{35.70} \.{\land} pc \.{=} [ self \.{\in} ProcSet \.{\mapsto}\@w{ncs}
]}%
\@pvspace{8.0pt}%
\@x{ ncs ( self ) \.{\defeq} \.{\land} pc [ self ] \.{=}\@w{ncs}}%
\@x{\@s{58.22} \.{\land} {\TRUE}}%
\@x{\@s{58.22} \.{\land} pc \.{'} \.{=} [ pc {\EXCEPT} {\bang} [ self ]
\.{=}\@w{enter} ]}%
\@x{\@s{58.22} \.{\land} turn \.{'} \.{=} turn}%
\@pvspace{8.0pt}%
\@x{ enter ( self ) \.{\defeq} \.{\land} pc [ self ] \.{=}\@w{enter}}%
\@x{\@s{66.53} \.{\land} turn \.{=} self}%
\@x{\@s{66.53} \.{\land} pc \.{'} \.{=} [ pc {\EXCEPT} {\bang} [ self ]
\.{=}\@w{cs} ]}%
\@x{\@s{66.53} \.{\land} turn \.{'} \.{=} turn}%
\@pvspace{8.0pt}%
\@x{ cs ( self ) \.{\defeq} \.{\land} pc [ self ]\@s{4.27} \.{=}\@w{cs}}%
\@x{\@s{52.60} \.{\land} {\TRUE}}%
\@x{\@s{52.60} \.{\land} pc \.{'} \.{=} [ pc {\EXCEPT} {\bang} [ self ]
\.{=}\@w{exit} ]}%
\@x{\@s{52.60} \.{\land} turn \.{'} \.{=} turn}%
\@pvspace{8.0pt}%
\@x{ exit ( self ) \.{\defeq} \.{\land} pc [ self ] \.{=}\@w{exit}}%
\@x{\@s{59.67} \.{\land} turn \.{'} \.{=} ( ( self \.{+} 1 ) \.{\%} NProcs )}%
\@x{\@s{59.67} \.{\land} pc \.{'} \.{=} [ pc {\EXCEPT} {\bang} [ self ]
\.{=}\@w{ncs} ]}%
\@pvspace{8.0pt}%
\@x{ p ( self ) \.{\defeq} ncs ( self ) \.{\lor} enter ( self ) \.{\lor} cs (
self ) \.{\lor} exit ( self )}%
\@pvspace{8.0pt}%
\@x{ Next \.{\defeq} ( \E\, self \.{\in} Procs \.{:} p ( self ) )}%
\@pvspace{8.0pt}%
\@x{ Spec\@s{1.46} \.{\defeq} \.{\land} Init \.{\land} {\Box} [ Next ]_{
vars}}%
\@x{\@s{39.83} \.{\land} {\WF}_{ vars} ( Next )}%
\@pvspace{8.0pt}%
\@x{}%
\@y{\@s{0}%
END TRANSLATION
}%
\@xx{}%
\@pvspace{16.0pt}%
\@x{}\midbar\@xx{}% \@x{}\midbar\@xx{}%
\@pvspace{24.0pt}% \@pvspace{24.0pt}%
\@x{ PC2ME ( xpc ) \.{\defeq} [ proc \.{\in} Procs\@s{4.1} \@x{ ME \.{\defeq} {\INSTANCE} MutualExclusionSpec {\WITH}}%
\.{\mapsto}\@s{4.1} {\IF} xpc [ proc ] \.{=}\@w{cs} \.{\THEN}\@w{cs}}% \@x{\@s{86.45} pc \.{\leftarrow} [ proc \.{\in} Procs\@s{4.1}
\@x{\@s{243.76} \.{\ELSE}\@w{non{-}cs} ]}% \.{\mapsto}\@s{4.1} {\CASE} pc [ proc ] \.{=}\@w{cs}\@s{16.90}
\@pvspace{8.0pt}% \.{\rightarrow}\@s{4.1}\@w{cs}}%
\@x{ ME \.{\defeq} {\INSTANCE} MutualExclusionSpec {\WITH} pc \.{\leftarrow} \@x{\@s{203.01} {\Box}\@s{10.30} pc [ proc ] \.{=}\@w{enter}\@s{4.10}
PC2ME ( pc )}% \.{\rightarrow}\@s{4.09}\@w{csentry}}%
\@x{\@s{203.01} {\Box}\@s{10.30} {\OTHER}\@s{48.64}
\.{\rightarrow}\@s{4.1}\@w{non{-}cs} ]}%
\@pvspace{8.0pt}% \@pvspace{8.0pt}%
\@x{ {\THEOREM} Spec \.{\implies} ME {\bang} Spec}% \@x{ {\THEOREM} Spec \.{\implies} ME {\bang} Spec}%
\@x{ {\THEOREM} Spec \.{\implies} {\Box} ME {\bang} MutualExclusion}% \@x{ {\THEOREM} Spec \.{\implies} {\Box} ME {\bang} MutualExclusion}%
...@@ -1037,7 +1098,7 @@ ...@@ -1037,7 +1098,7 @@
\end{cpar}% \end{cpar}%
\begin{cpar}{0}{F}{F}{0}{0}{}% \begin{cpar}{0}{F}{F}{0}{0}{}%
\ensuremath{\.{\,\backslash\,}\.{*}} Last modified \ensuremath{Wed} \ensuremath{\.{\,\backslash\,}\.{*}} Last modified \ensuremath{Wed}
\ensuremath{Feb} 09 17:49:27 \ensuremath{MSK} 2022 by \ensuremath{kirr \ensuremath{Feb} 09 19:58:34 \ensuremath{MSK} 2022 by \ensuremath{kirr
}% }%
\end{cpar}% \end{cpar}%
\begin{cpar}{0}{F}{F}{0}{0}{}% \begin{cpar}{0}{F}{F}{0}{0}{}%
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment