แƒคแƒแƒ แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ แƒœแƒฃแƒšแƒ˜แƒ“แƒแƒœ. แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 1: แƒžแƒ”แƒ แƒกแƒแƒœแƒแƒŸแƒ”แƒ‘แƒ˜แƒก แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒœแƒฅแƒแƒœแƒ PHP-แƒกแƒ แƒ“แƒ Python-แƒจแƒ˜

แƒคแƒแƒ แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ แƒแƒ แƒ˜แƒก แƒ”แƒ แƒ—แƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒแƒœ แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ˜แƒก แƒ’แƒแƒ“แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ แƒ›แƒ”แƒแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—.

แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒซแƒšแƒ˜แƒ”แƒ แƒ˜ แƒ›แƒ”แƒ—แƒแƒ“แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ˜แƒžแƒแƒ•แƒแƒ— แƒงแƒ•แƒ”แƒšแƒ แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒแƒจแƒ˜ แƒแƒœ แƒ“แƒแƒแƒ›แƒขแƒ™แƒ˜แƒชแƒแƒ—, แƒ แƒแƒ› แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒแƒ  แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก.

แƒคแƒแƒ แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ˜แƒก แƒฃแƒคแƒ แƒ แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ แƒ˜ แƒแƒฆแƒฌแƒ”แƒ แƒ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ˜แƒฎแƒ˜แƒšแƒแƒ— แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒ’แƒแƒ“แƒแƒญแƒ แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒจแƒ˜ แƒ›แƒ’แƒ”แƒšแƒ˜, แƒ—แƒฎแƒ แƒ“แƒ แƒ™แƒแƒ›แƒ‘แƒแƒกแƒขแƒ แƒฉแƒ”แƒ›แƒก แƒฌแƒ˜แƒœแƒ แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜.

แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ แƒ›แƒ” แƒ’แƒแƒ“แƒแƒ•แƒ“แƒ˜แƒ•แƒแƒ  แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒแƒคแƒ˜แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ˜แƒ“แƒแƒœ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ”แƒ‘แƒ–แƒ” แƒ“แƒ แƒแƒฆแƒ•แƒฌแƒ”แƒ  แƒ แƒแƒ’แƒแƒ 
แƒ แƒแƒ’แƒแƒ  แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒแƒ“ แƒ’แƒแƒ แƒ“แƒแƒ˜แƒฅแƒ›แƒœแƒแƒก แƒคแƒแƒ แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒแƒ“.

แƒแƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก แƒ›แƒ” แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒ” แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒœแƒฅแƒแƒœแƒ˜แƒก แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒแƒœแƒแƒšแƒแƒ’แƒ˜ แƒกแƒ˜แƒ›แƒ‘แƒแƒšแƒฃแƒ แƒ˜ แƒžแƒ แƒ˜แƒœแƒชแƒ˜แƒžแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—.

แƒ˜แƒก แƒแƒแƒœแƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒก แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒ™แƒแƒ“แƒก แƒ“แƒ แƒ—แƒแƒ แƒ’แƒ›แƒœแƒ˜แƒก แƒ›แƒแƒก แƒ’แƒแƒœแƒขแƒแƒšแƒ”แƒ‘แƒแƒ—แƒ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒ“ (SMT), แƒ แƒแƒ›แƒšแƒ˜แƒก แƒแƒ›แƒแƒฎแƒกแƒœแƒ แƒฃแƒ™แƒ•แƒ” แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒฃแƒšแƒแƒ“.

แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒกแƒ˜แƒ›แƒ‘แƒแƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒ›แƒแƒ—แƒ•แƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒ˜แƒœแƒขแƒ”แƒ แƒœแƒ”แƒขแƒจแƒ˜ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒคแƒ แƒแƒ’แƒ›แƒ”แƒœแƒขแƒฃแƒšแƒแƒ“ แƒแƒ แƒ˜แƒก แƒฌแƒแƒ แƒ›แƒแƒ“แƒ’แƒ”แƒœแƒ˜แƒšแƒ˜,
แƒ›แƒแƒ™แƒšแƒ”แƒ“ แƒแƒฆแƒ•แƒฌแƒ”แƒ  แƒ แƒ แƒแƒ แƒ˜แƒก.

แƒกแƒ˜แƒ›แƒ‘แƒแƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒ›แƒแƒ—แƒ•แƒšแƒ แƒแƒ แƒ˜แƒก แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒ”แƒ แƒ—แƒ“แƒ แƒแƒฃแƒšแƒ˜ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒคแƒแƒ แƒ—แƒ แƒ“แƒ˜แƒแƒžแƒแƒ–แƒแƒœแƒ–แƒ” แƒ“แƒ แƒแƒ แƒ˜แƒก แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒแƒคแƒ˜แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜.

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ“แƒแƒ•แƒแƒงแƒ”แƒœแƒแƒ— แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก แƒžแƒ˜แƒ แƒแƒ‘แƒ”แƒ‘แƒ˜, แƒกแƒแƒ“แƒแƒช แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ›แƒ˜แƒ˜แƒฆแƒแƒก แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒ“แƒแƒ“แƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ, แƒ›แƒ”แƒแƒ แƒ” แƒฃแƒแƒ แƒงแƒแƒคแƒ˜แƒ—แƒ˜, แƒ›แƒ”แƒกแƒแƒ›แƒ” แƒœแƒฃแƒšแƒ˜ แƒ“แƒ แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜ แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ˜, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, 42.

แƒกแƒ˜แƒ›แƒ‘แƒแƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒ›แƒแƒ—แƒ•แƒšแƒ”แƒ‘แƒ˜ แƒ”แƒ แƒ— แƒžแƒ”แƒ แƒกแƒžแƒ”แƒฅแƒขแƒ˜แƒ•แƒแƒจแƒ˜ แƒ›แƒแƒ’แƒ•แƒชแƒ”แƒ›แƒก แƒžแƒแƒกแƒฃแƒฎแƒก, แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ—แƒฃ แƒแƒ แƒ แƒฉแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก แƒกแƒแƒกแƒฃแƒ แƒ•แƒ”แƒšแƒ˜ แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ แƒ“แƒ แƒแƒกแƒ”แƒ—แƒ˜ แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜. แƒแƒœ แƒ›แƒขแƒ™แƒ˜แƒชแƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ›แƒ˜แƒกแƒ, แƒ แƒแƒ› แƒแƒกแƒ”แƒ—แƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜ แƒแƒ  แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก.

แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒ˜แƒช, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ“แƒแƒ•แƒแƒงแƒ”แƒœแƒแƒ— แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜ แƒงแƒ•แƒ”แƒšแƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒแƒ–แƒ” แƒ“แƒ แƒจแƒ”แƒ•แƒแƒ แƒฉแƒ˜แƒแƒ— แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜ แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒแƒ“แƒ›แƒ˜แƒœแƒ˜แƒกแƒขแƒ แƒแƒขแƒแƒ แƒ˜แƒก แƒžแƒแƒ แƒแƒšแƒ˜.

แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒžแƒแƒ•แƒ˜แƒ— แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒก แƒแƒœ แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒ›แƒขแƒ™แƒ˜แƒชแƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒแƒก, แƒ แƒแƒ› แƒแƒ“แƒ›แƒ˜แƒœแƒ˜แƒกแƒขแƒ แƒแƒขแƒแƒ แƒ˜แƒก แƒžแƒแƒ แƒแƒšแƒ˜ แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒแƒ.

แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒแƒฆแƒ˜แƒœแƒ˜แƒจแƒœแƒแƒก, แƒ แƒแƒ› แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒ™แƒšแƒแƒกแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒ˜ แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒ— แƒแƒ แƒ˜แƒก แƒกแƒ˜แƒ›แƒ‘แƒแƒšแƒฃแƒ แƒ˜ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒกแƒแƒ™แƒฃแƒ—แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ.

แƒแƒ›แƒ˜แƒขแƒแƒ›, แƒฉแƒ”แƒ›แƒก แƒžแƒ”แƒ แƒกแƒแƒœแƒแƒŸ VM-แƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ˜แƒ›แƒฃแƒจแƒแƒแƒก แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒฃแƒšแƒ˜ แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒœแƒฅแƒแƒœแƒ˜แƒก แƒ”แƒ›แƒฃแƒšแƒแƒชแƒ˜แƒ˜แƒก แƒ แƒ”แƒŸแƒ˜แƒ›แƒจแƒ˜.

แƒฌแƒ˜แƒœแƒ แƒกแƒขแƒแƒขแƒ˜แƒ˜แƒก แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ”แƒ‘แƒจแƒ˜ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ˜แƒฎแƒ˜แƒšแƒแƒ— แƒแƒคแƒ˜แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒ›แƒแƒ แƒ—แƒšแƒ˜แƒแƒœแƒ˜ แƒ™แƒ แƒ˜แƒขแƒ˜แƒ™แƒ แƒ›แƒ˜แƒกแƒ˜ แƒกแƒ˜แƒกแƒฃแƒกแƒขแƒ”แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒฎแƒ˜แƒšแƒ•แƒ˜แƒ—.

แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒ:

  1. แƒ™แƒแƒ›แƒ‘แƒ˜แƒœแƒแƒขแƒแƒ แƒฃแƒšแƒ˜ แƒแƒคแƒ”แƒ—แƒฅแƒ”แƒ‘แƒ, แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒคแƒแƒ แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ แƒกแƒแƒ‘แƒแƒšแƒแƒแƒ“ แƒ›แƒชแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ P=NP-แƒ›แƒ“แƒ”
  2. แƒ–แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ แƒคแƒแƒ˜แƒšแƒฃแƒ  แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒจแƒ˜, แƒฅแƒกแƒ”แƒšแƒ”แƒ‘แƒจแƒ˜ แƒ“แƒ แƒกแƒฎแƒ•แƒ แƒ’แƒแƒ แƒ” แƒกแƒแƒชแƒแƒ•แƒ”แƒ‘แƒจแƒ˜ แƒฃแƒคแƒ แƒ แƒ แƒ—แƒฃแƒšแƒ˜แƒ แƒ’แƒแƒ“แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ
  3. แƒฎแƒแƒ แƒ•แƒ”แƒ–แƒ”แƒ‘แƒ˜ แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒจแƒ˜, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ›แƒ แƒแƒœ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒกแƒขแƒ›แƒ แƒ’แƒแƒœแƒ˜แƒ–แƒ แƒแƒฎแƒ แƒ”แƒ แƒ—แƒ˜ แƒ แƒแƒ›, แƒ›แƒแƒ’แƒ แƒแƒ› แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒแƒ“ แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒแƒ  แƒแƒฆแƒฌแƒ”แƒ แƒก แƒ›แƒแƒก แƒขแƒ”แƒฅแƒœแƒ˜แƒ™แƒฃแƒ  แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒจแƒ˜.

แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ แƒ’แƒแƒ“แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ“แƒ แƒจแƒ”แƒ”แƒกแƒแƒ‘แƒแƒ›แƒ”แƒ‘แƒ แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ’แƒแƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒก แƒ แƒแƒฆแƒแƒช แƒกแƒ แƒฃแƒšแƒ˜แƒแƒ“ แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒก, แƒ แƒแƒกแƒแƒช แƒจแƒ”แƒ›แƒฅแƒ›แƒœแƒ”แƒšแƒ”แƒ‘แƒ˜ แƒ›แƒ˜แƒกแƒ’แƒแƒœ แƒ›แƒแƒ”แƒšแƒแƒ“แƒœแƒ”แƒœ.

แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ แƒ›แƒ” แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒแƒ“ แƒ’แƒแƒœแƒ•แƒ˜แƒฎแƒ˜แƒšแƒแƒ• แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒแƒจแƒ˜ แƒคแƒแƒ แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒก, แƒแƒ› แƒ“แƒ แƒแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ—แƒแƒ•แƒก แƒ™แƒ”แƒ“แƒ”แƒšแƒก แƒแƒ  แƒ“แƒแƒ•แƒแƒ™แƒแƒ™แƒฃแƒœแƒ”แƒ‘ แƒ“แƒ แƒแƒ•แƒ˜แƒ แƒฉแƒ”แƒ• แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒก, แƒกแƒแƒ“แƒแƒช แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒฃแƒšแƒ˜ แƒกแƒ˜แƒ แƒ—แƒฃแƒšแƒ” แƒ“แƒ แƒ’แƒแƒ แƒ” แƒ–แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ แƒ›แƒ˜แƒœแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜แƒ.

แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒญแƒ™แƒ•แƒ˜แƒแƒœแƒ˜ แƒ™แƒแƒœแƒขแƒ แƒแƒฅแƒขแƒ”แƒ‘แƒ˜ แƒกแƒแƒฃแƒ™แƒ”แƒ—แƒ”แƒกแƒแƒ“ แƒ”แƒ แƒ’แƒ”แƒ‘แƒ แƒแƒ› แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒก, แƒแƒ แƒฉแƒ”แƒ•แƒแƒœแƒ˜ แƒ“แƒแƒ”แƒชแƒ RIDE แƒ™แƒแƒœแƒขแƒ แƒแƒฅแƒขแƒ”แƒ‘แƒ–แƒ” Waves แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒ˜แƒ“แƒแƒœ: แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒแƒœ แƒขแƒฃแƒ แƒ˜แƒœแƒ’แƒ˜ แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒ แƒ›แƒแƒ—แƒ˜ แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒกแƒ˜แƒ แƒ—แƒฃแƒšแƒ” แƒฎแƒ”แƒšแƒแƒ•แƒœแƒฃแƒ แƒแƒ“ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒฃแƒšแƒ˜แƒ.

แƒ›แƒแƒ’แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒœแƒ•แƒ˜แƒฎแƒ˜แƒšแƒแƒ•แƒ— แƒ›แƒแƒ— แƒ”แƒฅแƒกแƒ™แƒšแƒฃแƒ–แƒ˜แƒฃแƒ แƒแƒ“ แƒขแƒ”แƒฅแƒœแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒ›แƒฎแƒ แƒ˜แƒ“แƒแƒœ.

แƒงแƒ•แƒ”แƒšแƒแƒคแƒ แƒ˜แƒก แƒ’แƒแƒ แƒ“แƒ, แƒคแƒแƒ แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ แƒ’แƒแƒœแƒกแƒแƒ™แƒฃแƒ—แƒ แƒ”แƒ‘แƒ˜แƒ— แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒ“แƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  แƒ™แƒแƒœแƒขแƒ แƒแƒฅแƒขแƒ–แƒ”: แƒ แƒแƒ’แƒแƒ แƒช แƒฌแƒ”แƒกแƒ˜, แƒจแƒ”แƒฃแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒฎแƒ”แƒšแƒจแƒ”แƒ™แƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒแƒกแƒฌแƒแƒ แƒ”แƒ‘แƒ แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’.
แƒ“แƒ แƒแƒกแƒ”แƒ—แƒ˜ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒฆแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒฆแƒแƒšแƒ˜, แƒ แƒแƒ“แƒ’แƒแƒœ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ“แƒ˜แƒ“แƒ˜ แƒ—แƒแƒœแƒฎแƒ”แƒ‘แƒ˜ แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ แƒญแƒ™แƒ•แƒ˜แƒแƒœ แƒ™แƒแƒœแƒขแƒ แƒแƒฅแƒขแƒ”แƒ‘แƒ–แƒ”.

แƒฉแƒ”แƒ›แƒ˜ แƒกแƒ˜แƒ›แƒ‘แƒแƒšแƒฃแƒ แƒ˜ แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒœแƒฅแƒแƒœแƒ แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜แƒ PHP-แƒจแƒ˜ แƒ“แƒ Python-แƒจแƒ˜ แƒ“แƒ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก Z3Prover-แƒก Microsoft Research-แƒ˜แƒกแƒ’แƒแƒœ แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜ SMT แƒคแƒแƒ แƒ›แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒกแƒแƒญแƒ แƒ”แƒšแƒแƒ“.

แƒ›แƒ˜แƒก แƒ‘แƒ˜แƒ แƒ—แƒ•แƒจแƒ˜ แƒแƒ แƒ˜แƒก แƒ›แƒซแƒšแƒแƒ•แƒ แƒ˜ แƒ›แƒ แƒแƒ•แƒแƒšแƒขแƒ แƒแƒœแƒ–แƒแƒฅแƒชแƒ˜แƒ˜แƒก แƒซแƒ˜แƒ”แƒ‘แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช
แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ˜แƒžแƒแƒ•แƒแƒ— แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒแƒœ แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒ, แƒ›แƒแƒจแƒ˜แƒœแƒแƒช แƒ™แƒ˜, แƒ—แƒฃ แƒ”แƒก แƒ›แƒแƒ˜แƒ—แƒฎแƒแƒ•แƒก แƒ‘แƒ”แƒ•แƒ  แƒขแƒ แƒแƒœแƒ–แƒแƒฅแƒชแƒ˜แƒแƒก.
แƒ›แƒแƒจแƒ˜แƒœแƒแƒช แƒ™แƒ˜, แƒ›แƒ˜แƒ—แƒ แƒ˜แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ›แƒ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ›แƒซแƒšแƒแƒ•แƒ แƒ›แƒ แƒกแƒ˜แƒ›แƒ‘แƒแƒšแƒฃแƒ แƒ›แƒ แƒฉแƒแƒ แƒฉแƒแƒ› Ethereum-แƒ˜แƒก แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒแƒฆแƒ›แƒแƒกแƒแƒฉแƒ”แƒœแƒแƒ“, แƒ”แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ—แƒ•แƒ˜แƒก แƒฌแƒ˜แƒœ แƒ“แƒแƒแƒ›แƒแƒขแƒ.

แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒฆแƒกแƒแƒœแƒ˜แƒจแƒœแƒแƒ•แƒ˜แƒ, แƒ แƒแƒ› แƒ”แƒ—แƒ”แƒ แƒฃแƒšแƒ˜ แƒ™แƒแƒœแƒขแƒ แƒแƒฅแƒขแƒ”แƒ‘แƒ˜ แƒฃแƒคแƒ แƒ แƒ แƒ—แƒฃแƒšแƒ˜แƒ แƒ“แƒ แƒขแƒฃแƒ แƒ˜แƒœแƒ’แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒ˜.

PHP แƒ—แƒแƒ แƒ’แƒ›แƒœแƒ˜แƒก RIDE แƒญแƒ™แƒ•แƒ˜แƒแƒœแƒ˜ แƒ™แƒแƒœแƒขแƒ แƒแƒฅแƒขแƒ˜แƒก แƒกแƒแƒฌแƒงแƒ˜แƒก แƒ™แƒแƒ“แƒก แƒžแƒ˜แƒ—แƒแƒœแƒ˜แƒก แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ แƒฌแƒแƒ แƒ›แƒแƒ“แƒ’แƒ”แƒœแƒ˜แƒšแƒ˜แƒ แƒ แƒแƒ’แƒแƒ แƒช Z3 SMT-แƒ—แƒแƒœ แƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒแƒ“แƒ˜ แƒฎแƒ”แƒšแƒจแƒ”แƒ™แƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒ›แƒแƒ—แƒ˜ แƒ’แƒแƒ“แƒแƒกแƒ•แƒšแƒ˜แƒก แƒžแƒ˜แƒ แƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ—:

