рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг

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


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


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


рдореИрдВ рднрдВрдЧ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛: рд▓реЗрдЦ рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рд░реБрдЪрд┐ рдЬрдЧрд╛рдирд╛ рд╣реИред рддреЛ рдХрдо рд╕реЗ рдХрдо рд▓рдореНрдмреЗ рддрд░реНрдХ рдФрд░ рдЕрдзрд┐рдХрддрдо рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рд╣реЛрдЧреАред



рд▓реЗрдЦ рдХреЗ рджреЛ рднрд╛рдЧ рд╣реИрдВред рдкрд╣рд▓реЗ рдореЗрдВ рдореИрдВ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдореЗрд░рд╛ рдХреНрдпрд╛ рдЕрднрд┐рдкреНрд░рд╛рдп рд╣реИ, рджреВрд╕рд░реЗ рдореЗрдВ рдореИрдВ рдПрдХ рд╕рд░рд▓ рдХрд╛рд░реНрдп рдХреЗ рдврд╛рдВрдЪреЗ рдореЗрдВ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рдКрдВрдЧрд╛ (рдорд╛рдЗрдХреНрд░реЛрд╕реЗрд╕реНрдХ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдХрд░реАрдм)ред


рдореИрдВ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рдЦреБрд▓рд╛ рд╣реВрдВ, рдФрд░ рдореБрдЭреЗ рдкрд╛рдардХреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА (рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдореЗрд░реА рдкреНрд░реЛрдлрд╛рдЗрд▓ рдореЗрдВ рд╣реИрдВ)ред


рднрд╛рдЧ 1. рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг


рдпрд╣ рдХреНрдпрд╛ рд╣реИ рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рдкреБрд▓ рдмрдирд╛рдиреЗ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рдКрдВрдЧрд╛:


  • рд╕реНрдЯреЗрдЬ 1 рдкреБрд▓ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХрд╛ рд╕рдВрдЧреНрд░рд╣ рд╣реИ: рдкреБрд▓ рдХрд╛ рдкреНрд░рдХрд╛рд░, рднрд╛рд░ рдХреНрд╖рдорддрд╛, рдЖрджрд┐ред
  • рд╕реНрдЯреЗрдЬ 2 - рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдФрд░ рдЧрдгрдирд╛ рдХрд╛ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ (рд╡рд┐рдирд┐рд░реНрджреЗрд╢)ред
  • рд╕реНрдЯреЗрдЬ 3 - рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдЧрдгрдирд╛ (рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ) рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдирд┐рд░реНрдорд╛рдгред

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


рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ, рдЪрд░рдг 1 рдФрд░ 2 рдЕрдХреНрд╕рд░ рдЕрдиреБрдкрд╕реНрдерд┐рдд рдпрд╛ рдмрд╣реБрдд рдХрдордЬреЛрд░ рд░реВрдк рд╕реЗ рд╡реНрдпрдХреНрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЕрд╕реНрдкрд╖реНрдЯ, рдЕрдкреВрд░реНрдг рдФрд░ рдЕрдиреМрдкрдЪрд╛рд░рд┐рдХ рд╣реИред рдХреЗрд╡рд▓ рдХреБрдЫ рд╡рд┐рд╕реНрддрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ред


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


рдХреНрдпреЛрдВ?


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


рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рдХреНрдпрд╛ рд╣реИрдВ?


рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рд╡рд┐рд╖рдп рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ рдЙрддреНрдкрд╛рдж рдЧреБрдгреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣: "рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдЗрдирдкреБрдЯ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред"


рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рджрд╛рдпрд░реЗ рдХреА рд╢рд░реНрддреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВред рдЬреИрд╕реЗ рд╣реА рд╢рдмреНрдж "рд░рд╛рдЬреНрдп рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди", рд░рдлрд╝, рдкреИрдХреНрд╕реЛрд╕, "рд▓реЙрдЧрд░рд┐рджрдорд┐рдХ рдЬрдЯрд┐рд▓рддрд╛ рд╕рдордп рдореЗрдВ" рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдореЗрдВ рд▓реАрдХ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдлрд┐рд░ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рдФрд░ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдорд┐рд╢реНрд░рдг рдХрд░рдиреЗ рд▓рдЧрддреЗ рд╣реИрдВред


рдпрд╣ рд╕рдордЭрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдХреЛ рджреВрд╕рд░реЗ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдирд╛ рд╣реИред


