TLA + рдХреЗ рд╕рд╛рде рдПрдХ рдмрд┐рд▓реНрд▓реА рдкрдХрдбрд╝реЛ

рдФрдкрдЪрд╛рд░рд┐рдХ рддрд░реАрдХреЛрдВ рдХреЛ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рднрд╛рд╡реА, рд▓реЗрдХрд┐рди рдЕрдиреБрдЪрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдЬрдЯрд┐рд▓ рддрд░реАрдХрд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдХрд░рдг рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рдкрд░рд┐рдЪрд┐рдд рд▓реЛрдЧреЛрдВ рд╕реЗ рдХрд╛рдлреА рднрд┐рдиреНрди рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣ рд▓реЗрдЦ рдЗрд╕ рдЯреВрд▓рдХрд┐рдЯ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХреЗ рд▓рд┐рдП рд╕реАрдорд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рдХреНрд╖реНрдп рдХреЗ рд╕рд╛рде рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдореИрдВ рдореЙрдбрд▓ рдЬрд╛рдБрдЪ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдХрдард┐рди рд░реВрдк рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдПрдХ рдкрд╣реЗрд▓реА рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдЧрд╛ рдЬреЛ рд╕реНрдХреВрд▓реА рдмрдЪреНрдЪреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдЖрдк рдПрдХ рддрд░рдл рдХреЗ рд╕рд╛рдд рдХрдорд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реАрдзреЗ рдЧрд▓рд┐рдпрд╛рд░реЗ рдореЗрдВ рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдПрдХ рдмрд┐рд▓реНрд▓реА рд╣реИред рдПрдХ рдХрджрдо рдореЗрдВ, рдЖрдк рдПрдХ рдХрдорд░реЗ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдЧрд░ рдХреЛрдИ рдмрд┐рд▓реНрд▓реА рд╣реИ, рддреЛ рд╡рд╣ рдкрдХрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬреИрд╕реЗ рд╣реА рджрд░рд╡рд╛рдЬрд╛ рдмрдВрдж рд╣реЛрддрд╛ рд╣реИ, рдмрд┐рд▓реНрд▓реА рдкрдбрд╝реЛрд╕реА рдХрдорд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдЪрд▓реА рдЬрд╛рдПрдЧреА рдЬрд┐рд╕рдореЗрдВ рд╡рд╣ рдерд╛ред рдХрд╛рд░реНрдп рдмрд┐рд▓реНрд▓реА рдХреЛ рдкрдХрдбрд╝рдирд╛ рд╣реИред

рдЯреАрдПрд▓рдП + рдФрд░ рд▓реМрдХрд┐рдХ рддрд░реНрдХ


рдРрд╕реЗ рдХрдИ рдЙрдкрдХрд░рдг рд╣реИрдВ рдЬреЛ рдРрд╕реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдХреНрд╕рд░ рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╢реНрд░реАрдорддреА рд╕реЙрд▓реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдРрд╕реА рдкреНрд░рдгрд╛рд▓рд┐рдпрд╛рдВ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╡рд┐рдзреЗрдп рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЛ рд╡реНрдпрдХреНрдд рдХрд░рдирд╛ рдХрд╛рдлреА рдЬрдЯрд┐рд▓ рд╣реИ (рдЖрдкрдХреЛ рдПрдХ рд╕рд░рдгреА рдХреА рддрд░рд╣ рдХреБрдЫ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИ)ред рдЯреАрдПрд▓рдП + рдЕрд╕реНрдерд╛рдпреА рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╡рд░реНрддрдорд╛рди рдФрд░ рдЕрдЧрд▓реЗ рдЪрд░рдг рдореЗрдВ рдПрдХ рдмрдпрд╛рди рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

CatDistr' = CatDistr \ {n} 

рдпрд╣ рд╕реНрдерд┐рддрд┐ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдЬрд┐рди рдХрдорд░реЛрдВ рдореЗрдВ рдмрд┐рд▓реНрд▓реА n рдХрдорд░реЗ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рдмрд╛рдж рд╕реНрдерд┐рдд рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЙрди рдХрдорд░реЛрдВ рдХреЗ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдБ рд╕реЗ рдЙрдиреНрд╣реЛрдВрдиреЗ n рд╣рдЯрд╛рдпрд╛ рд╣реИ (рдпрджрд┐ рдмрд┐рд▓реНрд▓реА рд╡рд╣рд╛рдБ рдереА, рддреЛ рд╡рд╣ рдкрдХрдбрд╝рд╛ рдЧрдпрд╛ рдФрд░ рдЙрд╕рдХреЗ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ)ред

рдЕрдирд┐рд╡рд╛рд░реНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ, рдпрд╣ рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдПрдХ рд╡реИрд░рд┐рдПрдмрд▓ рдХреЛ рдПрдХ рдирдпрд╛ рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рдкреБрд░рд╛рдиреЗ рд╕реЗ рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред

рд╕реЗрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╕рдордЭрддреЗ рд╣реИрдВ, рдмрд┐рд▓реНрд▓реА рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рднреА рд╕рдВрднрд╡ рдХрдорд░реЛрдВ рдХреЗ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдЪрд░ рджреНрд╡рд╛рд░рд╛ рдореЙрдбрд▓рд┐рдВрдЧ рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдорд░реЗ рдореЗрдВ рдирд╣реАрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рд╕рд┐рдореБрд▓реЗрд╢рди рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╣реЛрдЧрд╛ред рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореВрд▓реНрдп рдХреЗ рдмрдЬрд╛рдп рд╕рдВрднрд╛рд╡рд┐рдд рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрдкрдЪрд╛рд░рд┐рдХ рддрд░реАрдХреЛрдВ рдореЗрдВ рдЕрдХреНрд╕рд░ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рддрдХрдиреАрдХ рд╣реИ, рдЬреЛ рдиреМрд╕рд┐рдЦрд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдХрдард┐рдирд╛рдИ рдХрд╛ рдХрд╛рд░рдг рдмрдирддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдХрд╛рд░реНрдп рдХреЛ рдЪреБрдирд╛ рдЬрд╣рд╛рдВ рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдЪрд┐рдд рд╣реИред

рдЯреАрдПрд▓рдП + рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕рдВрд░рдЪрдирд╛


рд╕рдмрд╕реЗ рд╕рд░рд▓ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░рд╛рдЬреНрдп рдХрд╛ рд╡рд░реНрдгрди, рд╡рд░реНрддрдорд╛рди рдФрд░ рдЕрдЧрд▓реЗ рд░рд╛рдЬреНрдп рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рдФрд░ рд╕рднреА рдЙрдкрд▓рдмреНрдз рд░рд╛рдЬреНрдпреЛрдВ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЗрдирд╡реЗрд░рд┐рдПрдВрдЯ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реБрдП рдШреЛрд╖рдгрд╛рдУрдВ рдФрд░ рдмрдпрд╛рдиреЛрдВ (рд╡рд┐рдзреЗрдп) рдХреЗ рд╣реЛрддреЗ рд╣реИрдВред рд╕рд╣рд╛рдпрдХ рд╡рд┐рдзреЗрдп рднреА рдЙрдкрд╕реНрдерд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд┐рдзреЗрдп рдХреЛ рдкрд░рд┐рдорд╛рдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

 ---- MODULE cat ------------------------------------------------------------- EXTENDS Integers CONSTANTS Doors VARIABLES CatDistr, LastDoor Init == /\ CatDistr = 0..Doors /\ LastDoor = -1 OpenDoor(n) == /\ CatDistr' = 0..Doors \intersect UNION { {x-1, x+1} : x \in CatDistr \ {n} } /\ LastDoor' = n Next == \E door \in 0..Doors : OpenDoor(door) CatWalk == CatDistr /= {} ============================================================================= 

рдкрд╣рд▓реА рдФрд░ рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдореЙрдбреНрдпреВрд▓ рдШреЛрд╖рдгрд╛ рдХреА рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВред

== рдХрд╛ рдЕрд░реНрде "рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдмрд░рд╛рдмрд░" рд╣реИ, рдЬрдмрдХрд┐ рдПрдХ рдПрдХрд▓ = рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдкрд░рд┐рдХрд▓рд┐рдд рдореВрд▓реНрдпреЛрдВ рдХреА рд╕рдорд╛рдирддрд╛ рд╣реИред

рджрд░рд╡рд╛рдЬреЗ рдПрдХ рдореЙрдбрд▓ рд╕реНрдерд┐рд░ рд╣реИ, рдЗрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдХреИрдЯрдбрд┐рд╕реНрдЯ - рдХрдорд░реЛрдВ рдореЗрдВ рдмрд┐рд▓реНрд▓реА рдХрд╛ рд╡рд┐рддрд░рдгред

LastDoor рд╡реИрд░рд┐рдПрдмрд▓, рдЕрдВрддрд┐рдо рдЪреЗрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХрдорд░рд╛, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЖрдЙрдЯрдкреБрдЯ рдХреА рдкрдардиреАрдпрддрд╛ рдХреЗ рд▓рд┐рдП рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдмрдбрд╝реЗ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣ рдХреЗ рдЪрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдП рдЧрдП рд░рд╛рдЬреНрдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХрд░рдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдХрд╛рдлреА рдзреАрдорд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЪреВрдВрдХрд┐ рд░рд╛рдЬреНрдп рдореЗрдВ рдЕрдм рдпрд╣ рдХреИрд╕реЗ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рдмрдирд╛рдП рдЧрдП рдПрдХ рд╣реА рд░рд╛рдЬреНрдп рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕ рд╣реЛрдЧрд╛)ред