แƒคแƒแƒ แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ แƒœแƒฃแƒšแƒ˜แƒ“แƒแƒœ. แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 1: แƒžแƒ”แƒ แƒกแƒแƒœแƒแƒŸแƒ”แƒ‘แƒ˜แƒก แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒœแƒฅแƒแƒœแƒ PHP-แƒกแƒ แƒ“แƒ Python-แƒจแƒ˜

แƒแƒฎแƒšแƒ แƒฃแƒคแƒ แƒ แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ แƒแƒ“ แƒแƒฆแƒ•แƒฌแƒ”แƒ  แƒ แƒ แƒฎแƒ“แƒ”แƒ‘แƒ แƒจแƒ˜แƒ’แƒœแƒ˜แƒ—.

แƒ›แƒแƒ’แƒ แƒแƒ› แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜, แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒกแƒ˜แƒขแƒงแƒ•แƒ RIDE แƒญแƒ™แƒ•แƒ˜แƒแƒœแƒ˜ แƒ™แƒแƒœแƒขแƒ แƒแƒฅแƒขแƒ˜แƒก แƒ”แƒœแƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘.

แƒ”แƒก แƒแƒ แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒฃแƒ แƒ˜ แƒ“แƒ แƒ”แƒฅแƒกแƒžแƒ แƒ”แƒกแƒ˜แƒแƒ–แƒ” แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ”แƒœแƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ“แƒ˜แƒ–แƒแƒ˜แƒœแƒ˜แƒ— แƒ–แƒแƒ แƒ›แƒแƒชแƒ˜แƒ.
RIDE แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ˜แƒ–แƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒแƒ“ แƒ‘แƒšแƒแƒ™แƒฉแƒ”แƒ˜แƒœแƒจแƒ˜ แƒ“แƒ แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒแƒซแƒ˜แƒ”แƒ‘แƒ แƒ“แƒ แƒฉแƒแƒฌแƒ”แƒ แƒ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒกแƒแƒคแƒฃแƒšแƒ”แƒกแƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒแƒชแƒแƒ•แƒ˜แƒ“แƒแƒœ.

แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒฃแƒ แƒ—แƒแƒ— RIDE แƒ™แƒแƒœแƒขแƒ แƒแƒฅแƒขแƒ˜ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒกแƒแƒคแƒฃแƒšแƒ”แƒ–แƒ” แƒ“แƒ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ TRUE แƒแƒœ FALSE.

TRUE แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒญแƒ™แƒ•แƒ˜แƒแƒœแƒ˜ แƒ™แƒแƒœแƒขแƒ แƒแƒฅแƒขแƒ˜ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒแƒซแƒšแƒ”แƒ•แƒก แƒขแƒ แƒแƒœแƒ–แƒแƒฅแƒชแƒ˜แƒแƒก, แƒฎแƒแƒšแƒ FALSE แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒ˜แƒก แƒ™แƒ แƒซแƒแƒšแƒแƒ•แƒก แƒ›แƒแƒก.
แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜: แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒแƒ™แƒ แƒซแƒแƒšแƒแƒก แƒ’แƒแƒ“แƒแƒ แƒ˜แƒชแƒฎแƒ•แƒ, แƒ—แƒฃ แƒกแƒแƒคแƒฃแƒšแƒ˜แƒก แƒ‘แƒแƒšแƒแƒœแƒกแƒ˜ 100-แƒ–แƒ” แƒœแƒแƒ™แƒšแƒ”แƒ‘แƒ˜แƒ.

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒแƒ•แƒ˜แƒฆแƒ”แƒ‘ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ›แƒ’แƒ”แƒšแƒก, แƒ—แƒฎแƒแƒก แƒ“แƒ แƒ™แƒแƒ›แƒ‘แƒแƒกแƒขแƒแƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒฃแƒ™แƒ•แƒ” แƒฌแƒแƒ แƒ›แƒแƒ“แƒ’แƒ”แƒœแƒ˜แƒšแƒ˜แƒ แƒญแƒ™แƒ•แƒ˜แƒแƒœแƒ˜ แƒ™แƒแƒœแƒขแƒ แƒแƒฅแƒขแƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ—.

แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ•แƒ”แƒ  แƒจแƒ”แƒซแƒšแƒ”แƒ‘แƒก แƒ—แƒแƒœแƒฎแƒ˜แƒก แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒแƒก แƒกแƒแƒคแƒฃแƒšแƒ”แƒ“แƒแƒœ, แƒ แƒแƒ›แƒ”แƒšแƒ–แƒ”แƒ“แƒแƒช แƒ’แƒแƒคแƒแƒ แƒ›แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ™แƒแƒœแƒขแƒ แƒแƒฅแƒขแƒ˜, แƒกแƒแƒœแƒแƒ› แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒแƒก แƒแƒ  แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒก แƒ›แƒ”แƒแƒ แƒ” แƒ›แƒฎแƒแƒ แƒ”แƒก.

#ะ˜ะทะฒะปะตะบะฐะตะผ ะฟะพะปะพะถะตะฝะธะต ะฒัะตั… ะพะฑัŠะตะบั‚ะพะฒ ะธะท ะฑะปะพะบั‡ะตะนะฝะฐ
let contract = tx.sender
let human= extract(getInteger(contract,"human"))
let wolf= extract(getInteger(contract,"wolf"))
let goat= extract(getInteger(contract,"goat"))
let cabbage= extract(getInteger(contract,"cabbage"))