рдХреНрдпреЛрдВ?


  1. рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЗ рдЙрдкрднреЛрдХреНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рдЙрд╕ рд╡рд┐рд╖рдп рдХреНрд╖реЗрддреНрд░ рд╕реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ (рдЕрдХреНрд╕рд░, рдЬреЛ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рд╡рд┐рдХрд╛рд╕ рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдФрд░ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рд╕реЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рд╣реЛрдЧрд╛)ред


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



рдЕрдиреНрдпрдерд╛, рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ: рдбреЗрд╡рд▓рдкрд░реНрд╕, рд╕рдордп рд╕реАрдорд╛ рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реБрдП, рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЧреБрдгреЛрдВ рдХрд╛ рддреНрдпрд╛рдЧ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдорд╣рддреНрд╡рд╣реАрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рдордп рдФрд░ рдзреНрдпрд╛рди рд╕рдорд░реНрдкрд┐рдд рдХрд░реЗрдВрдЧреЗред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЬреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд▓рдЧрддрд╛ рд╣реИ рд╡рд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред


рдЗрд╕ рддрд░рд╣ рдХреА рд╡рд┐рд╕рдВрдЧрддрд┐ рдХрд╛ рдПрдХ рдХреНрд▓рд╛рд╕рд┐рдХ рдЙрджрд╛рд╣рд░рдг рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╡рд┐рдХрд╛рд╕ рдФрд░ рд▓реЗрдЦреЛрдВ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рд╣рд┐рддреНрдп рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдВрддреБрд╖реНрдЯрд┐: рдмреНрд░рд╛рдЙрдЬрд╝рд░-рдЖрдзрд╛рд░рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдПрдХ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдЕрдзреНрдпрдпрди , рдХрдВрдкреНрдпреВрдЯрд░ рд╡рд┐рд▓рдВрдмрддрд╛: 1977тАУ2017 )ред рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЖрдорддреМрд░ рдкрд░ рдХрд┐рд╕реА рдСрдкрд░реЗрд╢рди рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдЦреЛрдЬрдирд╛ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдФрд░ рдпрджрд┐ рдЦреЛрдЬ рдзреАрдореА рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд▓реМрдЯрд╛рдП рдЧрдП рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдЬрд┐рддрдиреА рдЬрд▓реНрджреА рд╣реЛ рд╕рдХреЗ рджреЗрдЦрдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдЙрд╕ рдЦреЛрдЬ рд╕реЗ рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЬрд▓реНрджреА рдЦреЛрдЬрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдЬрдорд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдВрдд рдореЗрдВ рдЙрди рд╕рднреА рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред


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


рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд╛рд░рдг:


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


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


рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреНрдпрд╛ рд╣реИ?


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


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


рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдФрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд▓рд┐рдП рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд╛рдн рдФрд░ рдорд╣рддреНрд╡ рдХреЛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ, рдЬреЛ рдЗрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛:


рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИ?


рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ, рд╣рдо рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдкреВрд░реНрд╡-рдбрд┐рдЬрд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЖрд╡рд╢реНрдпрдХ рдЧреБрдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВред


рдореИрдВрдиреЗ рдПрдХ рдЯреИрдмрд▓реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рддреБрд▓рдирд╛ рдХреА (рдмрд╣реБрдд рд╡реНрдпрдХреНрддрд┐рдкрд░рдХ):


