From 7efbcb75cf29c5ab5c49a2f721f27c579f3d55d9 Mon Sep 17 00:00:00 2001 From: MysaaJava Date: Mon, 29 Jan 2024 17:31:08 +0100 Subject: [PATCH] First Commit - As the teacher gave it --- Makefile | 23 ++++ enonce.pdf | Bin 0 -> 139181 bytes min_game.mlw | 341 +++++++++++++++++++++++++++++++++++++++++++++++ test_min_game.ml | 82 ++++++++++++ 4 files changed, 446 insertions(+) create mode 100644 Makefile create mode 100644 enonce.pdf create mode 100644 min_game.mlw create mode 100644 test_min_game.ml diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..79fa0fc --- /dev/null +++ b/Makefile @@ -0,0 +1,23 @@ + +default: + @echo 'type `make ` where is either ide, replay, test or doc' + +ide: + why3 ide min_game.mlw + +replay: + why3 replay min_game + +tests: + why3 execute min_game.mlw --use MinGame "config0 ()" + why3 execute min_game.mlw --use MiniMax "test0 ()" + why3 execute min_game.mlw --use AlphaBeta "test_alphabeta ()" + +test_min_game: + why3 extract -D ocaml64 min_game.mlw -o minGameExtract.ml + ocamlbuild -pkg unix -pkg zarith test_min_game.native + ./test_min_game.native + +doc: + why3 doc min_game.mlw + why3 session html min_game diff --git a/enonce.pdf b/enonce.pdf new file mode 100644 index 0000000000000000000000000000000000000000..78812c26b060c38cdc0ea22d4614fc5019808bd7 GIT binary patch literal 139181 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%0A?!%EYG?;`i^wr1jGtZk%B9Wy8#x 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

Z_rl=Bi}kxj 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�^~*C?rx=iDsqBdhbl?WXtb zCjyOTE1&C6cl=w!r>K5noALFhqQd7S%B-|rPw!&%-f=={M&h~{#TnLH67zeeedk`- z*q`k_`~9>RN59!{y)M zew>cAw>V!Jcd@|hRh;Tq38UL#^U}9(d2uZ=Yr_2~%S;8H>hl|&51dLq9la*S_RAg) zm(m++7AuvC#qm0>4LQF3!~v(XcKUmi0}sECV%hAm)cNw7mB%Ja8vZ%&-)<|UJXbCz zaQ?FOzop)!YuYXd-BNsW*FJgPwL0CZ9xL8$^?K048{ne8&PL+|$3y0c)~_Vue&zp| ztfyeVP-EQ-rDy%d?-YU*|nFDEfAQNYbXw zUoxb0HneGkeGh4Au&zLV1upM%>pC-h+y)PhKu3^ESU@l>Q z$>p^>(lfP+uDVQG;kS18v=hh8%vwKb?mrh-;(9qX=7-MX-A@(2H!otTp0s0AoQP~t z#mcTlvkI;{i|NeI{PtsI;Ed;oP2)OuO?D4?=pP@;zr|%|2-h6j4=O!(_Vurpcej&^ z+nJYCr<>GLHE)7))3c@JamO2CYL)gcaAdt<6umL!;kh@DQuP;=?aCKgaPD7J^fi}@ zPM!-lE?91V`+~z6)%@B}@sdj)a%TH+hEGu{k$?VZ|9(@u!y7Ma?KztCi2u>sm```k z9M~K2>Vn&8Pv7!53s&d0^T+Rsvo727xRd8@ZMgNhy)Emd&dl{@<+I=IZ^_2>?T=W8 zw#C!qm)r~re!nf5r||!zt548fABfpYhZw&nhaI-+spu;7{%lQwU-#VmS2h%J5LfA{Y%N>ovyt75rqa_i}iieZ++04+hMXwPO?x#e46UoyUnR?8CD-S z-tQ;NZ+8px?^j0`dTeB0b@|8Y-NLCSg3DWi z_=VF7t&ZiV*5EHz(R z@PsY0W9}O-`PPkhb=WOp>$&&TD_ZrF$D<(W#UM*-R!=Jgzz2*X6*ZRi3Z@-HIwBCK3pAcc$@x)y# zXZ=PWGv)HK@FsuN`|DQ3xQkpUGrqigzMr%rUns9{`8k92{A*V>T=(VSuN?EXRNjw#dXZ3|<2!oz!RL)X5B4f~F1+~j?P&I(nU#*yZze zUInf1sv>NbHXOV-dCC;&J=&+Z*7`LsAD_4ZC}_q;Xwa=ZA9 z{gyk0O*Oj0ru4KqqFnvt(oFe0tM>U@_Fb}TFFL(E_ur*6{@Tr}<%%PIyVqXRRC}_1 zffkp^;$~Y7u@?@k{<5~|B~dl1@(+t8l>N9IUf9NZmnRh#wwFj8{9`d$=@75f7t`3J z`HDQ}&(^u_%wk!)?l*(fUDI1%{o0cAAC=zFD7~G1ic9&==b3l^9CK#PzIOQT(XQI) zx#xb!2xrLlpJR<-K9Klws^85yY`gDdW=l%=GG!Nh@Xea{W%A2iaw|*Ln=%{D4*74g zE0pEy1lA?8tF$HW7982}?$@MpJ6)}^(iO}6ujmK${=BcVc#?Kn#_Z+xS+kWk=ys;P zcXsMo?f0rJA$GS}^31BH=c^r;zn}O<_z=^dcdg$$o*F&X+_-9{Tb;ztr?ugj-cgJj$MDlb!<=FqtGqR$Lud2OF!}W z!I?>?T^{YyY$z>?ds=e3vAWbb@xs}w^HUO4ChR)Jv6E3%-7t5Jd&;tn@1yw@%U=S21!-nCC|E-FmXFYIdG;n}t9B*#+6;-GBZ8|!b$uKBVwA?Wme z^`ayJd;OIve?Q;aVU0 ziuiMA;-X+4+3(kPh^??+v}fY(OE07s#`~mfOU{43%jN8=i)9YZ#&^F|$gaHRz$UrK zT=sm}(wq7!yZJkRi0v$>bY1%LC-=Yo`&n+ElsVOH=h4;r*Cki(oAmCNnnzVQrHq|6 zZjF69S?SyKS3U_1uPmdvPR`Lz-QLjjm1%?6t__@#JMPW7ckHpYe1}$#{lzawFGg)x z*%2M6f534U&-;XJm$yBgux(D#mq>@j7iPCtMm+qcR3aQ8|K|N!!wG*gr<%6~l)n9N zHzM+#)&$+#6RNm;!~Qvjhi_A!bMoolgM7OUM3@$*etNv&pC98-iMN@#j}H71w7>i) zY1V9x+KG9&tId8g`Io%-R_^Dbzoe$(MIBePtKQd(yGo}{yZiUlZimLe)TV{0?Z3@K zo4+Kikha&=P-s-#>dj>qw`z04-wCy$fA5~XcfPGqNo3j`=Kj8!x+&YlFFfH1aEftI zlFwmTyzJQAnW;U~7ik@dcWXQ+n-!mI&+vBh%l@w^yS###6L+@@XlBVi+m984@*GxBwVy(Z>kQjgCO!tCrX@0F+UoW3rKF8Rk=ER~V zu4iwJ8^7MV?h^e`HukLGIqzr9Ig3Tin;(9Ce(`?ovdrdQ!{YAvAftDD-KSSQ2zNKl zXkKc={w?rS(6jlSEp6;i{eDa+eS0qWWcYeLCacr8BmX8UF4z5D#D3cF?A!XOrwT%K zKVA5G)NYx@)TgiOf;lQ#UdJEWxukyet?u4Bj>iu@{MHyS&y&yQ&7bgV@vrr9HEiei z|7^SK^4@Jn#pyza2g!e}&i`I}TXdCJd(yAymz6a;)@-so^j&1;=e;e9KdsqmXnG@M zGRN$SwKETuXDxf^C%JFe&0Ab9_gr>ss%qT49b%s$`S`)7JL+rNww(P_tXZQGva>t! zSo7cJz%=O%COWg)S&XiyhV!I+^nDl-u;bj%lGkU>Zg*`rs`!^7$@?;6_Ii`vEzW=K z?spfRcFy@fK|-x<&g;z&7oYK56!Y?#YhY(xUgOe9T#JgzGrt~twDG~T;xbi7pY1<3 z7tShD+WmZe{KoT6n-ZtaYkQLUkMoC6@Zka;Q+t{Fmk(`oe0FI5!=5vDLkq2(4&GYn z>*1KX=J*TMy#5bQSBaE2A3lBlG=GoFSsRsC=R>O(yV^>%{QuABAk$dKm714QTvC*p zm5UAIVGt@3i@t2i6yBnsmb{%sa$q; zTu@UgZsmsf=07qJ*!w)Zf`95Q=A-f|ja-U1IVW1=L{H7y8t&m^F60@&(f;rES83rj zVYULk^X{M7^O3vw`|DEci=o@M3x7RvbGB{y^nF_rHiPlD`ADH#XV5`FHo<+$p}n+;%tPUp)@k zF3k6-+EzyP%&|_m8y0yzp{LknuUF#bz&i``R{vYo z{&u0B(4^2(%b5EwBF)~}P1y6-hJV}5E$wrMUH5mx z#YvwF?dXGV_3EDLRjO$olFMKRX(vlcn&3PNG_S^ z$t24uu`*pHA*1ACx51oaF>WmndzcLP4@)kQ7H%tkB{QM@Ax~C{4bOB>hF4~Dc7Od? zmHzqTuG96q|GnY~=U!5HV#1`w+SBFcD}S3R#`f{d@$4h_n0R^hI+Iov&+RXIDb~7V z7VAUSXJSX5wx8Ps)!ne&wK*=APgj4fUK*`_G+yFBpm>XLvKmZXLArzDmME1ZkLYW6sXiLg- z=SLfILswmmQ#8EmF=2rK-{0@AKPp$;{Kg<<-#AOo6?}QCzmHAP zx!i>ruh&=~IIKA%u4Kc@6*RPPiszI+7!dKZ0-Nq-Wf;B%!7ozpBC4&YDKZF z~X46R(XJx$$&I{Y4V#+t}a$`MN z6B6?G<`?m|HZcj3?#Y^!JUT1+SZ!3+G^V$3Kjd0e0DbHvb2 zBE4?U0gLaCc^*HK|93(&Kl=gabH^47ZbtrZD#8h#F)xJAF<&=Mc*iO<%1fWJ=aszpyd>Su-|AE4rH$t&`_;_*a_70He$BispDHiidhQ95 z`d)dd_55VL+IdFrK2PDCzuf1SP3q>?b9ct?`@QsW?jh@{+OMmM@84#>XuIv*!o$MX zw>(MF6%uV@Rt!b9+_D>b*`$yCy0)D$4wNfBmt0 z0ZN{Ugy)&7n0e-p(K55I7S&Zr`nBO}&mMTUIdosv?1u*@h39Uyzn+#->woFl-b`E8 z-y43Le@+jQ{q-}YI`5nFWj~7*`DZt5pOT+8Q+MNe)n{UV%>J%?c}rbQ&hq)TfGwrh zWD_2U_~%T>R5 zZT}9xtmasDzBc#QvfA|T^ILCrg7ZuVEYHmU`Zv4SAm>-_Ztcf!A7{)cNp_sIYMt5g z$IFcVE~_D$GumQGlwKC>ga#^BtaipIis$0d&)RUgeW zNO?xPs`d*g&wRgNyA_saq@a1`*ztOvo_VJq$RA`_-i$5J7-8laO9KN)HA75;E7Ujt zww1u1*Wnx58D1VVwO0w!<6&Ns!fg44+4sYTb$v&kaCW3RZ{z>@y?=A|?A(dYJy#2M zT3gGsmCvuUJ6E&6zR&oxYghco9rpgQb4>4VYk%}^-QDu%u`>SmliwuQ$J*A3+ApvD zF5&-ZUuA~;v4>wQRqcE3-rm`NeNF#lryAK~bDHcP{nPws{krUUxoZ0P=MUeS^cZ(O zS^n_Lv`Ka`;+!J&O-*Khg_l3xAitmMtE<<{hOalwf6E@T5c|w6YPf$=wdAq7T^|I` zCxmP0{#s}qyYI#J+p4x3et!I0(Y3q%V`{w4^rU~MzozwO)^v-`z zU0vIG{O#L0q@2W7Pkr&&d)16*|M%T>HT++2Ec)E#--=wm_q!@ff7{9N-`4ZH{n1p+ zTQfXq=gl=;7T@aEW*(287r$<2>8Yu{zb;kEts zA271qTg13vURGr{`v$fRiU$}kTw$2HHA;fv$^oMX3<0)E%c4>wt{B7|ZgyW86ti&q z6ivNpqDEThF04pYYzf`NdPJvf^Of5kA2uvV&}PeGxNumHVTUOLyWhEu4lf>UcyS@j zTUYo2W5s;cFEj2K^UqRU;J6|3azoX^bF-3YmPxF4U&rjX=tmb>4RW!~x@6|Ya;l4`=>l5dl+^drc*-coH&aePV0Z`}N0kMB{f$ z&C#7do!S4j1)KTlTG>~(y=AX#xij4-XJ@|m$624WPo=N*I`c?x9}~NKR3-E0UEN_H z`jgk1SnQbeo@LLI8{s8CW6xRz)Ft#k?2-AnaavJSU!h*!S;N@lyvH8||9>W_zmo5M zz|_C*OTXxi<%FLAbOdaBz{n$WY@9*#o{?>03+$PDoYbids!TDsv?MqWq z*LSWh;qA?Rld|xC-SgfjTcX8;KBt)&zd!rp@w3~P^CpG9J?Q(WT65mr3vs_L`F?u; zTW{A+&0C*}iq8IQFP^&k*wu%QHeYjh7N-}^&hO3*p8sB>;`WsM>8E-F|MN%fyuRxv z2V?(^+QR*6$L*Ilzf}J+xubgJ`TQ;aN?;j^`j&H7 zdxq4Gqa`85Yi6(FXF9@Iq_osEbo%pzkK1i7GECT0Er0IamfXJFEfF0rjdl5+|C>AY zuIuIF`-*Ds?&-R{TI_+V*W>@59Ql$ReEsS4@8>wrZu^vV zYFm->cKz7>`EjvZCKPFk%|2^X+JEJBg^X^GJzDJ?msAcNX z{%e^|e7&D$eO5^<-W9Jerbf73Km%MmVHA;aeqA-^!GC}qXO zr!mUTy*Y1pCmo+PTY9(0n;W4&tM3Q%pP0I9!wdInNzK1E`|NWBy!DkF(~F*czOc0k zJDAKz)4nmN5Qk4htJvcPRDGXlYFR@Aw2BIPSJ-f zpE?h_9!@UUyYK1J_b<~vcOTp?_I+#Kov(o}Z}CO`d44^k=6!-~-lF}Jxe^VrrF0Wo zrS#m)Q=6_|3ES0n%&ctFh5G%U-HLu4bV|C{llE+{WNpmfiaWlWR@D|x{t?!tZocLD zzLLp*p6}~kx2|iOjeKnJuJUz7S9e(5={&wqxBQ*Ty3e^Ab6;KNWzC=c>21tT!&m^{H5Tq$H8yOmKCo)iRk>B<}SrBsr>!nld{{-F68Ln>WqQ_;n$C-TK+#g|&gM_wMd|eNRS&LsED8q9S%Jx4rk?_xt(mH!qE>t9w7^ zLXP(OWjWgBCBH9y{r&8!E4SwKq>VRql&^=}zZT+AY1y+;^XMr{JFP(PqBV`?Z)S); z3257}>B~hc-xCW1j;; zh)*An>83f^DJv$ftqp$@QCyrX-YL6V>;IeTSByJ@#Krz*=qoR^zx}bDH|eFT$_t-! zHFCG69eXUg;j0C6TxE}4>bc-RspLs-&ObkJW_{9$uruqEztunTOH`l#W`Y0NeZLk2 zF0K1DW6rGVbEXByB8>i@`aSdV>qW6DF$?166zAO#I+nP9fp`1PX8Wmfi|rp5vhlhV z`u0{zyiGRXKWwYX&8wE9v1R7W`?+5-|L7DStC^I-!>jf<=2~*tJ$~M{?XhQfsC~KI zVOjpRI^`bkV-~C22TprRd?|jz|tNmjCqnX%< zEu~}LNv&XJW5q=iz3m;p%ky9HeOGgH*XTIEb&_&(SI3yHnDkk&m z^w;ORa^+ffO%Ixsd^e=By6Ii93GbaGt5ufQe6O-IK4P$(cxln9(~1#)bp1^jRNmX2 zYqrjvoh+>@mh{W1`}xBE39025zpPvz6K|gX=-aBUJ-fZH@3qztFpAQ1ecBh&Q&oFs z{+t z30XAlNd$BL4MY7C3waV#UoI}4HNkoDo@X|mGh{kuSLd5p(0jVyuO1B+_A zdO2^m$ZEAS3tn?yF+)Z&E5-8qi2&v3-|KE{eD>^^o{)7}=)arauP_%a)zkTPG0x4a ze%oVz=_8lAJub|g^V4RFZtrpJgx7^^dp=3jo|?0Kk;yTYoAb{%&Wt}gVeO3g<8S^S zntRA^-wnt4v;MwrcANU^WpYv0JIm__B$H46(SD!qx4yeiO4mT+&41sHy3*#4Y^?ZFs&f(J`5^Vc~_ew7TsVmw()RM)I@gBtw%KJ;jmz zk(Kr)68FkXAJ4krul(%J*7p-D&3lAjY-!~FX!b^0Uh8%7P5B)L^3pp3jt)RB-WwM9lj9%9qu^ zmAY>o;XnI@zK3#RB({WZhOJ1aN zJ#%7=ZLGp~X2sarcRb&xTb?Jd{pYqDW?u{358hr@vp*!S=U4rOQ+uzTP3NdM^7bAm zp|3Rm+fpY~_`9lN`PcW}O*w^IS=;{={oR>2n|j*K!&mL{@X7u|A>6n^Hb%dgp|**ookM- z*&{E-lfQdbq3?_3g2nG{eLt~B`WR=)tplwU(%*Xdr+(e}hCgOTKX1&6WM=Vmb9DdQ zIgmOtds?y24!#Gcxa_wp&2g|R+>ueiv+nx#Jzs3^=F}Pfxb|q@wcg!!TCukkyZ`@@ z>U}S}X1VVd@r_Q2E3qYXb8HEnlvet|yu}6rdq0cbb6)yw!ZEX!8=)ed4oXiqqUWxwvw5c$d3E0o&l>HcldZR+wOx$wScmV- zs;S;3++Q30?v4Va?eeg#X}j;wvUPVPzW!e@wR-JrZ;p~9UpN1@ec6^A4{p00cwSYp zxFP>Ni{K+C4!(a+e+Az)D|fo^pb|7PpF+0Ni1-9_Ku`Tx0ld5c~;$M4*i7kBjQQL&4=i?8psjDQsBd?CHR_THDD zJEQLP>&JgTS3hrgw)Iopscl8e^Wt~a-QTk-L-A>lj@j(gC$nD7FV|YKN9Nd#DM?Rd z_@}N=70iCXEBv{MBb7tjn}6-)77j=&T}i<3cEuq9q_#`IMM&GF<&>kspd8yi=DI=^qZ+yw2?#Ebpk%z}P>w%WHwQD<)_%iNPQ&pY3~ zRI!I?n_T(U{j>6BIG-G}k$xTA zNPoTF=KQRC;%}86GJSnCr}*$R1HRv^@m6PKf35r?@mI3nxWb?-JL}Bh4Eg3tiFcln z6$XjU56_CX3(tv_c&8|lZ>mu6e1e4M}E{jod$>UQ5R z;tdYT+pwi{i(!(|@6Q6Y(nnMJXi8`Qn0y6GO1DHFP7Nr^Pbp1KEmF`ZNJ$GxjnFmJ zGcnLJGScMIcPuT*$S=~+)DOul$w}4F)DJFA%1TWx(a_X)E=o--$uH9INeoGiP$4B%?SrQK1ZKhMAtRo(V{aCTJ=jHUVmaTswwT7NjcZ`zK`um*jHk`ze@M zfM!68ic1ts3@qUb1&mBAq0K~)EdGT8TcdJ|FYgfhH!pr+zk$!Xd%Bfr>FFA|;=lIk z>ae!$e7r30wYOCJjl{(Izw?x%``+A8eEClH*o)Zbmgg%ciagL#>M2O=ycY22_#+9e zrUFgV5Rr!yp9FMrY`^4mROp~mhHDRpV6v-#U}S`prc$JeyG+~CV<#u7UXo&-9l6Lw zMEFLGtJ`FWTVV(GH3^EkD|8wzvTQc>5zu95=vSvm}FKLrFe5HdqDp@puqd+%VNK0^|Oy#Bp z-6ggQT(;V@bum6ma$Cc;Q)bG>1#e$WW;^upF++@(!!b+21-92dCcn$)onmahY)X-> zMLX}GgM}eZFIKH<$m`v6I9)Ys!>#*o`;rw7ow~=pYn9YWk`Hb`K-`n(xVef{;!SO{z3DrvmM6OQg1q;&89NO%ck#^HZN_=&eMY-g zpXsyX+vbPw_Sw-Nta8WXi!krUw~a4viJkL*W%MTh+LhAi>whaYvo)MbSo2!lsLi4| zrDLhsn#bzA-<#_mNj;oj_3ZgY{rx>JZp(k3a^Y}I*t_LNQzo80U1M1EcJmWKH@$D) z*72W<-(zK4dsvdkXY%i+6OGBjvnImb={HKxX2F-!D!lO*-f0G0Wg{s8Rjg zwD0^EwiLMp^7Qpu^6k@{oM~2RxqJSy3(T_NslR@(7Z@zM{#8rWGUw9-opqNc*(~Pt zUG}-X<=&E1C-ss^_I7GtrlozEcrL?nzwP=BvS}NX!zGlaFOILj>vetcQLe5ms1_PzeIB#Nx7f-bAv~4)W4aR_g`|o_sH{eY{jk}cJ;Ldoi;Za`#WrW z1vdO=^Hq~t!nu`w?yXlRVz2!C@a=o|>*RpvuMSVR>*{mNFecmLdBFjRy+IsXs%Ld; zo2>{k+kHAM@@KQ(T8QO-M{w9sNN^-Z`LbCUEcgm%|{O2ibsUE)Of~UWd0>>yJ-2Bo_UwKe~B4Ox@9Mb>%m*ZXX=ckj$g ztSU#7W{L10c&o*%^RlRHwqBR#K985?ztsQw)nC|OC3M)2^UH^?A9ug**FU%E`0P~1 zBlDkrJo&?9?^(7xJaUZ5oZ<52E{-*=m5XGHdl}Pu4W<+>zRSj3M^d z;<=wbU3~hl{qtkKztdm-En@zAsOncM*9-G)uKS-U{aQ{_9?R1IjH|!-I{FjY* zVEfm>-pcxpPUD`U3o>6hU-Vp(X_h@*^YT`jLdJ!JcMJaPI+?dlbcR9g8Lf=fkGJZd zFmnmpa#^ypu=2yh$Cdq=$HOnDg#8m=_w#?ca{pu9H8mX5YNI0yUVPh>ciC^(=d{=S z>M8qU3~w(h*{=L?``_>G?zU4FU2{%(bg<)m(XrhrZn;JqCFk^Ps^-6N_UbXVoK^FB zo+`6FetPIA*Rjs?VYQX3>{YCepE$qxQTE$cXa5#vUw>!0g+FcbAG6tanYC};jpf>; zmg#86>EOL2E5~QaM|DY?ibES-J9CLI*DBMN%L>i@5o)7kQSZLyqji>yr(Vw7I?>ub zDf#QAEr*jgo-$Vnsz}%_Bxxw5Q_S-Ha;TGXSc_%vjT=k1Dkwbod#j66==B2&wT&y+ z?&j(%bDDj9nWnSxft%@OsT;JG*2VSn6&!i$`*PL|PPrY^MKt@??Ee>a@JXGhi}U5f zIe}ANY%g$>yEu7CW<&n|^LeM+nJ$F7OV-ZbKbvv$_802R)4P2;tn#<$DO_Z25pQA> zXiIE%U-Qr~r`+c4_5ks|sAggI0)z4@i%V+`Kiqxz<-XKi4U6;^Ops%_e&O)7j~#bE z=2VoIEWD|=#Uk(LB+e77WR`nsy$gS0x}&Ik$80$P**zC$z4sPxV>V9c}&3Wf~#pe7Or-?eV}*VgFW^;6-yLv_fClBQ{3K| zGjBrQwq5FFjq6icuNI|>w#*B54o5f~W_f%>P?g zWa(eZU-J1ysrTN(#FcrvS0A1_w{&0B%2`wQls}F9C9D6~R(ocAYl&gIM8e*OKZ$&&aZ$9{g#`co-^cIwxBRnN!We_CnTto@|^N3qc6yyX>r z_CLb+=08wv-uxg^q|D%jpxK*)mQ%St6j_~=+q_A6&&=;TyEjNVten&u?e!+JGxUb? zA-P^#qc@!!mbczZ=zr&wy~J!YTSH`w9ILcdozqN?DeVq|>imUDK60O0H7f7)pR~(Y z`|9k}>Y~A~*cA}hBO7|Gwru)ceerWw=3M`CPBA&TUDQ$fN|&#`(uC*B*Dx0S^iVXP$_gN)E(#77y#ws{R#AO*|^UjoK(mB>0dC%m~+={E0 z`6ZUTeaT+vwdO1L9rw-i>TbBN*89K^QvPih)9S*`phcxGg_ef2*LZuSrY*TzjBF8=!-;0!xn2{*#>K0SLJiRdfpzNK(_yQ3YX=&l!`3H}* zxO7WrM+<9n3+v|O@b<Y**nQ_&i~7QKFu-yzPI? zD#h72I#_z>v_6J7xY!XX- zIPugp4d2aE5~?S(d91y_R$BGiBQ>L4_RFO3qEIzFXD#oE)V_wEMv zZ-)hMJU0uuw3+>Zf=tul0v^A^f!iF>9@xQjN2df+t3wKY|8rjXVw=U{E06B&TM<$;zhcdmS9bAXS;hYi)`pb*|9a+5{eF&rwS52n zbIyuS>UmQeP$4^I9{W>u$E6F8SIia?pI;#gw;t1pu8saq0j7 literal 0 HcmV?d00001 diff --git a/min_game.mlw b/min_game.mlw new file mode 100644 index 0000000..7b9134c --- /dev/null +++ b/min_game.mlw @@ -0,0 +1,341 @@ + + +(** {1 Two-Player Games + + MPRI course 2-36-1 Proof of Programs - Project 2023-2024 + +*) + + +(** {2 Dummy symbols to fill holes in the remainder} *) + +module DummySymbols + +predicate __FORMULA_TO_BE_COMPLETED__ +constant __TERM_TO_BE_COMPLETED__ : 'a +constant __VARIANT_TO_BE_COMPLETED__ : int +let function __EXPRESSION_TO_BE_COMPLETED__ () : 'a = absurd +let constant __CONDITION_TO_BE_COMPLETED__ : bool = False +let constant __CODE_TO_BE_COMPLETED__ : unit = () + +end + + +(** {2 The "Min" Game} *) + +module MinGame + +use export int.Int +use export array.Array +use export option.Option +use export DummySymbols + + +(** type for players *) +type player = Alice | Bob + +(** type for configurations of the game *) +type config = { + stack : array int; (* stack of numbers, e.g. [ 20 ; 17 ; 24 ; -30 ; 27 ] *) + pos : int; (* position in the stack, i.e. index of the first number + to be picked *) + turn : player; (* player who will play next move *) + score_alice : int; (* current score of Alice *) + score_bob : int; (* current score of Bob *) +} + +(** initial configuration from a given stack of numbers *) +function initial_config (stack: array int) : config = + { stack = stack; pos = 0; turn = Alice; score_alice = 0; score_bob = 0 } + +(** QUESTION 1 *) + +(** invariant on configurations *) +predicate inv(c:config) = + __FORMULA_TO_BE_COMPLETED__ + +(** type for possible moves, here only two choices: pick one or pick + two numbers on top of the stack. *) +type move = PickOne | PickTwo + +(** QUESTION 2 *) + +(** set of possible moves in a given configuration. It is either empty, + represented as `None` or a pair of two moves represented as + `Some(m1,m2)` *) +let function legal_moves (c:config) : option (move, move) = + if __CONDITION_TO_BE_COMPLETED__ then None else __EXPRESSION_TO_BE_COMPLETED__ () + +(** QUESTION 3 *) + +(** `do_move c m` returns the new configuration obtained from + configuration `c` after playing move `m` *) +let function do_move (c:config) (m:move) : config + requires { inv c } + requires { __FORMULA_TO_BE_COMPLETED__ } + ensures { inv result } += + match m, c.turn with + | PickOne, Alice -> + let x = c.stack[c.pos] in + { c with turn = Bob; pos = c.pos + 1; score_alice = c.score_alice + x } + | PickOne, Bob -> + let x = c.stack[c.pos] in + __EXPRESSION_TO_BE_COMPLETED__ () + | PickTwo, Alice -> + __EXPRESSION_TO_BE_COMPLETED__ () + | PickTwo,Bob -> + __EXPRESSION_TO_BE_COMPLETED__ () + end + +(** `config_value c` is an heuristic evaluation of the config `c`, + Alice wants to minimize it whereas Bob wants to maximize it *) +let function config_value (c:config) : int = + c.score_alice - c.score_bob + +use array.Init + +(* QUESTION 4 *) +let config0 () : config + ensures { result.stack.length = 5 } + ensures { result.stack[0] = 20 } + ensures { result.stack[1] = 17 } + ensures { result.stack[2] = 24 } + ensures { result.stack[3] = -30 } + ensures { result.stack[4] = 27 } + ensures { result.pos = 0 } + ensures { result.turn = Alice } + ensures { result.score_alice = 0 } + ensures { result.score_bob = 0 } + ensures { inv result } + = + let s = init 5 [| 20; 17; 24; -30; 27 |] in + { stack = s; + pos = 0; + turn = Alice; + score_alice = 0; + score_bob = 0; + } + +(* You can run the test above using: + why3 execute min_game.mlw --use MinGame "config0 ()" +*) + + +end + + + + +(** {2 The MiniMax value of a tree of moves} *) + +module MiniMax + + use MinGame + use int.MinMax + +(* QUESTION 5 *) + + (** [minimax c d] returns the minimax evaluation of config [p] + at depth [d]. *) + let rec function minimax (c:config) (d:int) : int + requires { inv c } + variant { __VARIANT_TO_BE_COMPLETED__ } + = if d <= 0 then __EXPRESSION_TO_BE_COMPLETED__ () else + match legal_moves c with + | None -> __EXPRESSION_TO_BE_COMPLETED__ () + | Some(m1,m2) -> + match c.turn with + | Alice -> (* Alice wants to minimize the config value *) + min (minimax (do_move c m1) (d-1)) (minimax (do_move c m2) (d-1)) + | Bob -> (* Bob wants to maximize the config value *) + __EXPRESSION_TO_BE_COMPLETED__ () + end + end + +(* QUESTION 6 *) + +(** Testing `minimax` on the sample configuration by concrete execution *) +let test0 () = + let c0 = config0 () in + (minimax c0 0, + minimax c0 1, + minimax c0 2, + minimax c0 3, + minimax c0 4, + minimax c0 5) + +(* You can run the tests above using: + why3 execute min_game.mlw --use MiniMax "test0 ()" +*) + +(** Testing `minimax` on the sample configuration with provers *) +let test_minimax () = + let c0 = config0 () in + assert { minimax c0 0 = 0 }; + assert { minimax c0 1 = 20 }; + assert { minimax c0 2 = 3 }; + assert { minimax c0 3 = -3 } + + + +end + + + + + +(** {2 The alpha-beta algorithm} *) + +module AlphaBeta + + use int.MinMax + use MinGame + use MiniMax + + (** `lt_alpha_n alpha n` means `alpha < n` *) + let predicate lt_alpha_n (alpha: option int) (n:int) = + match alpha with + | None -> true + | Some a -> a < n + end + + (** `lt_n_beta n beta` means `n < beta` *) + let predicate lt_n_beta (n:int) (beta: option int) = + match beta with + | None -> true + | Some b -> n < b + end + + (** `max_alpha alpha n` is the maximum of `alpha` and `n` *) + let max_alpha (alpha: option int) (n:int) : option int = + match alpha with + | None -> Some n + | Some a -> Some (max a n) + end + + (** `min_beta n beta` is the minimum of `n` and `beta` *) + let min_beta (n:int) (beta: option int) : option int = + match beta with + | None -> Some n + | Some b -> Some (min n b) + end + +(* QUESTIONS 7 and 8 *) + + let rec alpha_beta (alpha beta:option int) (c:config) (d:int) : int + requires { inv c } + requires { __FORMULA_TO_BE_COMPLETED__ } + variant { __VARIANT_TO_BE_COMPLETED__ } + ensures { __FORMULA_TO_BE_COMPLETED__ } + = __EXPRESSION_TO_BE_COMPLETED__ () + + (* QUESTIONS 9 and 10 *) + + exception GameEnded + + let best_move (c:config) (d:int) : move + requires { inv c } + ensures { __FORMULA_TO_BE_COMPLETED__ } + raises { GameEnded -> __FORMULA_TO_BE_COMPLETED__ } + = raise GameEnded (* TO BE COMPLETED *) + + let test_alphabeta () = + let c0 = config0 () in + try + (best_move c0 1, + best_move c0 2, + best_move c0 3, + best_move c0 4) + with GameEnded -> absurd + end + + (* You can run the test above using: + why3 execute num_game.mlw --use AlphaBeta "test_alphabeta ()" + *) + +end + + + + + + +(** {2 An efficient algorithm for the Min game} *) + +(** Best move found by dynamic programming *) + + + +module Dynamic + + + +use int.Int +use int.MinMax +use array.Array + +use MinGame +use MiniMax + + +(** QUESTION 13 *) + +(* Lemma relating the minimax value of a configuration to the minimax +value of the same configuration with score set to zero. *) + + let rec lemma minimax_independence (c:config) (d:int) : unit + requires { inv c } + requires { __FORMULA_TO_BE_COMPLETED__ } + variant { __VARIANT_TO_BE_COMPLETED__ } + ensures { minimax c d = + minimax { c with score_alice = 0 ; score_bob = 0 } d + + __TERM_TO_BE_COMPLETED__ } + = __EXPRESSION_TO_BE_COMPLETED__ () + + + + +(* QUESTION 16 *) + +predicate dynamic_inv_at_index (stack:array int) (i:int) (a:array int) = + forall t:player, sa sb : int, d:int. + let c = + { stack = stack; pos = i; turn = t; score_alice = sa; score_bob = sb } + in + (* relating `minimax c d` to a[i] *) + __FORMULA_TO_BE_COMPLETED__ + +(* QUESTION 15 and 17 *) + +let dynamic (stack : array int) : int + requires { __FORMULA_TO_BE_COMPLETED__ } + ensures { forall d:int. __FORMULA_TO_BE_COMPLETED__ } + (* relating the result to minimax *) += + let l = stack.length in + let a = Array.make (l+1) 0 in + for n = l-2 downto 0 do + invariant { __FORMULA_TO_BE_COMPLETED__ } + a[n] <- __EXPRESSION_TO_BE_COMPLETED__ (); + done; + a[0] + + let test () = + let c0 = config0 () in + dynamic c0.stack + (* You can run the test above using: + why3 execute min_game.mlw --use Dynamic "test ()" + *) + + + +(* QUESTION 18 *) + +let dynamic_opt (stack : array int) : int + requires { __FORMULA_TO_BE_COMPLETED__ } + ensures { __FORMULA_TO_BE_COMPLETED__ } += __EXPRESSION_TO_BE_COMPLETED__ () + + +end diff --git a/test_min_game.ml b/test_min_game.ml new file mode 100644 index 0000000..ada0ec7 --- /dev/null +++ b/test_min_game.ml @@ -0,0 +1,82 @@ + +open Format + +let run msg f d = + let t = Unix.gettimeofday () in + let x = f d in + let t = Unix.gettimeofday () -. t in + printf "@[[%2.2f] %s(%d): %a@]@." t msg d Z.pp_print x + +let z = Z.of_int + +(* pseudo-random arrays as test *) +let random_array size = + let () = Random.init 2024 in + Array.init size (fun _ -> z (Random.int 2024 - 1000)) + +open MinGameExtract + +let random_config size : config = { + stack = random_array size; + pos = z 0; + turn = Alice; + score_alice = z 0; + score_bob = z 0; +} + +let () = + (* testing alpha-beta *) + let f d = MinGameExtract.alpha_beta None None (random_config d) (z d) in + run "alpha_beta" f 0; + run "alpha_beta" f 1; + run "alpha_beta" f 2; + run "alpha_beta" f 3; + run "alpha_beta" f 5; + run "alpha_beta" f 10; + run "alpha_beta" f 15; + run "alpha_beta" f 20; + run "alpha_beta" f 25; + run "alpha_beta" f 30; + run "alpha_beta" f 35; + (* comment some of the tests below if it takes too long time *) + run "alpha_beta" f 40; + run "alpha_beta" f 41; + run "alpha_beta" f 42; + run "alpha_beta" f 43; + run "alpha_beta" f 44; + run "alpha_beta" f 45; + run "alpha_beta" f 46; + run "alpha_beta" f 47; + run "alpha_beta" f 48; + run "alpha_beta" f 49; + run "alpha_beta" f 50; + run "alpha_beta" f 51; + (* testing dynamic programming *) + let h d = MinGameExtract.dynamic (random_array d) in + run "dynamic" h 0; + run "dynamic" h 1; + run "dynamic" h 2; + run "dynamic" h 3; + run "dynamic" h 5; + run "dynamic" h 10; + run "dynamic" h 15; + run "dynamic" h 20; + run "dynamic" h 25; + run "dynamic" h 30; + run "dynamic" h 35; + run "dynamic" h 40; + run "dynamic" h 41; + run "dynamic" h 42; + run "dynamic" h 43; + run "dynamic" h 44; + run "dynamic" h 45; + run "dynamic" h 46; + run "dynamic" h 47; + run "dynamic" h 48; + run "dynamic" h 49; + run "dynamic" h 50; + run "dynamic" h 51; + run "dynamic" h 100; + run "dynamic" h 1024; + run "dynamic" h 2024; + ()