#ะญั‚ะพ ั‚ะฐะบ ะฝะฐะทั‹ะฒะฐะตะผะฐั ะดะฐั‚ะฐ-ั‚ั€ะฐะฝะทะฐะบั†ะธั, ะฒ ะบะพั‚ะพั€ะพะน ะฟะพะปัŒะทะพะฒะฐั‚ะตะปัŒ ะฟั€ะธัั‹ะปะฐะตั‚ ะฝะพะฒั‹ะต 4 ะฟะตั€ะตะผะตะฝะฝั‹ะต.
#ะšะพะฝั‚ั€ะฐะบั‚ ั€ะฐะทั€ะตัˆะธั‚ ะตั‘ ั‚ะพะปัŒะบะพ ะฒ ัะปัƒั‡ะฐะต ะตัะปะธ ะฒัะต ะพะฑัŠะตะบั‚ั‹ ะพัั‚ะฐะฝัƒั‚ัั ะฒ ัะพั…ั€ะฐะฝะฝะพัั‚ะธ.
match tx {
case t:DataTransaction =>
   #ะ˜ะทะฒะปะตะบะฐะตะผ ะฑัƒะดัƒั‰ะตะต ะฟะพะปะพะถะตะฝะธะต ะฒัะตั… ะพะฑัŠะตะบั‚ะพะฒ ะธะท ั‚ั€ะฐะฝะทะฐะบั†ะธะธ
   let newHuman= extract(getInteger(t.data,"human")) 
   let newWolf= extract(getInteger(t.data,"wolf"))
   let newGoat= extract(getInteger(t.data,"goat"))
   let newCabbage= extract(getInteger(t.data,"cabbage"))
   
   #0 ะพะฑะพะทะฝะฐั‡ะฐะตั‚, ั‡ั‚ะพ ะพะฑัŠะตะบั‚ ะฝะฐ ะปะตะฒะพะผ ะฑะตั€ะตะณัƒ, ะฐ 1 ั‡ั‚ะพ ะฝะฐ ะฟั€ะฐะฒะพะผ
   let humanSide= human == 0 || human == 1
   let wolfSide= wolf == 0 || wolf == 1
   let goatSide= goat == 0 || goat == 1
   let cabbageSide= cabbage == 0 || cabbage == 1
   let side= humanSide && wolfSide && goatSide && cabbageSide

   #ะ‘ัƒะดัƒั‚ ั€ะฐะทั€ะตัˆะตะฝั‹ ั‚ะพะปัŒะบะพ ั‚ะต ั‚ั€ะฐะฝะทะฐะบั†ะธะธ, ะณะดะต ั ะบะพะทะพะน ะฝะธะบะพะณะพ ะฝะตั‚ ะฒ ะพั‚ััƒั‚ัั‚ะฒะธะธ ั„ะตั€ะผะตั€ะฐ.
   let safeAlone= newGoat != newWolf && newGoat != newCabbage
   let safe= safeAlone || newGoat == newHuman
   let humanTravel= human != newHuman 

   #ะกะฟะพัะพะฑั‹ ะฟัƒั‚ะตัˆะตัั‚ะฒะธั ั„ะตั€ะผะตั€ะฐ ั‚ัƒะดะฐ ะธ ะพะฑั€ะฐั‚ะฝะพ, ั ะบะตะผ-ั‚ะพ ะปะธะฑะพ ะฒ ะพะดะธะฝะพั‡ะบัƒ.
   let t1= humanTravel && newWolf == wolf + 1 && newGoat == goat && newCabbage == cabbage 
   let t2= humanTravel && newWolf == wolf && newGoat == goat + 1 && newCabbage == cabbage
   let t3= humanTravel && newWolf == wolf && newGoat == goat && newCabbage == cabbage + 1
   let t4= humanTravel && newWolf == wolf - 1 && newGoat == goat && newCabbage == cabbage
   let t5= humanTravel && newWolf == wolf && newGoat == goat - 1 && newCabbage == cabbage
   let t6= humanTravel && newWolf == wolf && newGoat == goat && newCabbage == cabbage - 1
   let t7= humanTravel && newWolf == wolf && newGoat == goat && newCabbage == cabbage
   let objectTravel = t1 || t2 || t3 || t4 || t5 || t6 || t7
   
   #ะŸะพัะปะตะดะฝัั ัั‚ั€ะพะบะฐ ะฒ ั€ะฐะทะดะตะปะต ั‚ั€ะฐะฝะทะฐะบั†ะธะธ ะพะฟะธัั‹ะฒะฐะตั‚ ั€ะฐะทั€ะตัˆะฐัŽั‰ะตะต ั‚ั€ะฐะฝะทะฐะบั†ะธัŽ ัƒัะปะพะฒะธะต.
   #ะŸะตั€ะตะผะตะฝะฝั‹ะต ั‚ั€ะฐะฝะทะฐะบั†ะธะธ ะดะพะปะถะฝั‹ ะธะผะตั‚ัŒ ะทะฝะฐั‡ะตะฝะธั 1 ะธะปะธ 0, ะฒัะต ะพะฑัŠะตะบั‚ั‹ ะดะพะปะถะฝั‹
   #ะฑั‹ั‚ัŒ ะฒ ะฑะตะทะพะฟะฐัะฝะพัั‚ะธ, ะฐ ั„ะตั€ะผะตั€ ะดะพะปะถะตะฝ ะฟะตั€ะตะฟะปั‹ะฒะฐั‚ัŒ ั€ะตะบัƒ ะฒ ะพะดะธะฝะพั‡ะบัƒ 
   #ะธะปะธ ั ะบะตะผ-ั‚ะพ ะฝะฐ ะบะฐะถะดะพะผ ัˆะฐะณัƒ
   side && safe && humanTravel && objectTravel
case s:TransferTransaction =>
   #ะขั€ะฐะฝะทะฐะบั†ะธั ะฒั‹ะฒะพะดะฐ ัั€ะตะดัั‚ะฒ ั€ะฐะทั€ะตัˆะตะฝะฐ ั‚ะพะปัŒะบะพ ะฒ ัะปัƒั‡ะฐะต ะตัะปะธ ะฒัะต ะฟะตั€ะตะฟะปั‹ะปะธ ะฝะฐ ะดั€ัƒะณะพะน ะฑะตั€ะตะณ
   human == 1 && wolf == 1 && goat == 1 && cabbage == 1

#ะ’ัะต ะฟั€ะพั‡ะธะต ั‚ะธะฟั‹ ั‚ั€ะฐะฝะทะฐะบั†ะธะน ะทะฐะฟั€ะตั‰ะตะฝั‹
case _ => false

}

PHP แƒฏแƒ”แƒ  แƒแƒ›แƒแƒ˜แƒฆแƒ”แƒ‘แƒก แƒงแƒ•แƒ”แƒšแƒ แƒชแƒ•แƒšแƒแƒ“แƒก แƒญแƒ™แƒ•แƒ˜แƒแƒœแƒ˜ แƒ™แƒแƒœแƒขแƒ แƒแƒฅแƒขแƒ˜แƒ“แƒแƒœ แƒ›แƒแƒ—แƒ˜ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒ˜ แƒšแƒแƒ’แƒ˜แƒ™แƒฃแƒ แƒ˜ แƒ’แƒแƒ›แƒแƒฎแƒแƒขแƒ•แƒ˜แƒก แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ—.