рд╕рдВрдкрддреНрддрд┐рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдгрд╢рд┐рд▓реНрдк рджреГрд╖реНрдЯрд┐рдХреЛрдг
рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╡рд░рдгрд╡рд┐рд╕реНрддреГрдд, рдЕрдХреНрд╕рд░ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ ReqIF рдкреНрд░рд╛рд░реВрдк рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдЙрдкрдХрд░рдг (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЧреНрд░рд╣рдг RMF)рдбрд┐рдЯреЗрд▓рд┐рдВрдЧ рдЖрдорддреМрд░ рдкрд░ рдЫреЛрдЯреА, рдЧрд▓рдд, рдЕрдиреМрдкрдЪрд╛рд░рд┐рдХ рд╢рдмреНрджреЛрдВ рдореЗрдВ рд╣реЛрддреА рд╣реИ
рд╡рд┐рдирд┐рд░реНрджреЗрд╢рдЕрдХреНрд╕рд░ рдФрдкрдЪрд╛рд░рд┐рдХ, рдмреА-рдкрджреНрдзрддрд┐, рдЬреЗрдб, рд╡реАрдбреАрдПрдо, рдЯреАрдПрд▓рдП +, рдорд┐рд╢реНрд░ рдзрд╛рддреБ, рдЖрджрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредрддреБрдо рдХреНрдпрд╛ рд╣реЛ рдХреНрдпрд╛ рдЪрд╢реНрдорд╛? рд╣рдордиреЗ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ рдФрд░ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ
рдбрд┐рдмрдЧрд┐рдВрдЧ рдФрд░ рдореЙрдбрд▓рд┐рдВрдЧ рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВрдкреНрд░реЛ-рдмреА, рдПрдЯреЗрд▓рд┐рдпрд░ рдмреА, рдЯреАрдПрд▓рдП + / рдЯреАрдПрд▓рд╕реА, рдорд┐рд╢реНрд░ рдзрд╛рддреБ, рдкреАрдЖрд░рдЖрдИрдПрд╕рдПрдо, рд╡реАрдИрд╕реАрдПрд╕, рдЖрджрд┐редрдУрд╣, рдРрд╕рд╛ рдХреНрдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?
рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдореЗрдЯреНрд░рд┐рдХреНрд╕рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдФрд░ рдореЙрдбрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рд╕реНрддреГрддрдЦреИрд░, рд╣рдо рдХреБрдЫ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдЖрдПрдВрдЧреЗ, рд╡рд┐рдХреА рдкреЗрдЬ рдкрд░ рд▓рд┐рдЦреЗрдВрдЧреЗ
рдХреЛрдб рд╡рд┐рдХрд╛рд╕рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдФрд░ рдореЙрдбрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░рдЦреИрд░, рдпрд╣рд╛рдБ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣: рддрд╛рд▓реА-рддрд╛рд▓реА - рдФрд░ рдЙрддреНрдкрд╛рджрди рдореЗрдВ
рдкрд░реАрдХреНрд╖рдгрдореЙрдбрд▓ рдкрд░ рдкрд╣рдЪрд╛рдиреЗ рдЧрдП рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖рд┐рдд рдореЙрдбрд▓-рдЖрдзрд╛рд░рд┐рдд рдкрд░реАрдХреНрд╖рдг; рдореЙрдбрд▓ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рджрд┐рд╢рд╛рддреНрдордХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХред рдЗрдВрдЯрд░рдлреЗрд╕ рдФрд░ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХреАрдХрд░рдгред
рдореЙрдбрд▓ рдХреЗ рдПрд▓рдЯреАрдПрд▓-рдЧреБрдгреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдкрд░реНрдпрд╡реЗрдХреНрд╖реА рдорд╢реАрдиреЗрдВ; рджрд┐рд╢рд╛рддреНрдордХ рдлрд╝рдЬрд╝рд┐рдВрдЧ; рдмрдБрдзреА рд╣реБрдИ рдореЙрдбрд▓ рдЬрд╛рдБрдЪ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рджрд┐рд╡реНрдп)
рдЦреИрд░, рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣: рдПрдХ рдЫреЛрдЯреА рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг, рдлрд┐рд░ рд╣рдо рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдорд▓реЛрдВ рдкрд░ рд╕реЛрдЪреЗрдВрдЧреЗ рдФрд░ рдПрдХреАрдХрд░рдг рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдЬреЛрдбрд╝реЗрдВрдЧреЗ; рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдлрд╝рдЬрд╝рд┐рдВрдЧ (рдХрдордЬреЛрд░ рд░реВрдк рд╕реЗ рдмрд╣реБ-рд╕реНрддрд░реАрдп рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдореЗрдВ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рддреНрд░реБрдЯрд┐ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП;); рд╣рдо рд╕реЗрдирд┐рдЯрд╛рдЗрдЬрд╝рд░ рдХреЗ рддрд╣рдд рдкрд░реАрдХреНрд╖рдг рдереЛрдбрд╝рд╛ рдЪрд▓рд╛рддреЗ рд╣реИрдВ
рд╕рддреНрдпрд╛рдкрдирдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, GNATprove рдпрд╛ Frama-C рдХреЛ рд▓реЗрдВ, рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рд╕реЗ рдЧреБрдг рд▓реЗрдВ, рдХреЛрдб рдХреЛ рдПрдиреЛрдЯреЗрдЯ рдХрд░реЗрдВ, рдФрд░ рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рд╛рдмрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдХреЛрдб рдФрдкрдЪрд╛рд░рд┐рдХ рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИ; рдпрд╛ рд╣рдо Atelier B рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рд╕реЗ рдЕрдВрддрд┐рдо рдЪрд░рдг рдореЗрдВ рдХреЛрдб рдкреАрдврд╝реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВрдЧреЗ; рдпрд╛ рдХреЛрдИ рдЕрдиреНрдп рд╡рд┐рдзрд┐ рдЪреБрдиреЗрдВрдирд╣реАрдВ, рдпрд╣ рдбрд░рд╛рд╡рдирд╛, рд▓рдВрдмрд╛ рдФрд░ рдорд╣рдВрдЧрд╛ рд╣реИ, рдФрд░ рд╣рдордиреЗ рдФрдкрдЪрд╛рд░рд┐рдХ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдЧреБрдг рдирд╣реАрдВ рдмрдирд╛рдП рд╣реИрдВ: рдХрд┐рд╕ рдЕрдиреБрдкрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░реЗрдВ?