рд╡рд┐рдзреЗрдп Init рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ (0. рдХрдорд░реЗ рд╕рднреА рдХрдорд░реЛрдВ рдХрд╛ рд╕реЗрдЯ рд╣реИ)ред OpenDoor (n) рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рд░реВрдо рдПрди рдХрд╛ рджрд░рд╡рд╛рдЬрд╛ рдЦреЛрд▓рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ (рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдмрд┐рд▓реНрд▓реА рд╡рд╣рд╛рдВ рдирд╣реАрдВ рд╣реИ - рдЕрдиреНрдпрдерд╛ рд╣рдордиреЗ рдЙрд╕реЗ рдкрдХрдбрд╝ рд▓рд┐рдпрд╛)ред

рдЕрдЧрд▓рд╛ рд╡рд┐рдзреЗрдп рдереЛрдбрд╝рд╛ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ - рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдорд░рд╛ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдХреБрдЫ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЯреАрдПрд▓рдП + рдХреЛ рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХрд┐рд╕ рдХрдорд░реЗ рдореЗрдВ рджреЗрдЦреЗрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП, рдпрд╣ рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдпрддрд╛ рдХреА рд╢реБрджреНрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛ред

рдпрд╣ рд▓рд┐рдЦрдирд╛ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдЧрд╛

 Next == OpenDoor(0) \/ OpenDoor(1) \/ ... \/ OpenDoor(Doors) 

рд▓реЗрдХрд┐рди рддрдм рд╣рдорд╛рд░рд╛ рдХреЛрдб рдХреЗрд╡рд▓ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХрдорд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдФрд░ рдЗрд╕реЗ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдорд╛рдирдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЕрдВрдд рдореЗрдВ, рдХреИрдЯрд╡реЙрдХ рдЖрдХреНрд░рдордгрдХрд╛рд░реА рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХрдорд░реЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдмрд┐рд▓реНрд▓реА рдЦрд╛рд▓реА рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЖрдХреНрд░рдордгрдХрд╛рд░реА рдХреЗ рдЙрд▓реНрд▓рдВрдШрди рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдмрд┐рд▓реНрд▓реА рдХреЛ рдкрдХрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛, рдЬрд╣рд╛рдВ рднреА рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдерд╛ред рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдЕрдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдПрдХ рддреНрд░реБрдЯрд┐ рдХрд╛ рдЕрд░реНрде рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдкрдиреЗ рдЗрдЪреНрдЫрд┐рдд рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ "рддреНрд░реБрдЯрд┐" рдХрд╛ рдЕрд░реНрде рд╣реИ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рдирд╛ред

рдореЙрдбрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди


 CONSTANTS Doors = 6 INIT Init NEXT Next INVARIANT CatWalk 

рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ - рд╣рдордиреЗ рдХрдорд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐рдпреЛрдВ, рд░рд╛рдЬреНрдп рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рд╢рд░реНрддреЛрдВ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рддрд╣рдд рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдХрд╛ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ред

рдореЙрдбрд▓ рдХреЛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди tlc2 -config cat.cfg cat.tla рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

TLA + рдХреЗ рдкрд╛рд╕ tla-toolbox рдЯреАрдо рджреНрд╡рд╛рд░рд╛ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдПрдХ рдЙрдиреНрдирдд GUI рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╡рд╣ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИред рдореЗрдиреВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ .fg рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдореЙрдбрд▓ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдирд┐рд╖реНрдХрд░реНрд╖


рдЗрд╕ рдХрд╛рд░реНрдп рдореЗрдВ, рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рдирд┐рдХрд▓рд╛ред рдмреЗрд╢рдХ, рдФрдкрдЪрд╛рд░рд┐рдХ рддрд░реАрдХреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЪрдордХрджрд╛рд░ рдореЙрдбрд▓ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рднрд╛рд╖рд╛ рдирд┐рд░реНрдорд╛рдгреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рдкрд╣реЗрд▓реА рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рдХрд╛рд░реНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдФрдкрдЪрд╛рд░рд┐рдХ рддрд░реАрдХреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕рд░рд▓ рдФрд░ рдЙрдмрд╛рдК рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред

тЖТ рдпрд╣рд╛рдБ рдХрд╛рд░реНрдп рдкрд╛рдпрд╛ рдЧрдпрд╛

рдмрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд╕рдорд╛рдзрд╛рди рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдХрд╛рд░реНрдпрдХреНрд░рдоред рдЯреАрдПрд▓рдП + рдХреЗ рдЕрдзреНрдпрдпрди рдХреЗ рд▓рд┐рдП рд╕рд╛рдордЧреНрд░реАред рдПрдХ рдЕрдиреНрдп рдореЙрдбрд▓ рдЬрд╛рдБрдЪ рдкреНрд░рдгрд╛рд▓реА, рдорд┐рд╢реНрд░ рдзрд╛рддреБ, рдпрд╣рд╛рдБ рд╡рд░реНрдгрд┐рдд рд╣реИ ред

Source: https://habr.com/ru/post/hi462723/


All Articles