cabbage: extract ( getInteger ( contract , "cabbage" ) )
goat: extract ( getInteger ( contract , "goat" ) )
human: extract ( getInteger ( contract , "human" ) )
wolf: extract ( getInteger ( contract , "wolf" ) )
fState: human== 1 && wolf== 1 && goat== 1 && cabbage== 1
fState: 
wolf: 
goat: 
cabbage: 
cabbageSide: cabbage== 0 || cabbage== 1
human: extract ( getInteger ( contract , "human" ) )
newGoat: extract ( getInteger ( t.data , "goat" ) )
newHuman: extract ( getInteger ( t.data , "human" ) )
goatSide: goat== 0 || goat== 1
humanSide: human== 0 || human== 1
t7: humanTravel && newWolf== wolf && newGoat== goat && newCabbage== cabbage
t3: humanTravel && newWolf== wolf && newGoat== goat && newCabbage== cabbage + 1
t6: humanTravel && newWolf== wolf && newGoat== goat && newCabbage== cabbage - 1
t2: humanTravel && newWolf== wolf && newGoat== goat + 1 && newCabbage== cabbage
t5: humanTravel && newWolf== wolf && newGoat== goat - 1 && newCabbage== cabbage
t1: humanTravel && newWolf== wolf + 1 && newGoat== goat && newCabbage== cabbage
t4: humanTravel && newWolf== wolf - 1 && newGoat== goat && newCabbage== cabbage
safeAlone: newGoat != newWolf && newGoat != newCabbage
wolfSide: wolf== 0 || wolf== 1
humanTravel: human != newHuman
side: humanSide && wolfSide && goatSide && cabbageSide
safe: safeAlone || newGoat== newHuman
objectTravel: t1 || t2 || t3 || t4 || t5 || t6 || t7

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ PHP แƒ’แƒแƒ แƒ“แƒแƒฅแƒ›แƒœแƒ˜แƒก แƒ›แƒแƒ— Z3Prover SMT-แƒ—แƒแƒœ แƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒแƒ“แƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒแƒ‘แƒแƒจแƒ˜ Python-แƒจแƒ˜.
แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒคแƒฃแƒ—แƒฃแƒšแƒ˜แƒ แƒ›แƒแƒ แƒงแƒฃแƒŸแƒจแƒ˜, แƒกแƒแƒ“แƒแƒช แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ˜แƒก แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜ แƒ˜แƒฆแƒ”แƒ‘แƒ”แƒœ i แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒก, แƒขแƒ แƒแƒœแƒ–แƒแƒฅแƒชแƒ˜แƒ˜แƒก แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒก i + 1 แƒ“แƒ แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜ แƒ’แƒแƒ›แƒแƒกแƒแƒฎแƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ— แƒแƒ“แƒ’แƒ”แƒœแƒ”แƒœ แƒฌแƒ˜แƒœแƒ แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒ˜แƒ“แƒแƒœ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ–แƒ” แƒ’แƒแƒ“แƒแƒกแƒ•แƒšแƒ˜แƒก แƒฌแƒ”แƒกแƒ”แƒ‘แƒก.

แƒ”แƒก แƒแƒ แƒ˜แƒก แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒœแƒฅแƒแƒœแƒ˜แƒก แƒ’แƒฃแƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒก แƒ›แƒ แƒแƒ•แƒแƒš แƒขแƒ แƒแƒœแƒ–แƒแƒฅแƒชแƒ˜แƒ˜แƒก แƒซแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ”แƒฅแƒแƒœแƒ˜แƒ–แƒ›แƒก.

fState:  And( And( And( human[Steps]  ==  1 , wolf[Steps]  ==  1 )  , goat[Steps]  ==  1 )  , cabbage[Steps]  ==  1 )  
final:  fState[Steps] 
fState:   
wolf:   
goat:   
cabbage:   
cabbageSide:  Or( cabbage[i]  ==  0 , cabbage[i]  ==  1 )  
goatSide:  Or( goat[i]  ==  0 , goat[i]  ==  1 )  
humanSide:  Or( human[i]  ==  0 , human[i]  ==  1 )  
t7:  And( And( And( humanTravel[i] , wolf  ==  wolf[i] )  , goat[i+1]  ==  goat[i] )  , cabbage  ==  cabbage[i] )  
t3:  And( And( And( humanTravel[i] , wolf  ==  wolf[i] )  , goat[i+1]  ==  goat[i] )  , cabbage  ==  cabbage[i] + 1 )  
t6:  And( And( And( humanTravel[i] , wolf  ==  wolf[i] )  , goat[i+1]  ==  goat[i] )  , cabbage  ==  cabbage[i] - 1 )  
t2:  And( And( And( humanTravel[i] , wolf  ==  wolf[i] )  , goat[i+1]  ==  goat[i] + 1 )  , cabbage  ==  cabbage[i] )  
t5:  And( And( And( humanTravel[i] , wolf  ==  wolf[i] )  , goat[i+1]  ==  goat[i] - 1 )  , cabbage  ==  cabbage[i] )  
t1:  And( And( And( humanTravel[i] , wolf  ==  wolf[i] + 1 )  , goat[i+1]  ==  goat[i] )  , cabbage  ==  cabbage[i] )  
t4:  And( And( And( humanTravel[i] , wolf  ==  wolf[i] - 1 )  , goat[i+1]  ==  goat[i] )  , cabbage  ==  cabbage[i] )  
safeAlone:  And( goat[i+1] != wolf , goat[i+1] != cabbage )  
wolfSide:  Or( wolf[i]  ==  0 , wolf[i]  ==  1 )  
humanTravel:  human[i] != human[i+1] 
side:  And( And( And( humanSide[i] , wolfSide[i] )  , goatSide[i] )  , cabbageSide[i] )  
safe:  Or( safeAlone[i] , goat[i+1]  ==  human[i+1] )  
objectTravel:  Or( Or( Or( Or( Or( Or( t1[i] , t2[i] )  , t3[i] )  , t4[i] )  , t5[i] )  , t6[i] )  , t7[i] )  
data:  And( And( And( side[i] , safe[i] )  , humanTravel[i] )  , objectTravel[i] )  