рдФрд░ рдХреНрдпрд╛ рдпрд╣рд╛рдВ рдЬрд▓рдкреНрд░рдкрд╛рдд рд╡рд┐рдХрд╛рд╕ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рдЖрдВрджреЛрд▓рди рдореЙрдбрд▓ рдирд╣реАрдВ рд╣реИ?


рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдФрдкрдЪрд╛рд░рд┐рдХ рдЪрд╢реНрдорд╛ рдФрд░ рд╕рд┐рдореБрд▓реЗрд╢рди рд╕рд╣рд┐рдд, рдЪреБрд╕реНрдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред


рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдХрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рддреЗрдЬреА рд╕реЗ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрдд рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рдХрдИ рд▓реЗрдЦреЛрдВ рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣рд╛рдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ )ред


рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд╣реИ рдирд╣реАрдВред рдХрдИ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдореЗрдВ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд▓рдШреБ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рд╡рд╛рд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред


рдкрд╣рд▓реЗ, рдЦрд░рд╛рдм рд╡рд┐рдХрд╕рд┐рдд рд╕рд╛рдзрдиреЛрдВ рдФрд░ рд╕рдорд░реНрдерди рд╕рд╛рдзрдиреЛрдВ рдХреЗ рдХрд╛рд░рдг, рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрд▓рдкреНрд░рдкрд╛рдд рдореЙрдбрд▓ рд╕реЗ рдирд┐рдХрдЯрддрд╛ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рдерд╛ред


рд▓реЗрдХрд┐рди рдЕрдм рд╕рдм рдХреБрдЫ рдирд╛рдЯрдХреАрдп рд░реВрдк рд╕реЗ рдмрджрд▓ рдЧрдпрд╛ рд╣реИред


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


рдорд┐рд╢реНрд░ рдзрд╛рддреБ, TLA + / TLC, Atelier B, PRISM рдЬреИрд╕реЗ рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдХреЗ рдФрджреНрдпреЛрдЧрд┐рдХ рдЙрдкрдХрд░рдг рджрд┐рдЦрд╛рдИ рджрд┐рдП, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЕрдХрд╛рджрдорд┐рдХ / рдЧрдгрд┐рддреАрдп рд╕реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдУрдВ рдХреЛ рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЬрд╛рдБрдЪрдиреЗ рдФрд░ рдЬрд╛рдБрдЪрдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛, рдЬрд┐рд╕рдореЗрдВ рдЙрдЪреНрдЪ рдпреЛрдЧреНрдпрддрд╛ рдФрд░ рднрд╛рд░реА рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдкреБрд╢-рдмрдЯрди рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП, рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рд╕реБрд▓рдн рд╣реИред


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


рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЖрдзреБрдирд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдФрд░ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде, рдЗрд╕реЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред
рдФрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ, рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ, рдореЙрдбрд▓реЛрдВ рдХреЗ рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ, рд░рд╛рдЗрдЯрд┐рдВрдЧ рдХреЛрдб рдФрд░ рдЙрд╕рдХреЗ рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреЛ рдкрд░рд┐рд╖реНрдХреГрдд рдХрд░рдХреЗ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдорд╛рдирд╛рдВрддрд░ - рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рднреАрддрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред


рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЕрдм рдЭрд░рдирд╛ рдореЙрдбрд▓ рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реИ, рдпреЗ рджреЛ рд╕реНрд╡рддрдВрддреНрд░ рдЪреАрдЬреЗрдВ рд╣реИрдВред


рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд┐рд╕реА рднреА рд╡рд┐рдХрд╛рд╕ рд╕рдВрдЧрдарди рдкрджреНрдзрддрд┐ рдХреЗ рд╕рд╛рде рд╕рдВрдпреБрдХреНрдд рд╣реИред


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


рдореИрдВ рд╡рд┐рд╡рд░рдгреЛрдВ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдКрдВрдЧрд╛ рдФрд░ рдкреВрд░реЗ рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░реВрдВрдЧрд╛, рдореИрдВ рд╕рд┐рд░реНрдл рдорд┐рд╢реНрд░ рдзрд╛рддреБ рдореЗрдВ рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рджрд┐рдЦрд╛рдКрдВрдЧрд╛:


рдпреВрдЖрдИ рд╡рд┐рдирд┐рд░реНрджреЗрд╢
open util/ordering[Time]
sig Time {
    state: one State
}
abstract sig State {}
abstract sig Login extends State {}
abstract sig Reports extends Login {}

one sig Logout extends State {}
one sig Students, Summary, Standards extends Reports {}
one sig Answers extends Login {}

pred transition[t: Time, start: State, end: State] {
  t.state in start
  t.next.state in end
}

pred logout[t: Time] { transition[t, Login, Logout] }
pred login[t: Time] { transition[t, Logout, Summary] }
pred students[t: Time] { transition[t, Reports, Students] }
pred summary[t: Time] { transition[t, Reports, Summary] }
pred standards[t: Time] { transition[t, Reports, Standards] }
pred answers[t: Time] { transition[t, Students, Answers] }
pred close_answers[t: Time] { transition[t, Answers, Students] }

fact Trace {
  first.state = Summary
  all t: Time - last |
    logout[t] or
    login[t] or
    students[t] or
    summary[t] or
    standards[t] or
    answers[t] or
    close_answers[t]
}

, . , UI .


:


check {all t: Time | t.state = Answers implies 
        t.prev.state = Students} for 7

.


, , .


agile.


тАФ .



, , тАФ Alloy, .


, , ( ) .


( ) , .


, .


2. Alloy


Alloy, : , , .


, тАФ , , - .


.


, , .



$\big\{x,y\big\}$, $x \in X$ $y \in Y$.


Alloy : X->Y.


( util/relation):


relation.als
module relation

-- :
-- set A -    A,   
-- one A -       A
-- lone A -    A   
-- some A -      A

-- :
-- univ -       ,
--            
-- iden -   {A0, A0},     
--               univ
--        iden = {a : univ, b: univ |  a=b}
--            
-- none -  

-- :
-- : and, or, => (), != ( ), not
--  :
-- & - 
-- A->B -      .
--        
-- X<:Y -     Y ,   
--           X
-- A in B -  A   B
-- ~A -     A
-- A + B - 
-- no A - A ,  A = none
-- ^A -     A,
--         B , :
--      A in B,
--      {E0, E1}, {E1, E2} in B => {E0, E2} in B
-- A.B -  JOIN,  . :
--       {A0, B0} in A, {B0, C0, D0} in B, 
--       {A0, C0, D0} in A.B 

-- :
-- all X : Y | .... - 
-- some X : Y | .... - 

--  :
-- pred[a: A, b:B] {...}    
-- : pred[a, b]  a.pred[b]
--       
-- -,    
-- method(self : Object, args ...)