แƒžแƒ˜แƒ แƒแƒ‘แƒ”แƒ‘แƒ˜ แƒ“แƒแƒšแƒแƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ“แƒ แƒฉแƒแƒกแƒ›แƒฃแƒšแƒ˜แƒ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜แƒก แƒจแƒแƒ‘แƒšแƒแƒœแƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒšแƒ˜แƒ Python-แƒจแƒ˜ SMT แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒแƒฆแƒกแƒแƒฌแƒ”แƒ แƒแƒ“.

แƒชแƒแƒ แƒ˜แƒ”แƒšแƒ˜ แƒจแƒแƒ‘แƒšแƒแƒœแƒ˜


import json

from z3 import *

s = Solver()

  
  
    
Steps=7
Num= Steps+1

$code$



#template, only start rest
s.add(data + start)

#template
s.add(final)




ind = 0

f = open("/var/www/html/all/bin/python/log.txt", "a")



while s.check() == sat:
  ind = ind +1
  

  print ind
  m = s.model()
  print m

  print "traversing model..." 
  #for d in m.decls():
	#print "%s = %s" % (d.name(), m[d])

  
 
  f.write(str(m))
  f.write("nn")
  exit()
  #s.add(Or(goat[0] != s.model()[data[0]] )) # prevent next model from using the same assignment as a previous model



print "Total solution number: "
print ind  

f.close()
 


แƒ›แƒ—แƒ”แƒšแƒ˜ แƒฏแƒแƒญแƒ•แƒ˜แƒก แƒ‘แƒแƒšแƒ แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ’แƒแƒ“แƒแƒ แƒ˜แƒชแƒฎแƒ•แƒ˜แƒก แƒขแƒ แƒแƒœแƒ–แƒแƒฅแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒแƒจแƒ˜.

แƒ”แƒก แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› Z3Prover แƒ›แƒแƒซแƒ”แƒ‘แƒœแƒ˜แƒก แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒ˜แƒกแƒ”แƒ— แƒžแƒ˜แƒ แƒแƒ‘แƒ”แƒ‘แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒกแƒแƒ‘แƒแƒšแƒแƒ แƒฏแƒแƒ›แƒจแƒ˜ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ›แƒ˜แƒกแƒชแƒ”แƒ›แƒก แƒ—แƒแƒœแƒฎแƒ”แƒ‘แƒ˜แƒก แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒแƒก แƒ™แƒแƒœแƒขแƒ แƒแƒฅแƒขแƒ˜แƒ“แƒแƒœ.

แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒแƒ“ แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ™แƒแƒœแƒขแƒ แƒแƒฅแƒขแƒ˜แƒก แƒกแƒ แƒฃแƒšแƒแƒ“ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒแƒšแƒฃแƒ  SMT แƒ›แƒแƒ“แƒ”แƒšแƒก.
แƒ—แƒฅแƒ•แƒ”แƒœ แƒฎแƒ”แƒ“แƒแƒ•แƒ—, แƒ แƒแƒ› แƒ˜แƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒฐแƒ’แƒแƒ•แƒก แƒฉแƒ”แƒ›แƒก แƒฌแƒ˜แƒœแƒ แƒกแƒขแƒแƒขแƒ˜แƒ˜แƒก แƒ›แƒแƒ“แƒ”แƒšแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒ” แƒฎแƒ”แƒšแƒ˜แƒ— แƒจแƒ”แƒ•แƒแƒ“แƒ’แƒ˜แƒœแƒ”.

แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒแƒ‘แƒšแƒแƒœแƒ˜


import json

from z3 import *

s = Solver()

  
  
    
Steps=7
Num= Steps+1

human = [ Int('human_%i' % (i + 1)) for i in range(Num) ]
wolf = [ Int('wolf_%i' % (i + 1)) for i in range(Num) ]
goat = [ Int('goat_%i' % (i + 1)) for i in range(Num) ]
cabbage = [ Int('cabbage_%i' % (i + 1)) for i in range(Num) ]
nothing= [  And( human[i] == human[i+1], wolf[i] == wolf[i+1], goat[i] == goat[i+1], cabbage[i] == cabbage[i+1] )   for i in range(Num-1) ]


start= [ human[0] == 1, wolf[0] == 0, goat[0] == 1, cabbage[0] == 0 ]

safeAlone= [  And( goat[i+1] != wolf[i+1] , goat[i+1] != cabbage[i+1] )   for i in range(Num-1) ]
safe= [  Or( safeAlone[i] , goat[i+1]  ==  human[i+1] )   for i in range(Num-1) ]
humanTravel= [  human[i] != human[i+1]  for i in range(Num-1) ]
cabbageSide= [  Or( cabbage[i]  ==  0 , cabbage[i]  ==  1 )   for i in range(Num-1) ]
goatSide= [  Or( goat[i]  ==  0 , goat[i]  ==  1 )   for i in range(Num-1) ]
humanSide= [  Or( human[i]  ==  0 , human[i]  ==  1 )   for i in range(Num-1) ]
t7= [  And( And( And( humanTravel[i] , wolf[i+1]  ==  wolf[i] )  , goat[i+1]  ==  goat[i] )  , cabbage[i+1]  ==  cabbage[i] )   for i in range(Num-1) ]
t3= [  And( And( And( humanTravel[i] , wolf[i+1]  ==  wolf[i] )  , goat[i+1]  ==  goat[i] )  , cabbage[i+1]  ==  cabbage[i] + 1 )   for i in range(Num-1) ]
t6= [  And( And( And( humanTravel[i] , wolf[i+1]  ==  wolf[i] )  , goat[i+1]  ==  goat[i] )  , cabbage[i+1]  ==  cabbage[i] - 1 )   for i in range(Num-1) ]
t2= [  And( And( And( humanTravel[i] , wolf[i+1]  ==  wolf[i] )  , goat[i+1]  ==  goat[i] + 1 )  , cabbage[i+1]  ==  cabbage[i] )   for i in range(Num-1) ]
t5= [  And( And( And( humanTravel[i] , wolf[i+1]  ==  wolf[i] )  , goat[i+1]  ==  goat[i] - 1 )  , cabbage[i+1]  ==  cabbage[i] )   for i in range(Num-1) ]
t1= [  And( And( And( humanTravel[i] , wolf[i+1]  ==  wolf[i] + 1 )  , goat[i+1]  ==  goat[i] )  , cabbage[i+1]  ==  cabbage[i] )   for i in range(Num-1) ]
t4= [  And( And( And( humanTravel[i] , wolf[i+1]  ==  wolf[i] - 1 )  , goat[i+1]  ==  goat[i] )  , cabbage[i+1]  ==  cabbage[i] )   for i in range(Num-1) ]
wolfSide= [  Or( wolf[i]  ==  0 , wolf[i]  ==  1 )   for i in range(Num-1) ]
side= [  And( And( And( humanSide[i] , wolfSide[i] )  , goatSide[i] )  , cabbageSide[i] )   for i in range(Num-1) ]
objectTravel= [  Or( Or( Or( Or( Or( Or( t1[i] , t2[i] )  , t3[i] )  , t4[i] )  , t5[i] )  , t6[i] )  , t7[i] )   for i in range(Num-1) ]
data= [ Or(  And( And( And( side[i] , safe[i] )  , humanTravel[i] )  , objectTravel[i] )   , nothing[i]) for i in range(Num-1) ]


fState=  And( And( And( human[Steps]  ==  1 , wolf[Steps]  ==  1 )  , goat[Steps]  ==  1 )  , cabbage[Steps]  ==  1 )  
final=  fState 




#template, only start rest
s.add(data + start)

#template
s.add(final)




ind = 0

f = open("/var/www/html/all/bin/python/log.txt", "a")



while s.check() == sat:
  ind = ind +1
  

  print ind
  m = s.model()
  print m

  print "traversing model..." 
  #for d in m.decls():
	#print "%s = %s" % (d.name(), m[d])

  
 
  f.write(str(m))
  f.write("nn")
  exit()
  #s.add(Or(goat[0] != s.model()[data[0]] )) # prevent next model from using the same assignment as a previous model



print "Total solution number: "
print ind  

f.close()
 


แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, Z3Prover แƒฌแƒงแƒ•แƒ”แƒขแƒก แƒกแƒ›แƒแƒ แƒข แƒ™แƒแƒœแƒขแƒ แƒแƒฅแƒขแƒก แƒ“แƒ แƒ’แƒ•แƒแƒฌแƒ•แƒ“แƒ˜แƒก แƒขแƒ แƒแƒœแƒ–แƒแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒฏแƒแƒญแƒ•แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ›แƒแƒ’แƒ•แƒชแƒ”แƒ›แƒก แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒขแƒแƒœแƒแƒ— แƒ—แƒแƒœแƒฎแƒ”แƒ‘แƒ˜:

Winning transaction chain found:
Data transaction: human= 0, wolf= 0, goat= 1, cabbage= 0
Data transaction: human= 1, wolf= 0, goat= 1, cabbage= 1
Data transaction: human= 0, wolf= 0, goat= 0, cabbage= 1
Data transaction: human= 1, wolf= 1, goat= 0, cabbage= 1
Data transaction: human= 0, wolf= 1, goat= 0, cabbage= 1
Data transaction: human= 1, wolf= 1, goat= 1, cabbage= 1
Data transaction: human= 1, wolf= 1, goat= 1, cabbage= 1
Transfer transaction

แƒกแƒแƒ‘แƒแƒ แƒœแƒ” แƒ™แƒแƒœแƒขแƒ แƒแƒฅแƒขแƒ˜แƒก แƒ’แƒแƒ แƒ“แƒ, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ”แƒฅแƒกแƒžแƒ”แƒ แƒ˜แƒ›แƒ”แƒœแƒขแƒ˜ แƒ’แƒแƒแƒ™แƒ”แƒ—แƒแƒ— แƒกแƒแƒ™แƒฃแƒ—แƒแƒ  แƒ™แƒแƒœแƒขแƒ แƒแƒฅแƒขแƒ”แƒ‘แƒ–แƒ” แƒแƒœ แƒกแƒชแƒแƒ“แƒแƒ— แƒ”แƒก แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฌแƒงแƒ“แƒ”แƒ‘แƒ 2 แƒขแƒ แƒแƒœแƒ–แƒแƒฅแƒชแƒ˜แƒแƒจแƒ˜.

let contract = tx.sender
let a= extract(getInteger(contract,"a"))
let b= extract(getInteger(contract,"b"))
let c= extract(getInteger(contract,"c"))
let d= extract(getInteger(contract,"d"))

match tx {
case t:DataTransaction =>
let na= extract(getInteger(t.data,"a")) 
let nb= extract(getInteger(t.data,"b"))
let nc= extract(getInteger(t.data,"c"))
let nd= extract(getInteger(t.data,"d"))
   
   nd == 0 || a == 100 - 5
case s:TransferTransaction =>
   ( a + b - c ) * d == 12

case _ => true

}

แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒ”แƒก แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒ, แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒ˜ แƒซแƒแƒšแƒ˜แƒแƒœ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒฃแƒšแƒ˜แƒ แƒ“แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜.
แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒกแƒขแƒแƒขแƒ˜แƒ”แƒ‘แƒจแƒ˜ แƒ›แƒ” แƒ•แƒ’แƒ”แƒ’แƒ›แƒแƒ• แƒ’แƒแƒ•แƒแƒจแƒฃแƒฅแƒ VM-แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ’แƒแƒ›แƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ แƒ“แƒ แƒ•แƒแƒฉแƒ•แƒ”แƒœแƒ, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒจแƒ”แƒฅแƒ›แƒœแƒแƒ— แƒแƒคแƒ˜แƒชแƒ˜แƒแƒšแƒฃแƒ แƒแƒ“ แƒ“แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒญแƒ™แƒ•แƒ˜แƒแƒœแƒ˜ แƒ™แƒแƒœแƒขแƒ แƒแƒฅแƒขแƒ”แƒ‘แƒ˜ แƒ›แƒ˜แƒกแƒ˜ แƒ“แƒแƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ แƒแƒ แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ›แƒแƒ—แƒ˜ แƒ’แƒแƒ“แƒแƒญแƒ แƒ.

แƒžแƒ”แƒ แƒกแƒแƒœแƒแƒŸแƒ˜แƒก แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒœแƒฅแƒแƒœแƒ แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒ http://2.59.42.98/hyperbox/
แƒกแƒ˜แƒ›แƒ‘แƒแƒšแƒฃแƒ แƒ˜ VM-แƒ˜แƒก แƒกแƒแƒฌแƒงแƒ˜แƒก แƒ™แƒแƒ“แƒ˜แƒก แƒ›แƒแƒฌแƒ”แƒกแƒ แƒ˜แƒ’แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒ˜แƒฅ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ•แƒ’แƒ”แƒ’แƒ›แƒแƒ• แƒ›แƒ˜แƒก แƒ’แƒแƒœแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒแƒก GitHub-แƒ–แƒ” แƒฃแƒคแƒแƒกแƒ แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