pred valid [rel : univ->univ, dom : set univ, cod : set univ] {
  rel.univ in dom and rel.univ in cod
}
fun domain [rel : univ->univ] : set (rel.univ) { rel.univ }
fun codomain [rel : univ->univ] : set (univ.rel) { univ.rel }
pred total  [rel: univ->univ, dom: set univ] {
  all x: dom | some x.rel
}
pred partial [rel: univ->univ, dom: set univ] {
  all x: dom | lone x.rel
}
pred functional [rel: univ->univ, dom: set univ] {
  all x: dom | one x.rel
}
pred surjective [rel: univ->univ, cod: set univ] {
  all x: cod | some rel.x
}
pred injective [rel: univ->univ, cod: set univ] {
  all x: cod | lone rel.x
}
pred bijective [rel: univ->univ, cod: set univ] {
  all x: cod | one rel.x
}
pred bijection [rel: univ->univ, dom, cod: set univ] {
  rel.functional[dom] and rel.bijective[cod]
}
pred reflexive [rel: univ->univ, s: set univ] {
  s<:iden in rel
}
pred irreflexive [rel: univ->univ] {no iden & rel}
pred symmetric [rel: univ->univ] {~rel in rel}
pred antisymmetric [rel: univ->univ] {~rel & rel in iden}
pred transitive [rel: univ->univ] {rel.rel in rel}
pred acyclic [rel: univ->univ, s: set univ] {
  all x: s | x not in x.^rel
}
pred complete[rel: univ->univ, s: univ] {
  all x,y:s | (x!=y => x->y in (rel + ~rel))
}
pred preorder [rel: univ->univ, s: set univ] {
  rel.reflexive[s] and rel.transitive
}
pred equality [rel: univ->univ, s: set univ] {
  rel.preorder[s] and rel.symmetric
}
pred partial_order [rel: univ->univ, s: set univ] {
  rel.preorder[s] and rel.antisymmetric
}
pred total_order [rel: univ->univ, s: set univ] {
  rel.partial_order[s] and rel.complete[s]
}

, , Alloy.



.


utils/graph, , , :


graph.als
module graph[node]
open relation

--     
fun nodes[r: node->node]: set node {
  r.domain+ r.codomain
}

--  ,     
--       
--   
pred connected[r: node->node] {
  all n1,n2 : r.nodes | n1 in n2.*(r + ~r)
}

--    
pred dag [r: node->node] {
  r.acyclic[r.nodes]
}

--    
--   ,   
--   
fun roots [r: node->node] : set node {
  let ns = r.nodes | -- ns -   
    ns - ns.^r --     ,
               --    -
               --  
}

--   
--  -  ,  
--   
fun leaves [r: node->node] : set node {
  let ns = r.nodes | -- ns -   
    ns - ns.^~r --     ,
                --    -
                --  
}


тАФ , .


:


  • (1) тАФ , , ;
  • (2) тАФ , , ;
  • (3) тАФ , ;
  • (4) , тАФ ;
  • (5) . . , , , ;
  • (6) , тАФ , .

.


, , Alloy:


compgraph.als
module compgraph[node]

open graph[node]
open relation

pred valid [edges: node->node,
            source : one node, --  1
            drain : one node --  2
] {
  edges.antisymmetric and edges.irreflexive --  6
  graph/roots[edges] = source --  1  4
  graph/leaves[edges] = drain --  2  4
}

:


open compgraph[node] as cg -- cg -  

enum node {n0, n1, n2, n3, n4}
--    ,    

run cg/valid --     cg,  
  --  valid    : relation  compgraph

:



, ( ).


, .



, .


. . , .


, . :


  • тАФ , . . ;
  • тАФ ;
  • тАФ , . . , .

, , . . ( , ).


, :


  • (7) ( ). , , ;
  • (8) , . . .

, .


, , , .


  • (9) , .

(, , ) :


  • (10) .

:


compgraph.als
module compgraph[node]

open graph[node]

pred active[edges : node->node,
            source: node,
            n : node
] {
  -- n    ,
  --   
  n in source.^edges
}

pred safe[edges : node->node,
          drain : node,
          n : node
] {
  --    ,  drain,
  --      n
  --      
  --  n     
  --  
  no n.*edges & (leaves[edges] - drain)
  --     , 
  --       
  --     ,
  --  ,     drain
  drain in n.*edges
}

pred valid [edges: node->node,
            source : one node, --  1
            drain : one  node --  2
] {
  edges.connected --     
                  --     ( 
                  --        ),
                  --      , 
                  -- ,   
                  --  connected
  edges.dag --  6  8
  source in edges.roots --  1, 4  9
  drain in edges.leaves --  2, 4  8
  all n : edges.roots - source |
    not active[edges, source, n] --  9
  all n : edges.nodes | -- 10 
    active[edges, source, n] => safe[edges, drain, n]
}

.



.


, .


:


  1. ;
  2. ;
  3. ;
  4. ;
  5. ;
  6. .

. . : .


, ? ?


.


, , .


, .


, :


  • ( , );
  • ;
  • ;
  • .

.


, .


:


  1. -> ;
  2. -> ;
  3. -> ;
  4. -> .

, .


, : , . - , тАФ , / .


, : -> .


, :


  • ;
  • .

, .


, Alloy , . , Alloy .


pred connect[
  old_edges : node->node,
  new_edges : node->node,
  source : one node,
  drain : one node,
  from : one node, 
  to : one node
] {
  --    
  from->to not in old_edges

  -- from   to,
  --    
  from not in to.*old_edges

  -- to    ,
  --    
  -- 
  to in (old_edges.nodes - source)

  --   to  
  -- ,   
  --   to  
  safe[old_edges, drain, to]

  --    ,
  --      
  --  
  new_edges = old_edges + from->to
}

connect .


, connect :


open compgraph[node] as cg

sig node {}

check {
  --      r1, r2
  all r1, r2 : node->node |
  --     source, drain, from, to
  all source, drain, from, to : node  {
    -- r1     
    -- source/drain /
    --  r2   r1   
    -- connect  from->to
    (cg/valid[r1, source, drain] and
     connect[r1, r2, source, drain, from, to])
    --   ,  r2 + source/drain
    --    
    -- 
    implies cg/valid[r2, source, drain]
    --    connect  
    --  
  }
} for 8

Executing "Check check$1 for 8"
   Sig this/node scope <= 8
   Sig this/node in [[node$0], [node$1], [node$2], [node$3],
     [node$4], [node$5], [node$6], [node$7]]
   Generating facts...
   Simplifying the bounds...
   Solver=sat4j Bitwidth=4 MaxSeq=7 SkolemDepth=4 Symmetry=20
   Generating CNF...
   Generating the solution...
   8374 vars. 168 primary vars. 22725 clauses. 108ms.
   No counterexample found. Assertion may be valid. 26904ms

Alloy . , "168 primary vars" , $2^{168}$ . 30 !


, connect .


, :


pred disconnect[
  old_edges : node->node,
  new_edges : node->node,
  source : one node,
  drain : one node,
  from : one node,
  to : one node
] {
  --     
  from->to in old_edges

  --    from
  --   
  safe[new_edges, drain, from]

  --    
  new_edges.connected

  --  
  new_edges = old_edges - from->to
}

:


open compgraph[node] as cg
sig node {}
check {
  all r1, r2 : node->node |
  all source, drain, from, to : node  {
    (cg/valid[r1, source, drain] and
     disconnect[r1, r2, source, drain, from, to])
    implies cg/valid[r2, source, drain]
  }
} for 8

! ! :


disconnect


, r1, тАФ disconnect, r2 тАФ . , r1, r2, r2 .


, тАФ from->to, source ( from) .


disconnect:


pred disconnect[
  old_edges : node->node,
  new_edges : node->node,
  source : one node,
  drain : one node,
  from : one node,
  to : one node
] {
  from->to in old_edges
  ( safe[new_edges, drain, from] or
   (from not in new_edges.nodes and
    from != source))
  new_edges.connected
  new_edges = old_edges - from >to
}

Executing "Check check$2 for 8"
   Sig this/node scope <= 8
   Sig this/node in [[node$0], [node$1], [node$2], [node$3], [node$4], [node$5], [node$6], [node$7]]
   Generating facts...
   Simplifying the bounds...
   Solver=sat4j Bitwidth=4 MaxSeq=7 SkolemDepth=4 Symmetry=20
   Generating CNF...
   Generating the solution...
   8505 vars. 168 primary vars. 24808 clauses. 207ms.
   No counterexample found. Assertion may be valid. 18369ms.

, .



, ?


, ? ?


:


--     
--     ,
-- ,       
--       
check {
  all r1,r2: node->node | all source,drain: node |
  some intermediate : seq node->node {
     cg/valid[r1, source, drain] and cg/valid[r2, source, drain]
     =>
     intermediate.first = r1 and
     intermediate.last = r2 and
     all i : intermediate.inds - intermediate.lastIdx {
       let from = intermediate[i] |
       let to = intermediate[i+1] |
       some n1, n2 : node |
         connect[from,to, source, drain, n1, n2]
         or
         disconnect[from, to, source, drain, n1, n2]
     }
  }
} for 3

:


Executing "Check check$3"
   Sig this/node scope <= 3
   Sig this/node in [[node$0], [node$1], [node$2]]
   Generating facts...
   Simplifying the bounds...
   Solver=sat4j Bitwidth=4 MaxSeq=4 SkolemDepth=4 Symmetry=20
   Generating CNF...
   Generating the solution...
A type error has occured: (see the stacktrace)
Analysis cannot be performed since it requires higher-order
quantification that could not be skolemized.

?


Alloy: .


┬лsome intermediateтАж┬╗, тАФ .


.


( , ) , .


higher-order Alloy, , . , CEGIS тАФ counter-example guided inductive synthesis.


, .


, , , :


check {
  all edges, edges1 : node->node |
  all source,drain, from, to : node {
    (cg/valid[edges, source, drain] and
    cg/valid[edges1, source, drain] and
    edges1 = edges + from->to and
    edges1 != edges)
    =>
    some n1, n2: node | connect[edges, edges1, source, drain, n1, n2]
  }
} for 7

, :


connect
Executing "Check check$3 for 7"
   Sig this/node scope <= 7
   Sig this/node in [[node$0], [node$1], [node$2], [node$3],
     [node$4], [node$5], [node$6]]
   Generating facts...
   Simplifying the bounds...
   Solver=sat4j Bitwidth=4 MaxSeq=7 SkolemDepth=4 Symmetry=20
   Generating CNF...
   Generating the solution...
   6471 vars. 133 primary vars. 16634 clauses. 200ms.
   Counterexample found. Assertion is invalid. 116ms.

!



тАФ , тАФ . from->to.


, connect (, , ).


connect:


connect
pred connect[
  old_edges : node->node,
  new_edges : node->node,
  source : one node,
  drain : one node,
  from : one node, 
  to : one node
] {
  from->to not in old_edges
  from not in to.*old_edges
  to in (old_edges.nodes - source)
  --   
  active[old_edges, source, from] => safe[old_edges, drain, to]
  --   to    from,
  -- ,   to     ,
  --   from,    
  --   
  new_edges.connected
  --   ,    
  --    :)
  new_edges = old_edges + from -> to
}

:


Executing "Check check$3 for 7"
   Sig this/node scope <= 7
   Sig this/node in [[node$0], [node$1], [node$2], [node$3],
     [node$4], [node$5], [node$6]]
   Generating facts...
   Simplifying the bounds...
   Solver=sat4j Bitwidth=4 MaxSeq=7 SkolemDepth=4 Symmetry=20
   Generating CNF...
   Generating the solution...
   6513 vars. 133 primary vars. 16837 clauses. 125ms.
   No counterexample found. Assertion may be valid. 291ms.

.


disconnect. , :


diconnect
pred disconnect[
  old_edges : node->node,
  new_edges : node->node,
  source : one node,
  drain : one node,
  from : one node,
  to : one node
] {
  from->to in old_edges
  --       ,
  --     
  active[old_edges, source, from] => safe[new_edges, drain, from]
  -- ,      
  -- ,     :
  -- (from not in new_edges.nodes and
  --  from != source)

  new_edges.connected
  new_edges = old_edges - from->to
}

, , / , .


, , (, source->drain), connect/disconnect .


( , , ).


?


, .


, , , . .


: , ( safe/active .).


.


, .


, тАФ , . .


, .


, .


, , ( ) .


?


Alloy .


.


, , , Python.


, ( ) .


?


Alloy Analyzer, GitHub тАФ .


Alloy?


:


  • , , - ;
  • , , , assertтАЩ , . .;
  • ( );
  • , , , . , , .


. Facebook, Google, Microsoft, Amazon .



, , .


agile- , .


, : .


.


.


, , , , (TLA+/TLC, B-method/Atelier B, Promela/SPIN). .




, , , . .


  1. Michael Jackson Problem Frames: Analysing & Structuring Software Development Problems
    ( !), . , .
  2. Daniel Jackson Software Abstractions: Logic, Language, and Analysis
    model finder Alloy . , . ( join, ). , .
  3. . MODEL CHECKING.
    . , , . , .

Alloy


  1. Pamela Zave. How to Make Chord Correct
    Alloy DHT Chord, ( , ), . , .

    1. Alloy, .


  1. Hillel Wayne
    . , . , .


  1. . . , . . , . . .
    , , .

Alloy


  1. Alloy Analyzer + Higher-Order Alloy
    Alloy.
  2. Online Tutorial
    , .
  3. Tutorial Materials
    .

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


All Articles