From 82028169fb372ff026501f19d4a2d0b2ae871f44 Mon Sep 17 00:00:00 2001 From: Karthikeyan Bhargavan Date: Wed, 6 May 2026 09:09:19 +0200 Subject: [PATCH 01/14] specs/sha3: add hacspec SHA-3 specification with hax F* extraction Adds a Hacspec specification of FIPS 202 (SHA-3 / SHAKE) under specs/sha3, with hax extraction to F* and verification of the four root modules (Hacspec_sha3, .Keccak_f, .Sha3, .Sponge). The spec compiles against hax-lib 0.3.6 and verifies at the default rlimit (no Proof_Utils dependency, no fstar! escape hatches): properties beyond well-typedness and bound checks are deferred to a follow-up that brings the implementation proofs. Adds the new crate to the specs/ sub-workspace. Spec authored by Karthik Bhargavan. Claude (Opus 4.7) was used to review and test the spec; it did not author the spec content. --- specs/Cargo.toml | 2 +- specs/sha3/.gitignore | 1 + specs/sha3/Cargo.toml | 15 + specs/sha3/NIST.FIPS.202.pdf | Bin 0 -> 1459683 bytes specs/sha3/hax.sh | 182 +++++++++++ .../extraction/Hacspec_sha3.Keccak_f.fst | 162 ++++++++++ .../fstar/extraction/Hacspec_sha3.Sha3.fst | 56 ++++ .../fstar/extraction/Hacspec_sha3.Sponge.fst | 296 ++++++++++++++++++ .../proofs/fstar/extraction/Hacspec_sha3.fst | 12 + specs/sha3/proofs/fstar/extraction/Makefile | 7 + specs/sha3/src/keccak_f.rs | 156 +++++++++ specs/sha3/src/lib.rs | 24 ++ specs/sha3/src/sha3.rs | 149 +++++++++ specs/sha3/src/sponge.rs | 166 ++++++++++ specs/sha3/tests/cavp.rs | 281 +++++++++++++++++ specs/sha3/tests/compare_ref.rs | 29 ++ specs/sha3/tests/nist_vectors.rs | 206 ++++++++++++ specs/sha3/tests/portable.rs | 176 +++++++++++ specs/sha3/tests/sponge_decomposition.rs | 41 +++ specs/sha3/tests/test_vectors.rs | 202 ++++++++++++ 20 files changed, 2162 insertions(+), 1 deletion(-) create mode 100644 specs/sha3/.gitignore create mode 100644 specs/sha3/Cargo.toml create mode 100644 specs/sha3/NIST.FIPS.202.pdf create mode 100755 specs/sha3/hax.sh create mode 100644 specs/sha3/proofs/fstar/extraction/Hacspec_sha3.Keccak_f.fst create mode 100644 specs/sha3/proofs/fstar/extraction/Hacspec_sha3.Sha3.fst create mode 100644 specs/sha3/proofs/fstar/extraction/Hacspec_sha3.Sponge.fst create mode 100644 specs/sha3/proofs/fstar/extraction/Hacspec_sha3.fst create mode 100644 specs/sha3/proofs/fstar/extraction/Makefile create mode 100644 specs/sha3/src/keccak_f.rs create mode 100644 specs/sha3/src/lib.rs create mode 100644 specs/sha3/src/sha3.rs create mode 100644 specs/sha3/src/sponge.rs create mode 100644 specs/sha3/tests/cavp.rs create mode 100644 specs/sha3/tests/compare_ref.rs create mode 100644 specs/sha3/tests/nist_vectors.rs create mode 100644 specs/sha3/tests/portable.rs create mode 100644 specs/sha3/tests/sponge_decomposition.rs create mode 100644 specs/sha3/tests/test_vectors.rs diff --git a/specs/Cargo.toml b/specs/Cargo.toml index 55874e074e..3eb1eb2b77 100644 --- a/specs/Cargo.toml +++ b/specs/Cargo.toml @@ -1,3 +1,3 @@ [workspace] -members = ["hacspec-lib", "kyber"] +members = ["hacspec-lib", "kyber", "sha3"] resolver = "2" diff --git a/specs/sha3/.gitignore b/specs/sha3/.gitignore new file mode 100644 index 0000000000..ea8c4bf7f3 --- /dev/null +++ b/specs/sha3/.gitignore @@ -0,0 +1 @@ +/target diff --git a/specs/sha3/Cargo.toml b/specs/sha3/Cargo.toml new file mode 100644 index 0000000000..c98b3f6985 --- /dev/null +++ b/specs/sha3/Cargo.toml @@ -0,0 +1,15 @@ +[package] +name = "hacspec_sha3" +version = "0.1.0" +edition = "2021" + +[dependencies] +hax-lib = "=0.3.6" + +[dev-dependencies] +hex = "0.4.3" +proptest = "1.2.0" +libcrux-sha3 = { path = "../../crates/algorithms/sha3" } + +[lints.rust] +unexpected_cfgs = { level = "warn", check-cfg = ['cfg(hax)'] } diff --git a/specs/sha3/NIST.FIPS.202.pdf b/specs/sha3/NIST.FIPS.202.pdf new file mode 100644 index 0000000000000000000000000000000000000000..deb8de5e588505c95f59081e337019b2817a58ee GIT binary patch literal 1459683 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 G{;H%AkfSnj@ znxsO$v(6p>YO7|K_a@MI&xA=}_%V0Ze4+xH9(`ZFupo&?py2BYvwSTAYZYKVYrh5~ zce-|$0cgfeCJj)4fX%gT_Id@}zl{~!F&;@2)gT(3 zSJKvILomUzODbI`nPF{hZ9mIy*DYa!P{Y0jQk{B30~mm5gTu`bAR;K3RpnS(h3 z2<$(#tU_b~{>z#-3=_=oJkVA&vm+RkCUth`k-(A58`AF>pdh9+8j zNMTTbViwFU%3$zb7KjKweo2<~_U6qW?gkYD;lkzftmeTEPs*19Uro@;<&~9rh)C{$ zd#)X{ms5`!xDMTz`ysd?+9B#gOs~v?*Z2V0OHw2k)+P+Vum^n+NPsE`W_JMJ%?Y4G z_3%0Ya=;tnN06h;Y)6?bhbwp^gK9g~1dXwv92fr=KV7tNz`>S`wU+g7q66%=6hD%QUjAh=T;d(c)-m>*?eRS^z{3 zC=$S=&ml3Yd#J|)5VPL1LiXwd`gt$l&N9oZFtd|`c_~LSgGOQNbkO`)knOwxhd8jgGx%X%_)=m;u&K4MZssK#By? z_Z^`-`kWE~E^2B%UDgD(wzn%z^uO{0sT1{kAoJt3q1hf4Z^lE zx)Mz}GSl;5H;}LcGtXyFM;kI?0x(L@zOV>fR$joGRZd#YqZNSX0C>3BZv+{6!`Ejc7w4@`aL%o}^~6VuXknw<1`If2k~z>=qT4zPRkH`P(3Dq zz*Iv^qcQ-DCT38>MrPDJRaFZ?i^b(9N4Dc&W0WF{*s`O6lNSk>3r|c&kJy*gGtjiM zh{K%0E}F`SMsO$y|I<$T+v3&4*j0|=>RkI9)ug*aj|sP{<+WwUqt6^Fg^2r@{1YI6 z_B^>dV8vnM;HZm%-h;3?CN~d{{WyC!k*p`XCu31*scfLLo*tMYnmxY;qOao|^q6|B zO`8`qzG@ypS8Z*Nq%>fFG~VKeo{Vm+c>{S_X6`f)#&5E|bat*P>1kC4E&R|-Ysn*Q ziTLVj*61T(4+Ib=i?+$(;X)&$vC_d+$lmpby8zKG6; idaiED5x^Yba>BHglJ+v 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

~$~vMUm5Blj@wvu{7`drq(-4uCqAd zv!2_}Et(Ry(qn;NW6LS2eZIyuw@RjGmf7%h#g$i!@hIU{Nf2blxA=pE1osavGmSGD zzvmhNTllce*E67YO&|9zBm;XF{`K}Fe*inn0Ip2W8ak{73atF^T=~8ZPG_qb^>4Xn zH%>q>_Z_g*l@<#;KDLQqO(r7c52az37|c!oEA9kq*Z=H>$W~lWxQ^P;`o)$1*Kz(2 z#R53^01MY61^LVm39iKi-5<^r;D8@u4_pTF(~! zifOE`Q!2;Vi??8*^xmnA0LQieaofqCLg~e$P&)PEWi?T$J{)c=BOAWRdtft^vE;cD z7Zq3lt_^{rKS1f&#zA91#1t@0#YPGDc+`^f{?L+HQO528|I>)8s3Mp4D!B`c^2_dE z;vOAQDGqfmt4B5YB#~nbo&;zR+%{$We!{?|@%ulHBcLUu#xloL6Hc5dW{H9}h*>w@s$CDzeDQlJ-y2?}C=wl0- znI)n681G2r6(FMS}|W zK7I+7;+#5Y%`9zQGlYn~)Zp_K$Bl5HCfFn+yFSfUU&5&8DCj+Eqr z6it%xnAGA!C#Mg@9bB>_n+l$6sw$tn+S;PJ=Vz|sZ0K_UNAG0uas_E13v*>f)?%(NGB#7T(%~SD$NGd z0D(Lv)Y-D?#Mt^-hLpGdaV+e})v?aSvjCI4BTS8`XN89D>%%#|?u)2qd3^e{C}~ea zzlMc!l2oBf6GDobKT~v*3Zjj)fVyeC-XlXge(ZrdbWggWX{X*uEc%^V_Yrr?l zY-9M~7Q8&%lCmL@AlF8*?Wq#QNIC>zYo-LEnfuqN7kEMjUrazb?4l~!eV7lVo5xqUb@9u{8Q`aa95I+eS z_;IvA{7g50j=sYUkFCbc7Gb=?=y%F^wvK8A)V)C8r!!TN#8HNb)=;?9_mI2qhDzmd zVYh{58jqv-Yn1MyTR$g0ErsWZYaFOen9IGNE#lGR zY~bNPIU#NTHM7eUBqSpld&|vW1p+%}!nO>*+I5*B$vL_rVs^#$kaTgKM{egn?KGr1ELW-gy^4W znnipXGR+7c>m7mWoMB=;-w&XM)3x7E|}BBLc33&ik}SE(^Csjc4AJ$ zJ}bF{*|??fu=rmV=cY!VU&gcdFd|WteZ=X0Ed8oSBVb25#E?io+QcFl*l#>N%gFMP&s{sG?bo+!J# zj($xaaBikggwE&S5a#S`t4oR{riuL&qsvRif7FfY)ZrL->j40%dSjMw;jD0rHD~u# zLbF?EdWRvLdAL5!#+D@OW{2@gJ#oCBRRks z1iFLjuQetMqZ-&28WS|}fH}fW+elI%ct%6^SQg=pwrO%}+#TeJJimL8KscfULB`wP z6Gd_Q`ocX*)F5#yZiMu7)f?`_)0Kfoo?2Er9<1G;)#L}j#lH1yk70t7Pi`@#8*8wE%cy9-!!tbGz zCD!2LO;~0^yq&w!cu5_w@|LIyAz+cu90*Lt!@nwb3KGt!CU6E~t>LI-3XT+j0mPe~ z^P1N^K+Z9!x3hHuIp>%VZ9(LGFAZMUrkx(`>Ev^8%K0g|ODBQrw(mW}hHgz{SJcL7 zkU*(9#WCeOaH3$uffL0~{hvhHct&HCb`p&B1Ar3dw?o8F-FMTUK#-NS0M{iCfMZ+a z0p!T6CTk><3ds&+$p<41=pfjQI2uL*o7@ujex4_N7-j(0txm^Y2$!xTV}2Z?_&ky| zET;}GBrrnTe*t9vFMtG(;<)?>kV=|dj{s?pA4dZQNR51lB<8xjNx4{+OW-)0QWYu$ zPBxwVs6ooy;8=Q@1eeK3N`q9*Acul#w753=#=voX{tESF4yCszeR>6y2D4iEQT}cw zIlVfr^lwc_Fc{S0nw<@EWYLcw&QwhJ74~y_MLkM;DH}rj{bm6H?8a3PYmAJjJJ=1-yM=W!zaZR^@v4nG5R8gKIet} z#IEho06USbso;KlCrL0ba_1tQx(#ThV z@7$Jv6?r}Jo)6l881nPsZ&*uk>=DHWaN;(S2HQqFP5fW7@wVWr2*W?M-H|>xb-fOf zp%EdY=2eiJsNV$Y&eNx&eI9KmhPuvpdH0x26is;e>LssVLO;36uT{N zjI!9;Vmg~?Eltq*Vj}QNhX{WN zPy-T9o2E)`OFu?5*UB^&kdC$M2z>x@ef^DGz(x|izUeGV~-7~yfHdYi!fG+-6w;KVsT(-~B;YbHBO%3?m zp0gokK2NN!-lHM}z694r5bLyCq?)D^Zl#yo-&S$NXM*AG#(eN;@T+_3@z>_YT_;&K zw_`pN!RMwh%Ix>FnI! zD|Mj*R?6EbTbu0kG(pp$(SL?ao;Yq2!V3N$zLKM%6#Pnae|@Ad8mUM%TB1#*d3!Ij$qv!YQ+!usDdmOo&^sOukAq_|LGlcC>NQUuW9ImZNS zOwHZL*_8h^n~*IPL`NA%tIdxxg!YPrz-)L2LY@ItKBVyb$3InG&?H_3F~GzdYpI~6 zh+q;xi}UlpOM>7((Df03u3Ip432gWi$O-d;XJe`P1fftx222Wj~@gSRk~Ec(X#O4cs4cDZEjZ&8Yc`GfSuw(^rOa8yI7l+%<|XsJun>o^Pd*Xl4=v zC29qp5o$bH+r)ucU0Oq?ymrI{Nu94DAorVT7OcD!JW!;b(X@dv`fHQ@G`7%6V~8(Z zaLaIwXH%5!hSgHUYwWpBhE&VU;W-$m4iEmaFEoUdooJe{dEAw~n8SIIgHhM_$#jM* zl7uzCtEZCf53BDVM@x9@bB0R@+l;^H)0{aZPcw6!Y?qOrvOOm{S`4?|LV%O8hmM2T zQTWEji$j}Tm_1X$-XR{wa~1}UszIOH($i>FO@7G_fdL;F0s_~ckz9#~r_CN>&Sbxk z-Y}SdQ8Q`qqc1ia%-KZ$;%r}$6uX&h!Tc)l0}x&FkNm34-z0MnQ#}GJ%RqT0B*Wf~ zu-3G$ZjQlPg;vs~P6$D?nRFUVusZ)HSQ<2s1ZxbeX(1kU=%_!{FCF^Dzyhp8dHZFA z@^w(v4WdO2@V5OdNKfBzgSBztf6&IG|7Y6xGT=TIY{QlQ!6psn@u4+T-L@pEsX z&(Tu%&ur1fm7}1QV{~_*Npmx zj$^^<_yADHyZ@?V6Ruo=DBaM$nh^)f|xB+w`2{q927u2-X5>@{G*Fkk2~Uj>*7?g-@2IhQ5P5gU+Q8e zyx+Q*g%7NYJ+S`P#m(ven=alsdB5jG&=oAaqK&wAj=ymy;^)2S7Wb+OKqqI0-+R>z zct>0;U^;gn$v|x{QUnHXp%e0f9R2wfS&l4DMx93r<~_~Hh|$cMh53D(&H5%B@+RMm z2=ZMXf%`?f|G)d*+>+v>#R9gE`gOtEuK!!|;pCQR{?vTZhY1!Cg;KRP?OZ0!Zuh%y z#(*sGPyMjr`Q=AdapT+Ri*qf8to2lrWp{s*fi_vxEi1EBjhUjH)&{TPSn4XTeG?CF zXS)fa(1CW=(6eGdKo?L?N@<#ZKCxpIO~|Y0b!HW+|IS?SY=QawHlBFOF8nsy2m5>v zySKU8YC26L)ag5uHLueb@^Net?C?tXZU-bCug=N^vEG|h8-at1q#)zf)eij@8gaxl zm|o|~tc6(C#(?WCVt${mlS~2(#DSMMv=;W$l#_#v1JQ_d7v^e?*CSi z%`KiG*rQZDK5+3yAi~#BcLi#91~({Rk?T>>{+Ww#OUgfU z`9sC8ewj#MD*h{304g4Ks&l9ZjACDhGUxwaN$f!rfTma|?g_A3Pz(l8{A)z=cTN~} z{_ATwiUvvEkIVflivu5JvHgFL#YO)IvUpWOAL}9$ENBC4d!a<%;694FzZsnO`bX!V zD_v21Fs5k<6=>Z>e>APZS;D`Xw!73S1N{X{txN`wVBnc}#*`cw*82WDf57sE%;AXR z$aMyfve||PlqH?C66=aoK<)fS5Xg0oS8q!zaA?5@vbO^xJ6jZ7`y*J3??a=AOk2YR zB$bUS)giOI;vRLYXEO2hDJHEIMb^ zrq^Pq>pqLSc(F&>IvQ_h?AWT(sov+{)Vy?eyQKGbpEZUm1r{$Ai24tJ|TOiXUyovwM0@>Sb zw0z{3K>iiCjy%q(>yVJU6$lwTj{=z!87z?N-F^#XEIqJ5P65wH1uP@S{!t&z0&ak@ z56H;Su^ItzHl}zVOHWx}L9yn%m``i3OK;JJ1&f$Ffj=Tfvt=MZyEeP#?mDP{DpBGe z0dmzJ!ttL3$Y5*u$wVq9V4iIQSCeYaJ<6EezhunGz8d_at)l@LGOLfa4lB*0$pqx& zKPJ;JdHhBcERWL{BMbj@n1@0!VP2Lt$5b2KdAlN z*cy8+)n30U0Q(VXz;^#O3G4akLaCepfClnA{MDaKXxm|3{fA3c?^8~o;w+{D{wWrh zdTM|2)ra1K=$H1ou1-<1(KLmM8xJ~e>}(GQRi!(W3y_Cro10z9(VJaX(VKA(zEjlY z&ukjFX8d!x5?x|{*sCWC><;aw%~J9TxY?AY5tPqTjvPiAd*SFo0vCA`R2+>OyAf!a zl{F4Evde6e670%bVvs=(4I1A#=L^pBH3meLbT2^I_EjM$t+hq^t{B(*USZN)o&Pxb zw9)&3znj%XRCGeJDiT4wy~jm1d?UK+sNw(1@w46rSmdu>4G9gOepT%rNwfKed20Waw;2%-w5J7+ zrBde4lZDyPO~L$61&&3@9Wd=43tT)+6Hu$b1x~-S!~xtua!lWhX@F5@dGt{JtWUV5 z;n({9@=zZ02ps$${|SB|Km<)J9wl?-e8KP>G}!T47x>#j`~)Q9|DxZiCY_jnJQvL2 zqQk8A(0fH&Qp^oxBYB_OZ@fi)*39+~-tOtL22%_MgK;F+4Q*po2{5a){xz$_su=lS zvF)t`BgI+ZnqgkMRDowiCHVJ@>;X>`m=V~hC2R)Ewg}$ku2CiM{*>a!(Sc1bV1J@I zW&Y93#mZpKtbPhmt;FA&+2WUGmH{-g<1fuDs!8~$nIZ7wNFOz`DxjGshpZH2=x)^v z_}$f_s@zng6bYs7V}SdBRBLkY7WGWk11JqlBDTNm-Q7Ws#8N&N_~M}lNQ8c!G6tEp z?`b1m2X;SKhmN-o_hq@{8X0EfFN%ya3@4=B35ozaiJd{Nin}PDDx{@1>O$u(hDs(O zLND&+rYL-oNsqhQd1ie!^Ut|C>X?AKCrJ9UCdn*oQ=o@}HLscDBH52N&g9QftnPfT z4^W-J3K}~ate{r}u>53UI#mgd7Eyk#{gJ8cf^*FI6tAcTHmWv^APcb<+g>S_%Rre@ zK#Hw8B%tjx+^t}!FY;I;5gg7wZ?Sfzpp{0!VAY56Q7@Zjran==dFh`kG%VRr4dvn5 z_FRR~&&1bVbyvPA7Gaw{|DX{MkJ_@sfFA6l%7v%-R*hZEma?%k^9ay!Fh;av-3{ke zPj)z$CJr@mE?Xd1pdIYB?4;U7VoJTnOJ5x4i+&>~S|^*Nz|Su~{=sn`jOr|+?wCN( z@8K@v;gF_b;>Wdnu3;RlW-@m-#Saat&{Cc}v!y*v5&;}|67**jZGW|Mv9llBxnf}H zYYT4YdTWicKelr}j?~cFcLD~1J6az{JVT9=1^{P2^_az*0`yS84C?3nZ#WZffwU#2 z8=xBamP$`;-w|vF)|nhYx8b^nsfe6GvpwpuCmEk$~QNpuTm;tyRaT8RsXgt9rvFD z{e|RrB*z_@Vc(a3y}y-ww z6uE~Y$dNyc7|0#+0rxBTlb}wb+BCfhCGN38;m_D(`lc5X?vpRiu5VL3uRWg& zy-H1!XW?Cbr^}?I#A9$MOp}u?Ppd+&u#6g!OA|W3DlD9urfWvoOs4U`CwPTs*At=7 z{GFriLUn=TY!!ExSlA-Zq?h${=GNJr94|{7UF(Gv<8lflDNY5ZaXF9R)d8w8k#9cy z^!@ODanRv1#cv*)!(?22a2X@Y!k93&JHzkV7oXUG?bWMFWqD;(~UY?Y+pqi*}Vk9%gyM403 z@g06UPHc9S4UODdhP@1&wx)ekqqSz@d?7GIGwbCs<$b65LlBBRaYB%*aK;@%VD?S* zg#J|rPlFFR|Gv=ZO-gy_In3#^__HoAZ)Ls0^UQz6 zoI?*eZSekp6;Y;g->OCwZocaUa+W#`qOmb3g!&RHmi0Yqgwo&)4w@&`OS^P-l@S;| zH)sh*da-y2lHnPL5S$FMy(>dZ4zri1x*wzrLO@)KQ?Mn~YW;YXYvbpHp^`FvY#@}V zK?CzOJuZw-*6NswD{*P!Im&)VAKOx6(UeI+m=dUG(PbQL!pHwy;pMZ;)em;orMs zkuK~SOD^r^kBPkDIXj?gd1^vWX;Bzx#r=KPC`_A8yH5}_(x)eWB74y$wJ5Q!H-}4sU%Vtu8ULOaS+5!KH3dJ7_XB)G4T=f zo?F~UH*8F)8@Y#*>+M<+W!MVK*7Jg(Yi4&DJSMMU<@}J#E6&3Se)2if$=B4B32v+jOr1yB9iXL*kp$xxQ?gj`jKj*jnH18A7JhA%wL#23 zLxLV|YGsa52X)Dh>{jm$(itxdq}Hn_f`aA-AI#u*DWjqoor#a%Nm2LrIC2K%!IR)} zf5srEsCgcNB8E=k4Mn7&yZFqioFke6tynTpC5BiEX?@AU0seibN&HlDr)qO{s1!A- zlK`7r`l?|F#8COS98QgjdF5rV_X;c~q-mAmyf$L0xl`;X{6r5|6)}$A$0-x7;}DP7F|G)DA4I>kL{__fa!X2h z5n5p64fRc(J4wg)+d0-{VDy6w`as_=>Co5uMj?7#1MUlP@1RbT? zIsqdyRo3kpF?B}IqyX@-I$xomc=qgH&t7G&XGqd7+D(}tEVHi{q0S3xy_+s>-YxU* z`alvAB4);silA?S@SQQoD`efqtW6_r2+`90;=-fN6Jrz6BodT?s?TH?P1yMaQff?D zGZ#4wRHIU4_uBUQ{NoDtwJpg(Sm(DYFFqT4kJQM>SH*k5X)4y3U7Tb=<}#g<`H&4U zhFJ{30?r8Yq42|*PAMZ0)}p0;6Bt$TK?S+}JV>V8BvEYSt1ci_s9 zZ(+l=dQv*prpC3ZOlq9#-)^=XW>DKuXj;#n!g;7HA32NyIVw& zD0S(-wuOejD$wj^Ci|enyA-tw;bl%e&6(C4qe)lk5OUfz)-Lx(K(ONBXHwUOTe+ef zH9FKZ#HVU%jD_4W1=*EV?Qo;gt$eZ6-OB`-=MNNPd7<*`SjHW9OUpY3%jy`>Wv`Bz z7Q3mcIZ(!C_0r z6ZmHDw&{$zz*Rrbl-$SWQBaNLuD0rIeKz~as6N^weL>INWAa`9{9&8d*Lhu|v-u)b zqA^o@oP|pSjT?{dmT#NJ-Dq_D87_0Km$vl}ob#8kHPl;cw)?k#3bf&-H*w(J~B zoeQqps%nkN=o9rllUD+clE0Ggf8B%vs$ncq1w2T81&P6DCmBp{#D7UHI33_W} zD8~wB-`y<*IB8_+JuEh9kMPP~G7L5J>wtZ^M(82;QVcO z;8kVUnMe6F-_x;cZWamWp!v@QZsi_VkO(h#69~RT4y_Q;?XZ0`VpwVA6Z^3VtAKow zSI_fZr9*HiGZrO3o#Mx2^MT&Y5|xkrsr}6|o12u0D@5_Th6Zk$sjccD%FMXUFQ_}# zY;{~mEpO)3sIT-mQI#9Y(q%7Q2Xj0g^hX6 zOBxLwr#nrt{$-+yiRF8YEDjm6)^h{l^yD&HSPprUp;@)lZ-@p9l8f*6_tTMlnH5AM zKi6_|%z9PTQ{Oyow8bU}B|D4aK&_wp{2jYQ3kNqc&;yO$IR{Wcg%qJ_6ovFZcgE<^ zSdWR54CzbJ(LC3fM22l<5yg?eiD2^O2aGv*=FkOvJUtg)?yWSIMzE?9Z0#cq)m;$I z;^a_I6W_kr?7T+yq^f*ds zR{0Z^hwPWz`>2@QY|&QAM=phfqMyUy;i3kGWuC@12Xw$&>^2d-m0-ul*a{TdK>S#3 zDRllW{*)7MsBrkpg+cMafHbx`nip)g5L9YMZiK3z8awWr%)4=^^6jbJ{=R6uG0M+eee8iyoKVlA9u3!d zNBgMTCp7)1SN{!xgH)H^pm~b(3a+7j$uraf7l5%iAV`c|moAF;? zcmlpTMCE_J@Z^z={=RF33w+(izby78_{x?4N7sCSXU`2>*8;xngY!RJ^TEo&!3(}_ z9r*L-%8&o?nh#c9cCN>JS{&axm>AeRL3B;|=>=T#Q4_V$;Cmg!ZrfsUME3Fa9Wl52 z5=%)v9RHIF!NUXoG~*Y>`vPh%(Omcly7PS6Ix?Mx0@BLH9X_{L-9B3n;rh!0B-^)V z9X=27tDkPS2le%R?$P?rK46IN2kkzbD>dJ5e)g%+e}H{(sg)A)xmtBK4zf7|&4)f5 z+d^I*!xKZ?^?=4d-`;%oxsC9-K8f(TBI}9hb|PMUxEA)gKhl4=(qATdIBzb^_qjib zQ1CQ`emJAKB9fv_J5?pT@2Nkrr(79>(1(>q)xbQ&^W8<$oP9?GDvp; zr$i{%fTO9wYQ#_q}bPLG6xOb{a?OzvU&QWAGiC6(}}uG8;R z#N7@~C;|}d^u7-xBSXFLDVyy+FG(2DW>3l(BYMrqDv;N@e=S$^JPMZt=hb^8@Tzz8!#X2_}9n(w2__DY5VCLl!w)2>&5M1yo}k6*#Fu4v`DuAQ2<& zQ6g0I-6Im=nB{6=P`QX{@&2&}TB21~ITWLcD4$T=5bj8Ho__y#h6l_9?-p-x=3t*%+{9RhsKUu|Po~ zADX&4EN%I+z!pLJss_Q3k}mPG@4;HrW6mw@n5bR{A)ngg{TqiV&(=HKtXJRpLO(a%mGd;7BZ1}_Gdf4vQJsT5 zt8+u#?fl-F#2!^<`vhmQ$-tvJVx9P+bT}g5UJRR$eTIZ&p^o$+Mf?s_Tzlxi2U$9( zyha0#%K53P$Ed8!$O_PhSVTVwc;Y;z?-^!5N@zX@Ev{>U+S*fx1PO6)h}t~`K@vD6 zVGEqDvmDb)*}uXpJ#m)C|&HkYS0KiO~dtz^gpg0>4{(ThxYWnC|QFYq!!-`^o! zK6L(+X^_5svqVq&zGh;UWZ%2jhWUT)^!t{f3ge z-De{`S1AbhD*=n}LNDs8OD&#zvw}kzNhYv|^s*4o48t?s`Hj(-=%^t!yLL!dL>1*E z)PNk^QgRJnMXANDCNPTCM0i4#I4}JDO8e|hsl%%1F81SlQQM85-gaIe0Iy{UJ??YG zOQVE&jh`k8Mxe#+jj-$KHsI5pU*N(*oa#kTag~UCr%Ij7jizwR;yOboqrzxYzYZlH z7M~k65V3RHiqC-G9;{fWz&^zPTEH2!*tH$T_s@%bTAwkNInhyD<|4WXoXP@#≶L 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 eefV}NKeHC=I8n{l{et?jn9hFb4JWY$ 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 z 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

1(AG8UJM}TQQjF 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 z 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%0DaRcA($mZJ}o%w1J$!`9{ZI@pX<8zRS^{?{W;_ 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 z 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 z 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

4RkqOVD!DU|G;HPrvV1vYxFP%a^2 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

m_%ryr-itu<)EiELOG4m-z4|9eC}`Q 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 z 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

?eb<=#DvTaD)h;K@R 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

    o zHOf-j*{k<2WQ1wmmruypa#k+kxl%sYY_M5DN0Ho_>x+*L|2Dq9cz3JUniWr0?Wc0~ zFmUuP+)?wKax(9c0dtK|;|BJJJ*65Ykw$Z#B{I7`S2WDdQP0lJ&(6J?ol~Bj3%&5G zdiHS}&)!#gxArvf-!r(Wx69q7@XI8N)0?aPoq7y?6STzxaR(e9bTGf2cw-%Mlsdg7 zZaDO4@F5jLAvNwpwD%>vj3Ym6@zZg^b(pHo(Zal6V4+v;h#hDZWgERm`ZIA*H2wg zkZ9!C-Nj*p=r}v5)one%_j-?+r>9E?v2!evned z?8=d+>1@Xh)*sdG>faEhe1OJ!#;IJB``2MQ9h%N$?xS0y&dFVIk>(7|N_7uX*YTLM z38~DlKC7!^!6o!2;IiwstJG^=hA32IatP}&mX&0fE_N=aB!tqaW?__asC zeZk({?&pE0F;b(4?UajnFU>ZGshfEEjm~y)cLuIcPKws}c|a#Jp~tB-G|A&fbvKXh zKAv5aN14sva~`_0TgjJe7o{k7nUy(Hh^73g&e}_tt~}1M$l@v*bywcx!WVohkX!Jy z)~eDwdo{Q|@|+wy#PsD|kx|G;YTaW`57JLD)Fpq% zX|tkB@hU%evs%frn;N|k&A89OUeV5Tem#TC4D|%-#<%ZoF&^@0cpDYI{k4*P>+AC) zT_wZeHP__@F5S2=9KMh*FihuO5T1YfwAQ|Qm-Xh6R3&?^vp3{X$;YR5PXvhQ)CPSV zjR>2!Xs+;*++W?yC;IeKM11C|>x=t!Yi6m1Sg5PLdk!U4pSZuO=ZU?+z^C4_K@Zt} zwX07PzFu#2eR)tQ@N44M21~=Ne(kkiVh%p0sQseVvv)M3GI$`ia5b}7+OJUyqulP- z1`j>7{iOWXSO{KweRznuaks}I1Ah114l!ZH-0=CA?^*&3vOh`ZXPtU~&eENxKStAf z=Du}px7&DedezNo>)Vw64^z!s)HG{UJ=U=%HP~feE$URIb`2D#|O%37TfeC-u$+xR=!^2pz-4De02Q5&yk%GwWjUw zxdxdi+6%XA4LGd5ilvtqlvfRpqycV#R;U0I&)q~;sw z$G>6S2~)v9-y+q`d7W8|n@n=b(nahuk}uMxEZ2YZd0*^r+6&a)%jpIf=W+^VjE*rS za*J(u|Hh$cm~bP6FY7~cj;`Cjom3S;^(}ml#~%eAezkkojuu^AE6udgE}Kh>bR%nK zmM>71YA9QE`dxc$_3K`-^v8A)J@%Snk0O_72agt|l>T5j$`GcDC%e1*AB<`VzNS64 zYQ-UU@%W~d#Rb;`_peyJ%s{m$=->Yg6W!yHF#}b|za%{<&niUvp{T-nXT=lF#?Iyf zrpB!BL(e~;jU>+z|Mdr)@SAjzzyD%0PE+?r(+7I*Hp3Xj#I!7@D%+sPg&Ymhaq<;P z>nQeAPRU!BWP8|@WOc;NPIsE0VQ=`7ZINE6^VLC;y}Mm;Z1IPvXq2Pu%C-wmzXex! zdT46Ct(X?bGwz{(`+PdN;-mCSA49vSZ05*kYw~|h6(@(kZ5ejc`K0wpF5z5glw6S3 zM&FuqF@7h!rrR~;Wx}~R*my>T1x~w7|DI*NWb5NrpmS9&$tWwALg}VD5u&)P4eSB2q+P6s~b z(mO716h1lSG&54ekibP#CbqEcvH7~Q+Vp1^^5#O+&PQ8@tIDL7tDRo#sJifOc_}SZ z0_DS(jbdJF_n33MW2n*yIM{I7{LYmG+JboPdX|2dI|1eKiAsXs(pN_L>#MAwv`>C( zkU4uHXhb0(?!;yL$L2f2(kh1s!UMcAMSqCjVjEC@xm@B2y&LsScKh&=(P9J+of?Gs}+3Z(6IwYE5n*E>1F96U|??a^Kax zPR5Gm7DL|K7x!$(cImW%OjtaN7C7~yq&#l{bLkIUCu z1Z~S-)t~(3otjFMiMr}c?zo}LVvZwc!Q zU7N)w%*$f}_KfQt5oGMLEZku_aoSM+NKfF9LkhLQ%B@#egxNXTg3DSDg*0qaDt3@P zw@gxH$}7PBsLB}A=M9&Gcd#x$$F|%z^IgCIpVdhF8jGhJAH^)vi#}Vs+;`=cLh4S| zTg4-VYo!{+IQf3a?4@oz!o?&X7N~V;IkjZ<)||KJJ=xTEtuqRgeoQ;>$VELy>m4Qb zm3ad-wb#{CF-Oj%?OlI_zB}f!%vfUXGM9UigC0K5A~zY+848<@nsbkJ8E`5F`X@N) zhSopm71P`}r~BiJQ()D8T8T5dKgB(oMm2?J3NM=<&ApgeJ4&m-Sk*K@<8@j7r~E|d zRX>qps)~!>UVINd%QD)QFSA20!Xn^N(+G!K*4otil@TXThS7)7CzbwqK=WcxRjHRl zirVq52lU>^i)YWUoNz9^V?DNdwv~hDYg^@yyZQ;-8Oy?gXy`sZ~Ft(jciYj`?>74t*-eQ_%Wn`pGEGM6^scg@e zccC#B63t1StJw0*cRos-rFpjC^L+UwSzp?%+Za{7KE4SL-KKwjnv0QHZ>7cEtP6Qb z8d~KhR*pUX`KuZym@3bNKRP8h&Fwd}=7X<{^e#JB&5;Nz_3h`nHg1ZcK2V=-9YLdY zdO80dzT+dy6jq-vc5@m@+&Lxbdif}qqu+e%Pt`7`pQkO^&*s}7jyU*Q_}xyK9n)s~ zid&tJe^42+_TIT6o>QKKqE}i&ZQ)1Qf{FAVPWgyd#(nE~A4IPC%FFmT;*qkp#oj2} zcUQbv931WCt(8+?d2vzC_Z2E-ikR#h}fDd^Q1QYn=46-G0@7 z>!v-Yx|n&&?a?^9Xes^VhpF)_Ybk4vFq;owRvz*F=>FyQ%{9AX9(|?bGggW1`a-Mb zzfM@9UD{tJVEf>?Ti*BHdVk6}m=?4DT}%5f4HoqrimiJ`ztM}|(r)Wye32f$F`QqvhdZQ_Tpez87qUM(!n*cXtUcmIj6e7Ju6VKdo*zN?uFNFY@Ev^{`5& zmdx9guMfA_@9KHg*1jQk-KPUDbq{D>^r@<1cqH_0<;nn?ZI&FFz8fzH*{z`b@FITM zwg<u^HYhAy!Sm9N_XCobb zmB*LV?a^Bv%zMz!`c+rz(A4*N_KlfUGp^is_kpTsO3M*3x*Y%27Sv4hC6{)5X*JS1 z!T+Ru1Fzl98NN?h4vOb_AM!bx6$w3#zgZuZAd^VDN;sYMlL!~xH#|~NzP~%YCOT|bZ{_|bsZ7>Dc}35pxiTisawEx!>Z)&Cc5#DJ zHY-kyfK@G4(P6n^{q02qr`PYoE^%*_h`*#*&>tT2yeebLnR?yCAM@??-q4e0pm^-1)6;=pH#vSjzPHBmefP<%T$=IJJC`0G-RskL zGeG^}?v1xv^D;Ub`$J1}9?qaKlMcBHR4EM*yWu66N$MtGW%}n<&@u^A-PG zKkXwNq5JD|CtHMin$0DOPpngycWvOLWV7_3z9AUIG}5s<>}A6{ipM)Q9q{$1t%;JGBp1yt%$wb64Zp7qNrXt9yDcNM*ik=&?$8$#ZE_bI+o5CFN<#YlD=brC%w0 zBA%}38(Qi6LrsuIYJpd_{O8Q9Bg0;y-4XjKw=Cnh@k;97Yh{RO^#4vPL$`YWRVxz$ zSI&Re%I=(MvTKrD>ou)863W9DS#w|RIP2Bw7XChQm6a1QgMKDu*_*<8?so8xP0NVH zF>~9l=3Bi*Tq@k@%$L=hHEj)TuensT=IiTCdZo99Z=13`XFJzgGw_kkM>@>roaR7M zd=GDRn%nTRa0#2K3cfqOM?~pNL!U(MW?OTQR$)^{cC?q*yU0YPDVueN&ff07kp0Q2 zBU71P8lpt4~ReXn*D8jFi|1yL)ASx*H=bwtXg`vCMZ}=+21WCkAfJ(w zpSD$eyI`#&@Ix$%-iWK)J76eP+moBJH;R&aOqj-%+~lt{dFQy& zFL3(0)Rv_0^!5*4FZ;fHer?Rtjki{YoTuNjY$~O1OA+OSP}^zinP)*1FWw(Mw63_S zj_OhYpDJ}El_<5vqrtW>>p!{fIaw3>yCNwza@U%Xux?fV zgPc1DJs)*n4(=3?yG5N)BU07YA0hjQdd{R)^G=8F zxbMd=)p9s3OK<$N<|ADbp&tI5X|`*}%V_fNr}&Q)H3s_2*h=WJ?OOLr|D4~Ph>L7s zMsND*qm+kAMQ2p*+Nm#NnqpZQ=Og1d)Hl-@cf3RHE7K?1^)fenluXYqkBn?g>7d&g zW0@oIH0Yvz^V?mM<-c~SRCO3h3|L8h>?=?6t=zcsqR8I9v5Xb!+&g|r z`sli4b!#2hRMnzfRM~AS+kHPxICk#esMRVHK|tdV3n(VA8mu^?w#A-L~3)~T5aG!yZ7t~ z`Iw=2=fmf#mp^9^5}xPw3}bG5P2&nPD{&RtXi@#F z%-Hrtak1d)cW;$j_}tukrG{+Z82ZGu-g0)SW3V*~Vq?hTP!@@dSq4zCl9$A}pv7d>SjCEp z_a84$T=_vG*||DeIDgb8!Ju|Np)x=~M9pz`Cd0hQ&Xd#!?hOU36)qj{SLd;dqx;dZ z{l$0roJslPM;gz1m7hvVWV;@X5~lHdj6;9D6NtlFsfu z{U__^TLtT*9{2w8spP$$DIa>A9pTfmAZEcjBXCTn9Y6SfrzO}u8|k@@K#$c+BHf~d(U>&De~(&zNQE% zH*R}tq`@DgzWc!``>&4{Bc%qz`?o7v8#+ID zRN};M(ABA*Ys&J;!fy3=@g}M`!S61!g09nw)o!P0<5NoWM8unht(vaCwvO#-T&vXm zCFTs9>#M8v1zWhylpjZH9(G{p-Cn1cN5xX4cK0}bxk`_-%Wb?QMu+#aZ}icX_l6ux=gK0*+Ug6N+vj$2 zyfvZ!5%Kt;(3=CStAyu2EnG_&u*zT7YP-m1wcf9x=KHRG$&3%|*{zW}Z%$1ZZ@<)2 zk>Y!%dj6C2uw^F4bgh-OeRlbNhh3Iu_#ICxSl_PHab5Y7+V7t5{&jnE1{-xGx{qin z9-&xwuw>1$9A26;4Xfy%9p0cj^)`T+K-^Fdzb4O<8gKN z7O&}Z0y$K(BZ+$Bdv~q3V+u~&tEO~fddT2cC!<)^*!fcRt)XJEuywxU$o6 zeg>RXby%xr;bkb6ZCPaQ(jNVOeiyUmn+zvT?Y7*-ReqIg*X!3m$kWR+ptV_JHnEYD z)^pWY?Lt-?>Atu|uiTPVn>{an*O{~2Z}C>Cw*GGF;th7L>&$DM(z*wImbDK{->YKv zQ(fb=T~bNwnEFZC7RS7{ywpqgeLI4@lRAB=-^J`p?TD%GV5%9YDgKZxOD&MO&%%?R zKDIXAWkc|C5sD_iZJ(VQ^Mq(ur-eE$?iA0zo$$8U&DWu5Lx-core*&7$qV(>Yw6AviKuwX ztyrLJG!ehZdVUMT+$%d4>1zpSo$H!G~(39kMy>`lA9>EO9ryUXc! zs!LNz4KS2VEelCC^Dh<;ar)Gxmaa^_p?>7x9J|-gZ$pV9(#w3NPfu+zsyXbgH_*4c z=;Cd0J^?vPCcBM3Qgk0Bug=@jNV=WLOtHM^qwYxK?e|WhVfl^V0{1HhQ8e_1-xgQB zHoQOomPzH}>c&kQLuz^yUTO;M8sU<02^y2O;rzOA>Vh48Oki|^dEBX&k~^#DM0Q#W z2W^Tx8x$6E{P)-?jWw|go4lX%A5Hp_A#Cr)BM|z!WxFvpj%s*?~F{>$^CfTk|EjRs%P-~^nN*Z~BsAw5Zu5W>L6EIJ21dKBH8V8_1 zbo&dWK%PQerzP&d{6sl$2Lwh01O!mMrS=0g&`UFp2RLfRb^zCj>!R0Jcn89ecL_j2 z2nc~LnvpI5*@kT=+C^p~!Vx;Y16)k@$&4O?0X2*u4EP-;`h%pyG6)U_(f|M!Q9pWO z1_&yGwCFGzAfpI2MAyscaTwVXAc_dK5hn1TNFHU;fim_F%fx;V?SV1CJ0OV=?_v6% zG|Ynz@6oM1(1w_CKp(mIEjv(Ep_=0uGUNu@6K&IA-u3axhW;QW+RWZVSdEjmdX%yO93G zT!cG;{JT^pxg1RY`xqhqD8YX~3v^hF2&AImFCSr75DEc7Qm|k64)PlSM}doHL@Wo! z2Y2F2cgT#6_c0SVyasf3U|3*0a4Sq;55hDAuhQU`843hn(BK1F7vYcqbpri3LqmbU z=rtJR0suZ@9(@sDe1s=Pq;?TxLSR1PU0^-}bOmND_(Dg|{or;U@fT3;0_LeMdJ!iO zxnSBLkSw+e(-5bGaH$L}Kqume)GUd9>tR}9jQ}?cj%b0cAYK#@Oo`ecObjiV1b-tr zIsTvbKO|aWn?KM0N(z0%(Gx{BgM6YOHVE=V`Ae*%2LS&W?jpZCANPlzFCBZ9c1=XV4Y z#;HYM9umM1=!Y91&|q3ffS^ZINCcclcoYN}LBK0$hd!cppjUZP*_fX+6|pVY4}#^P z42&nQW{BuRur{RQdk75y`Srz+4oGvHiXc7!o00@W1mj10@_W`1jMo!u2UpB z=o9F`AU-f1a7d7D5Qk!$L@NLW23!V6Bl6?)fiO&SQQ%-PEDL4IWQ!U<^%;vLI|2>@~%F)bv4ONqILJt4h8%mAV{u;3te9EK6k z5jmZh=zr!YEHpSzp#|iTBSvkh92{L7WrR~gU|K8(P*zFhfsjB<5=6$l4A&$c#CaEtDjmN?f=@{{WMG1)vje+S&NF8EWNbE`sC%_lromdIs zPLvHk=?Sn)>>M$)KnjS%sgKhhhEX3up|Ar)-GBm&l8h`GkObsa3Bj!ih&-s5XbaW> zEJ&~}>N?;HA0Q>5A}K+5fIAd~V*y1%*HAM7T@N~k0KX8w)D=bYVf!Kc_x5Ak!I?d&-QfElq5BY*{2%Ql^&7^9fJnz#Cm{}cA=C}y z0R)8Q2LYpCRY78cYK6T)RRMYer6Wf|E*LX}%tK5H09pa)8mLDY%0UGaW-cN9L9s!| z00=`olnQGKksoFpLO~IE03I7saV^2#qx=9MPyo5s2dpOu!&^igpilv05Gon;k^p)_ zl>ycc#CyU#2=_!#9a!0F|_q2Ud7csfj!=X#skc6c3YG3LysYUE#j~U8DecObXUb97}){ z`!mJ}K`RAqCE@{pfjstziHU%;qUON2bjF$`%) zON<9KNea~7wG$Wef9 zOXyFya!TPQ2{-^Lh2TmgY$edRY*!2%CyddxctOh9VaKKP+gaEelKir{I7;d-_GZg~}6$+ey>m5jU zxWMd$v4a4PH1I5jfgRvN;&TF76fQVB;D+@A2aw*uU6>$98%%*67(_yaMALu?h)CQ? zqX@++pmTTu!HtU=6ayC&F+`fMgsu?iuMmUm4>=M3j95hpoe{QVxF-aBA)dUa%6p|4YMw>&XO1rT1S35*IvR(xvH+(;saPFc}bdhL~9ZXamv!cn(o$ z2w-|>8}1+Bf(SUkWe6bhrip$Q3pO#5H6riptuwTkp>rR2=RnDL7*+AVJWCxlG30z zq9Bt45(y+UQX14t(*21vECqBz(tBWY{HNmg|M6KL78a}r zRU+(*7)k&D79?gl1h8qS7Ln4hX&|RiHGlv%jo8ZKduXym`9?|u4udC9Scvz4!{7-7 zDe)d~7(9`b2MAy(z+J>NL?aVCL4B}#LI87ulvql`oWMV%G%zavnJ5^5B&ZH23ZOfZ zRS@VM$O*W>#sE|uAu$vWVlaCNNhJoe_kSoNxJ3~X19FopMUsmFwMj34GW}9U z3V;a;39!b%g-}rd&KPV>L?jjj`VEmA`Xvt94KYu}aR3Npb)+f+9>WDI!KsLwTevLE zQ*qed{$uhH8a`qGq6Uur2go~U0+Nq_K1N9i#*#lgh+9rzP27~BY=h+gMPd6-=}-Yu zg@CX}sslRmU%DT#f&?%CVWorc(j8tw35}r0xMV^AUV$;k2i!oBvm*oHT8Rca9CuVW z5EEJwMLXohg`K>%5(XA1gV+Q?8hKp>d|D!p1PD2Z16w!jX5d1YTOfeDVR#K~MreH` ziiE1jcVb@(#UZRGDIdsCq#+vR;6iE`1YnF2H(3k^8)1{-Lei2TAO$F<2)Rd6_t096 zTQTw(5UkZu6t*8URG1@x>PZ-AP+Swygxw8yy*PqPI^&X3L39WfY_iFY-0MGCaa8}I zt`T+^XeLqPzt&C8N@&wKBxF^LT62DSr42p*_N;@XURb<$g+cwPa@1S}B<^b9HZ zHV~MUj0>_PP?(^CB#;o5D}X|Tb3YK?I3^OH{GsX$7myA_lW_ILeLtxPV(U+;4soo} zqzIB2UP75E32GBTTuHEvz!P+aXdhTdkdLtjWJJ7+;PDjBDY%d(6$D@d2Mt0XJi?TT ze1wgHyBKWaiMuGAdLbM$Tu^!dsh87JAZ~;3Mav_)& zbV0CVH1ULLCy|ckK(quvKGdaP$neA#4y^D2#+M+46bf0iCJ=*%CIxr`s^H8-6DUY_ z=nZO-QaGMyLm=fOGT=gp69CN!a3QCO0g5w>9;{zb5J+4Q4aA^hH-*q(Kx#NFb3#&N zx=A732qOSd4-f=0L2HSs(QHbJhLVYBT=sCQPl^VOW+@t1Z6q4xh5$mR0)V$5Y<1y+ z;))0WW;7`pbpymVC87a~oD>a$0FLi~`b4xasU;ADS_VovQZ%V0aJ~m)fV**0G#--@ zWy44U04upAU^*v76Ys*Xk#ZvhDUlo4L>K{(m!ionff0qnLvl;-_>;&D!wAvjmVnAh ziiULw7H)D&B*-lREmIf)jY(zWaWhc}3NJ)2CPfn{vp7`1;BX_h zfV?C{g9OLurIx_5y%Y_L8oJxidY!IXdx0hi5K7tf&m3#`#?-pkbAJ=AO{gE z56o2J!~lc|S(1^bBg#vhNoW!m!&!o(2Kyph2vKT?;{ZS$afg))AZeiu05D5PPY9q= z0#XSLpTOtlu;h_yqag-3^u&qY)dU2SN2R);!1-pA#d>| zptGn*OTuOZk4k}a9UB88 zjI`vzcw-NsQ$#wJfxShO-xBc%vXT@6IOhg*UjmGLNkbqT7yeYT)FWaI1sak^;Ljb` zTxbA!%!znp0$c}yX#eAm^mt^Zh@S^FQL3G>|_d@n6a% z*NY^DX`&Bv0(TYog#WOAC3OV{5xexaI}SL`tp9L_qKGj8VS}`XCn*wSFVg8hwF>I| z7drmq`JcVTa*(0^)BT@K{*TXp)0(m0WIc|2|BvncM?d~q{(m}k{%1a{hZx#_+=-!u z_7L^M&@TDXwkw= zAzW}WLn$aph4HL~s0F{RfF~dxo_yf;5FoQ*RfjLQFoYLE7K0qcT^?L;*GNR;1s6+D z`yoJF$c4gmfha7L2woj8vq3WpT}zLr_4K>|lz0@pdDj|7f7?A=K8!J|xg zBJn*0pauyTabnaZKt#b4sBy%od?yd+@3f$4-9AcoXx7M2aV#ZZh~WZrf~bn< z5uv6NY4|b>FKH~nvJJ$-W@~kMZ3R(qlttIVjU>4#23NFa; zI7ku_x@dYt1p=Ea3jf$Kv;~vCcvw=FP#wczhYPeAgb2Xg3lg8@iHc!okZQ!{3g-$Q zKOb0-%yZCSr31ghz!HYs5G>zJQ{TzIc2~DhlaKOfJ}mVZ(4^im$*>h`@Bg zvjHLudC>MQLYP9K4H(8^G2fp&V5DElBY_4~1hq#&0DKPm5WIx#fp2Mran~k{Vg-i| zr5x#07Q2ST#B*7+_Co-P2{pmgBHsyH6*M2E4-yd97zr2xRJhRYjo-eC;MYNL!3y9; z+Pouo;|M?mjFlkL59u!m_DKn71K5^`6%*1)6AuFf^TUbJ>PQmN_%<*fMv4K8!|4_T zfC~886P5yjrB6~oI*AB^e1!|Cr?>+oUWK(2=L9BW8-Spg3l=iCpneJ?AqdkGE=Wou z8rV*7>BLAx5Ckk-fai!bq_ZF@;>3GEJ9q*zkuSNEA8> z+b)6|ApqubSmJ;pn1pp9(-1Y|M|7klm?E&UB7>sM0-E+;p79e@tc4KT*kYK}Z~-oX z_aT7Qpmha>37in%1-eS4A-{la9)ulc0>**M5>apof+yTK6KTX{i6~%|#xxihA`O;k z5wI4M2nIG?e8PY z$&`mPPaLKzS{~rCR4v#|h-#7burz#!XabliP}qSu$MW%$Y?LR&+?9lHafOkKgi+^0 zb`=H&0t**8GZ^0B3E2j^Aq=1OpoU5$FV%o$qQ!7YNQ0Dxj3|YLuz|=l#CO}UP(VPE zknd=Afp3ekvL%rW0bn%=kRfQ3fD0&j$OCAT!0+=QfYlR98x91@Rbk{JLX3++hj57i zx}i-D-vmPpDG^5>Mi)=Np=(eOFbrHEC($AN3J@3rtcjR}bpT^v;c)bU3I+r)Ke7cf z3bch(6`K7Z0(CpGHbKZYq&O%okP`@v3MK?_@X^LZkPrz9k`0CoSsb|xraCDN<}N;= zHH(ObPpDwNqU8n;c(EF+g8UgRG44w=AX$4zni-N7^6JAK`tgU*@L>VzYh_%Bq5DLu z;q^avU?rsSlHmegM?#P!GTcN#mBG(`p;Pb@)=g#+a=VB)=rFNZK>DA8als(Q7*5eh zECyc%fNc!45;UxU#tD)Q#uv~0vBi?4uj=ts2FrpwWWf1_G5|AxMU=dsC+{e6OMy!o za4kq;uuFhQM70Cj17CCK16RO^ih^7vrk*IsRuR;F2!_Y6A>j$+2$D+_)Lmi-vDu}w&guW%-xjetFa3l`&C$%<(bDcL7x@QC+yWZrXDywa9o@O)&FoFgxdl$RI5^mt z+nU=svkLx8G1%&*V&t7nF&#h7B7Xg3?u@@+!XCrVo{Sxim|LE;aE4_?TmXOLgjx5% z6c9LUV|><$Rh0Pg(}4r_=XLksHV~6=sVBCF;`&7DVPjiM8)y>#!it*|V`*a!+8PL0 zq89vdl&Z0<`9FV)h4Ckx9nGChEyzB}FiMluBKR~yK*`zI#?n;Y?yQYDtDwLM_}SKJ z&>;T$jn!Yj$`a68>WG*S{385sKdr-#E{()tOB-i%N9>ui`5|*tdoy!^W9D{eoh`uL z`uE?hTNxP{eP3omMcGAlaT&!jYT@O4|Ni%8*uDQ+wh%}j;iZazAz)u1`S;57PSKpa z^Nn$F$aDCiym;u-l&il55A3=|SJT3_!Y@9k)MO>E^e$GTLuPXS zH@EEFZLjWl#IcI4i@Cj%&)XwCpLcGdZFvwC->g$|8IM{mqxgzCtN6`#%AZHcEI5~Q zvG%Zi-=Frn=9Ht$ovH0>cYK--xGSfU410?+mIWMsxw*HkTzXbf!LwJu@j#eW4t3*rE&fERkQnj6sLOBTOH4l1KzIwA)-B9+XquP12j?+ zYi>~qt87p|*Esy9E+#WJ@H=DTpu**#gOWxD?Jg~^Jb6C%w>k~;=Nr#vvuv)sobz;r z{SW=uYAqM~ZJFhH_sMS&PN$fx52Df%^pg@`4VO1vJRJn*@vC0Fq<>ZUC8Ii>S+Od- zsQh{Q3hNH-{46T@z_*ge6d1)T*_~+4JXTIEayVAB;$*ec8QocpAME8SpzG-q?Hj zh|%Damxq6x6cEuWv#S=|Z6h9y7I{9xE@X+LIn_d}Tq)Jfe41*X!3E<>LE_%!A_OMXx;ANO9xFR{)^VS;0TSg*2*B&T;1*JIeTt+@JGDW3zd8w^lfAZ<+(WNJ&(J4nZ3A$-`k8P zy=2Qt^6Cq&Ek0gxV7K`9Wp>B8u0LX)qr7`UR;*Gv^L}HmsQ%{mL;2^AHs9%VjM@9_ zE7MpFTh>wCN~tdBrz#$K zSeYrTnrco=tZJW?Id4KQt(Qt$RY6boGCzewG*N-ZY1g)n2G{er2CDj3|77{OU-;OE zPb;NPhJ;?p2zq06Gm446q>M+yh3EEobc$`Y!MDgvipF`JoZXdkuUQsUTN=D17KaoV z_V({>+Pmk$>2cvXhc&yT=zaP%}S$pj^36Od11L@Pn^z| z4lAoT*?nycUxmJWbT#kq8?v=hq&dZ6JyWEf))%~jRo%(^d*>_j6SN~UTc$eXz=8>8Zp~=SB?47pZ1BF zDOs7?iTb!lBoiAo7beK;$XE3?0F=K?*$1!tvacj(<$ZBqyeTD$$R-@Lo{ zQM2sts*Ea`s(i7hs|=H~f;Yul3g?|-?w&Ip&6_a@4r>q%9TQYrotsepRd=x4Hh6BC zM2%2Ls-M_5ofVe3FD+>f(a8s!MX{8;<&l5zesjjP6sygPDGS`ec7bmkdEDNfyPL#V z$l><=k=~Iqha-~b8(XJzE4=nbOpWV(N-&$t5#3pAHuU(%m~u+diJwl*-`!r*7sRbU z<$wK1jECO4s0AJ>3p&2huzeGX$77m*uCuzLJ};RUTJtcjZd-EV5pf;6AUdr}s+~8k zjY$l6B}j7pKaHJbR9ws2t#S7RcL?t8?k<7g+Guch2oAwLxNC5C3GNo$-D%wAcFuRt zKKtzN{=8|bKeZAQ`fPcNr$BTmt+R{SgP3V zRQj}WdadzGSJJ^%t2=VP#Pn;H;CH%vO^)VrcwIo?gnhf53a#UKf9>zjJsyjFTGBh# z3|o)aqS^!XFAkP~&wiX{Hzjf8A*ipGvRAP^fiRR5lzph~FH{aSuV*Zr9UFicNht}* zpwQd1+2^<^eNutIKnTbeuLmuLwD^G7!)kLL7xD?q67J_9cp3fWbK{T`@Q~T5)TG<$ z$Xq@jbVwIUQxT>j+f|a!#{H_ri_lw{AuMG4igx(r`W;|kfqn)yBZ>oz|M%S)0bkn4p{8xE(cyuxiz&L7D!aBfIcJ>SPdANx8M`&OS*DXOIIsG3QU zIyB9d5KakZ;ebj$I>EX& zH!rs~H@<`CRX)Gdwe?URx5fQ)Yryd)G=Qte8!*ea@FfNn)?Ou$Mph<3J)cYjslL8M zL76VN9$i-KXGV{>dE&Afh;&7F?{JGkoD z_<;B8V`U?YkWfg<5$~GiOPs|lA;Xa3qpxvO z`m4&oSy=GFJx(j6)|Tg-y&+0lg_&Q=M{5`DGgRt- z#m#J@cb+Wm-h~&B8Le!mskN8uJ3CzM;E!2*@8#EQbhA@wkJSnu>TOan zct&7ZuIg>Y#y0J7@3Q}D0c$v-h$^~<*=Uir&Fg7kfIh-nxZ&y>)0ld<`|kvJYC@0S zh;g_fZOUodlG)`#RXy=8Q!w3KwOofpx#iTZ%r7P ze;f@}j6{caC#R~R%{ViNHK@rz2P2f=_e$v-%6odf7lcfe*zP$8GXkj%3r^&(c_Upv z{-})}JHeT9FwHDFIh1gcmr~l-x;rFI)eFEWC$2)i_#EUO1abFG00}yT;XeGAqQErL z;fC~9k>Pb{7qrRHFCpX@Yxf1%MN0Id6q>}&v>%W$l;vN@q1m**e2nTai%W*-uqKHz zNwI9=k&3P<9-<048K7~Dfuj_|ir&T_wk1_MkGQY6w=q-PEzgJwJ{#+H$eS}`y=sSB zgfdtBL64L#lQ(oj7L1)~XsnrhtgALin{gPVzyCF`N6p403fe5&Op@{vi1!fC5(ynt zlcOGnfVaCej=yE$l@3sH_(5k_4v*hY^VT?&g;67IN_NTRzW@9}J$X@FsPujqm5}Oh zgiF-iA)$IRT%akwe#dE0b7t~Q?M*M=w)~rYOSyy9IlFlwtUrC-)uMEX81{DX zy*se;3wd`bqSH)e)%9Hs7V>UQJL(lme_0>i*`%pIKBBy1Y=ThaXL*TF{s0xoMjDi9 z6|7i1txKUn5fsLj+lVke!6BOBM3;^3iWtLys@v$vfv%TZ8CDsUC7YpeG48+LdMBPT zg?U(h0)O-SY|9PG_4gh|ez=en5UNw{9k;=2RZ_zrH@l?5`J%bIy%-&uBaeWfNpkvQ zE4&E}Gr9JRvKEaNZ(veh|Cwy?=j7@Iui3zGsq0<-d?LnN_|48Bvj*0VECdMeD`mVT z3i#M*v%r~(6@%N_mlTaRFGK}j=t}!&CDj&@3%Y%=H{2hhj&<#~VX0Iu>rZv8xf5fXZCYcrpSBJjL#sv`2{+FALicz$X%Ogv~~ z&>nsn&Lx$NB+%+`!H?g@;j)KHZ19eQQf|-L(HkAug|8KJhllM9lajvhLnE{i1~xEs zOo*KrKGP{fN!PT(EN1e=@>J3LnB{@g1UJ49%dV?*W7X~m`>EgeB-V0>AGGvRNFV8m zxCt4p1bMDSNhQy3^I-%&ay~265?Imv+}UJCr?lm$IE*;vJZcPAK(tUVL{Iwk5$z-Ez*E>hWKc~ni+%)ofiO5)>t$-YZZ!DK*pGqqgZH>3Cbt4OG~gU6{1iY@xr~ zVIU{IUAo?OyC=YNY{P$%s%)=unY@j|&)zzq?dtHezjZ3(%JAO0c&h4B)%oD})}XgO z{+h1ydxSQWB2n9;qzhPK_YyK-S#pEPcVq9Fonv3BR3EShIvWv&^KW;Lyi48@h4;ln10Jqp8c-W9vR;}?< zvvQBB2y;3xz0+jllq?`32YZQHed8$G5NN9Uvm8rZsq{QU9_AZuHqyBrcee}WqTOw7 zSM1_21G`LIGrC{ai>Z{xvh-6fra7L#cWb*G(Q$lwKV9`K|Io`~&*xsX44>ds-;y6B zJ8G=DWkk-`1@ncHEU9nO2ghBi&xeZtS zT<%g56dp^`M{C21&a9wH&u&Cn(}%^@7&Kw=oiNAcsak!xtXrOAK2OYolyU{Qx)wDW zf?&Gr_hi<2e=jSR@%ckkWtMjC~my}6Umj3{X`Wn^c5p=GOVkCms|Vf+#CbP}AqD zX6CW08C`~}>>7rH?0ng~$uw&_*f(+ds3r0dqsOSmp{8u>8sB%V3Ri@MJ=pm5l14l% zd^mw?x`P0(H1)~?6ocO!6>lPJa#@$$M(Vi{g9Qy(25b}S)$X=bH34lW4ce&dhTr32=O3aM50~Jm6Lc|m949*2#<7~FS zPCuS@SR;f0;;rlQu#KU=c*qk%=*|!~CESL^LA*sTUi++~((I{^00^5Pzwv>W z^lzSHj~Yj)R)>t`LYNt(6Vk-X5Y~g*er~6IjUrwjCR}Ldp8|HkcM$#gGvs(K;7$T> zi)+RoSCh8itZxLO1V?dWsbma+rwRNagMdo-Mq*B%;om`mbJZu$hTxxSQBVr9m%7`y zSd>@|!Sek}yK!^i!@!!ruKmL`)2k~fUoi!HJ851aJ9FK7LZ%d+${RvGJ+i)xu`fGa z@|F(xeqWT{{lnHO~8+8p23C%XIyf_D2t4<6HFAoMx4!13sg{8=4wpF zjPT>OPGVJu@O?xbyH2|J=UeBYYT_H4&ux~aT?wrA$q`e&)4eW825KIfz&=48!%6B6 zsC3`Y;&UewYSXt^*W{Urprc?37P-#Nl2z+=Lh*YZM-%%;PyWyG_j=!NwQ{Ded6 zzb@0}?Gq*kzeQk;xr_b-_shIv(G8vsQnfz7i3leb2m*EKIH$0&>y0 zSoM>k1Wh-5lSvZaS@bp?7T?IsCU`5m;Ech2M}}Swh`|UZd3ec|a!BdpZWo041;ISY zif?6`gH4ZChN0u^(2U~}J1*VMh_$cvQD;~M^cFSoWza`$^crl3HsxqyCRc<{X^Y|; zX#MPB>CuZ(#WdS)VRMM}auNBM+YHMTC^N3M5m0F*4My*0B@9}=8CZ3?KKN(6w3s|N z1`;vfG1ZDXAU2)_kkL^$%UKltP<&a5c7z7oITJstm0^-MHf}x!v}8XIb1aWzgbWqa zIA$QKYQPd@&OI)wgHL>Xy1J%#5?ufnAS7hU&t9dPjBr?$I?W?kJo?1kv;9W#m7@U+ z`MAwFwDDVK{wW)u;X(`1Zrcjk=Or+C%+wnv!w*?@5bqck4a+5KtVaTdZ2N*pg54X? zNVl#d#v$cIC6K;5?M{IUEg7rG0{y4W1+TQ{c)~p9uFUPPMhEoeDHOIGd^i{V5Fs^j zk`Gxq=-PO@3q~2m6~!c3`h}NxsqfA4iU!axGkUH_ZTE*6ub~+u&K_aZ?(b%YWE;_;Axxt%?^>&P(No`J13)ii z`F%OX(FZ_t>K1mrY@GE3X2du#u3!86 z8aYJn``dw;2O{=BqqG6$@tgEh6XX~d20!2*z1vQ_Q<1o?L$rS5dS9@jfii#&_~wA& zBF%U_M17p#RT5Bw+OivA*&P!XdJfSAiE9gdlM$xR+9CBqd%;k#L(L)%<^S5FCV{}Q z=wixhB2+i{boPi)aoN#D+3JpB(J*k&35mM%$Od-r0nF|W?QuDLXBiNHd`r6Rw1Zw& z0;|eji@GE4X5|+`RfO7r`UKX?(wW?IJCp;QdgnEGd*1nq%Q5=(kOyWJe0}pZr1`7s z#5Ka{>%9HMyKMQ&1}K=d7P2!{P<(A+|LyLv%#I+`A?wvPjI0ioV^6sy>HE67thmIna4Yp9F%jfipu>VMhtatnws^g1n$EjCurcRQR8Y-0k$8_>TClLj< z7}EQ`o-VHooBB}yJLa6l01pB;4TAGlv7t7B&3ua(nERKATSxHdGTxnsru!@}plu?I z^o$Iv@F5yt`D5&uri4Y0G&UR@Xwhyl1Tr~2V1;Dr{*W8i-<3c z;QgXSAx9^p&2-mpyQAH5`%bnMhHh zCHN!lPldbG>v8$RYV-Rkw9Plf#ikTHxfN0e*7wP#Cm$wlcn?-peH8q?yDPH0u7+AHB|wv&TxF#z8C zF339}b{Tp|v#3D8<@2vr_QDy_PR^e98bcglT>y39WD>7jn(RUQa@AJ5xgyo-mh-xw zN9=;sCC-RWA~_>O1}PC$;B^w@fOfI6FWdPc{VHaLNDWq6X;w0h@|SbvTeC7xu~h_S zxScY|4o{CFTtEGG3j|hsVnw(mfRA4^j0v$!U@f6viFatcm-CL0k@0_ zzdRYB*m@Ag+Eg3}w81w!`K^BpXx`=mx1M1Q+aEXd-lg>YcylgRN{R_(axz|U*tJil z+~E7mQ>F*8BB5UwGacR`awZ@{L}w?JS+Ly7Dej>}^csBvNwUuvMC5&K(RS+?-~(Rb zts=?QThw->lMK+H9-+Am2}+mGFrgkhmT@-1NQQ`~{T&Ll4_-)yChY(O`2i$;YW4&d zO74RLF`G86_;&&yfRnw^LH$P&T_Nx8218#Hd?yp11s1`wzzx1(Kze6oM6xzizeDl~ zd$3&ss@J4nUwn79FCdi*pSN2tHJmpPX3f2`D>v$4@1lgC+BP%Jm2Ss7o4^~f7cKTR z%%9eN4iXux=nAeYOsdSStVGuLOezbZHs+;1_(pkS-c4@$*#C}p>2dN6U-^26 zcoVe>8nYTYVK;Y*~EehS6z9g4vdtBbJqqF^_!On`v40 zB1;vrC_Y6sg&@o1EgtQj>6lT+t~HiNdIx^EoqN%AD8{dF@33;(q~)|YdZe#Bz=GtP z0N8?iSY58iPVzm9WKG@v5P6Tw8_A`U$rdeI0`&BW^~G@Tp%d8WSG@kk;k@`t01%Lw z3)Ap8H#r8<=NY}N%va=wIk7qW*K8rP&pne~os<@HORbSLOt}D+apzA_y6gGO#Z8%a;5N{4t(^6a{;5{$2A7ker2BGder`5kI|v z>vt=8mzs%6TtaXi;~x zym?l!vmWxG#etQ@Gy-k+`YPc3xe9EfFn2$CQsS-6u&Fb~yNlakO<|YAhW)V%O6eQ! z6Q5rK;>~+eM61v38N6O6{JnDJuUf5gDP-cWzxfKxYZcW!)vQjEIdf0u9>W{0AfMQh z_V^;%;^U@zJF~297Jez-&rW#|Z$}FTw+i^5oE+vzEZt5~UpJ^P$DX+YvJdJ8w3#eE zwDJZk6dEKrmv@?X&b4}4b}O(f2nsd`>usOmWMq9Oi(dy9OYKttMd3`JyCo>!4 z-mL`omxsu%DGcB(N>b3O*>G`Sk(5lb9G;Ac?%~W8dG%n53GRO0eUM%Dy$O8&8~^I2 zy@sh?bg&IXQja?}GM!I>$&1VV!n6VQ*crjTfB=hGm*4F9?fK5_`Dj#{n+`w;#_fv! zqGD9nX?2mf-xT?oDsh~-S#v?7o6&x?I=M%0xWD6dCM)C`D*mLN7xw2Rr>T4zkZebE z$z$n>Xfx`jG-SZQ%BS7(>BXbz*u@dg^82*DIZKS<=?3o3^A)*iz4~JS?Fe8apn3HE zh4a#_%(nE=1bRXNWdpfS26nHF+ll6D2Tiuyeh-y5Blcq3 zZ{GXjz-p#XflW53A)`56Jce!4E9C%ltL^N=mwkuF&V@IGYl{Mcd1PbeJ?dB1z^@|F zKHwX<*vz54UI=UBEWK~&^_VxXC(tg~VXS?y)oF^FDXd=RGp~$!6nPjYP?{e~eRu~T&upABU0xx#n3;9nVMz-*e=N#}SBG_YG;-avF+3*hX2uw%!x=xX+dyx$M zwQ%e($E%Z-?b_15SGeW4)yBTVxx>BJ8O`>%SHttmzN-0>PYiQWqgwml=v1Th3)kE> z7$t>th00Q!5$52qJ0P7MIZ~+;M#Wr@k|GGD&pwDw9|+ zIg2zEc0QVtjhkjnQm1`UP~n24PeGnot0i^Lg82^r8`^6bel@y7&}bdCJbxWVlc5Fo zXlGt9ZEW$NRINsZbFm2mkSW04`^a+ZnwEpQKFISB2E(gysAZ0Z*=iaFXbYd50qeGF z`^qAv-{11HT5;qgPwq*VsF~9)z^}7tem{opAe#_19>}1I3`d#qf?3)A@9xuj`X0 zlcxhpXx(()_uVSmdq&K&;tBq)G zQ;yQJSi`dpo>i1;$f_pOqJ;cv{KYCR-e~OvJF0Yl>!S~ zS8KOw^qUgygABx5!0rxP{PU1J+rt4tzvv>wT~E5s^+CT@J?6JAyIpf58~>jtHr@(; ztM5R?2(~N2MU9ZP$%4sWenj4om$%=#C63syU^1_l$(O~wR|J{^8S}~bLdZE?Kf_(p z?Rp|vp&t0Q3AEzYluGtV_C4PB6K$RPq2{l3g*%ldhdwYF<4$~6eBRDdqdSgp65L*A zMSo`9pTa}8l8{gGf|XcLFe?LU+N5}k120VeI42_hq^O3pVN5q zaZsd%>vb+Vffb8P5m9GVFXK5u$vZF%`w~AhC8KUH7xgIj=ab}tXz>JT@x<+3x@E%& zW_iNv555|zE^!K61$Kv*bqO_^0im6yt4`GjZwHvi1s;P_5992_>mVNOK(=Y(aGwYL zO8_nanJQQgBx4A$>BctjE^XN-1S1ZCpUV<+1tLXm?t;W zmu(w!ZL4!_Fw-`b#fRS-!Oe3K%3SWA^A}d_P~rM`N4Z5dKDcq_#@(@w%q>5MtcvMF znRiciuWS-D3*X!u7%8UrHAilQK1tW}{BQu@amk=`2j-QYliztru$4v#$d5zZoXLRC zB<%190%iLyZM9_t5tiG)l6)Ht^RpG|vEKyx7^d1nLBH$fDpP+%2p0YSdUzr34y!%S z6`B@(V)O`0$R0VeC0jt%eM|(;rcU>TD~)@wiC0}D(ngJmdrg-sCeX>Z9w1nOUO8B_ zU3`o_%Uz-mh#%t+sUJRfv6d8ZU9I66F>tj;J_2$#Mg+W24!ZVc9W5TB8py&9=TNIp zS*Jn%jN?@0yK$7A!kQ98o%xbl3#E^3O{x>OPAZp3N~M_Tj`US{8Rj=I*Y>DEtSSG7 zbBHrBviDqAPo+^T*%Dfywu3X#1FSWIlbk{1-Y>0_fISbh?f@qWe>G0$@D`_q$j`_KFaCyyN}4^>>k zHOZgTvvbSyZ^Bj!X5o!{cnIy&%`h6C2(<_v(!<9}RisdJ_azVbxm>F7c;h#2lI_p4^=FBrJ3pg}ij=C_ z+Zj{W8fe#=C8yKfT09->$yygf$=@G&+2}m!vwrSvEA8j)=#b+2`Fq3h@t!SEe#WpL zKP%{~7xq)(Ugj!q3A5A%{16xLkq3PFqR5^#JnJ0^QE=V#sN;&__fv?EY8ksL!Jw$u z5Xa($HH+&3zdq0a1AwB1{M60NjXdxz-Qd?XZ&t($+2ezi8cG>x_>jGZNbV0-vA(_{ zed091ddS>eU`Gd4+jboYM>_{bnFj~c4F;O(*ZF}nVTpVpg1sz7@=lS$w(R|Wwt6%@ z-w^;sHF+WRqT2FF+PNHn#;lpE@?b*G@9(V}VTaEgPPFxxkxvGf!O_A7f@SXRZrNh57lt(A~eGT(xYa@Hi$S2E}vQSe%%c zsXGkIa2%V25=krz#`36Nd5F3mQ3)AdZ_z;8=Ghc6FWjAhSfn3az89_oMfXPzI()y1twsvl@iWh0c)bOSH6b2S7Qt^Ux%7T89P)6d5(GqR_q3^un+Ka8Noh8g zaO4=kze)PB{n%#qBPN*fvnWd}x5|tG_{zhlD&>*J8w0;KC|g5FdxMUdvmyxYZwX%dQ zMgI;eQ~Gq7du!|mABM|WqXPV+SLc&^P`ueuH{ z54H~ds+E%~MlG@ zF{Q+|Bktw;_=qOCrHm()r6Ys_(nW1SGa&=JRL)}tdALkkZ>H`ltB9DT(ThPf;pK!z zGD?9a8B3M^H$DDsZ&oxl<34L2o>Mh}tbzcEL zZ2N(*@}sV7IwKTxU?dWur!1Yiw6uc+d`eY^U(k`jT+IYAF>l@ZsIhEru_$oZr%XMkTYoTP6Ep#Vd+Sp^?M6?kw9ddS>OfK*G9sT|C>dA#?$~?=4j<8o_Vf z>daupWd*b?Wo5GG;1Y}ow2heRwDCMsG9;;+!tV)MU;InIP$Zf2%zWw>v0)rJAuo7ky-^JtawbL? zrbNtiW$ajaG98wmi@3M6>FwrUw&JlV?_tD46gty9^i7meT;VK*-^rJ`T5N}Vt)!jRFvSd{UnUb?%B4!3HBJQ z_*3+PHYLDd<2AA$n}jI8gc={MVWFh-E5w`6+n@}8|4+mCCzkwijNlZg%CPuZxgGPeSP|7=BdT2QJ8iGIUxI%;647hZyB4CZFwV7R~xa z2YeBk!G5Zrkp4f|2X{wPGh_r11OmGIYXc!Zf5HSo1_&JemjR;sK-e9KMftOl*dil< za$Np0{t(uG86dXi-v$Uq12G%_ZUI7v|1$oNc7GWlQszGnh*kTW^S5696^`+rHh=Ht zPh`}8oWJ+;ht&Sd`4bTJ?-777#lP(gh=lo%1Ara-}->g5`3*7%68RwsfhQCbE6Hw+U2nqb#zW-khl;ZZk>i#UD@sGBkc)`CNo&Rae z^JmG9f7J1Sa+Uv~f%s1ltM%V?APvMa{zC(0zx{1?{HqU8oD2w$`)A!BIPAYP5U}+p z3gaKzzoMZ3sr^CU{;B;T_y1c1#dv^#!hdRi$j^Uh+<$UH{+9;gQ2(KUa=-tvAE4}; zKS14o*MT$;Df$l$bUOWWe4rdx5R3WWbs!DI;QdqkUo#YxB>N}M?5{d!MH z&(HMP($n-0^u@`fYG(%m&OmUKD%1Zgvjv)Y|9T;=!!N?dAqvXi7X34yL_xu<+^irn z5_D!uvWfGEi?ebG@{6#Fa`8w=fCO$ bv_decide/by sorry/g' "$sha3" + sed -i '' 's/by hax_mvcgen \[[^]]*\] <;> bv_decide/by sorry/g' "$sha3" + sed -i '' 's/by hax_construct_pure <;> rfl/by sorry/g' "$sha3" + + # squeeze_state: the output parameter is RustSlice u8 but update_at_usize + # is only defined for RustArray. Rename the slice calls to update_at_usize_slice. + # Inside squeeze_state, `output` is a RustSlice, so all update_at_usize on it + # need the slice variant. + python3 -c " +import re, sys +t = open(sys.argv[1]).read() +# In squeeze_state, update_at_usize is called on 'output' which is a RustSlice. +# The Hax library only defines update_at_usize for RustArray, so we rename +# these calls to the slice-specific version defined in Stubs.lean. +# We match inside the squeeze_state definition (between 'def squeeze_state' and +# the next 'end' or 'def') and replace all occurrences. +def patch_squeeze(m): + body = m.group(0) + return body.replace( + 'rust_primitives.hax.monomorphized_update_at.update_at_usize', + 'rust_primitives.hax.monomorphized_update_at.update_at_usize_slice') +t = re.sub( + r'def squeeze_state.*?(?=\nset_option|\ndef )', + patch_squeeze, + t, flags=re.DOTALL) +open(sys.argv[1],'w').write(t) +" "$sha3" + + # Remove sorry'd @[hax_spec] definitions that block mvcgen from using + # our proven @[spec] triples. The hax-generated specs have + # `ensures := fun _ => pure True` which is uninformative. + python3 -c " +import re, sys +t = open(sys.argv[1]).read() +# Remove all @[hax_spec] attributes — the generated specs have sorry proofs +# and block mvcgen from using our proven @[spec] triples. +t = t.replace('@[hax_spec]', '-- @[hax_spec] -- removed by patch') +open(sys.argv[1],'w').write(t) +" "$sha3" + + # Remove broken createi definition (our Stubs.lean provides it). + python3 -c " +import re, sys +t = open(sys.argv[1]).read() +t = re.sub( + r'-- Utility function to create.*?end hacspec_sha3', + 'end hacspec_sha3', + t, flags=re.DOTALL) +open(sys.argv[1],'w').write(t) +" "$sha3" +} + +function help() { + echo "Hacspec SHA3 script to extract Rust to F* and Lean via hax." + echo "" + echo "Usage: $0 [COMMAND]" + echo "" + echo "Commands:" + echo "" + grep '[#]>' "$SCRIPT_PATH" | sed 's/[)] #[>]/\t/g' + echo "" +} + +function cli() { + if [ -z "$1" ]; then + help + exit 1 + fi + + case "$1" in + --help) #> Show help message + help;; + extract) #> Extract the F* code for the proofs. + extract_all + msg "$GREEN" "done" + ;; + extract_lean) #> Extract Lean code for the proofs. + extract_all_lean + msg "$GREEN" "done" + ;; + prove) #> Run F*. This typechecks the extracted code. To lax-typecheck use --admit. + shift 1 + prove "$@";; + *) + echo "Invalid option: $1" + help + exit 1;; + esac +} + +init_vars +cli "$@" diff --git a/specs/sha3/proofs/fstar/extraction/Hacspec_sha3.Keccak_f.fst b/specs/sha3/proofs/fstar/extraction/Hacspec_sha3.Keccak_f.fst new file mode 100644 index 0000000000..513716ce7a --- /dev/null +++ b/specs/sha3/proofs/fstar/extraction/Hacspec_sha3.Keccak_f.fst @@ -0,0 +1,162 @@ +module Hacspec_sha3.Keccak_f +#set-options "--fuel 0 --ifuel 1 --z3rlimit 80" +open FStar.Mul +open Core_models + +/// Read lane `A[x, y]`. +let get (state: t_Array u64 (mk_usize 25)) (x y: usize) + : Prims.Pure u64 (requires x <. mk_usize 5 && y <. mk_usize 5) (fun _ -> Prims.l_True) = + state.[ (mk_usize 5 *! y <: usize) +! x <: usize ] + +/// Round constants `RC[ir]` for `ir = 0..23` — FIPS 202, Algorithm 5. +let v_ROUND_CONSTANTS: t_Array u64 (mk_usize 24) = + let list = + [ + mk_u64 1; mk_u64 32898; mk_u64 9223372036854808714; mk_u64 9223372039002292224; mk_u64 32907; + mk_u64 2147483649; mk_u64 9223372039002292353; mk_u64 9223372036854808585; mk_u64 138; + mk_u64 136; mk_u64 2147516425; mk_u64 2147483658; mk_u64 2147516555; + mk_u64 9223372036854775947; mk_u64 9223372036854808713; mk_u64 9223372036854808579; + mk_u64 9223372036854808578; mk_u64 9223372036854775936; mk_u64 32778; + mk_u64 9223372039002259466; mk_u64 9223372039002292353; mk_u64 9223372036854808704; + mk_u64 2147483649; mk_u64 9223372039002292232 + ] + in + FStar.Pervasives.assert_norm (Prims.eq2 (List.Tot.length list) 24); + Rust_primitives.Hax.array_of_list 24 list + +/// Rotation offsets for ρ step — FIPS 202, Algorithm 2 / Table 2. +/// Indexed as `RHO_OFFSETS[5*y + x]`. +let v_RHO_OFFSETS: t_Array u32 (mk_usize 25) = + let list = + [ + mk_u32 0; mk_u32 1; mk_u32 62; mk_u32 28; mk_u32 27; mk_u32 36; mk_u32 44; mk_u32 6; mk_u32 55; + mk_u32 20; mk_u32 3; mk_u32 10; mk_u32 43; mk_u32 25; mk_u32 39; mk_u32 41; mk_u32 45; + mk_u32 15; mk_u32 21; mk_u32 8; mk_u32 18; mk_u32 2; mk_u32 61; mk_u32 56; mk_u32 14 + ] + in + FStar.Pervasives.assert_norm (Prims.eq2 (List.Tot.length list) 25); + Rust_primitives.Hax.array_of_list 25 list + +/// θ step — FIPS 202, Algorithm 1. +/// C[x] = A[x,0] ⊕ A[x,1] ⊕ A[x,2] ⊕ A[x,3] ⊕ A[x,4] +/// D[x] = C[x−1 mod 5] ⊕ rot(C[x+1 mod 5], 1) +/// A′[x,y] = A[x,y] ⊕ D[x] +let theta (state: t_Array u64 (mk_usize 25)) : t_Array u64 (mk_usize 25) = + let (c: t_Array u64 (mk_usize 5)):t_Array u64 (mk_usize 5) = + Hacspec_sha3.createi #u64 + (mk_usize 5) + #(usize -> u64) + (fun x -> + let x:usize = x in + ((((get state x (mk_usize 0) <: u64) ^. (get state x (mk_usize 1) <: u64) <: u64) ^. + (get state x (mk_usize 2) <: u64) + <: + u64) ^. + (get state x (mk_usize 3) <: u64) + <: + u64) ^. + (get state x (mk_usize 4) <: u64) + <: + u64) + in + let (d: t_Array u64 (mk_usize 5)):t_Array u64 (mk_usize 5) = + Hacspec_sha3.createi #u64 + (mk_usize 5) + #(usize -> u64) + (fun x -> + let x:usize = x in + (c.[ (x +! mk_usize 4 <: usize) %! mk_usize 5 <: usize ] <: u64) ^. + (Core_models.Num.impl_u64__rotate_left (c.[ (x +! mk_usize 1 <: usize) %! mk_usize 5 + <: + usize ] + <: + u64) + (mk_u32 1) + <: + u64) + <: + u64) + in + Hacspec_sha3.createi #u64 + (mk_usize 25) + #(usize -> u64) + (fun idx -> + let idx:usize = idx in + (state.[ idx ] <: u64) ^. (d.[ idx %! mk_usize 5 <: usize ] <: u64) <: u64) + +/// ρ step — FIPS 202, Algorithm 2. +/// A′[x,y] = rot(A[x,y], offset(x,y)) +let rho (state: t_Array u64 (mk_usize 25)) : t_Array u64 (mk_usize 25) = + Hacspec_sha3.createi #u64 + (mk_usize 25) + #(usize -> u64) + (fun idx -> + let idx:usize = idx in + Core_models.Num.impl_u64__rotate_left (state.[ idx ] <: u64) (v_RHO_OFFSETS.[ idx ] <: u32) + <: + u64) + +/// π step — FIPS 202, Algorithm 3. +/// A′[x,y] = A[(x + 3y) mod 5, x] +let pi (state: t_Array u64 (mk_usize 25)) : t_Array u64 (mk_usize 25) = + Hacspec_sha3.createi #u64 + (mk_usize 25) + #(usize -> u64) + (fun idx -> + let idx:usize = idx in + let y:usize = idx /! mk_usize 5 in + let x:usize = idx %! mk_usize 5 in + get state ((x +! (mk_usize 3 *! y <: usize) <: usize) %! mk_usize 5 <: usize) x) + +/// χ step — FIPS 202, Algorithm 4. +/// A′[x,y] = A[x,y] ⊕ (¬A[(x+1) mod 5, y] ∧ A[(x+2) mod 5, y]) +let chi (state: t_Array u64 (mk_usize 25)) : t_Array u64 (mk_usize 25) = + Hacspec_sha3.createi #u64 + (mk_usize 25) + #(usize -> u64) + (fun idx -> + let idx:usize = idx in + let y:usize = idx /! mk_usize 5 in + let x:usize = idx %! mk_usize 5 in + (get state x y <: u64) ^. + ((~.(get state ((x +! mk_usize 1 <: usize) %! mk_usize 5 <: usize) y <: u64) <: u64) &. + (get state ((x +! mk_usize 2 <: usize) %! mk_usize 5 <: usize) y <: u64) + <: + u64)) + +/// ι step — FIPS 202, Algorithm 6. +/// A′[0,0] = A[0,0] ⊕ RC[ir] +let iota (state: t_Array u64 (mk_usize 25)) (round: usize) + : Prims.Pure (t_Array u64 (mk_usize 25)) (requires round <. mk_usize 24) (fun _ -> Prims.l_True) = + let state:t_Array u64 (mk_usize 25) = + Rust_primitives.Hax.Monomorphized_update_at.update_at_usize state + (mk_usize 0) + ((state.[ mk_usize 0 ] <: u64) ^. (v_ROUND_CONSTANTS.[ round ] <: u64) <: u64) + in + state + +/// Keccak-f[1600] permutation — FIPS 202, Algorithm 7. +/// Rnd(A, ir) = ι(χ(π(ρ(θ(A)))), ir) +let keccak_f (state: t_Array u64 (mk_usize 25)) : t_Array u64 (mk_usize 25) = + let state:t_Array u64 (mk_usize 25) = + Rust_primitives.Hax.Folds.fold_range (mk_usize 0) + (mk_usize 24) + (fun state temp_1_ -> + let state:t_Array u64 (mk_usize 25) = state in + let _:usize = temp_1_ in + true) + state + (fun state round -> + let state:t_Array u64 (mk_usize 25) = state in + let round:usize = round in + iota (chi (pi (rho (theta state <: t_Array u64 (mk_usize 25)) <: t_Array u64 (mk_usize 25) + ) + <: + t_Array u64 (mk_usize 25)) + <: + t_Array u64 (mk_usize 25)) + round + <: + t_Array u64 (mk_usize 25)) + in + state diff --git a/specs/sha3/proofs/fstar/extraction/Hacspec_sha3.Sha3.fst b/specs/sha3/proofs/fstar/extraction/Hacspec_sha3.Sha3.fst new file mode 100644 index 0000000000..026e00f0f3 --- /dev/null +++ b/specs/sha3/proofs/fstar/extraction/Hacspec_sha3.Sha3.fst @@ -0,0 +1,56 @@ +module Hacspec_sha3.Sha3 +#set-options "--fuel 0 --ifuel 1 --z3rlimit 80" +open FStar.Mul +open Core_models + +let v_SHA3_224_RATE: usize = mk_usize 144 + +let v_SHA3_256_RATE: usize = mk_usize 136 + +let v_SHA3_384_RATE: usize = mk_usize 104 + +let v_SHA3_512_RATE: usize = mk_usize 72 + +let v_SHAKE128_RATE: usize = mk_usize 168 + +let v_SHAKE256_RATE: usize = mk_usize 136 + +/// SHA-3 domain separation byte (0x06 = 0b0110: two-bit suffix "01" + first bit of pad10*1). +let v_SHA3_DELIM: u8 = mk_u8 6 + +/// SHAKE domain separation byte (0x1F = 0b11111: four-bit suffix "1111" + first bit of pad10*1). +let v_SHAKE_DELIM: u8 = mk_u8 31 + +/// SHA3-224 — FIPS 202, Section 6.1. +let sha3_224_ (message: t_Slice u8) : t_Array u8 (mk_usize 28) = + Hacspec_sha3.Sponge.keccak (mk_usize 28) v_SHA3_224_RATE v_SHA3_DELIM message + +/// SHA3-256 — FIPS 202, Section 6.1. +let sha3_256_ (message: t_Slice u8) : t_Array u8 (mk_usize 32) = + Hacspec_sha3.Sponge.keccak (mk_usize 32) v_SHA3_256_RATE v_SHA3_DELIM message + +/// SHA3-384 — FIPS 202, Section 6.1. +let sha3_384_ (message: t_Slice u8) : t_Array u8 (mk_usize 48) = + Hacspec_sha3.Sponge.keccak (mk_usize 48) v_SHA3_384_RATE v_SHA3_DELIM message + +/// SHA3-512 — FIPS 202, Section 6.1. +let sha3_512_ (message: t_Slice u8) : t_Array u8 (mk_usize 64) = + Hacspec_sha3.Sponge.keccak (mk_usize 64) v_SHA3_512_RATE v_SHA3_DELIM message + +/// SHAKE128 — FIPS 202, Section 6.2. +/// FIPS 202 places no upper bound on the output length `N`. +/// The `N < usize::MAX - 200` precondition is a Rust implementation artifact +/// to prevent arithmetic overflow during squeeze-loop bound computation. +let shake128 (v_N: usize) (message: t_Slice u8) + : Prims.Pure (t_Array u8 v_N) + (requires v_N <. (Core_models.Num.impl_usize__MAX -! mk_usize 200 <: usize)) + (fun _ -> Prims.l_True) = Hacspec_sha3.Sponge.keccak v_N v_SHAKE128_RATE v_SHAKE_DELIM message + +/// SHAKE256 — FIPS 202, Section 6.2. +/// FIPS 202 places no upper bound on the output length `N`. +/// The `N < usize::MAX - 200` precondition is a Rust implementation artifact +/// to prevent arithmetic overflow during squeeze-loop bound computation. +let shake256 (v_N: usize) (message: t_Slice u8) + : Prims.Pure (t_Array u8 v_N) + (requires v_N <. (Core_models.Num.impl_usize__MAX -! mk_usize 200 <: usize)) + (fun _ -> Prims.l_True) = Hacspec_sha3.Sponge.keccak v_N v_SHAKE256_RATE v_SHAKE_DELIM message diff --git a/specs/sha3/proofs/fstar/extraction/Hacspec_sha3.Sponge.fst b/specs/sha3/proofs/fstar/extraction/Hacspec_sha3.Sponge.fst new file mode 100644 index 0000000000..48d7dc8bf5 --- /dev/null +++ b/specs/sha3/proofs/fstar/extraction/Hacspec_sha3.Sponge.fst @@ -0,0 +1,296 @@ +module Hacspec_sha3.Sponge +#set-options "--fuel 0 --ifuel 1 --z3rlimit 80" +open FStar.Mul +open Core_models + +/// XOR a block of message bytes into the state (little-endian, lane-interleaved). +/// Corresponds to the `S ⊕ (Pi || 0^c)` step of Algorithm 8. +let xor_block_into_state (state: t_Array u64 (mk_usize 25)) (block: t_Slice u8) (rate: usize) + : Prims.Pure (t_Array u64 (mk_usize 25)) + (requires + rate <=. mk_usize 200 && (rate %! mk_usize 8 <: usize) =. mk_usize 0 && + (Core_models.Slice.impl__len #u8 block <: usize) >=. rate) + (fun _ -> Prims.l_True) = + Hacspec_sha3.createi #u64 + (mk_usize 25) + #(usize -> u64) + (fun i -> + let i:usize = i in + if i <. (rate /! mk_usize 8 <: usize) <: bool + then + (state.[ i ] <: u64) ^. + (Core_models.Num.impl_u64__from_le_bytes (Core_models.Result.impl__unwrap #(t_Array u8 + (mk_usize 8)) + #Core_models.Array.t_TryFromSliceError + (Core_models.Convert.f_try_into #(t_Slice u8) + #(t_Array u8 (mk_usize 8)) + #FStar.Tactics.Typeclasses.solve + (block.[ { + Core_models.Ops.Range.f_start = mk_usize 8 *! i <: usize; + Core_models.Ops.Range.f_end + = + (mk_usize 8 *! i <: usize) +! mk_usize 8 <: usize + } + <: + Core_models.Ops.Range.t_Range usize ] + <: + t_Slice u8) + <: + Core_models.Result.t_Result (t_Array u8 (mk_usize 8)) + Core_models.Array.t_TryFromSliceError) + <: + t_Array u8 (mk_usize 8)) + <: + u64) + <: + u64 + else state.[ i ] <: u64) + +/// Extract `len` bytes from the rate portion of the state (little-endian, lane-interleaved). +/// Corresponds to `Trunc_r(S)` in Algorithm 8. +let squeeze_state + (v_OUTPUT_LEN: usize) + (state: t_Array u64 (mk_usize 25)) + (output: t_Array u8 v_OUTPUT_LEN) + (out_offset len: usize) + : Prims.Pure (t_Array u8 v_OUTPUT_LEN) + (requires + len <=. mk_usize 200 && + (Core_models.Slice.impl__len #u8 (output <: t_Slice u8) <: usize) >=. len && + out_offset <=. + ((Core_models.Slice.impl__len #u8 (output <: t_Slice u8) <: usize) -! len <: usize)) + (fun _ -> Prims.l_True) = + let (bytes: t_Array u8 (mk_usize 200)):t_Array u8 (mk_usize 200) = + Hacspec_sha3.createi #u8 + (mk_usize 200) + #(usize -> u8) + (fun i -> + let i:usize = i in + (Core_models.Num.impl_u64__to_le_bytes (state.[ i /! mk_usize 8 <: usize ] <: u64) + <: + t_Array u8 (mk_usize 8)).[ i %! mk_usize 8 <: usize ] + <: + u8) + in + let output:t_Array u8 v_OUTPUT_LEN = + Rust_primitives.Hax.Monomorphized_update_at.update_at_range output + ({ + Core_models.Ops.Range.f_start = out_offset; + Core_models.Ops.Range.f_end = out_offset +! len <: usize + } + <: + Core_models.Ops.Range.t_Range usize) + (Core_models.Slice.impl__copy_from_slice #u8 + (output.[ { + Core_models.Ops.Range.f_start = out_offset; + Core_models.Ops.Range.f_end = out_offset +! len <: usize + } + <: + Core_models.Ops.Range.t_Range usize ] + <: + t_Slice u8) + (bytes.[ { Core_models.Ops.Range.f_start = mk_usize 0; Core_models.Ops.Range.f_end = len } + <: + Core_models.Ops.Range.t_Range usize ] + <: + t_Slice u8) + <: + t_Slice u8) + in + output + +/// Absorb one full block: XOR it into the state, then apply Keccak-f. +/// Corresponds to one iteration of the absorb loop in Algorithm 8 (step 6). +let absorb_block (state: t_Array u64 (mk_usize 25)) (block: t_Slice u8) (rate: usize) + : Prims.Pure (t_Array u64 (mk_usize 25)) + (requires + rate <=. mk_usize 200 && (rate %! mk_usize 8 <: usize) =. mk_usize 0 && + (Core_models.Slice.impl__len #u8 block <: usize) =. rate) + (fun _ -> Prims.l_True) = + let state:t_Array u64 (mk_usize 25) = xor_block_into_state state block rate in + Hacspec_sha3.Keccak_f.keccak_f state + +/// Build the padded last block: copy remaining message bytes, add the +/// domain-separation byte `delim`, and set the final bit of pad10*1. +/// Returns a `rate`-byte buffer ready to be absorbed via `xor_block_into_state`. +let pad_last_block (message: t_Slice u8) (msg_offset remaining rate: usize) (delim: u8) + : Prims.Pure (t_Array u8 (mk_usize 200)) + (requires + rate >. mk_usize 0 && rate <=. mk_usize 200 && (rate %! mk_usize 8 <: usize) =. mk_usize 0 && + remaining <. rate && + msg_offset <=. (Core_models.Slice.impl__len #u8 message <: usize) && + remaining <=. ((Core_models.Slice.impl__len #u8 message <: usize) -! msg_offset <: usize)) + (fun _ -> Prims.l_True) = + let buffer:t_Array u8 (mk_usize 200) = Rust_primitives.Hax.repeat (mk_u8 0) (mk_usize 200) in + let buffer:t_Array u8 (mk_usize 200) = + Rust_primitives.Hax.Monomorphized_update_at.update_at_range buffer + ({ Core_models.Ops.Range.f_start = mk_usize 0; Core_models.Ops.Range.f_end = remaining } + <: + Core_models.Ops.Range.t_Range usize) + (Core_models.Slice.impl__copy_from_slice #u8 + (buffer.[ { + Core_models.Ops.Range.f_start = mk_usize 0; + Core_models.Ops.Range.f_end = remaining + } + <: + Core_models.Ops.Range.t_Range usize ] + <: + t_Slice u8) + (message.[ { + Core_models.Ops.Range.f_start = msg_offset; + Core_models.Ops.Range.f_end = msg_offset +! remaining <: usize + } + <: + Core_models.Ops.Range.t_Range usize ] + <: + t_Slice u8) + <: + t_Slice u8) + in + let buffer:t_Array u8 (mk_usize 200) = + Rust_primitives.Hax.Monomorphized_update_at.update_at_usize buffer remaining delim + in + let buffer:t_Array u8 (mk_usize 200) = + Rust_primitives.Hax.Monomorphized_update_at.update_at_usize buffer + (rate -! mk_usize 1 <: usize) + ((buffer.[ rate -! mk_usize 1 <: usize ] <: u8) |. mk_u8 128 <: u8) + in + buffer + +/// Absorb the final (possibly partial) block: pad it, XOR into state, and +/// apply Keccak-f. +/// Combines `pad_last_block` + `absorb_block`. +let absorb_final + (state: t_Array u64 (mk_usize 25)) + (message: t_Slice u8) + (msg_offset remaining rate: usize) + (delim: u8) + : Prims.Pure (t_Array u64 (mk_usize 25)) + (requires + rate >. mk_usize 0 && rate <=. mk_usize 200 && (rate %! mk_usize 8 <: usize) =. mk_usize 0 && + remaining <. rate && + msg_offset <=. (Core_models.Slice.impl__len #u8 message <: usize) && + remaining <=. ((Core_models.Slice.impl__len #u8 message <: usize) -! msg_offset <: usize)) + (fun _ -> Prims.l_True) = + let block:t_Array u8 (mk_usize 200) = pad_last_block message msg_offset remaining rate delim in + absorb_block state + (block.[ { Core_models.Ops.Range.f_start = mk_usize 0; Core_models.Ops.Range.f_end = rate } + <: + Core_models.Ops.Range.t_Range usize ] + <: + t_Slice u8) + rate + +/// Recursively absorb the remaining bytes of `message`: peel off one full +/// `rate`-byte block, XOR it into the state, apply Keccak-f, then recurse on +/// the tail slice. Once fewer than `rate` bytes remain, pad and absorb the +/// partial final block. +let rec absorb_rec (state: t_Array u64 (mk_usize 25)) (rate: usize) (delim: u8) (message: t_Slice u8) + : Prims.Pure (t_Array u64 (mk_usize 25)) + (requires + rate >. mk_usize 0 && rate <=. mk_usize 200 && (rate %! mk_usize 8 <: usize) =. mk_usize 0) + (fun _ -> Prims.l_True) + (decreases + (Rust_primitives.Hax.Int.from_machine (Core_models.Slice.impl__len #u8 message <: usize) + <: + Hax_lib.Int.t_Int)) = + if (Core_models.Slice.impl__len #u8 message <: usize) <. rate + then + absorb_final state + message + (mk_usize 0) + (Core_models.Slice.impl__len #u8 message <: usize) + rate + delim + else + let state:t_Array u64 (mk_usize 25) = + absorb_block state + (message.[ { + Core_models.Ops.Range.f_start = mk_usize 0; + Core_models.Ops.Range.f_end = rate + } + <: + Core_models.Ops.Range.t_Range usize ] + <: + t_Slice u8) + rate + in + absorb_rec state + rate + delim + (message.[ { Core_models.Ops.Range.f_start = rate } <: Core_models.Ops.Range.t_RangeFrom usize + ] + <: + t_Slice u8) + +/// Apply Keccak-f to `state` exactly `n` times. +let rec iterate_keccak_f (n: usize) (state: t_Array u64 (mk_usize 25)) + : Prims.Tot (t_Array u64 (mk_usize 25)) + (decreases (Rust_primitives.Hax.Int.from_machine n <: Hax_lib.Int.t_Int)) = + if n =. mk_usize 0 + then state + else + Hacspec_sha3.Keccak_f.keccak_f (iterate_keccak_f (n -! mk_usize 1 <: usize) state + <: + t_Array u64 (mk_usize 25)) + +/// Absorb phase of the Keccak sponge (FIPS 202, Algorithm 8, step 6 combined +/// with the pad10*1 padding of Algorithm 9). +/// Splits `message` into `rate`-byte blocks, XORing each into the state and +/// applying Keccak-f. The final partial block is padded with the domain +/// separation byte `delim` and the pad10*1 terminator `0x80` before being +/// absorbed. +let absorb (rate: usize) (delim: u8) (message: t_Slice u8) + : Prims.Pure (t_Array u64 (mk_usize 25)) + (requires + rate >. mk_usize 0 && rate <=. mk_usize 200 && (rate %! mk_usize 8 <: usize) =. mk_usize 0) + (fun _ -> Prims.l_True) = + absorb_rec (Rust_primitives.Hax.repeat (mk_u64 0) (mk_usize 25) <: t_Array u64 (mk_usize 25)) + rate + delim + message + +/// Squeeze phase of the Keccak sponge (FIPS 202, Algorithm 8, steps 8–9). +/// Extracts `OUTPUT_LEN` bytes from `state`, applying Keccak-f between each +/// `rate`-byte block of output. +/// Byteform definition: byte at position `k` lives in block `b = k / rate` +/// (or the trailing partial block if `b == OUTPUT_LEN / rate`); within a +/// block the offset is `j = k - b * rate`; the value is the `(j mod 8)`-th +/// little-endian byte of `iterate_keccak_f(b, state)`\'s lane `(j / 8)`. +/// Equivalent to FIPS-202 Algorithm 8: for each full block apply keccak_f +/// and extract `rate` bytes; the trailing partial block uses one more +/// keccak_f before extracting `OUTPUT_LEN mod rate` bytes. +let squeeze (v_OUTPUT_LEN: usize) (state: t_Array u64 (mk_usize 25)) (rate: usize) + : Prims.Pure (t_Array u8 v_OUTPUT_LEN) + (requires + rate >. mk_usize 0 && rate <=. mk_usize 200 && (rate %! mk_usize 8 <: usize) =. mk_usize 0 && + v_OUTPUT_LEN <. (Core_models.Num.impl_usize__MAX -! mk_usize 200 <: usize)) + (fun _ -> Prims.l_True) = + Hacspec_sha3.createi #u8 + v_OUTPUT_LEN + #(usize -> u8) + (fun k -> + let k:usize = k in + let b:usize = k /! rate in + let j:usize = k -! (b *! rate <: usize) in + let state_b:t_Array u64 (mk_usize 25) = iterate_keccak_f b state in + (Core_models.Num.impl_u64__to_le_bytes (state_b.[ j /! mk_usize 8 <: usize ] <: u64) + <: + t_Array u8 (mk_usize 8)).[ j %! mk_usize 8 <: usize ]) + +/// Keccak sponge — FIPS 202, Algorithm 8 combined with pad10*1 (Algorithm 9). +/// 1. Absorb: split `message` into `rate`-byte blocks, XOR each into the +/// state, and apply Keccak-f. The final partial block is padded with +/// the domain separation byte `delim` and the pad10*1 terminator `0x80`. +/// 2. Squeeze: extract `OUTPUT_LEN` bytes from the state, applying +/// Keccak-f between each `rate`-byte block of output. +/// The `OUTPUT_LEN < usize::MAX - 200` precondition is a Rust implementation +/// artifact to prevent arithmetic overflow; FIPS 202 places no upper bound +/// on the output length. +let keccak (v_OUTPUT_LEN rate: usize) (delim: u8) (message: t_Slice u8) + : Prims.Pure (t_Array u8 v_OUTPUT_LEN) + (requires + rate >. mk_usize 0 && rate <=. mk_usize 200 && (rate %! mk_usize 8 <: usize) =. mk_usize 0 && + v_OUTPUT_LEN <. (Core_models.Num.impl_usize__MAX -! mk_usize 200 <: usize)) + (fun _ -> Prims.l_True) = + squeeze v_OUTPUT_LEN (absorb rate delim message <: t_Array u64 (mk_usize 25)) rate diff --git a/specs/sha3/proofs/fstar/extraction/Hacspec_sha3.fst b/specs/sha3/proofs/fstar/extraction/Hacspec_sha3.fst new file mode 100644 index 0000000000..97e253aab3 --- /dev/null +++ b/specs/sha3/proofs/fstar/extraction/Hacspec_sha3.fst @@ -0,0 +1,12 @@ +module Hacspec_sha3 +#set-options "--fuel 0 --ifuel 1 --z3rlimit 80" +open FStar.Mul +open Core_models + +let createi + (#v_T: Type0) + (v_N: usize) + (#v_F: Type0) + (f: (x:usize{x <. v_N}) -> v_T) + : t_Array v_T v_N + = Rust_primitives.Arrays.createi v_N f diff --git a/specs/sha3/proofs/fstar/extraction/Makefile b/specs/sha3/proofs/fstar/extraction/Makefile new file mode 100644 index 0000000000..8481b05ca9 --- /dev/null +++ b/specs/sha3/proofs/fstar/extraction/Makefile @@ -0,0 +1,7 @@ +# Verify the four root spec modules. +ROOTS = Hacspec_sha3.fst \ + Hacspec_sha3.Keccak_f.fst \ + Hacspec_sha3.Sha3.fst \ + Hacspec_sha3.Sponge.fst + +include $(shell git rev-parse --show-toplevel)/fstar-helpers/Makefile.base diff --git a/specs/sha3/src/keccak_f.rs b/specs/sha3/src/keccak_f.rs new file mode 100644 index 0000000000..1eb038bae6 --- /dev/null +++ b/specs/sha3/src/keccak_f.rs @@ -0,0 +1,156 @@ +/// Keccak-f[1600] permutation — FIPS 202, Section 3.3. +/// +/// The state is a 5×5 array of 64-bit lanes stored as a flat `[u64; 25]`. +/// Lane `A[x, y]` maps to flat index `5*y + x`, matching the natural +/// flat indexing induced by FIPS 202 §3.1.2 (`A[x, y, z] = S[w(5y + x) + z]`) +/// and the Keccak reference implementation. +use crate::createi; + +/// Keccak-f[1600] state: 5×5 lanes of 64-bit words. +/// Keccak state type, exposed for cross-crate verification. +pub type State = [u64; 25]; + +/// Read lane `A[x, y]`. +#[inline] +#[hax_lib::requires(x < 5 && y < 5)] +pub fn get(state: &State, x: usize, y: usize) -> u64 { + state[5 * y + x] +} + +// ========================================================================= +// Constants — FIPS 202, Section 3.3 / Algorithm 5 +// ========================================================================= + +/// Round constants `RC[ir]` for `ir = 0..23` — FIPS 202, Algorithm 5. +pub const ROUND_CONSTANTS: [u64; 24] = [ + 0x0000_0000_0000_0001, + 0x0000_0000_0000_8082, + 0x8000_0000_0000_808A, + 0x8000_0000_8000_8000, + 0x0000_0000_0000_808B, + 0x0000_0000_8000_0001, + 0x8000_0000_8000_8081, + 0x8000_0000_0000_8009, + 0x0000_0000_0000_008A, + 0x0000_0000_0000_0088, + 0x0000_0000_8000_8009, + 0x0000_0000_8000_000A, + 0x0000_0000_8000_808B, + 0x8000_0000_0000_008B, + 0x8000_0000_0000_8089, + 0x8000_0000_0000_8003, + 0x8000_0000_0000_8002, + 0x8000_0000_0000_0080, + 0x0000_0000_0000_800A, + 0x8000_0000_8000_000A, + 0x8000_0000_8000_8081, + 0x8000_0000_0000_8080, + 0x0000_0000_8000_0001, + 0x8000_0000_8000_8008, +]; + +/// Rotation offsets for ρ step — FIPS 202, Algorithm 2 / Table 2. +/// +/// Indexed as `RHO_OFFSETS[5*y + x]`. +pub const RHO_OFFSETS: [u32; 25] = [ + // x=0 x=1 x=2 x=3 x=4 + 0, 1, 62, 28, 27, // y = 0 + 36, 44, 6, 55, 20, // y = 1 + 3, 10, 43, 25, 39, // y = 2 + 41, 45, 15, 21, 8, // y = 3 + 18, 2, 61, 56, 14, // y = 4 +]; + +// ========================================================================= +// The five step mappings — FIPS 202, Algorithms 1–6 +// ========================================================================= + +/// θ step — FIPS 202, Algorithm 1. +/// +/// C[x] = A[x,0] ⊕ A[x,1] ⊕ A[x,2] ⊕ A[x,3] ⊕ A[x,4] +/// D[x] = C[x−1 mod 5] ⊕ rot(C[x+1 mod 5], 1) +/// A′[x,y] = A[x,y] ⊕ D[x] +pub fn theta(state: State) -> State { + let c: [u64; 5] = createi(|x| { + get(&state, x, 0) + ^ get(&state, x, 1) + ^ get(&state, x, 2) + ^ get(&state, x, 3) + ^ get(&state, x, 4) + }); + let d: [u64; 5] = createi(|x| c[(x + 4) % 5] ^ c[(x + 1) % 5].rotate_left(1)); + createi(|idx| state[idx] ^ d[idx % 5]) +} + +/// ρ step — FIPS 202, Algorithm 2. +/// +/// A′[x,y] = rot(A[x,y], offset(x,y)) +pub fn rho(state: State) -> State { + createi(|idx| state[idx].rotate_left(RHO_OFFSETS[idx])) +} + +/// π step — FIPS 202, Algorithm 3. +/// +/// A′[x,y] = A[(x + 3y) mod 5, x] +pub fn pi(state: State) -> State { + createi(|idx| { + let y = idx / 5; + let x = idx % 5; + get(&state, (x + 3 * y) % 5, x) + }) +} + +/// χ step — FIPS 202, Algorithm 4. +/// +/// A′[x,y] = A[x,y] ⊕ (¬A[(x+1) mod 5, y] ∧ A[(x+2) mod 5, y]) +pub fn chi(state: State) -> State { + createi(|idx| { + let y = idx / 5; + let x = idx % 5; + get(&state, x, y) ^ (!get(&state, (x + 1) % 5, y) & get(&state, (x + 2) % 5, y)) + }) +} + +/// ι step — FIPS 202, Algorithm 6. +/// +/// A′[0,0] = A[0,0] ⊕ RC[ir] +#[hax_lib::requires(round < 24)] +pub fn iota(mut state: State, round: usize) -> State { + state[0] ^= ROUND_CONSTANTS[round]; + state +} + +// ========================================================================= +// Keccak-f[1600] — FIPS 202, Algorithm 7 +// ========================================================================= + +/// Keccak-f[1600] permutation — FIPS 202, Algorithm 7. +/// +/// Rnd(A, ir) = ι(χ(π(ρ(θ(A)))), ir) +pub fn keccak_f(mut state: State) -> State { + for round in 0..24 { + state = iota(chi(pi(rho(theta(state)))), round); + } + state +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn keccak_f_all_zeros() { + // Known answer: after Keccak-f on the all-zero state, lane (0,0) has + // a specific value that serves as a sanity check. + let state = [0u64; 25]; + let result = keccak_f(state); + assert_eq!(result[0], 0xF1258F7940E1DDE7); + } + + #[test] + fn keccak_f_all_ones() { + let state = [0xFFFFFFFFFFFFFFFFu64; 25]; + let result = keccak_f(state); + assert_ne!(result, state); + } +} diff --git a/specs/sha3/src/lib.rs b/specs/sha3/src/lib.rs new file mode 100644 index 0000000000..66b7ef962c --- /dev/null +++ b/specs/sha3/src/lib.rs @@ -0,0 +1,24 @@ +/// Keccak-f[1600] permutation — exposed for cross-spec testing. +pub mod keccak_f; +mod sha3; +/// Sponge construction — exposed for cross-spec testing. +pub mod sponge; + +/// Utility function to create an array of size `N` by applying a function `f` to each index. +#[hax_lib::fstar::replace( + r#" +let createi + (#v_T: Type0) + (v_N: usize) + (#v_F: Type0) + (f: (x:usize{x <. v_N}) -> v_T) + : t_Array v_T v_N + = Rust_primitives.Arrays.createi v_N f +"# +)] +pub(crate) fn createi T>(f: F) -> [T; N] { + core::array::from_fn(f) +} + +pub use keccak_f::State; +pub use sha3::{sha3_224, sha3_256, sha3_384, sha3_512, shake128, shake256}; diff --git a/specs/sha3/src/sha3.rs b/specs/sha3/src/sha3.rs new file mode 100644 index 0000000000..f6fe13fdfc --- /dev/null +++ b/specs/sha3/src/sha3.rs @@ -0,0 +1,149 @@ +/// SHA-3 and SHAKE functions — FIPS 202, Section 6. +use crate::sponge::keccak; + +// Rate constants in bytes: rate = (1600 - 2*capacity) / 8 +const SHA3_224_RATE: usize = 144; // capacity = 448 +const SHA3_256_RATE: usize = 136; // capacity = 512 +const SHA3_384_RATE: usize = 104; // capacity = 768 +const SHA3_512_RATE: usize = 72; // capacity = 1024 +const SHAKE128_RATE: usize = 168; // capacity = 256 +const SHAKE256_RATE: usize = 136; // capacity = 512 + +/// SHA-3 domain separation byte (0x06 = 0b0110: two-bit suffix "01" + first bit of pad10*1). +const SHA3_DELIM: u8 = 0x06; +/// SHAKE domain separation byte (0x1F = 0b11111: four-bit suffix "1111" + first bit of pad10*1). +const SHAKE_DELIM: u8 = 0x1F; + +/// SHA3-224 — FIPS 202, Section 6.1. +pub fn sha3_224(message: &[u8]) -> [u8; 28] { + keccak::<28>(SHA3_224_RATE, SHA3_DELIM, message) +} + +/// SHA3-256 — FIPS 202, Section 6.1. +pub fn sha3_256(message: &[u8]) -> [u8; 32] { + keccak::<32>(SHA3_256_RATE, SHA3_DELIM, message) +} + +/// SHA3-384 — FIPS 202, Section 6.1. +pub fn sha3_384(message: &[u8]) -> [u8; 48] { + keccak::<48>(SHA3_384_RATE, SHA3_DELIM, message) +} + +/// SHA3-512 — FIPS 202, Section 6.1. +pub fn sha3_512(message: &[u8]) -> [u8; 64] { + keccak::<64>(SHA3_512_RATE, SHA3_DELIM, message) +} + +/// SHAKE128 — FIPS 202, Section 6.2. +/// +/// FIPS 202 places no upper bound on the output length `N`. +/// The `N < usize::MAX - 200` precondition is a Rust implementation artifact +/// to prevent arithmetic overflow during squeeze-loop bound computation. +#[hax_lib::requires(N < usize::MAX - 200)] +pub fn shake128(message: &[u8]) -> [u8; N] { + keccak::(SHAKE128_RATE, SHAKE_DELIM, message) +} + +/// SHAKE256 — FIPS 202, Section 6.2. +/// +/// FIPS 202 places no upper bound on the output length `N`. +/// The `N < usize::MAX - 200` precondition is a Rust implementation artifact +/// to prevent arithmetic overflow during squeeze-loop bound computation. +#[hax_lib::requires(N < usize::MAX - 200)] +pub fn shake256(message: &[u8]) -> [u8; N] { + keccak::(SHAKE256_RATE, SHAKE_DELIM, message) +} + +#[cfg(test)] +mod tests { + use super::*; + + // SHA3-256("") known answer + #[test] + fn sha3_256_empty() { + let expected: [u8; 32] = [ + 0xa7, 0xff, 0xc6, 0xf8, 0xbf, 0x1e, 0xd7, 0x66, 0x51, 0xc1, 0x47, 0x56, 0xa0, 0x61, + 0xd6, 0x62, 0xf5, 0x80, 0xff, 0x4d, 0xe4, 0x3b, 0x49, 0xfa, 0x82, 0xd8, 0x0a, 0x4b, + 0x80, 0xf8, 0x43, 0x4a, + ]; + assert_eq!(sha3_256(b""), expected); + } + + // SHA3-256("abc") + #[test] + fn sha3_256_abc() { + let expected: [u8; 32] = [ + 0x3a, 0x98, 0x5d, 0xa7, 0x4f, 0xe2, 0x25, 0xb2, 0x04, 0x5c, 0x17, 0x2d, 0x6b, 0xd3, + 0x90, 0xbd, 0x85, 0x5f, 0x08, 0x6e, 0x3e, 0x9d, 0x52, 0x5b, 0x46, 0xbf, 0xe2, 0x45, + 0x11, 0x43, 0x15, 0x32, + ]; + assert_eq!(sha3_256(b"abc"), expected); + } + + // SHA3-224("") + #[test] + fn sha3_224_empty() { + let expected: [u8; 28] = [ + 0x6b, 0x4e, 0x03, 0x42, 0x36, 0x67, 0xdb, 0xb7, 0x3b, 0x6e, 0x15, 0x45, 0x4f, 0x0e, + 0xb1, 0xab, 0xd4, 0x59, 0x7f, 0x9a, 0x1b, 0x07, 0x8e, 0x3f, 0x5b, 0x5a, 0x6b, 0xc7, + ]; + assert_eq!(sha3_224(b""), expected); + } + + // SHA3-384("") + #[test] + fn sha3_384_empty() { + let expected: [u8; 48] = [ + 0x0c, 0x63, 0xa7, 0x5b, 0x84, 0x5e, 0x4f, 0x7d, 0x01, 0x10, 0x7d, 0x85, 0x2e, 0x4c, + 0x24, 0x85, 0xc5, 0x1a, 0x50, 0xaa, 0xaa, 0x94, 0xfc, 0x61, 0x99, 0x5e, 0x71, 0xbb, + 0xee, 0x98, 0x3a, 0x2a, 0xc3, 0x71, 0x38, 0x31, 0x26, 0x4a, 0xdb, 0x47, 0xfb, 0x6b, + 0xd1, 0xe0, 0x58, 0xd5, 0xf0, 0x04, + ]; + assert_eq!(sha3_384(b""), expected); + } + + // SHA3-512("") + #[test] + fn sha3_512_empty() { + let expected: [u8; 64] = [ + 0xa6, 0x9f, 0x73, 0xcc, 0xa2, 0x3a, 0x9a, 0xc5, 0xc8, 0xb5, 0x67, 0xdc, 0x18, 0x5a, + 0x75, 0x6e, 0x97, 0xc9, 0x82, 0x16, 0x4f, 0xe2, 0x58, 0x59, 0xe0, 0xd1, 0xdc, 0xc1, + 0x47, 0x5c, 0x80, 0xa6, 0x15, 0xb2, 0x12, 0x3a, 0xf1, 0xf5, 0xf9, 0x4c, 0x11, 0xe3, + 0xe9, 0x40, 0x2c, 0x3a, 0xc5, 0x58, 0xf5, 0x00, 0x19, 0x9d, 0x95, 0xb6, 0xd3, 0xe3, + 0x01, 0x75, 0x85, 0x86, 0x28, 0x1d, 0xcd, 0x26, + ]; + assert_eq!(sha3_512(b""), expected); + } + + // SHAKE128("", 32 bytes) + #[test] + fn shake128_empty_32() { + let expected: [u8; 32] = [ + 0x7f, 0x9c, 0x2b, 0xa4, 0xe8, 0x8f, 0x82, 0x7d, 0x61, 0x60, 0x45, 0x50, 0x76, 0x05, + 0x85, 0x3e, 0xd7, 0x3b, 0x80, 0x93, 0xf6, 0xef, 0xbc, 0x88, 0xeb, 0x1a, 0x6e, 0xac, + 0xfa, 0x66, 0xef, 0x26, + ]; + assert_eq!(shake128::<32>(b""), expected); + } + + // SHAKE256("", 32 bytes) + #[test] + fn shake256_empty_32() { + let expected: [u8; 32] = [ + 0x46, 0xb9, 0xdd, 0x2b, 0x0b, 0xa8, 0x8d, 0x13, 0x23, 0x3b, 0x3f, 0xeb, 0x74, 0x3e, + 0xeb, 0x24, 0x3f, 0xcd, 0x52, 0xea, 0x62, 0xb8, 0x1b, 0x82, 0xb5, 0x0c, 0x27, 0x64, + 0x6e, 0xd5, 0x76, 0x2f, + ]; + assert_eq!(shake256::<32>(b""), expected); + } + + // SHA3-256("abc") via NIST + #[test] + fn sha3_224_abc() { + let expected: [u8; 28] = [ + 0xe6, 0x42, 0x82, 0x4c, 0x3f, 0x8c, 0xf2, 0x4a, 0xd0, 0x92, 0x34, 0xee, 0x7d, 0x3c, + 0x76, 0x6f, 0xc9, 0xa3, 0xa5, 0x16, 0x8d, 0x0c, 0x94, 0xad, 0x73, 0xb4, 0x6f, 0xdf, + ]; + assert_eq!(sha3_224(b"abc"), expected); + } +} diff --git a/specs/sha3/src/sponge.rs b/specs/sha3/src/sponge.rs new file mode 100644 index 0000000000..09e20cd704 --- /dev/null +++ b/specs/sha3/src/sponge.rs @@ -0,0 +1,166 @@ +/// Sponge construction — FIPS 202, Algorithm 8 (KECCAK[c]) +/// with pad10*1 padding — FIPS 202, Algorithm 9. +/// +/// With the state stored as `state[5·y + x]` (FIPS 202 §3.1.2), byte-lane +/// `l` lives directly at `state[l]`, so no lane-index permutation is +/// needed here. +use crate::createi; +use crate::keccak_f::{keccak_f, State}; + +#[cfg(hax)] +use hax_lib::int::*; + +/// XOR a block of message bytes into the state (little-endian, lane-interleaved). +/// +/// Corresponds to the `S ⊕ (Pi || 0^c)` step of Algorithm 8. +#[hax_lib::requires(rate <= 200 && rate % 8 == 0 && block.len() >= rate)] +pub fn xor_block_into_state(state: State, block: &[u8], rate: usize) -> State { + createi(|i| { + if i < rate / 8 { + // The slice is exactly 8 bytes (since `i < rate / 8` and + // `block.len() >= rate`), so `try_into::<[u8; 8]>` cannot fail. + state[i] ^ u64::from_le_bytes(block[8 * i..8 * i + 8].try_into().unwrap()) + } else { + state[i] + } + }) +} + +/// Extract `len` bytes from the rate portion of the state (little-endian, lane-interleaved). +/// +/// Corresponds to `Trunc_r(S)` in Algorithm 8. +#[hax_lib::requires(len <= 200 && output.len() >= len && out_offset <= output.len() - len)] +pub fn squeeze_state( + state: &State, + mut output: [u8; OUTPUT_LEN], + out_offset: usize, + len: usize, +) -> [u8; OUTPUT_LEN] { + let bytes: [u8; 200] = createi(|i| state[i / 8].to_le_bytes()[i % 8]); + output[out_offset..out_offset + len].copy_from_slice(&bytes[0..len]); + output +} + +/// Absorb one full block: XOR it into the state, then apply Keccak-f. +/// +/// Corresponds to one iteration of the absorb loop in Algorithm 8 (step 6). +#[hax_lib::requires(rate <= 200 && rate % 8 == 0 && block.len() == rate)] +pub fn absorb_block(state: State, block: &[u8], rate: usize) -> State { + let state = xor_block_into_state(state, block, rate); + keccak_f(state) +} + +/// Build the padded last block: copy remaining message bytes, add the +/// domain-separation byte `delim`, and set the final bit of pad10*1. +/// +/// Returns a `rate`-byte buffer ready to be absorbed via `xor_block_into_state`. +#[hax_lib::requires(rate > 0 && rate <= 200 && rate % 8 == 0 && remaining < rate + && msg_offset <= message.len() && remaining <= message.len() - msg_offset)] +pub fn pad_last_block( + message: &[u8], + msg_offset: usize, + remaining: usize, + rate: usize, + delim: u8, +) -> [u8; 200] { + let mut buffer = [0u8; 200]; + buffer[0..remaining].copy_from_slice(&message[msg_offset..msg_offset + remaining]); + buffer[remaining] = delim; + buffer[rate - 1] = buffer[rate - 1] | 0x80; + buffer +} + +/// Absorb the final (possibly partial) block: pad it, XOR into state, and +/// apply Keccak-f. +/// +/// Combines `pad_last_block` + `absorb_block`. +#[hax_lib::requires(rate > 0 && rate <= 200 && rate % 8 == 0 && remaining < rate + && msg_offset <= message.len() && remaining <= message.len() - msg_offset)] +pub fn absorb_final( + state: State, + message: &[u8], + msg_offset: usize, + remaining: usize, + rate: usize, + delim: u8, +) -> State { + let block = pad_last_block(message, msg_offset, remaining, rate, delim); + absorb_block(state, &block[0..rate], rate) +} + +/// Recursively absorb the remaining bytes of `message`: peel off one full +/// `rate`-byte block, XOR it into the state, apply Keccak-f, then recurse on +/// the tail slice. Once fewer than `rate` bytes remain, pad and absorb the +/// partial final block. +#[hax_lib::requires(rate > 0 && rate <= 200 && rate % 8 == 0)] +#[hax_lib::decreases(message.len().to_int())] +pub fn absorb_rec(state: State, rate: usize, delim: u8, message: &[u8]) -> State { + if message.len() < rate { + absorb_final(state, message, 0, message.len(), rate, delim) + } else { + let state = absorb_block(state, &message[0..rate], rate); + absorb_rec(state, rate, delim, &message[rate..]) + } +} + +/// Absorb phase of the Keccak sponge (FIPS 202, Algorithm 8, step 6 combined +/// with the pad10*1 padding of Algorithm 9). +/// +/// Splits `message` into `rate`-byte blocks, XORing each into the state and +/// applying Keccak-f. The final partial block is padded with the domain +/// separation byte `delim` and the pad10*1 terminator `0x80` before being +/// absorbed. +#[hax_lib::requires(rate > 0 && rate <= 200 && rate % 8 == 0)] +pub fn absorb(rate: usize, delim: u8, message: &[u8]) -> State { + absorb_rec([0u64; 25], rate, delim, message) +} + +/// Apply Keccak-f to `state` exactly `n` times. +#[hax_lib::decreases(n.to_int())] +pub fn iterate_keccak_f(n: usize, state: State) -> State { + if n == 0 { + state + } else { + keccak_f(iterate_keccak_f(n - 1, state)) + } +} + +/// Squeeze phase of the Keccak sponge (FIPS 202, Algorithm 8, steps 8–9). +/// +/// Extracts `OUTPUT_LEN` bytes from `state`, applying Keccak-f between each +/// `rate`-byte block of output. +/// +/// Byteform definition: byte at position `k` lives in block `b = k / rate` +/// (or the trailing partial block if `b == OUTPUT_LEN / rate`); within a +/// block the offset is `j = k - b * rate`; the value is the `(j mod 8)`-th +/// little-endian byte of `iterate_keccak_f(b, state)`'s lane `(j / 8)`. +/// +/// Equivalent to FIPS-202 Algorithm 8: for each full block apply keccak_f +/// and extract `rate` bytes; the trailing partial block uses one more +/// keccak_f before extracting `OUTPUT_LEN mod rate` bytes. +#[hax_lib::requires(rate > 0 && rate <= 200 && rate % 8 == 0 && OUTPUT_LEN < usize::MAX - 200)] +pub fn squeeze(state: State, rate: usize) -> [u8; OUTPUT_LEN] { + createi(|k| { + let b = k / rate; + let j = k - b * rate; + let state_b = iterate_keccak_f(b, state); + state_b[j / 8].to_le_bytes()[j % 8] + }) +} + +/// Keccak sponge — FIPS 202, Algorithm 8 combined with pad10*1 (Algorithm 9). +/// +/// 1. Absorb: split `message` into `rate`-byte blocks, XOR each into the +/// state, and apply Keccak-f. The final partial block is padded with +/// the domain separation byte `delim` and the pad10*1 terminator `0x80`. +/// 2. Squeeze: extract `OUTPUT_LEN` bytes from the state, applying +/// Keccak-f between each `rate`-byte block of output. +/// +/// The `OUTPUT_LEN < usize::MAX - 200` precondition is a Rust implementation +/// artifact to prevent arithmetic overflow; FIPS 202 places no upper bound +/// on the output length. +#[hax_lib::requires(rate > 0 && rate <= 200 && rate % 8 == 0 && OUTPUT_LEN < usize::MAX - 200)] +pub fn keccak(rate: usize, delim: u8, message: &[u8]) -> [u8; OUTPUT_LEN] { + squeeze(absorb(rate, delim, message), rate) +} + diff --git a/specs/sha3/tests/cavp.rs b/specs/sha3/tests/cavp.rs new file mode 100644 index 0000000000..0e047b3811 --- /dev/null +++ b/specs/sha3/tests/cavp.rs @@ -0,0 +1,281 @@ +/// CAVP (Cryptographic Algorithm Validation Program) tests. +/// Ported from ../../crates/algorithms/sha3/tests/cavp.rs +/// +/// Reads NIST .rsp test vector files and validates our SHA-3/SHAKE implementation +/// against each test case. +use hacspec_sha3::*; +use std::fs; +use std::path::Path; + +// --------------------------------------------------------------------------- +// Simple .rsp file parser (replaces the external `cavp` crate dependency) +// --------------------------------------------------------------------------- + +struct Sha3TestCase { + msg_length_bits: usize, + msg: Vec, + digest: Vec, +} + +fn parse_sha3_rsp(path: &Path) -> Vec { + let content = fs::read_to_string(path) + .unwrap_or_else(|e| panic!("failed to read {}: {e}", path.display())); + let mut tests = Vec::new(); + let mut len: usize = 0; + let mut msg: Vec = Vec::new(); + + for line in content.lines() { + let line = line.trim(); + if line.is_empty() || line.starts_with('#') || line.starts_with('[') { + continue; + } + if let Some(val) = line.strip_prefix("Len = ") { + len = val.trim().parse().unwrap(); + } else if let Some(val) = line.strip_prefix("Msg = ") { + msg = hex::decode(val.trim()).unwrap(); + } else if let Some(val) = line.strip_prefix("MD = ") { + let digest = hex::decode(val.trim()).unwrap(); + tests.push(Sha3TestCase { + msg_length_bits: len, + msg: msg.clone(), + digest, + }); + } + } + tests +} + +struct ShakeTestCase { + msg_length_bits: usize, + msg: Vec, + output: Vec, +} + +fn parse_shake_rsp(path: &Path) -> Vec { + let content = fs::read_to_string(path) + .unwrap_or_else(|e| panic!("failed to read {}: {e}", path.display())); + let mut tests = Vec::new(); + let mut len: usize = 0; + let mut msg: Vec = Vec::new(); + + for line in content.lines() { + let line = line.trim(); + if line.is_empty() || line.starts_with('#') || line.starts_with('[') { + continue; + } + if let Some(val) = line.strip_prefix("Len = ") { + len = val.trim().parse().unwrap(); + } else if let Some(val) = line.strip_prefix("Msg = ") { + msg = hex::decode(val.trim()).unwrap(); + } else if let Some(val) = line.strip_prefix("Output = ") { + let output = hex::decode(val.trim()).unwrap(); + tests.push(ShakeTestCase { + msg_length_bits: len, + msg: msg.clone(), + output, + }); + } + } + tests +} + +struct ShakeVariableOutTestCase { + msg: Vec, + output: Vec, +} + +fn parse_shake_variable_out_rsp(path: &Path) -> (usize, Vec) { + let content = fs::read_to_string(path) + .unwrap_or_else(|e| panic!("failed to read {}: {e}", path.display())); + let mut tests = Vec::new(); + let mut input_length_bits: usize = 0; + let mut msg: Vec = Vec::new(); + + for line in content.lines() { + let line = line.trim(); + if line.is_empty() || line.starts_with('#') { + continue; + } + // Parse header fields like [Input Length = 128] + if line.starts_with('[') && line.ends_with(']') { + let inner = &line[1..line.len() - 1]; + if let Some(val) = inner.strip_prefix("Input Length = ") { + input_length_bits = val.trim().parse().unwrap(); + } + continue; + } + if line.starts_with("COUNT") || line.starts_with("Outputlen") { + // We don't need these — output length is implicit in the expected output + continue; + } + if let Some(val) = line.strip_prefix("Msg = ") { + msg = hex::decode(val.trim()).unwrap(); + } else if let Some(val) = line.strip_prefix("Output = ") { + let output = hex::decode(val.trim()).unwrap(); + tests.push(ShakeVariableOutTestCase { + msg: msg.clone(), + output, + }); + } + } + (input_length_bits, tests) +} + +// --------------------------------------------------------------------------- +// Path to the test vector files (shared with reference implementation) +// --------------------------------------------------------------------------- + +fn tv_path(name: &str) -> std::path::PathBuf { + // From specs/sha3/ to crates/algorithms/sha3/tests/tv/ + Path::new(env!("CARGO_MANIFEST_DIR")) + .join("../../crates/algorithms/sha3/tests/tv") + .join(name) +} + +// --------------------------------------------------------------------------- +// SHA3 CAVP tests +// --------------------------------------------------------------------------- + +macro_rules! sha3_cavp_test { + ($name:ident, $file:expr, $hash_fn:ident, $digest_len:expr) => { + #[test] + fn $name() { + let tests = parse_sha3_rsp(&tv_path($file)); + assert!(!tests.is_empty(), "no test cases found"); + for (i, tc) in tests.iter().enumerate() { + let msg = &tc.msg[..tc.msg_length_bits / 8]; + let digest = $hash_fn(msg); + assert_eq!( + &digest[..], + &tc.digest[..], + "test case {i} failed (msg_len={} bits)", + tc.msg_length_bits + ); + } + } + }; +} + +sha3_cavp_test!(sha3_224_short_msg, "SHA3_224ShortMsg.rsp", sha3_224, 28); +sha3_cavp_test!(sha3_224_long_msg, "SHA3_224LongMsg.rsp", sha3_224, 28); +sha3_cavp_test!(sha3_256_short_msg, "SHA3_256ShortMsg.rsp", sha3_256, 32); +sha3_cavp_test!(sha3_256_long_msg, "SHA3_256LongMsg.rsp", sha3_256, 32); +sha3_cavp_test!(sha3_384_short_msg, "SHA3_384ShortMsg.rsp", sha3_384, 48); +sha3_cavp_test!(sha3_384_long_msg, "SHA3_384LongMsg.rsp", sha3_384, 48); +sha3_cavp_test!(sha3_512_short_msg, "SHA3_512ShortMsg.rsp", sha3_512, 64); +sha3_cavp_test!(sha3_512_long_msg, "SHA3_512LongMsg.rsp", sha3_512, 64); + +// --------------------------------------------------------------------------- +// SHAKE CAVP tests (short/long message, fixed output length) +// --------------------------------------------------------------------------- + +// SHAKE128 ShortMsg/LongMsg: [Outputlen = 128] → 16 bytes +#[test] +fn shake128_short_msg() { + let tests = parse_shake_rsp(&tv_path("SHAKE128ShortMsg.rsp")); + assert!(!tests.is_empty()); + for (i, tc) in tests.iter().enumerate() { + let msg = &tc.msg[..tc.msg_length_bits / 8]; + let digest = shake128::<16>(msg); + assert_eq!( + &digest[..], + &tc.output[..], + "test case {i} failed (msg_len={} bits)", + tc.msg_length_bits + ); + } +} + +#[test] +fn shake128_long_msg() { + let tests = parse_shake_rsp(&tv_path("SHAKE128LongMsg.rsp")); + assert!(!tests.is_empty()); + for (i, tc) in tests.iter().enumerate() { + let msg = &tc.msg[..tc.msg_length_bits / 8]; + let digest = shake128::<16>(msg); + assert_eq!( + &digest[..], + &tc.output[..], + "test case {i} failed (msg_len={} bits)", + tc.msg_length_bits + ); + } +} + +// SHAKE256 ShortMsg/LongMsg: [Outputlen = 256] → 32 bytes +#[test] +fn shake256_short_msg() { + let tests = parse_shake_rsp(&tv_path("SHAKE256ShortMsg.rsp")); + assert!(!tests.is_empty()); + for (i, tc) in tests.iter().enumerate() { + let msg = &tc.msg[..tc.msg_length_bits / 8]; + let digest = shake256::<32>(msg); + assert_eq!( + &digest[..], + &tc.output[..], + "test case {i} failed (msg_len={} bits)", + tc.msg_length_bits + ); + } +} + +#[test] +fn shake256_long_msg() { + let tests = parse_shake_rsp(&tv_path("SHAKE256LongMsg.rsp")); + assert!(!tests.is_empty()); + for (i, tc) in tests.iter().enumerate() { + let msg = &tc.msg[..tc.msg_length_bits / 8]; + let digest = shake256::<32>(msg); + assert_eq!( + &digest[..], + &tc.output[..], + "test case {i} failed (msg_len={} bits)", + tc.msg_length_bits + ); + } +} + +// --------------------------------------------------------------------------- +// SHAKE Variable Output Length CAVP tests +// +// These tests have variable output lengths per test case. Since our API uses +// const generics, we compute a max-size output and compare the prefix. +// SHAKE is an XOF so the first N bytes of shake(msg, K) match shake(msg, N) +// for any K >= N. +// --------------------------------------------------------------------------- + +// SHAKE128 VariableOut: max output = 1120 bits = 140 bytes +#[test] +fn shake128_variable_out() { + let (input_length_bits, tests) = + parse_shake_variable_out_rsp(&tv_path("SHAKE128VariableOut.rsp")); + assert!(!tests.is_empty()); + for (i, tc) in tests.iter().enumerate() { + let msg = &tc.msg[..input_length_bits / 8]; + let full_output = shake128::<140>(msg); + let expected_len = tc.output.len(); + assert_eq!( + &full_output[..expected_len], + &tc.output[..], + "test case {i} failed (output_len={expected_len} bytes)", + ); + } +} + +// SHAKE256 VariableOut: max output = 2000 bits = 250 bytes +#[test] +fn shake256_variable_out() { + let (input_length_bits, tests) = + parse_shake_variable_out_rsp(&tv_path("SHAKE256VariableOut.rsp")); + assert!(!tests.is_empty()); + for (i, tc) in tests.iter().enumerate() { + let msg = &tc.msg[..input_length_bits / 8]; + let full_output = shake256::<250>(msg); + let expected_len = tc.output.len(); + assert_eq!( + &full_output[..expected_len], + &tc.output[..], + "test case {i} failed (output_len={expected_len} bytes)", + ); + } +} diff --git a/specs/sha3/tests/compare_ref.rs b/specs/sha3/tests/compare_ref.rs new file mode 100644 index 0000000000..f187a12704 --- /dev/null +++ b/specs/sha3/tests/compare_ref.rs @@ -0,0 +1,29 @@ +/// Compare our SHA3 implementation against the reference libcrux-sha3 crate. + +#[test] +fn sha3_256_vs_reference() { + let mut ref_digest = [0u8; 32]; + libcrux_sha3::portable::sha256(&mut ref_digest, b""); + let our_digest = hacspec_sha3::sha3_256(b""); + assert_eq!(ref_digest, our_digest); +} + +#[test] +fn shake128_abc_vs_reference() { + let mut ref_out = [0u8; 32]; + libcrux_sha3::portable::shake128(&mut ref_out, b"abc"); + let our_out = hacspec_sha3::shake128::<32>(b"abc"); + eprintln!("SHAKE128 ref: {:02x?}", ref_out.to_vec()); + eprintln!("SHAKE128 our: {:02x?}", our_out.to_vec()); + assert_eq!(ref_out, our_out); +} + +#[test] +fn shake256_abc_vs_reference() { + let mut ref_out = [0u8; 32]; + libcrux_sha3::portable::shake256(&mut ref_out, b"abc"); + let our_out = hacspec_sha3::shake256::<32>(b"abc"); + eprintln!("SHAKE256 ref: {:02x?}", ref_out.to_vec()); + eprintln!("SHAKE256 our: {:02x?}", our_out.to_vec()); + assert_eq!(ref_out, our_out); +} diff --git a/specs/sha3/tests/nist_vectors.rs b/specs/sha3/tests/nist_vectors.rs new file mode 100644 index 0000000000..67d6c5a1f8 --- /dev/null +++ b/specs/sha3/tests/nist_vectors.rs @@ -0,0 +1,206 @@ +use hacspec_sha3::*; + +/// Helper to decode a hex string to a byte vector. +fn hex_to_bytes(s: &str) -> Vec { + hex::decode(s).expect("valid hex") +} + +// ============================================================ +// SHA3-224 NIST vectors +// ============================================================ + +#[test] +fn sha3_224_empty() { + let expected = hex_to_bytes("6b4e03423667dbb73b6e15454f0eb1abd4597f9a1b078e3f5b5a6bc7"); + assert_eq!(sha3_224(b"").to_vec(), expected); +} + +#[test] +fn sha3_224_abc() { + let expected = hex_to_bytes("e642824c3f8cf24ad09234ee7d3c766fc9a3a5168d0c94ad73b46fdf"); + assert_eq!(sha3_224(b"abc").to_vec(), expected); +} + +#[test] +fn sha3_224_448bit() { + // "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" + let msg = b"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"; + let expected = hex_to_bytes("8a24108b154ada21c9fd5574494479ba5c7e7ab76ef264ead0fcce33"); + assert_eq!(sha3_224(msg).to_vec(), expected); +} + +// ============================================================ +// SHA3-256 NIST vectors +// ============================================================ + +#[test] +fn sha3_256_empty() { + let expected = hex_to_bytes("a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a"); + assert_eq!(sha3_256(b"").to_vec(), expected); +} + +#[test] +fn sha3_256_abc() { + let expected = hex_to_bytes("3a985da74fe225b2045c172d6bd390bd855f086e3e9d525b46bfe24511431532"); + assert_eq!(sha3_256(b"abc").to_vec(), expected); +} + +#[test] +fn sha3_256_448bit() { + let msg = b"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"; + let expected = hex_to_bytes("41c0dba2a9d6240849100376a8235e2c82e1b9998a999e21db32dd97496d3376"); + assert_eq!(sha3_256(msg).to_vec(), expected); +} + +#[test] +fn sha3_256_896bit() { + // "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu" + let msg = b"abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu"; + let expected = hex_to_bytes("916f6061fe879741ca6469b43971dfdb28b1a32dc36cb3254e812be27aad1d18"); + assert_eq!(sha3_256(msg).to_vec(), expected); +} + +// ============================================================ +// SHA3-384 NIST vectors +// ============================================================ + +#[test] +fn sha3_384_empty() { + let expected = hex_to_bytes( + "0c63a75b845e4f7d01107d852e4c2485c51a50aaaa94fc61995e71bbee983a2ac3713831264adb47fb6bd1e058d5f004", + ); + assert_eq!(sha3_384(b"").to_vec(), expected); +} + +#[test] +fn sha3_384_abc() { + let expected = hex_to_bytes( + "ec01498288516fc926459f58e2c6ad8df9b473cb0fc08c2596da7cf0e49be4b298d88cea927ac7f539f1edf228376d25", + ); + assert_eq!(sha3_384(b"abc").to_vec(), expected); +} + +// ============================================================ +// SHA3-512 NIST vectors +// ============================================================ + +#[test] +fn sha3_512_empty() { + let expected = hex_to_bytes( + "a69f73cca23a9ac5c8b567dc185a756e97c982164fe25859e0d1dcc1475c80a615b2123af1f5f94c11e3e9402c3ac558f500199d95b6d3e301758586281dcd26", + ); + assert_eq!(sha3_512(b"").to_vec(), expected); +} + +#[test] +fn sha3_512_abc() { + let expected = hex_to_bytes( + "b751850b1a57168a5693cd924b6b096e08f621827444f70d884f5d0240d2712e10e116e9192af3c91a7ec57647e3934057340b4cf408d5a56592f8274eec53f0", + ); + assert_eq!(sha3_512(b"abc").to_vec(), expected); +} + +// ============================================================ +// SHAKE128 NIST vectors +// ============================================================ + +#[test] +fn shake128_empty_32() { + let expected = hex_to_bytes("7f9c2ba4e88f827d616045507605853ed73b8093f6efbc88eb1a6eacfa66ef26"); + assert_eq!(shake128::<32>(b"").to_vec(), expected); +} + +#[test] +fn shake128_abc_32() { + let expected = hex_to_bytes("5881092dd818bf5cf8a3ddb793fbcba74097d5c526a6d35f97b83351940f2cc8"); + assert_eq!(shake128::<32>(b"abc").to_vec(), expected); +} + +// ============================================================ +// SHAKE256 NIST vectors +// ============================================================ + +#[test] +fn shake256_empty_32() { + let expected = hex_to_bytes("46b9dd2b0ba88d13233b3feb743eeb243fcd52ea62b81b82b50c27646ed5762f"); + assert_eq!(shake256::<32>(b"").to_vec(), expected); +} + +#[test] +fn shake256_abc_32() { + let expected = hex_to_bytes("483366601360a8771c6863080cc4114d8db44530f8f1e1ee4f94ea37e78b5739"); + assert_eq!(shake256::<32>(b"abc").to_vec(), expected); +} + +// ============================================================ +// SHAKE with longer output (squeeze multiple blocks) +// ============================================================ + +#[test] +fn shake256_empty_64() { + let expected = hex_to_bytes( + "46b9dd2b0ba88d13233b3feb743eeb243fcd52ea62b81b82b50c27646ed5762fd75dc4ddd8c0f200cb05019d67b592f6fc821c49479ab48640292eacb3b7c4be", + ); + assert_eq!(shake256::<64>(b"").to_vec(), expected); +} + +// ============================================================ +// Padding boundary tests +// ============================================================ + +#[test] +fn sha3_256_rate_minus_1() { + // Message of length rate-1 = 135 bytes: padding fits in the last byte + let msg = vec![0xABu8; 135]; + let result = sha3_256(&msg); + assert_eq!(result.len(), 32); +} + +#[test] +fn sha3_256_exact_rate() { + // Message of length rate = 136 bytes: forces an extra block for padding + let msg = vec![0xABu8; 136]; + let result = sha3_256(&msg); + assert_eq!(result.len(), 32); +} + +#[test] +fn sha3_256_rate_plus_1() { + // Message of length rate+1 = 137 bytes + let msg = vec![0xABu8; 137]; + let result = sha3_256(&msg); + assert_eq!(result.len(), 32); +} + +// ============================================================ +// Proptest: determinism and output length +// ============================================================ + +use proptest::prelude::*; + +proptest! { + #[test] + fn sha3_256_deterministic(msg in proptest::collection::vec(any::(), 0..512)) { + let h1 = sha3_256(&msg); + let h2 = sha3_256(&msg); + prop_assert_eq!(h1, h2); + } + + #[test] + fn sha3_512_output_length(msg in proptest::collection::vec(any::(), 0..512)) { + let h = sha3_512(&msg); + prop_assert_eq!(h.len(), 64); + } + + #[test] + fn shake128_output_length(msg in proptest::collection::vec(any::(), 0..256)) { + let h = shake128::<16>(&msg); + prop_assert_eq!(h.len(), 16); + } + + #[test] + fn shake256_output_length(msg in proptest::collection::vec(any::(), 0..256)) { + let h = shake256::<48>(&msg); + prop_assert_eq!(h.len(), 48); + } +} diff --git a/specs/sha3/tests/portable.rs b/specs/sha3/tests/portable.rs new file mode 100644 index 0000000000..5a18c96b79 --- /dev/null +++ b/specs/sha3/tests/portable.rs @@ -0,0 +1,176 @@ +/// Tests ported from ../../crates/algorithms/sha3/tests/portable.rs +/// Tests the spec against the same hardcoded test vectors used by the reference implementation. +mod test_vectors; + +use hacspec_sha3::*; + +const DIGEST_LEN: usize = 42; +const STRING_LEN: usize = DIGEST_LEN * 2; + +#[test] +fn test_sha3_224() { + assert_eq!( + hex::encode(sha3_224(test_vectors::EMPTY)), + test_vectors::sha3_224::EMPTY + ); + assert_eq!( + hex::encode(sha3_224(test_vectors::HELLO)), + test_vectors::sha3_224::HELLO + ); + assert_eq!( + hex::encode(sha3_224(test_vectors::STAR0)), + test_vectors::sha3_224::STAR0 + ); +} + +#[test] +fn test_sha3_256() { + assert_eq!( + hex::encode(sha3_256(test_vectors::EMPTY)), + test_vectors::sha3_256::EMPTY + ); + assert_eq!( + hex::encode(sha3_256(test_vectors::HELLO)), + test_vectors::sha3_256::HELLO + ); + assert_eq!( + hex::encode(sha3_256(test_vectors::STAR0)), + test_vectors::sha3_256::STAR0 + ); +} + +#[test] +fn test_sha3_384() { + assert_eq!( + hex::encode(sha3_384(test_vectors::EMPTY)), + test_vectors::sha3_384::EMPTY + ); + assert_eq!( + hex::encode(sha3_384(test_vectors::HELLO)), + test_vectors::sha3_384::HELLO + ); + assert_eq!( + hex::encode(sha3_384(test_vectors::STAR0)), + test_vectors::sha3_384::STAR0 + ); +} + +#[test] +fn test_sha3_512() { + assert_eq!( + hex::encode(sha3_512(test_vectors::EMPTY)), + test_vectors::sha3_512::EMPTY + ); + assert_eq!( + hex::encode(sha3_512(test_vectors::HELLO)), + test_vectors::sha3_512::HELLO + ); + assert_eq!( + hex::encode(sha3_512(test_vectors::STAR0)), + test_vectors::sha3_512::STAR0 + ); +} + +#[test] +fn test_shake128() { + // Test with 42-byte output (DIGEST_LEN) + let digest = shake128::(test_vectors::EMPTY); + assert_eq!( + hex::encode(digest), + &test_vectors::shake128::EMPTY_FIVE_BLOCKS[..STRING_LEN] + ); + + let digest = shake128::(test_vectors::HELLO); + assert_eq!( + hex::encode(digest), + &test_vectors::shake128::HELLO_FIVE_BLOCKS[..STRING_LEN] + ); + + // Test with 53-byte output + let digest = shake128::<53>(test_vectors::STAR0); + assert_eq!( + hex::encode(digest), + test_vectors::shake128::STAR0_FIVE_BLOCKS[..53 * 2] + ); +} + +#[test] +fn test_shake256() { + // Test with 42-byte output (DIGEST_LEN) + let digest = shake256::(test_vectors::EMPTY); + assert_eq!( + hex::encode(digest), + &test_vectors::shake256::EMPTY_FIVE_BLOCKS[..STRING_LEN] + ); + + let digest = shake256::(test_vectors::HELLO); + assert_eq!( + hex::encode(digest), + &test_vectors::shake256::HELLO_FIVE_BLOCKS[..STRING_LEN] + ); + + // Test with 71-byte output + let digest = shake256::<71>(test_vectors::STAR0); + assert_eq!( + hex::encode(digest), + test_vectors::shake256::STAR0_FIVE_BLOCKS[..71 * 2] + ); +} + +// Multi-block squeeze tests: verify we produce the full 5-block outputs correctly. + +#[test] +fn shake128_five_blocks_empty() { + // 5 blocks of SHAKE128 = 5 * 168 = 840 bytes + let digest = shake128::<840>(test_vectors::EMPTY); + assert_eq!( + hex::encode(digest), + test_vectors::shake128::EMPTY_FIVE_BLOCKS + ); +} + +#[test] +fn shake128_five_blocks_hello() { + let digest = shake128::<840>(test_vectors::HELLO); + assert_eq!( + hex::encode(digest), + test_vectors::shake128::HELLO_FIVE_BLOCKS + ); +} + +#[test] +fn shake128_five_blocks_star0() { + let digest = shake128::<840>(test_vectors::STAR0); + assert_eq!( + hex::encode(digest), + test_vectors::shake128::STAR0_FIVE_BLOCKS + ); +} + +#[test] +fn shake256_five_blocks_empty() { + // 5 blocks of SHAKE256 = 5 * 136 = 680 bytes + let digest = shake256::<680>(test_vectors::EMPTY); + assert_eq!( + hex::encode(digest), + test_vectors::shake256::EMPTY_FIVE_BLOCKS + ); +} + +#[test] +fn shake256_five_blocks_hello() { + let digest = shake256::<680>(test_vectors::HELLO); + assert_eq!( + hex::encode(digest), + test_vectors::shake256::HELLO_FIVE_BLOCKS + ); +} + +#[test] +fn shake256_five_blocks_star0() { + let digest = shake256::<680>(test_vectors::STAR0); + assert_eq!( + hex::encode(digest), + test_vectors::shake256::STAR0_FIVE_BLOCKS + ); +} diff --git a/specs/sha3/tests/sponge_decomposition.rs b/specs/sha3/tests/sponge_decomposition.rs new file mode 100644 index 0000000000..e5cdd46493 --- /dev/null +++ b/specs/sha3/tests/sponge_decomposition.rs @@ -0,0 +1,41 @@ +//! Pins down `keccak == squeeze ∘ absorb`, exercised across the +//! SHA-3 / SHAKE rates and delimiters. + +use hacspec_sha3::sponge::{absorb, keccak, squeeze}; + +fn check(rate: usize, delim: u8, msg: &[u8]) { + let via_keccak = keccak::(rate, delim, msg); + let via_split = squeeze::(absorb(rate, delim, msg), rate); + assert_eq!( + via_keccak, + via_split, + "keccak != squeeze(absorb) for rate={rate}, delim={delim:#x}, msg.len()={}", + msg.len() + ); +} + +#[test] +fn keccak_equals_squeeze_of_absorb() { + let empty: [u8; 0] = []; + let short = b"hello world"; + let long: Vec = (0u8..200).collect(); + + // SHA3-224: rate=144, delim=0x06, out=28 + check::<28>(144, 0x06, &empty); + check::<28>(144, 0x06, short); + check::<28>(144, 0x06, &long); + // SHA3-256: rate=136, delim=0x06, out=32 + check::<32>(136, 0x06, &empty); + check::<32>(136, 0x06, short); + check::<32>(136, 0x06, &long); + // SHA3-384: rate=104, delim=0x06, out=48 + check::<48>(104, 0x06, short); + // SHA3-512: rate=72, delim=0x06, out=64 + check::<64>(72, 0x06, short); + // SHAKE128: rate=168, delim=0x1f — short and long output exercise the squeeze loop. + check::<16>(168, 0x1f, short); + check::<200>(168, 0x1f, short); + // SHAKE256: rate=136, delim=0x1f. + check::<64>(136, 0x1f, short); + check::<300>(136, 0x1f, short); +} diff --git a/specs/sha3/tests/test_vectors.rs b/specs/sha3/tests/test_vectors.rs new file mode 100644 index 0000000000..b061375150 --- /dev/null +++ b/specs/sha3/tests/test_vectors.rs @@ -0,0 +1,202 @@ +#![allow(dead_code)] + +/// Hardcoded test vectors from ../../crates/algorithms/sha3/tests/test_vectors.rs + +pub const EMPTY: &[u8] = b""; +pub const HELLO: &[u8] = b"Hello, World!"; +pub const STAR0: &[u8] = b"These are not the droids you are looking for."; + +pub mod sha3_224 { + pub const HELLO: &str = "853048fb8b11462b6100385633c0cc8dcdc6e2b8e376c28102bc84f2"; + pub const EMPTY: &str = "6b4e03423667dbb73b6e15454f0eb1abd4597f9a1b078e3f5b5a6bc7"; + pub const STAR0: &str = "4d2185f4c559133687b9248f141f0a2b14189dd3e10f63146520bc17"; +} + +pub mod sha3_256 { + pub const HELLO: &str = "1af17a664e3fa8e419b8ba05c2a173169df76162a5a286e0c405b460d478f7ef"; + pub const EMPTY: &str = "a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a"; + pub const STAR0: &str = "f4c623a5f35162ff830afdfea24dfb35ef03a7ef67ff3e35736b9b08ee60401f"; +} + +pub mod sha3_384 { + pub const HELLO: &str = "aa9ad8a49f31d2ddcabbb7010a1566417cff803fef50eba239558826f872e468c5\ + 743e7f026b0a8e5b2d7a1cc465cdbe"; + pub const EMPTY: &str = "0c63a75b845e4f7d01107d852e4c2485c51a50aaaa94fc61995e71bbee983a2ac3\ + 713831264adb47fb6bd1e058d5f004"; + pub const STAR0: &str = "b26e8b9b49ed07dcece0359ff5a59c801da66fef6e5bfb\ + bd9b2a1c9a425fb599778b2cc278d09e2c3d800727f99ed3c5"; +} + +pub mod sha3_512 { + pub const HELLO: &str = "38e05c33d7b067127f217d8c856e554fcff09c9320b8a5979ce2ff5d95dd27ba35\ + d1fba50c562dfd1d6cc48bc9c5baa4390894418cc942d968f97bcb659419ed"; + pub const EMPTY: &str = "a69f73cca23a9ac5c8b567dc185a756e97c982164fe25859e0d1dcc1475c80a615\ + b2123af1f5f94c11e3e9402c3ac558f500199d95b6d3e301758586281dcd26"; + pub const STAR0: &str = "02c3dbe6d722fe92cb8d50be2afbc67c3fda1c34ef69605829ce61398a67a39c92\ + f5c8f8f2abc026efc977de11418d87e25a7fefff54117d8350701642a9d983"; +} + +pub mod shake128 { + pub const EMPTY_FIVE_BLOCKS: &str = + "7f9c2ba4e88f827d616045507605853ed73b8093f6efbc88eb1a6eacfa66ef263\ + cb1eea988004b93103cfb0aeefd2a686e01fa4a58e8a3639ca8a1e3f9ae5\ + 7e235b8cc873c23dc62b8d260169afa2f75ab916a58d974918835d25e6a4\ + 35085b2badfd6dfaac359a5efbb7bcc4b59d538df9a04302e10c8bc1cbf1\ + a0b3a5120ea17cda7cfad765f5623474d368ccca8af0007cd9f5e4c849f1\ + 67a580b14aabdefaee7eef47cb0fca9767be1fda69419dfb927e9df07348\ + b196691abaeb580b32def58538b8d23f87732ea63b02b4fa0f4873360e28\ + 41928cd60dd4cee8cc0d4c922a96188d032675c8ac850933c7aff1533b94\ + c834adbb69c6115bad4692d8619f90b0cdf8a7b9c264029ac185b70b83f2\ + 801f2f4b3f70c593ea3aeeb613a7f1b1de33fd75081f592305f2e4526edc\ + 09631b10958f464d889f31ba010250fda7f1368ec2967fc84ef2ae9aff26\ + 8e0b1700affc6820b523a3d917135f2dff2ee06bfe72b3124721d4a26c04\ + e53a75e30e73a7a9c4a95d91c55d495e9f51dd0b5e9d83c6d5e8ce803aa6\ + 2b8d654db53d09b8dcff273cdfeb573fad8bcd45578bec2e770d01efde86\ + e721a3f7c6cce275dabe6e2143f1af18da7efddc4c7b70b5e345db93cc93\ + 6bea323491ccb38a388f546a9ff00dd4e1300b9b2153d2041d205b443e41\ + b45a653f2a5c4492c1add544512dda2529833462b71a41a45be97290b6f4\ + cffda2cf990051634a4b1edf6114fb49083c1fa3b302ee097f051266be69\ + dc716fdeef91b0d4ab2de525550bf80dc8a684bc3b5a4d46b7efae7afdc6\ + 292988dc9acae03f8634486c1abe2781aae4c02f3460d2cd4e6a463a2ba9\ + 562ee623cf0e9f82ab4d0b5c9d040a269366479dff0038abfaf2e0ff21f3\ + 6968972e3f104ddcbe1eb831a87c213162e29b34adfa564d121e9f6e7729\ + f4203fc5c6c22fa7a7350afddb620923a4a129b8acb19ea10f818c30e3b5\ + b1c571fa79e57ee304388316a02fcd93a0d8ee02bb85701ee4ff097534b5\ + 02c1b12fbb95c8ccb2f548921d99cc7c9fe17ac991b675e631144423eef7\ + a5869168da63d1f4c21f650c02923bfd396ca6a5db541068624cbc5ffe20\ + 8c0d1a74e1a29618d0bb60036f5249abfa88898e393718d6efab05bb4127\ + 9efcd4c5a0cc837ccfc22be4f725c081f6aa090749dba7077bae8d4"; + pub const HELLO_FIVE_BLOCKS: &str = + "2bf5e6dee6079fad604f573194ba8426bd4d30eb13e8ba2edae70e529b570cbdd\ + 588f2c5dd4e465dfbafaa7c5634249c8929dc04165a9edb26be19ce03619\ + 6d178454d03b738b0d6b40013954208e40214908a8d388f9a9d997e2e381\ + f571dec1dfa816df96e3cb635e99a8d7d072fac7b7664d45a7a43b258cbe\ + 290a4c735977a9a8e9c363564f2e13c80f1e3611907a09756a7ba87e07f5\ + 4856489d2edae1634afed8503ab6561d79b0fbb64f75a9822335c2fc7017\ + 8114b4460c979a22c78c4890c611b0cf5091f2ac4aff35d190832a36bc61\ + 9f0e66fcb7c32044293207c15a686bd1f5f2a314147a583454826fd43874\ + 7784cf715e13008adf597dcd3cd87f633dc8a80bbd6a18bdd02551697d8c\ + 66009961645875c8ad37c2fbc81c7727cbb99dcd8fba52e91a6a8580c284\ + 6430a629a150492a3a2d93bf93c8b704e0a05fa891bdf8aee78f646cd06e\ + 357acf909982e864375059076fe2079ddcc4227a479ff6cb72eec7a4fca4\ + edf94c014c9f725d9704afbb265e611f705c696e6e02cf166007c0cd7d93\ + 50901033d4f26fa74b13f9a40515756753c56412c1662c3e1d118df42f41\ + 780ba028b6a650a3cef7a7fe07f0f2f18f33a08fe21b55d0a6effc6dd3dc\ + 753e1c2686ca428863731ce17cfd06ae7396cfbc5cbe05745fd89e822469\ + b459e1266d7c0b96ac63d61de57710afef99ab06329c5809a9f47f914e1a\ + ff52f0883a6be14ed361af6cdb6e5146eac04fb704ade9154f94d88807c9\ + 8d4aea95f6f25e6e71cded62cfcc7cd2fd0c7a29b3e9c284282fa4744004\ + b98902ce6ae90e2d310a1c71227ca7602a4a8f7d44eda895ef2c85280e4c\ + 1d35f351761ca598ec19fdee75feb5a44368600f735e6b17d8d6000570b4\ + b35940b18334835d06d2537f398c0d04fd354fa100840f865ba2b30818c5\ + f56ed7af478cd0be37b3e3486257bf2c092f9477c16b1918d15c33c7bce0\ + 63440699b0a3407570f9076abf19f33aaee83d5fa2abdc81e9380df2b2d6\ + 5511dfce21bd969dc69a99aa5bdc1cbf0c7410f9f5da0f6403243562accb\ + c99fc734804563770d518c27aa3f9e2714d8e945b4df71d5c4d6b6d91e2f\ + 981ff84e260e2011618bbd3d59ec07948eee3de448b8916d19fda8152f55\ + 78108506cdb5b8103956dc80c789085c0af06483a9892e4b1ff0d97"; + pub const STAR0_FIVE_BLOCKS: &str = + "19a693b556a7aa5b5a239997e20d1c0dae5233837d52030e619d3802af2b7b55d\ + e2bc9db3830c62ca978ac113a6f7314af6273228a0d4548fa05f3b7c72bd\ + 49aefabdd3589a85d6aebbf4005cfe8deecb80bf339264717a01368ad080\ + 50283faf1e6812ef68568da0881abf55762779b690688b6e80d7e7b023eb\ + 743f7a3ee7fa2ac0a243d379f4f27aacce86527355293d951c60ffbe2931\ + 75ceb60c61dfbbd92d9fb4870b5c3b4abb757de17a4bd004aa36b264e0ef\ + 38f8bd28edb53466276e5c13eec85ad8fc936dc99531fe622d7a4d517e56\ + 7d167cbf2ba78e12a00d7487b81cffa2a4553f93fbf3cbde8a33f357b95b\ + 96a0ff98f303de8aba84afa9bd67f578a4f713e22f226d5d7bb549066b9c\ + 6cf8130c7928e5da1ef2e1713677995a81a9f3daae3dbe5394a4ada0c777\ + 80dd227ba0ad6ee62f23f50e176c594a277c542fcd5a554ad51668d5101c\ + f9842ce3e8787ac31eeceecb6d6bb9c8abbfe7f670595ffacaeb42650aa3\ + 37a5629aad894ac27b2799c1d591f2270650e42875a177a360cbb70e692e\ + f35f692abb85e8a637a05ceced3420049e555b42cae2a54dcde2edd84d5e\ + b38eb2c4fe75b1e70b5a4c7771806f85f8dcdad3a409e9efb6e3eb3cfe11\ + 869ebd9b028c91aeb08a54dad85b155435f85405dbb8b4888469263d4e42\ + bcf58bf5e3e430dfe26e2873da14a00e8e805aea5f0ecbd5457147c4dae1\ + a80bc29b0ea326d735176f289419710fe3adfb1b8eb3fa40cc658577a99f\ + 4382bd6b2a5527991ad66d578f596cc559a12f43b928b1006db5fa651ad4\ + e7c035454238065b95fd5cf24326a78a103075bbffb8ea12c131143c147c\ + 4807160a007aa328936735fa0ef7a6456b92ec6a3ceb2be23904ac8a53c4\ + bc3064d6724a921d3270dbdb81542ee2d4b005ea0e90a001c929a418976a\ + 4d2285b6f1e2ca8c61e75c55c6801b3ea0a6dee6b91182d98c3068b507cf\ + 1929197a51949234796aefb0d8a19571dc7121275103f390183a3bbf5086\ + 1da01df2b5ba459918580a67653557deae86122e0c88fe0ac68a7d96614e\ + 2f7b6c644cffe83c17ccddcdc3e420cd695d8266eeb3f62e674d3697eefe\ + 1e0c3a380e02a0afb8321280cbf2b9e699ae7c24aa69bd311dbba554e0d3\ + 02e7b0ba906e326c3190d6f48827a1e6970cc74c3b50d6816bd57c3"; +} + +pub mod shake256 { + pub const EMPTY_FIVE_BLOCKS: &str = + "46b9dd2b0ba88d13233b3feb743eeb243fcd52ea62b81b82b50c27646ed5762fd\ + 75dc4ddd8c0f200cb05019d67b592f6fc821c49479ab48640292eacb3b7c\ + 4be141e96616fb13957692cc7edd0b45ae3dc07223c8e92937bef84bc0ea\ + b862853349ec75546f58fb7c2775c38462c5010d846c185c15111e595522\ + a6bcd16cf86f3d122109e3b1fdd943b6aec468a2d621a7c06c6a957c62b5\ + 4dafc3be87567d677231395f6147293b68ceab7a9e0c58d864e8efde4e1b\ + 9a46cbe854713672f5caaae314ed9083dab4b099f8e300f01b8650f1f4b1\ + d8fcf3f3cb53fb8e9eb2ea203bdc970f50ae55428a91f7f53ac266b28419\ + c3778a15fd248d339ede785fb7f5a1aaa96d313eacc890936c173cdcd0fa\ + b882c45755feb3aed96d477ff96390bf9a66d1368b208e21f7c10d04a3db\ + d4e360633e5db4b602601c14cea737db3dcf722632cc77851cbdde2aaf0a\ + 33a07b373445df490cc8fc1e4160ff118378f11f0477de055a81a9eda57a\ + 4a2cfb0c83929d310912f729ec6cfa36c6ac6a75837143045d791cc85eff\ + 5b21932f23861bcf23a52b5da67eaf7baae0f5fb1369db78f3ac45f8c4ac\ + 5671d85735cdddb09d2b1e34a1fc066ff4a162cb263d6541274ae2fcc865\ + f618abe27c124cd8b074ccd516301b91875824d09958f341ef274bdab0ba\ + e316339894304e35877b0c28a9b1fd166c796b9cc258a064a8f57e27f2a5\ + b8d548a728c9444ecb879adc19de0c1b8587de3e73e15d3ce2db7c9fa7b5\ + 8ffc0e87251773faf3e8f3e3cf1d4dfa723afd4da9097cb3c866acbefab2\ + c4e85e1918990ff93e0656b5f75b08729c60e6a9d7352b9efd2e33e3d1ba\ + 6e6d89edfa671266ece6be7bb5ac948b737e41590abe138ce1869c086801\ + 62f08863d174e77e07a9ddb33b57de04c443a5bd77c42036871aae789336\ + 2b27015b84b4139f0e313579b4ef5f6b642"; + pub const HELLO_FIVE_BLOCKS: &str = + "b3be97bfd978833a65588ceae8a34cf59e95585af62063e6b89d0789f372424e8\ + b0d1be4f21b40ce5a83a438473271e0661854f02d431db74e6904d6c347d\ + 757a33b44f18e740bd119782f48b0ac4ee1fa2dee4c5018ee2f186d0ff94\ + d1cece111e29a6bbd0972cb8574b5afddd55f00e50bd402c998043ba3f45\ + 53558391be010abb209af935224b8c331d0d29c008185f2c900abad89885\ + 1c4f3d941a13f03e3c315c4fb058fca2bb4e2bc53fec7866eb7e7636f276\ + dc5a167cad77b286c9a94946fe054927c48db7f30424787f56153cc67ca4\ + 9609928d24c16563d3a0aaad1ca1495003374868ec422a72bedd2f387abc\ + 350b46a9a6580a3ceb56b602b7edab836d58d8bb6b1a6975aaad42554132\ + 71ec544ddea12dbb65003da4273650d6e3b51373e4e86fced975dad607ad\ + d1184702952d4bf8459d05197293d35b59688a9f13806887f9845211eb2d\ + 0b9cc1e089eba8c16f9967d80ec181a754ea6511a897c736ba4c09871d99\ + 3a41cf7efb08f0479935eaa811865002353f39594d432417d0e70d371509\ + bb0b76003e9712354427ab1e4f69ebd5e32b585166b3e843b062efa32bc7\ + 1bbdc0989b87137752452a8a908ccea6ee1980e9213c6a380cdb947be228\ + 5416b088ee4646793286d44b25df89575df2ef08a4c78237e7e25ec8b3a3\ + af7a63c0aa0fd46582874ab9417fb4e720298a4d6de8faa6f71a4ef4e6a1\ + 4a5dcce0f002465987e661e9ed0d39fa79d018572ac40613630bf68868de\ + 5cbe1e33eb014cdeeb125f8842fd1b0bd3c4970f2ddb9a3db5cdd0ca7e37\ + 785d2029bbe2e6a8a225265fbbdd12e9712a538f5a346eeab6f9cc296580\ + e6d7c274d07084e758d01006b22bd45778ecb86bb495d413aef4dc28aa84\ + 8f46cbe4e189fb0d3de54bf2c146d280b163e9358200547ee71207f11a4e\ + 25e643a4552d6971cf4efb277a7d1d10095"; + pub const STAR0_FIVE_BLOCKS: &str = + "318b90eacc9b56ffc4d3d6c4fe4983ff1e42c294c7b7df777b631956cfb5f2dce\ + b839182800ff60b0cc2df9e282860abdae32c9e1c71cd1cf6b753b1e3edb\ + f181a9e7503bb92de170a9656c164801e985099c69bf70dc24d1aa405719\ + f9389584759754297877c18254c431db55de8310adb892cf3ca1f08eaf1d\ + eeb3cc97c1e25841e03e83a0b71686cc4fc828f14cea4b80906aa0138aaf\ + febb5c179fa68b96ea4249f442b6689a7736d1e888602aced180b23405f0\ + d5c5a859485769f5e22d00496672f5dedd6f8a5d68d209020c127021e8a1\ + b8b98dfe88e8407724702dd42576fc57404d54fc3ef3149225a9487ec1c6\ + d0e73dc15787a0fef9fde69f3f7416aec6942cc3a78ad17967d3eb607fb0\ + c55579cb3f88f8cefdeb45ba2d0b31f5986a89f5ac1eaf762e7092625251\ + 28f5b6cc29e382a8e22afad105fd6d7cc407868d5aeb71eae736fb2a1974\ + a1d185e9faf57c237bd8cf76ad86ceb36626fdef09ab79c700aa5bf0bbaf\ + b715903ee99b37e8c82061c6c40a4817208c1eb457b2d9972240b7e70853\ + cfab815594ab5118cb31edc61d1d632a9524f6a43fc2fc72a8c0402ce51c\ + 9acbcba25acae9f66eff30d865c493c6be716fbe130e17b774ae9d8bc67d\ + 2eb9fd2f71c9f896b68a25fd09bcd8074353286b7878418c8a7d2a0a9a2b\ + bb219120cf35ab38059670b300a0a4b79be03b37974641b22e51198657d2\ + 7641b685952064d16efc2e70752f2fc882b108e0a23bfbd1dffafbbf5701\ + d801b0e1c5788e60646ed82a045ee5c843111e73863e8cd644f49b93b6aa\ + 39621bbe7ed44179707e146440926bca29226db5bee9d986f4cd564cd5a2\ + f2948d56792b1a17a8fea43d60bb81d31020d6a37b52b5f00bb164ccd0c0\ + e7d32d74816ebace533f5ef6eb44b621a9352862ae55f8d6924f2923a4a2\ + 57a4f0430584b8b029fac9e675116589513"; +} From 3640bedcdee30a3746cc5a9cbf8b386864292c97 Mon Sep 17 00:00:00 2001 From: Karthikeyan Bhargavan Date: Wed, 6 May 2026 09:09:29 +0200 Subject: [PATCH 02/14] sha3: fix get_ij/set_ij index formula MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The KeccakState helpers used 5*j+i but the rest of the impl (and the corresponding hacspec spec, see specs/sha3) treats the lane layout as 5*i+j. Aligns with FIPS 202 §3.1.2 lane indexing. Authored by Karthik Bhargavan with Claude (Opus 4.7) used to review and test. --- crates/algorithms/sha3/src/traits.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/algorithms/sha3/src/traits.rs b/crates/algorithms/sha3/src/traits.rs index 99b9328d0b..2d2876dbb3 100644 --- a/crates/algorithms/sha3/src/traits.rs +++ b/crates/algorithms/sha3/src/traits.rs @@ -9,7 +9,7 @@ use crate::proof_utils::{slices_same_len, valid_rate}; #[hax_lib::requires(i < 5 && j < 5)] #[inline(always)] pub(crate) fn get_ij>(arr: &[T; 25], i: usize, j: usize) -> &T { - &arr[5 * j + i] + &arr[5 * i + j] } #[hax_lib::requires(i < 5 && j < 5)] @@ -20,7 +20,7 @@ pub(crate) fn set_ij>( j: usize, value: T, ) { - arr[5 * j + i] = value; + arr[5 * i + j] = value; } /// A Keccak Item for multiplexing arithmetic implementations. From 283776c585df96886d942289bf4c0e2dede35f1d Mon Sep 17 00:00:00 2001 From: Karthikeyan Bhargavan Date: Wed, 6 May 2026 09:09:39 +0200 Subject: [PATCH 03/14] sha3: add cross-spec tests against hacspec_sha3 Adds crates/algorithms/sha3/tests/cross_spec.rs comparing the public SHA-3/SHAKE API (including AVX2 x4 SHAKE256 and Neon x2 parallel variants) against hacspec_sha3 on boundary input sizes. Adds an embedded #[cfg(test)] mod cross_spec_tests in generic_keccak.rs that compares each permutation step (theta, rho, pi, chi, iota, keccakf1600) and the simd::portable load_block / load_last / store_block helpers against the spec. Exposes generic_keccak::constants as pub(crate) for the test mod. Adds hacspec_sha3 as a [dev-dependencies] entry in the sha3 crate's Cargo.toml. Tests authored by Karthik Bhargavan. Claude (Opus 4.7) was used to review and test. --- crates/algorithms/sha3/Cargo.toml | 1 + crates/algorithms/sha3/src/generic_keccak.rs | 368 ++++++++++++++- crates/algorithms/sha3/tests/cross_spec.rs | 456 +++++++++++++++++++ 3 files changed, 824 insertions(+), 1 deletion(-) create mode 100644 crates/algorithms/sha3/tests/cross_spec.rs diff --git a/crates/algorithms/sha3/Cargo.toml b/crates/algorithms/sha3/Cargo.toml index 642ec7ffc3..d45f88c98b 100644 --- a/crates/algorithms/sha3/Cargo.toml +++ b/crates/algorithms/sha3/Cargo.toml @@ -34,6 +34,7 @@ rand = "0.10" cavp = { path = "../../../cavp" } pretty_env_logger = "0.5.0" clap = { version = "4.5.39", features = ["derive"] } +hacspec_sha3 = { path = "../../../specs/sha3" } [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(hax)', 'cfg(eurydice)'] } diff --git a/crates/algorithms/sha3/src/generic_keccak.rs b/crates/algorithms/sha3/src/generic_keccak.rs index a87a6adadf..5530d09a0c 100644 --- a/crates/algorithms/sha3/src/generic_keccak.rs +++ b/crates/algorithms/sha3/src/generic_keccak.rs @@ -15,7 +15,7 @@ use hax_lib::{constructors::from_bool, int::ToInt}; pub(crate) mod xof; /// Constants in SHA3. -mod constants; +pub(crate) mod constants; use constants::*; /// Simd128 specific implementations. @@ -308,3 +308,369 @@ impl> Index<(usize, usize)> for KeccakState KeccakState<1, u64> { + KeccakState { st } + } + + /// Non-trivial test state: keccak-f applied to state where lane 0 = 1. + fn test_state() -> [u64; 25] { + let mut st = [0u64; 25]; + st[0] = 1; + spec_kf::keccak_f(st) + } + + // -- Layer 1: Constants -- + + #[test] + fn round_constants_match() { + assert_eq!(ROUNDCONSTANTS, spec_kf::ROUND_CONSTANTS); + } + + // -- Layer 2: Permutation steps -- + + #[test] + fn theta_rho_matches_spec() { + for &st in &[[0u64; 25], test_state()] { + let mut s = wrap(st); + let t = s.theta(); + s.rho(t); + assert_eq!(s.st, spec_kf::rho(spec_kf::theta(st))); + } + } + + #[test] + fn pi_matches_spec() { + let st = test_state(); + let mut s = wrap(st); + s.pi(); + assert_eq!(s.st, spec_kf::pi(st)); + } + + #[test] + fn chi_matches_spec() { + let st = test_state(); + let mut s = wrap(st); + s.chi(); + assert_eq!(s.st, spec_kf::chi(st)); + } + + #[test] + fn iota_matches_spec() { + for round in 0..24 { + let st = test_state(); + let mut s = wrap(st); + s.iota(round); + assert_eq!(s.st, spec_kf::iota(st, round)); + } + } + + #[test] + fn keccak_f_matches_spec() { + for &st in &[[0u64; 25], test_state()] { + let mut s = wrap(st); + s.keccakf1600(); + assert_eq!(s.st, spec_kf::keccak_f(st)); + } + } + + #[test] + fn single_round_matches_spec() { + let st = test_state(); + let spec = spec_kf::iota( + spec_kf::chi(spec_kf::pi(spec_kf::rho(spec_kf::theta(st)))), + 0, + ); + let mut s = wrap(st); + let t = s.theta(); + s.rho(t); + s.pi(); + s.chi(); + s.iota(0); + assert_eq!(s.st, spec); + } + + // -- Layer 3: Sponge helpers -- + + #[test] + fn load_block_matches_spec() { + let block = [0xABu8; 200]; + let mut impl_st = [0u64; 25]; + crate::simd::portable::load_block::<136>(&mut impl_st, &block, 0); + let spec_st = spec_sponge::xor_block_into_state([0u64; 25], &block, 136); + assert_eq!(impl_st, spec_st); + } + + #[test] + fn load_block_with_offset() { + let mut data = [0u8; 400]; + for (i, b) in data.iter_mut().enumerate() { + *b = (i & 0xFF) as u8; + } + let mut impl_st = [0u64; 25]; + crate::simd::portable::load_block::<136>(&mut impl_st, &data, 136); + let spec_st = spec_sponge::xor_block_into_state([0u64; 25], &data[136..272], 136); + assert_eq!(impl_st, spec_st); + } + + #[test] + fn store_block_matches_spec() { + let state = test_state(); + let mut impl_out = [0u8; 200]; + crate::simd::portable::store_block::<136>(&state, &mut impl_out, 0, 136); + let mut spec_out = [0u8; 200]; + spec_out = spec_sponge::squeeze_state(&state, spec_out, 0, 136); + assert_eq!(impl_out[..136], spec_out[..136]); + } + + #[test] + fn load_last_matches_spec_padding() { + // Test various last-block sizes for SHA3-256 (rate=136, delim=0x06) + let rate = 136usize; + for len in [0, 1, 7, 8, 9, 15, 16, 17, 64, 100, 135] { + let mut msg = [0u8; 135]; + for i in 0..len { + msg[i] = (i & 0xFF) as u8; + } + let mut impl_st = [0u64; 25]; + crate::simd::portable::load_last::<136, 0x06>(&mut impl_st, &msg[..len], 0, len); + + let mut last_block = [0u8; 200]; + last_block[..len].copy_from_slice(&msg[..len]); + last_block[len] = 0x06; + last_block[rate - 1] |= 0x80; + let spec_st = spec_sponge::xor_block_into_state([0u64; 25], &last_block, rate); + assert_eq!(impl_st, spec_st, "load_last mismatch at len={len}"); + } + } + + #[test] + fn load_block_all_rates() { + // Test load_block for every rate used by SHA3/SHAKE variants + let data = [0xCDu8; 200]; + macro_rules! test_rate { + ($rate:expr) => { + let mut impl_st = [0u64; 25]; + crate::simd::portable::load_block::<$rate>(&mut impl_st, &data, 0); + let spec_st = spec_sponge::xor_block_into_state([0u64; 25], &data, $rate); + assert_eq!(impl_st, spec_st, "load_block mismatch at rate={}", $rate); + }; + } + test_rate!(72); // SHA3-512 + test_rate!(104); // SHA3-384 + test_rate!(136); // SHA3-256 / SHAKE256 + test_rate!(144); // SHA3-224 + test_rate!(168); // SHAKE128 + } + + #[test] + fn store_block_partial_len() { + // Test squeeze with various lengths (not just the full rate) + let state = test_state(); + for &len in &[8, 16, 64, 72, 104, 136] { + let mut impl_out = [0u8; 200]; + crate::simd::portable::store_block::<136>(&state, &mut impl_out, 0, len); + let mut spec_out = [0u8; 200]; + spec_out = spec_sponge::squeeze_state(&state, spec_out, 0, len); + assert_eq!( + impl_out[..len], + spec_out[..len], + "store_block mismatch at len={len}" + ); + } + } + + #[test] + fn store_block_with_offset() { + let state = test_state(); + let len = 72; + let offset = 64; + let mut impl_out = [0u8; 200]; + crate::simd::portable::store_block::<136>(&state, &mut impl_out, offset, len); + let mut spec_out = [0u8; 200]; + spec_out = spec_sponge::squeeze_state(&state, spec_out, offset, len); + assert_eq!( + impl_out[offset..offset + len], + spec_out[offset..offset + len] + ); + } + +} + +/// NEON to_spec tests: verify that each permutation step on KeccakState<2, uint64x2_t> +/// operates lane-wise, i.e. extracting lane l from the SIMD result equals the scalar +/// spec step applied to lane l of the input. This validates the `to_spec` commutativity +/// property that the F* generalization proof is built on. +#[cfg(all(test, feature = "simd128"))] +mod neon_to_spec_tests { + use super::*; + use hacspec_sha3::keccak_f as spec_kf; + use libcrux_intrinsics::arm64::*; + + /// Extract lane `l` (0 or 1) from a KeccakState<2, uint64x2_t> → [u64; 25] + fn extract_lane(state: &KeccakState<2, _uint64x2_t>, lane: usize) -> [u64; 25] { + assert!(lane < 2); + let mut out = [0u64; 25]; + for i in 0..25 { + let mut tmp = [0u64; 2]; + _vst1q_u64(&mut tmp, state.st[i]); + out[i] = tmp[lane]; + } + out + } + + /// to_spec: KeccakState<2, uint64x2_t> → [[u64; 25]; 2] + fn to_spec(state: &KeccakState<2, _uint64x2_t>) -> [[u64; 25]; 2] { + [extract_lane(state, 0), extract_lane(state, 1)] + } + + /// Pack two scalar [u64; 25] states into a KeccakState<2, uint64x2_t> + fn from_spec(lanes: [[u64; 25]; 2]) -> KeccakState<2, _uint64x2_t> { + let mut st = [_vdupq_n_u64(0); 25]; + for i in 0..25 { + let arr = [lanes[0][i], lanes[1][i]]; + st[i] = _vld1q_u64(&arr); + } + KeccakState { st } + } + + /// Two distinct non-trivial test states for packing into lanes. + fn test_states() -> [[u64; 25]; 2] { + let mut st0 = [0u64; 25]; + st0[0] = 1; + let st0 = spec_kf::keccak_f(st0); + + let mut st1 = [0u64; 25]; + st1[0] = 0xDEAD_BEEF_CAFE_BABEu64; + let st1 = spec_kf::keccak_f(st1); + + [st0, st1] + } + + #[test] + fn to_spec_roundtrip() { + let lanes = test_states(); + let packed = from_spec(lanes); + let extracted = to_spec(&packed); + assert_eq!(extracted, lanes, "to_spec(from_spec(x)) != x"); + } + + #[test] + fn neon_theta_rho_to_spec() { + let lanes = test_states(); + let mut s = from_spec(lanes); + let t = s.theta(); + s.rho(t); + let result = to_spec(&s); + for l in 0..2 { + let spec = spec_kf::rho(spec_kf::theta(lanes[l])); + assert_eq!(result[l], spec, "theta+rho mismatch on lane {l}"); + } + } + + #[test] + fn neon_pi_to_spec() { + let lanes = test_states(); + let mut s = from_spec(lanes); + s.pi(); + let result = to_spec(&s); + for l in 0..2 { + let spec = spec_kf::pi(lanes[l]); + assert_eq!(result[l], spec, "pi mismatch on lane {l}"); + } + } + + #[test] + fn neon_chi_to_spec() { + let lanes = test_states(); + let mut s = from_spec(lanes); + s.chi(); + let result = to_spec(&s); + for l in 0..2 { + let spec = spec_kf::chi(lanes[l]); + assert_eq!(result[l], spec, "chi mismatch on lane {l}"); + } + } + + #[test] + fn neon_iota_to_spec() { + for round in 0..24 { + let lanes = test_states(); + let mut s = from_spec(lanes); + s.iota(round); + let result = to_spec(&s); + for l in 0..2 { + let spec = spec_kf::iota(lanes[l], round); + assert_eq!(result[l], spec, "iota mismatch on lane {l}, round {round}"); + } + } + } + + #[test] + fn neon_single_round_to_spec() { + let lanes = test_states(); + let mut s = from_spec(lanes); + let t = s.theta(); + s.rho(t); + s.pi(); + s.chi(); + s.iota(0); + let result = to_spec(&s); + for l in 0..2 { + let spec = spec_kf::iota( + spec_kf::chi(spec_kf::pi(spec_kf::rho(spec_kf::theta(lanes[l])))), + 0, + ); + assert_eq!(result[l], spec, "single round mismatch on lane {l}"); + } + } + + #[test] + fn neon_keccakf1600_to_spec() { + let lanes = test_states(); + let mut s = from_spec(lanes); + s.keccakf1600(); + let result = to_spec(&s); + for l in 0..2 { + let spec = spec_kf::keccak_f(lanes[l]); + assert_eq!(result[l], spec, "keccakf1600 mismatch on lane {l}"); + } + } + + #[test] + fn neon_keccakf1600_zero_state() { + let lanes = [[0u64; 25]; 2]; + let mut s = from_spec(lanes); + s.keccakf1600(); + let result = to_spec(&s); + let spec = spec_kf::keccak_f([0u64; 25]); + for l in 0..2 { + assert_eq!( + result[l], spec, + "keccakf1600 zero-state mismatch on lane {l}" + ); + } + } + + #[test] + fn neon_keccakf1600_iterated() { + // Apply keccakf1600 multiple times; verify lanes stay independent + let mut lanes = test_states(); + let mut s = from_spec(lanes); + for _ in 0..5 { + s.keccakf1600(); + lanes[0] = spec_kf::keccak_f(lanes[0]); + lanes[1] = spec_kf::keccak_f(lanes[1]); + let result = to_spec(&s); + assert_eq!(result[0], lanes[0], "iterated keccakf1600 lane 0 diverged"); + assert_eq!(result[1], lanes[1], "iterated keccakf1600 lane 1 diverged"); + } + } +} diff --git a/crates/algorithms/sha3/tests/cross_spec.rs b/crates/algorithms/sha3/tests/cross_spec.rs new file mode 100644 index 0000000000..33f225c012 --- /dev/null +++ b/crates/algorithms/sha3/tests/cross_spec.rs @@ -0,0 +1,456 @@ +/// Cross-spec tests: verify top-level SHA-3 / SHAKE functions against the +/// hacspec specification. Lower-level tests (permutation steps, sponge +/// helpers) live as unit tests inside `src/generic_keccak.rs`. + +/// Generate test inputs at boundary sizes around the given rate. +/// Returns empty, 1 byte, sub-rate, rate-1, rate, rate+1, 2*rate-1, 2*rate, +/// 2*rate+1, and a large multi-block input. +fn boundary_inputs(rate: usize) -> Vec> { + [ + 0, + 1, + 8, + rate / 2, + rate - 1, + rate, + rate + 1, + 2 * rate - 1, + 2 * rate, + 2 * rate + 1, + 5 * rate + 7, + ] + .into_iter() + .map(|len| (0..len).map(|i| (i & 0xFF) as u8).collect()) + .collect() +} + +// ========================================================================= +// SHA3 hash functions — boundary input sizes for each rate +// ========================================================================= + +#[test] +fn sha3_224_boundary() { + // rate = 144 + for input in boundary_inputs(144) { + let spec = hacspec_sha3::sha3_224(&input); + let mut out = [0u8; 28]; + libcrux_sha3::portable::sha224(&mut out, &input); + assert_eq!(out, spec, "sha3_224 mismatch at len {}", input.len()); + } +} + +#[test] +fn sha3_256_boundary() { + // rate = 136 + for input in boundary_inputs(136) { + let spec = hacspec_sha3::sha3_256(&input); + let mut out = [0u8; 32]; + libcrux_sha3::portable::sha256(&mut out, &input); + assert_eq!(out, spec, "sha3_256 mismatch at len {}", input.len()); + } +} + +#[test] +fn sha3_384_boundary() { + // rate = 104 + for input in boundary_inputs(104) { + let spec = hacspec_sha3::sha3_384(&input); + let mut out = [0u8; 48]; + libcrux_sha3::portable::sha384(&mut out, &input); + assert_eq!(out, spec, "sha3_384 mismatch at len {}", input.len()); + } +} + +#[test] +fn sha3_512_boundary() { + // rate = 72 + for input in boundary_inputs(72) { + let spec = hacspec_sha3::sha3_512(&input); + let mut out = [0u8; 64]; + libcrux_sha3::portable::sha512(&mut out, &input); + assert_eq!(out, spec, "sha3_512 mismatch at len {}", input.len()); + } +} + +// ========================================================================= +// SHAKE XOFs — boundary input sizes AND boundary output sizes +// ========================================================================= + +#[test] +fn shake128_boundary_inputs() { + // rate = 168 + for input in boundary_inputs(168) { + let spec = hacspec_sha3::shake128::<64>(&input); + let mut out = [0u8; 64]; + libcrux_sha3::portable::shake128(&mut out, &input); + assert_eq!(out, spec, "shake128 input mismatch at len {}", input.len()); + } +} + +#[test] +fn shake256_boundary_inputs() { + // rate = 136 + for input in boundary_inputs(136) { + let spec = hacspec_sha3::shake256::<64>(&input); + let mut out = [0u8; 64]; + libcrux_sha3::portable::shake256(&mut out, &input); + assert_eq!(out, spec, "shake256 input mismatch at len {}", input.len()); + } +} + +#[test] +fn shake128_boundary_outputs() { + let input = b"boundary output test"; + let rate = 168; + let spec_long = hacspec_sha3::shake128::<1024>(input); + // Test output lengths around the rate boundary (squeeze multi-block) + for &out_len in &[ + 1, + 8, + rate / 2, + rate - 1, + rate, + rate + 1, + 2 * rate, + 3 * rate + 7, + ] { + let mut out = [0u8; 1024]; + libcrux_sha3::portable::shake128(&mut out[..out_len], input); + assert_eq!( + out[..out_len], + spec_long[..out_len], + "shake128 output mismatch at out_len {out_len}" + ); + } +} + +#[test] +fn shake256_boundary_outputs() { + let input = b"boundary output test"; + let rate = 136; + let spec_long = hacspec_sha3::shake256::<1024>(input); + for &out_len in &[ + 1, + 8, + rate / 2, + rate - 1, + rate, + rate + 1, + 2 * rate, + 3 * rate + 7, + ] { + let mut out = [0u8; 1024]; + libcrux_sha3::portable::shake256(&mut out[..out_len], input); + assert_eq!( + out[..out_len], + spec_long[..out_len], + "shake256 output mismatch at out_len {out_len}" + ); + } +} + +// ========================================================================= +// Squeeze structure — exercises the three branches of the split squeeze +// (output_blocks == 0 / rem == 0 / rem != 0), the F* proof's structural +// claim in Phase 16. See specs/sha3/src/sponge.rs keccak(). +// ========================================================================= + +/// For a given SHAKE rate, pick output lengths that fall into each of the +/// three structural branches. +fn squeeze_structure_lengths(rate: usize) -> Vec<(usize, &'static str)> { + vec![ + // output_blocks == 0 (output_len < rate) + (1, "zero-blocks: len=1"), + (rate / 2, "zero-blocks: len=rate/2"), + (rate - 1, "zero-blocks: len=rate-1"), + // output_blocks >= 1, output_rem == 0 (exact multiple of rate) + (rate, "exact: len=rate"), + (2 * rate, "exact: len=2*rate"), + (3 * rate, "exact: len=3*rate"), + // output_blocks >= 1, output_rem != 0 (multiple + nonzero remainder) + (rate + 1, "rem: len=rate+1"), + (2 * rate + 7, "rem: len=2*rate+7"), + (3 * rate + (rate - 1), "rem: len=3*rate+rate-1"), + ] +} + +#[test] +fn shake128_squeeze_structure() { + let input = b"squeeze structure test"; + let rate = 168; + // Spec call emits the longest output; slice to compare for each case. + let spec_long = hacspec_sha3::shake128::<2048>(input); + for (out_len, label) in squeeze_structure_lengths(rate) { + assert!(out_len <= 2048); + let mut out = [0u8; 2048]; + libcrux_sha3::portable::shake128(&mut out[..out_len], input); + assert_eq!( + out[..out_len], + spec_long[..out_len], + "shake128 structure mismatch ({label})" + ); + } +} + +#[test] +fn shake256_squeeze_structure() { + let input = b"squeeze structure test"; + let rate = 136; + let spec_long = hacspec_sha3::shake256::<2048>(input); + for (out_len, label) in squeeze_structure_lengths(rate) { + assert!(out_len <= 2048); + let mut out = [0u8; 2048]; + libcrux_sha3::portable::shake256(&mut out[..out_len], input); + assert_eq!( + out[..out_len], + spec_long[..out_len], + "shake256 structure mismatch ({label})" + ); + } +} + +// ========================================================================= +// EMA variants match return variants +// ========================================================================= + +#[test] +fn ema_variants_match_return_variants() { + let input = b"test ema vs return"; + + let ret = libcrux_sha3::sha224(input); + let mut ema = [0u8; 28]; + libcrux_sha3::sha224_ema(&mut ema, input); + assert_eq!(ret, ema, "sha224"); + + let ret = libcrux_sha3::sha256(input); + let mut ema = [0u8; 32]; + libcrux_sha3::sha256_ema(&mut ema, input); + assert_eq!(ret, ema, "sha256"); + + let ret = libcrux_sha3::sha384(input); + let mut ema = [0u8; 48]; + libcrux_sha3::sha384_ema(&mut ema, input); + assert_eq!(ret, ema, "sha384"); + + let ret = libcrux_sha3::sha512(input); + let mut ema = [0u8; 64]; + libcrux_sha3::sha512_ema(&mut ema, input); + assert_eq!(ret, ema, "sha512"); + + let ret = libcrux_sha3::shake128::<64>(input); + let mut ema = [0u8; 64]; + libcrux_sha3::shake128_ema(&mut ema, input); + assert_eq!(ret, ema, "shake128"); + + let ret = libcrux_sha3::shake256::<64>(input); + let mut ema = [0u8; 64]; + libcrux_sha3::shake256_ema(&mut ema, input); + assert_eq!(ret, ema, "shake256"); +} + +// ========================================================================= +// Generic hash dispatch +// ========================================================================= + +#[test] +fn hash_dispatch_matches_direct() { + let input = b"dispatch test"; + assert_eq!( + libcrux_sha3::hash::<28>(libcrux_sha3::Algorithm::Sha224, input), + libcrux_sha3::sha224(input) + ); + assert_eq!( + libcrux_sha3::hash::<32>(libcrux_sha3::Algorithm::Sha256, input), + libcrux_sha3::sha256(input) + ); + assert_eq!( + libcrux_sha3::hash::<48>(libcrux_sha3::Algorithm::Sha384, input), + libcrux_sha3::sha384(input) + ); + assert_eq!( + libcrux_sha3::hash::<64>(libcrux_sha3::Algorithm::Sha512, input), + libcrux_sha3::sha512(input) + ); +} + +// ========================================================================= +// NEON (simd128) — cross-spec for all hash functions +// ========================================================================= + +#[cfg(feature = "simd128")] +mod neon_cross_spec { + use super::boundary_inputs; + + #[test] + fn sha3_224_boundary() { + for input in boundary_inputs(144) { + let spec = hacspec_sha3::sha3_224(&input); + let mut out = [0u8; 28]; + libcrux_sha3::neon::sha224(&mut out, &input); + assert_eq!(out, spec, "neon sha3_224 mismatch at len {}", input.len()); + } + } + + #[test] + fn sha3_256_boundary() { + for input in boundary_inputs(136) { + let spec = hacspec_sha3::sha3_256(&input); + let mut out = [0u8; 32]; + libcrux_sha3::neon::sha256(&mut out, &input); + assert_eq!(out, spec, "neon sha3_256 mismatch at len {}", input.len()); + } + } + + #[test] + fn sha3_384_boundary() { + for input in boundary_inputs(104) { + let spec = hacspec_sha3::sha3_384(&input); + let mut out = [0u8; 48]; + libcrux_sha3::neon::sha384(&mut out, &input); + assert_eq!(out, spec, "neon sha3_384 mismatch at len {}", input.len()); + } + } + + #[test] + fn sha3_512_boundary() { + for input in boundary_inputs(72) { + let spec = hacspec_sha3::sha3_512(&input); + let mut out = [0u8; 64]; + libcrux_sha3::neon::sha512(&mut out, &input); + assert_eq!(out, spec, "neon sha3_512 mismatch at len {}", input.len()); + } + } + + #[test] + fn shake128_boundary() { + for input in boundary_inputs(168) { + let spec = hacspec_sha3::shake128::<64>(&input); + let mut out = [0u8; 64]; + libcrux_sha3::neon::shake128(&mut out, &input); + assert_eq!(out, spec, "neon shake128 mismatch at len {}", input.len()); + } + } + + #[test] + fn shake256_boundary() { + for input in boundary_inputs(136) { + let spec = hacspec_sha3::shake256::<64>(&input); + let mut out = [0u8; 64]; + libcrux_sha3::neon::shake256(&mut out, &input); + assert_eq!(out, spec, "neon shake256 mismatch at len {}", input.len()); + } + } + + #[test] + fn neon_x2_shake256_matches_spec() { + for input in boundary_inputs(136) { + let spec = hacspec_sha3::shake256::<64>(&input); + let mut out0 = [0u8; 64]; + let mut out1 = [0u8; 64]; + libcrux_sha3::neon::x2::shake256(&input, &input, &mut out0, &mut out1); + assert_eq!( + out0, + spec, + "neon x2 shake256 lane0 mismatch at len {}", + input.len() + ); + assert_eq!( + out1, + spec, + "neon x2 shake256 lane1 mismatch at len {}", + input.len() + ); + } + } +} + +// ========================================================================= +// AVX2 (simd256) — cross-spec via x4 incremental API +// ========================================================================= + +#[cfg(feature = "simd256")] +mod avx2_cross_spec { + #[test] + fn avx2_x4_shake256_matches_spec() { + let inputs: [&[u8]; 4] = [b"alpha", b"beta!", b"gamma", b"delta"]; + let mut state = libcrux_sha3::avx2::x4::incremental::init(); + libcrux_sha3::avx2::x4::incremental::shake256_absorb_final( + &mut state, inputs[0], inputs[1], inputs[2], inputs[3], + ); + let mut out0 = [0u8; 136]; + let mut out1 = [0u8; 136]; + let mut out2 = [0u8; 136]; + let mut out3 = [0u8; 136]; + libcrux_sha3::avx2::x4::incremental::shake256_squeeze_first_block( + &mut state, &mut out0, &mut out1, &mut out2, &mut out3, + ); + for (i, (out, input)) in [out0, out1, out2, out3] + .iter() + .zip(inputs.iter()) + .enumerate() + { + let spec = hacspec_sha3::shake256::<136>(input); + assert_eq!(&out[..], &spec[..], "avx2 x4 shake256 lane {i} mismatch"); + } + } + + #[test] + fn avx2_x4_shake128_matches_spec() { + let inputs: [&[u8]; 4] = [b"oneone", b"twotwo", b"three!", b"four!!"]; + let mut state = libcrux_sha3::avx2::x4::incremental::init(); + libcrux_sha3::avx2::x4::incremental::shake128_absorb_final( + &mut state, inputs[0], inputs[1], inputs[2], inputs[3], + ); + // Squeeze 3 blocks (3 * 168 = 504 bytes) + let mut out0 = [0u8; 504]; + let mut out1 = [0u8; 504]; + let mut out2 = [0u8; 504]; + let mut out3 = [0u8; 504]; + libcrux_sha3::avx2::x4::incremental::shake128_squeeze_first_three_blocks( + &mut state, &mut out0, &mut out1, &mut out2, &mut out3, + ); + for (i, (out, input)) in [out0, out1, out2, out3] + .iter() + .zip(inputs.iter()) + .enumerate() + { + let spec = hacspec_sha3::shake128::<504>(input); + assert_eq!(&out[..], &spec[..], "avx2 x4 shake128 lane {i} mismatch"); + } + } + + #[test] + fn avx2_x4_shake256_multi_squeeze_matches_spec() { + let input = b"multi-squeeze test"; + let spec = hacspec_sha3::shake256::<408>(input); + + let mut state = libcrux_sha3::avx2::x4::incremental::init(); + libcrux_sha3::avx2::x4::incremental::shake256_absorb_final( + &mut state, input, input, input, input, + ); + + // First block: 136 bytes + let mut b1 = [0u8; 136]; + let mut d1 = [0u8; 136]; + let mut d2 = [0u8; 136]; + let mut d3 = [0u8; 136]; + libcrux_sha3::avx2::x4::incremental::shake256_squeeze_first_block( + &mut state, &mut b1, &mut d1, &mut d2, &mut d3, + ); + assert_eq!(&b1[..], &spec[..136], "first block"); + + // Second block: 136 bytes + let mut b2 = [0u8; 136]; + libcrux_sha3::avx2::x4::incremental::shake256_squeeze_next_block( + &mut state, &mut b2, &mut d1, &mut d2, &mut d3, + ); + assert_eq!(&b2[..], &spec[136..272], "second block"); + + // Third block: 136 bytes + let mut b3 = [0u8; 136]; + libcrux_sha3::avx2::x4::incremental::shake256_squeeze_next_block( + &mut state, &mut b3, &mut d1, &mut d2, &mut d3, + ); + assert_eq!(&b3[..], &spec[272..408], "third block"); + } +} From 7e132a12548a198c229d7a228e1dd9250addd7f0 Mon Sep 17 00:00:00 2001 From: Karthikeyan Bhargavan Date: Wed, 6 May 2026 16:04:35 +0200 Subject: [PATCH 04/14] fmt --- crates/algorithms/sha3/src/generic_keccak.rs | 1 - specs/sha3/src/sponge.rs | 1 - 2 files changed, 2 deletions(-) diff --git a/crates/algorithms/sha3/src/generic_keccak.rs b/crates/algorithms/sha3/src/generic_keccak.rs index 5530d09a0c..eb1b9f029f 100644 --- a/crates/algorithms/sha3/src/generic_keccak.rs +++ b/crates/algorithms/sha3/src/generic_keccak.rs @@ -501,7 +501,6 @@ mod cross_spec_tests { spec_out[offset..offset + len] ); } - } /// NEON to_spec tests: verify that each permutation step on KeccakState<2, uint64x2_t> diff --git a/specs/sha3/src/sponge.rs b/specs/sha3/src/sponge.rs index 09e20cd704..5692ec9137 100644 --- a/specs/sha3/src/sponge.rs +++ b/specs/sha3/src/sponge.rs @@ -163,4 +163,3 @@ pub fn squeeze(state: State, rate: usize) -> [u8; OUTPU pub fn keccak(rate: usize, delim: u8, message: &[u8]) -> [u8; OUTPUT_LEN] { squeeze(absorb(rate, delim, message), rate) } - From d8f7ed529744d321e3a8c02660b7770ca9e245b2 Mon Sep 17 00:00:00 2001 From: Karthikeyan Bhargavan Date: Wed, 6 May 2026 16:05:30 +0200 Subject: [PATCH 05/14] changelog --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 909b84aeb5..bdcdf08504 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Added + +- [#1399](https://github.com/cryspen/libcrux/pull/1399): Add a Rust spec for SHA-3 + ### Removed - [#1391](https://github.com/cryspen/libcrux/pull/1391): Remove support for HMAC-SHA1 From 3b0e7f9368efc9130da07299f5f42b0aaf4d3d40 Mon Sep 17 00:00:00 2001 From: Karthikeyan Bhargavan Date: Wed, 6 May 2026 12:08:53 +0200 Subject: [PATCH 06/14] sha3: portability fix in hax.sh (cross-platform sed) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The script’s rename helpers used `sed -i""` (no space) which is the GNU-sed in-place form. macOS’ system sed is BSD and parses it as `-i "" -e ...`, treating `-e` as the input filename and bombing the first rename step. Detect the OS at script start: use `gsed` (GNU sed via the Homebrew `gnu-sed` package) on Darwin; the system `sed` everywhere else (Linux’ system sed is already GNU sed). Both invocations route through a \$SED variable in the rename helpers. Authored by Karthikeyan Bhargavan with Claude (Opus 4.7) used to review and test. --- crates/algorithms/sha3/hax.sh | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/crates/algorithms/sha3/hax.sh b/crates/algorithms/sha3/hax.sh index b3572ecdb5..54c7d50884 100755 --- a/crates/algorithms/sha3/hax.sh +++ b/crates/algorithms/sha3/hax.sh @@ -1,6 +1,15 @@ #!/usr/bin/env bash set -ex +# GNU sed: system `sed` on Linux is already GNU sed; on macOS the system +# `sed` is BSD and rejects the GNU `-i` form, so we need `gsed` (Homebrew +# `gnu-sed` package) there. Detect at script start and route through $SED. +if [ "$(uname)" = "Darwin" ]; then + SED="gsed" +else + SED="sed" +fi + function extract_all() { extract crates/sys/platform \ into -i "+:** -**::x86::init::cpuid -**::x86::init::cpuid_count" \ @@ -79,14 +88,14 @@ function rename_core_models_files() { new_filename="Libcrux_core_models${filename#Core_models}" mv "$file" "$dir_path/$new_filename" done - find "$target_dir" -type f \( -name "*.fst" -o -name "*.fsti" \) -exec sed -i'' \ + find "$target_dir" -type f \( -name "*.fst" -o -name "*.fsti" \) -exec "$SED" -i \ -e 's/module Core_models/module Libcrux_core_models/g' \ {} + } function rename_core_models_uses() { local target_dir="proofs/fstar/extraction" - find "$target_dir" -type f \( -name "*.fst" -o -name "*.fsti" \) -exec sed -i'' \ + find "$target_dir" -type f \( -name "*.fst" -o -name "*.fsti" \) -exec "$SED" -i \ -e 's/Core_models\.Abstractions/Libcrux_core_models.Abstractions/g' \ -e 's/Core_models\.Core_arch/Libcrux_core_models.Core_arch/g' \ {} + From aee39f1de2a01686ed1580d4c1069213a9689189 Mon Sep 17 00:00:00 2001 From: Karthikeyan Bhargavan Date: Wed, 6 May 2026 12:09:06 +0200 Subject: [PATCH 07/14] workspace: bump hax-lib to cryspen/hax:integer-lemmas The portable keccakf1600 equivalence proofs added in the next commits depend on hax-lib lemmas that today live only on cryspen/hax's `integer-lemmas` branch (a PR upstreaming them into hax main is in flight; we'll switch back to a tagged hax-lib release once it merges). Bumps the workspace dependency for hax-lib in Cargo.toml and adds a [patch.crates-io] entry so transitively-pulled hax-lib versions (via stale published libcrux crates pulled by hpke-rs dev-deps) also resolve to the fork; otherwise cargo metadata returns two hax-lib paths and confuses F*'s include resolution. Aligns specs/sha3/Cargo.toml's hax-lib pin with the workspace. Authored by Karthikeyan Bhargavan with Claude (Opus 4.7) used to review and test. --- Cargo.toml | 5 ++++- specs/sha3/Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index bc88097630..7981e5e688 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -87,7 +87,7 @@ readme = "Readme.md" allow-branch = ["main"] [workspace.dependencies] -hax-lib = { version = "=0.3.6" } +hax-lib = { git = "https://github.com/cryspen/hax", branch = "integer-lemmas" } libcrux-aead = { version = "=0.0.7", path = "crates/primitives/aead" } libcrux-aesgcm = { version = "=0.0.7", path = "crates/algorithms/aesgcm" } libcrux-blake2 = { version = "=0.0.6", path = "crates/algorithms/blake2" } @@ -234,6 +234,9 @@ rand_chacha = { version = "0.10.0" } getrandom = { version = "0.4" } wasm-bindgen-test = "0.3" +[patch.crates-io] +hax-lib = { git = "https://github.com/cryspen/hax", branch = "integer-lemmas" } + [profile.release] lto = "fat" codegen-units = 1 diff --git a/specs/sha3/Cargo.toml b/specs/sha3/Cargo.toml index c98b3f6985..bbbb52e8c3 100644 --- a/specs/sha3/Cargo.toml +++ b/specs/sha3/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -hax-lib = "=0.3.6" +hax-lib = { git = "https://github.com/cryspen/hax", branch = "integer-lemmas" } [dev-dependencies] hex = "0.4.3" From 58935cd3553412c22d94c4a613afdb5cb040de4b Mon Sep 17 00:00:00 2001 From: Karthikeyan Bhargavan Date: Wed, 6 May 2026 12:09:18 +0200 Subject: [PATCH 08/14] sha3: drop obsolete fstar::replace on buf_to_slices The replace block on `buf_to_slices` was a workaround for a hax extraction bug (cryspen/hax#1920): `core::array::from_fn` was extracted with an explicit type parameter that bypassed the typeclass-based implicit, breaking the F* signature. That bug is fixed in the cryspen/hax:integer-lemmas hax-lib bump landed in the previous commit (Core_models.Array.from_fn now refines its closure parameter to (i: usize{i <. v_N})). The Rust source can now extract directly via `core::array::from_fn` and F* discharges the indexing precondition without an escape hatch. Removing the replace block also closes a soundness gap: the replace described an F* function (Core_models.Array.from_fn) that, before the hax fix, had a different shape than what Rust actually called. Authored by Karthikeyan Bhargavan with Claude (Opus 4.7) used to review and test. --- crates/algorithms/sha3/src/generic_keccak/xof.rs | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/crates/algorithms/sha3/src/generic_keccak/xof.rs b/crates/algorithms/sha3/src/generic_keccak/xof.rs index 08deb593da..acbca583c1 100644 --- a/crates/algorithms/sha3/src/generic_keccak/xof.rs +++ b/crates/algorithms/sha3/src/generic_keccak/xof.rs @@ -37,22 +37,7 @@ pub(crate) struct KeccakXofState< sponge: bool, } -/// Note: This function exists to work around a hax bug where `core::array::from_fn` -/// is extracted with an incorrect explicit type parameter `#(usize -> t_Slice u8)` -/// instead of using the typeclass-based implicit parameter `#v_F` from -/// `Core_models.Array.from_fn`. -/// See: https://github.com/cryspen/hax/issues/1920 #[inline(always)] -#[hax_lib::fstar::replace( - "let buf_to_slices - (v_PARALLEL_LANES v_RATE: usize) - (buf: t_Array (t_Array u8 v_RATE) v_PARALLEL_LANES) - : t_Array (t_Slice u8) v_PARALLEL_LANES = - Core_models.Array.from_fn #(t_Slice u8) - v_PARALLEL_LANES - (fun i -> Core_models.Array.impl_23__as_slice #u8 v_RATE (buf.[ i ])) -" -)] fn buf_to_slices( buf: &[[u8; RATE]; PARALLEL_LANES], ) -> [&[u8]; PARALLEL_LANES] { From 7b420e1a994fd0188241a89005a18fc074344fcc Mon Sep 17 00:00:00 2001 From: Karthikeyan Bhargavan Date: Wed, 6 May 2026 14:55:13 +0200 Subject: [PATCH 09/14] specs/sha3: mark createi opaque_to_smt with SMTPat-driven lemma MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds [@@ "opaque_to_smt"] to the F*-side createi (via the existing fstar::replace block) plus a companion createi_lemma that gives the expected indexing property as an SMTPat. Without opacity, hax's extraction of `core::array::from_fn` allows Z3 to unfold createi's body recursively through array_from_fn's inner `Seq.index`/`ApplyTT` quantifier and trigger a cascade — verified at the load_block proof site (~195M instances of the inner anonymous quantifier in the queries-Libcrux_sha3.Simd.Arm64.fst.smt2 dump on the related sha3-proofs-focused worktree, 2026-05-05). Opacity collapses the cascade; the SMTPat lemma keeps the indexing property accessible to consumers via reveal_opaque. Co-Authored-By: Claude Opus 4.7 (1M context) --- specs/sha3/proofs/fstar/extraction/Hacspec_sha3.fst | 11 +++++++++++ specs/sha3/src/lib.rs | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/specs/sha3/proofs/fstar/extraction/Hacspec_sha3.fst b/specs/sha3/proofs/fstar/extraction/Hacspec_sha3.fst index 97e253aab3..d10fb8317a 100644 --- a/specs/sha3/proofs/fstar/extraction/Hacspec_sha3.fst +++ b/specs/sha3/proofs/fstar/extraction/Hacspec_sha3.fst @@ -3,6 +3,7 @@ module Hacspec_sha3 open FStar.Mul open Core_models +[@@ "opaque_to_smt"] let createi (#v_T: Type0) (v_N: usize) @@ -10,3 +11,13 @@ let createi (f: (x:usize{x <. v_N}) -> v_T) : t_Array v_T v_N = Rust_primitives.Arrays.createi v_N f + +let createi_lemma + (#v_T: Type0) + (v_N: usize) + (#v_F: Type0) + (f: (x:usize{x <. v_N}) -> v_T) + (i: usize{i <. v_N}) + : Lemma (Seq.index (createi #v_T v_N #v_F f) (v i) == f i) + [SMTPat (Seq.index (createi #v_T v_N #v_F f) (v i))] + = reveal_opaque (`%createi) (createi #v_T v_N #v_F f) diff --git a/specs/sha3/src/lib.rs b/specs/sha3/src/lib.rs index 66b7ef962c..4a0b69d7fc 100644 --- a/specs/sha3/src/lib.rs +++ b/specs/sha3/src/lib.rs @@ -7,6 +7,7 @@ pub mod sponge; /// Utility function to create an array of size `N` by applying a function `f` to each index. #[hax_lib::fstar::replace( r#" +[@@ "opaque_to_smt"] let createi (#v_T: Type0) (v_N: usize) @@ -14,6 +15,16 @@ let createi (f: (x:usize{x <. v_N}) -> v_T) : t_Array v_T v_N = Rust_primitives.Arrays.createi v_N f + +let createi_lemma + (#v_T: Type0) + (v_N: usize) + (#v_F: Type0) + (f: (x:usize{x <. v_N}) -> v_T) + (i: usize{i <. v_N}) + : Lemma (Seq.index (createi #v_T v_N #v_F f) (v i) == f i) + [SMTPat (Seq.index (createi #v_T v_N #v_F f) (v i))] + = reveal_opaque (`%createi) (createi #v_T v_N #v_F f) "# )] pub(crate) fn createi T>(f: F) -> [T; N] { From 5ff432e4caed3fb0e5dc302972a2449d9c0bbd1b Mon Sep 17 00:00:00 2001 From: Karthikeyan Bhargavan Date: Wed, 6 May 2026 14:55:25 +0200 Subject: [PATCH 10/14] sha3: add Proof_Utils helpers for keccakf equivalence proofs Three helper modules consumed by the portable keccakf1600 equivalence proofs (added in the next commit): - Proof_Utils.NatFold: lemmas about natural-number folds over ranges (e.g. lemma_fold_range_unroll, lemma_fold_range_is_nat). - Proof_Utils.FoldRange: a single step lemma for fold_range chunk decomposition. - Proof_Utils.Lemmas: thin wrappers around upstream hax-lib lemmas (logand_commutative, lemma_rotate_left_zero, lemma_index_update_at_range) from the cryspen/hax:integer-lemmas branch (an upstream PR is in flight to merge these into hax main). Co-Authored-By: Claude Opus 4.7 (1M context) --- .../equivalence/Proof_Utils.FoldRange.fst | 26 +++ .../fstar/equivalence/Proof_Utils.Lemmas.fst | 48 +++++ .../fstar/equivalence/Proof_Utils.NatFold.fst | 185 ++++++++++++++++++ 3 files changed, 259 insertions(+) create mode 100644 crates/algorithms/sha3/proofs/fstar/equivalence/Proof_Utils.FoldRange.fst create mode 100644 crates/algorithms/sha3/proofs/fstar/equivalence/Proof_Utils.Lemmas.fst create mode 100644 crates/algorithms/sha3/proofs/fstar/equivalence/Proof_Utils.NatFold.fst diff --git a/crates/algorithms/sha3/proofs/fstar/equivalence/Proof_Utils.FoldRange.fst b/crates/algorithms/sha3/proofs/fstar/equivalence/Proof_Utils.FoldRange.fst new file mode 100644 index 0000000000..ecd46bc3cc --- /dev/null +++ b/crates/algorithms/sha3/proofs/fstar/equivalence/Proof_Utils.FoldRange.fst @@ -0,0 +1,26 @@ +module Proof_Utils.FoldRange + +(** One-step unfolding of [Rust_primitives.Hax.Folds.fold_range]: peel off + the first iteration. Layout-independent utility lemma, extracted here + so it can be shared between [EquivImplSpec.Keccakf.Generic] and the + [EquivImplSpec.Keccakf] top-level module without creating a dependency + cycle. *) + +#set-options "--fuel 1 --ifuel 1 --z3rlimit 50" + +open FStar.Mul +open Core_models +open Rust_primitives.Integers + +let lemma_fold_range_step + (#acc_t: Type0) + (start end_: usize) + (inv: acc_t -> (i:usize{Rust_primitives.Hax.Folds.fold_range_wf_index start end_ false (v i)}) -> Type0) + (init: acc_t {~(Rust_primitives.Hax.Folds.range_empty start end_) ==> inv init start}) + (f: (acc:acc_t -> i:usize {v i <= v end_ /\ Rust_primitives.Hax.Folds.fold_range_wf_index start end_ true (v i) /\ inv acc i} + -> acc':acc_t {(inv acc' (mk_int (v i + 1)))})) + : Lemma + (requires v start < v end_) + (ensures Rust_primitives.Hax.Folds.fold_range start end_ inv init f == + Rust_primitives.Hax.Folds.fold_range (start +! mk_usize 1) end_ inv (f init start) f) + = () diff --git a/crates/algorithms/sha3/proofs/fstar/equivalence/Proof_Utils.Lemmas.fst b/crates/algorithms/sha3/proofs/fstar/equivalence/Proof_Utils.Lemmas.fst new file mode 100644 index 0000000000..55968214a4 --- /dev/null +++ b/crates/algorithms/sha3/proofs/fstar/equivalence/Proof_Utils.Lemmas.fst @@ -0,0 +1,48 @@ +module Proof_Utils.Lemmas + +(** Library-level lemmas that bridge to upstream hax-lib / + core-models proofs. As of 2026-04-25, the underlying lemmas + have been added to hax-lib's [Rust_primitives.Integers] and + companion [Rust_primitives.Hax.Monomorphized_update_at_Lemmas] + (cryspen/hax integer-lemmas branch); this file now wraps those + upstream lemmas. *) + +#set-options "--fuel 0 --ifuel 1 --z3rlimit 50" + +open FStar.Mul +open Core_models +open Rust_primitives.Integers + +(** Bitwise AND commutativity. *) +let logand_commutative (#t: inttype) (a b: int_t t) + : Lemma ((a &. b) == (b &. a)) + = Rust_primitives.Integers.logand_commutative a b + +(** [rotate_left(x, 0) == x]. Now provable since + [Core_models.Num.impl_u64__rotate_left] is concretely defined as + a delegation to [rotate_left_u] with the [n mod 64 == 0] + case being the identity (cryspen/hax integer-lemmas branch). *) +let lemma_rotate_left_zero (x: u64) + : Lemma (Core_models.Num.impl_u64__rotate_left x (mk_u32 0) == x) + = () + +(* Update at Range Indexing Property *) +(* This is a more useful spec than the one in Monomorphized_update_at *) +let lemma_index_update_at_range #t (s:t_Slice t) (i:Core_models.Ops.Range.t_Range usize) (x:t_Slice t): + Lemma + (requires + v i.f_start >= 0 /\ v i.f_start <= Seq.length s /\ + v i.f_end <= Seq.length s /\ + Seq.length x == v i.f_end - v i.f_start) + (ensures ( + let open Core_models.Ops.Range in + let out = Rust_primitives.Hax.Monomorphized_update_at.update_at_range s i x in + Seq.length out == Seq.length s /\ + (forall (j:nat). if j < v i.f_start then + Seq.index out j == Seq.index s j + else if j >= v i.f_start && j < v i.f_end then + Seq.index out j == Seq.index x (j - v i.f_start) + else if j >= v i.f_end && j < Seq.length out then + Seq.index out j == Seq.index s j + else True))) = + Rust_primitives.Hax.Monomorphized_update_at_Lemmas.lemma_index_update_at_range s i x diff --git a/crates/algorithms/sha3/proofs/fstar/equivalence/Proof_Utils.NatFold.fst b/crates/algorithms/sha3/proofs/fstar/equivalence/Proof_Utils.NatFold.fst new file mode 100644 index 0000000000..952f7b7252 --- /dev/null +++ b/crates/algorithms/sha3/proofs/fstar/equivalence/Proof_Utils.NatFold.fst @@ -0,0 +1,185 @@ +module Proof_Utils.NatFold + +(** Utility module for bridging refined [Rust_primitives.Hax.Folds.fold_range] + calls (as produced by hax extraction) to nat-indexed folds, which SMT + can reason about without closure-equality friction. + + ---------------------------------------------------------------- + Background + ---------------------------------------------------------------- + + Hax extracts Rust `for i in start..end { body }` loops as refined + [Rust_primitives.Hax.Folds.fold_range] calls, typically as inline + lambdas whose argument type carries a [fold_range_wf_index start end_] + refinement. Two such folds can be propositionally equal yet fail to + unify under SMT because F*'s encoding of closures does not identify + α/β/η-equivalent inline lambdas whose refinement types differ only + syntactically. + + Earlier attempts to discharge these equalities via [fold_range_ext] + (see [Libcrux_sha3.Proof_utils.Folds]) ran into the same wall: the + pointwise hypothesis of [fold_range_ext] is a ∀-quantified closure + equality, which SMT cannot prove for hax-extracted lambdas. + + ---------------------------------------------------------------- + Solution + ---------------------------------------------------------------- + + Convert the refined [fold_range] to a *nat-indexed* fold by providing + a plain-nat body [g] that agrees pointwise with the refined body [f]. + Crucially, the pointwise equality is supplied as a *Lemma argument*, + not a ∀-quantified hypothesis — so F* can discharge it at each call + site individually (usually with [()] when both bodies β-reduce to the + same expression). + + Two nat-fold shapes are provided: + + - [fold_nat_range]: body type is [j:nat{j < end_}]. Simplest form; + forces the body to be total on [0, end_). + + - [fold_range_nat]: fixed [start]/[end_], explicit iteration counter + [i], body type is [j:nat{start <= j /\ j < end_}]. The body's + refinement mirrors [fold_range_wf_index] directly, which is useful + when the body is meaningfully partial over the window. + + Each shape has a corresponding bridge lemma: + [lemma_fold_range_is_nat] and [lemma_fold_range_is_range_nat]. + + ---------------------------------------------------------------- + Usage pattern + ---------------------------------------------------------------- + + 1. Define a nat-indexed body [g] matching the extractor's inline lambda. + 2. Call the bridge lemma with inline lambdas for [inv]/[f] matching + the fold_range target's syntactic shape. + 3. Discharge the [pointwise] Lemma with [(fun acc i -> ())] when both + bodies β-reduce to the same expression. + 4. Either: + - Unfold [fold_nat_range] / [fold_range_nat] via [T.norm] + + [T.smt ()] for concrete small bounds; or + - Relate the nat-fold to a recursive helper via structural + induction. + + See [Test_Norm_Plain] and [Test_Keccakf_NatFold] for worked examples. + See also [EquivImplSpec.Keccakf.Generic.lemma_keccakf1600_is_rounds] for + a real-world application. *) + +#set-options "--fuel 0 --ifuel 1 --z3rlimit 100" + +open FStar.Mul +open Core_models +open Rust_primitives.Integers + +(** Nat-indexed fold. Body is total over [[0, end_)]. *) +let rec fold_nat_range + (#acc_t: Type0) + (start end_: nat) + (init: acc_t) + (f: acc_t -> (i: nat{i < end_}) -> acc_t) + : Tot acc_t (decreases end_ - start) + = if start < end_ + then fold_nat_range (start + 1) end_ (f init start) f + else init + +(** Nat-indexed fold with fixed start/end and an explicit iteration counter. + The body is defined on [[start, end_)], mirroring + [Rust_primitives.Hax.Folds.fold_range_wf_index start end_]. *) +let rec fold_range_nat + (#acc_t: Type0) + (start end_: nat) + (i: nat{start <= i /\ i <= end_}) + (acc: acc_t) + (f: acc_t -> (j: nat{start <= j /\ j < end_}) -> acc_t) + : Tot acc_t (decreases end_ - i) + = if i < end_ + then fold_range_nat start end_ (i + 1) (f acc i) f + else acc + +(** Bridge: refined [fold_range start end_ inv init f] equals + [fold_nat_range (v start) (v end_) init g] whenever [f] and [g] agree + pointwise on the iteration domain. + + The [pointwise] argument is a Lemma — supplied at the call site — not a + ∀-hypothesis, so the closure-equality problem that blocks + [fold_range_ext] does not arise. *) +#push-options "--fuel 1 --ifuel 1 --z3rlimit 200" +let rec lemma_fold_range_is_nat + (#acc_t: Type0) (#u: uinttype) + (start end_: int_t u) + (inv: acc_t -> (i:int_t u{Rust_primitives.Hax.Folds.fold_range_wf_index start end_ false (v i)}) -> Type0) + (init: acc_t {~(Rust_primitives.Hax.Folds.range_empty start end_) ==> inv init start}) + (f: (acc:acc_t -> i:int_t u {v i <= v end_ /\ Rust_primitives.Hax.Folds.fold_range_wf_index start end_ true (v i) /\ inv acc i} + -> acc':acc_t {inv acc' (mk_int (v i + 1))})) + (g: acc_t -> (i: nat{i < v end_}) -> acc_t) + (pointwise: + (acc: acc_t) + -> (i: int_t u {v i <= v end_ /\ Rust_primitives.Hax.Folds.fold_range_wf_index start end_ true (v i) /\ inv acc i}) + -> Lemma (f acc i == g acc (v i))) + : Lemma (ensures Rust_primitives.Hax.Folds.fold_range start end_ inv init f == + fold_nat_range (v start) (v end_) init g) + (decreases v end_ - v start) + = if v start < v end_ + then begin + pointwise init start; + lemma_fold_range_is_nat + (start +! mk_int 1) end_ inv (f init start) f g + (fun acc i -> pointwise acc i) + end + else () +#pop-options + +(** Bridge: refined [fold_range i end_ inv acc f] equals + [fold_range_nat (v start) (v end_) (v i) acc g] whenever [f] and [g] + agree pointwise on [[start, end_)]. + + Unlike [lemma_fold_range_is_nat], [start] and [end_] stay fixed across + recursion — only [i] advances. This keeps the body's refinement + [fold_range_wf_index start end_] constant, which can simplify the + pointwise proof when the body uses [j - start], [j - i], modular + arithmetic, etc. *) +#push-options "--fuel 1 --ifuel 1 --z3rlimit 200" +let rec lemma_fold_range_is_range_nat + (#acc_t: Type0) (#u: uinttype) + (start end_: int_t u) + (i: int_t u {v start <= v i /\ v i <= v end_}) + (inv: acc_t -> (j:int_t u{Rust_primitives.Hax.Folds.fold_range_wf_index i end_ false (v j)}) -> Type0) + (acc: acc_t {~(Rust_primitives.Hax.Folds.range_empty i end_) ==> inv acc i}) + (f: (a:acc_t -> j:int_t u {v j <= v end_ /\ Rust_primitives.Hax.Folds.fold_range_wf_index i end_ true (v j) /\ inv a j} + -> a':acc_t {inv a' (mk_int (v j + 1))})) + (g: acc_t -> (j: nat{v start <= j /\ j < v end_}) -> acc_t) + (pointwise: + (a: acc_t) + -> (j: int_t u {v j <= v end_ /\ Rust_primitives.Hax.Folds.fold_range_wf_index i end_ true (v j) /\ inv a j}) + -> Lemma (f a j == g a (v j))) + : Lemma (ensures Rust_primitives.Hax.Folds.fold_range i end_ inv acc f == + fold_range_nat (v start) (v end_) (v i) acc g) + (decreases v end_ - v i) + = if v i < v end_ + then begin + pointwise acc i; + lemma_fold_range_is_range_nat + start end_ (i +! mk_int 1) inv (f acc i) f g + (fun a j -> pointwise a j) + end + else () +#pop-options + +(** Direct unrolling of a [fold_range 0 5]: the fold equals five sequential + applications of the body. + + Useful when the body is a refined inline lambda that would be painful + to bridge via [lemma_fold_range_is_nat] / [lemma_fold_range_is_range_nat]. + Instead, specialize [f] to the extracted lambda: F* β-reduces each + application, yielding a direct expression the SMT can chain through + with a small fuel budget. *) +#push-options "--fuel 6 --ifuel 2 --z3rlimit 200" +let lemma_fold_range_unroll_5 + (#acc_t: Type0) (#u: uinttype) + (inv: acc_t -> (i:int_t u{Rust_primitives.Hax.Folds.fold_range_wf_index (mk_int #u 0) (mk_int #u 5) false (v i)}) -> Type0) + (init: acc_t {inv init (mk_int #u 0)}) + (f: (acc:acc_t -> i:int_t u {v i <= 5 /\ Rust_primitives.Hax.Folds.fold_range_wf_index (mk_int #u 0) (mk_int #u 5) true (v i) /\ inv acc i} + -> acc':acc_t {inv acc' (mk_int #u (v i + 1))})) + : Lemma (Rust_primitives.Hax.Folds.fold_range #acc_t #u (mk_int #u 0) (mk_int #u 5) inv init f == + f (f (f (f (f init (mk_int #u 0)) (mk_int #u 1)) (mk_int #u 2)) (mk_int #u 3)) (mk_int #u 4)) + = () +#pop-options From 230ac099e4b902283bec3140a2fcccca2d025652 Mon Sep 17 00:00:00 2001 From: Karthikeyan Bhargavan Date: Wed, 6 May 2026 14:55:46 +0200 Subject: [PATCH 11/14] sha3: add portable keccakf1600 equivalence proofs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit F* equivalence proofs that the libcrux-sha3 portable keccakf1600 permutation matches Hacspec_sha3.Keccak_f.keccak_f. Modules: - EquivImplSpec.Keccakf.ChiFold: per-position equality lemma chaining the impl's chi unrolled form to the spec's chi_inner_val. Heaviest query is lemma_chi_outer_unfolds_generic (~108s at fuel=6 ifuel=0 rlimit=800). - EquivImplSpec.Keccakf.SpecRounds: spec-side iteration helper. - EquivImplSpec.Keccakf.Generic: generic-over-T proof framework (~72 lemmas, 2024 lines) — rho/theta/pi/chi extract-lane lemmas and lemma_keccakf1600_to_spec. - EquivImplSpec.Keccakf.Portable: instantiates Generic for the scalar u64 portable lane impl. Plus stubs/Spec.Utils.{fst,fsti} — a small workaround so the shared Libcrux_intrinsics.Avx2_extract.fsti references resolve in this proof set without pulling in libcrux-ml-kem's full Spec.Utils (SHA-3 doesn't exercise those AVX2 intrinsics). Plus a trimmed equivalence/Makefile with ROOTS limited to the seven in-scope modules (Proof_Utils helpers + 4 keccakf modules). Sponge-level and platform (Arm64, AVX2) equivalence proofs are deferred to follow-up PRs. Verifies cleanly from cold cache against cryspen/hax:integer-lemmas (prove + equiv: ~9 minutes wall on a 12-thread laptop, JOBS=2; distribution ~37% Generic / 27% ChiFold). Co-Authored-By: Claude Opus 4.7 (1M context) --- .../EquivImplSpec.Keccakf.ChiFold.fst | 188 ++ .../EquivImplSpec.Keccakf.Generic.fst | 2024 +++++++++++++++++ .../EquivImplSpec.Keccakf.Portable.fst | 156 ++ .../EquivImplSpec.Keccakf.SpecRounds.fst | 50 + .../sha3/proofs/fstar/equivalence/Makefile | 22 + .../sha3/proofs/fstar/stubs/Spec.Utils.fst | 4 + .../sha3/proofs/fstar/stubs/Spec.Utils.fsti | 31 + 7 files changed, 2475 insertions(+) create mode 100644 crates/algorithms/sha3/proofs/fstar/equivalence/EquivImplSpec.Keccakf.ChiFold.fst create mode 100644 crates/algorithms/sha3/proofs/fstar/equivalence/EquivImplSpec.Keccakf.Generic.fst create mode 100644 crates/algorithms/sha3/proofs/fstar/equivalence/EquivImplSpec.Keccakf.Portable.fst create mode 100644 crates/algorithms/sha3/proofs/fstar/equivalence/EquivImplSpec.Keccakf.SpecRounds.fst create mode 100644 crates/algorithms/sha3/proofs/fstar/equivalence/Makefile create mode 100644 crates/algorithms/sha3/proofs/fstar/stubs/Spec.Utils.fst create mode 100644 crates/algorithms/sha3/proofs/fstar/stubs/Spec.Utils.fsti diff --git a/crates/algorithms/sha3/proofs/fstar/equivalence/EquivImplSpec.Keccakf.ChiFold.fst b/crates/algorithms/sha3/proofs/fstar/equivalence/EquivImplSpec.Keccakf.ChiFold.fst new file mode 100644 index 0000000000..6b4d429630 --- /dev/null +++ b/crates/algorithms/sha3/proofs/fstar/equivalence/EquivImplSpec.Keccakf.ChiFold.fst @@ -0,0 +1,188 @@ +module EquivImplSpec.Keccakf.ChiFold + +(** Chi-step fold-unfolding utilities for the generic keccak_f + equivalence proof. + + The extracted [Libcrux_sha3.Generic_keccak.impl_2__chi] is a 5x5 + nested [fold_range] whose body writes [f_and_not_xor] into each + cell. Direct SMT reasoning across both folds is too closure-heavy. + + This module establishes the per-position equality + + (impl_2__chi v_N #v_T ks).f_st.[k] == chi_inner_val ks (k/5) (k%5) + + Under the FIPS-native layout [get_ij(arr, i, j) = arr[5*i + j]], + flat index [k] corresponds to [(i, j) = (k/5, k%5)] (impl-side + [(i, j)] is FIPS [(y, x)]). + + The equality is proved via a loop-invariant argument on a named + [chi_unrolled] form, bridged to [impl_2__chi] by a fuel-6 + [fold_range] unroll. + + The single export [lemma_chi_val_i] is consumed by + [EquivImplSpec.Keccakf.Generic.lemma_chi_extract_lane] together with a + lane-correctness wrapper around [chi_inner_val]. *) + +#set-options "--fuel 0 --ifuel 1 --z3rlimit 100" + +open FStar.Mul +open Core_models +open Rust_primitives.Integers +open Libcrux_sha3.Generic_keccak + +(* ================================================================ + Per-position chi value: applied with [old = ks] this is what + chi writes at position (i, j). + ================================================================ *) + +let chi_inner_val + (#v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (old: t_KeccakState v_N v_T) + (i: usize{v i < 5}) (j: usize{v j < 5}) = + (Libcrux_sha3.Traits.f_and_not_xor #v_T #v_N + (old.[ i, j <: (usize & usize) ] <: v_T) + (old.[ i, ((j +! mk_usize 2) %! mk_usize 5) <: (usize & usize) ] <: v_T) + (old.[ i, ((j +! mk_usize 1) %! mk_usize 5) <: (usize & usize) ] <: v_T)) + +(* ================================================================ + Inner-loop invariant + step lemma. + ================================================================ *) + +let chi_inner_inv + (#v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (old s: t_KeccakState v_N v_T) + (i: usize{v i < 5}) (j: usize{v j <= 5}) = + (forall (ii:usize) (jj:usize). + (v ii < 5 /\ v jj < 5 /\ + (v ii < v i \/ (v ii == v i /\ v jj < v j))) ==> + s.[ ii, jj ] == chi_inner_val old ii jj) /\ + (forall (ii:usize) (jj:usize). + (v ii < 5 /\ v jj < 5 /\ + (v ii > v i \/ (v ii == v i /\ v jj >= v j))) ==> + s.[ ii,jj ] == old.[ ii,jj ]) + +#push-options "--z3rlimit 200 --split_queries always" +let chi_inner_body + (#v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (old s: t_KeccakState v_N v_T) + (i: usize{v i < 5}) (j: usize{v j < 5}) + : Pure (t_KeccakState v_N v_T) + (requires (chi_inner_inv old s i j)) + (ensures fun r -> (chi_inner_inv old r i (j +! sz 1))) = + let s' = + impl_2__set v_N #v_T s i j + (Libcrux_sha3.Traits.f_and_not_xor #v_T #v_N + (s.[ i, j <: (usize & usize) ] <: v_T) + (old.[ i, ((j +! mk_usize 2) %! mk_usize 5) <: (usize & usize) ] <: v_T) + (old.[ i, ((j +! mk_usize 1) %! mk_usize 5) <: (usize & usize) ] <: v_T)) + in + assert (s'.[ i, j <: usize & usize ] == chi_inner_val old i j); + assert (forall (ii:usize) (jj:usize). + (v ii < 5 /\ v jj < 5 /\ + (v ii < v i \/ (v ii == v i /\ v jj < v j + 1))) ==> + s'.[ ii, jj ] == chi_inner_val old ii jj); + assert (forall (ii:usize) (jj:usize). + (v ii < 5 /\ v jj < 5 /\ + (v ii > v i \/ (v ii == v i /\ v jj >= v j + 1))) ==> + s.[ ii,jj ] == old.[ ii,jj ]); + assert(chi_inner_inv old s' i (j +! sz 1)); + s' +#pop-options + +(* ================================================================ + Outer-loop invariant + body. + ================================================================ *) + +let chi_outer_inv + (#v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (old s: t_KeccakState v_N v_T) + (i: usize{v i <= 5}) = + (forall (ii:usize) (jj:usize). + (v ii < 5 /\ v jj < 5 /\ + v ii < v i) ==> + s.[ ii, jj ] == chi_inner_val old ii jj) /\ + (forall (ii:usize) (jj:usize). + (v ii < 5 /\ v jj < 5 /\ + v ii >= v i) ==> + s.[ ii,jj ] == old.[ ii,jj ]) + +let chi_outer_body + (#v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (old s: t_KeccakState v_N v_T) + (i: usize{v i < 5}) + : Pure (t_KeccakState v_N v_T) + (requires chi_outer_inv old s i) + (ensures fun r -> chi_outer_inv old r (i +! sz 1)) = + let s = chi_inner_body #v_N old s i (mk_usize 0) in + let s = chi_inner_body #v_N old s i (mk_usize 1) in + let s = chi_inner_body #v_N old s i (mk_usize 2) in + let s = chi_inner_body #v_N old s i (mk_usize 3) in + chi_inner_body #v_N old s i (mk_usize 4) + +(* ================================================================ + Fully unrolled chi with the outer postcondition. + ================================================================ *) + +#push-options "--z3rlimit 400" +let chi_unrolled + (#v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (ks: t_KeccakState v_N v_T) + : Pure (t_KeccakState v_N v_T) + (requires True) + (ensures fun r -> chi_outer_inv ks r (sz 5)) + = + let old = ks in + let s = chi_outer_body #v_N old ks (mk_usize 0) in + let s = chi_outer_body #v_N old s (mk_usize 1) in + let s = chi_outer_body #v_N old s (mk_usize 2) in + let s = chi_outer_body #v_N old s (mk_usize 3) in + let s = chi_outer_body #v_N old s (mk_usize 4) in + s +#pop-options + +(* ================================================================ + Fold-range bridge: [impl_2__chi == chi_unrolled]. + Fuel 6 lets Z3 unfold both nested 0..5 fold_ranges step by step. + ================================================================ *) + +#push-options "--fuel 6 --ifuel 0 --z3rlimit 800" +let lemma_chi_outer_unfolds_generic + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (ks: t_KeccakState v_N v_T) + : Lemma (impl_2__chi v_N #v_T ks == chi_unrolled #v_N #v_T ks) + = () +#pop-options + +(* ================================================================ + Top-level export: per-position equality at any flat index. + ================================================================ *) + +#push-options "--z3rlimit 400 --split_queries always" +let lemma_chi_val_i + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (ks: t_KeccakState v_N v_T) + (k: usize{v k < 25}) + : Lemma ((impl_2__chi v_N #v_T ks).f_st.[ k <: usize ] == + chi_inner_val ks (k /! sz 5) (k %! sz 5)) + = let i = k /! sz 5 in + let j = k %! sz 5 in + assert (v i = v k / 5); + assert (v j = v k % 5); + assert (v i < 5); + assert (v j < 5); + assert (v k == 5 * v i + v j); + assert (k == sz 5 *! i +! j); + let s = chi_unrolled #v_N #v_T ks in + lemma_chi_outer_unfolds_generic v_N ks; + assert (chi_outer_inv ks s (sz 5)); + assert (s.[ i,j ] == chi_inner_val ks i j); + assert (s.[ i,j ] == Libcrux_sha3.Traits.get_ij v_N s.f_st i j) +#pop-options diff --git a/crates/algorithms/sha3/proofs/fstar/equivalence/EquivImplSpec.Keccakf.Generic.fst b/crates/algorithms/sha3/proofs/fstar/equivalence/EquivImplSpec.Keccakf.Generic.fst new file mode 100644 index 0000000000..40769b0e07 --- /dev/null +++ b/crates/algorithms/sha3/proofs/fstar/equivalence/EquivImplSpec.Keccakf.Generic.fst @@ -0,0 +1,2024 @@ +module EquivImplSpec.Keccakf.Generic + +(* ================================================================ + Generic keccak_f equivalence via lane-wise `to_spec` commutativity. + + MAIN THEOREM (lemma_keccakf1600_to_spec): + + extract_lane lc (keccakf1600 v_N #v_T ks).f_st l == + keccak_f (extract_lane lc ks.f_st l) + + i.e., extracting any lane from the SIMD keccakf1600 result equals + running the scalar spec keccak_f on that lane of the input. + + ARCHITECTURE: + + 1. `lane_correctness` record — 7 hypotheses any KeccakItem backend + must satisfy (lc_xor5, lc_rotate_left1_and_xor, lc_xor_and_rotate, + lc_and_not_xor, lc_xor_constant, lc_xor, lc_zero). These say + that extracting a lane commutes with each typeclass operation. + + 2. `extract_lane lc state l` — maps `t_Array v_T 25` to + `t_Array u64 25` by applying `lc.lane` pointwise: + (extract_lane state l).[i] = lc.lane state.[i] l + + 3. Per-step commutativity lemmas — for each keccak step (theta+rho, + pi, chi, iota), prove: + extract_lane (impl_step state) l == spec_step (extract_lane state l) + + 4. Composition — chain per-step commutativity into one-round, then + induction over 24 rounds. + + PROOF STATUS: + + Proven (= ()): + - All generic impl-side lemmas (Phase 1): lemma_theta_generic, + lemma_rho_{0..4}_generic, lemma_pi_{0..4}_generic, + lemma_rho_unfold_generic, lemma_pi_unfold_generic. + These express impl results in terms of abstract KeccakItem ops. + - Operation-level lane commutativity: lane_xor5, lane_xor, etc. + (trivial wrappers around lane_correctness fields) + - One-round and multi-round composition (assuming per-step lemmas) + + Admitted (library-level, same as portable proof): + - [Proof_Utils.Lemmas.lemma_rotate_left_zero]: rotate_left(x, 0) == x + - [Proof_Utils.Lemmas.logand_commutative]: (a &. b) == (b &. a) + - lemma_rho_offsets_values: RHO_OFFSETS array element values + - lemma_keccakf1600_is_rounds: fold_range bridge (impl side) + - lemma_keccak_f_is_rounds: fold_range bridge (spec side) + + PROOF STRATEGY for the to_spec admits: + + Each to_spec lemma follows the same pattern: + 1. Use the generic impl-side lemma to know what each slot contains + (e.g., lemma_rho_0_generic says r.[1] == f_xor_and_rotate ... s.[1] d.[0]) + 2. Apply lane_* helpers to convert from abstract v_T ops to scalar u64 ops + (e.g., lane_xor_and_rotate says lc.lane(f_xor_and_rotate ... a b) l == rotl(lane a l ^. lane b l, LEFT)) + 3. Use spec-side reduction (e.g., lemma_rho_theta_spec from the portable proof) + 4. Conclude with Rust_primitives.Arrays.eq_intro + + The tricky part is getting Z3 to see pointwise equality across all 25 + indices. The portable proof handles this with explicit per-index asserts; + the generic proof needs the same but with lane extraction in between. + + INSTANTIATION (future files): + - Portable (N=1, u64): lane(x,0) = x. All lc_* are `= ()`. + - NEON (N=2, uint64x2_t): lane = get_lane64, lc_* from arm64_extract.rs specs + - AVX2 (N=4, Vec256): lane = get_lane, lc_* from avx2_extract.rs specs + ================================================================ *) + +#set-options "--fuel 0 --ifuel 1 --z3rlimit 100" + +open FStar.Mul +open Core_models +open Proof_Utils.NatFold (* fold_range_nat, lemma_fold_range_is_range_nat *) +module Lemmas = Proof_Utils.Lemmas +module ChiFold = EquivImplSpec.Keccakf.ChiFold +module SpecRounds = EquivImplSpec.Keccakf.SpecRounds + +let _ = + let open Libcrux_sha3.Traits in + let open Libcrux_sha3.Simd.Portable in + () + +(* ================================================================ + Lane-correctness specification + ================================================================ *) + +noeq type lane_correctness + (v_N: usize) + (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} = { + + lane: v_T -> l:nat{l < v v_N} -> u64; + + lc_zero: (l:nat{l < v v_N}) -> + Lemma (lane (Libcrux_sha3.Traits.f_zero #v_T #v_N #inst ()) l == mk_u64 0); + + lc_xor5: (a:v_T) -> (b:v_T) -> (c:v_T) -> (d:v_T) -> (e:v_T) -> (l:nat{l < v v_N}) -> + Lemma (lane (Libcrux_sha3.Traits.f_xor5 #v_T #v_N #inst a b c d e) l == + (((lane a l ^. lane b l) ^. lane c l) ^. lane d l) ^. lane e l); + + lc_rotate_left1_and_xor: (a:v_T) -> (b:v_T) -> (l:nat{l < v v_N}) -> + Lemma (lane (Libcrux_sha3.Traits.f_rotate_left1_and_xor #v_T #v_N #inst a b) l == + lane a l ^. Core_models.Num.impl_u64__rotate_left (lane b l) (mk_u32 1)); + + lc_xor_and_rotate: (v_LEFT:i32) -> (v_RIGHT:i32) -> (a:v_T) -> (b:v_T) -> (l:nat{l < v v_N}) -> + Lemma + (requires + ((Rust_primitives.Hax.Int.from_machine v_LEFT <: Hax_lib.Int.t_Int) + + (Rust_primitives.Hax.Int.from_machine v_RIGHT <: Hax_lib.Int.t_Int)) = + (Rust_primitives.Hax.Int.from_machine (mk_i32 64) <: Hax_lib.Int.t_Int) /\ + v_RIGHT >. mk_i32 0 /\ + v_RIGHT <. mk_i32 64) + (ensures + lane (Libcrux_sha3.Traits.f_xor_and_rotate #v_T #v_N #inst v_LEFT v_RIGHT a b) l == + Core_models.Num.impl_u64__rotate_left (lane a l ^. lane b l) (cast (v_LEFT <: i32) <: u32)); + + lc_and_not_xor: (a:v_T) -> (b:v_T) -> (c:v_T) -> (l:nat{l < v v_N}) -> + Lemma (lane (Libcrux_sha3.Traits.f_and_not_xor #v_T #v_N #inst a b c) l == + lane a l ^. (lane b l &. (~. (lane c l)))); + + lc_xor_constant: (a:v_T) -> (c:u64) -> (l:nat{l < v v_N}) -> + Lemma (lane (Libcrux_sha3.Traits.f_xor_constant #v_T #v_N #inst a c) l == + lane a l ^. c); + + lc_xor: (a:v_T) -> (b:v_T) -> (l:nat{l < v v_N}) -> + Lemma (lane (Libcrux_sha3.Traits.f_xor #v_T #v_N #inst a b) l == + lane a l ^. lane b l); +} + +(* ================================================================ + extract_lane: maps SIMD state to a scalar spec state for lane l + ================================================================ *) + +[@ "opaque_to_smt"] +let extract_lane + (#v_T: Type0) (v_N: usize) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (lc: lane_correctness v_N #v_T) + (state: t_Array v_T (mk_usize 25)) + (l: nat{l < v v_N}) + : t_Array u64 (mk_usize 25) = + Rust_primitives.Arrays.createi (mk_usize 25) (fun i -> lc.lane state.[i] l) + +let lemma_extract_lane_index + (#v_T: Type0) (v_N: usize) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (lc: lane_correctness v_N #v_T) + (state: t_Array v_T (mk_usize 25)) + (l: nat{l < v v_N}) + (i: usize{i <. mk_usize 25}) + : Lemma + ((extract_lane v_N lc state l).[i] == lc.lane state.[i] l) + [SMTPat ((extract_lane v_N lc state l).[i])] + = assert_norm ((extract_lane v_N lc state l).[i] == lc.lane state.[i] l) + +(* Shorthand for the spec's state type *) +let spec_state = SpecRounds.spec_state + +(* Shorthand for the impl's state type *) +let impl_state (v_N: usize) (v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} = + Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T + +(* ================================================================ + Operation-level commutativity with extract_lane + + These show that applying a KeccakItem operation to SIMD elements + and then extracting a lane equals extracting lanes first and then + applying the scalar operation. Each is a direct consequence of the + corresponding lane_correctness hypothesis. + ================================================================ *) + +let lane_xor5 + (#v_T: Type0) (v_N: usize) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (lc: lane_correctness v_N #v_T) + (a b c d e: v_T) (l: nat{l < v v_N}) + : Lemma (lc.lane (Libcrux_sha3.Traits.f_xor5 #v_T #v_N #inst a b c d e) l == + (((lc.lane a l ^. lc.lane b l) ^. lc.lane c l) ^. lc.lane d l) ^. lc.lane e l) + = lc.lc_xor5 a b c d e l + +let lane_rotate_left1_and_xor + (#v_T: Type0) (v_N: usize) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (lc: lane_correctness v_N #v_T) + (a b: v_T) (l: nat{l < v v_N}) + : Lemma (lc.lane (Libcrux_sha3.Traits.f_rotate_left1_and_xor #v_T #v_N #inst a b) l == + lc.lane a l ^. Core_models.Num.impl_u64__rotate_left (lc.lane b l) (mk_u32 1)) + = lc.lc_rotate_left1_and_xor a b l + +let lane_xor_and_rotate + (#v_T: Type0) (v_N: usize) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (lc: lane_correctness v_N #v_T) + (v_LEFT v_RIGHT: i32) (a b: v_T) (l: nat{l < v v_N}) + : Lemma + (requires + ((Rust_primitives.Hax.Int.from_machine v_LEFT <: Hax_lib.Int.t_Int) + + (Rust_primitives.Hax.Int.from_machine v_RIGHT <: Hax_lib.Int.t_Int)) = + (Rust_primitives.Hax.Int.from_machine (mk_i32 64) <: Hax_lib.Int.t_Int) /\ + v_RIGHT >. mk_i32 0 /\ + v_RIGHT <. mk_i32 64) + (ensures + lc.lane (Libcrux_sha3.Traits.f_xor_and_rotate #v_T #v_N #inst v_LEFT v_RIGHT a b) l == + Core_models.Num.impl_u64__rotate_left (lc.lane a l ^. lc.lane b l) (cast (v_LEFT <: i32) <: u32)) + = lc.lc_xor_and_rotate v_LEFT v_RIGHT a b l + +let lane_and_not_xor + (#v_T: Type0) (v_N: usize) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (lc: lane_correctness v_N #v_T) + (a b c: v_T) (l: nat{l < v v_N}) + : Lemma (lc.lane (Libcrux_sha3.Traits.f_and_not_xor #v_T #v_N #inst a b c) l == + lc.lane a l ^. (lc.lane b l &. (~. (lc.lane c l)))) + = lc.lc_and_not_xor a b c l + +let lane_xor_constant + (#v_T: Type0) (v_N: usize) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (lc: lane_correctness v_N #v_T) + (a: v_T) (c: u64) (l: nat{l < v v_N}) + : Lemma (lc.lane (Libcrux_sha3.Traits.f_xor_constant #v_T #v_N #inst a c) l == + lc.lane a l ^. c) + = lc.lc_xor_constant a c l + +let lane_xor + (#v_T: Type0) (v_N: usize) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (lc: lane_correctness v_N #v_T) + (a b: v_T) (l: nat{l < v v_N}) + : Lemma (lc.lane (Libcrux_sha3.Traits.f_xor #v_T #v_N #inst a b) l == + lc.lane a l ^. lc.lane b l) + = lc.lc_xor a b l + +(* ================================================================ + Phase 1: Generic impl-side rho lemmas (abstract v_T) + + These capture what each array slot of the rho result contains, + expressed in terms of abstract typeclass operations. + They should be `= ()` because they depend only on array update + semantics, not on the concrete type v_T. + ================================================================ *) + +(** Abbreviation for rotate_left with i32 cast. *) +let rotl (x: u64) (n: i32) : u64 = + Core_models.Num.impl_u64__rotate_left x (cast (n <: i32) <: u32) + +(** Theta: state is unchanged, d matches column parities. + Under the FIPS-native layout [get_ij(arr, i, j) = arr[5*i + j]] with + impl [(i, j) = (y, x)], column [x] corresponds to flat indices + [x, x+5, x+10, x+15, x+20] (stride 5). *) +#push-options "--z3rlimit 100" +let lemma_theta_generic + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + : Lemma + (let s = ks.Libcrux_sha3.Generic_keccak.f_st in + let ks', d = Libcrux_sha3.Generic_keccak.impl_2__theta v_N #v_T ks in + ks'.Libcrux_sha3.Generic_keccak.f_st == s /\ + d.[mk_usize 0] == Libcrux_sha3.Traits.f_rotate_left1_and_xor #v_T #v_N #inst + (Libcrux_sha3.Traits.f_xor5 #v_T #v_N #inst s.[mk_usize 4] s.[mk_usize 9] s.[mk_usize 14] s.[mk_usize 19] s.[mk_usize 24]) + (Libcrux_sha3.Traits.f_xor5 #v_T #v_N #inst s.[mk_usize 1] s.[mk_usize 6] s.[mk_usize 11] s.[mk_usize 16] s.[mk_usize 21]) /\ + d.[mk_usize 1] == Libcrux_sha3.Traits.f_rotate_left1_and_xor #v_T #v_N #inst + (Libcrux_sha3.Traits.f_xor5 #v_T #v_N #inst s.[mk_usize 0] s.[mk_usize 5] s.[mk_usize 10] s.[mk_usize 15] s.[mk_usize 20]) + (Libcrux_sha3.Traits.f_xor5 #v_T #v_N #inst s.[mk_usize 2] s.[mk_usize 7] s.[mk_usize 12] s.[mk_usize 17] s.[mk_usize 22]) /\ + d.[mk_usize 2] == Libcrux_sha3.Traits.f_rotate_left1_and_xor #v_T #v_N #inst + (Libcrux_sha3.Traits.f_xor5 #v_T #v_N #inst s.[mk_usize 1] s.[mk_usize 6] s.[mk_usize 11] s.[mk_usize 16] s.[mk_usize 21]) + (Libcrux_sha3.Traits.f_xor5 #v_T #v_N #inst s.[mk_usize 3] s.[mk_usize 8] s.[mk_usize 13] s.[mk_usize 18] s.[mk_usize 23]) /\ + d.[mk_usize 3] == Libcrux_sha3.Traits.f_rotate_left1_and_xor #v_T #v_N #inst + (Libcrux_sha3.Traits.f_xor5 #v_T #v_N #inst s.[mk_usize 2] s.[mk_usize 7] s.[mk_usize 12] s.[mk_usize 17] s.[mk_usize 22]) + (Libcrux_sha3.Traits.f_xor5 #v_T #v_N #inst s.[mk_usize 4] s.[mk_usize 9] s.[mk_usize 14] s.[mk_usize 19] s.[mk_usize 24]) /\ + d.[mk_usize 4] == Libcrux_sha3.Traits.f_rotate_left1_and_xor #v_T #v_N #inst + (Libcrux_sha3.Traits.f_xor5 #v_T #v_N #inst s.[mk_usize 3] s.[mk_usize 8] s.[mk_usize 13] s.[mk_usize 18] s.[mk_usize 23]) + (Libcrux_sha3.Traits.f_xor5 #v_T #v_N #inst s.[mk_usize 0] s.[mk_usize 5] s.[mk_usize 10] s.[mk_usize 15] s.[mk_usize 20])) + = () +#pop-options + +(** rho_0_: under FIPS-native layout, updates cells where [x=0] + (flat indices [0, 5, 10, 15, 20]); preserves the rest. + The [y=0, x=0] cell uses f_xor; the other four use f_xor_and_rotate. *) +#push-options "--z3rlimit 200" +let lemma_rho_0_generic + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (d: t_Array v_T (mk_usize 5)) + : Lemma + (let s = ks.Libcrux_sha3.Generic_keccak.f_st in + let r = (Libcrux_sha3.Generic_keccak.impl_2__rho_0_ v_N #v_T ks d) + .Libcrux_sha3.Generic_keccak.f_st in + r.[mk_usize 0] == Libcrux_sha3.Traits.f_xor #v_T #v_N #inst s.[mk_usize 0] d.[mk_usize 0] /\ + r.[mk_usize 5] == Libcrux_sha3.Traits.f_xor_and_rotate #v_T #v_N #inst (mk_i32 36) (mk_i32 28) s.[mk_usize 5] d.[mk_usize 0] /\ + r.[mk_usize 10] == Libcrux_sha3.Traits.f_xor_and_rotate #v_T #v_N #inst (mk_i32 3) (mk_i32 61) s.[mk_usize 10] d.[mk_usize 0] /\ + r.[mk_usize 15] == Libcrux_sha3.Traits.f_xor_and_rotate #v_T #v_N #inst (mk_i32 41) (mk_i32 23) s.[mk_usize 15] d.[mk_usize 0] /\ + r.[mk_usize 20] == Libcrux_sha3.Traits.f_xor_and_rotate #v_T #v_N #inst (mk_i32 18) (mk_i32 46) s.[mk_usize 20] d.[mk_usize 0] /\ + r.[mk_usize 1] == s.[mk_usize 1] /\ r.[mk_usize 2] == s.[mk_usize 2] /\ + r.[mk_usize 3] == s.[mk_usize 3] /\ r.[mk_usize 4] == s.[mk_usize 4] /\ + r.[mk_usize 6] == s.[mk_usize 6] /\ r.[mk_usize 7] == s.[mk_usize 7] /\ + r.[mk_usize 8] == s.[mk_usize 8] /\ r.[mk_usize 9] == s.[mk_usize 9] /\ + r.[mk_usize 11] == s.[mk_usize 11] /\ r.[mk_usize 12] == s.[mk_usize 12] /\ + r.[mk_usize 13] == s.[mk_usize 13] /\ r.[mk_usize 14] == s.[mk_usize 14] /\ + r.[mk_usize 16] == s.[mk_usize 16] /\ r.[mk_usize 17] == s.[mk_usize 17] /\ + r.[mk_usize 18] == s.[mk_usize 18] /\ r.[mk_usize 19] == s.[mk_usize 19] /\ + r.[mk_usize 21] == s.[mk_usize 21] /\ r.[mk_usize 22] == s.[mk_usize 22] /\ + r.[mk_usize 23] == s.[mk_usize 23] /\ r.[mk_usize 24] == s.[mk_usize 24]) + = () +#pop-options + +(** rho_1_: updates cells where [x=1] (flat [1, 6, 11, 16, 21]). *) +#push-options "--z3rlimit 200" +let lemma_rho_1_generic + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (d: t_Array v_T (mk_usize 5)) + : Lemma + (let s = ks.Libcrux_sha3.Generic_keccak.f_st in + let r = (Libcrux_sha3.Generic_keccak.impl_2__rho_1_ v_N #v_T ks d) + .Libcrux_sha3.Generic_keccak.f_st in + r.[mk_usize 1] == Libcrux_sha3.Traits.f_xor_and_rotate #v_T #v_N #inst (mk_i32 1) (mk_i32 63) s.[mk_usize 1] d.[mk_usize 1] /\ + r.[mk_usize 6] == Libcrux_sha3.Traits.f_xor_and_rotate #v_T #v_N #inst (mk_i32 44) (mk_i32 20) s.[mk_usize 6] d.[mk_usize 1] /\ + r.[mk_usize 11] == Libcrux_sha3.Traits.f_xor_and_rotate #v_T #v_N #inst (mk_i32 10) (mk_i32 54) s.[mk_usize 11] d.[mk_usize 1] /\ + r.[mk_usize 16] == Libcrux_sha3.Traits.f_xor_and_rotate #v_T #v_N #inst (mk_i32 45) (mk_i32 19) s.[mk_usize 16] d.[mk_usize 1] /\ + r.[mk_usize 21] == Libcrux_sha3.Traits.f_xor_and_rotate #v_T #v_N #inst (mk_i32 2) (mk_i32 62) s.[mk_usize 21] d.[mk_usize 1] /\ + r.[mk_usize 0] == s.[mk_usize 0] /\ r.[mk_usize 2] == s.[mk_usize 2] /\ + r.[mk_usize 3] == s.[mk_usize 3] /\ r.[mk_usize 4] == s.[mk_usize 4] /\ + r.[mk_usize 5] == s.[mk_usize 5] /\ r.[mk_usize 7] == s.[mk_usize 7] /\ + r.[mk_usize 8] == s.[mk_usize 8] /\ r.[mk_usize 9] == s.[mk_usize 9] /\ + r.[mk_usize 10] == s.[mk_usize 10] /\ r.[mk_usize 12] == s.[mk_usize 12] /\ + r.[mk_usize 13] == s.[mk_usize 13] /\ r.[mk_usize 14] == s.[mk_usize 14] /\ + r.[mk_usize 15] == s.[mk_usize 15] /\ r.[mk_usize 17] == s.[mk_usize 17] /\ + r.[mk_usize 18] == s.[mk_usize 18] /\ r.[mk_usize 19] == s.[mk_usize 19] /\ + r.[mk_usize 20] == s.[mk_usize 20] /\ r.[mk_usize 22] == s.[mk_usize 22] /\ + r.[mk_usize 23] == s.[mk_usize 23] /\ r.[mk_usize 24] == s.[mk_usize 24]) + = () +#pop-options + +(** rho_2_: updates cells where [x=2] (flat [2, 7, 12, 17, 22]). *) +#push-options "--z3rlimit 200" +let lemma_rho_2_generic + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (d: t_Array v_T (mk_usize 5)) + : Lemma + (let s = ks.Libcrux_sha3.Generic_keccak.f_st in + let r = (Libcrux_sha3.Generic_keccak.impl_2__rho_2_ v_N #v_T ks d) + .Libcrux_sha3.Generic_keccak.f_st in + r.[mk_usize 2] == Libcrux_sha3.Traits.f_xor_and_rotate #v_T #v_N #inst (mk_i32 62) (mk_i32 2) s.[mk_usize 2] d.[mk_usize 2] /\ + r.[mk_usize 7] == Libcrux_sha3.Traits.f_xor_and_rotate #v_T #v_N #inst (mk_i32 6) (mk_i32 58) s.[mk_usize 7] d.[mk_usize 2] /\ + r.[mk_usize 12] == Libcrux_sha3.Traits.f_xor_and_rotate #v_T #v_N #inst (mk_i32 43) (mk_i32 21) s.[mk_usize 12] d.[mk_usize 2] /\ + r.[mk_usize 17] == Libcrux_sha3.Traits.f_xor_and_rotate #v_T #v_N #inst (mk_i32 15) (mk_i32 49) s.[mk_usize 17] d.[mk_usize 2] /\ + r.[mk_usize 22] == Libcrux_sha3.Traits.f_xor_and_rotate #v_T #v_N #inst (mk_i32 61) (mk_i32 3) s.[mk_usize 22] d.[mk_usize 2] /\ + r.[mk_usize 0] == s.[mk_usize 0] /\ r.[mk_usize 1] == s.[mk_usize 1] /\ + r.[mk_usize 3] == s.[mk_usize 3] /\ r.[mk_usize 4] == s.[mk_usize 4] /\ + r.[mk_usize 5] == s.[mk_usize 5] /\ r.[mk_usize 6] == s.[mk_usize 6] /\ + r.[mk_usize 8] == s.[mk_usize 8] /\ r.[mk_usize 9] == s.[mk_usize 9] /\ + r.[mk_usize 10] == s.[mk_usize 10] /\ r.[mk_usize 11] == s.[mk_usize 11] /\ + r.[mk_usize 13] == s.[mk_usize 13] /\ r.[mk_usize 14] == s.[mk_usize 14] /\ + r.[mk_usize 15] == s.[mk_usize 15] /\ r.[mk_usize 16] == s.[mk_usize 16] /\ + r.[mk_usize 18] == s.[mk_usize 18] /\ r.[mk_usize 19] == s.[mk_usize 19] /\ + r.[mk_usize 20] == s.[mk_usize 20] /\ r.[mk_usize 21] == s.[mk_usize 21] /\ + r.[mk_usize 23] == s.[mk_usize 23] /\ r.[mk_usize 24] == s.[mk_usize 24]) + = () +#pop-options + +(** rho_3_: updates cells where [x=3] (flat [3, 8, 13, 18, 23]). *) +#push-options "--z3rlimit 200" +let lemma_rho_3_generic + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (d: t_Array v_T (mk_usize 5)) + : Lemma + (let s = ks.Libcrux_sha3.Generic_keccak.f_st in + let r = (Libcrux_sha3.Generic_keccak.impl_2__rho_3_ v_N #v_T ks d) + .Libcrux_sha3.Generic_keccak.f_st in + r.[mk_usize 3] == Libcrux_sha3.Traits.f_xor_and_rotate #v_T #v_N #inst (mk_i32 28) (mk_i32 36) s.[mk_usize 3] d.[mk_usize 3] /\ + r.[mk_usize 8] == Libcrux_sha3.Traits.f_xor_and_rotate #v_T #v_N #inst (mk_i32 55) (mk_i32 9) s.[mk_usize 8] d.[mk_usize 3] /\ + r.[mk_usize 13] == Libcrux_sha3.Traits.f_xor_and_rotate #v_T #v_N #inst (mk_i32 25) (mk_i32 39) s.[mk_usize 13] d.[mk_usize 3] /\ + r.[mk_usize 18] == Libcrux_sha3.Traits.f_xor_and_rotate #v_T #v_N #inst (mk_i32 21) (mk_i32 43) s.[mk_usize 18] d.[mk_usize 3] /\ + r.[mk_usize 23] == Libcrux_sha3.Traits.f_xor_and_rotate #v_T #v_N #inst (mk_i32 56) (mk_i32 8) s.[mk_usize 23] d.[mk_usize 3] /\ + r.[mk_usize 0] == s.[mk_usize 0] /\ r.[mk_usize 1] == s.[mk_usize 1] /\ + r.[mk_usize 2] == s.[mk_usize 2] /\ r.[mk_usize 4] == s.[mk_usize 4] /\ + r.[mk_usize 5] == s.[mk_usize 5] /\ r.[mk_usize 6] == s.[mk_usize 6] /\ + r.[mk_usize 7] == s.[mk_usize 7] /\ r.[mk_usize 9] == s.[mk_usize 9] /\ + r.[mk_usize 10] == s.[mk_usize 10] /\ r.[mk_usize 11] == s.[mk_usize 11] /\ + r.[mk_usize 12] == s.[mk_usize 12] /\ r.[mk_usize 14] == s.[mk_usize 14] /\ + r.[mk_usize 15] == s.[mk_usize 15] /\ r.[mk_usize 16] == s.[mk_usize 16] /\ + r.[mk_usize 17] == s.[mk_usize 17] /\ r.[mk_usize 19] == s.[mk_usize 19] /\ + r.[mk_usize 20] == s.[mk_usize 20] /\ r.[mk_usize 21] == s.[mk_usize 21] /\ + r.[mk_usize 22] == s.[mk_usize 22] /\ r.[mk_usize 24] == s.[mk_usize 24]) + = () +#pop-options + +(** rho_4_: updates cells where [x=4] (flat [4, 9, 14, 19, 24]). *) +#push-options "--z3rlimit 200" +let lemma_rho_4_generic + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (d: t_Array v_T (mk_usize 5)) + : Lemma + (let s = ks.Libcrux_sha3.Generic_keccak.f_st in + let r = (Libcrux_sha3.Generic_keccak.impl_2__rho_4_ v_N #v_T ks d) + .Libcrux_sha3.Generic_keccak.f_st in + r.[mk_usize 4] == Libcrux_sha3.Traits.f_xor_and_rotate #v_T #v_N #inst (mk_i32 27) (mk_i32 37) s.[mk_usize 4] d.[mk_usize 4] /\ + r.[mk_usize 9] == Libcrux_sha3.Traits.f_xor_and_rotate #v_T #v_N #inst (mk_i32 20) (mk_i32 44) s.[mk_usize 9] d.[mk_usize 4] /\ + r.[mk_usize 14] == Libcrux_sha3.Traits.f_xor_and_rotate #v_T #v_N #inst (mk_i32 39) (mk_i32 25) s.[mk_usize 14] d.[mk_usize 4] /\ + r.[mk_usize 19] == Libcrux_sha3.Traits.f_xor_and_rotate #v_T #v_N #inst (mk_i32 8) (mk_i32 56) s.[mk_usize 19] d.[mk_usize 4] /\ + r.[mk_usize 24] == Libcrux_sha3.Traits.f_xor_and_rotate #v_T #v_N #inst (mk_i32 14) (mk_i32 50) s.[mk_usize 24] d.[mk_usize 4] /\ + r.[mk_usize 0] == s.[mk_usize 0] /\ r.[mk_usize 1] == s.[mk_usize 1] /\ + r.[mk_usize 2] == s.[mk_usize 2] /\ r.[mk_usize 3] == s.[mk_usize 3] /\ + r.[mk_usize 5] == s.[mk_usize 5] /\ r.[mk_usize 6] == s.[mk_usize 6] /\ + r.[mk_usize 7] == s.[mk_usize 7] /\ r.[mk_usize 8] == s.[mk_usize 8] /\ + r.[mk_usize 10] == s.[mk_usize 10] /\ r.[mk_usize 11] == s.[mk_usize 11] /\ + r.[mk_usize 12] == s.[mk_usize 12] /\ r.[mk_usize 13] == s.[mk_usize 13] /\ + r.[mk_usize 15] == s.[mk_usize 15] /\ r.[mk_usize 16] == s.[mk_usize 16] /\ + r.[mk_usize 17] == s.[mk_usize 17] /\ r.[mk_usize 18] == s.[mk_usize 18] /\ + r.[mk_usize 20] == s.[mk_usize 20] /\ r.[mk_usize 21] == s.[mk_usize 21] /\ + r.[mk_usize 22] == s.[mk_usize 22] /\ r.[mk_usize 23] == s.[mk_usize 23]) + = () +#pop-options + +(** rho unfolds to rho_0_ through rho_4_ chain. *) +#push-options "--z3rlimit 100" +let lemma_rho_unfold_generic + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (d: t_Array v_T (mk_usize 5)) + : Lemma + (let open Libcrux_sha3.Generic_keccak in + impl_2__rho v_N #v_T ks d == + (let ks0 = impl_2__rho_0_ v_N #v_T ks d in + let ks1 = impl_2__rho_1_ v_N #v_T ks0 d in + let ks2 = impl_2__rho_2_ v_N #v_T ks1 d in + let ks3 = impl_2__rho_3_ v_N #v_T ks2 d in + impl_2__rho_4_ v_N #v_T ks3 d)) + = () +#pop-options + +(* ================================================================ + Phase 1b: Generic impl-side pi lemmas (abstract v_T) + ================================================================ *) + +(** pi_0_: updates cells where [x=0] except [(0,0)] (flat [5, 10, 15, 20]). *) +#push-options "--z3rlimit 200" +let lemma_pi_0_generic + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (ks old: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + : Lemma + (let s = ks.Libcrux_sha3.Generic_keccak.f_st in + let o = old.Libcrux_sha3.Generic_keccak.f_st in + let r = (Libcrux_sha3.Generic_keccak.impl_2__pi_0_ v_N #v_T ks old) + .Libcrux_sha3.Generic_keccak.f_st in + r.[mk_usize 5] == o.[mk_usize 3] /\ + r.[mk_usize 10] == o.[mk_usize 1] /\ + r.[mk_usize 15] == o.[mk_usize 4] /\ + r.[mk_usize 20] == o.[mk_usize 2] /\ + r.[mk_usize 0] == s.[mk_usize 0] /\ r.[mk_usize 1] == s.[mk_usize 1] /\ + r.[mk_usize 2] == s.[mk_usize 2] /\ r.[mk_usize 3] == s.[mk_usize 3] /\ + r.[mk_usize 4] == s.[mk_usize 4] /\ r.[mk_usize 6] == s.[mk_usize 6] /\ + r.[mk_usize 7] == s.[mk_usize 7] /\ r.[mk_usize 8] == s.[mk_usize 8] /\ + r.[mk_usize 9] == s.[mk_usize 9] /\ r.[mk_usize 11] == s.[mk_usize 11] /\ + r.[mk_usize 12] == s.[mk_usize 12] /\ r.[mk_usize 13] == s.[mk_usize 13] /\ + r.[mk_usize 14] == s.[mk_usize 14] /\ r.[mk_usize 16] == s.[mk_usize 16] /\ + r.[mk_usize 17] == s.[mk_usize 17] /\ r.[mk_usize 18] == s.[mk_usize 18] /\ + r.[mk_usize 19] == s.[mk_usize 19] /\ r.[mk_usize 21] == s.[mk_usize 21] /\ + r.[mk_usize 22] == s.[mk_usize 22] /\ r.[mk_usize 23] == s.[mk_usize 23] /\ + r.[mk_usize 24] == s.[mk_usize 24]) + = () +#pop-options + +(** pi_1_: updates cells where [x=1] (flat [1, 6, 11, 16, 21]). *) +#push-options "--z3rlimit 200" +let lemma_pi_1_generic + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (ks old: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + : Lemma + (let s = ks.Libcrux_sha3.Generic_keccak.f_st in + let o = old.Libcrux_sha3.Generic_keccak.f_st in + let r = (Libcrux_sha3.Generic_keccak.impl_2__pi_1_ v_N #v_T ks old) + .Libcrux_sha3.Generic_keccak.f_st in + r.[mk_usize 1] == o.[mk_usize 6] /\ + r.[mk_usize 6] == o.[mk_usize 9] /\ + r.[mk_usize 11] == o.[mk_usize 7] /\ + r.[mk_usize 16] == o.[mk_usize 5] /\ + r.[mk_usize 21] == o.[mk_usize 8] /\ + r.[mk_usize 0] == s.[mk_usize 0] /\ r.[mk_usize 2] == s.[mk_usize 2] /\ + r.[mk_usize 3] == s.[mk_usize 3] /\ r.[mk_usize 4] == s.[mk_usize 4] /\ + r.[mk_usize 5] == s.[mk_usize 5] /\ r.[mk_usize 7] == s.[mk_usize 7] /\ + r.[mk_usize 8] == s.[mk_usize 8] /\ r.[mk_usize 9] == s.[mk_usize 9] /\ + r.[mk_usize 10] == s.[mk_usize 10] /\ r.[mk_usize 12] == s.[mk_usize 12] /\ + r.[mk_usize 13] == s.[mk_usize 13] /\ r.[mk_usize 14] == s.[mk_usize 14] /\ + r.[mk_usize 15] == s.[mk_usize 15] /\ r.[mk_usize 17] == s.[mk_usize 17] /\ + r.[mk_usize 18] == s.[mk_usize 18] /\ r.[mk_usize 19] == s.[mk_usize 19] /\ + r.[mk_usize 20] == s.[mk_usize 20] /\ r.[mk_usize 22] == s.[mk_usize 22] /\ + r.[mk_usize 23] == s.[mk_usize 23] /\ r.[mk_usize 24] == s.[mk_usize 24]) + = () +#pop-options + +(** pi_2_: updates cells where [x=2] (flat [2, 7, 12, 17, 22]). *) +#push-options "--z3rlimit 200" +let lemma_pi_2_generic + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (ks old: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + : Lemma + (let s = ks.Libcrux_sha3.Generic_keccak.f_st in + let o = old.Libcrux_sha3.Generic_keccak.f_st in + let r = (Libcrux_sha3.Generic_keccak.impl_2__pi_2_ v_N #v_T ks old) + .Libcrux_sha3.Generic_keccak.f_st in + r.[mk_usize 2] == o.[mk_usize 12] /\ + r.[mk_usize 7] == o.[mk_usize 10] /\ + r.[mk_usize 12] == o.[mk_usize 13] /\ + r.[mk_usize 17] == o.[mk_usize 11] /\ + r.[mk_usize 22] == o.[mk_usize 14] /\ + r.[mk_usize 0] == s.[mk_usize 0] /\ r.[mk_usize 1] == s.[mk_usize 1] /\ + r.[mk_usize 3] == s.[mk_usize 3] /\ r.[mk_usize 4] == s.[mk_usize 4] /\ + r.[mk_usize 5] == s.[mk_usize 5] /\ r.[mk_usize 6] == s.[mk_usize 6] /\ + r.[mk_usize 8] == s.[mk_usize 8] /\ r.[mk_usize 9] == s.[mk_usize 9] /\ + r.[mk_usize 10] == s.[mk_usize 10] /\ r.[mk_usize 11] == s.[mk_usize 11] /\ + r.[mk_usize 13] == s.[mk_usize 13] /\ r.[mk_usize 14] == s.[mk_usize 14] /\ + r.[mk_usize 15] == s.[mk_usize 15] /\ r.[mk_usize 16] == s.[mk_usize 16] /\ + r.[mk_usize 18] == s.[mk_usize 18] /\ r.[mk_usize 19] == s.[mk_usize 19] /\ + r.[mk_usize 20] == s.[mk_usize 20] /\ r.[mk_usize 21] == s.[mk_usize 21] /\ + r.[mk_usize 23] == s.[mk_usize 23] /\ r.[mk_usize 24] == s.[mk_usize 24]) + = () +#pop-options + +(** pi_3_: updates cells where [x=3] (flat [3, 8, 13, 18, 23]). *) +#push-options "--z3rlimit 200" +let lemma_pi_3_generic + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (ks old: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + : Lemma + (let s = ks.Libcrux_sha3.Generic_keccak.f_st in + let o = old.Libcrux_sha3.Generic_keccak.f_st in + let r = (Libcrux_sha3.Generic_keccak.impl_2__pi_3_ v_N #v_T ks old) + .Libcrux_sha3.Generic_keccak.f_st in + r.[mk_usize 3] == o.[mk_usize 18] /\ + r.[mk_usize 8] == o.[mk_usize 16] /\ + r.[mk_usize 13] == o.[mk_usize 19] /\ + r.[mk_usize 18] == o.[mk_usize 17] /\ + r.[mk_usize 23] == o.[mk_usize 15] /\ + r.[mk_usize 0] == s.[mk_usize 0] /\ r.[mk_usize 1] == s.[mk_usize 1] /\ + r.[mk_usize 2] == s.[mk_usize 2] /\ r.[mk_usize 4] == s.[mk_usize 4] /\ + r.[mk_usize 5] == s.[mk_usize 5] /\ r.[mk_usize 6] == s.[mk_usize 6] /\ + r.[mk_usize 7] == s.[mk_usize 7] /\ r.[mk_usize 9] == s.[mk_usize 9] /\ + r.[mk_usize 10] == s.[mk_usize 10] /\ r.[mk_usize 11] == s.[mk_usize 11] /\ + r.[mk_usize 12] == s.[mk_usize 12] /\ r.[mk_usize 14] == s.[mk_usize 14] /\ + r.[mk_usize 15] == s.[mk_usize 15] /\ r.[mk_usize 16] == s.[mk_usize 16] /\ + r.[mk_usize 17] == s.[mk_usize 17] /\ r.[mk_usize 19] == s.[mk_usize 19] /\ + r.[mk_usize 20] == s.[mk_usize 20] /\ r.[mk_usize 21] == s.[mk_usize 21] /\ + r.[mk_usize 22] == s.[mk_usize 22] /\ r.[mk_usize 24] == s.[mk_usize 24]) + = () +#pop-options + +(** pi_4_: updates cells where [x=4] (flat [4, 9, 14, 19, 24]). *) +#push-options "--z3rlimit 200" +let lemma_pi_4_generic + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (ks old: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + : Lemma + (let s = ks.Libcrux_sha3.Generic_keccak.f_st in + let o = old.Libcrux_sha3.Generic_keccak.f_st in + let r = (Libcrux_sha3.Generic_keccak.impl_2__pi_4_ v_N #v_T ks old) + .Libcrux_sha3.Generic_keccak.f_st in + r.[mk_usize 4] == o.[mk_usize 24] /\ + r.[mk_usize 9] == o.[mk_usize 22] /\ + r.[mk_usize 14] == o.[mk_usize 20] /\ + r.[mk_usize 19] == o.[mk_usize 23] /\ + r.[mk_usize 24] == o.[mk_usize 21] /\ + r.[mk_usize 0] == s.[mk_usize 0] /\ r.[mk_usize 1] == s.[mk_usize 1] /\ + r.[mk_usize 2] == s.[mk_usize 2] /\ r.[mk_usize 3] == s.[mk_usize 3] /\ + r.[mk_usize 5] == s.[mk_usize 5] /\ r.[mk_usize 6] == s.[mk_usize 6] /\ + r.[mk_usize 7] == s.[mk_usize 7] /\ r.[mk_usize 8] == s.[mk_usize 8] /\ + r.[mk_usize 10] == s.[mk_usize 10] /\ r.[mk_usize 11] == s.[mk_usize 11] /\ + r.[mk_usize 12] == s.[mk_usize 12] /\ r.[mk_usize 13] == s.[mk_usize 13] /\ + r.[mk_usize 15] == s.[mk_usize 15] /\ r.[mk_usize 16] == s.[mk_usize 16] /\ + r.[mk_usize 17] == s.[mk_usize 17] /\ r.[mk_usize 18] == s.[mk_usize 18] /\ + r.[mk_usize 20] == s.[mk_usize 20] /\ r.[mk_usize 21] == s.[mk_usize 21] /\ + r.[mk_usize 22] == s.[mk_usize 22] /\ r.[mk_usize 23] == s.[mk_usize 23]) + = () +#pop-options + +(** pi unfolds to pi_0_ through pi_4_ chain. *) +#push-options "--z3rlimit 100" +let lemma_pi_unfold_generic + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + : Lemma + (let open Libcrux_sha3.Generic_keccak in + impl_2__pi v_N #v_T ks == + (let old = ks in + let ks0 = impl_2__pi_0_ v_N #v_T ks old in + let ks1 = impl_2__pi_1_ v_N #v_T ks0 old in + let ks2 = impl_2__pi_2_ v_N #v_T ks1 old in + let ks3 = impl_2__pi_3_ v_N #v_T ks2 old in + impl_2__pi_4_ v_N #v_T ks3 old)) + = () +#pop-options + +(* ================================================================ + Phase 2: Spec-side helpers (reused from the portable proof) + ================================================================ *) + +let spec_c (state: spec_state) (x: usize{x <. mk_usize 5}) : u64 = + ((((Hacspec_sha3.Keccak_f.get state x (mk_usize 0)) ^. + (Hacspec_sha3.Keccak_f.get state x (mk_usize 1))) ^. + (Hacspec_sha3.Keccak_f.get state x (mk_usize 2))) ^. + (Hacspec_sha3.Keccak_f.get state x (mk_usize 3))) ^. + (Hacspec_sha3.Keccak_f.get state x (mk_usize 4)) + +let spec_d (state: spec_state) (x: usize{x <. mk_usize 5}) : u64 = + (spec_c state ((x +! mk_usize 4) %! mk_usize 5)) ^. + (Core_models.Num.impl_u64__rotate_left + (spec_c state ((x +! mk_usize 1) %! mk_usize 5)) + (mk_u32 1)) + +(* ================================================================ + Phase 3: to_spec commutativity — theta+rho + + Goal: extract_lane lc (theta_rho impl_state) l == rho(theta(extract_lane lc impl_state l)) + + Strategy: + 1. Use generic rho lemmas to know what each slot of the impl result + contains (in terms of abstract v_T typeclass ops) + 2. Apply lane-correctness to convert to scalar u64 ops + 3. Match against spec rho(theta(...)) + ================================================================ *) + +(** Spec-side: RHO_OFFSETS values (FIPS-native layout, indexed as + RHO_OFFSETS[5*y + x]). Proved by reducing [v_RHO_OFFSETS] to the + concrete literal array, then reading off each index via a single + [assert_norm] on the concrete Seq-of-list. *) +#push-options "--z3rlimit 100" +let lemma_rho_offsets_values (_: unit) + : Lemma ( + Hacspec_sha3.Keccak_f.v_RHO_OFFSETS.[mk_usize 0] == mk_u32 0 /\ + Hacspec_sha3.Keccak_f.v_RHO_OFFSETS.[mk_usize 1] == mk_u32 1 /\ + Hacspec_sha3.Keccak_f.v_RHO_OFFSETS.[mk_usize 2] == mk_u32 62 /\ + Hacspec_sha3.Keccak_f.v_RHO_OFFSETS.[mk_usize 3] == mk_u32 28 /\ + Hacspec_sha3.Keccak_f.v_RHO_OFFSETS.[mk_usize 4] == mk_u32 27 /\ + Hacspec_sha3.Keccak_f.v_RHO_OFFSETS.[mk_usize 5] == mk_u32 36 /\ + Hacspec_sha3.Keccak_f.v_RHO_OFFSETS.[mk_usize 6] == mk_u32 44 /\ + Hacspec_sha3.Keccak_f.v_RHO_OFFSETS.[mk_usize 7] == mk_u32 6 /\ + Hacspec_sha3.Keccak_f.v_RHO_OFFSETS.[mk_usize 8] == mk_u32 55 /\ + Hacspec_sha3.Keccak_f.v_RHO_OFFSETS.[mk_usize 9] == mk_u32 20 /\ + Hacspec_sha3.Keccak_f.v_RHO_OFFSETS.[mk_usize 10] == mk_u32 3 /\ + Hacspec_sha3.Keccak_f.v_RHO_OFFSETS.[mk_usize 11] == mk_u32 10 /\ + Hacspec_sha3.Keccak_f.v_RHO_OFFSETS.[mk_usize 12] == mk_u32 43 /\ + Hacspec_sha3.Keccak_f.v_RHO_OFFSETS.[mk_usize 13] == mk_u32 25 /\ + Hacspec_sha3.Keccak_f.v_RHO_OFFSETS.[mk_usize 14] == mk_u32 39 /\ + Hacspec_sha3.Keccak_f.v_RHO_OFFSETS.[mk_usize 15] == mk_u32 41 /\ + Hacspec_sha3.Keccak_f.v_RHO_OFFSETS.[mk_usize 16] == mk_u32 45 /\ + Hacspec_sha3.Keccak_f.v_RHO_OFFSETS.[mk_usize 17] == mk_u32 15 /\ + Hacspec_sha3.Keccak_f.v_RHO_OFFSETS.[mk_usize 18] == mk_u32 21 /\ + Hacspec_sha3.Keccak_f.v_RHO_OFFSETS.[mk_usize 19] == mk_u32 8 /\ + Hacspec_sha3.Keccak_f.v_RHO_OFFSETS.[mk_usize 20] == mk_u32 18 /\ + Hacspec_sha3.Keccak_f.v_RHO_OFFSETS.[mk_usize 21] == mk_u32 2 /\ + Hacspec_sha3.Keccak_f.v_RHO_OFFSETS.[mk_usize 22] == mk_u32 61 /\ + Hacspec_sha3.Keccak_f.v_RHO_OFFSETS.[mk_usize 23] == mk_u32 56 /\ + Hacspec_sha3.Keccak_f.v_RHO_OFFSETS.[mk_usize 24] == mk_u32 14) + = let rho_list : list u32 = [ + mk_u32 0; mk_u32 1; mk_u32 62; mk_u32 28; mk_u32 27; + mk_u32 36; mk_u32 44; mk_u32 6; mk_u32 55; mk_u32 20; + mk_u32 3; mk_u32 10; mk_u32 43; mk_u32 25; mk_u32 39; + mk_u32 41; mk_u32 45; mk_u32 15; mk_u32 21; mk_u32 8; + mk_u32 18; mk_u32 2; mk_u32 61; mk_u32 56; mk_u32 14 ] + in + assert_norm(List.Tot.length rho_list == 25); + assert (forall i. Seq.index (Hacspec_sha3.Keccak_f.v_RHO_OFFSETS) i == + List.Tot.index rho_list i); + assert_norm ( List.Tot.index rho_list 0 == mk_u32 0 /\ + List.Tot.index rho_list 1 == mk_u32 1 /\ + List.Tot.index rho_list 2 == mk_u32 62 /\ + List.Tot.index rho_list 3 == mk_u32 28 /\ + List.Tot.index rho_list 4 == mk_u32 27 /\ + List.Tot.index rho_list 5 == mk_u32 36 /\ + List.Tot.index rho_list 6 == mk_u32 44 /\ + List.Tot.index rho_list 7 == mk_u32 6 /\ + List.Tot.index rho_list 8 == mk_u32 55 /\ + List.Tot.index rho_list 9 == mk_u32 20 /\ + List.Tot.index rho_list 10 == mk_u32 3 /\ + List.Tot.index rho_list 11 == mk_u32 10 /\ + List.Tot.index rho_list 12 == mk_u32 43 /\ + List.Tot.index rho_list 13 == mk_u32 25 /\ + List.Tot.index rho_list 14 == mk_u32 39 /\ + List.Tot.index rho_list 15 == mk_u32 41 /\ + List.Tot.index rho_list 16 == mk_u32 45 /\ + List.Tot.index rho_list 17 == mk_u32 15 /\ + List.Tot.index rho_list 18 == mk_u32 21 /\ + List.Tot.index rho_list 19 == mk_u32 8 /\ + List.Tot.index rho_list 20 == mk_u32 18 /\ + List.Tot.index rho_list 21 == mk_u32 2 /\ + List.Tot.index rho_list 22 == mk_u32 61 /\ + List.Tot.index rho_list 23 == mk_u32 56 /\ + List.Tot.index rho_list 24 == mk_u32 14) +#pop-options + +(** Round constants equivalence. *) +#push-options "--z3rlimit 200" +let lemma_round_constants_equal (i: usize) + : Lemma (requires i <. mk_usize 24) + (ensures Libcrux_sha3.Generic_keccak.Constants.v_ROUNDCONSTANTS.[i] == + Hacspec_sha3.Keccak_f.v_ROUND_CONSTANTS.[i]) + = assert_norm (Libcrux_sha3.Generic_keccak.Constants.v_ROUNDCONSTANTS == + Hacspec_sha3.Keccak_f.v_ROUND_CONSTANTS) +#pop-options + +let rotl_spec (x: u64) (n: u32) : u64 = + Core_models.Num.impl_u64__rotate_left x n + +(** Under the FIPS-native layout, theta XORs [state.[k]] with [d[k % 5]] + (column index is [k % 5], not [k / 5] as in the old transposed layout). *) +#push-options "--z3rlimit 400" +let lemma_rho_theta_spec (state: spec_state) + : Lemma + (let r = Hacspec_sha3.Keccak_f.rho (Hacspec_sha3.Keccak_f.theta state) in + r.[mk_usize 0] == rotl_spec (state.[mk_usize 0] ^. spec_d state (mk_usize 0)) (mk_u32 0) /\ + r.[mk_usize 1] == rotl_spec (state.[mk_usize 1] ^. spec_d state (mk_usize 1)) (mk_u32 1) /\ + r.[mk_usize 2] == rotl_spec (state.[mk_usize 2] ^. spec_d state (mk_usize 2)) (mk_u32 62) /\ + r.[mk_usize 3] == rotl_spec (state.[mk_usize 3] ^. spec_d state (mk_usize 3)) (mk_u32 28) /\ + r.[mk_usize 4] == rotl_spec (state.[mk_usize 4] ^. spec_d state (mk_usize 4)) (mk_u32 27) /\ + r.[mk_usize 5] == rotl_spec (state.[mk_usize 5] ^. spec_d state (mk_usize 0)) (mk_u32 36) /\ + r.[mk_usize 6] == rotl_spec (state.[mk_usize 6] ^. spec_d state (mk_usize 1)) (mk_u32 44) /\ + r.[mk_usize 7] == rotl_spec (state.[mk_usize 7] ^. spec_d state (mk_usize 2)) (mk_u32 6) /\ + r.[mk_usize 8] == rotl_spec (state.[mk_usize 8] ^. spec_d state (mk_usize 3)) (mk_u32 55) /\ + r.[mk_usize 9] == rotl_spec (state.[mk_usize 9] ^. spec_d state (mk_usize 4)) (mk_u32 20) /\ + r.[mk_usize 10] == rotl_spec (state.[mk_usize 10] ^. spec_d state (mk_usize 0)) (mk_u32 3) /\ + r.[mk_usize 11] == rotl_spec (state.[mk_usize 11] ^. spec_d state (mk_usize 1)) (mk_u32 10) /\ + r.[mk_usize 12] == rotl_spec (state.[mk_usize 12] ^. spec_d state (mk_usize 2)) (mk_u32 43) /\ + r.[mk_usize 13] == rotl_spec (state.[mk_usize 13] ^. spec_d state (mk_usize 3)) (mk_u32 25) /\ + r.[mk_usize 14] == rotl_spec (state.[mk_usize 14] ^. spec_d state (mk_usize 4)) (mk_u32 39) /\ + r.[mk_usize 15] == rotl_spec (state.[mk_usize 15] ^. spec_d state (mk_usize 0)) (mk_u32 41) /\ + r.[mk_usize 16] == rotl_spec (state.[mk_usize 16] ^. spec_d state (mk_usize 1)) (mk_u32 45) /\ + r.[mk_usize 17] == rotl_spec (state.[mk_usize 17] ^. spec_d state (mk_usize 2)) (mk_u32 15) /\ + r.[mk_usize 18] == rotl_spec (state.[mk_usize 18] ^. spec_d state (mk_usize 3)) (mk_u32 21) /\ + r.[mk_usize 19] == rotl_spec (state.[mk_usize 19] ^. spec_d state (mk_usize 4)) (mk_u32 8) /\ + r.[mk_usize 20] == rotl_spec (state.[mk_usize 20] ^. spec_d state (mk_usize 0)) (mk_u32 18) /\ + r.[mk_usize 21] == rotl_spec (state.[mk_usize 21] ^. spec_d state (mk_usize 1)) (mk_u32 2) /\ + r.[mk_usize 22] == rotl_spec (state.[mk_usize 22] ^. spec_d state (mk_usize 2)) (mk_u32 61) /\ + r.[mk_usize 23] == rotl_spec (state.[mk_usize 23] ^. spec_d state (mk_usize 3)) (mk_u32 56) /\ + r.[mk_usize 24] == rotl_spec (state.[mk_usize 24] ^. spec_d state (mk_usize 4)) (mk_u32 14)) + = lemma_rho_offsets_values (); + let ts = Hacspec_sha3.Keccak_f.theta state in + assert (ts.[mk_usize 0] == state.[mk_usize 0] ^. spec_d state (mk_usize 0)); + assert (ts.[mk_usize 1] == state.[mk_usize 1] ^. spec_d state (mk_usize 1)); + assert (ts.[mk_usize 2] == state.[mk_usize 2] ^. spec_d state (mk_usize 2)); + assert (ts.[mk_usize 3] == state.[mk_usize 3] ^. spec_d state (mk_usize 3)); + assert (ts.[mk_usize 4] == state.[mk_usize 4] ^. spec_d state (mk_usize 4)); + assert (ts.[mk_usize 5] == state.[mk_usize 5] ^. spec_d state (mk_usize 0)); + assert (ts.[mk_usize 6] == state.[mk_usize 6] ^. spec_d state (mk_usize 1)); + assert (ts.[mk_usize 7] == state.[mk_usize 7] ^. spec_d state (mk_usize 2)); + assert (ts.[mk_usize 8] == state.[mk_usize 8] ^. spec_d state (mk_usize 3)); + assert (ts.[mk_usize 9] == state.[mk_usize 9] ^. spec_d state (mk_usize 4)); + assert (ts.[mk_usize 10] == state.[mk_usize 10] ^. spec_d state (mk_usize 0)); + assert (ts.[mk_usize 11] == state.[mk_usize 11] ^. spec_d state (mk_usize 1)); + assert (ts.[mk_usize 12] == state.[mk_usize 12] ^. spec_d state (mk_usize 2)); + assert (ts.[mk_usize 13] == state.[mk_usize 13] ^. spec_d state (mk_usize 3)); + assert (ts.[mk_usize 14] == state.[mk_usize 14] ^. spec_d state (mk_usize 4)); + assert (ts.[mk_usize 15] == state.[mk_usize 15] ^. spec_d state (mk_usize 0)); + assert (ts.[mk_usize 16] == state.[mk_usize 16] ^. spec_d state (mk_usize 1)); + assert (ts.[mk_usize 17] == state.[mk_usize 17] ^. spec_d state (mk_usize 2)); + assert (ts.[mk_usize 18] == state.[mk_usize 18] ^. spec_d state (mk_usize 3)); + assert (ts.[mk_usize 19] == state.[mk_usize 19] ^. spec_d state (mk_usize 4)); + assert (ts.[mk_usize 20] == state.[mk_usize 20] ^. spec_d state (mk_usize 0)); + assert (ts.[mk_usize 21] == state.[mk_usize 21] ^. spec_d state (mk_usize 1)); + assert (ts.[mk_usize 22] == state.[mk_usize 22] ^. spec_d state (mk_usize 2)); + assert (ts.[mk_usize 23] == state.[mk_usize 23] ^. spec_d state (mk_usize 3)); + assert (ts.[mk_usize 24] == state.[mk_usize 24] ^. spec_d state (mk_usize 4)) +#pop-options + +#push-options "--z3rlimit 400" +let lemma_pi_spec (state: spec_state) + : Lemma + (let p = Hacspec_sha3.Keccak_f.pi state in + p.[mk_usize 0] == state.[mk_usize 0] /\ + p.[mk_usize 1] == state.[mk_usize 6] /\ + p.[mk_usize 2] == state.[mk_usize 12] /\ + p.[mk_usize 3] == state.[mk_usize 18] /\ + p.[mk_usize 4] == state.[mk_usize 24] /\ + p.[mk_usize 5] == state.[mk_usize 3] /\ + p.[mk_usize 6] == state.[mk_usize 9] /\ + p.[mk_usize 7] == state.[mk_usize 10] /\ + p.[mk_usize 8] == state.[mk_usize 16] /\ + p.[mk_usize 9] == state.[mk_usize 22] /\ + p.[mk_usize 10] == state.[mk_usize 1] /\ + p.[mk_usize 11] == state.[mk_usize 7] /\ + p.[mk_usize 12] == state.[mk_usize 13] /\ + p.[mk_usize 13] == state.[mk_usize 19] /\ + p.[mk_usize 14] == state.[mk_usize 20] /\ + p.[mk_usize 15] == state.[mk_usize 4] /\ + p.[mk_usize 16] == state.[mk_usize 5] /\ + p.[mk_usize 17] == state.[mk_usize 11] /\ + p.[mk_usize 18] == state.[mk_usize 17] /\ + p.[mk_usize 19] == state.[mk_usize 23] /\ + p.[mk_usize 20] == state.[mk_usize 2] /\ + p.[mk_usize 21] == state.[mk_usize 8] /\ + p.[mk_usize 22] == state.[mk_usize 14] /\ + p.[mk_usize 23] == state.[mk_usize 15] /\ + p.[mk_usize 24] == state.[mk_usize 21]) + = let p = normalize_term (Hacspec_sha3.Keccak_f.pi state) in + assert_norm (p.[mk_usize 0] == state.[mk_usize 0]); + assert_norm (p.[mk_usize 1] == state.[mk_usize 6]); + assert_norm (p.[mk_usize 2] == state.[mk_usize 12]); + assert_norm (p.[mk_usize 3] == state.[mk_usize 18]); + assert_norm (p.[mk_usize 4] == state.[mk_usize 24]); + assert_norm (p.[mk_usize 5] == state.[mk_usize 3]); + assert_norm (p.[mk_usize 6] == state.[mk_usize 9]); + assert_norm (p.[mk_usize 7] == state.[mk_usize 10]); + assert_norm (p.[mk_usize 8] == state.[mk_usize 16]); + assert_norm (p.[mk_usize 9] == state.[mk_usize 22]); + assert_norm (p.[mk_usize 10] == state.[mk_usize 1]); + assert_norm (p.[mk_usize 11] == state.[mk_usize 7]); + assert_norm (p.[mk_usize 12] == state.[mk_usize 13]); + assert_norm (p.[mk_usize 13] == state.[mk_usize 19]); + assert_norm (p.[mk_usize 14] == state.[mk_usize 20]); + assert_norm (p.[mk_usize 15] == state.[mk_usize 4]); + assert_norm (p.[mk_usize 16] == state.[mk_usize 5]); + assert_norm (p.[mk_usize 17] == state.[mk_usize 11]); + assert_norm (p.[mk_usize 18] == state.[mk_usize 17]); + assert_norm (p.[mk_usize 19] == state.[mk_usize 23]); + assert_norm (p.[mk_usize 20] == state.[mk_usize 2]); + assert_norm (p.[mk_usize 21] == state.[mk_usize 8]); + assert_norm (p.[mk_usize 22] == state.[mk_usize 14]); + assert_norm (p.[mk_usize 23] == state.[mk_usize 15]); + assert_norm (p.[mk_usize 24] == state.[mk_usize 21]) +#pop-options + +(* ================================================================ + Phase 4: to_spec commutativity for each step + + Core lemmas: extract_lane after impl step == spec step after extract_lane + ================================================================ *) + +let d_matches_spec + (#v_T: Type0) (v_N: usize) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (lc: lane_correctness v_N #v_T) + (d: t_Array v_T (mk_usize 5)) + (state: spec_state) + (l: nat{l < v v_N}) + : Type0 = + lc.lane d.[mk_usize 0] l == spec_d state (mk_usize 0) /\ + lc.lane d.[mk_usize 1] l == spec_d state (mk_usize 1) /\ + lc.lane d.[mk_usize 2] l == spec_d state (mk_usize 2) /\ + lc.lane d.[mk_usize 3] l == spec_d state (mk_usize 3) /\ + lc.lane d.[mk_usize 4] l == spec_d state (mk_usize 4) + +#push-options "--z3rlimit 800" +let lemma_theta_extract_lane + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (lc: lane_correctness v_N #v_T) + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (l: nat{l < v v_N}) + : Lemma + (let s = ks.Libcrux_sha3.Generic_keccak.f_st in + let ks', d = Libcrux_sha3.Generic_keccak.impl_2__theta v_N #v_T ks in + let state = extract_lane v_N lc s l in + ks'.Libcrux_sha3.Generic_keccak.f_st == s /\ + d_matches_spec v_N lc d state l) + = let open Libcrux_sha3.Generic_keccak in + let s = ks.f_st in + let ks', d = impl_2__theta v_N #v_T ks in + lemma_theta_generic v_N ks; + let c0 = Libcrux_sha3.Traits.f_xor5 #v_T #v_N #inst + s.[mk_usize 0] s.[mk_usize 5] s.[mk_usize 10] s.[mk_usize 15] s.[mk_usize 20] in + let c1 = Libcrux_sha3.Traits.f_xor5 #v_T #v_N #inst + s.[mk_usize 1] s.[mk_usize 6] s.[mk_usize 11] s.[mk_usize 16] s.[mk_usize 21] in + let c2 = Libcrux_sha3.Traits.f_xor5 #v_T #v_N #inst + s.[mk_usize 2] s.[mk_usize 7] s.[mk_usize 12] s.[mk_usize 17] s.[mk_usize 22] in + let c3 = Libcrux_sha3.Traits.f_xor5 #v_T #v_N #inst + s.[mk_usize 3] s.[mk_usize 8] s.[mk_usize 13] s.[mk_usize 18] s.[mk_usize 23] in + let c4 = Libcrux_sha3.Traits.f_xor5 #v_T #v_N #inst + s.[mk_usize 4] s.[mk_usize 9] s.[mk_usize 14] s.[mk_usize 19] s.[mk_usize 24] in + lane_xor5 v_N lc s.[mk_usize 0] s.[mk_usize 5] s.[mk_usize 10] s.[mk_usize 15] s.[mk_usize 20] l; + lane_xor5 v_N lc s.[mk_usize 1] s.[mk_usize 6] s.[mk_usize 11] s.[mk_usize 16] s.[mk_usize 21] l; + lane_xor5 v_N lc s.[mk_usize 2] s.[mk_usize 7] s.[mk_usize 12] s.[mk_usize 17] s.[mk_usize 22] l; + lane_xor5 v_N lc s.[mk_usize 3] s.[mk_usize 8] s.[mk_usize 13] s.[mk_usize 18] s.[mk_usize 23] l; + lane_xor5 v_N lc s.[mk_usize 4] s.[mk_usize 9] s.[mk_usize 14] s.[mk_usize 19] s.[mk_usize 24] l; + let state = extract_lane v_N lc s l in + assert (lc.lane c0 l == spec_c state (mk_usize 0)); + assert (lc.lane c1 l == spec_c state (mk_usize 1)); + assert (lc.lane c2 l == spec_c state (mk_usize 2)); + assert (lc.lane c3 l == spec_c state (mk_usize 3)); + assert (lc.lane c4 l == spec_c state (mk_usize 4)); + lane_rotate_left1_and_xor v_N lc c4 c1 l; + lane_rotate_left1_and_xor v_N lc c0 c2 l; + lane_rotate_left1_and_xor v_N lc c1 c3 l; + lane_rotate_left1_and_xor v_N lc c2 c4 l; + lane_rotate_left1_and_xor v_N lc c3 c0 l; + assert (lc.lane d.[mk_usize 0] l == spec_d state (mk_usize 0)); + assert (lc.lane d.[mk_usize 1] l == spec_d state (mk_usize 1)); + assert (lc.lane d.[mk_usize 2] l == spec_d state (mk_usize 2)); + assert (lc.lane d.[mk_usize 3] l == spec_d state (mk_usize 3)); + assert (lc.lane d.[mk_usize 4] l == spec_d state (mk_usize 4)) +#pop-options + +#push-options "--z3rlimit 800" +let lemma_rho_0_extract_lane + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (lc: lane_correctness v_N #v_T) + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (d: t_Array v_T (mk_usize 5)) + (l: nat{l < v v_N}) + : Lemma + (let s = extract_lane v_N lc ks.Libcrux_sha3.Generic_keccak.f_st l in + let r = extract_lane v_N lc + (Libcrux_sha3.Generic_keccak.impl_2__rho_0_ v_N #v_T ks d).Libcrux_sha3.Generic_keccak.f_st l in + r.[mk_usize 0] == s.[mk_usize 0] ^. lc.lane d.[mk_usize 0] l /\ + r.[mk_usize 5] == rotl_spec (s.[mk_usize 5] ^. lc.lane d.[mk_usize 0] l) (mk_u32 36) /\ + r.[mk_usize 10] == rotl_spec (s.[mk_usize 10] ^. lc.lane d.[mk_usize 0] l) (mk_u32 3) /\ + r.[mk_usize 15] == rotl_spec (s.[mk_usize 15] ^. lc.lane d.[mk_usize 0] l) (mk_u32 41) /\ + r.[mk_usize 20] == rotl_spec (s.[mk_usize 20] ^. lc.lane d.[mk_usize 0] l) (mk_u32 18) /\ + r.[mk_usize 1] == s.[mk_usize 1] /\ r.[mk_usize 2] == s.[mk_usize 2] /\ + r.[mk_usize 3] == s.[mk_usize 3] /\ r.[mk_usize 4] == s.[mk_usize 4] /\ + r.[mk_usize 6] == s.[mk_usize 6] /\ r.[mk_usize 7] == s.[mk_usize 7] /\ + r.[mk_usize 8] == s.[mk_usize 8] /\ r.[mk_usize 9] == s.[mk_usize 9] /\ + r.[mk_usize 11] == s.[mk_usize 11] /\ r.[mk_usize 12] == s.[mk_usize 12] /\ + r.[mk_usize 13] == s.[mk_usize 13] /\ r.[mk_usize 14] == s.[mk_usize 14] /\ + r.[mk_usize 16] == s.[mk_usize 16] /\ r.[mk_usize 17] == s.[mk_usize 17] /\ + r.[mk_usize 18] == s.[mk_usize 18] /\ r.[mk_usize 19] == s.[mk_usize 19] /\ + r.[mk_usize 21] == s.[mk_usize 21] /\ r.[mk_usize 22] == s.[mk_usize 22] /\ + r.[mk_usize 23] == s.[mk_usize 23] /\ r.[mk_usize 24] == s.[mk_usize 24]) + = let open Libcrux_sha3.Generic_keccak in + lemma_rho_0_generic v_N ks d; + lane_xor v_N lc ks.f_st.[mk_usize 0] d.[mk_usize 0] l; + lane_xor_and_rotate v_N lc (mk_i32 36) (mk_i32 28) ks.f_st.[mk_usize 5] d.[mk_usize 0] l; + lane_xor_and_rotate v_N lc (mk_i32 3) (mk_i32 61) ks.f_st.[mk_usize 10] d.[mk_usize 0] l; + lane_xor_and_rotate v_N lc (mk_i32 41) (mk_i32 23) ks.f_st.[mk_usize 15] d.[mk_usize 0] l; + lane_xor_and_rotate v_N lc (mk_i32 18) (mk_i32 46) ks.f_st.[mk_usize 20] d.[mk_usize 0] l +#pop-options + +#push-options "--z3rlimit 800" +let lemma_rho_1_extract_lane + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (lc: lane_correctness v_N #v_T) + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (d: t_Array v_T (mk_usize 5)) + (l: nat{l < v v_N}) + : Lemma + (let s = extract_lane v_N lc ks.Libcrux_sha3.Generic_keccak.f_st l in + let r = extract_lane v_N lc + (Libcrux_sha3.Generic_keccak.impl_2__rho_1_ v_N #v_T ks d).Libcrux_sha3.Generic_keccak.f_st l in + r.[mk_usize 1] == rotl_spec (s.[mk_usize 1] ^. lc.lane d.[mk_usize 1] l) (mk_u32 1) /\ + r.[mk_usize 6] == rotl_spec (s.[mk_usize 6] ^. lc.lane d.[mk_usize 1] l) (mk_u32 44) /\ + r.[mk_usize 11] == rotl_spec (s.[mk_usize 11] ^. lc.lane d.[mk_usize 1] l) (mk_u32 10) /\ + r.[mk_usize 16] == rotl_spec (s.[mk_usize 16] ^. lc.lane d.[mk_usize 1] l) (mk_u32 45) /\ + r.[mk_usize 21] == rotl_spec (s.[mk_usize 21] ^. lc.lane d.[mk_usize 1] l) (mk_u32 2) /\ + r.[mk_usize 0] == s.[mk_usize 0] /\ r.[mk_usize 2] == s.[mk_usize 2] /\ + r.[mk_usize 3] == s.[mk_usize 3] /\ r.[mk_usize 4] == s.[mk_usize 4] /\ + r.[mk_usize 5] == s.[mk_usize 5] /\ r.[mk_usize 7] == s.[mk_usize 7] /\ + r.[mk_usize 8] == s.[mk_usize 8] /\ r.[mk_usize 9] == s.[mk_usize 9] /\ + r.[mk_usize 10] == s.[mk_usize 10] /\ r.[mk_usize 12] == s.[mk_usize 12] /\ + r.[mk_usize 13] == s.[mk_usize 13] /\ r.[mk_usize 14] == s.[mk_usize 14] /\ + r.[mk_usize 15] == s.[mk_usize 15] /\ r.[mk_usize 17] == s.[mk_usize 17] /\ + r.[mk_usize 18] == s.[mk_usize 18] /\ r.[mk_usize 19] == s.[mk_usize 19] /\ + r.[mk_usize 20] == s.[mk_usize 20] /\ r.[mk_usize 22] == s.[mk_usize 22] /\ + r.[mk_usize 23] == s.[mk_usize 23] /\ r.[mk_usize 24] == s.[mk_usize 24]) + = let open Libcrux_sha3.Generic_keccak in + lemma_rho_1_generic v_N ks d; + lane_xor_and_rotate v_N lc (mk_i32 1) (mk_i32 63) ks.f_st.[mk_usize 1] d.[mk_usize 1] l; + lane_xor_and_rotate v_N lc (mk_i32 44) (mk_i32 20) ks.f_st.[mk_usize 6] d.[mk_usize 1] l; + lane_xor_and_rotate v_N lc (mk_i32 10) (mk_i32 54) ks.f_st.[mk_usize 11] d.[mk_usize 1] l; + lane_xor_and_rotate v_N lc (mk_i32 45) (mk_i32 19) ks.f_st.[mk_usize 16] d.[mk_usize 1] l; + lane_xor_and_rotate v_N lc (mk_i32 2) (mk_i32 62) ks.f_st.[mk_usize 21] d.[mk_usize 1] l +#pop-options + +#push-options "--z3rlimit 800" +let lemma_rho_2_extract_lane + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (lc: lane_correctness v_N #v_T) + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (d: t_Array v_T (mk_usize 5)) + (l: nat{l < v v_N}) + : Lemma + (let s = extract_lane v_N lc ks.Libcrux_sha3.Generic_keccak.f_st l in + let r = extract_lane v_N lc + (Libcrux_sha3.Generic_keccak.impl_2__rho_2_ v_N #v_T ks d).Libcrux_sha3.Generic_keccak.f_st l in + r.[mk_usize 2] == rotl_spec (s.[mk_usize 2] ^. lc.lane d.[mk_usize 2] l) (mk_u32 62) /\ + r.[mk_usize 7] == rotl_spec (s.[mk_usize 7] ^. lc.lane d.[mk_usize 2] l) (mk_u32 6) /\ + r.[mk_usize 12] == rotl_spec (s.[mk_usize 12] ^. lc.lane d.[mk_usize 2] l) (mk_u32 43) /\ + r.[mk_usize 17] == rotl_spec (s.[mk_usize 17] ^. lc.lane d.[mk_usize 2] l) (mk_u32 15) /\ + r.[mk_usize 22] == rotl_spec (s.[mk_usize 22] ^. lc.lane d.[mk_usize 2] l) (mk_u32 61) /\ + r.[mk_usize 0] == s.[mk_usize 0] /\ r.[mk_usize 1] == s.[mk_usize 1] /\ + r.[mk_usize 3] == s.[mk_usize 3] /\ r.[mk_usize 4] == s.[mk_usize 4] /\ + r.[mk_usize 5] == s.[mk_usize 5] /\ r.[mk_usize 6] == s.[mk_usize 6] /\ + r.[mk_usize 8] == s.[mk_usize 8] /\ r.[mk_usize 9] == s.[mk_usize 9] /\ + r.[mk_usize 10] == s.[mk_usize 10] /\ r.[mk_usize 11] == s.[mk_usize 11] /\ + r.[mk_usize 13] == s.[mk_usize 13] /\ r.[mk_usize 14] == s.[mk_usize 14] /\ + r.[mk_usize 15] == s.[mk_usize 15] /\ r.[mk_usize 16] == s.[mk_usize 16] /\ + r.[mk_usize 18] == s.[mk_usize 18] /\ r.[mk_usize 19] == s.[mk_usize 19] /\ + r.[mk_usize 20] == s.[mk_usize 20] /\ r.[mk_usize 21] == s.[mk_usize 21] /\ + r.[mk_usize 23] == s.[mk_usize 23] /\ r.[mk_usize 24] == s.[mk_usize 24]) + = let open Libcrux_sha3.Generic_keccak in + lemma_rho_2_generic v_N ks d; + lane_xor_and_rotate v_N lc (mk_i32 62) (mk_i32 2) ks.f_st.[mk_usize 2] d.[mk_usize 2] l; + lane_xor_and_rotate v_N lc (mk_i32 6) (mk_i32 58) ks.f_st.[mk_usize 7] d.[mk_usize 2] l; + lane_xor_and_rotate v_N lc (mk_i32 43) (mk_i32 21) ks.f_st.[mk_usize 12] d.[mk_usize 2] l; + lane_xor_and_rotate v_N lc (mk_i32 15) (mk_i32 49) ks.f_st.[mk_usize 17] d.[mk_usize 2] l; + lane_xor_and_rotate v_N lc (mk_i32 61) (mk_i32 3) ks.f_st.[mk_usize 22] d.[mk_usize 2] l +#pop-options + +#push-options "--z3rlimit 800" +let lemma_rho_3_extract_lane + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (lc: lane_correctness v_N #v_T) + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (d: t_Array v_T (mk_usize 5)) + (l: nat{l < v v_N}) + : Lemma + (let s = extract_lane v_N lc ks.Libcrux_sha3.Generic_keccak.f_st l in + let r = extract_lane v_N lc + (Libcrux_sha3.Generic_keccak.impl_2__rho_3_ v_N #v_T ks d).Libcrux_sha3.Generic_keccak.f_st l in + r.[mk_usize 3] == rotl_spec (s.[mk_usize 3] ^. lc.lane d.[mk_usize 3] l) (mk_u32 28) /\ + r.[mk_usize 8] == rotl_spec (s.[mk_usize 8] ^. lc.lane d.[mk_usize 3] l) (mk_u32 55) /\ + r.[mk_usize 13] == rotl_spec (s.[mk_usize 13] ^. lc.lane d.[mk_usize 3] l) (mk_u32 25) /\ + r.[mk_usize 18] == rotl_spec (s.[mk_usize 18] ^. lc.lane d.[mk_usize 3] l) (mk_u32 21) /\ + r.[mk_usize 23] == rotl_spec (s.[mk_usize 23] ^. lc.lane d.[mk_usize 3] l) (mk_u32 56) /\ + r.[mk_usize 0] == s.[mk_usize 0] /\ r.[mk_usize 1] == s.[mk_usize 1] /\ + r.[mk_usize 2] == s.[mk_usize 2] /\ r.[mk_usize 4] == s.[mk_usize 4] /\ + r.[mk_usize 5] == s.[mk_usize 5] /\ r.[mk_usize 6] == s.[mk_usize 6] /\ + r.[mk_usize 7] == s.[mk_usize 7] /\ r.[mk_usize 9] == s.[mk_usize 9] /\ + r.[mk_usize 10] == s.[mk_usize 10] /\ r.[mk_usize 11] == s.[mk_usize 11] /\ + r.[mk_usize 12] == s.[mk_usize 12] /\ r.[mk_usize 14] == s.[mk_usize 14] /\ + r.[mk_usize 15] == s.[mk_usize 15] /\ r.[mk_usize 16] == s.[mk_usize 16] /\ + r.[mk_usize 17] == s.[mk_usize 17] /\ r.[mk_usize 19] == s.[mk_usize 19] /\ + r.[mk_usize 20] == s.[mk_usize 20] /\ r.[mk_usize 21] == s.[mk_usize 21] /\ + r.[mk_usize 22] == s.[mk_usize 22] /\ r.[mk_usize 24] == s.[mk_usize 24]) + = let open Libcrux_sha3.Generic_keccak in + lemma_rho_3_generic v_N ks d; + lane_xor_and_rotate v_N lc (mk_i32 28) (mk_i32 36) ks.f_st.[mk_usize 3] d.[mk_usize 3] l; + lane_xor_and_rotate v_N lc (mk_i32 55) (mk_i32 9) ks.f_st.[mk_usize 8] d.[mk_usize 3] l; + lane_xor_and_rotate v_N lc (mk_i32 25) (mk_i32 39) ks.f_st.[mk_usize 13] d.[mk_usize 3] l; + lane_xor_and_rotate v_N lc (mk_i32 21) (mk_i32 43) ks.f_st.[mk_usize 18] d.[mk_usize 3] l; + lane_xor_and_rotate v_N lc (mk_i32 56) (mk_i32 8) ks.f_st.[mk_usize 23] d.[mk_usize 3] l +#pop-options + +#push-options "--z3rlimit 800" +let lemma_rho_4_extract_lane + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (lc: lane_correctness v_N #v_T) + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (d: t_Array v_T (mk_usize 5)) + (l: nat{l < v v_N}) + : Lemma + (let s = extract_lane v_N lc ks.Libcrux_sha3.Generic_keccak.f_st l in + let r = extract_lane v_N lc + (Libcrux_sha3.Generic_keccak.impl_2__rho_4_ v_N #v_T ks d).Libcrux_sha3.Generic_keccak.f_st l in + r.[mk_usize 4] == rotl_spec (s.[mk_usize 4] ^. lc.lane d.[mk_usize 4] l) (mk_u32 27) /\ + r.[mk_usize 9] == rotl_spec (s.[mk_usize 9] ^. lc.lane d.[mk_usize 4] l) (mk_u32 20) /\ + r.[mk_usize 14] == rotl_spec (s.[mk_usize 14] ^. lc.lane d.[mk_usize 4] l) (mk_u32 39) /\ + r.[mk_usize 19] == rotl_spec (s.[mk_usize 19] ^. lc.lane d.[mk_usize 4] l) (mk_u32 8) /\ + r.[mk_usize 24] == rotl_spec (s.[mk_usize 24] ^. lc.lane d.[mk_usize 4] l) (mk_u32 14) /\ + r.[mk_usize 0] == s.[mk_usize 0] /\ r.[mk_usize 1] == s.[mk_usize 1] /\ + r.[mk_usize 2] == s.[mk_usize 2] /\ r.[mk_usize 3] == s.[mk_usize 3] /\ + r.[mk_usize 5] == s.[mk_usize 5] /\ r.[mk_usize 6] == s.[mk_usize 6] /\ + r.[mk_usize 7] == s.[mk_usize 7] /\ r.[mk_usize 8] == s.[mk_usize 8] /\ + r.[mk_usize 10] == s.[mk_usize 10] /\ r.[mk_usize 11] == s.[mk_usize 11] /\ + r.[mk_usize 12] == s.[mk_usize 12] /\ r.[mk_usize 13] == s.[mk_usize 13] /\ + r.[mk_usize 15] == s.[mk_usize 15] /\ r.[mk_usize 16] == s.[mk_usize 16] /\ + r.[mk_usize 17] == s.[mk_usize 17] /\ r.[mk_usize 18] == s.[mk_usize 18] /\ + r.[mk_usize 20] == s.[mk_usize 20] /\ r.[mk_usize 21] == s.[mk_usize 21] /\ + r.[mk_usize 22] == s.[mk_usize 22] /\ r.[mk_usize 23] == s.[mk_usize 23]) + = let open Libcrux_sha3.Generic_keccak in + lemma_rho_4_generic v_N ks d; + lane_xor_and_rotate v_N lc (mk_i32 27) (mk_i32 37) ks.f_st.[mk_usize 4] d.[mk_usize 4] l; + lane_xor_and_rotate v_N lc (mk_i32 20) (mk_i32 44) ks.f_st.[mk_usize 9] d.[mk_usize 4] l; + lane_xor_and_rotate v_N lc (mk_i32 39) (mk_i32 25) ks.f_st.[mk_usize 14] d.[mk_usize 4] l; + lane_xor_and_rotate v_N lc (mk_i32 8) (mk_i32 56) ks.f_st.[mk_usize 19] d.[mk_usize 4] l; + lane_xor_and_rotate v_N lc (mk_i32 14) (mk_i32 50) ks.f_st.[mk_usize 24] d.[mk_usize 4] l +#pop-options + +(** Cumulative rho lemmas: each [lemma_rho_thru_N_extract_lane] describes + the state after composing [rho_0_; rho_1_; ...; rho_N_] on the same + input [ks] and [d]. The final [lemma_rho_thru_4_extract_lane] gives + all 25 positions of [impl_2__rho ks d] in closed form, which lets + [lemma_theta_rho_to_spec] finish via a single [eq_intro]. *) + +#push-options "--fuel 0 --ifuel 1 --z3rlimit 1200" +let lemma_rho_thru_1_extract_lane + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (lc: lane_correctness v_N #v_T) + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (d: t_Array v_T (mk_usize 5)) + (l: nat{l < v v_N}) + : Lemma + (let s = extract_lane v_N lc ks.Libcrux_sha3.Generic_keccak.f_st l in + let ks0 = Libcrux_sha3.Generic_keccak.impl_2__rho_0_ v_N #v_T ks d in + let ks1 = Libcrux_sha3.Generic_keccak.impl_2__rho_1_ v_N #v_T ks0 d in + let r = extract_lane v_N lc ks1.Libcrux_sha3.Generic_keccak.f_st l in + (* Column 0 final *) + r.[mk_usize 0] == s.[mk_usize 0] ^. lc.lane d.[mk_usize 0] l /\ + r.[mk_usize 5] == rotl_spec (s.[mk_usize 5] ^. lc.lane d.[mk_usize 0] l) (mk_u32 36) /\ + r.[mk_usize 10] == rotl_spec (s.[mk_usize 10] ^. lc.lane d.[mk_usize 0] l) (mk_u32 3) /\ + r.[mk_usize 15] == rotl_spec (s.[mk_usize 15] ^. lc.lane d.[mk_usize 0] l) (mk_u32 41) /\ + r.[mk_usize 20] == rotl_spec (s.[mk_usize 20] ^. lc.lane d.[mk_usize 0] l) (mk_u32 18) /\ + (* Column 1 final *) + r.[mk_usize 1] == rotl_spec (s.[mk_usize 1] ^. lc.lane d.[mk_usize 1] l) (mk_u32 1) /\ + r.[mk_usize 6] == rotl_spec (s.[mk_usize 6] ^. lc.lane d.[mk_usize 1] l) (mk_u32 44) /\ + r.[mk_usize 11] == rotl_spec (s.[mk_usize 11] ^. lc.lane d.[mk_usize 1] l) (mk_u32 10) /\ + r.[mk_usize 16] == rotl_spec (s.[mk_usize 16] ^. lc.lane d.[mk_usize 1] l) (mk_u32 45) /\ + r.[mk_usize 21] == rotl_spec (s.[mk_usize 21] ^. lc.lane d.[mk_usize 1] l) (mk_u32 2) /\ + (* Columns 2, 3, 4 unchanged *) + r.[mk_usize 2] == s.[mk_usize 2] /\ r.[mk_usize 3] == s.[mk_usize 3] /\ + r.[mk_usize 4] == s.[mk_usize 4] /\ r.[mk_usize 7] == s.[mk_usize 7] /\ + r.[mk_usize 8] == s.[mk_usize 8] /\ r.[mk_usize 9] == s.[mk_usize 9] /\ + r.[mk_usize 12] == s.[mk_usize 12] /\ r.[mk_usize 13] == s.[mk_usize 13] /\ + r.[mk_usize 14] == s.[mk_usize 14] /\ r.[mk_usize 17] == s.[mk_usize 17] /\ + r.[mk_usize 18] == s.[mk_usize 18] /\ r.[mk_usize 19] == s.[mk_usize 19] /\ + r.[mk_usize 22] == s.[mk_usize 22] /\ r.[mk_usize 23] == s.[mk_usize 23] /\ + r.[mk_usize 24] == s.[mk_usize 24]) + = let ks0 = Libcrux_sha3.Generic_keccak.impl_2__rho_0_ v_N #v_T ks d in + lemma_rho_0_extract_lane v_N lc ks d l; + lemma_rho_1_extract_lane v_N lc ks0 d l +#pop-options + +#push-options "--fuel 0 --ifuel 1 --z3rlimit 1200" +let lemma_rho_thru_2_extract_lane + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (lc: lane_correctness v_N #v_T) + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (d: t_Array v_T (mk_usize 5)) + (l: nat{l < v v_N}) + : Lemma + (let s = extract_lane v_N lc ks.Libcrux_sha3.Generic_keccak.f_st l in + let ks0 = Libcrux_sha3.Generic_keccak.impl_2__rho_0_ v_N #v_T ks d in + let ks1 = Libcrux_sha3.Generic_keccak.impl_2__rho_1_ v_N #v_T ks0 d in + let ks2 = Libcrux_sha3.Generic_keccak.impl_2__rho_2_ v_N #v_T ks1 d in + let r = extract_lane v_N lc ks2.Libcrux_sha3.Generic_keccak.f_st l in + (* Column 0 final *) + r.[mk_usize 0] == s.[mk_usize 0] ^. lc.lane d.[mk_usize 0] l /\ + r.[mk_usize 5] == rotl_spec (s.[mk_usize 5] ^. lc.lane d.[mk_usize 0] l) (mk_u32 36) /\ + r.[mk_usize 10] == rotl_spec (s.[mk_usize 10] ^. lc.lane d.[mk_usize 0] l) (mk_u32 3) /\ + r.[mk_usize 15] == rotl_spec (s.[mk_usize 15] ^. lc.lane d.[mk_usize 0] l) (mk_u32 41) /\ + r.[mk_usize 20] == rotl_spec (s.[mk_usize 20] ^. lc.lane d.[mk_usize 0] l) (mk_u32 18) /\ + (* Column 1 final *) + r.[mk_usize 1] == rotl_spec (s.[mk_usize 1] ^. lc.lane d.[mk_usize 1] l) (mk_u32 1) /\ + r.[mk_usize 6] == rotl_spec (s.[mk_usize 6] ^. lc.lane d.[mk_usize 1] l) (mk_u32 44) /\ + r.[mk_usize 11] == rotl_spec (s.[mk_usize 11] ^. lc.lane d.[mk_usize 1] l) (mk_u32 10) /\ + r.[mk_usize 16] == rotl_spec (s.[mk_usize 16] ^. lc.lane d.[mk_usize 1] l) (mk_u32 45) /\ + r.[mk_usize 21] == rotl_spec (s.[mk_usize 21] ^. lc.lane d.[mk_usize 1] l) (mk_u32 2) /\ + (* Column 2 final *) + r.[mk_usize 2] == rotl_spec (s.[mk_usize 2] ^. lc.lane d.[mk_usize 2] l) (mk_u32 62) /\ + r.[mk_usize 7] == rotl_spec (s.[mk_usize 7] ^. lc.lane d.[mk_usize 2] l) (mk_u32 6) /\ + r.[mk_usize 12] == rotl_spec (s.[mk_usize 12] ^. lc.lane d.[mk_usize 2] l) (mk_u32 43) /\ + r.[mk_usize 17] == rotl_spec (s.[mk_usize 17] ^. lc.lane d.[mk_usize 2] l) (mk_u32 15) /\ + r.[mk_usize 22] == rotl_spec (s.[mk_usize 22] ^. lc.lane d.[mk_usize 2] l) (mk_u32 61) /\ + (* Columns 3, 4 unchanged *) + r.[mk_usize 3] == s.[mk_usize 3] /\ r.[mk_usize 4] == s.[mk_usize 4] /\ + r.[mk_usize 8] == s.[mk_usize 8] /\ r.[mk_usize 9] == s.[mk_usize 9] /\ + r.[mk_usize 13] == s.[mk_usize 13] /\ r.[mk_usize 14] == s.[mk_usize 14] /\ + r.[mk_usize 18] == s.[mk_usize 18] /\ r.[mk_usize 19] == s.[mk_usize 19] /\ + r.[mk_usize 23] == s.[mk_usize 23] /\ r.[mk_usize 24] == s.[mk_usize 24]) + = let ks0 = Libcrux_sha3.Generic_keccak.impl_2__rho_0_ v_N #v_T ks d in + let ks1 = Libcrux_sha3.Generic_keccak.impl_2__rho_1_ v_N #v_T ks0 d in + lemma_rho_thru_1_extract_lane v_N lc ks d l; + lemma_rho_2_extract_lane v_N lc ks1 d l +#pop-options + +#push-options "--fuel 0 --ifuel 1 --z3rlimit 1600" +let lemma_rho_thru_3_extract_lane + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (lc: lane_correctness v_N #v_T) + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (d: t_Array v_T (mk_usize 5)) + (l: nat{l < v v_N}) + : Lemma + (let s = extract_lane v_N lc ks.Libcrux_sha3.Generic_keccak.f_st l in + let ks0 = Libcrux_sha3.Generic_keccak.impl_2__rho_0_ v_N #v_T ks d in + let ks1 = Libcrux_sha3.Generic_keccak.impl_2__rho_1_ v_N #v_T ks0 d in + let ks2 = Libcrux_sha3.Generic_keccak.impl_2__rho_2_ v_N #v_T ks1 d in + let ks3 = Libcrux_sha3.Generic_keccak.impl_2__rho_3_ v_N #v_T ks2 d in + let r = extract_lane v_N lc ks3.Libcrux_sha3.Generic_keccak.f_st l in + (* Column 0 final *) + r.[mk_usize 0] == s.[mk_usize 0] ^. lc.lane d.[mk_usize 0] l /\ + r.[mk_usize 5] == rotl_spec (s.[mk_usize 5] ^. lc.lane d.[mk_usize 0] l) (mk_u32 36) /\ + r.[mk_usize 10] == rotl_spec (s.[mk_usize 10] ^. lc.lane d.[mk_usize 0] l) (mk_u32 3) /\ + r.[mk_usize 15] == rotl_spec (s.[mk_usize 15] ^. lc.lane d.[mk_usize 0] l) (mk_u32 41) /\ + r.[mk_usize 20] == rotl_spec (s.[mk_usize 20] ^. lc.lane d.[mk_usize 0] l) (mk_u32 18) /\ + (* Column 1 final *) + r.[mk_usize 1] == rotl_spec (s.[mk_usize 1] ^. lc.lane d.[mk_usize 1] l) (mk_u32 1) /\ + r.[mk_usize 6] == rotl_spec (s.[mk_usize 6] ^. lc.lane d.[mk_usize 1] l) (mk_u32 44) /\ + r.[mk_usize 11] == rotl_spec (s.[mk_usize 11] ^. lc.lane d.[mk_usize 1] l) (mk_u32 10) /\ + r.[mk_usize 16] == rotl_spec (s.[mk_usize 16] ^. lc.lane d.[mk_usize 1] l) (mk_u32 45) /\ + r.[mk_usize 21] == rotl_spec (s.[mk_usize 21] ^. lc.lane d.[mk_usize 1] l) (mk_u32 2) /\ + (* Column 2 final *) + r.[mk_usize 2] == rotl_spec (s.[mk_usize 2] ^. lc.lane d.[mk_usize 2] l) (mk_u32 62) /\ + r.[mk_usize 7] == rotl_spec (s.[mk_usize 7] ^. lc.lane d.[mk_usize 2] l) (mk_u32 6) /\ + r.[mk_usize 12] == rotl_spec (s.[mk_usize 12] ^. lc.lane d.[mk_usize 2] l) (mk_u32 43) /\ + r.[mk_usize 17] == rotl_spec (s.[mk_usize 17] ^. lc.lane d.[mk_usize 2] l) (mk_u32 15) /\ + r.[mk_usize 22] == rotl_spec (s.[mk_usize 22] ^. lc.lane d.[mk_usize 2] l) (mk_u32 61) /\ + (* Column 3 final *) + r.[mk_usize 3] == rotl_spec (s.[mk_usize 3] ^. lc.lane d.[mk_usize 3] l) (mk_u32 28) /\ + r.[mk_usize 8] == rotl_spec (s.[mk_usize 8] ^. lc.lane d.[mk_usize 3] l) (mk_u32 55) /\ + r.[mk_usize 13] == rotl_spec (s.[mk_usize 13] ^. lc.lane d.[mk_usize 3] l) (mk_u32 25) /\ + r.[mk_usize 18] == rotl_spec (s.[mk_usize 18] ^. lc.lane d.[mk_usize 3] l) (mk_u32 21) /\ + r.[mk_usize 23] == rotl_spec (s.[mk_usize 23] ^. lc.lane d.[mk_usize 3] l) (mk_u32 56) /\ + (* Column 4 unchanged *) + r.[mk_usize 4] == s.[mk_usize 4] /\ r.[mk_usize 9] == s.[mk_usize 9] /\ + r.[mk_usize 14] == s.[mk_usize 14] /\ r.[mk_usize 19] == s.[mk_usize 19] /\ + r.[mk_usize 24] == s.[mk_usize 24]) + = let ks0 = Libcrux_sha3.Generic_keccak.impl_2__rho_0_ v_N #v_T ks d in + let ks1 = Libcrux_sha3.Generic_keccak.impl_2__rho_1_ v_N #v_T ks0 d in + let ks2 = Libcrux_sha3.Generic_keccak.impl_2__rho_2_ v_N #v_T ks1 d in + lemma_rho_thru_2_extract_lane v_N lc ks d l; + lemma_rho_3_extract_lane v_N lc ks2 d l +#pop-options + +#push-options "--fuel 0 --ifuel 1 --z3rlimit 1600" +let lemma_rho_thru_4_extract_lane + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (lc: lane_correctness v_N #v_T) + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (d: t_Array v_T (mk_usize 5)) + (l: nat{l < v v_N}) + : Lemma + (let s = extract_lane v_N lc ks.Libcrux_sha3.Generic_keccak.f_st l in + let r = extract_lane v_N lc + (Libcrux_sha3.Generic_keccak.impl_2__rho v_N #v_T ks d) + .Libcrux_sha3.Generic_keccak.f_st l in + (* All 25 positions final: rotl_spec(s.[k] ^. d.[k % 5]_l, RHO_OFFSETS[k]) *) + r.[mk_usize 0] == s.[mk_usize 0] ^. lc.lane d.[mk_usize 0] l /\ + r.[mk_usize 1] == rotl_spec (s.[mk_usize 1] ^. lc.lane d.[mk_usize 1] l) (mk_u32 1) /\ + r.[mk_usize 2] == rotl_spec (s.[mk_usize 2] ^. lc.lane d.[mk_usize 2] l) (mk_u32 62) /\ + r.[mk_usize 3] == rotl_spec (s.[mk_usize 3] ^. lc.lane d.[mk_usize 3] l) (mk_u32 28) /\ + r.[mk_usize 4] == rotl_spec (s.[mk_usize 4] ^. lc.lane d.[mk_usize 4] l) (mk_u32 27) /\ + r.[mk_usize 5] == rotl_spec (s.[mk_usize 5] ^. lc.lane d.[mk_usize 0] l) (mk_u32 36) /\ + r.[mk_usize 6] == rotl_spec (s.[mk_usize 6] ^. lc.lane d.[mk_usize 1] l) (mk_u32 44) /\ + r.[mk_usize 7] == rotl_spec (s.[mk_usize 7] ^. lc.lane d.[mk_usize 2] l) (mk_u32 6) /\ + r.[mk_usize 8] == rotl_spec (s.[mk_usize 8] ^. lc.lane d.[mk_usize 3] l) (mk_u32 55) /\ + r.[mk_usize 9] == rotl_spec (s.[mk_usize 9] ^. lc.lane d.[mk_usize 4] l) (mk_u32 20) /\ + r.[mk_usize 10] == rotl_spec (s.[mk_usize 10] ^. lc.lane d.[mk_usize 0] l) (mk_u32 3) /\ + r.[mk_usize 11] == rotl_spec (s.[mk_usize 11] ^. lc.lane d.[mk_usize 1] l) (mk_u32 10) /\ + r.[mk_usize 12] == rotl_spec (s.[mk_usize 12] ^. lc.lane d.[mk_usize 2] l) (mk_u32 43) /\ + r.[mk_usize 13] == rotl_spec (s.[mk_usize 13] ^. lc.lane d.[mk_usize 3] l) (mk_u32 25) /\ + r.[mk_usize 14] == rotl_spec (s.[mk_usize 14] ^. lc.lane d.[mk_usize 4] l) (mk_u32 39) /\ + r.[mk_usize 15] == rotl_spec (s.[mk_usize 15] ^. lc.lane d.[mk_usize 0] l) (mk_u32 41) /\ + r.[mk_usize 16] == rotl_spec (s.[mk_usize 16] ^. lc.lane d.[mk_usize 1] l) (mk_u32 45) /\ + r.[mk_usize 17] == rotl_spec (s.[mk_usize 17] ^. lc.lane d.[mk_usize 2] l) (mk_u32 15) /\ + r.[mk_usize 18] == rotl_spec (s.[mk_usize 18] ^. lc.lane d.[mk_usize 3] l) (mk_u32 21) /\ + r.[mk_usize 19] == rotl_spec (s.[mk_usize 19] ^. lc.lane d.[mk_usize 4] l) (mk_u32 8) /\ + r.[mk_usize 20] == rotl_spec (s.[mk_usize 20] ^. lc.lane d.[mk_usize 0] l) (mk_u32 18) /\ + r.[mk_usize 21] == rotl_spec (s.[mk_usize 21] ^. lc.lane d.[mk_usize 1] l) (mk_u32 2) /\ + r.[mk_usize 22] == rotl_spec (s.[mk_usize 22] ^. lc.lane d.[mk_usize 2] l) (mk_u32 61) /\ + r.[mk_usize 23] == rotl_spec (s.[mk_usize 23] ^. lc.lane d.[mk_usize 3] l) (mk_u32 56) /\ + r.[mk_usize 24] == rotl_spec (s.[mk_usize 24] ^. lc.lane d.[mk_usize 4] l) (mk_u32 14)) + = let ks0 = Libcrux_sha3.Generic_keccak.impl_2__rho_0_ v_N #v_T ks d in + let ks1 = Libcrux_sha3.Generic_keccak.impl_2__rho_1_ v_N #v_T ks0 d in + let ks2 = Libcrux_sha3.Generic_keccak.impl_2__rho_2_ v_N #v_T ks1 d in + let ks3 = Libcrux_sha3.Generic_keccak.impl_2__rho_3_ v_N #v_T ks2 d in + lemma_rho_unfold_generic v_N ks d; + lemma_rho_thru_3_extract_lane v_N lc ks d l; + lemma_rho_4_extract_lane v_N lc ks3 d l +#pop-options + +(** Theta+Rho commutativity: + extract_lane lc (rho(theta(ks))).f_st l == rho(theta(extract_lane lc ks.f_st l)) + + The cumulative [lemma_rho_thru_4_extract_lane] carries all 25 positions + of [impl_2__rho ks' d] in closed form. Combined with [lemma_theta_extract_lane] + (which shows [ks'.f_st == s] and [d_matches_spec]) and [lemma_rho_theta_spec] + (spec-side 25-position result with matching offsets), the goal reduces to + pointwise equality + [eq_intro]. *) + +(* Theta+Rho commutativity (2026-05-04: factored as 5 row-helpers + a dispatcher). + + The cumulative [lemma_rho_thru_4_extract_lane] supplies all 25 impl-side + per-index equalities; [lemma_rho_theta_spec] supplies the matching 25 + spec-side ones; [lemma_theta_extract_lane] bridges the two via + [d_matches_spec]. The remaining work is just lifting 25 in-scope + pointwise equalities to a forall for [eq_intro]. + + Prior attempts that fed all 25 asserts to a single [eq_intro] timed out + on the forall-precondition consolidation (see proof_milestones.md + Note A). The fix is to split the post into 5 row-shaped 5-conjunct + sub-goals (each closes monolithically) and assemble with a 5-way + case-split on [i / 5]. *) + +#push-options "--fuel 0 --ifuel 1 --z3rlimit 400" +let lemma_theta_rho_row_0_to_spec + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (lc: lane_correctness v_N #v_T) + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (l: nat{l < v v_N}) + : Lemma + (let s = ks.Libcrux_sha3.Generic_keccak.f_st in + let ks', d = Libcrux_sha3.Generic_keccak.impl_2__theta v_N #v_T ks in + let ks'' = Libcrux_sha3.Generic_keccak.impl_2__rho v_N #v_T ks' d in + let lhs = extract_lane v_N lc ks''.Libcrux_sha3.Generic_keccak.f_st l in + let rhs = Hacspec_sha3.Keccak_f.rho + (Hacspec_sha3.Keccak_f.theta (extract_lane v_N lc s l)) in + lhs.[mk_usize 0] == rhs.[mk_usize 0] /\ + lhs.[mk_usize 1] == rhs.[mk_usize 1] /\ + lhs.[mk_usize 2] == rhs.[mk_usize 2] /\ + lhs.[mk_usize 3] == rhs.[mk_usize 3] /\ + lhs.[mk_usize 4] == rhs.[mk_usize 4]) + = let open Libcrux_sha3.Generic_keccak in + let s = ks.f_st in + let ks', d = impl_2__theta v_N #v_T ks in + let state = extract_lane v_N lc s l in + lemma_theta_extract_lane v_N lc ks l; + lemma_rho_thru_4_extract_lane v_N lc ks' d l; + lemma_rho_theta_spec state; + Lemmas.lemma_rotate_left_zero (state.[mk_usize 0] ^. spec_d state (mk_usize 0)) +#pop-options + +#push-options "--fuel 0 --ifuel 1 --z3rlimit 400" +let lemma_theta_rho_row_1_to_spec + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (lc: lane_correctness v_N #v_T) + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (l: nat{l < v v_N}) + : Lemma + (let s = ks.Libcrux_sha3.Generic_keccak.f_st in + let ks', d = Libcrux_sha3.Generic_keccak.impl_2__theta v_N #v_T ks in + let ks'' = Libcrux_sha3.Generic_keccak.impl_2__rho v_N #v_T ks' d in + let lhs = extract_lane v_N lc ks''.Libcrux_sha3.Generic_keccak.f_st l in + let rhs = Hacspec_sha3.Keccak_f.rho + (Hacspec_sha3.Keccak_f.theta (extract_lane v_N lc s l)) in + lhs.[mk_usize 5] == rhs.[mk_usize 5] /\ + lhs.[mk_usize 6] == rhs.[mk_usize 6] /\ + lhs.[mk_usize 7] == rhs.[mk_usize 7] /\ + lhs.[mk_usize 8] == rhs.[mk_usize 8] /\ + lhs.[mk_usize 9] == rhs.[mk_usize 9]) + = let open Libcrux_sha3.Generic_keccak in + let s = ks.f_st in + let ks', d = impl_2__theta v_N #v_T ks in + let state = extract_lane v_N lc s l in + lemma_theta_extract_lane v_N lc ks l; + lemma_rho_thru_4_extract_lane v_N lc ks' d l; + lemma_rho_theta_spec state +#pop-options + +#push-options "--fuel 0 --ifuel 1 --z3rlimit 400" +let lemma_theta_rho_row_2_to_spec + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (lc: lane_correctness v_N #v_T) + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (l: nat{l < v v_N}) + : Lemma + (let s = ks.Libcrux_sha3.Generic_keccak.f_st in + let ks', d = Libcrux_sha3.Generic_keccak.impl_2__theta v_N #v_T ks in + let ks'' = Libcrux_sha3.Generic_keccak.impl_2__rho v_N #v_T ks' d in + let lhs = extract_lane v_N lc ks''.Libcrux_sha3.Generic_keccak.f_st l in + let rhs = Hacspec_sha3.Keccak_f.rho + (Hacspec_sha3.Keccak_f.theta (extract_lane v_N lc s l)) in + lhs.[mk_usize 10] == rhs.[mk_usize 10] /\ + lhs.[mk_usize 11] == rhs.[mk_usize 11] /\ + lhs.[mk_usize 12] == rhs.[mk_usize 12] /\ + lhs.[mk_usize 13] == rhs.[mk_usize 13] /\ + lhs.[mk_usize 14] == rhs.[mk_usize 14]) + = let open Libcrux_sha3.Generic_keccak in + let s = ks.f_st in + let ks', d = impl_2__theta v_N #v_T ks in + let state = extract_lane v_N lc s l in + lemma_theta_extract_lane v_N lc ks l; + lemma_rho_thru_4_extract_lane v_N lc ks' d l; + lemma_rho_theta_spec state +#pop-options + +#push-options "--fuel 0 --ifuel 1 --z3rlimit 400" +let lemma_theta_rho_row_3_to_spec + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (lc: lane_correctness v_N #v_T) + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (l: nat{l < v v_N}) + : Lemma + (let s = ks.Libcrux_sha3.Generic_keccak.f_st in + let ks', d = Libcrux_sha3.Generic_keccak.impl_2__theta v_N #v_T ks in + let ks'' = Libcrux_sha3.Generic_keccak.impl_2__rho v_N #v_T ks' d in + let lhs = extract_lane v_N lc ks''.Libcrux_sha3.Generic_keccak.f_st l in + let rhs = Hacspec_sha3.Keccak_f.rho + (Hacspec_sha3.Keccak_f.theta (extract_lane v_N lc s l)) in + lhs.[mk_usize 15] == rhs.[mk_usize 15] /\ + lhs.[mk_usize 16] == rhs.[mk_usize 16] /\ + lhs.[mk_usize 17] == rhs.[mk_usize 17] /\ + lhs.[mk_usize 18] == rhs.[mk_usize 18] /\ + lhs.[mk_usize 19] == rhs.[mk_usize 19]) + = let open Libcrux_sha3.Generic_keccak in + let s = ks.f_st in + let ks', d = impl_2__theta v_N #v_T ks in + let state = extract_lane v_N lc s l in + lemma_theta_extract_lane v_N lc ks l; + lemma_rho_thru_4_extract_lane v_N lc ks' d l; + lemma_rho_theta_spec state +#pop-options + +#push-options "--fuel 0 --ifuel 1 --z3rlimit 400" +let lemma_theta_rho_row_4_to_spec + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (lc: lane_correctness v_N #v_T) + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (l: nat{l < v v_N}) + : Lemma + (let s = ks.Libcrux_sha3.Generic_keccak.f_st in + let ks', d = Libcrux_sha3.Generic_keccak.impl_2__theta v_N #v_T ks in + let ks'' = Libcrux_sha3.Generic_keccak.impl_2__rho v_N #v_T ks' d in + let lhs = extract_lane v_N lc ks''.Libcrux_sha3.Generic_keccak.f_st l in + let rhs = Hacspec_sha3.Keccak_f.rho + (Hacspec_sha3.Keccak_f.theta (extract_lane v_N lc s l)) in + lhs.[mk_usize 20] == rhs.[mk_usize 20] /\ + lhs.[mk_usize 21] == rhs.[mk_usize 21] /\ + lhs.[mk_usize 22] == rhs.[mk_usize 22] /\ + lhs.[mk_usize 23] == rhs.[mk_usize 23] /\ + lhs.[mk_usize 24] == rhs.[mk_usize 24]) + = let open Libcrux_sha3.Generic_keccak in + let s = ks.f_st in + let ks', d = impl_2__theta v_N #v_T ks in + let state = extract_lane v_N lc s l in + lemma_theta_extract_lane v_N lc ks l; + lemma_rho_thru_4_extract_lane v_N lc ks' d l; + lemma_rho_theta_spec state +#pop-options + +let forall25 (p:(i:nat{i < 25} -> Type0)): + Lemma (requires (p 0 /\ p 1 /\ p 2 /\ p 3 /\ p 4 /\ + p 5 /\ p 6 /\ p 7 /\ p 8 /\ p 9 /\ + p 10 /\ p 11 /\ p 12 /\ p 13 /\ p 14 /\ + p 15 /\ p 16 /\ p 17 /\ p 18 /\ p 19 /\ + p 20 /\ p 21 /\ p 22 /\ p 23 /\ p 24)) + (ensures (forall (i:nat{i < 25}). p i)) = () + +#push-options "--fuel 0 --ifuel 1 --z3rlimit 200 --split_queries always" +let lemma_theta_rho_to_spec + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (lc: lane_correctness v_N #v_T) + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (l: nat{l < v v_N}) + : Lemma + (let s = ks.Libcrux_sha3.Generic_keccak.f_st in + let ks', d = Libcrux_sha3.Generic_keccak.impl_2__theta v_N #v_T ks in + let ks'' = Libcrux_sha3.Generic_keccak.impl_2__rho v_N #v_T ks' d in + extract_lane v_N lc ks''.Libcrux_sha3.Generic_keccak.f_st l == + Hacspec_sha3.Keccak_f.rho (Hacspec_sha3.Keccak_f.theta (extract_lane v_N lc s l))) + = lemma_theta_rho_row_0_to_spec v_N lc ks l; + lemma_theta_rho_row_1_to_spec v_N lc ks l; + lemma_theta_rho_row_2_to_spec v_N lc ks l; + lemma_theta_rho_row_3_to_spec v_N lc ks l; + lemma_theta_rho_row_4_to_spec v_N lc ks l; + let s = ks.Libcrux_sha3.Generic_keccak.f_st in + let ks', d = Libcrux_sha3.Generic_keccak.impl_2__theta v_N #v_T ks in + let ks'' = Libcrux_sha3.Generic_keccak.impl_2__rho v_N #v_T ks' d in + let lhs = extract_lane v_N lc ks''.Libcrux_sha3.Generic_keccak.f_st l in + let rhs = Hacspec_sha3.Keccak_f.rho (Hacspec_sha3.Keccak_f.theta (extract_lane v_N lc s l)) in + forall25 (fun i -> Seq.index lhs i == Seq.index rhs i); + eq_intro lhs rhs +#pop-options + +(** Pi extract_lane: states all 25 indices of pi result at u64 level. + Chains the 5 sub-step generics + SMTPat conversion to extract_lane. + Pi is a pure permutation: r.[k] == state.[pi_perm(k)]. *) + +#push-options "--z3rlimit 1200" +let lemma_pi_extract_lane + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (lc: lane_correctness v_N #v_T) + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (l: nat{l < v v_N}) + : Lemma + (let state = extract_lane v_N lc ks.Libcrux_sha3.Generic_keccak.f_st l in + let r = extract_lane v_N lc + (Libcrux_sha3.Generic_keccak.impl_2__pi v_N #v_T ks) + .Libcrux_sha3.Generic_keccak.f_st l in + r.[mk_usize 0] == state.[mk_usize 0] /\ + r.[mk_usize 1] == state.[mk_usize 6] /\ + r.[mk_usize 2] == state.[mk_usize 12] /\ + r.[mk_usize 3] == state.[mk_usize 18] /\ + r.[mk_usize 4] == state.[mk_usize 24] /\ + r.[mk_usize 5] == state.[mk_usize 3] /\ + r.[mk_usize 6] == state.[mk_usize 9] /\ + r.[mk_usize 7] == state.[mk_usize 10] /\ + r.[mk_usize 8] == state.[mk_usize 16] /\ + r.[mk_usize 9] == state.[mk_usize 22] /\ + r.[mk_usize 10] == state.[mk_usize 1] /\ + r.[mk_usize 11] == state.[mk_usize 7] /\ + r.[mk_usize 12] == state.[mk_usize 13] /\ + r.[mk_usize 13] == state.[mk_usize 19] /\ + r.[mk_usize 14] == state.[mk_usize 20] /\ + r.[mk_usize 15] == state.[mk_usize 4] /\ + r.[mk_usize 16] == state.[mk_usize 5] /\ + r.[mk_usize 17] == state.[mk_usize 11] /\ + r.[mk_usize 18] == state.[mk_usize 17] /\ + r.[mk_usize 19] == state.[mk_usize 23] /\ + r.[mk_usize 20] == state.[mk_usize 2] /\ + r.[mk_usize 21] == state.[mk_usize 8] /\ + r.[mk_usize 22] == state.[mk_usize 14] /\ + r.[mk_usize 23] == state.[mk_usize 15] /\ + r.[mk_usize 24] == state.[mk_usize 21]) + = let open Libcrux_sha3.Generic_keccak in + let old = ks in + let ks0 = impl_2__pi_0_ v_N #v_T ks old in + lemma_pi_0_generic v_N ks old; + let ks1 = impl_2__pi_1_ v_N #v_T ks0 old in + lemma_pi_1_generic v_N ks0 old; + let ks2 = impl_2__pi_2_ v_N #v_T ks1 old in + lemma_pi_2_generic v_N ks1 old; + let ks3 = impl_2__pi_3_ v_N #v_T ks2 old in + lemma_pi_3_generic v_N ks2 old; + let ks4 = impl_2__pi_4_ v_N #v_T ks3 old in + lemma_pi_4_generic v_N ks3 old; + lemma_pi_unfold_generic v_N ks +#pop-options + +(** Pi commutativity: + extract_lane lc (pi(ks)).f_st l == pi(extract_lane lc ks.f_st l) + + lemma_pi_extract_lane provides u64-level facts via extract_lane, + lemma_pi_spec provides the spec side, eq_intro closes. *) + +#push-options "--z3rlimit 800" +let lemma_pi_to_spec + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (lc: lane_correctness v_N #v_T) + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (l: nat{l < v v_N}) + : Lemma + (extract_lane v_N lc + (Libcrux_sha3.Generic_keccak.impl_2__pi v_N #v_T ks) + .Libcrux_sha3.Generic_keccak.f_st l == + Hacspec_sha3.Keccak_f.pi (extract_lane v_N lc ks.Libcrux_sha3.Generic_keccak.f_st l)) + = let open Libcrux_sha3.Generic_keccak in + lemma_pi_extract_lane v_N lc ks l; + let state = extract_lane v_N lc ks.f_st l in + lemma_pi_spec state; + let lhs = extract_lane v_N lc (impl_2__pi v_N #v_T ks).f_st l in + let rhs = Hacspec_sha3.Keccak_f.pi state in + forall25 (fun i -> Seq.index lhs i == Seq.index rhs i); + Rust_primitives.Arrays.eq_intro lhs rhs +#pop-options + +(** Chi extract_lane: states all 25 indices of chi result at u64 level. + + Strategy: + 1. [ChiFold.lemma_chi_val_i] gives, for any flat index [k < 25]: + (impl_2__chi v_N #v_T ks).f_st.[k] == chi_inner_val ks (k/5) (k%5) + Under the FIPS-native layout [get_ij(arr, i, j) = arr[5*i + j]], + flat index [k] corresponds to impl-[(i, j) = (k/5, k%5)] which + is FIPS [(y, x) = (k/5, k%5)], i.e. [x = k%5, y = k/5]. + [chi_inner_val] is a transparent [let] that unfolds to + [f_and_not_xor] of three indices along the [x] axis at fixed [y]. + 2. [lane_and_not_xor] (operation-level commutativity above) lifts + that equality through [lc.lane]. + 3. [logand_commutative] swaps `(b &. ~.c)` to `(~.c &. b)` to + match the spec orientation. *) + +#push-options "--fuel 0 --ifuel 1 --z3rlimit 400" +let lemma_chi_extract_lane_aux + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (lc: lane_correctness v_N #v_T) + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (l: nat{l < v v_N}) + (k: usize{v k < 25}) + : Lemma + (let s = ks.Libcrux_sha3.Generic_keccak.f_st in + let i = k /! sz 5 in + let j = k %! sz 5 in + lc.lane (Libcrux_sha3.Generic_keccak.impl_2__chi v_N #v_T ks) + .Libcrux_sha3.Generic_keccak.f_st.[k] l == + lc.lane s.[k] l ^. + ((~. (lc.lane s.[ (mk_usize 5 *! i) +! ((j +! mk_usize 1) %! mk_usize 5) ] l)) &. + lc.lane s.[ (mk_usize 5 *! i) +! ((j +! mk_usize 2) %! mk_usize 5) ] l)) + = let i = k /! sz 5 in + let j = k %! sz 5 in + let s = ks.Libcrux_sha3.Generic_keccak.f_st in + assert (k == sz 5 *! i +! j); + ChiFold.lemma_chi_val_i v_N #v_T ks k; + lane_and_not_xor v_N lc + (ks.[ i, j <: (usize & usize) ] <: v_T) + (ks.[ i, ((j +! mk_usize 2) %! mk_usize 5) <: (usize & usize) ] <: v_T) + (ks.[ i, ((j +! mk_usize 1) %! mk_usize 5) <: (usize & usize) ] <: v_T) + l; + Lemmas.logand_commutative + (lc.lane s.[ (mk_usize 5 *! i) +! ((j +! mk_usize 2) %! mk_usize 5) ] l) + (~. (lc.lane s.[ (mk_usize 5 *! i) +! ((j +! mk_usize 1) %! mk_usize 5) ] l)) +#pop-options + +(** Chi commutativity: + extract_lane lc (chi(ks)).f_st l == chi(extract_lane lc ks.f_st l) + + Direct pointwise proof: [lemma_chi_extract_lane_aux] gives the + per-index equality at the u64 level, and [Hacspec_sha3.createi_lemma] + is an SMTPat that unfolds [(chi state).[k]] on the spec side. We + introduce the universal pointwise fact via [Classical.forall_intro] + and conclude with array extensionality. *) + +#push-options "--fuel 0 --ifuel 1 --z3rlimit 400" +let lemma_chi_to_spec + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (lc: lane_correctness v_N #v_T) + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (l: nat{l < v v_N}) + : Lemma + (extract_lane v_N lc + (Libcrux_sha3.Generic_keccak.impl_2__chi v_N #v_T ks) + .Libcrux_sha3.Generic_keccak.f_st l == + Hacspec_sha3.Keccak_f.chi (extract_lane v_N lc ks.Libcrux_sha3.Generic_keccak.f_st l)) + = let open Libcrux_sha3.Generic_keccak in + let lhs = extract_lane v_N lc (impl_2__chi v_N #v_T ks).f_st l in + let state = extract_lane v_N lc ks.f_st l in + let rhs = Hacspec_sha3.Keccak_f.chi state in + let aux (i: nat{i < 25}) : Lemma (Seq.index lhs i == Seq.index rhs i) = + let k : usize = mk_usize i in + assert (v k == i); + lemma_chi_extract_lane_aux v_N #v_T lc ks l k; + assert (lhs.[k] == rhs.[k]); + assert (lhs.[k] == Seq.index lhs i); + assert (rhs.[k] == Seq.index rhs i) + in + Classical.forall_intro aux; + Rust_primitives.Arrays.eq_intro lhs rhs +#pop-options + +(** Iota spec-side: unfold iota at each index. + Index 0: state[0] ^. RC[round]. Indices 1-24: unchanged. *) + +let lemma_iota_spec (state: spec_state) (round: usize) + : Lemma + (requires round <. mk_usize 24) + (ensures + (let r = Hacspec_sha3.Keccak_f.iota state round in + r.[mk_usize 0] == (state.[mk_usize 0] <: u64) ^. (Hacspec_sha3.Keccak_f.v_ROUND_CONSTANTS.[round] <: u64) /\ + r.[mk_usize 1] == state.[mk_usize 1] /\ + r.[mk_usize 2] == state.[mk_usize 2] /\ + r.[mk_usize 3] == state.[mk_usize 3] /\ + r.[mk_usize 4] == state.[mk_usize 4] /\ + r.[mk_usize 5] == state.[mk_usize 5] /\ + r.[mk_usize 6] == state.[mk_usize 6] /\ + r.[mk_usize 7] == state.[mk_usize 7] /\ + r.[mk_usize 8] == state.[mk_usize 8] /\ + r.[mk_usize 9] == state.[mk_usize 9] /\ + r.[mk_usize 10] == state.[mk_usize 10] /\ + r.[mk_usize 11] == state.[mk_usize 11] /\ + r.[mk_usize 12] == state.[mk_usize 12] /\ + r.[mk_usize 13] == state.[mk_usize 13] /\ + r.[mk_usize 14] == state.[mk_usize 14] /\ + r.[mk_usize 15] == state.[mk_usize 15] /\ + r.[mk_usize 16] == state.[mk_usize 16] /\ + r.[mk_usize 17] == state.[mk_usize 17] /\ + r.[mk_usize 18] == state.[mk_usize 18] /\ + r.[mk_usize 19] == state.[mk_usize 19] /\ + r.[mk_usize 20] == state.[mk_usize 20] /\ + r.[mk_usize 21] == state.[mk_usize 21] /\ + r.[mk_usize 22] == state.[mk_usize 22] /\ + r.[mk_usize 23] == state.[mk_usize 23] /\ + r.[mk_usize 24] == state.[mk_usize 24])) + = () + +(** Iota extract_lane: only index 0 changes (via lane_xor_constant), + indices 1-24 are preserved. *) + +let lemma_iota_extract_lane + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (lc: lane_correctness v_N #v_T) + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (round: usize) + (l: nat{l < v v_N}) + : Lemma + (requires round <. mk_usize 24) + (ensures + (let state = extract_lane v_N lc ks.Libcrux_sha3.Generic_keccak.f_st l in + let r = extract_lane v_N lc + (Libcrux_sha3.Generic_keccak.impl_2__iota v_N #v_T ks round) + .Libcrux_sha3.Generic_keccak.f_st l in + r.[mk_usize 0] == (state.[mk_usize 0] <: u64) ^. + (Libcrux_sha3.Generic_keccak.Constants.v_ROUNDCONSTANTS.[round] <: u64) /\ + r.[mk_usize 1] == state.[mk_usize 1] /\ + r.[mk_usize 2] == state.[mk_usize 2] /\ + r.[mk_usize 3] == state.[mk_usize 3] /\ + r.[mk_usize 4] == state.[mk_usize 4] /\ + r.[mk_usize 5] == state.[mk_usize 5] /\ + r.[mk_usize 6] == state.[mk_usize 6] /\ + r.[mk_usize 7] == state.[mk_usize 7] /\ + r.[mk_usize 8] == state.[mk_usize 8] /\ + r.[mk_usize 9] == state.[mk_usize 9] /\ + r.[mk_usize 10] == state.[mk_usize 10] /\ + r.[mk_usize 11] == state.[mk_usize 11] /\ + r.[mk_usize 12] == state.[mk_usize 12] /\ + r.[mk_usize 13] == state.[mk_usize 13] /\ + r.[mk_usize 14] == state.[mk_usize 14] /\ + r.[mk_usize 15] == state.[mk_usize 15] /\ + r.[mk_usize 16] == state.[mk_usize 16] /\ + r.[mk_usize 17] == state.[mk_usize 17] /\ + r.[mk_usize 18] == state.[mk_usize 18] /\ + r.[mk_usize 19] == state.[mk_usize 19] /\ + r.[mk_usize 20] == state.[mk_usize 20] /\ + r.[mk_usize 21] == state.[mk_usize 21] /\ + r.[mk_usize 22] == state.[mk_usize 22] /\ + r.[mk_usize 23] == state.[mk_usize 23] /\ + r.[mk_usize 24] == state.[mk_usize 24])) + = lane_xor_constant v_N lc + ks.Libcrux_sha3.Generic_keccak.f_st.[mk_usize 0] + (Libcrux_sha3.Generic_keccak.Constants.v_ROUNDCONSTANTS.[round]) + l + +(** Iota commutativity: + extract_lane lc (iota(ks, round)).f_st l == iota(extract_lane lc ks.f_st l, round) + + lemma_iota_extract_lane provides u64-level facts via extract_lane, + lemma_iota_spec provides the spec side, eq_intro closes. *) + +#push-options "--z3rlimit 200" +let lemma_iota_to_spec + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (lc: lane_correctness v_N #v_T) + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (round: usize) + (l: nat{l < v v_N}) + : Lemma + (requires round <. mk_usize 24) + (ensures + extract_lane v_N lc + (Libcrux_sha3.Generic_keccak.impl_2__iota v_N #v_T ks round) + .Libcrux_sha3.Generic_keccak.f_st l == + Hacspec_sha3.Keccak_f.iota (extract_lane v_N lc ks.Libcrux_sha3.Generic_keccak.f_st l) round) + = let open Libcrux_sha3.Generic_keccak in + let state = extract_lane v_N lc ks.f_st l in + lemma_round_constants_equal round; + lemma_iota_extract_lane v_N lc ks round l; + lemma_iota_spec state round; + Rust_primitives.Arrays.eq_intro + (extract_lane v_N lc (impl_2__iota v_N #v_T ks round).f_st l) + (Hacspec_sha3.Keccak_f.iota state round) +#pop-options + +(* ================================================================ + Phase 5: One-round and full keccakf1600 commutativity + ================================================================ *) + +let impl_one_round + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (i: usize) + : Pure (Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (requires i <. mk_usize 24) (fun _ -> True) = + let open Libcrux_sha3.Generic_keccak in + let tmp0, t = impl_2__theta v_N #v_T ks in + let ks1 = impl_2__rho v_N #v_T tmp0 t in + let ks2 = impl_2__pi v_N #v_T ks1 in + let ks3 = impl_2__chi v_N #v_T ks2 in + impl_2__iota v_N #v_T ks3 i + +let spec_one_round = SpecRounds.spec_one_round + +(** One-round commutativity: composition of per-step commutativity. *) +#push-options "--z3rlimit 200" +let lemma_one_round_to_spec + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (lc: lane_correctness v_N #v_T) + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (round: usize) + (l: nat{l < v v_N}) + : Lemma + (requires round <. mk_usize 24) + (ensures + extract_lane v_N lc (impl_one_round v_N ks round) + .Libcrux_sha3.Generic_keccak.f_st l == + spec_one_round (extract_lane v_N lc ks.Libcrux_sha3.Generic_keccak.f_st l) round) + = let open Libcrux_sha3.Generic_keccak in + let s = ks.f_st in + let ks', d = impl_2__theta v_N #v_T ks in + let ks1 = impl_2__rho v_N #v_T ks' d in + lemma_theta_rho_to_spec v_N lc ks l; + let spec_after_rho = Hacspec_sha3.Keccak_f.rho (Hacspec_sha3.Keccak_f.theta (extract_lane v_N lc s l)) in + assert (extract_lane v_N lc ks1.f_st l == spec_after_rho); + let ks2 = impl_2__pi v_N #v_T ks1 in + lemma_pi_to_spec v_N lc ks1 l; + let spec_after_pi = Hacspec_sha3.Keccak_f.pi spec_after_rho in + assert (extract_lane v_N lc ks2.f_st l == spec_after_pi); + let ks3 = impl_2__chi v_N #v_T ks2 in + lemma_chi_to_spec v_N lc ks2 l; + let spec_after_chi = Hacspec_sha3.Keccak_f.chi spec_after_pi in + assert (extract_lane v_N lc ks3.f_st l == spec_after_chi); + lemma_iota_to_spec v_N lc ks3 round l +#pop-options + +(** Recursive helpers for multi-round iteration. *) +let rec impl_rounds + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (r: usize) + : Pure (Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (requires r <=. mk_usize 24) (fun _ -> True) + (decreases (v (mk_usize 24) - v r)) = + if r =. mk_usize 24 then ks + else impl_rounds v_N (impl_one_round v_N ks r) (r +! mk_usize 1) + +let spec_rounds = SpecRounds.spec_rounds + +(** Induction: impl_rounds and spec_rounds commute with extract_lane. *) +#push-options "--fuel 1 --z3rlimit 200" +let rec lemma_rounds_to_spec + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (lc: lane_correctness v_N #v_T) + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (r: usize) + (l: nat{l < v v_N}) + : Lemma + (requires r <=. mk_usize 24) + (ensures + extract_lane v_N lc (impl_rounds v_N ks r).Libcrux_sha3.Generic_keccak.f_st l == + spec_rounds (extract_lane v_N lc ks.Libcrux_sha3.Generic_keccak.f_st l) r) + (decreases (v (mk_usize 24) - v r)) + = if r =. mk_usize 24 then () + else begin + lemma_one_round_to_spec v_N lc ks r l; + lemma_rounds_to_spec v_N lc (impl_one_round v_N ks r) (r +! mk_usize 1) l + end +#pop-options + +(** Named fold body — matches the extracted lambda body in impl_2__keccakf1600 + (modulo identity let-bindings that normalize away). *) +let keccakf_body + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (self: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (i: usize{v i < 24}) + : Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T = + let open Libcrux_sha3.Generic_keccak in + let (tmp0: t_KeccakState v_N v_T), (out: t_Array v_T (mk_usize 5)) = + impl_2__theta v_N #v_T self + in + let self: t_KeccakState v_N v_T = tmp0 in + let t: t_Array v_T (mk_usize 5) = out in + let self: t_KeccakState v_N v_T = impl_2__rho v_N #v_T self t in + let self: t_KeccakState v_N v_T = impl_2__pi v_N #v_T self in + let self: t_KeccakState v_N v_T = impl_2__chi v_N #v_T self in + let self: t_KeccakState v_N v_T = impl_2__iota v_N #v_T self i in + self + +(** Fold wrapper with local bindings — amenable to lemma_fold_range_step. *) +let keccakf_fold_local + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (i: usize{v i <= 24}) + : Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T = + let inv (_: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) (_: usize) : Type0 = True in + let f (self: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (j: usize{v j < 24}) : Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T = + keccakf_body v_N self j + in + Rust_primitives.Hax.Folds.fold_range i (mk_usize 24) inv ks f + +(** Recursive bridge: keccakf_fold_local == impl_rounds. *) +#push-options "--fuel 1 --z3rlimit 200" +let rec lemma_keccakf_fold_local_is_rounds + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (i: usize) + : Lemma + (requires i <=. mk_usize 24) + (ensures keccakf_fold_local v_N ks i == impl_rounds v_N ks i) + (decreases (v (mk_usize 24) - v i)) + = if i =. mk_usize 24 then () + else begin + let inv (_: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) (_: usize) : Type0 = True in + let f (self: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (j: usize{v j < 24}) : Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T = + keccakf_body v_N self j + in + Proof_Utils.FoldRange.lemma_fold_range_step i (mk_usize 24) inv ks f; + lemma_keccakf_fold_local_is_rounds v_N (f ks i) (i +! mk_usize 1) + end +#pop-options + +(** Nat-indexed body matching [keccakf_body] (lifted to nat index). *) +let keccakf_body_rnat + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (self: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (j: nat{0 <= j /\ j < 24}) + : Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T = + keccakf_body v_N #v_T self (mk_usize j) + +(** [keccakf_body] equals [impl_one_round]. Both unfold to the same + sequence of theta/rho/pi/chi/iota calls; extractor's extra identity + let-bindings in [keccakf_body] normalize away via zeta/iota. *) +#push-options "--fuel 1 --ifuel 1 --z3rlimit 200" +let lemma_keccakf_body_is_one_round + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (i: usize{v i < 24}) + : Lemma (keccakf_body v_N #v_T ks i == impl_one_round v_N #v_T ks i) + = () +#pop-options + +(** Inductive bridge: the [fold_range_nat] iteration of [keccakf_body_rnat] + equals [impl_rounds]. *) +#push-options "--fuel 1 --ifuel 1 --z3rlimit 400" +let rec lemma_fold_range_nat_is_impl_rounds + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (i: nat{0 <= i /\ i <= 24}) + : Lemma + (ensures fold_range_nat 0 24 i ks (keccakf_body_rnat v_N #v_T) == + impl_rounds v_N #v_T ks (mk_usize i)) + (decreases 24 - i) + = if i = 24 then () + else begin + lemma_keccakf_body_is_one_round v_N #v_T ks (mk_usize i); + lemma_fold_range_nat_is_impl_rounds v_N #v_T + (keccakf_body_rnat v_N #v_T ks i) (i + 1) + end +#pop-options + +(** Bridge lemma: the extracted [impl_2__keccakf1600] (a refined [fold_range] + with inline lambda body) equals the recursive [impl_rounds] helper. + + Two-step proof: + (A) Apply [lemma_fold_range_is_range_nat] with the SAME inline lambdas + the extractor produces — F* matches syntactically. This rewrites + the refined [fold_range] as [fold_range_nat 0 24 0 ks body_rnat]. + (B) Apply [lemma_fold_range_nat_is_impl_rounds] to relate the + nat-indexed fold to [impl_rounds]. *) +#push-options "--fuel 1 --ifuel 1 --z3rlimit 400" +let lemma_keccakf1600_is_rounds + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + : Lemma (Libcrux_sha3.Generic_keccak.impl_2__keccakf1600 v_N #v_T ks == + impl_rounds v_N ks (mk_usize 0)) + = + (* (A) Rewrite the extracted fold_range as a fold_range_nat via the + bridge. Inline lambdas must match the extractor's shape verbatim. *) + lemma_fold_range_is_range_nat + #(Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) #USIZE + (mk_usize 0) (mk_usize 24) (mk_usize 0) + (fun self temp_1_ -> + let self: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T = self in + let _: usize = temp_1_ in + true) + ks + (fun self i -> + let self: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T = self in + let i: usize = i in + let (tmp0: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T), + (out: t_Array v_T (mk_usize 5)) = + Libcrux_sha3.Generic_keccak.impl_2__theta v_N #v_T self + in + let self: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T = tmp0 in + let t: t_Array v_T (mk_usize 5) = out in + let self: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T = + Libcrux_sha3.Generic_keccak.impl_2__rho v_N #v_T self t in + let self: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T = + Libcrux_sha3.Generic_keccak.impl_2__pi v_N #v_T self in + let self: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T = + Libcrux_sha3.Generic_keccak.impl_2__chi v_N #v_T self in + let self: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T = + Libcrux_sha3.Generic_keccak.impl_2__iota v_N #v_T self i in + self) + (keccakf_body_rnat v_N #v_T) + (fun acc i -> ()); (* pointwise: both sides β-reduce to keccakf_body v_N acc i *) + (* (B) Relate the nat-fold to impl_rounds. *) + lemma_fold_range_nat_is_impl_rounds v_N #v_T ks 0 +#pop-options + +(** Bridge: spec's [keccak_f] equals [spec_rounds]. Re-exported from + [EquivImplSpec.Keccakf.SpecRounds] which isolates the fragile [fuel 25] + setting from the surrounding SMT context here. *) +let lemma_keccak_f_is_rounds = SpecRounds.lemma_keccak_f_is_rounds + +(* ================================================================ + MAIN THEOREM: Generic keccak_f lane-wise equivalence. + + For any KeccakItem implementation satisfying lane_correctness, + extracting lane l from keccakf1600 equals running the scalar + keccak_f on lane l of the input. + ================================================================ *) + +let lemma_keccakf1600_to_spec + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (lc: lane_correctness v_N #v_T) + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (l: nat{l < v v_N}) + : Lemma + (extract_lane v_N lc + (Libcrux_sha3.Generic_keccak.impl_2__keccakf1600 v_N #v_T ks) + .Libcrux_sha3.Generic_keccak.f_st l == + Hacspec_sha3.Keccak_f.keccak_f + (extract_lane v_N lc ks.Libcrux_sha3.Generic_keccak.f_st l)) + = lemma_keccakf1600_is_rounds v_N ks; + lemma_keccak_f_is_rounds (extract_lane v_N lc ks.Libcrux_sha3.Generic_keccak.f_st l); + lemma_rounds_to_spec v_N lc ks (mk_usize 0) l diff --git a/crates/algorithms/sha3/proofs/fstar/equivalence/EquivImplSpec.Keccakf.Portable.fst b/crates/algorithms/sha3/proofs/fstar/equivalence/EquivImplSpec.Keccakf.Portable.fst new file mode 100644 index 0000000000..920c9b0fb8 --- /dev/null +++ b/crates/algorithms/sha3/proofs/fstar/equivalence/EquivImplSpec.Keccakf.Portable.fst @@ -0,0 +1,156 @@ +module EquivImplSpec.Keccakf.Portable + +(* ================================================================ + Portable (N=1, v_T=u64) instantiation of the generic keccak_f + equivalence proof. + + This module constructs the 7-field [lane_correctness] record for + [Libcrux_sha3.Simd.Portable.impl] and derives the concrete theorem + + (keccakf1600 ks).f_st == keccak_f ks.f_st + + directly from [EquivImplSpec.Keccakf.Generic.lemma_keccakf1600_to_spec] + by exploiting that [extract_lane] is the identity when v_N = 1. + + All 7 [lc_*] lemmas are trivial (= ()) because the portable + [KeccakItem u64 1] instance's methods are definitionally the scalar + u64 operations the spec uses. + ================================================================ *) + +#set-options "--fuel 0 --ifuel 1 --z3rlimit 80" + +open FStar.Mul +open Core_models + +module G = EquivImplSpec.Keccakf.Generic + +(* Bring the Portable typeclass instance into scope so + t_KeccakItem u64 (mk_usize 1) resolves to Libcrux_sha3.Simd.Portable.impl. *) +let _ = + let open Libcrux_sha3.Traits in + let open Libcrux_sha3.Simd.Portable in + () + +(* ================================================================ + Portable lane extraction + + For N=1, a SIMD element of type u64 has a single lane which is + the element itself. + ================================================================ *) + +let portable_lane (x: u64) (l: nat{l < 1}) : u64 = x + +(* ================================================================ + Lane-correctness field proofs + + Each lemma is `= ()` because the portable [f_*] method is defined + in terms of [e_*] helpers that are themselves the scalar u64 + operation. + ================================================================ *) + +let portable_lc_zero (l: nat{l < 1}) + : Lemma (portable_lane (Libcrux_sha3.Traits.f_zero #u64 #(mk_usize 1) + #FStar.Tactics.Typeclasses.solve ()) l == mk_u64 0) + = () + +let portable_lc_xor5 (a b c d e: u64) (l: nat{l < 1}) + : Lemma (portable_lane (Libcrux_sha3.Traits.f_xor5 #u64 #(mk_usize 1) + #FStar.Tactics.Typeclasses.solve a b c d e) l == + (((portable_lane a l ^. portable_lane b l) ^. portable_lane c l) + ^. portable_lane d l) ^. portable_lane e l) + = () + +let portable_lc_rotate_left1_and_xor (a b: u64) (l: nat{l < 1}) + : Lemma (portable_lane (Libcrux_sha3.Traits.f_rotate_left1_and_xor #u64 + #(mk_usize 1) #FStar.Tactics.Typeclasses.solve a b) l == + portable_lane a l ^. + Core_models.Num.impl_u64__rotate_left (portable_lane b l) (mk_u32 1)) + = () + +let portable_lc_xor_and_rotate (v_LEFT v_RIGHT: i32) (a b: u64) (l: nat{l < 1}) + : Lemma + (requires + ((Rust_primitives.Hax.Int.from_machine v_LEFT <: Hax_lib.Int.t_Int) + + (Rust_primitives.Hax.Int.from_machine v_RIGHT <: Hax_lib.Int.t_Int)) = + (Rust_primitives.Hax.Int.from_machine (mk_i32 64) <: Hax_lib.Int.t_Int) /\ + v_RIGHT >. mk_i32 0 /\ + v_RIGHT <. mk_i32 64) + (ensures + portable_lane (Libcrux_sha3.Traits.f_xor_and_rotate #u64 #(mk_usize 1) + #FStar.Tactics.Typeclasses.solve v_LEFT v_RIGHT a b) l == + Core_models.Num.impl_u64__rotate_left + (portable_lane a l ^. portable_lane b l) (cast (v_LEFT <: i32) <: u32)) + = () + +let portable_lc_and_not_xor (a b c: u64) (l: nat{l < 1}) + : Lemma (portable_lane (Libcrux_sha3.Traits.f_and_not_xor #u64 #(mk_usize 1) + #FStar.Tactics.Typeclasses.solve a b c) l == + portable_lane a l ^. (portable_lane b l &. (~. (portable_lane c l)))) + = () + +let portable_lc_xor_constant (a: u64) (c: u64) (l: nat{l < 1}) + : Lemma (portable_lane (Libcrux_sha3.Traits.f_xor_constant #u64 #(mk_usize 1) + #FStar.Tactics.Typeclasses.solve a c) l == + portable_lane a l ^. c) + = () + +let portable_lc_xor (a b: u64) (l: nat{l < 1}) + : Lemma (portable_lane (Libcrux_sha3.Traits.f_xor #u64 #(mk_usize 1) + #FStar.Tactics.Typeclasses.solve a b) l == + portable_lane a l ^. portable_lane b l) + = () + +(* ================================================================ + Assemble the [lane_correctness] record + ================================================================ *) + +let lc_portable : G.lane_correctness (mk_usize 1) #u64 = + { + lane = portable_lane; + lc_zero = portable_lc_zero; + lc_xor5 = portable_lc_xor5; + lc_rotate_left1_and_xor = portable_lc_rotate_left1_and_xor; + lc_xor_and_rotate = portable_lc_xor_and_rotate; + lc_and_not_xor = portable_lc_and_not_xor; + lc_xor_constant = portable_lc_xor_constant; + lc_xor = portable_lc_xor; + } + +(* ================================================================ + For N=1, [extract_lane] is the identity on the state array. + ================================================================ *) + +let lemma_extract_lane_portable_identity + (state: t_Array u64 (mk_usize 25)) + : Lemma (G.extract_lane (mk_usize 1) lc_portable state 0 == state) + = let lhs = G.extract_lane (mk_usize 1) lc_portable state 0 in + let aux (i: nat{i < 25}) : Lemma (Seq.index lhs i == Seq.index state i) = + let k: usize = mk_usize i in + assert (v k == i); + G.lemma_extract_lane_index (mk_usize 1) lc_portable state 0 k; + assert (lhs.[k] == lc_portable.lane state.[k] 0); + assert (lc_portable.lane state.[k] 0 == state.[k]) + in + Classical.forall_intro aux; + Rust_primitives.Arrays.eq_intro lhs state + +(* ================================================================ + MAIN THEOREM: portable keccakf1600 ≡ spec keccak_f + + Derived from [lemma_keccakf1600_to_spec] at v_N = 1, lane = 0, + using the identity lemma above to collapse [extract_lane] on both + sides. + ================================================================ *) + +let lemma_keccakf1600_portable + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState (mk_usize 1) u64) + : Lemma + ((Libcrux_sha3.Generic_keccak.impl_2__keccakf1600 (mk_usize 1) #u64 ks) + .Libcrux_sha3.Generic_keccak.f_st == + Hacspec_sha3.Keccak_f.keccak_f ks.Libcrux_sha3.Generic_keccak.f_st) + = let state = ks.Libcrux_sha3.Generic_keccak.f_st in + let ks_out = Libcrux_sha3.Generic_keccak.impl_2__keccakf1600 (mk_usize 1) #u64 ks in + let out_state = ks_out.Libcrux_sha3.Generic_keccak.f_st in + G.lemma_keccakf1600_to_spec (mk_usize 1) lc_portable ks 0; + lemma_extract_lane_portable_identity state; + lemma_extract_lane_portable_identity out_state diff --git a/crates/algorithms/sha3/proofs/fstar/equivalence/EquivImplSpec.Keccakf.SpecRounds.fst b/crates/algorithms/sha3/proofs/fstar/equivalence/EquivImplSpec.Keccakf.SpecRounds.fst new file mode 100644 index 0000000000..d1af2cad30 --- /dev/null +++ b/crates/algorithms/sha3/proofs/fstar/equivalence/EquivImplSpec.Keccakf.SpecRounds.fst @@ -0,0 +1,50 @@ +module EquivImplSpec.Keccakf.SpecRounds + +(** Spec-side recursive round iteration and the [keccak_f == spec_rounds] + bridge. + + [Hacspec_sha3.Keccak_f.keccak_f] is defined as a [fold_range 0 24] + over a spec-only one-round body (theta∘rho∘pi∘chi∘iota). We re-express + the same iteration recursively as [spec_rounds], and prove the two + are equal in a single SMT query at [--fuel 30 --ifuel 2] — enough + fuel to unroll both the [fold_range] (24 steps) and [spec_rounds] + (24 steps). + + This fuel setting is fragile to perturbations in the surrounding + SMT context, so the lemma is isolated in this small module — its + only dependency is [Hacspec_sha3.Keccak_f]. The consumer + (Generic.fst) imports this module qualified as [SpecRounds]. *) + +#set-options "--fuel 0 --ifuel 1 --z3rlimit 100" + +open FStar.Mul +open Core_models +open Rust_primitives.Integers + +let spec_state = t_Array u64 (mk_usize 25) + +let spec_one_round (state: spec_state) (i: usize) + : Pure spec_state (requires i <. mk_usize 24) (fun _ -> True) = + Hacspec_sha3.Keccak_f.iota + (Hacspec_sha3.Keccak_f.chi + (Hacspec_sha3.Keccak_f.pi + (Hacspec_sha3.Keccak_f.rho + (Hacspec_sha3.Keccak_f.theta state)))) + i + +let rec spec_rounds (state: spec_state) (r: usize) + : Pure spec_state + (requires r <=. mk_usize 24) (fun _ -> True) + (decreases (v (mk_usize 24) - v r)) = + if r =. mk_usize 24 then state + else spec_rounds (spec_one_round state r) (r +! mk_usize 1) + +(** Bridge: the spec's top-level [keccak_f] equals [spec_rounds] from 0. + Both sides unroll 24 times under [--fuel 30]; SMT closes the + resulting literal equality directly. *) +#push-options "--fuel 30 --ifuel 2 --z3rlimit 400" +let lemma_keccak_f_is_rounds (state: spec_state) + : Lemma (Hacspec_sha3.Keccak_f.keccak_f state == + spec_rounds state (mk_usize 0)) + = () +#pop-options diff --git a/crates/algorithms/sha3/proofs/fstar/equivalence/Makefile b/crates/algorithms/sha3/proofs/fstar/equivalence/Makefile new file mode 100644 index 0000000000..48c8a5de5e --- /dev/null +++ b/crates/algorithms/sha3/proofs/fstar/equivalence/Makefile @@ -0,0 +1,22 @@ +FSTAR_INCLUDE_DIRS_EXTRA += \ + $(shell git rev-parse --show-toplevel)/fstar-helpers/fstar-bitvec \ + $(shell git rev-parse --show-toplevel)/libcrux-intrinsics/proofs/fstar/extraction \ + ../stubs \ + ../extraction + +# Portable keccakf1600 equivalence proofs. +# (Platform variants and sponge-level proofs ship in follow-up PRs.) +ROOTS = \ + Proof_Utils.Lemmas.fst \ + Proof_Utils.NatFold.fst \ + Proof_Utils.FoldRange.fst \ + EquivImplSpec.Keccakf.ChiFold.fst \ + EquivImplSpec.Keccakf.SpecRounds.fst \ + EquivImplSpec.Keccakf.Generic.fst \ + EquivImplSpec.Keccakf.Portable.fst + +FSTAR_EXT_FLAGS = --ext context_pruning + +ENABLE_HINTS = --use_hints --record_hints + +include $(shell git rev-parse --show-toplevel)/fstar-helpers/Makefile.base diff --git a/crates/algorithms/sha3/proofs/fstar/stubs/Spec.Utils.fst b/crates/algorithms/sha3/proofs/fstar/stubs/Spec.Utils.fst new file mode 100644 index 0000000000..afd61d8fa1 --- /dev/null +++ b/crates/algorithms/sha3/proofs/fstar/stubs/Spec.Utils.fst @@ -0,0 +1,4 @@ +module Spec.Utils +#set-options "--fuel 0 --ifuel 1 --z3rlimit 15" + +let mul_mod (x y: i16) : i16 = x *. y diff --git a/crates/algorithms/sha3/proofs/fstar/stubs/Spec.Utils.fsti b/crates/algorithms/sha3/proofs/fstar/stubs/Spec.Utils.fsti new file mode 100644 index 0000000000..738f7af87a --- /dev/null +++ b/crates/algorithms/sha3/proofs/fstar/stubs/Spec.Utils.fsti @@ -0,0 +1,31 @@ +module Spec.Utils +#set-options "--fuel 0 --ifuel 1 --z3rlimit 15" + +/// Minimal stub re-exporting the small surface of Spec.Utils that +/// `Libcrux_intrinsics.Avx2_extract.fsti` references. The real +/// definitions live in `libcrux-ml-kem/proofs/fstar/spec/Spec.Utils.fsti`, +/// but the SHA-3 proofs do not exercise those intrinsics, so a stub +/// keeps the typecheck self-contained. +/// +/// All functions are total wrappers around `Seq.init` so that signatures +/// in `Avx2_extract.fsti` resolve. + +open Rust_primitives + +let create #a (len: usize) (c: a) : t_Array a len = + Seq.create (v len) c + +let create16 #a (v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15: a) + : t_Array a (sz 16) = + let l = [v0; v1; v2; v3; v4; v5; v6; v7; v8; v9; v10; v11; v12; v13; v14; v15] in + assert_norm (List.Tot.length l == 16); + Seq.seq_of_list l + +let map2 #a #b #c #len (f: a -> b -> c) (x: t_Array a len) (y: t_Array b len) + : t_Array c len = + Seq.init (v len) (fun i -> f (Seq.index x i) (Seq.index y i)) + +let map_array #a #b #len (f: a -> b) (s: t_Array a len) : t_Array b len = + Seq.init (v len) (fun i -> f (Seq.index s i)) + +val mul_mod (x y: i16) : i16 From 7f513914f17117e483092f72c5bf87df1a1c5cab Mon Sep 17 00:00:00 2001 From: Karthikeyan Bhargavan Date: Wed, 6 May 2026 16:41:37 +0200 Subject: [PATCH 12/14] sha3: clean up stale doc-comment notes in keccakf equivalence proofs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three small comment fixes in the proof files added in this PR: - EquivImplSpec.Keccakf.Generic.fst: the "Admitted (library-level…)" block listed lemmas that are in fact proven (lemma_rotate_left_zero, logand_commutative via Proof_Utils.Lemmas; lemma_rho_offsets_values, lemma_keccakf1600_is_rounds, lemma_keccak_f_is_rounds via Proof_Utils + EquivImplSpec.Keccakf.SpecRounds). Reword to "discharged via Proof_Utils.Lemmas + EquivImplSpec.Keccakf.SpecRounds". - EquivImplSpec.Keccakf.Generic.fst: drop a sprint-internal datestamp on a Theta+Rho commutativity comment; keep the architectural note. - Proof_Utils.NatFold.fst: drop dangling references to [Libcrux_sha3.Proof_utils.Folds] and [Test_Norm_Plain] / [Test_Keccakf_NatFold] — those modules live only on the proof-focused branch and aren't part of PR-2. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../equivalence/EquivImplSpec.Keccakf.Generic.fst | 6 +++--- .../proofs/fstar/equivalence/Proof_Utils.NatFold.fst | 11 +++++------ 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/crates/algorithms/sha3/proofs/fstar/equivalence/EquivImplSpec.Keccakf.Generic.fst b/crates/algorithms/sha3/proofs/fstar/equivalence/EquivImplSpec.Keccakf.Generic.fst index 40769b0e07..3db0b143b5 100644 --- a/crates/algorithms/sha3/proofs/fstar/equivalence/EquivImplSpec.Keccakf.Generic.fst +++ b/crates/algorithms/sha3/proofs/fstar/equivalence/EquivImplSpec.Keccakf.Generic.fst @@ -40,14 +40,14 @@ module EquivImplSpec.Keccakf.Generic (trivial wrappers around lane_correctness fields) - One-round and multi-round composition (assuming per-step lemmas) - Admitted (library-level, same as portable proof): + Library-level lemmas (discharged via Proof_Utils.Lemmas + EquivImplSpec.Keccakf.SpecRounds): - [Proof_Utils.Lemmas.lemma_rotate_left_zero]: rotate_left(x, 0) == x - [Proof_Utils.Lemmas.logand_commutative]: (a &. b) == (b &. a) - lemma_rho_offsets_values: RHO_OFFSETS array element values - lemma_keccakf1600_is_rounds: fold_range bridge (impl side) - lemma_keccak_f_is_rounds: fold_range bridge (spec side) - PROOF STRATEGY for the to_spec admits: + PROOF STRATEGY for the to_spec lemmas: Each to_spec lemma follows the same pattern: 1. Use the generic impl-side lemma to know what each slot contains @@ -1283,7 +1283,7 @@ let lemma_rho_thru_4_extract_lane (spec-side 25-position result with matching offsets), the goal reduces to pointwise equality + [eq_intro]. *) -(* Theta+Rho commutativity (2026-05-04: factored as 5 row-helpers + a dispatcher). +(* Theta+Rho commutativity (factored as 5 row-helpers + a dispatcher). The cumulative [lemma_rho_thru_4_extract_lane] supplies all 25 impl-side per-index equalities; [lemma_rho_theta_spec] supplies the matching 25 diff --git a/crates/algorithms/sha3/proofs/fstar/equivalence/Proof_Utils.NatFold.fst b/crates/algorithms/sha3/proofs/fstar/equivalence/Proof_Utils.NatFold.fst index 952f7b7252..e3e9fd5952 100644 --- a/crates/algorithms/sha3/proofs/fstar/equivalence/Proof_Utils.NatFold.fst +++ b/crates/algorithms/sha3/proofs/fstar/equivalence/Proof_Utils.NatFold.fst @@ -16,10 +16,10 @@ module Proof_Utils.NatFold α/β/η-equivalent inline lambdas whose refinement types differ only syntactically. - Earlier attempts to discharge these equalities via [fold_range_ext] - (see [Libcrux_sha3.Proof_utils.Folds]) ran into the same wall: the - pointwise hypothesis of [fold_range_ext] is a ∀-quantified closure - equality, which SMT cannot prove for hax-extracted lambdas. + Earlier attempts to discharge these equalities via the standard + [fold_range_ext] form ran into the same wall: the pointwise + hypothesis of [fold_range_ext] is a ∀-quantified closure equality, + which SMT cannot prove for hax-extracted lambdas. ---------------------------------------------------------------- Solution @@ -60,8 +60,7 @@ module Proof_Utils.NatFold - Relate the nat-fold to a recursive helper via structural induction. - See [Test_Norm_Plain] and [Test_Keccakf_NatFold] for worked examples. - See also [EquivImplSpec.Keccakf.Generic.lemma_keccakf1600_is_rounds] for + See [EquivImplSpec.Keccakf.Generic.lemma_keccakf1600_is_rounds] for a real-world application. *) #set-options "--fuel 0 --ifuel 1 --z3rlimit 100" From 8dc4fd111ef4ecdd880ab90ed29642fbc78168e3 Mon Sep 17 00:00:00 2001 From: Karthikeyan Bhargavan Date: Wed, 6 May 2026 16:44:29 +0200 Subject: [PATCH 13/14] sha3: add equivalence README and ship F* SMT replay hints MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds: - proofs/fstar/equivalence/README.md documenting the two PR-2 claims (panic-freedom for spec + impl; portable keccakf1600 ↔ spec correctness), the load-bearing theorems, scope, dependencies, and per-module timing. - proofs/fstar/equivalence/.hints/*.fst.hints (6 files, ~460KB total) recorded after a successful cold-cache build. Replay shrinks the build from ~7 min to seconds for re-verification (Generic dominates; ChiFold currently doesn't write a hint file, so its proof re-runs in ~2 min on every cold-cache invocation — F* idiosyncrasy with this proof; investigation deferred). - equivalence/Makefile: override HINT_DIR to point at the tracked .hints/ directory so checkouts pick up the shipped hints. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../EquivImplSpec.Keccakf.Generic.fst.hints | 7400 +++++++++++++++++ .../EquivImplSpec.Keccakf.Portable.fst.hints | 603 ++ ...EquivImplSpec.Keccakf.SpecRounds.fst.hints | 249 + .../.hints/Proof_Utils.FoldRange.fst.hints | 89 + .../.hints/Proof_Utils.Lemmas.fst.hints | 79 + .../.hints/Proof_Utils.NatFold.fst.hints | 367 + .../sha3/proofs/fstar/equivalence/Makefile | 4 + .../sha3/proofs/fstar/equivalence/README.md | 161 + 8 files changed, 8952 insertions(+) create mode 100644 crates/algorithms/sha3/proofs/fstar/equivalence/.hints/EquivImplSpec.Keccakf.Generic.fst.hints create mode 100644 crates/algorithms/sha3/proofs/fstar/equivalence/.hints/EquivImplSpec.Keccakf.Portable.fst.hints create mode 100644 crates/algorithms/sha3/proofs/fstar/equivalence/.hints/EquivImplSpec.Keccakf.SpecRounds.fst.hints create mode 100644 crates/algorithms/sha3/proofs/fstar/equivalence/.hints/Proof_Utils.FoldRange.fst.hints create mode 100644 crates/algorithms/sha3/proofs/fstar/equivalence/.hints/Proof_Utils.Lemmas.fst.hints create mode 100644 crates/algorithms/sha3/proofs/fstar/equivalence/.hints/Proof_Utils.NatFold.fst.hints create mode 100644 crates/algorithms/sha3/proofs/fstar/equivalence/README.md diff --git a/crates/algorithms/sha3/proofs/fstar/equivalence/.hints/EquivImplSpec.Keccakf.Generic.fst.hints b/crates/algorithms/sha3/proofs/fstar/equivalence/.hints/EquivImplSpec.Keccakf.Generic.fst.hints new file mode 100644 index 0000000000..9c8cc3c70b --- /dev/null +++ b/crates/algorithms/sha3/proofs/fstar/equivalence/.hints/EquivImplSpec.Keccakf.Generic.fst.hints @@ -0,0 +1,7400 @@ +[ + "cfd0c1168d0d7254892ae6bd37ad5110", + [ + [ + "EquivImplSpec.Keccakf.Generic.lane_correctness", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "Core_models.Default_interpretation_Tm_arrow_f79f443c37bb02fdda6707946d9ff7b5", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_14fb90547f351ab07ca712b900f4aa9c", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_588e8a2db4ba7484c1d6c13b569bd322", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_7c0c18ef2fc7daeb81e1f50870cc56bb", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_d245029c1ada73d7d1bf89db35ec75ad", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_fc7e65ad6336f7f6cba4ba6c5c93e81b", + "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.I32", + "constructor_distinct_Rust_primitives.Integers.U32", + "constructor_distinct_Rust_primitives.Integers.U64", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Libcrux_sha3.Traits.Mkt_KeccakItem", + "data_elim_Rust_primitives.Integers.MkInt", + "equality_tok_Rust_primitives.Integers.I32@tok", + "equality_tok_Rust_primitives.Integers.U32@tok", + "equality_tok_Rust_primitives.Integers.U64@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.gt", + "equation_Rust_primitives.Integers.i32", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_i32", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "int_inversion", "int_typing", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_Equality", "primitive_Prims.op_GreaterThan", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Minus", "primitive_Prims.op_Subtraction", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_and_not_xor_pre", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_rotate_left1_and_xor_pre", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor5_pre", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor_and_rotate_pre", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor_constant_pre", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor_pre", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_zero_pre", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_97c1e055b7db624f230d5d2c143d20ab", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_e15422d7e08b3699e1d0be0bba6b3258", + "refinement_interpretation_Tm_refine_e263604a64d343fa5112de970172906b", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_and_not_xor_pre", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_rotate_left1_and_xor_pre", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_xor5_pre", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_xor_and_rotate_pre", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_xor_constant_pre", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_xor_pre", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_zero_pre", + "typing_Rust_primitives.Integers.bits", + "typing_tok_Rust_primitives.Integers.U32@tok", "unit_typing" + ], + 0, + "1c04ad7235dc5d03e40ee3fb626cebdb" + ], + [ + "EquivImplSpec.Keccakf.Generic.__proj__Mklane_correctness__item__lc_zero", + 1, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", + "Core_models.Default_interpretation_Tm_arrow_f79f443c37bb02fdda6707946d9ff7b5", + "constructor_distinct_Rust_primitives.Integers.U64", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Libcrux_sha3.Traits.Mkt_KeccakItem", + "data_elim_Rust_primitives.Integers.MkInt", + "equality_tok_Rust_primitives.Integers.U64@tok", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.unsigned", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "int_inversion", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_LessThanOrEqual", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_zero_pre", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_e263604a64d343fa5112de970172906b", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_zero_pre", + "unit_typing" + ], + 0, + "77144c9026cdee3c11b785980937e11e" + ], + [ + "EquivImplSpec.Keccakf.Generic.__proj__Mklane_correctness__item__lc_zero", + 2, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", + "Core_models.Default_interpretation_Tm_arrow_f79f443c37bb02fdda6707946d9ff7b5", + "constructor_distinct_Rust_primitives.Integers.U64", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Libcrux_sha3.Traits.Mkt_KeccakItem", + "data_elim_Rust_primitives.Integers.MkInt", + "equality_tok_Rust_primitives.Integers.U64@tok", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.unsigned", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "int_inversion", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_LessThanOrEqual", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_zero_pre", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_e263604a64d343fa5112de970172906b", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_zero_pre", + "unit_typing" + ], + 0, + "78c6928bda29c03ae67b4ebf3b1826b1" + ], + [ + "EquivImplSpec.Keccakf.Generic.__proj__Mklane_correctness__item__lc_xor5", + 1, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_14fb90547f351ab07ca712b900f4aa9c", + "data_elim_Libcrux_sha3.Traits.Mkt_KeccakItem", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor5_pre", + "refinement_interpretation_Tm_refine_e263604a64d343fa5112de970172906b", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_xor5_pre" + ], + 0, + "9ff9ece692416cc232b36608e4483e1d" + ], + [ + "EquivImplSpec.Keccakf.Generic.__proj__Mklane_correctness__item__lc_xor5", + 2, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_14fb90547f351ab07ca712b900f4aa9c", + "data_elim_Libcrux_sha3.Traits.Mkt_KeccakItem", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor5_pre", + "refinement_interpretation_Tm_refine_e263604a64d343fa5112de970172906b", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_xor5_pre" + ], + 0, + "54fc56da2e7c981951192ef6090a523b" + ], + [ + "EquivImplSpec.Keccakf.Generic.__proj__Mklane_correctness__item__lc_rotate_left1_and_xor", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_7c0c18ef2fc7daeb81e1f50870cc56bb", + "constructor_distinct_Rust_primitives.Integers.U32", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Libcrux_sha3.Traits.Mkt_KeccakItem", + "equality_tok_Rust_primitives.Integers.U32@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.unsigned", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_rotate_left1_and_xor_pre", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_e263604a64d343fa5112de970172906b", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_rotate_left1_and_xor_pre", + "typing_Rust_primitives.Integers.bits", + "typing_tok_Rust_primitives.Integers.U32@tok" + ], + 0, + "11cbb0b8e4a12445040766f4169a67ac" + ], + [ + "EquivImplSpec.Keccakf.Generic.__proj__Mklane_correctness__item__lc_rotate_left1_and_xor", + 2, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_7c0c18ef2fc7daeb81e1f50870cc56bb", + "constructor_distinct_Rust_primitives.Integers.U32", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Libcrux_sha3.Traits.Mkt_KeccakItem", + "equality_tok_Rust_primitives.Integers.U32@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.unsigned", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "int_inversion", "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_rotate_left1_and_xor_pre", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_e263604a64d343fa5112de970172906b", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_rotate_left1_and_xor_pre", + "typing_Rust_primitives.Integers.bits", + "typing_tok_Rust_primitives.Integers.U32@tok" + ], + 0, + "364a2e27b5d7441ac3e244fa70188a52" + ], + [ + "EquivImplSpec.Keccakf.Generic.__proj__Mklane_correctness__item__lc_xor_and_rotate", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_588e8a2db4ba7484c1d6c13b569bd322", + "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.I32", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Libcrux_sha3.Traits.Mkt_KeccakItem", + "data_elim_Rust_primitives.Integers.MkInt", + "equality_tok_Rust_primitives.Integers.I32@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.gt", + "equation_Rust_primitives.Integers.i32", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_i32", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "int_inversion", "int_typing", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_Equality", "primitive_Prims.op_GreaterThan", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Minus", "primitive_Prims.op_Subtraction", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor_and_rotate_pre", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_97c1e055b7db624f230d5d2c143d20ab", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_e15422d7e08b3699e1d0be0bba6b3258", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_xor_and_rotate_pre", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.I32@tok", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "70664206ac9652e192c6d4ce89ce3977" + ], + [ + "EquivImplSpec.Keccakf.Generic.__proj__Mklane_correctness__item__lc_xor_and_rotate", + 2, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_588e8a2db4ba7484c1d6c13b569bd322", + "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.I32", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Libcrux_sha3.Traits.Mkt_KeccakItem", + "data_elim_Rust_primitives.Integers.MkInt", + "equality_tok_Rust_primitives.Integers.I32@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.gt", + "equation_Rust_primitives.Integers.i32", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_i32", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "int_inversion", "int_typing", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_Equality", "primitive_Prims.op_GreaterThan", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Minus", "primitive_Prims.op_Subtraction", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor_and_rotate_pre", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_97c1e055b7db624f230d5d2c143d20ab", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_e15422d7e08b3699e1d0be0bba6b3258", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_xor_and_rotate_pre", + "typing_Rust_primitives.Integers.range", + "typing_tok_Rust_primitives.Integers.I32@tok" + ], + 0, + "d0f927b227ce5755782733474f39364d" + ], + [ + "EquivImplSpec.Keccakf.Generic.__proj__Mklane_correctness__item__lc_and_not_xor", + 1, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_d245029c1ada73d7d1bf89db35ec75ad", + "data_elim_Libcrux_sha3.Traits.Mkt_KeccakItem", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_and_not_xor_pre", + "refinement_interpretation_Tm_refine_e263604a64d343fa5112de970172906b", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_and_not_xor_pre" + ], + 0, + "c67d8cc2e88e1bec8988ca63b53f6678" + ], + [ + "EquivImplSpec.Keccakf.Generic.__proj__Mklane_correctness__item__lc_and_not_xor", + 2, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_d245029c1ada73d7d1bf89db35ec75ad", + "data_elim_Libcrux_sha3.Traits.Mkt_KeccakItem", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_and_not_xor_pre", + "refinement_interpretation_Tm_refine_e263604a64d343fa5112de970172906b", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_and_not_xor_pre" + ], + 0, + "290b20e7f3eaf865f3401193bca0c109" + ], + [ + "EquivImplSpec.Keccakf.Generic.__proj__Mklane_correctness__item__lc_xor_constant", + 1, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_fc7e65ad6336f7f6cba4ba6c5c93e81b", + "data_elim_Libcrux_sha3.Traits.Mkt_KeccakItem", + "equality_tok_Rust_primitives.Integers.U64@tok", + "equation_Rust_primitives.Integers.u64", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor_constant_pre", + "refinement_interpretation_Tm_refine_e263604a64d343fa5112de970172906b", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_xor_constant_pre" + ], + 0, + "18ff05c82610d7c5759a841704e6dea6" + ], + [ + "EquivImplSpec.Keccakf.Generic.__proj__Mklane_correctness__item__lc_xor_constant", + 2, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_fc7e65ad6336f7f6cba4ba6c5c93e81b", + "data_elim_Libcrux_sha3.Traits.Mkt_KeccakItem", + "equality_tok_Rust_primitives.Integers.U64@tok", + "equation_Rust_primitives.Integers.u64", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor_constant_pre", + "refinement_interpretation_Tm_refine_e263604a64d343fa5112de970172906b", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_xor_constant_pre" + ], + 0, + "42fe370824481440df29d6296ef246aa" + ], + [ + "EquivImplSpec.Keccakf.Generic.__proj__Mklane_correctness__item__lc_xor", + 1, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_7c0c18ef2fc7daeb81e1f50870cc56bb", + "data_elim_Libcrux_sha3.Traits.Mkt_KeccakItem", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor_pre", + "refinement_interpretation_Tm_refine_e263604a64d343fa5112de970172906b", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_xor_pre" + ], + 0, + "288b4446fd7cf6abb9af65ee7f9dd28e" + ], + [ + "EquivImplSpec.Keccakf.Generic.__proj__Mklane_correctness__item__lc_xor", + 2, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_7c0c18ef2fc7daeb81e1f50870cc56bb", + "data_elim_Libcrux_sha3.Traits.Mkt_KeccakItem", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor_pre", + "refinement_interpretation_Tm_refine_e263604a64d343fa5112de970172906b", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_xor_pre" + ], + 0, + "f87e28c498d451830f4a6bdf000a9c8d" + ], + [ + "EquivImplSpec.Keccakf.Generic.extract_lane", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "b2t_def", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index_pre", "equation_Prims.nat", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "int_inversion", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_6af5dd912a49c5aa2d10fa9f5a5534c2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "426676599c52349aabfe94449ba274ad" + ], + [ + "EquivImplSpec.Keccakf.Generic.extract_lane", + 2, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.unsigned", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "8bfaef57333a6871469c0309620e345f" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_extract_lane_index", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "EquivImplSpec.Keccakf.Generic_interpretation_Tm_arrow_8b678892006cf2d6c10ea41e3d2d679c", + "Rust_primitives.Arrays_interpretation_Tm_arrow_0d263c675f2f6a422e85e8ffa504d5e2", + "b2t_def", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Core_models.Ops.Index.f_index_pre", "equation_Prims.nat", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_EquivImplSpec.Keccakf.Generic.lane_correctness", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "function_token_typing_Rust_primitives.Integers.u64", + "int_inversion", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "interpretation_Tm_abs_f77d40a5bab95afb5a5de03b74ce0905", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_EquivImplSpec.Keccakf.Generic.Mklane_correctness_@lane", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_34fdf9130d622ae6fab26403fbb8e0fc", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_414b3103e63acaca337a620ee42bb932", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_6af5dd912a49c5aa2d10fa9f5a5534c2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_a8076bead62d5007a50ce0971afcd85d", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "refinement_interpretation_Tm_refine_eea4a7aaf0d9fd792b6bd561042bfd5e", + "token_correspondence_Core_models.Ops.Index.f_index", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "token_correspondence_EquivImplSpec.Keccakf.Generic.__proj__Mklane_correctness__item__lane", + "typing_Rust_primitives.Arrays.createi", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.lt", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_Tm_abs_f77d40a5bab95afb5a5de03b74ce0905", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "e0cbe84bdf312dd70e19a1d58cef4c09" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_extract_lane_index", + 2, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.unsigned", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "eb3bc6117394b5689231af5ea5ec3751" + ], + [ + "EquivImplSpec.Keccakf.Generic.lane_xor5", + 1, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_14fb90547f351ab07ca712b900f4aa9c", + "data_elim_Libcrux_sha3.Traits.Mkt_KeccakItem", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor5_pre", + "refinement_interpretation_Tm_refine_e263604a64d343fa5112de970172906b", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_xor5_pre" + ], + 0, + "7d88233e3fed4442dddb98c1d5218660" + ], + [ + "EquivImplSpec.Keccakf.Generic.lane_rotate_left1_and_xor", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_7c0c18ef2fc7daeb81e1f50870cc56bb", + "constructor_distinct_Rust_primitives.Integers.U32", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Libcrux_sha3.Traits.Mkt_KeccakItem", + "equality_tok_Rust_primitives.Integers.U32@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.unsigned", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_rotate_left1_and_xor_pre", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_e263604a64d343fa5112de970172906b", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_rotate_left1_and_xor_pre", + "typing_Rust_primitives.Integers.bits", + "typing_tok_Rust_primitives.Integers.U32@tok" + ], + 0, + "c3f8519ba28eb27c42351bc6addc0a89" + ], + [ + "EquivImplSpec.Keccakf.Generic.lane_xor_and_rotate", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_588e8a2db4ba7484c1d6c13b569bd322", + "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.I32", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Libcrux_sha3.Traits.Mkt_KeccakItem", + "data_elim_Rust_primitives.Integers.MkInt", + "equality_tok_Rust_primitives.Integers.I32@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.gt", + "equation_Rust_primitives.Integers.i32", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_i32", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "int_inversion", "int_typing", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_Equality", "primitive_Prims.op_GreaterThan", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Minus", "primitive_Prims.op_Subtraction", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor_and_rotate_pre", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_97c1e055b7db624f230d5d2c143d20ab", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_e15422d7e08b3699e1d0be0bba6b3258", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_xor_and_rotate_pre", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.I32@tok", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "7d56344d048dacd03a2d13a2242f5e61" + ], + [ + "EquivImplSpec.Keccakf.Generic.lane_and_not_xor", + 1, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_d245029c1ada73d7d1bf89db35ec75ad", + "data_elim_Libcrux_sha3.Traits.Mkt_KeccakItem", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_and_not_xor_pre", + "refinement_interpretation_Tm_refine_e263604a64d343fa5112de970172906b", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_and_not_xor_pre" + ], + 0, + "10dbcbb3f284555b7204ae0fa5efe6e8" + ], + [ + "EquivImplSpec.Keccakf.Generic.lane_xor_constant", + 1, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_fc7e65ad6336f7f6cba4ba6c5c93e81b", + "data_elim_Libcrux_sha3.Traits.Mkt_KeccakItem", + "equality_tok_Rust_primitives.Integers.U64@tok", + "equation_Rust_primitives.Integers.u64", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor_constant_pre", + "refinement_interpretation_Tm_refine_e263604a64d343fa5112de970172906b", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_xor_constant_pre" + ], + 0, + "cf8670e784a7f149dadd6ee341e37aa4" + ], + [ + "EquivImplSpec.Keccakf.Generic.lane_xor", + 1, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_7c0c18ef2fc7daeb81e1f50870cc56bb", + "data_elim_Libcrux_sha3.Traits.Mkt_KeccakItem", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor_pre", + "refinement_interpretation_Tm_refine_e263604a64d343fa5112de970172906b", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_xor_pre" + ], + 0, + "a7aeebcd17553e2641bf6eecefc83c11" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_generic", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_FStar.List.Tot.Base.length.fuel_instrumented", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "Core_models.Ops.Function_interpretation_Tm_arrow_05fe4ff7055e98bccfe80fa62bb6aeaf", + "FStar.Seq.Base_pretyping_aec2ec0359b5151fd30ba679a2daadcd", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_14fb90547f351ab07ca712b900f4aa9c", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_1cea0b54efde622bbe567dae4f0b833f", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_277be3292b03d320a19b8fc80d9e10d9", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_7c0c18ef2fc7daeb81e1f50870cc56bb", + "b2t_def", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Core_models.Ops.Index.Mkt_Index", + "data_elim_FStar.Pervasives.Native.Mktuple2", + "data_elim_Libcrux_sha3.Generic_keccak.Mkt_KeccakState", + "data_elim_Libcrux_sha3.Traits.Mkt_KeccakItem", + "data_elim_Rust_primitives.Integers.MkInt", + "data_typing_intro_FStar.Pervasives.Native.Mktuple2@tok", + "data_typing_intro_Prims.Cons@tok", + "data_typing_intro_Prims.Nil@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Core_models.Ops.Index.f_index_pre", + "equation_FStar.Seq.Base.op_At_Bar", + "equation_Libcrux_sha3.Generic_keccak.impl_2__theta", + "equation_Libcrux_sha3.Generic_keccak.impl_3", + "equation_Libcrux_sha3.Traits.f_rotate_left1_and_xor", + "equation_Libcrux_sha3.Traits.f_xor5", + "equation_Libcrux_sha3.Traits.get_ij", "equation_Prims.nat", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.mod", + "equation_Rust_primitives.Integers.mul", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "function_token_typing_Rust_primitives.Integers.usize", + "int_inversion", "int_typing", + "interpretation_Tm_abs_102f42c4ed9c78eb18badb9265620e17", + "interpretation_Tm_abs_44d78164ecd3ae1d873768fc71c8c2e4", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "interpretation_Tm_abs_70955cb4f9afccd4a1c9959c38bb2c40", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "interpretation_Tm_abs_f60c537567243dee9f91819830879155", + "kinding_FStar.Pervasives.Native.tuple2@tok", + "kinding_Libcrux_sha3.Generic_keccak.t_KeccakState@tok", + "lemma_FStar.Seq.Base.lemma_create_len", + "lemma_FStar.Seq.Base.lemma_index_app1", + "lemma_FStar.Seq.Base.lemma_index_app2", + "lemma_FStar.Seq.Base.lemma_index_create", + "lemma_FStar.Seq.Base.lemma_len_append", + "lemma_FStar.Seq.Base.lemma_seq_of_list_cons", + "lemma_Rust_primitives.Integers.pow2_values", + "lemma_Rust_primitives.Integers.v_mk_int_lemma", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Modulus", "primitive_Prims.op_Multiply", + "primitive_Prims.op_Subtraction", + "proj_equation_Core_models.Ops.Index.Mkt_Index_@f_Output", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_1", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_2", + "proj_equation_Libcrux_sha3.Generic_keccak.Mkt_KeccakState_@f_st", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_rotate_left1_and_xor_pre", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor5_pre", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_Output", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_160fe7faad9a466b3cae8455bac5be60", + "refinement_interpretation_Tm_refine_1e174b8c76a3e29ed16766cf8486aae6", + "refinement_interpretation_Tm_refine_21e0277b21b9413896fa7f0b23f8625e", + "refinement_interpretation_Tm_refine_444061fd0bd0053c4f27fa233082c9ca", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_93f6c203d9fe816a13fdcc20465525c3", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "refinement_interpretation_Tm_refine_b21f98b6ca50013c6e539e770c013c08", + "refinement_interpretation_Tm_refine_c1424615841f28cac7fc34e92b7ff33c", + "refinement_interpretation_Tm_refine_c16bc1b61f58b349bf6fc1c94dcaf83b", + "refinement_interpretation_Tm_refine_c525f4bc3aa418afe0bd65cc4d0f6cd8", + "refinement_interpretation_Tm_refine_e16a4ff0a31703789cc1c1125fc4da02", + "refinement_interpretation_Tm_refine_e263604a64d343fa5112de970172906b", + "token_correspondence_Core_models.Ops.Index.f_index", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_rotate_left1_and_xor_pre", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_xor5_pre", + "token_correspondence_Libcrux_sha3.Traits.f_rotate_left1_and_xor", + "token_correspondence_Libcrux_sha3.Traits.f_xor5", + "typing_FStar.Pervasives.Native.__proj__Mktuple2__item___1", + "typing_FStar.Pervasives.Native.__proj__Mktuple2__item___2", + "typing_FStar.Seq.Base.create", "typing_FStar.Seq.Base.index", + "typing_FStar.Seq.Base.length", "typing_FStar.Seq.Base.op_At_Bar", + "typing_FStar.Seq.Base.seq_of_list", + "typing_Libcrux_sha3.Generic_keccak.__proj__Mkt_KeccakState__item__f_st", + "typing_Libcrux_sha3.Generic_keccak.impl_2__theta", + "typing_Libcrux_sha3.Generic_keccak.impl_3", + "typing_Libcrux_sha3.Traits.get_ij", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.lt", + "typing_Rust_primitives.Integers.minint", + "typing_Rust_primitives.Integers.mk_int", + "typing_Rust_primitives.Integers.mk_usize", + "typing_Rust_primitives.Integers.mod", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_Rust_primitives.Notations.op_String_Access", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "41f09b85997db8d71706ec8f7121d7b9" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_rho_0_generic", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "Core_models.Ops.Function_interpretation_Tm_arrow_05fe4ff7055e98bccfe80fa62bb6aeaf", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_277be3292b03d320a19b8fc80d9e10d9", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_588e8a2db4ba7484c1d6c13b569bd322", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_7c0c18ef2fc7daeb81e1f50870cc56bb", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_c43f4af19cc3c79731899455bf108032", + "b2t_def", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.I32", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Core_models.Ops.Index.Mkt_Index", + "data_elim_Libcrux_sha3.Generic_keccak.Mkt_KeccakState", + "data_elim_Libcrux_sha3.Traits.Mkt_KeccakItem", + "data_elim_Rust_primitives.Integers.MkInt", + "data_typing_intro_FStar.Pervasives.Native.Mktuple2@tok", + "equality_tok_Rust_primitives.Integers.I32@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Core_models.Ops.Index.f_index_pre", + "equation_Libcrux_sha3.Generic_keccak.impl_2__rho_0_", + "equation_Libcrux_sha3.Generic_keccak.impl_2__set", + "equation_Libcrux_sha3.Generic_keccak.impl_3", + "equation_Libcrux_sha3.Traits.f_xor", + "equation_Libcrux_sha3.Traits.f_xor_and_rotate", + "equation_Libcrux_sha3.Traits.get_ij", + "equation_Libcrux_sha3.Traits.set_ij", "equation_Prims.nat", + "equation_Prims.pos", "equation_Rust_primitives.Arrays.length", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Arrays.t_Slice", + "equation_Rust_primitives.Hax.Monomorphized_update_at.update_at_usize", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.gt", + "equation_Rust_primitives.Integers.i32", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.max_usize", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_i32", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.mul", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.sz", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "function_token_typing_Rust_primitives.Integers.usize", + "int_inversion", "int_typing", + "interpretation_Tm_abs_1eeff65ff9c3b4718cb125a4d4298f2a", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "interpretation_Tm_abs_6c724cf449e8e345fb2b9fb8cc1b6524", + "interpretation_Tm_abs_70955cb4f9afccd4a1c9959c38bb2c40", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "interpretation_Tm_abs_f60c537567243dee9f91819830879155", + "kinding_FStar.Pervasives.Native.tuple2@tok", + "kinding_Libcrux_sha3.Generic_keccak.t_KeccakState@tok", + "lemma_FStar.Seq.Base.lemma_index_upd1", + "lemma_FStar.Seq.Base.lemma_index_upd2", + "lemma_Rust_primitives.Integers.pow2_values", + "lemma_Rust_primitives.Integers.v_mk_int_lemma", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_Equality", "primitive_Prims.op_GreaterThan", + "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Minus", "primitive_Prims.op_Multiply", + "primitive_Prims.op_Subtraction", + "proj_equation_Core_models.Ops.Index.Mkt_Index_@f_Output", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_1", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_2", + "proj_equation_Libcrux_sha3.Generic_keccak.Mkt_KeccakState_@f_st", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor_and_rotate_pre", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor_pre", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_Output", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Libcrux_sha3.Generic_keccak.Mkt_KeccakState_@f_st", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_160fe7faad9a466b3cae8455bac5be60", + "refinement_interpretation_Tm_refine_21e0277b21b9413896fa7f0b23f8625e", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_6cba8b694d7fbf759331b42d86bb8cbd", + "refinement_interpretation_Tm_refine_719b0b6cc298b94bece7f65126216cde", + "refinement_interpretation_Tm_refine_774ba3f728d91ead8ef40be66c9802e5", + "refinement_interpretation_Tm_refine_77939974e8de44bb9a3ae869c6571119", + "refinement_interpretation_Tm_refine_93cf6a6e8722379491c94f2cfe70c712", + "refinement_interpretation_Tm_refine_93f6c203d9fe816a13fdcc20465525c3", + "refinement_interpretation_Tm_refine_97c1e055b7db624f230d5d2c143d20ab", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "refinement_interpretation_Tm_refine_c16bc1b61f58b349bf6fc1c94dcaf83b", + "refinement_interpretation_Tm_refine_d302493db5f45f7ff6b231a718224dc4", + "refinement_interpretation_Tm_refine_e16a4ff0a31703789cc1c1125fc4da02", + "refinement_interpretation_Tm_refine_e263604a64d343fa5112de970172906b", + "refinement_interpretation_Tm_refine_fd980a4a94cc34052e6e36a3c682afca", + "token_correspondence_Core_models.Ops.Index.f_index", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_xor_and_rotate_pre", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_xor_pre", + "token_correspondence_Libcrux_sha3.Traits.f_xor", + "token_correspondence_Libcrux_sha3.Traits.f_xor_and_rotate", + "typing_FStar.Seq.Base.index", "typing_FStar.Seq.Base.length", + "typing_FStar.Seq.Base.upd", + "typing_Libcrux_sha3.Generic_keccak.__proj__Mkt_KeccakState__item__f_st", + "typing_Libcrux_sha3.Generic_keccak.impl_2__set", + "typing_Libcrux_sha3.Generic_keccak.impl_3", + "typing_Libcrux_sha3.Traits.get_ij", + "typing_Libcrux_sha3.Traits.set_ij", "typing_Prims.pow2", + "typing_Rust_primitives.Arrays.t_Array", + "typing_Rust_primitives.Hax.Monomorphized_update_at.update_at_usize", + "typing_Rust_primitives.Hax.impl__index", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.lt", + "typing_Rust_primitives.Integers.minint", + "typing_Rust_primitives.Integers.mk_i32", + "typing_Rust_primitives.Integers.mk_int", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Notations.op_String_Access", + "typing_tok_Rust_primitives.Integers.I32@tok", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "078e07bca99fc0cd86f67856ac9a9c40" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_rho_0_generic", + 2, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.unsigned", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "e22a4fd24ed6dfc0bd97860bb78cb50a" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_rho_1_generic", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "Core_models.Ops.Function_interpretation_Tm_arrow_05fe4ff7055e98bccfe80fa62bb6aeaf", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_588e8a2db4ba7484c1d6c13b569bd322", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_c43f4af19cc3c79731899455bf108032", + "Prims_pretyping_ae567c2fb75be05905677af440075565", "b2t_def", + "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.I32", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Core_models.Ops.Index.Mkt_Index", + "data_elim_Libcrux_sha3.Generic_keccak.Mkt_KeccakState", + "data_elim_Libcrux_sha3.Traits.Mkt_KeccakItem", + "data_elim_Rust_primitives.Integers.MkInt", + "data_typing_intro_FStar.Pervasives.Native.Mktuple2@tok", + "data_typing_intro_Libcrux_sha3.Generic_keccak.Mkt_KeccakState@tok", + "equality_tok_Rust_primitives.Integers.I32@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Core_models.Ops.Index.f_index_pre", + "equation_Libcrux_sha3.Generic_keccak.impl_2__rho_1_", + "equation_Libcrux_sha3.Generic_keccak.impl_2__set", + "equation_Libcrux_sha3.Generic_keccak.impl_3", + "equation_Libcrux_sha3.Traits.f_xor_and_rotate", + "equation_Libcrux_sha3.Traits.get_ij", + "equation_Libcrux_sha3.Traits.set_ij", "equation_Prims.nat", + "equation_Prims.pos", "equation_Rust_primitives.Arrays.length", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Arrays.t_Slice", + "equation_Rust_primitives.Hax.Monomorphized_update_at.update_at_usize", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.gt", + "equation_Rust_primitives.Integers.i32", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.max_usize", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_i32", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.mul", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.sz", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "function_token_typing_Prims.__cache_version_number__", + "function_token_typing_Rust_primitives.Integers.usize", + "int_inversion", "int_typing", + "interpretation_Tm_abs_1eeff65ff9c3b4718cb125a4d4298f2a", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "interpretation_Tm_abs_70955cb4f9afccd4a1c9959c38bb2c40", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "interpretation_Tm_abs_f60c537567243dee9f91819830879155", + "kinding_FStar.Pervasives.Native.tuple2@tok", + "kinding_Libcrux_sha3.Generic_keccak.t_KeccakState@tok", + "lemma_FStar.Seq.Base.lemma_index_upd1", + "lemma_FStar.Seq.Base.lemma_index_upd2", + "lemma_Rust_primitives.Integers.pow2_values", + "lemma_Rust_primitives.Integers.v_mk_int_lemma", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_Equality", "primitive_Prims.op_GreaterThan", + "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Minus", "primitive_Prims.op_Multiply", + "primitive_Prims.op_Subtraction", + "proj_equation_Core_models.Ops.Index.Mkt_Index_@f_Output", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_1", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_2", + "proj_equation_Libcrux_sha3.Generic_keccak.Mkt_KeccakState_@f_st", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor_and_rotate_pre", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_Output", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Libcrux_sha3.Generic_keccak.Mkt_KeccakState_@f_st", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_160fe7faad9a466b3cae8455bac5be60", + "refinement_interpretation_Tm_refine_21e0277b21b9413896fa7f0b23f8625e", + "refinement_interpretation_Tm_refine_221edc532b512849362f091b0318b99d", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_6cba8b694d7fbf759331b42d86bb8cbd", + "refinement_interpretation_Tm_refine_719b0b6cc298b94bece7f65126216cde", + "refinement_interpretation_Tm_refine_774ba3f728d91ead8ef40be66c9802e5", + "refinement_interpretation_Tm_refine_77939974e8de44bb9a3ae869c6571119", + "refinement_interpretation_Tm_refine_93cf6a6e8722379491c94f2cfe70c712", + "refinement_interpretation_Tm_refine_93f6c203d9fe816a13fdcc20465525c3", + "refinement_interpretation_Tm_refine_97c1e055b7db624f230d5d2c143d20ab", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "refinement_interpretation_Tm_refine_c16bc1b61f58b349bf6fc1c94dcaf83b", + "refinement_interpretation_Tm_refine_d302493db5f45f7ff6b231a718224dc4", + "refinement_interpretation_Tm_refine_e16a4ff0a31703789cc1c1125fc4da02", + "refinement_interpretation_Tm_refine_fd980a4a94cc34052e6e36a3c682afca", + "token_correspondence_Core_models.Ops.Index.f_index", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_xor_and_rotate_pre", + "token_correspondence_Libcrux_sha3.Traits.f_xor_and_rotate", + "typing_FStar.Pervasives.Native.__proj__Mktuple2__item___1", + "typing_FStar.Pervasives.Native.__proj__Mktuple2__item___2", + "typing_FStar.Seq.Base.length", "typing_FStar.Seq.Base.upd", + "typing_Libcrux_sha3.Generic_keccak.__proj__Mkt_KeccakState__item__f_st", + "typing_Libcrux_sha3.Generic_keccak.impl_2__set", + "typing_Libcrux_sha3.Generic_keccak.impl_3", + "typing_Libcrux_sha3.Traits.get_ij", + "typing_Libcrux_sha3.Traits.set_ij", "typing_Prims.pow2", + "typing_Rust_primitives.Arrays.t_Array", + "typing_Rust_primitives.Hax.Monomorphized_update_at.update_at_usize", + "typing_Rust_primitives.Hax.impl__index", + "typing_Rust_primitives.Integers.add", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.minint", + "typing_Rust_primitives.Integers.mk_i32", + "typing_Rust_primitives.Integers.mk_int", + "typing_Rust_primitives.Integers.mk_usize", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Notations.op_String_Access", + "typing_tok_Rust_primitives.Integers.I32@tok", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "e48b2a3df6f0ee64d5c0f44e65d2e220" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_rho_1_generic", + 2, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.unsigned", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "ef31a5553febda99ec8a69b4d57a63f0" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_rho_2_generic", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_588e8a2db4ba7484c1d6c13b569bd322", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_c43f4af19cc3c79731899455bf108032", + "Prims_pretyping_ae567c2fb75be05905677af440075565", "b2t_def", + "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.I32", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Libcrux_sha3.Generic_keccak.Mkt_KeccakState", + "data_elim_Libcrux_sha3.Traits.Mkt_KeccakItem", + "data_elim_Rust_primitives.Integers.MkInt", + "data_typing_intro_FStar.Pervasives.Native.Mktuple2@tok", + "equality_tok_Rust_primitives.Integers.I32@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Core_models.Ops.Index.f_index_pre", + "equation_Libcrux_sha3.Generic_keccak.impl_2__rho_2_", + "equation_Libcrux_sha3.Generic_keccak.impl_2__set", + "equation_Libcrux_sha3.Generic_keccak.impl_3", + "equation_Libcrux_sha3.Traits.f_xor_and_rotate", + "equation_Libcrux_sha3.Traits.get_ij", + "equation_Libcrux_sha3.Traits.set_ij", "equation_Prims.nat", + "equation_Prims.pos", "equation_Rust_primitives.Arrays.length", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Arrays.t_Slice", + "equation_Rust_primitives.Hax.Monomorphized_update_at.update_at_usize", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.gt", + "equation_Rust_primitives.Integers.i32", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.max_usize", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_i32", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.mul", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.sz", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "function_token_typing_Prims.__cache_version_number__", + "function_token_typing_Rust_primitives.Integers.usize", + "int_inversion", "int_typing", + "interpretation_Tm_abs_1eeff65ff9c3b4718cb125a4d4298f2a", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "interpretation_Tm_abs_70955cb4f9afccd4a1c9959c38bb2c40", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "interpretation_Tm_abs_f60c537567243dee9f91819830879155", + "kinding_FStar.Pervasives.Native.tuple2@tok", + "kinding_Libcrux_sha3.Generic_keccak.t_KeccakState@tok", + "lemma_FStar.Seq.Base.lemma_index_upd1", + "lemma_FStar.Seq.Base.lemma_index_upd2", + "lemma_Rust_primitives.Integers.pow2_values", + "lemma_Rust_primitives.Integers.v_mk_int_lemma", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_Equality", "primitive_Prims.op_GreaterThan", + "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Minus", "primitive_Prims.op_Multiply", + "primitive_Prims.op_Subtraction", + "proj_equation_Core_models.Ops.Index.Mkt_Index_@f_Output", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_1", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_2", + "proj_equation_Libcrux_sha3.Generic_keccak.Mkt_KeccakState_@f_st", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor_and_rotate_pre", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_Output", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Libcrux_sha3.Generic_keccak.Mkt_KeccakState_@f_st", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_160fe7faad9a466b3cae8455bac5be60", + "refinement_interpretation_Tm_refine_21e0277b21b9413896fa7f0b23f8625e", + "refinement_interpretation_Tm_refine_221edc532b512849362f091b0318b99d", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_6cba8b694d7fbf759331b42d86bb8cbd", + "refinement_interpretation_Tm_refine_719b0b6cc298b94bece7f65126216cde", + "refinement_interpretation_Tm_refine_774ba3f728d91ead8ef40be66c9802e5", + "refinement_interpretation_Tm_refine_93cf6a6e8722379491c94f2cfe70c712", + "refinement_interpretation_Tm_refine_97c1e055b7db624f230d5d2c143d20ab", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "refinement_interpretation_Tm_refine_c16bc1b61f58b349bf6fc1c94dcaf83b", + "refinement_interpretation_Tm_refine_d302493db5f45f7ff6b231a718224dc4", + "refinement_interpretation_Tm_refine_e16a4ff0a31703789cc1c1125fc4da02", + "refinement_interpretation_Tm_refine_fd980a4a94cc34052e6e36a3c682afca", + "token_correspondence_Core_models.Ops.Index.f_index", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_xor_and_rotate_pre", + "token_correspondence_Libcrux_sha3.Traits.f_xor_and_rotate", + "token_correspondence_Prims.pow2.fuel_instrumented", + "typing_FStar.Pervasives.Native.__proj__Mktuple2__item___1", + "typing_FStar.Pervasives.Native.__proj__Mktuple2__item___2", + "typing_FStar.Seq.Base.index", "typing_FStar.Seq.Base.length", + "typing_FStar.Seq.Base.upd", + "typing_Libcrux_sha3.Generic_keccak.__proj__Mkt_KeccakState__item__f_st", + "typing_Libcrux_sha3.Generic_keccak.impl_3", + "typing_Libcrux_sha3.Traits.get_ij", + "typing_Libcrux_sha3.Traits.set_ij", "typing_Prims.pow2", + "typing_Rust_primitives.Arrays.t_Array", + "typing_Rust_primitives.Hax.Monomorphized_update_at.update_at_usize", + "typing_Rust_primitives.Hax.impl__index", + "typing_Rust_primitives.Integers.add", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.minint", + "typing_Rust_primitives.Integers.mk_i32", + "typing_Rust_primitives.Integers.mk_int", + "typing_Rust_primitives.Integers.mk_usize", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Notations.op_String_Access", + "typing_tok_Rust_primitives.Integers.I32@tok", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "3db2740569f967eb9d2d2dd07d4f35b9" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_rho_2_generic", + 2, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.unsigned", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "07541f77bf680885dbcd515a899371f8" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_rho_3_generic", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_588e8a2db4ba7484c1d6c13b569bd322", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_c43f4af19cc3c79731899455bf108032", + "b2t_def", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.I32", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Libcrux_sha3.Generic_keccak.Mkt_KeccakState", + "data_elim_Libcrux_sha3.Traits.Mkt_KeccakItem", + "data_elim_Rust_primitives.Integers.MkInt", + "data_typing_intro_FStar.Pervasives.Native.Mktuple2@tok", + "equality_tok_Rust_primitives.Integers.I32@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Core_models.Ops.Index.f_index_pre", + "equation_Libcrux_sha3.Generic_keccak.impl_2__rho_3_", + "equation_Libcrux_sha3.Generic_keccak.impl_2__set", + "equation_Libcrux_sha3.Generic_keccak.impl_3", + "equation_Libcrux_sha3.Traits.f_xor_and_rotate", + "equation_Libcrux_sha3.Traits.get_ij", + "equation_Libcrux_sha3.Traits.set_ij", "equation_Prims.nat", + "equation_Prims.pos", "equation_Rust_primitives.Arrays.length", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Arrays.t_Slice", + "equation_Rust_primitives.Hax.Monomorphized_update_at.update_at_usize", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.gt", + "equation_Rust_primitives.Integers.i32", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.max_usize", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_i32", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.mul", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.sz", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "function_token_typing_Rust_primitives.Integers.usize", + "int_inversion", "int_typing", + "interpretation_Tm_abs_1eeff65ff9c3b4718cb125a4d4298f2a", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "interpretation_Tm_abs_70955cb4f9afccd4a1c9959c38bb2c40", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "interpretation_Tm_abs_f60c537567243dee9f91819830879155", + "kinding_FStar.Pervasives.Native.tuple2@tok", + "kinding_Libcrux_sha3.Generic_keccak.t_KeccakState@tok", + "lemma_FStar.Seq.Base.lemma_index_upd1", + "lemma_FStar.Seq.Base.lemma_index_upd2", + "lemma_Rust_primitives.Integers.pow2_values", + "lemma_Rust_primitives.Integers.v_mk_int_lemma", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_Equality", "primitive_Prims.op_GreaterThan", + "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Minus", "primitive_Prims.op_Multiply", + "primitive_Prims.op_Subtraction", + "proj_equation_Core_models.Ops.Index.Mkt_Index_@f_Output", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_1", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_2", + "proj_equation_Libcrux_sha3.Generic_keccak.Mkt_KeccakState_@f_st", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor_and_rotate_pre", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_Output", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Libcrux_sha3.Generic_keccak.Mkt_KeccakState_@f_st", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_160fe7faad9a466b3cae8455bac5be60", + "refinement_interpretation_Tm_refine_21e0277b21b9413896fa7f0b23f8625e", + "refinement_interpretation_Tm_refine_221edc532b512849362f091b0318b99d", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_6cba8b694d7fbf759331b42d86bb8cbd", + "refinement_interpretation_Tm_refine_719b0b6cc298b94bece7f65126216cde", + "refinement_interpretation_Tm_refine_774ba3f728d91ead8ef40be66c9802e5", + "refinement_interpretation_Tm_refine_93cf6a6e8722379491c94f2cfe70c712", + "refinement_interpretation_Tm_refine_97c1e055b7db624f230d5d2c143d20ab", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "refinement_interpretation_Tm_refine_c16bc1b61f58b349bf6fc1c94dcaf83b", + "refinement_interpretation_Tm_refine_d302493db5f45f7ff6b231a718224dc4", + "refinement_interpretation_Tm_refine_e16a4ff0a31703789cc1c1125fc4da02", + "refinement_interpretation_Tm_refine_e477cd5567f25e8e57e00f0185fa1ab0", + "refinement_interpretation_Tm_refine_fd980a4a94cc34052e6e36a3c682afca", + "token_correspondence_Core_models.Ops.Index.f_index", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_xor_and_rotate_pre", + "token_correspondence_Libcrux_sha3.Traits.f_xor_and_rotate", + "typing_FStar.Pervasives.Native.__proj__Mktuple2__item___1", + "typing_FStar.Pervasives.Native.__proj__Mktuple2__item___2", + "typing_FStar.Seq.Base.index", "typing_FStar.Seq.Base.length", + "typing_FStar.Seq.Base.upd", + "typing_Libcrux_sha3.Generic_keccak.__proj__Mkt_KeccakState__item__f_st", + "typing_Libcrux_sha3.Generic_keccak.impl_3", + "typing_Libcrux_sha3.Traits.get_ij", + "typing_Libcrux_sha3.Traits.set_ij", "typing_Prims.pow2", + "typing_Rust_primitives.Arrays.t_Array", + "typing_Rust_primitives.Hax.Monomorphized_update_at.update_at_usize", + "typing_Rust_primitives.Hax.impl__index", + "typing_Rust_primitives.Integers.add", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.minint", + "typing_Rust_primitives.Integers.mk_i32", + "typing_Rust_primitives.Integers.mk_int", + "typing_Rust_primitives.Integers.mul", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Notations.op_String_Access", + "typing_tok_Rust_primitives.Integers.I32@tok", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "f42b62e5adba58220bfaef358ea45a70" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_rho_3_generic", + 2, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.unsigned", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "b23cb7ae0a7ce88166b9e9e1f3cd7b31" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_rho_4_generic", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "Core_models.Ops.Function_interpretation_Tm_arrow_05fe4ff7055e98bccfe80fa62bb6aeaf", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_588e8a2db4ba7484c1d6c13b569bd322", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_c43f4af19cc3c79731899455bf108032", + "b2t_def", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.I32", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Core_models.Ops.Index.Mkt_Index", + "data_elim_Libcrux_sha3.Generic_keccak.Mkt_KeccakState", + "data_elim_Libcrux_sha3.Traits.Mkt_KeccakItem", + "data_elim_Rust_primitives.Integers.MkInt", + "data_typing_intro_FStar.Pervasives.Native.Mktuple2@tok", + "equality_tok_Rust_primitives.Integers.I32@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Core_models.Ops.Index.f_index_pre", + "equation_Libcrux_sha3.Generic_keccak.impl_2__rho_4_", + "equation_Libcrux_sha3.Generic_keccak.impl_2__set", + "equation_Libcrux_sha3.Generic_keccak.impl_3", + "equation_Libcrux_sha3.Traits.f_xor_and_rotate", + "equation_Libcrux_sha3.Traits.get_ij", + "equation_Libcrux_sha3.Traits.set_ij", "equation_Prims.nat", + "equation_Prims.pos", "equation_Rust_primitives.Arrays.length", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Arrays.t_Slice", + "equation_Rust_primitives.Hax.Monomorphized_update_at.update_at_usize", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.gt", + "equation_Rust_primitives.Integers.i32", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.max_usize", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_i32", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.mul", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.sz", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "function_token_typing_Rust_primitives.Integers.usize", + "int_inversion", "int_typing", + "interpretation_Tm_abs_1eeff65ff9c3b4718cb125a4d4298f2a", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "interpretation_Tm_abs_70955cb4f9afccd4a1c9959c38bb2c40", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "interpretation_Tm_abs_f60c537567243dee9f91819830879155", + "kinding_FStar.Pervasives.Native.tuple2@tok", + "kinding_Libcrux_sha3.Generic_keccak.t_KeccakState@tok", + "lemma_FStar.Seq.Base.lemma_index_upd1", + "lemma_FStar.Seq.Base.lemma_index_upd2", + "lemma_Rust_primitives.Integers.pow2_values", + "lemma_Rust_primitives.Integers.v_mk_int_lemma", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_Equality", "primitive_Prims.op_GreaterThan", + "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Minus", "primitive_Prims.op_Multiply", + "primitive_Prims.op_Subtraction", + "proj_equation_Core_models.Ops.Index.Mkt_Index_@f_Output", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_1", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_2", + "proj_equation_Libcrux_sha3.Generic_keccak.Mkt_KeccakState_@f_st", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor_and_rotate_pre", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_Output", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Libcrux_sha3.Generic_keccak.Mkt_KeccakState_@f_st", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_160fe7faad9a466b3cae8455bac5be60", + "refinement_interpretation_Tm_refine_21e0277b21b9413896fa7f0b23f8625e", + "refinement_interpretation_Tm_refine_221edc532b512849362f091b0318b99d", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_6cba8b694d7fbf759331b42d86bb8cbd", + "refinement_interpretation_Tm_refine_719b0b6cc298b94bece7f65126216cde", + "refinement_interpretation_Tm_refine_774ba3f728d91ead8ef40be66c9802e5", + "refinement_interpretation_Tm_refine_77939974e8de44bb9a3ae869c6571119", + "refinement_interpretation_Tm_refine_93cf6a6e8722379491c94f2cfe70c712", + "refinement_interpretation_Tm_refine_93f6c203d9fe816a13fdcc20465525c3", + "refinement_interpretation_Tm_refine_97c1e055b7db624f230d5d2c143d20ab", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "refinement_interpretation_Tm_refine_c16bc1b61f58b349bf6fc1c94dcaf83b", + "refinement_interpretation_Tm_refine_d302493db5f45f7ff6b231a718224dc4", + "refinement_interpretation_Tm_refine_e16a4ff0a31703789cc1c1125fc4da02", + "refinement_interpretation_Tm_refine_fd980a4a94cc34052e6e36a3c682afca", + "token_correspondence_Core_models.Ops.Index.f_index", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_xor_and_rotate_pre", + "token_correspondence_Libcrux_sha3.Traits.f_xor_and_rotate", + "typing_FStar.Pervasives.Native.__proj__Mktuple2__item___1", + "typing_FStar.Pervasives.Native.__proj__Mktuple2__item___2", + "typing_FStar.Seq.Base.index", "typing_FStar.Seq.Base.length", + "typing_FStar.Seq.Base.upd", + "typing_Libcrux_sha3.Generic_keccak.__proj__Mkt_KeccakState__item__f_st", + "typing_Libcrux_sha3.Generic_keccak.impl_2__set", + "typing_Libcrux_sha3.Generic_keccak.impl_3", + "typing_Libcrux_sha3.Traits.get_ij", + "typing_Libcrux_sha3.Traits.set_ij", "typing_Prims.pow2", + "typing_Rust_primitives.Arrays.t_Array", + "typing_Rust_primitives.Hax.Monomorphized_update_at.update_at_usize", + "typing_Rust_primitives.Hax.impl__index", + "typing_Rust_primitives.Integers.add", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.minint", + "typing_Rust_primitives.Integers.mk_i32", + "typing_Rust_primitives.Integers.mk_int", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Notations.op_String_Access", + "typing_tok_Rust_primitives.Integers.I32@tok", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "8d80cc3c740041199273d76604565112" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_rho_4_generic", + 2, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.unsigned", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "88d5a03afc955273337141eeff61d12f" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_rho_unfold_generic", + 1, + 0, + 1, + [ "@query", "equation_Libcrux_sha3.Generic_keccak.impl_2__rho" ], + 0, + "2a283af55ca81fc2854edb94f466e1a9" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_rho_unfold_generic", + 2, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.unsigned", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "82fec501e2af44e920b531c109b6d121" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_pi_0_generic", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "Core_models.Ops.Function_interpretation_Tm_arrow_05fe4ff7055e98bccfe80fa62bb6aeaf", + "FStar.Seq.Base_pretyping_aec2ec0359b5151fd30ba679a2daadcd", + "b2t_def", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Core_models.Ops.Index.Mkt_Index", + "data_elim_Libcrux_sha3.Generic_keccak.Mkt_KeccakState", + "data_elim_Rust_primitives.Integers.MkInt", + "data_typing_intro_FStar.Pervasives.Native.Mktuple2@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Core_models.Ops.Index.f_index_pre", + "equation_Libcrux_sha3.Generic_keccak.impl_2__pi_0_", + "equation_Libcrux_sha3.Generic_keccak.impl_2__set", + "equation_Libcrux_sha3.Generic_keccak.impl_3", + "equation_Libcrux_sha3.Traits.get_ij", + "equation_Libcrux_sha3.Traits.set_ij", "equation_Prims.nat", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.Monomorphized_update_at.update_at_usize", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.mul", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "function_token_typing_Rust_primitives.Integers.usize", + "int_inversion", "int_typing", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "interpretation_Tm_abs_70955cb4f9afccd4a1c9959c38bb2c40", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "interpretation_Tm_abs_f60c537567243dee9f91819830879155", + "kinding_FStar.Pervasives.Native.tuple2@tok", + "kinding_Libcrux_sha3.Generic_keccak.t_KeccakState@tok", + "lemma_FStar.Seq.Base.lemma_index_upd1", + "lemma_FStar.Seq.Base.lemma_index_upd2", + "lemma_Rust_primitives.Integers.pow2_values", + "lemma_Rust_primitives.Integers.v_mk_int_lemma", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Multiply", "primitive_Prims.op_Subtraction", + "proj_equation_Core_models.Ops.Index.Mkt_Index_@f_Output", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_1", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_2", + "proj_equation_Libcrux_sha3.Generic_keccak.Mkt_KeccakState_@f_st", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_Output", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Libcrux_sha3.Generic_keccak.Mkt_KeccakState_@f_st", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_160fe7faad9a466b3cae8455bac5be60", + "refinement_interpretation_Tm_refine_21e0277b21b9413896fa7f0b23f8625e", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_6cba8b694d7fbf759331b42d86bb8cbd", + "refinement_interpretation_Tm_refine_93f6c203d9fe816a13fdcc20465525c3", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "refinement_interpretation_Tm_refine_c16bc1b61f58b349bf6fc1c94dcaf83b", + "refinement_interpretation_Tm_refine_d302493db5f45f7ff6b231a718224dc4", + "refinement_interpretation_Tm_refine_e16a4ff0a31703789cc1c1125fc4da02", + "token_correspondence_Core_models.Ops.Index.f_index", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "typing_FStar.Seq.Base.upd", + "typing_Libcrux_sha3.Generic_keccak.__proj__Mkt_KeccakState__item__f_st", + "typing_Libcrux_sha3.Generic_keccak.impl_3", + "typing_Libcrux_sha3.Traits.get_ij", + "typing_Libcrux_sha3.Traits.set_ij", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.minint", + "typing_Rust_primitives.Integers.mk_int", + "typing_Rust_primitives.Integers.mk_usize", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Notations.op_String_Access", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "ed54f1b91d358f606ad5a813f39e43d5" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_pi_1_generic", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "Core_models.Ops.Function_interpretation_Tm_arrow_05fe4ff7055e98bccfe80fa62bb6aeaf", + "FStar.Seq.Base_pretyping_aec2ec0359b5151fd30ba679a2daadcd", + "Prims_pretyping_ae567c2fb75be05905677af440075565", "b2t_def", + "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Core_models.Ops.Index.Mkt_Index", + "data_elim_Libcrux_sha3.Generic_keccak.Mkt_KeccakState", + "data_elim_Rust_primitives.Integers.MkInt", + "data_typing_intro_FStar.Pervasives.Native.Mktuple2@tok", + "data_typing_intro_Rust_primitives.Integers.MkInt@tok", + "data_typing_intro_Rust_primitives.Integers.USIZE@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Core_models.Ops.Index.f_index_pre", + "equation_Libcrux_sha3.Generic_keccak.impl_2__pi_1_", + "equation_Libcrux_sha3.Generic_keccak.impl_2__set", + "equation_Libcrux_sha3.Generic_keccak.impl_3", + "equation_Libcrux_sha3.Traits.get_ij", + "equation_Libcrux_sha3.Traits.set_ij", "equation_Prims.nat", + "equation_Rust_primitives.Arrays.length", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Arrays.t_Slice", + "equation_Rust_primitives.Hax.Monomorphized_update_at.update_at_usize", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.max_usize", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.mul", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.sz", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "function_token_typing_Prims.__cache_version_number__", + "function_token_typing_Rust_primitives.Integers.usize", + "int_inversion", "int_typing", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "interpretation_Tm_abs_70955cb4f9afccd4a1c9959c38bb2c40", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "interpretation_Tm_abs_f60c537567243dee9f91819830879155", + "lemma_FStar.Seq.Base.lemma_index_upd1", + "lemma_FStar.Seq.Base.lemma_index_upd2", + "lemma_Rust_primitives.Integers.pow2_values", + "lemma_Rust_primitives.Integers.v_mk_int_lemma", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Multiply", "primitive_Prims.op_Subtraction", + "proj_equation_Core_models.Ops.Index.Mkt_Index_@f_Output", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_1", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_2", + "proj_equation_Libcrux_sha3.Generic_keccak.Mkt_KeccakState_@f_st", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_Output", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Libcrux_sha3.Generic_keccak.Mkt_KeccakState_@f_st", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_160fe7faad9a466b3cae8455bac5be60", + "refinement_interpretation_Tm_refine_21e0277b21b9413896fa7f0b23f8625e", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_6cba8b694d7fbf759331b42d86bb8cbd", + "refinement_interpretation_Tm_refine_93cf6a6e8722379491c94f2cfe70c712", + "refinement_interpretation_Tm_refine_93f6c203d9fe816a13fdcc20465525c3", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "refinement_interpretation_Tm_refine_d302493db5f45f7ff6b231a718224dc4", + "refinement_interpretation_Tm_refine_fd980a4a94cc34052e6e36a3c682afca", + "token_correspondence_Core_models.Ops.Index.f_index", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "typing_FStar.Seq.Base.upd", + "typing_Libcrux_sha3.Generic_keccak.__proj__Mkt_KeccakState__item__f_st", + "typing_Libcrux_sha3.Generic_keccak.impl_3", + "typing_Libcrux_sha3.Traits.set_ij", + "typing_Rust_primitives.Hax.Monomorphized_update_at.update_at_usize", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.minint", + "typing_Rust_primitives.Integers.mk_int", + "typing_Rust_primitives.Integers.mk_usize", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "eb169fa794651647b651f0b8f3686e26" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_pi_2_generic", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "Core_models.Ops.Function_interpretation_Tm_arrow_05fe4ff7055e98bccfe80fa62bb6aeaf", + "FStar.Seq.Base_pretyping_aec2ec0359b5151fd30ba679a2daadcd", + "b2t_def", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Core_models.Ops.Index.Mkt_Index", + "data_elim_Libcrux_sha3.Generic_keccak.Mkt_KeccakState", + "data_elim_Rust_primitives.Integers.MkInt", + "data_typing_intro_FStar.Pervasives.Native.Mktuple2@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Core_models.Ops.Index.f_index_pre", + "equation_Libcrux_sha3.Generic_keccak.impl_2__pi_2_", + "equation_Libcrux_sha3.Generic_keccak.impl_2__set", + "equation_Libcrux_sha3.Generic_keccak.impl_3", + "equation_Libcrux_sha3.Traits.get_ij", + "equation_Libcrux_sha3.Traits.set_ij", "equation_Prims.nat", + "equation_Rust_primitives.Arrays.length", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Arrays.t_Slice", + "equation_Rust_primitives.Hax.Monomorphized_update_at.update_at_usize", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.max_usize", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.mul", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.sz", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "function_token_typing_Rust_primitives.Integers.usize", + "int_inversion", "int_typing", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "interpretation_Tm_abs_70955cb4f9afccd4a1c9959c38bb2c40", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "interpretation_Tm_abs_f60c537567243dee9f91819830879155", + "lemma_FStar.Seq.Base.lemma_index_upd1", + "lemma_FStar.Seq.Base.lemma_index_upd2", + "lemma_Rust_primitives.Integers.pow2_values", + "lemma_Rust_primitives.Integers.v_mk_int_lemma", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Multiply", "primitive_Prims.op_Subtraction", + "proj_equation_Core_models.Ops.Index.Mkt_Index_@f_Output", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_1", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_2", + "proj_equation_Libcrux_sha3.Generic_keccak.Mkt_KeccakState_@f_st", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_Output", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Libcrux_sha3.Generic_keccak.Mkt_KeccakState_@f_st", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_160fe7faad9a466b3cae8455bac5be60", + "refinement_interpretation_Tm_refine_21e0277b21b9413896fa7f0b23f8625e", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_6cba8b694d7fbf759331b42d86bb8cbd", + "refinement_interpretation_Tm_refine_93cf6a6e8722379491c94f2cfe70c712", + "refinement_interpretation_Tm_refine_93f6c203d9fe816a13fdcc20465525c3", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "refinement_interpretation_Tm_refine_d302493db5f45f7ff6b231a718224dc4", + "refinement_interpretation_Tm_refine_fd980a4a94cc34052e6e36a3c682afca", + "token_correspondence_Core_models.Ops.Index.f_index", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "typing_FStar.Seq.Base.upd", + "typing_Libcrux_sha3.Generic_keccak.__proj__Mkt_KeccakState__item__f_st", + "typing_Libcrux_sha3.Generic_keccak.impl_3", + "typing_Libcrux_sha3.Traits.set_ij", + "typing_Rust_primitives.Hax.Monomorphized_update_at.update_at_usize", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.minint", + "typing_Rust_primitives.Integers.mk_int", + "typing_Rust_primitives.Integers.mk_usize", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "3f70c98d891a9fd3cce0d6338f4a02e1" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_pi_3_generic", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "Core_models.Ops.Function_interpretation_Tm_arrow_05fe4ff7055e98bccfe80fa62bb6aeaf", + "FStar.Seq.Base_pretyping_aec2ec0359b5151fd30ba679a2daadcd", + "Prims_pretyping_ae567c2fb75be05905677af440075565", "b2t_def", + "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Core_models.Ops.Index.Mkt_Index", + "data_elim_Libcrux_sha3.Generic_keccak.Mkt_KeccakState", + "data_elim_Rust_primitives.Integers.MkInt", + "data_typing_intro_FStar.Pervasives.Native.Mktuple2@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Core_models.Ops.Index.f_index_pre", + "equation_Libcrux_sha3.Generic_keccak.impl_2__pi_3_", + "equation_Libcrux_sha3.Generic_keccak.impl_2__set", + "equation_Libcrux_sha3.Generic_keccak.impl_3", + "equation_Libcrux_sha3.Traits.get_ij", + "equation_Libcrux_sha3.Traits.set_ij", "equation_Prims.nat", + "equation_Rust_primitives.Arrays.length", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Arrays.t_Slice", + "equation_Rust_primitives.Hax.Monomorphized_update_at.update_at_usize", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.max_usize", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.mul", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.sz", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "function_token_typing_Prims.__cache_version_number__", + "function_token_typing_Rust_primitives.Integers.usize", + "int_inversion", "int_typing", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "interpretation_Tm_abs_70955cb4f9afccd4a1c9959c38bb2c40", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "interpretation_Tm_abs_f60c537567243dee9f91819830879155", + "lemma_FStar.Seq.Base.lemma_index_upd1", + "lemma_FStar.Seq.Base.lemma_index_upd2", + "lemma_Rust_primitives.Integers.pow2_values", + "lemma_Rust_primitives.Integers.v_mk_int_lemma", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Multiply", "primitive_Prims.op_Subtraction", + "proj_equation_Core_models.Ops.Index.Mkt_Index_@f_Output", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_1", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_2", + "proj_equation_Libcrux_sha3.Generic_keccak.Mkt_KeccakState_@f_st", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_Output", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Libcrux_sha3.Generic_keccak.Mkt_KeccakState_@f_st", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_160fe7faad9a466b3cae8455bac5be60", + "refinement_interpretation_Tm_refine_21e0277b21b9413896fa7f0b23f8625e", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_6cba8b694d7fbf759331b42d86bb8cbd", + "refinement_interpretation_Tm_refine_93cf6a6e8722379491c94f2cfe70c712", + "refinement_interpretation_Tm_refine_93f6c203d9fe816a13fdcc20465525c3", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "refinement_interpretation_Tm_refine_d302493db5f45f7ff6b231a718224dc4", + "refinement_interpretation_Tm_refine_fd980a4a94cc34052e6e36a3c682afca", + "token_correspondence_Core_models.Ops.Index.f_index", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "typing_FStar.Seq.Base.upd", + "typing_Libcrux_sha3.Generic_keccak.__proj__Mkt_KeccakState__item__f_st", + "typing_Libcrux_sha3.Generic_keccak.impl_3", + "typing_Libcrux_sha3.Traits.set_ij", + "typing_Rust_primitives.Hax.Monomorphized_update_at.update_at_usize", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.lt", + "typing_Rust_primitives.Integers.minint", + "typing_Rust_primitives.Integers.mk_int", + "typing_Rust_primitives.Integers.mk_usize", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "4cf8f70fc40c79912ccae6c5486670f4" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_pi_4_generic", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "Core_models.Ops.Function_interpretation_Tm_arrow_05fe4ff7055e98bccfe80fa62bb6aeaf", + "FStar.Seq.Base_pretyping_aec2ec0359b5151fd30ba679a2daadcd", + "Prims_pretyping_ae567c2fb75be05905677af440075565", "b2t_def", + "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Core_models.Ops.Index.Mkt_Index", + "data_elim_Libcrux_sha3.Generic_keccak.Mkt_KeccakState", + "data_elim_Rust_primitives.Integers.MkInt", + "data_typing_intro_FStar.Pervasives.Native.Mktuple2@tok", + "data_typing_intro_Rust_primitives.Integers.MkInt@tok", + "data_typing_intro_Rust_primitives.Integers.USIZE@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Core_models.Ops.Index.f_index_pre", + "equation_Libcrux_sha3.Generic_keccak.impl_2__pi_4_", + "equation_Libcrux_sha3.Generic_keccak.impl_2__set", + "equation_Libcrux_sha3.Generic_keccak.impl_3", + "equation_Libcrux_sha3.Traits.get_ij", + "equation_Libcrux_sha3.Traits.set_ij", "equation_Prims.nat", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.Monomorphized_update_at.update_at_usize", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.mul", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "function_token_typing_Prims.__cache_version_number__", + "function_token_typing_Rust_primitives.Integers.usize", + "int_inversion", "int_typing", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "interpretation_Tm_abs_70955cb4f9afccd4a1c9959c38bb2c40", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "interpretation_Tm_abs_f60c537567243dee9f91819830879155", + "kinding_FStar.Pervasives.Native.tuple2@tok", + "kinding_Libcrux_sha3.Generic_keccak.t_KeccakState@tok", + "lemma_FStar.Seq.Base.lemma_index_upd1", + "lemma_FStar.Seq.Base.lemma_index_upd2", + "lemma_Rust_primitives.Integers.pow2_values", + "lemma_Rust_primitives.Integers.v_mk_int_lemma", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Multiply", "primitive_Prims.op_Subtraction", + "proj_equation_Core_models.Ops.Index.Mkt_Index_@f_Output", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_1", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_2", + "proj_equation_Libcrux_sha3.Generic_keccak.Mkt_KeccakState_@f_st", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_Output", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Libcrux_sha3.Generic_keccak.Mkt_KeccakState_@f_st", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_160fe7faad9a466b3cae8455bac5be60", + "refinement_interpretation_Tm_refine_21e0277b21b9413896fa7f0b23f8625e", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_6cba8b694d7fbf759331b42d86bb8cbd", + "refinement_interpretation_Tm_refine_93f6c203d9fe816a13fdcc20465525c3", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "refinement_interpretation_Tm_refine_d302493db5f45f7ff6b231a718224dc4", + "refinement_interpretation_Tm_refine_e16a4ff0a31703789cc1c1125fc4da02", + "token_correspondence_Core_models.Ops.Index.f_index", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "typing_FStar.Seq.Base.upd", + "typing_Libcrux_sha3.Generic_keccak.__proj__Mkt_KeccakState__item__f_st", + "typing_Libcrux_sha3.Generic_keccak.impl_3", + "typing_Libcrux_sha3.Traits.set_ij", + "typing_Rust_primitives.Hax.impl__index", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.minint", + "typing_Rust_primitives.Integers.mk_int", + "typing_Rust_primitives.Integers.mk_usize", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Notations.op_String_Access", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "c0888ca94ceefc6d9cbd419db2453428" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_pi_unfold_generic", + 1, + 0, + 1, + [ "@query", "equation_Libcrux_sha3.Generic_keccak.impl_2__pi" ], + 0, + "bdb4c03457ff0d1b0a422942efbe5833" + ], + [ + "EquivImplSpec.Keccakf.Generic.spec_c", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.U64", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.U64@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", "int_inversion", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThan", + "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_847938addde8752e345bfeed3da70aa7", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.U64@tok", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "66ea9d64757025d09d6c331ff2ce6772" + ], + [ + "EquivImplSpec.Keccakf.Generic.spec_c", + 2, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.unsigned", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "3555722813e817d4963eb4a26e1a1067" + ], + [ + "EquivImplSpec.Keccakf.Generic.spec_d", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.U32", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.U32@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.mod", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Modulus", "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_847938addde8752e345bfeed3da70aa7", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.U32@tok", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "d1d279c951952e8e0de080620f0ab357" + ], + [ + "EquivImplSpec.Keccakf.Generic.spec_d", + 2, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.unsigned", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "f77b6608a31cdae9ca55875aa8685eb5" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_rho_offsets_values", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_FStar.List.Tot.Base.index.fuel_instrumented", + "@fuel_correspondence_FStar.List.Tot.Base.length.fuel_instrumented", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "b2t_def", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.U32", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Rust_primitives.Integers.MkInt", + "equality_tok_Rust_primitives.Integers.U32@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Core_models.Ops.Index.f_index_pre", + "equation_FStar.Seq.Base.op_At_Bar", + "equation_Hacspec_sha3.Keccak_f.v_RHO_OFFSETS", "equation_Prims.nat", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.u32", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "function_token_typing_Rust_primitives.Integers.u32", + "int_inversion", "int_typing", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "l_quant_interp_b2752ceb37bb61dbf3d6d8fddf081dae", + "lemma_FStar.Seq.Base.lemma_create_len", + "lemma_FStar.Seq.Base.lemma_len_append", + "lemma_FStar.Seq.Base.lemma_seq_of_list_cons", + "lemma_FStar.Seq.Properties.lemma_seq_of_list_index", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_160fe7faad9a466b3cae8455bac5be60", + "refinement_interpretation_Tm_refine_21e0277b21b9413896fa7f0b23f8625e", + "refinement_interpretation_Tm_refine_4aa966b05f915e7ec1e3d92a6793a1c3", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "refinement_interpretation_Tm_refine_b21f98b6ca50013c6e539e770c013c08", + "refinement_interpretation_Tm_refine_e23433c9e51173c1c32527f3f5113a53", + "token_correspondence_Core_models.Ops.Index.f_index", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "typing_FStar.Seq.Base.create", "typing_FStar.Seq.Base.index", + "typing_FStar.Seq.Base.length", "typing_FStar.Seq.Base.seq_of_list", + "typing_Hacspec_sha3.Keccak_f.v_RHO_OFFSETS", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.minint", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.U32@tok", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "70ab0fc8326c4f82b5bca5f98675f7d7" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_round_constants_equal", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "b2t_def", "bool_inversion", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Rust_primitives.Integers.MkInt", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index_pre", + "equation_Hacspec_sha3.Keccak_f.v_ROUND_CONSTANTS", + "equation_Libcrux_sha3.Generic_keccak.Constants.v_ROUNDCONSTANTS", + "equation_Prims.nat", "equation_Prims.squash", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "int_inversion", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "refinement_interpretation_Tm_refine_2de20c066034c13bf76e9c0b94f4806c", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "78739c528df004c33b4673f9f3d1cf2f" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_rho_theta_spec", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "Core_models.Ops.Function_interpretation_Tm_arrow_05fe4ff7055e98bccfe80fa62bb6aeaf", + "Hacspec_sha3.Keccak_f_interpretation_Tm_arrow_6810ffd7fedc9f5daa2182e9ac575b71", + "Hacspec_sha3.Keccak_f_interpretation_Tm_arrow_e93c7251bbd23bac703ec14f914d1fa8", + "Hacspec_sha3_interpretation_Tm_arrow_bf71e124d232d47c997d72c21e536b9a", + "Prims_pretyping_ae567c2fb75be05905677af440075565", + "Rust_primitives.Arrays_interpretation_Tm_arrow_0d263c675f2f6a422e85e8ffa504d5e2", + "b2t_def", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.U32", + "constructor_distinct_Rust_primitives.Integers.U64", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Core_models.Ops.Index.Mkt_Index", + "data_elim_Rust_primitives.Integers.MkInt", + "equality_tok_Rust_primitives.Integers.U32@tok", + "equality_tok_Rust_primitives.Integers.U64@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Core_models.Ops.Index.f_index_pre", + "equation_EquivImplSpec.Keccakf.Generic.rotl_spec", + "equation_EquivImplSpec.Keccakf.Generic.spec_c", + "equation_EquivImplSpec.Keccakf.Generic.spec_d", + "equation_EquivImplSpec.Keccakf.Generic.spec_state", + "equation_EquivImplSpec.Keccakf.SpecRounds.spec_state", + "equation_Hacspec_sha3.Keccak_f.rho", + "equation_Hacspec_sha3.Keccak_f.theta", + "equation_Hacspec_sha3.Keccak_f.v_RHO_OFFSETS", + "equation_Hacspec_sha3.createi", "equation_Prims.nat", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_u32", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.mod", + "equation_Rust_primitives.Integers.mul", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.sub", + "equation_Rust_primitives.Integers.u32", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.u64_inttype", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "function_token_typing_Prims.__cache_version_number__", + "function_token_typing_Rust_primitives.Integers.u32", + "function_token_typing_Rust_primitives.Integers.u64", + "int_inversion", "int_typing", + "interpretation_Tm_abs_156664720616b16cda2f8a5582c3f458", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "interpretation_Tm_abs_6ec269a97cc9e7124e00f9ceda15e72d", + "interpretation_Tm_abs_85d07545268a45d0cc606e35f7a0380e", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_b8b8ba41abfe34636285d67ee049435d", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "kinding_Tm_arrow_d28fde83d99b9fd411f0baa86bc882a5", + "lemma_Hacspec_sha3.createi_lemma", + "lemma_Rust_primitives.Integers.pow2_values", + "lemma_Rust_primitives.Integers.v_mk_int_lemma", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_Equality", + "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Modulus", "primitive_Prims.op_Multiply", + "primitive_Prims.op_Subtraction", + "proj_equation_Core_models.Ops.Index.Mkt_Index_@f_Output", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_Output", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_21e0277b21b9413896fa7f0b23f8625e", + "refinement_interpretation_Tm_refine_221edc532b512849362f091b0318b99d", + "refinement_interpretation_Tm_refine_34fdf9130d622ae6fab26403fbb8e0fc", + "refinement_interpretation_Tm_refine_414b3103e63acaca337a620ee42bb932", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_6af5dd912a49c5aa2d10fa9f5a5534c2", + "refinement_interpretation_Tm_refine_847938addde8752e345bfeed3da70aa7", + "refinement_interpretation_Tm_refine_93f6c203d9fe816a13fdcc20465525c3", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "refinement_interpretation_Tm_refine_c525f4bc3aa418afe0bd65cc4d0f6cd8", + "refinement_interpretation_Tm_refine_eea4a7aaf0d9fd792b6bd561042bfd5e", + "token_correspondence_Core_models.Ops.Index.f_index", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "typing_Hacspec_sha3.Keccak_f.v_RHO_OFFSETS", + "typing_Hacspec_sha3.createi", + "typing_Rust_primitives.Arrays.createi", + "typing_Rust_primitives.Hax.impl__index", + "typing_Rust_primitives.Integers.__proj__MkInt__item___0", + "typing_Rust_primitives.Integers.add", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.minint", + "typing_Rust_primitives.Integers.mk_int", + "typing_Rust_primitives.Integers.mk_usize", + "typing_Rust_primitives.Integers.mod", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_Tm_abs_156664720616b16cda2f8a5582c3f458", + "typing_Tm_abs_6ec269a97cc9e7124e00f9ceda15e72d", + "typing_Tm_abs_85d07545268a45d0cc606e35f7a0380e", + "typing_Tm_abs_b8b8ba41abfe34636285d67ee049435d", + "typing_tok_Rust_primitives.Integers.U32@tok", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "af877bdfa1cc0a48809f158348528b41" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_pi_spec", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "EquivImplSpec.Keccakf.Generic_interpretation_Tm_arrow_8b678892006cf2d6c10ea41e3d2d679c", + "Hacspec_sha3.Keccak_f_interpretation_Tm_arrow_6810ffd7fedc9f5daa2182e9ac575b71", + "Hacspec_sha3_interpretation_Tm_arrow_bf71e124d232d47c997d72c21e536b9a", + "Rust_primitives.Arrays_interpretation_Tm_arrow_0d263c675f2f6a422e85e8ffa504d5e2", + "b2t_def", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Rust_primitives.Integers.MkInt", + "equality_tok_Rust_primitives.Integers.U64@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Core_models.Ops.Index.f_index_pre", + "equation_EquivImplSpec.Keccakf.SpecRounds.spec_state", + "equation_Hacspec_sha3.Keccak_f.get", + "equation_Hacspec_sha3.Keccak_f.pi", "equation_Prims.nat", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.div", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.mod", + "equation_Rust_primitives.Integers.mul", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "function_token_typing_Rust_primitives.Integers.u64", + "int_inversion", "int_typing", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_9f09d8eb6e5725335910d11b1c54f02a", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "interpretation_Tm_abs_f6fde5dab8824093f0d8b9a9473d0bd9", + "kinding_Tm_arrow_d28fde83d99b9fd411f0baa86bc882a5", + "lemma_Hacspec_sha3.createi_lemma", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_Division", + "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Modulus", "primitive_Prims.op_Multiply", + "primitive_Prims.op_Subtraction", + "proj_equation_Core_models.Ops.Index.Mkt_Index_@f_Output", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_Output", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_34fdf9130d622ae6fab26403fbb8e0fc", + "refinement_interpretation_Tm_refine_414b3103e63acaca337a620ee42bb932", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_6af5dd912a49c5aa2d10fa9f5a5534c2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_a8076bead62d5007a50ce0971afcd85d", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "refinement_interpretation_Tm_refine_c525f4bc3aa418afe0bd65cc4d0f6cd8", + "refinement_interpretation_Tm_refine_eea4a7aaf0d9fd792b6bd561042bfd5e", + "token_correspondence_Core_models.Ops.Index.f_index", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "typing_Rust_primitives.Arrays.createi", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.lt", + "typing_Rust_primitives.Integers.mod", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Tm_abs_9f09d8eb6e5725335910d11b1c54f02a", + "typing_Tm_abs_f6fde5dab8824093f0d8b9a9473d0bd9", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "785f8d1d688c0c12a49d8a0e89dd3dde" + ], + [ + "EquivImplSpec.Keccakf.Generic.d_matches_spec", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "b2t_def", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.U32@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index_pre", "equation_Prims.nat", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_u32", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "d94412e80b77d72b4dd57c7d22a954d8" + ], + [ + "EquivImplSpec.Keccakf.Generic.d_matches_spec", + 2, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.unsigned", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "311ace333b246953b6c36e15b8c650b5" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_extract_lane", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "Core_models.Ops.Function_interpretation_Tm_arrow_05fe4ff7055e98bccfe80fa62bb6aeaf", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_14fb90547f351ab07ca712b900f4aa9c", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_1cea0b54efde622bbe567dae4f0b833f", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_277be3292b03d320a19b8fc80d9e10d9", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_7c0c18ef2fc7daeb81e1f50870cc56bb", + "Prims_pretyping_ae567c2fb75be05905677af440075565", "b2t_def", + "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.U64", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Core_models.Ops.Index.Mkt_Index", + "data_elim_Libcrux_sha3.Traits.Mkt_KeccakItem", + "data_elim_Prims.Cons", "data_typing_intro_Prims.Cons@tok", + "data_typing_intro_Prims.Nil@tok", + "equality_tok_Rust_primitives.Integers.U32@tok", + "equality_tok_Rust_primitives.Integers.U64@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Core_models.Ops.Index.f_index_pre", + "equation_EquivImplSpec.Keccakf.Generic.d_matches_spec", + "equation_EquivImplSpec.Keccakf.Generic.spec_c", + "equation_EquivImplSpec.Keccakf.Generic.spec_d", + "equation_FStar.Seq.Base.op_At_Bar", + "equation_Hacspec_sha3.Keccak_f.get", + "equation_Libcrux_sha3.Generic_keccak.impl_2__theta", + "equation_Libcrux_sha3.Generic_keccak.impl_3", + "equation_Libcrux_sha3.Traits.f_rotate_left1_and_xor", + "equation_Libcrux_sha3.Traits.f_xor5", + "equation_Libcrux_sha3.Traits.get_ij", "equation_Prims.nat", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_u32", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.mod", + "equation_Rust_primitives.Integers.mul", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.sub", + "equation_Rust_primitives.Integers.u64_inttype", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_EquivImplSpec.Keccakf.Generic.lane_correctness", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "function_token_typing_Prims.__cache_version_number__", + "int_inversion", "int_typing", + "interpretation_Tm_abs_102f42c4ed9c78eb18badb9265620e17", + "interpretation_Tm_abs_44d78164ecd3ae1d873768fc71c8c2e4", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "interpretation_Tm_abs_70955cb4f9afccd4a1c9959c38bb2c40", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "lemma_EquivImplSpec.Keccakf.Generic.lemma_extract_lane_index", + "lemma_FStar.Seq.Base.lemma_create_len", + "lemma_FStar.Seq.Base.lemma_len_append", + "lemma_FStar.Seq.Base.lemma_seq_of_list_cons", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_Equality", + "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Modulus", "primitive_Prims.op_Multiply", + "primitive_Prims.op_Subtraction", + "proj_equation_Core_models.Ops.Index.Mkt_Index_@f_Output", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_1", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_2", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor5_post", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor5_pre", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_Output", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_160fe7faad9a466b3cae8455bac5be60", + "refinement_interpretation_Tm_refine_1e174b8c76a3e29ed16766cf8486aae6", + "refinement_interpretation_Tm_refine_21e0277b21b9413896fa7f0b23f8625e", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_6af5dd912a49c5aa2d10fa9f5a5534c2", + "refinement_interpretation_Tm_refine_93f6c203d9fe816a13fdcc20465525c3", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "refinement_interpretation_Tm_refine_b21f98b6ca50013c6e539e770c013c08", + "refinement_interpretation_Tm_refine_c16bc1b61f58b349bf6fc1c94dcaf83b", + "refinement_interpretation_Tm_refine_c525f4bc3aa418afe0bd65cc4d0f6cd8", + "refinement_interpretation_Tm_refine_e263604a64d343fa5112de970172906b", + "token_correspondence_Core_models.Ops.Index.f_index", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_xor5_pre", + "token_correspondence_Libcrux_sha3.Traits.f_rotate_left1_and_xor", + "token_correspondence_Libcrux_sha3.Traits.f_xor5", + "typing_FStar.Seq.Base.create", "typing_FStar.Seq.Base.index", + "typing_FStar.Seq.Base.length", "typing_FStar.Seq.Base.op_At_Bar", + "typing_FStar.Seq.Base.seq_of_list", + "typing_Libcrux_sha3.Traits.get_ij", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.mod", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "c26b728f228a1ce05eb53553ad099d56" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_rho_0_extract_lane", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "Prims_pretyping_ae567c2fb75be05905677af440075565", + "Rust_primitives_interpretation_Tm_arrow_814388202aec1fb7483132389195bf0b", + "b2t_def", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.I32", + "constructor_distinct_Rust_primitives.Integers.U32", + "constructor_distinct_Rust_primitives.Integers.U64", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.I32@tok", + "equality_tok_Rust_primitives.Integers.U32@tok", + "equality_tok_Rust_primitives.Integers.U64@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index_pre", + "equation_EquivImplSpec.Keccakf.Generic.rotl_spec", + "equation_EquivImplSpec.Keccakf.SpecRounds.spec_state", + "equation_Prims.nat", "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.cast_mod", + "equation_Rust_primitives.Integers.gt", + "equation_Rust_primitives.Integers.i32", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_i32", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_u32", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.modulus", + "equation_Rust_primitives.Integers.mul", + "equation_Rust_primitives.Integers.op_At_Percent_Dot", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.u32", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.u64_inttype", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.cast", + "equation_Rust_primitives.cast_tc_integers", + "fuel_guarded_inversion_EquivImplSpec.Keccakf.Generic.lane_correctness", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "function_token_typing_Prims.__cache_version_number__", + "int_inversion", "int_typing", + "interpretation_Tm_abs_4e41eaf5703de6128b17c2c81e94b989", + "interpretation_Tm_abs_9b420abd7c3e11c07b133e6053abbd21", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "lemma_EquivImplSpec.Keccakf.Generic.lemma_extract_lane_index", + "lemma_Rust_primitives.Integers.pow2_values", + "lemma_Rust_primitives.Integers.v_mk_int_lemma", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_Equality", "primitive_Prims.op_GreaterThan", + "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Minus", "primitive_Prims.op_Modulus", + "primitive_Prims.op_Multiply", "primitive_Prims.op_Subtraction", + "proj_equation_Libcrux_sha3.Generic_keccak.Mkt_KeccakState_@f_st", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_Rust_primitives.Mkcast_tc_@cast", + "refinement_interpretation_Tm_refine_221edc532b512849362f091b0318b99d", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_6af5dd912a49c5aa2d10fa9f5a5534c2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "refinement_interpretation_Tm_refine_e477cd5567f25e8e57e00f0185fa1ab0", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "token_correspondence_Rust_primitives.cast", + "typing_Libcrux_sha3.Generic_keccak.__proj__Mkt_KeccakState__item__f_st", + "typing_Libcrux_sha3.Generic_keccak.impl_2__rho_0_", + "typing_Rust_primitives.Integers.add", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.mk_int", + "typing_Rust_primitives.Integers.mk_usize", + "typing_Rust_primitives.Integers.mul", + "typing_Rust_primitives.Integers.op_At_Percent_Dot", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_Tm_abs_9b420abd7c3e11c07b133e6053abbd21", + "typing_tok_Rust_primitives.Integers.I32@tok", + "typing_tok_Rust_primitives.Integers.U32@tok", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "c62aefb57ad4e3e9b7aef9b23eec6fea" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_rho_0_extract_lane", + 2, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.unsigned", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "b485f205c81bea99af0d6fb92af9ea9b" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_rho_1_extract_lane", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "Prims_pretyping_ae567c2fb75be05905677af440075565", + "Rust_primitives_interpretation_Tm_arrow_814388202aec1fb7483132389195bf0b", + "b2t_def", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.I32", + "constructor_distinct_Rust_primitives.Integers.U32", + "constructor_distinct_Rust_primitives.Integers.U64", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.I32@tok", + "equality_tok_Rust_primitives.Integers.U32@tok", + "equality_tok_Rust_primitives.Integers.U64@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index_pre", + "equation_EquivImplSpec.Keccakf.Generic.rotl_spec", + "equation_EquivImplSpec.Keccakf.SpecRounds.spec_state", + "equation_Prims.nat", "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.cast_mod", + "equation_Rust_primitives.Integers.gt", + "equation_Rust_primitives.Integers.i32", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_i32", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_u32", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.modulus", + "equation_Rust_primitives.Integers.mul", + "equation_Rust_primitives.Integers.op_At_Percent_Dot", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.sub", + "equation_Rust_primitives.Integers.u32", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.u64_inttype", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.cast", + "equation_Rust_primitives.cast_tc_integers", + "fuel_guarded_inversion_EquivImplSpec.Keccakf.Generic.lane_correctness", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "function_token_typing_Prims.__cache_version_number__", + "int_inversion", "int_typing", + "interpretation_Tm_abs_4e41eaf5703de6128b17c2c81e94b989", + "interpretation_Tm_abs_9b420abd7c3e11c07b133e6053abbd21", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "lemma_EquivImplSpec.Keccakf.Generic.lemma_extract_lane_index", + "lemma_Rust_primitives.Integers.pow2_values", + "lemma_Rust_primitives.Integers.v_mk_int_lemma", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_Equality", "primitive_Prims.op_GreaterThan", + "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Minus", "primitive_Prims.op_Modulus", + "primitive_Prims.op_Multiply", "primitive_Prims.op_Subtraction", + "proj_equation_Libcrux_sha3.Generic_keccak.Mkt_KeccakState_@f_st", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_Rust_primitives.Mkcast_tc_@cast", + "refinement_interpretation_Tm_refine_221edc532b512849362f091b0318b99d", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_6af5dd912a49c5aa2d10fa9f5a5534c2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "refinement_interpretation_Tm_refine_e477cd5567f25e8e57e00f0185fa1ab0", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "token_correspondence_Rust_primitives.cast", + "typing_Libcrux_sha3.Generic_keccak.__proj__Mkt_KeccakState__item__f_st", + "typing_Libcrux_sha3.Generic_keccak.impl_2__rho_1_", + "typing_Rust_primitives.Integers.add", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.lt", + "typing_Rust_primitives.Integers.minint", + "typing_Rust_primitives.Integers.mk_i32", + "typing_Rust_primitives.Integers.mk_int", + "typing_Rust_primitives.Integers.mk_usize", + "typing_Rust_primitives.Integers.mul", + "typing_Rust_primitives.Integers.op_At_Percent_Dot", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_Tm_abs_9b420abd7c3e11c07b133e6053abbd21", + "typing_tok_Rust_primitives.Integers.I32@tok", + "typing_tok_Rust_primitives.Integers.U32@tok", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "c3895a53c0ceab05a4a9f26e64a0fbf1" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_rho_1_extract_lane", + 2, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.unsigned", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "6a9f5938e3082c0ea0fda671241e6226" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_rho_2_extract_lane", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "Core_models.Ops.Function_interpretation_Tm_arrow_05fe4ff7055e98bccfe80fa62bb6aeaf", + "Prims_pretyping_ae567c2fb75be05905677af440075565", + "Rust_primitives_interpretation_Tm_arrow_814388202aec1fb7483132389195bf0b", + "b2t_def", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.I32", + "constructor_distinct_Rust_primitives.Integers.U32", + "constructor_distinct_Rust_primitives.Integers.U64", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Core_models.Ops.Index.Mkt_Index", + "data_elim_Libcrux_sha3.Generic_keccak.Mkt_KeccakState", + "equality_tok_Rust_primitives.Integers.I32@tok", + "equality_tok_Rust_primitives.Integers.U32@tok", + "equality_tok_Rust_primitives.Integers.U64@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Core_models.Ops.Index.f_index_pre", + "equation_EquivImplSpec.Keccakf.Generic.rotl_spec", + "equation_EquivImplSpec.Keccakf.SpecRounds.spec_state", + "equation_Libcrux_sha3.Generic_keccak.impl_2__set", + "equation_Libcrux_sha3.Generic_keccak.impl_3", + "equation_Libcrux_sha3.Traits.get_ij", + "equation_Libcrux_sha3.Traits.set_ij", "equation_Prims.nat", + "equation_Prims.pos", "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.Monomorphized_update_at.update_at_usize", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.cast_mod", + "equation_Rust_primitives.Integers.gt", + "equation_Rust_primitives.Integers.i32", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_i32", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_u32", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.modulus", + "equation_Rust_primitives.Integers.mul", + "equation_Rust_primitives.Integers.op_At_Percent_Dot", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.sub", + "equation_Rust_primitives.Integers.u32", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.u64_inttype", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "equation_Rust_primitives.cast", + "equation_Rust_primitives.cast_tc_integers", + "fuel_guarded_inversion_EquivImplSpec.Keccakf.Generic.lane_correctness", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "function_token_typing_Prims.__cache_version_number__", + "int_inversion", "int_typing", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_4e41eaf5703de6128b17c2c81e94b989", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "interpretation_Tm_abs_70955cb4f9afccd4a1c9959c38bb2c40", + "interpretation_Tm_abs_9b420abd7c3e11c07b133e6053abbd21", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "lemma_EquivImplSpec.Keccakf.Generic.lemma_extract_lane_index", + "lemma_FStar.Seq.Base.lemma_index_upd2", + "lemma_Rust_primitives.Integers.pow2_values", + "lemma_Rust_primitives.Integers.v_mk_int_lemma", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_Equality", "primitive_Prims.op_GreaterThan", + "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Minus", "primitive_Prims.op_Modulus", + "primitive_Prims.op_Multiply", "primitive_Prims.op_Subtraction", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_1", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_2", + "proj_equation_Libcrux_sha3.Generic_keccak.Mkt_KeccakState_@f_st", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Libcrux_sha3.Generic_keccak.Mkt_KeccakState_@f_st", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_Rust_primitives.Mkcast_tc_@cast", + "refinement_interpretation_Tm_refine_160fe7faad9a466b3cae8455bac5be60", + "refinement_interpretation_Tm_refine_21e0277b21b9413896fa7f0b23f8625e", + "refinement_interpretation_Tm_refine_221edc532b512849362f091b0318b99d", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_6af5dd912a49c5aa2d10fa9f5a5534c2", + "refinement_interpretation_Tm_refine_6cba8b694d7fbf759331b42d86bb8cbd", + "refinement_interpretation_Tm_refine_774ba3f728d91ead8ef40be66c9802e5", + "refinement_interpretation_Tm_refine_93f6c203d9fe816a13fdcc20465525c3", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "refinement_interpretation_Tm_refine_d302493db5f45f7ff6b231a718224dc4", + "refinement_interpretation_Tm_refine_e477cd5567f25e8e57e00f0185fa1ab0", + "token_correspondence_Core_models.Ops.Index.f_index", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "token_correspondence_Rust_primitives.cast", + "typing_FStar.Seq.Base.upd", + "typing_Libcrux_sha3.Generic_keccak.__proj__Mkt_KeccakState__item__f_st", + "typing_Libcrux_sha3.Generic_keccak.impl_2__rho_2_", + "typing_Libcrux_sha3.Traits.set_ij", "typing_Prims.pow2", + "typing_Rust_primitives.Hax.impl__index", + "typing_Rust_primitives.Integers.add", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.lt", + "typing_Rust_primitives.Integers.minint", + "typing_Rust_primitives.Integers.mk_i32", + "typing_Rust_primitives.Integers.mk_int", + "typing_Rust_primitives.Integers.mk_usize", + "typing_Rust_primitives.Integers.mul", + "typing_Rust_primitives.Integers.op_At_Percent_Dot", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_Tm_abs_9b420abd7c3e11c07b133e6053abbd21", + "typing_tok_Rust_primitives.Integers.I32@tok", + "typing_tok_Rust_primitives.Integers.U32@tok", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "cebf1bd9d5a496cfaf9ceab686ed8821" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_rho_2_extract_lane", + 2, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.unsigned", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "a03dfe28a2926698775c637dad30092c" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_rho_3_extract_lane", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "Prims_pretyping_ae567c2fb75be05905677af440075565", + "Rust_primitives_interpretation_Tm_arrow_814388202aec1fb7483132389195bf0b", + "b2t_def", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.I32", + "constructor_distinct_Rust_primitives.Integers.U32", + "constructor_distinct_Rust_primitives.Integers.U64", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.I32@tok", + "equality_tok_Rust_primitives.Integers.U32@tok", + "equality_tok_Rust_primitives.Integers.U64@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index_pre", + "equation_EquivImplSpec.Keccakf.Generic.rotl_spec", + "equation_EquivImplSpec.Keccakf.SpecRounds.spec_state", + "equation_Prims.nat", "equation_Prims.pos", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.cast_mod", + "equation_Rust_primitives.Integers.gt", + "equation_Rust_primitives.Integers.i32", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_i32", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_u32", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.modulus", + "equation_Rust_primitives.Integers.mul", + "equation_Rust_primitives.Integers.op_At_Percent_Dot", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.sub", + "equation_Rust_primitives.Integers.u32", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.u64_inttype", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.cast", + "equation_Rust_primitives.cast_tc_integers", + "fuel_guarded_inversion_EquivImplSpec.Keccakf.Generic.lane_correctness", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "function_token_typing_Prims.__cache_version_number__", + "int_inversion", "int_typing", + "interpretation_Tm_abs_4e41eaf5703de6128b17c2c81e94b989", + "interpretation_Tm_abs_9b420abd7c3e11c07b133e6053abbd21", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "lemma_EquivImplSpec.Keccakf.Generic.lemma_extract_lane_index", + "lemma_Rust_primitives.Integers.pow2_values", + "lemma_Rust_primitives.Integers.v_mk_int_lemma", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_Equality", "primitive_Prims.op_GreaterThan", + "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Minus", "primitive_Prims.op_Modulus", + "primitive_Prims.op_Multiply", "primitive_Prims.op_Subtraction", + "proj_equation_Libcrux_sha3.Generic_keccak.Mkt_KeccakState_@f_st", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_Rust_primitives.Mkcast_tc_@cast", + "refinement_interpretation_Tm_refine_221edc532b512849362f091b0318b99d", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_6af5dd912a49c5aa2d10fa9f5a5534c2", + "refinement_interpretation_Tm_refine_774ba3f728d91ead8ef40be66c9802e5", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "refinement_interpretation_Tm_refine_e477cd5567f25e8e57e00f0185fa1ab0", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "token_correspondence_Rust_primitives.cast", + "typing_Libcrux_sha3.Generic_keccak.__proj__Mkt_KeccakState__item__f_st", + "typing_Libcrux_sha3.Generic_keccak.impl_2__rho_3_", + "typing_Prims.pow2", "typing_Rust_primitives.Integers.add", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.lt", + "typing_Rust_primitives.Integers.minint", + "typing_Rust_primitives.Integers.mk_i32", + "typing_Rust_primitives.Integers.mk_int", + "typing_Rust_primitives.Integers.mk_usize", + "typing_Rust_primitives.Integers.mul", + "typing_Rust_primitives.Integers.op_At_Percent_Dot", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_Tm_abs_9b420abd7c3e11c07b133e6053abbd21", + "typing_tok_Rust_primitives.Integers.I32@tok", + "typing_tok_Rust_primitives.Integers.U32@tok", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "17aad30973255816e0fcfba9567215e4" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_rho_3_extract_lane", + 2, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.unsigned", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "51986ab0ad5cbbfe0d95625f30b5087d" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_rho_4_extract_lane", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "Core_models.Ops.Function_interpretation_Tm_arrow_05fe4ff7055e98bccfe80fa62bb6aeaf", + "Prims_pretyping_ae567c2fb75be05905677af440075565", + "Rust_primitives_interpretation_Tm_arrow_814388202aec1fb7483132389195bf0b", + "b2t_def", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.I32", + "constructor_distinct_Rust_primitives.Integers.U32", + "constructor_distinct_Rust_primitives.Integers.U64", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Core_models.Ops.Index.Mkt_Index", + "equality_tok_Rust_primitives.Integers.I32@tok", + "equality_tok_Rust_primitives.Integers.U32@tok", + "equality_tok_Rust_primitives.Integers.U64@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Core_models.Ops.Index.f_index_pre", + "equation_EquivImplSpec.Keccakf.Generic.rotl_spec", + "equation_EquivImplSpec.Keccakf.SpecRounds.spec_state", + "equation_Libcrux_sha3.Generic_keccak.impl_3", + "equation_Libcrux_sha3.Traits.get_ij", "equation_Prims.nat", + "equation_Prims.pos", "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.cast_mod", + "equation_Rust_primitives.Integers.gt", + "equation_Rust_primitives.Integers.i32", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_i32", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_u32", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.modulus", + "equation_Rust_primitives.Integers.mul", + "equation_Rust_primitives.Integers.op_At_Percent_Dot", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.sub", + "equation_Rust_primitives.Integers.u32", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.u64_inttype", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "equation_Rust_primitives.cast", + "equation_Rust_primitives.cast_tc_integers", + "fuel_guarded_inversion_EquivImplSpec.Keccakf.Generic.lane_correctness", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "function_token_typing_Prims.__cache_version_number__", + "int_inversion", "int_typing", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_4e41eaf5703de6128b17c2c81e94b989", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "interpretation_Tm_abs_70955cb4f9afccd4a1c9959c38bb2c40", + "interpretation_Tm_abs_9b420abd7c3e11c07b133e6053abbd21", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "lemma_EquivImplSpec.Keccakf.Generic.lemma_extract_lane_index", + "lemma_Rust_primitives.Integers.pow2_values", + "lemma_Rust_primitives.Integers.v_mk_int_lemma", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_Equality", "primitive_Prims.op_GreaterThan", + "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Minus", "primitive_Prims.op_Modulus", + "primitive_Prims.op_Multiply", "primitive_Prims.op_Subtraction", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_1", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_2", + "proj_equation_Libcrux_sha3.Generic_keccak.Mkt_KeccakState_@f_st", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Libcrux_sha3.Generic_keccak.Mkt_KeccakState_@f_st", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_Rust_primitives.Mkcast_tc_@cast", + "refinement_interpretation_Tm_refine_21e0277b21b9413896fa7f0b23f8625e", + "refinement_interpretation_Tm_refine_221edc532b512849362f091b0318b99d", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_6af5dd912a49c5aa2d10fa9f5a5534c2", + "refinement_interpretation_Tm_refine_774ba3f728d91ead8ef40be66c9802e5", + "refinement_interpretation_Tm_refine_93f6c203d9fe816a13fdcc20465525c3", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "refinement_interpretation_Tm_refine_d302493db5f45f7ff6b231a718224dc4", + "token_correspondence_Core_models.Ops.Index.f_index", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "token_correspondence_Rust_primitives.cast", + "typing_Libcrux_sha3.Generic_keccak.__proj__Mkt_KeccakState__item__f_st", + "typing_Libcrux_sha3.Generic_keccak.impl_2__rho_4_", + "typing_Libcrux_sha3.Traits.set_ij", "typing_Prims.pow2", + "typing_Rust_primitives.Hax.impl__index", + "typing_Rust_primitives.Integers.add", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.lt", + "typing_Rust_primitives.Integers.mk_i32", + "typing_Rust_primitives.Integers.mk_int", + "typing_Rust_primitives.Integers.mk_usize", + "typing_Rust_primitives.Integers.op_At_Percent_Dot", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_Tm_abs_9b420abd7c3e11c07b133e6053abbd21", + "typing_tok_Rust_primitives.Integers.I32@tok", + "typing_tok_Rust_primitives.Integers.U32@tok", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "d809c2e6fed18c73f477a1c9d587bf20" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_rho_4_extract_lane", + 2, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.unsigned", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "834009b5c5747638ce49e9e75ccb9d0a" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_rho_thru_1_extract_lane", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "b2t_def", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.U32", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.U32@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index_pre", + "equation_EquivImplSpec.Keccakf.SpecRounds.spec_state", + "equation_Prims.nat", "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_u32", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.mul", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "int_inversion", "int_typing", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Multiply", "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "c9e2f9f156f3d2834a79f615e934dff7" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_rho_thru_1_extract_lane", + 2, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.unsigned", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "39b8934c4d6f3e5c19cb463be3c71d3a" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_rho_thru_2_extract_lane", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "b2t_def", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.U32", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.U32@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index_pre", + "equation_EquivImplSpec.Keccakf.SpecRounds.spec_state", + "equation_Prims.nat", "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_u32", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.mul", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "int_inversion", "int_typing", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Multiply", "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "58aac9ed017d9a5d3c8af0b7f7f69cf6" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_rho_thru_2_extract_lane", + 2, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.unsigned", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "5290c756cbdda59c43bc305dfad36460" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_rho_thru_3_extract_lane", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "b2t_def", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.U32", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.U32@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index_pre", + "equation_EquivImplSpec.Keccakf.SpecRounds.spec_state", + "equation_Prims.nat", "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.mul", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "int_inversion", "int_typing", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Multiply", "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "6343548e8e36fe05adf44cbead931da4" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_rho_thru_3_extract_lane", + 2, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.unsigned", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "06e693457f2e33cd37ec69704eb455d0" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_rho_thru_4_extract_lane", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "b2t_def", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.U32", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.U32@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index_pre", + "equation_EquivImplSpec.Keccakf.SpecRounds.spec_state", + "equation_Prims.nat", "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.mul", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "int_inversion", "int_typing", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Multiply", "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "9b2f033e5d35d1eb77425dee7fde93f1" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_rho_thru_4_extract_lane", + 2, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.unsigned", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "87b551ee6a38b7fcd857c203c6839ef2" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_row_0_to_spec", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "b2t_def", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.U32@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index_pre", + "equation_EquivImplSpec.Keccakf.Generic.d_matches_spec", + "equation_EquivImplSpec.Keccakf.Generic.rotl_spec", + "equation_EquivImplSpec.Keccakf.Generic.spec_state", + "equation_EquivImplSpec.Keccakf.SpecRounds.spec_state", + "equation_Prims.nat", "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_u32", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_EquivImplSpec.Keccakf.Generic.lane_correctness", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "int_inversion", "int_typing", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "d889f72f36c79676b1ccc2e1c52fe70a" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_row_1_to_spec", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "b2t_def", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index_pre", + "equation_EquivImplSpec.Keccakf.Generic.d_matches_spec", + "equation_EquivImplSpec.Keccakf.Generic.spec_state", + "equation_EquivImplSpec.Keccakf.SpecRounds.spec_state", + "equation_Prims.nat", "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_EquivImplSpec.Keccakf.Generic.lane_correctness", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "int_inversion", "int_typing", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "d38c54fbcb1c43baa788e53198b9b04e" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_row_2_to_spec", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "b2t_def", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index_pre", + "equation_EquivImplSpec.Keccakf.Generic.d_matches_spec", + "equation_EquivImplSpec.Keccakf.Generic.spec_state", + "equation_EquivImplSpec.Keccakf.SpecRounds.spec_state", + "equation_Prims.nat", "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_EquivImplSpec.Keccakf.Generic.lane_correctness", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "int_inversion", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "bf374506400ba74887d53d5949f80578" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_row_3_to_spec", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "b2t_def", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index_pre", + "equation_EquivImplSpec.Keccakf.Generic.d_matches_spec", + "equation_EquivImplSpec.Keccakf.Generic.spec_state", + "equation_EquivImplSpec.Keccakf.SpecRounds.spec_state", + "equation_Prims.nat", "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_EquivImplSpec.Keccakf.Generic.lane_correctness", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "int_inversion", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "a0edfa827ed11a4f419a281a3377809f" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_row_4_to_spec", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "b2t_def", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index_pre", + "equation_EquivImplSpec.Keccakf.Generic.d_matches_spec", + "equation_EquivImplSpec.Keccakf.Generic.spec_state", + "equation_EquivImplSpec.Keccakf.SpecRounds.spec_state", + "equation_Prims.nat", "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_EquivImplSpec.Keccakf.Generic.lane_correctness", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "int_inversion", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "2c4ef8722267f6606dd215354c781b4b" + ], + [ + "EquivImplSpec.Keccakf.Generic.forall25", + 1, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", "equation_Prims.nat", + "int_inversion", "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_693213d29dc5b9d0a76e3af0564654aa" + ], + 0, + "4cd0a1b1c7e374ad7e7eb71cf725f6a0" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "c15adb59b8e1c2277c67bbac71ded112" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 2, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "fd4ff9b0717ef4bb5aa06efa2603185e" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 3, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.mul", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "int_inversion", "int_typing", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_LessThanOrEqual", "primitive_Prims.op_Multiply", + "primitive_Prims.op_Subtraction", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_1", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "3a9a153349f1b5d02f6ae5ceb16809bc" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 4, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.mul", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "int_inversion", "int_typing", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_LessThanOrEqual", "primitive_Prims.op_Multiply", + "primitive_Prims.op_Subtraction", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_1", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "530a53ea3fe532f3760bc31563dd00d5" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 5, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.I32", + "constructor_distinct_Rust_primitives.Integers.U64", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.I32@tok", + "equality_tok_Rust_primitives.Integers.U64@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Prims.pos", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_i32", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "int_inversion", "int_typing", + "lemma_Rust_primitives.Integers.pow2_values", + "lemma_Rust_primitives.Integers.v_mk_int_lemma", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_Equality", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Minus", "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_774ba3f728d91ead8ef40be66c9802e5", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Prims.pow2", "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.I32@tok", + "typing_tok_Rust_primitives.Integers.U64@tok", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "39fc92921a41c59b10e73cab9cd0fbaf" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 6, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.I32", + "constructor_distinct_Rust_primitives.Integers.U64", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.I32@tok", + "equality_tok_Rust_primitives.Integers.U64@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Prims.pos", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_i32", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.mul", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "int_inversion", "int_typing", + "lemma_Rust_primitives.Integers.pow2_values", + "lemma_Rust_primitives.Integers.v_mk_int_lemma", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_Equality", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Minus", "primitive_Prims.op_Multiply", + "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_774ba3f728d91ead8ef40be66c9802e5", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Prims.pow2", "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.I32@tok", + "typing_tok_Rust_primitives.Integers.U64@tok", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "1bfa0986b86eeb67c4d03a102f176bf5" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 7, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.I32", + "constructor_distinct_Rust_primitives.Integers.U64", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.I32@tok", + "equality_tok_Rust_primitives.Integers.U64@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Prims.pos", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_i32", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.mul", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "int_inversion", "int_typing", + "lemma_Rust_primitives.Integers.pow2_values", + "lemma_Rust_primitives.Integers.v_mk_int_lemma", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_Equality", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Minus", "primitive_Prims.op_Multiply", + "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_774ba3f728d91ead8ef40be66c9802e5", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Prims.pow2", "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.I32@tok", + "typing_tok_Rust_primitives.Integers.U64@tok", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "f05d9ba7b6620205d9ff43558328e340" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 8, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_14fb90547f351ab07ca712b900f4aa9c", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_1cea0b54efde622bbe567dae4f0b833f", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_277be3292b03d320a19b8fc80d9e10d9", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_7c0c18ef2fc7daeb81e1f50870cc56bb", + "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.I32", + "constructor_distinct_Rust_primitives.Integers.U64", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Libcrux_sha3.Traits.Mkt_KeccakItem", + "data_typing_intro_Prims.Cons@tok", + "data_typing_intro_Prims.Nil@tok", + "equality_tok_Rust_primitives.Integers.I32@tok", + "equality_tok_Rust_primitives.Integers.U64@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_FStar.Seq.Base.op_At_Bar", + "equation_Libcrux_sha3.Generic_keccak.impl_2__theta", + "equation_Libcrux_sha3.Generic_keccak.impl_3", + "equation_Libcrux_sha3.Traits.f_rotate_left1_and_xor", + "equation_Libcrux_sha3.Traits.f_xor5", + "equation_Libcrux_sha3.Traits.get_ij", "equation_Prims.nat", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_i32", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.mod", + "equation_Rust_primitives.Integers.mul", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "int_inversion", "int_typing", + "interpretation_Tm_abs_102f42c4ed9c78eb18badb9265620e17", + "interpretation_Tm_abs_44d78164ecd3ae1d873768fc71c8c2e4", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "interpretation_Tm_abs_70955cb4f9afccd4a1c9959c38bb2c40", + "lemma_FStar.Seq.Base.lemma_create_len", + "lemma_FStar.Seq.Base.lemma_len_append", + "lemma_FStar.Seq.Base.lemma_seq_of_list_cons", + "lemma_Rust_primitives.Integers.pow2_values", + "lemma_Rust_primitives.Integers.v_mk_int_lemma", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_Equality", "primitive_Prims.op_LessThan", + "primitive_Prims.op_LessThanOrEqual", "primitive_Prims.op_Minus", + "primitive_Prims.op_Modulus", "primitive_Prims.op_Multiply", + "primitive_Prims.op_Subtraction", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_1", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_2", + "proj_equation_Libcrux_sha3.Generic_keccak.Mkt_KeccakState_@f_st", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_160fe7faad9a466b3cae8455bac5be60", + "refinement_interpretation_Tm_refine_1e174b8c76a3e29ed16766cf8486aae6", + "refinement_interpretation_Tm_refine_21e0277b21b9413896fa7f0b23f8625e", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_93f6c203d9fe816a13fdcc20465525c3", + "refinement_interpretation_Tm_refine_a1a033a77e01e991845686c530b2eae9", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "refinement_interpretation_Tm_refine_b21f98b6ca50013c6e539e770c013c08", + "refinement_interpretation_Tm_refine_c16bc1b61f58b349bf6fc1c94dcaf83b", + "refinement_interpretation_Tm_refine_e263604a64d343fa5112de970172906b", + "token_correspondence_Core_models.Ops.Index.f_index", + "token_correspondence_Libcrux_sha3.Traits.f_rotate_left1_and_xor", + "token_correspondence_Libcrux_sha3.Traits.f_xor5", + "typing_FStar.Seq.Base.create", "typing_FStar.Seq.Base.index", + "typing_FStar.Seq.Base.length", "typing_FStar.Seq.Base.op_At_Bar", + "typing_FStar.Seq.Base.seq_of_list", + "typing_Libcrux_sha3.Generic_keccak.__proj__Mkt_KeccakState__item__f_st", + "typing_Libcrux_sha3.Traits.get_ij", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.minint", + "typing_Rust_primitives.Integers.mk_usize", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.I32@tok", + "typing_tok_Rust_primitives.Integers.U64@tok", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "a6b800060e9ae40f7a395d7cdffa24b0" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 9, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_14fb90547f351ab07ca712b900f4aa9c", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_1cea0b54efde622bbe567dae4f0b833f", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_277be3292b03d320a19b8fc80d9e10d9", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_7c0c18ef2fc7daeb81e1f50870cc56bb", + "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.I32", + "constructor_distinct_Rust_primitives.Integers.U64", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Libcrux_sha3.Traits.Mkt_KeccakItem", + "data_typing_intro_Prims.Cons@tok", + "data_typing_intro_Prims.Nil@tok", + "equality_tok_Rust_primitives.Integers.I32@tok", + "equality_tok_Rust_primitives.Integers.U64@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_FStar.Seq.Base.op_At_Bar", + "equation_Libcrux_sha3.Generic_keccak.impl_2__theta", + "equation_Libcrux_sha3.Generic_keccak.impl_3", + "equation_Libcrux_sha3.Traits.f_rotate_left1_and_xor", + "equation_Libcrux_sha3.Traits.f_xor5", + "equation_Libcrux_sha3.Traits.get_ij", "equation_Prims.nat", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_i32", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.mod", + "equation_Rust_primitives.Integers.mul", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "int_inversion", "int_typing", + "interpretation_Tm_abs_102f42c4ed9c78eb18badb9265620e17", + "interpretation_Tm_abs_44d78164ecd3ae1d873768fc71c8c2e4", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "interpretation_Tm_abs_70955cb4f9afccd4a1c9959c38bb2c40", + "lemma_FStar.Seq.Base.lemma_create_len", + "lemma_FStar.Seq.Base.lemma_len_append", + "lemma_FStar.Seq.Base.lemma_seq_of_list_cons", + "lemma_Rust_primitives.Integers.pow2_values", + "lemma_Rust_primitives.Integers.v_mk_int_lemma", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_Equality", "primitive_Prims.op_LessThan", + "primitive_Prims.op_LessThanOrEqual", "primitive_Prims.op_Minus", + "primitive_Prims.op_Modulus", "primitive_Prims.op_Multiply", + "primitive_Prims.op_Subtraction", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_1", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_2", + "proj_equation_Libcrux_sha3.Generic_keccak.Mkt_KeccakState_@f_st", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_160fe7faad9a466b3cae8455bac5be60", + "refinement_interpretation_Tm_refine_1e174b8c76a3e29ed16766cf8486aae6", + "refinement_interpretation_Tm_refine_21e0277b21b9413896fa7f0b23f8625e", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_93f6c203d9fe816a13fdcc20465525c3", + "refinement_interpretation_Tm_refine_a1a033a77e01e991845686c530b2eae9", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "refinement_interpretation_Tm_refine_b21f98b6ca50013c6e539e770c013c08", + "refinement_interpretation_Tm_refine_c16bc1b61f58b349bf6fc1c94dcaf83b", + "refinement_interpretation_Tm_refine_e263604a64d343fa5112de970172906b", + "token_correspondence_Core_models.Ops.Index.f_index", + "token_correspondence_Libcrux_sha3.Traits.f_rotate_left1_and_xor", + "token_correspondence_Libcrux_sha3.Traits.f_xor5", + "typing_FStar.Seq.Base.create", "typing_FStar.Seq.Base.index", + "typing_FStar.Seq.Base.length", "typing_FStar.Seq.Base.op_At_Bar", + "typing_FStar.Seq.Base.seq_of_list", + "typing_Libcrux_sha3.Generic_keccak.__proj__Mkt_KeccakState__item__f_st", + "typing_Libcrux_sha3.Traits.get_ij", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.minint", + "typing_Rust_primitives.Integers.mk_usize", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.I32@tok", + "typing_tok_Rust_primitives.Integers.U64@tok", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "c0992c3d6247e4985491dbe7197265b4" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 10, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.v", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_10fbac36d706d326d53cacaa10313c48", + "refinement_interpretation_Tm_refine_21e0277b21b9413896fa7f0b23f8625e", + "refinement_interpretation_Tm_refine_693213d29dc5b9d0a76e3af0564654aa" + ], + 0, + "3f9951222867808c83f8ac4177c50c99" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 11, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Hacspec_sha3.Keccak_f.rho", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.v", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_21e0277b21b9413896fa7f0b23f8625e", + "refinement_interpretation_Tm_refine_693213d29dc5b9d0a76e3af0564654aa", + "refinement_interpretation_Tm_refine_a64a7fce82dc45c81fc737f421cf5c8c" + ], + 0, + "a67266de43d6cef048d79b98dff3176f" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 12, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", "eq2-interp", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Hacspec_sha3.Keccak_f.rho", "equation_Prims.l_and", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "l_and-interp", "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_10fbac36d706d326d53cacaa10313c48", + "refinement_interpretation_Tm_refine_a4b527bdd559a3f83a3bad9fb6d00751", + "token_correspondence_Core_models.Ops.Index.f_index" + ], + 0, + "2cf8ed95d303fc5250f3b88a96095ffd" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 13, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", "eq2-interp", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Hacspec_sha3.Keccak_f.rho", "equation_Prims.l_and", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "l_and-interp", "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_10fbac36d706d326d53cacaa10313c48", + "refinement_interpretation_Tm_refine_a4b527bdd559a3f83a3bad9fb6d00751", + "token_correspondence_Core_models.Ops.Index.f_index" + ], + 0, + "f04fd7206b9073b31a846d7ecbe0527e" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 14, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", "eq2-interp", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Hacspec_sha3.Keccak_f.rho", "equation_Prims.l_and", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "l_and-interp", "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_10fbac36d706d326d53cacaa10313c48", + "refinement_interpretation_Tm_refine_a4b527bdd559a3f83a3bad9fb6d00751", + "token_correspondence_Core_models.Ops.Index.f_index" + ], + 0, + "92d512f532c6bb7f11ee3886bc52e753" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 15, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", "eq2-interp", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Hacspec_sha3.Keccak_f.rho", "equation_Prims.l_and", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "l_and-interp", "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_10fbac36d706d326d53cacaa10313c48", + "refinement_interpretation_Tm_refine_a4b527bdd559a3f83a3bad9fb6d00751", + "token_correspondence_Core_models.Ops.Index.f_index" + ], + 0, + "0f594a8e1b580944ac39433f897791dc" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 16, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", "eq2-interp", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Hacspec_sha3.Keccak_f.rho", "equation_Prims.l_and", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "l_and-interp", "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_10fbac36d706d326d53cacaa10313c48", + "refinement_interpretation_Tm_refine_a4b527bdd559a3f83a3bad9fb6d00751", + "token_correspondence_Core_models.Ops.Index.f_index" + ], + 0, + "5cd09fee2cfc5b537b898580e2b810ae" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 17, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", "eq2-interp", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Hacspec_sha3.Keccak_f.rho", "equation_Prims.l_and", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "l_and-interp", "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_10fbac36d706d326d53cacaa10313c48", + "refinement_interpretation_Tm_refine_a4b527bdd559a3f83a3bad9fb6d00751", + "token_correspondence_Core_models.Ops.Index.f_index" + ], + 0, + "1f19f76ed73414521254318a3bdaeab0" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 18, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", "eq2-interp", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Hacspec_sha3.Keccak_f.rho", "equation_Prims.l_and", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "int_inversion", "int_typing", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "l_and-interp", "primitive_Prims.op_Addition", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_10fbac36d706d326d53cacaa10313c48", + "refinement_interpretation_Tm_refine_a4b527bdd559a3f83a3bad9fb6d00751", + "token_correspondence_Core_models.Ops.Index.f_index" + ], + 0, + "bfc875422228796f98e3cf1a2cd42264" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 19, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", "eq2-interp", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Hacspec_sha3.Keccak_f.rho", "equation_Prims.l_and", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "int_inversion", "int_typing", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "l_and-interp", "primitive_Prims.op_Addition", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_10fbac36d706d326d53cacaa10313c48", + "refinement_interpretation_Tm_refine_a4b527bdd559a3f83a3bad9fb6d00751", + "token_correspondence_Core_models.Ops.Index.f_index" + ], + 0, + "1d526f5727ef2cb001b1fe5ec18f9bac" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 20, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", "eq2-interp", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Hacspec_sha3.Keccak_f.rho", "equation_Prims.l_and", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "int_inversion", "int_typing", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "l_and-interp", "primitive_Prims.op_Addition", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_10fbac36d706d326d53cacaa10313c48", + "refinement_interpretation_Tm_refine_a4b527bdd559a3f83a3bad9fb6d00751", + "token_correspondence_Core_models.Ops.Index.f_index" + ], + 0, + "4667820824375d3d1ba69220798b09b1" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 21, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", "eq2-interp", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Hacspec_sha3.Keccak_f.rho", "equation_Prims.l_and", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "l_and-interp", "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_10fbac36d706d326d53cacaa10313c48", + "refinement_interpretation_Tm_refine_a4b527bdd559a3f83a3bad9fb6d00751", + "token_correspondence_Core_models.Ops.Index.f_index" + ], + 0, + "672cb223e13075682d1813293c9920a9" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 22, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", "eq2-interp", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Hacspec_sha3.Keccak_f.rho", "equation_Prims.l_and", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "l_and-interp", "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_10fbac36d706d326d53cacaa10313c48", + "refinement_interpretation_Tm_refine_a4b527bdd559a3f83a3bad9fb6d00751", + "token_correspondence_Core_models.Ops.Index.f_index" + ], + 0, + "577446a8d1d3e8919f578eda46776aaf" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 23, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", "eq2-interp", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Hacspec_sha3.Keccak_f.rho", "equation_Prims.l_and", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "l_and-interp", "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_10fbac36d706d326d53cacaa10313c48", + "refinement_interpretation_Tm_refine_a4b527bdd559a3f83a3bad9fb6d00751", + "token_correspondence_Core_models.Ops.Index.f_index" + ], + 0, + "6b79bd12471381c5d8538440435edfe3" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 24, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", "eq2-interp", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Hacspec_sha3.Keccak_f.rho", "equation_Prims.l_and", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "l_and-interp", "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_10fbac36d706d326d53cacaa10313c48", + "refinement_interpretation_Tm_refine_a4b527bdd559a3f83a3bad9fb6d00751", + "token_correspondence_Core_models.Ops.Index.f_index" + ], + 0, + "621fa411ac2550e639fc3d1be4d826a4" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 25, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", "eq2-interp", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Hacspec_sha3.Keccak_f.rho", "equation_Prims.l_and", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "l_and-interp", "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_10fbac36d706d326d53cacaa10313c48", + "refinement_interpretation_Tm_refine_a4b527bdd559a3f83a3bad9fb6d00751", + "token_correspondence_Core_models.Ops.Index.f_index" + ], + 0, + "4336159e86b691c25780938fa2144e98" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 26, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", "eq2-interp", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Hacspec_sha3.Keccak_f.rho", "equation_Prims.l_and", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "l_and-interp", "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_10fbac36d706d326d53cacaa10313c48", + "refinement_interpretation_Tm_refine_a4b527bdd559a3f83a3bad9fb6d00751", + "token_correspondence_Core_models.Ops.Index.f_index" + ], + 0, + "542e447d5510aab550f13984dad4bfac" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 27, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", "eq2-interp", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Hacspec_sha3.Keccak_f.rho", "equation_Prims.l_and", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "l_and-interp", "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_10fbac36d706d326d53cacaa10313c48", + "refinement_interpretation_Tm_refine_a4b527bdd559a3f83a3bad9fb6d00751", + "token_correspondence_Core_models.Ops.Index.f_index" + ], + 0, + "5b607af5ba7ac0ca7b62fbf80b1555e8" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 28, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", "eq2-interp", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Hacspec_sha3.Keccak_f.rho", "equation_Prims.l_and", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "l_and-interp", "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_10fbac36d706d326d53cacaa10313c48", + "refinement_interpretation_Tm_refine_a4b527bdd559a3f83a3bad9fb6d00751", + "token_correspondence_Core_models.Ops.Index.f_index" + ], + 0, + "1d6e4e7427604fa68c85034c2032bcf7" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 29, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", "eq2-interp", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Hacspec_sha3.Keccak_f.rho", "equation_Prims.l_and", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "l_and-interp", "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_10fbac36d706d326d53cacaa10313c48", + "refinement_interpretation_Tm_refine_a4b527bdd559a3f83a3bad9fb6d00751", + "token_correspondence_Core_models.Ops.Index.f_index" + ], + 0, + "494ac41a8c1eebb3def87036c1566ebc" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 30, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", "eq2-interp", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Hacspec_sha3.Keccak_f.rho", "equation_Prims.l_and", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "l_and-interp", "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_10fbac36d706d326d53cacaa10313c48", + "refinement_interpretation_Tm_refine_a4b527bdd559a3f83a3bad9fb6d00751", + "token_correspondence_Core_models.Ops.Index.f_index" + ], + 0, + "b3d86e2f26338860627ec2b209b6f067" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 31, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", "eq2-interp", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Hacspec_sha3.Keccak_f.rho", "equation_Prims.l_and", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "l_and-interp", "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_10fbac36d706d326d53cacaa10313c48", + "refinement_interpretation_Tm_refine_a4b527bdd559a3f83a3bad9fb6d00751", + "token_correspondence_Core_models.Ops.Index.f_index" + ], + 0, + "9f860a71e9c3f77040e8fbe37b00eb57" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 32, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", "eq2-interp", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Hacspec_sha3.Keccak_f.rho", "equation_Prims.l_and", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "l_and-interp", "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_10fbac36d706d326d53cacaa10313c48", + "refinement_interpretation_Tm_refine_a4b527bdd559a3f83a3bad9fb6d00751", + "token_correspondence_Core_models.Ops.Index.f_index" + ], + 0, + "bae32255b29e14f96bf003958703cccb" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 33, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", "eq2-interp", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Hacspec_sha3.Keccak_f.rho", "equation_Prims.l_and", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "l_and-interp", "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_10fbac36d706d326d53cacaa10313c48", + "refinement_interpretation_Tm_refine_a4b527bdd559a3f83a3bad9fb6d00751", + "token_correspondence_Core_models.Ops.Index.f_index" + ], + 0, + "e621913855586b80d280f526cf746c14" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 34, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", "eq2-interp", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Hacspec_sha3.Keccak_f.rho", "equation_Prims.l_and", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "l_and-interp", "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_10fbac36d706d326d53cacaa10313c48", + "refinement_interpretation_Tm_refine_a4b527bdd559a3f83a3bad9fb6d00751", + "token_correspondence_Core_models.Ops.Index.f_index" + ], + 0, + "ee77d9391a864947850188ac612f29c5" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 35, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", "eq2-interp", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Hacspec_sha3.Keccak_f.rho", "equation_Prims.l_and", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "l_and-interp", "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_10fbac36d706d326d53cacaa10313c48", + "refinement_interpretation_Tm_refine_a4b527bdd559a3f83a3bad9fb6d00751", + "token_correspondence_Core_models.Ops.Index.f_index" + ], + 0, + "e9d849ac9e004aed0a56270da09ab7c7" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 36, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", "eq2-interp", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Hacspec_sha3.Keccak_f.rho", "equation_Prims.l_and", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "l_and-interp", "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_10fbac36d706d326d53cacaa10313c48", + "refinement_interpretation_Tm_refine_a4b527bdd559a3f83a3bad9fb6d00751", + "token_correspondence_Core_models.Ops.Index.f_index" + ], + 0, + "5fcb46b47115e95249f4979d07907073" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 37, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.u64", + "refinement_interpretation_Tm_refine_10fbac36d706d326d53cacaa10313c48", + "refinement_interpretation_Tm_refine_21e0277b21b9413896fa7f0b23f8625e", + "refinement_interpretation_Tm_refine_2dfaa9f45f031c6810edf9095971c369" + ], + 0, + "7b9b933a24a822b83561919355e363cf" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 38, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Hacspec_sha3.Keccak_f.rho", "equation_Prims.nat", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.v", "int_inversion", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_10fbac36d706d326d53cacaa10313c48", + "refinement_interpretation_Tm_refine_21e0277b21b9413896fa7f0b23f8625e", + "refinement_interpretation_Tm_refine_228f2245e58a1f44abcabae7ed06b22d", + "refinement_interpretation_Tm_refine_2c4aefcb29d5ed16684cd846a7d8d6c2", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_693213d29dc5b9d0a76e3af0564654aa", + "refinement_interpretation_Tm_refine_a64a7fce82dc45c81fc737f421cf5c8c" + ], + 0, + "54e56ee877df753ece917d0707f47954" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_theta_rho_to_spec", + 39, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", + "equation_Hacspec_sha3.Keccak_f.rho", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.u64", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "function_token_typing_Rust_primitives.Integers.u64", + "lemma_FStar.Seq.Base.lemma_eq_elim", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "refinement_interpretation_Tm_refine_10fbac36d706d326d53cacaa10313c48", + "refinement_interpretation_Tm_refine_21e0277b21b9413896fa7f0b23f8625e", + "refinement_interpretation_Tm_refine_a1a033a77e01e991845686c530b2eae9", + "refinement_interpretation_Tm_refine_a4b527bdd559a3f83a3bad9fb6d00751", + "refinement_interpretation_Tm_refine_e4f44e7fb32c6202ac39cc6db167552b", + "typing_EquivImplSpec.Keccakf.Generic.extract_lane", + "typing_Hacspec_sha3.Keccak_f.rho", + "typing_Hacspec_sha3.Keccak_f.theta", + "typing_Libcrux_sha3.Generic_keccak.__proj__Mkt_KeccakState__item__f_st", + "unit_inversion" + ], + 0, + "f6faac10a2d7edf7bbfd00178f735001" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_pi_extract_lane", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "b2t_def", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Core_models.Ops.Index.f_index_pre", "equation_Prims.nat", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.mul", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_EquivImplSpec.Keccakf.Generic.lane_correctness", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "int_inversion", "int_typing", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "lemma_EquivImplSpec.Keccakf.Generic.lemma_extract_lane_index", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Multiply", "primitive_Prims.op_Subtraction", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_1", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_2", + "proj_equation_Libcrux_sha3.Generic_keccak.Mkt_KeccakState_@f_st", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_6af5dd912a49c5aa2d10fa9f5a5534c2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "token_correspondence_Core_models.Ops.Index.f_index", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "typing_Libcrux_sha3.Generic_keccak.__proj__Mkt_KeccakState__item__f_st", + "typing_Libcrux_sha3.Generic_keccak.impl_2__pi", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.minint", + "typing_Rust_primitives.Integers.mk_int", + "typing_Rust_primitives.Integers.mk_usize", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "f82ddc62c8c49153a0f5fdeef50c758f" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_pi_to_spec", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", "equation_Prims.nat", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_EquivImplSpec.Keccakf.Generic.lane_correctness", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "function_token_typing_Rust_primitives.Integers.u64", + "int_inversion", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "lemma_FStar.Seq.Base.lemma_eq_elim", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_174e5680d00601f3ad494140d84a75ce", + "refinement_interpretation_Tm_refine_21e0277b21b9413896fa7f0b23f8625e", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_693213d29dc5b9d0a76e3af0564654aa", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "token_correspondence_Core_models.Ops.Index.f_index", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "acc35d435c6cb066d7fc8f9a71b51ab7" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_chi_extract_lane_aux", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "b2t_def", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.U64", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Rust_primitives.Integers.MkInt", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Core_models.Ops.Index.f_index_pre", + "equation_EquivImplSpec.Keccakf.ChiFold.chi_inner_val", + "equation_Libcrux_sha3.Generic_keccak.impl_3", + "equation_Libcrux_sha3.Traits.get_ij", "equation_Prims.nat", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.div", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.mod", + "equation_Rust_primitives.Integers.mul", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.sz", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "int_inversion", "int_typing", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_70955cb4f9afccd4a1c9959c38bb2c40", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "interpretation_Tm_abs_f60c537567243dee9f91819830879155", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_Division", + "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Modulus", "primitive_Prims.op_Multiply", + "primitive_Prims.op_Subtraction", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_1", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_2", + "proj_equation_Libcrux_sha3.Generic_keccak.Mkt_KeccakState_@f_st", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_0e751014a8aa91cb1a772d8df912d737", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_800dc0cd384e50b6ac0557d8f188c156", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "token_correspondence_Core_models.Ops.Index.f_index", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "bb4dcfabc802db67d9929937c58b75c8" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_chi_to_spec", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "Hacspec_sha3.Keccak_f_interpretation_Tm_arrow_6810ffd7fedc9f5daa2182e9ac575b71", + "Hacspec_sha3_interpretation_Tm_arrow_bf71e124d232d47c997d72c21e536b9a", + "b2t_def", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Libcrux_sha3.Generic_keccak.Mkt_KeccakState", + "equality_tok_Rust_primitives.Integers.U64@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Core_models.Ops.Index.f_index_pre", + "equation_EquivImplSpec.Keccakf.SpecRounds.spec_state", + "equation_Hacspec_sha3.Keccak_f.chi", + "equation_Hacspec_sha3.Keccak_f.get", "equation_Prims.nat", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.div", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.mod", + "equation_Rust_primitives.Integers.mul", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.sz", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.negation_for_integers", + "equation_Rust_primitives.Notations.op_String_Access", + "equation_Rust_primitives.Notations.op_Tilde_Dot", + "fuel_guarded_inversion_EquivImplSpec.Keccakf.Generic.lane_correctness", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "function_token_typing_Rust_primitives.Integers.u64", + "int_inversion", "int_typing", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "interpretation_Tm_abs_6e12770ddd2256a6e162b3b613591f54", + "interpretation_Tm_abs_752dd2e4b28f1464750932b68bf87596", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_b1b7a62c391e567ba1ec3dc64493aa56", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "kinding_Tm_arrow_d28fde83d99b9fd411f0baa86bc882a5", + "lemma_EquivImplSpec.Keccakf.Generic.lemma_extract_lane_index", + "lemma_FStar.Seq.Base.lemma_eq_elim", + "lemma_Hacspec_sha3.createi_lemma", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_Division", + "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Modulus", "primitive_Prims.op_Multiply", + "primitive_Prims.op_Subtraction", + "proj_equation_Libcrux_sha3.Generic_keccak.Mkt_KeccakState_@f_st", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_Rust_primitives.Notations.Mknegation_tc_@op_Tilde_Dot", + "refinement_interpretation_Tm_refine_21e0277b21b9413896fa7f0b23f8625e", + "refinement_interpretation_Tm_refine_221edc532b512849362f091b0318b99d", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_693213d29dc5b9d0a76e3af0564654aa", + "refinement_interpretation_Tm_refine_6af5dd912a49c5aa2d10fa9f5a5534c2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_af1c43dec8a2008759d8078127a77533", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "refinement_interpretation_Tm_refine_c525f4bc3aa418afe0bd65cc4d0f6cd8", + "refinement_interpretation_Tm_refine_d1e26932e2fa9f80a8076afa47e90e80", + "refinement_interpretation_Tm_refine_eea4a7aaf0d9fd792b6bd561042bfd5e", + "token_correspondence_Core_models.Ops.Index.f_index", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "token_correspondence_Rust_primitives.Notations.op_Tilde_Dot", + "typing_Libcrux_sha3.Generic_keccak.__proj__Mkt_KeccakState__item__f_st", + "typing_Libcrux_sha3.Generic_keccak.impl_2__chi", + "typing_Rust_primitives.Integers.__proj__MkInt__item___0", + "typing_Rust_primitives.Integers.add", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.div", + "typing_Rust_primitives.Integers.mk_int", + "typing_Rust_primitives.Integers.mod", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_Tm_abs_6e12770ddd2256a6e162b3b613591f54", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "b645fd362456a7de54820ef3c69f349a" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_iota_spec", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "Core_models.Ops.Function_interpretation_Tm_arrow_05fe4ff7055e98bccfe80fa62bb6aeaf", + "b2t_def", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Core_models.Ops.Index.Mkt_Index", + "data_elim_Rust_primitives.Integers.MkInt", + "equality_tok_Rust_primitives.Integers.U64@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Core_models.Ops.Index.f_index_pre", + "equation_EquivImplSpec.Keccakf.Generic.spec_state", + "equation_EquivImplSpec.Keccakf.SpecRounds.spec_state", + "equation_Hacspec_sha3.Keccak_f.iota", + "equation_Hacspec_sha3.Keccak_f.v_ROUND_CONSTANTS", + "equation_Prims.nat", "equation_Prims.squash", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.Monomorphized_update_at.update_at_usize", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "function_token_typing_Rust_primitives.Integers.u64", + "function_token_typing_Rust_primitives.Integers.usize", + "int_inversion", "int_typing", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "lemma_FStar.Seq.Base.lemma_index_upd1", + "lemma_FStar.Seq.Base.lemma_index_upd2", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Core_models.Ops.Index.Mkt_Index_@f_Output", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_Output", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_160fe7faad9a466b3cae8455bac5be60", + "refinement_interpretation_Tm_refine_21e0277b21b9413896fa7f0b23f8625e", + "refinement_interpretation_Tm_refine_2de20c066034c13bf76e9c0b94f4806c", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_6cba8b694d7fbf759331b42d86bb8cbd", + "refinement_interpretation_Tm_refine_93f6c203d9fe816a13fdcc20465525c3", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "refinement_interpretation_Tm_refine_e16a4ff0a31703789cc1c1125fc4da02", + "token_correspondence_Core_models.Ops.Index.f_index", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "typing_FStar.Seq.Base.index", "typing_FStar.Seq.Base.length", + "typing_Hacspec_sha3.Keccak_f.v_ROUND_CONSTANTS", + "typing_Rust_primitives.Arrays.t_Array", + "typing_Rust_primitives.Hax.impl__index", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.logxor", + "typing_Rust_primitives.Integers.minint", + "typing_Rust_primitives.Integers.mk_int", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Notations.op_String_Access", + "typing_tok_Rust_primitives.Integers.U64@tok", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "c1b8a91eae380206f2758ab4c297716f" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_iota_extract_lane", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "FStar.Seq.Base_pretyping_aec2ec0359b5151fd30ba679a2daadcd", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_889bd4c2b545afe726a9ef75bb2c4aad", + "Libcrux_sha3.Traits_interpretation_Tm_arrow_fc7e65ad6336f7f6cba4ba6c5c93e81b", + "b2t_def", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Libcrux_sha3.Generic_keccak.Mkt_KeccakState", + "data_elim_Libcrux_sha3.Traits.Mkt_KeccakItem", + "data_elim_Rust_primitives.Integers.MkInt", + "data_typing_intro_FStar.Pervasives.Native.Mktuple2@tok", + "equality_tok_Rust_primitives.Integers.U64@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Core_models.Ops.Index.f_index_pre", + "equation_Core_models.Slice.impl__len", + "equation_EquivImplSpec.Keccakf.SpecRounds.spec_state", + "equation_Libcrux_sha3.Generic_keccak.Constants.v_ROUNDCONSTANTS", + "equation_Libcrux_sha3.Generic_keccak.impl_2__iota", + "equation_Libcrux_sha3.Generic_keccak.impl_2__set", + "equation_Libcrux_sha3.Generic_keccak.impl_3", + "equation_Libcrux_sha3.Traits.f_xor_constant", + "equation_Libcrux_sha3.Traits.get_ij", + "equation_Libcrux_sha3.Traits.set_ij", "equation_Prims.nat", + "equation_Prims.squash", "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.Monomorphized_update_at.update_at_usize", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.mul", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.sz", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "equation_Rust_primitives.Slice.slice_length", + "fuel_guarded_inversion_EquivImplSpec.Keccakf.Generic.lane_correctness", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "function_token_typing_Rust_primitives.Integers.u64", + "function_token_typing_Rust_primitives.Integers.usize", + "int_inversion", "int_typing", + "interpretation_Tm_abs_4a07bec5c4cbf1be55632b9c0b1c19dd", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "interpretation_Tm_abs_70955cb4f9afccd4a1c9959c38bb2c40", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "interpretation_Tm_abs_f60c537567243dee9f91819830879155", + "kinding_FStar.Pervasives.Native.tuple2@tok", + "kinding_Libcrux_sha3.Generic_keccak.t_KeccakState@tok", + "lemma_EquivImplSpec.Keccakf.Generic.lemma_extract_lane_index", + "lemma_FStar.Seq.Base.lemma_index_upd1", + "lemma_FStar.Seq.Base.lemma_index_upd2", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Multiply", "primitive_Prims.op_Subtraction", + "proj_equation_Core_models.Ops.Index.Mkt_Index_@f_Output", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_1", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_2", + "proj_equation_Libcrux_sha3.Generic_keccak.Mkt_KeccakState_@f_st", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_Output", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Libcrux_sha3.Generic_keccak.Mkt_KeccakState_@f_st", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_160fe7faad9a466b3cae8455bac5be60", + "refinement_interpretation_Tm_refine_21e0277b21b9413896fa7f0b23f8625e", + "refinement_interpretation_Tm_refine_2de20c066034c13bf76e9c0b94f4806c", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_6af5dd912a49c5aa2d10fa9f5a5534c2", + "refinement_interpretation_Tm_refine_6cba8b694d7fbf759331b42d86bb8cbd", + "refinement_interpretation_Tm_refine_77939974e8de44bb9a3ae869c6571119", + "refinement_interpretation_Tm_refine_93f6c203d9fe816a13fdcc20465525c3", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "refinement_interpretation_Tm_refine_e16a4ff0a31703789cc1c1125fc4da02", + "refinement_interpretation_Tm_refine_e263604a64d343fa5112de970172906b", + "token_correspondence_Core_models.Ops.Index.f_index", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "token_correspondence_Libcrux_sha3.Traits.f_xor_constant", + "typing_FStar.Seq.Base.index", "typing_FStar.Seq.Base.length", + "typing_Libcrux_sha3.Generic_keccak.Constants.v_ROUNDCONSTANTS", + "typing_Libcrux_sha3.Generic_keccak.__proj__Mkt_KeccakState__item__f_st", + "typing_Libcrux_sha3.Generic_keccak.impl_2__iota", + "typing_Libcrux_sha3.Generic_keccak.impl_3", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.minint", + "typing_Rust_primitives.Integers.mk_int", + "typing_Rust_primitives.Integers.mk_usize", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_Rust_primitives.Notations.op_String_Access", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "6e2073bb09e46ee5ffbb0c0e491728fb" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_iota_to_spec", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "b2t_def", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Libcrux_sha3.Generic_keccak.Mkt_KeccakState", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Core_models.Slice.impl__len", + "equation_EquivImplSpec.Keccakf.Generic.spec_state", + "equation_EquivImplSpec.Keccakf.SpecRounds.spec_state", + "equation_Hacspec_sha3.Keccak_f.iota", + "equation_Hacspec_sha3.Keccak_f.v_ROUND_CONSTANTS", + "equation_Libcrux_sha3.Generic_keccak.Constants.v_ROUNDCONSTANTS", + "equation_Prims.nat", "equation_Prims.squash", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.Monomorphized_update_at.update_at_usize", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.sz", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "equation_Rust_primitives.Slice.slice_length", + "fuel_guarded_inversion_EquivImplSpec.Keccakf.Generic.lane_correctness", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "function_token_typing_Rust_primitives.Integers.u64", + "int_inversion", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "lemma_FStar.Seq.Base.lemma_eq_elim", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThan", + "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_21e0277b21b9413896fa7f0b23f8625e", + "refinement_interpretation_Tm_refine_2de20c066034c13bf76e9c0b94f4806c", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "refinement_interpretation_Tm_refine_bab4a06717c4d9e6359190593b450e33", + "refinement_interpretation_Tm_refine_f21ae58475c7fc74d7e8a7c2eff3f408", + "token_correspondence_Core_models.Ops.Index.f_index", + "typing_Hacspec_sha3.Keccak_f.iota", + "typing_Hacspec_sha3.Keccak_f.v_ROUND_CONSTANTS", + "typing_Libcrux_sha3.Generic_keccak.Constants.v_ROUNDCONSTANTS", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "352b40b5719011c2dbda6f425fa15e49" + ], + [ + "EquivImplSpec.Keccakf.Generic.impl_one_round", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Rust_primitives.Integers.MkInt", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Slice.impl__len", + "equation_Libcrux_sha3.Generic_keccak.Constants.v_ROUNDCONSTANTS", + "equation_Prims.nat", "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.mul", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.sz", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Slice.slice_length", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "int_inversion", "int_typing", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Multiply", "primitive_Prims.op_Subtraction", + "proj_equation_FStar.Pervasives.Native.Mktuple2_@_1", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_21e0277b21b9413896fa7f0b23f8625e", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Libcrux_sha3.Generic_keccak.Constants.v_ROUNDCONSTANTS", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "1e7c6e82da4f55a8da6a4d7781978b14" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_one_round_to_spec", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "b2t_def", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_EquivImplSpec.Keccakf.Generic.impl_one_round", + "equation_EquivImplSpec.Keccakf.Generic.spec_one_round", + "equation_EquivImplSpec.Keccakf.SpecRounds.spec_one_round", + "equation_Libcrux_sha3.Generic_keccak.impl_2__theta", + "equation_Prims.nat", "equation_Prims.squash", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_1", + "projection_inverse_FStar.Pervasives.Native.Mktuple2_@_2", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_2de20c066034c13bf76e9c0b94f4806c", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "10f16e6f4aa25a462b3675654266cdd6" + ], + [ + "EquivImplSpec.Keccakf.Generic.impl_rounds", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "Prims_pretyping_ae567c2fb75be05905677af440075565", + "assumption_Rust_primitives.Integers.int_t__uu___haseq", + "binder_x_2322db7733008fc85924dc96454224b2_3", + "binder_x_3a77ceb7bb6324c0d5c09dbbede3a3d5_0", + "binder_x_3a77ceb7bb6324c0d5c09dbbede3a3d5_4", "bool_inversion", + "bool_typing", "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Rust_primitives.Integers.MkInt", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.lte", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "function_token_typing_Prims.__cache_version_number__", + "int_inversion", "int_typing", + "lemma_Rust_primitives.Integers.pow2_values", + "lemma_Rust_primitives.Integers.v_mk_int_lemma", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_Equality", "primitive_Prims.op_LessThan", + "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@t", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.minint", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok", + "well-founded-ordering-on-nat" + ], + 0, + "ff6c012a5801998d1838d32ff8661d00" + ], + [ + "EquivImplSpec.Keccakf.Generic.impl_rounds", + 2, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.unsigned", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "16cf74799e1486ff3ec507baba3f0c1e" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_rounds_to_spec", + 1, + 1, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_EquivImplSpec.Keccakf.Generic.impl_rounds.fuel_instrumented", + "@fuel_correspondence_EquivImplSpec.Keccakf.SpecRounds.spec_rounds.fuel_instrumented", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", + "@fuel_irrelevance_EquivImplSpec.Keccakf.Generic.impl_rounds.fuel_instrumented", + "@fuel_irrelevance_EquivImplSpec.Keccakf.SpecRounds.spec_rounds.fuel_instrumented", + "@fuel_irrelevance_Prims.pow2.fuel_instrumented", "@query", + "Prims_pretyping_ae567c2fb75be05905677af440075565", + "assumption_Rust_primitives.Integers.int_t__uu___haseq", "b2t_def", + "binder_x_2322db7733008fc85924dc96454224b2_4", + "binder_x_3a77ceb7bb6324c0d5c09dbbede3a3d5_0", + "binder_x_3a77ceb7bb6324c0d5c09dbbede3a3d5_5", + "binder_x_412427b8b6279710726689993a61a871_6", + "binder_x_56b3264e5151669f75e696a4afcd2612_2", + "binder_x_7cef08a7df552ba75e3143afe1d601ef_3", + "binder_x_f9b4393cc603a1faf096d292b75c2298_1", "bool_inversion", + "bool_typing", "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Rust_primitives.Integers.MkInt", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_EquivImplSpec.Keccakf.Generic.spec_one_round", + "equation_EquivImplSpec.Keccakf.Generic.spec_rounds", + "equation_EquivImplSpec.Keccakf.SpecRounds.spec_state", + "equation_Prims.nat", "equation_Prims.squash", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.lte", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_with_fuel_EquivImplSpec.Keccakf.Generic.impl_rounds.fuel_instrumented", + "equation_with_fuel_EquivImplSpec.Keccakf.SpecRounds.spec_rounds.fuel_instrumented", + "fuel_guarded_inversion_EquivImplSpec.Keccakf.Generic.lane_correctness", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "function_token_typing_Prims.__cache_version_number__", + "int_inversion", "int_typing", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_Equality", "primitive_Prims.op_LessThan", + "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_2de20c066034c13bf76e9c0b94f4806c", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_5c5f398b3cff4e48d04453efca41e27d", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_EquivImplSpec.Keccakf.Generic.extract_lane", + "typing_Libcrux_sha3.Generic_keccak.__proj__Mkt_KeccakState__item__f_st", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.lte", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.USIZE@tok", + "well-founded-ordering-on-nat" + ], + 0, + "51e389c81407f1e21f8f6cb7f10738cc" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_rounds_to_spec", + 2, + 1, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", + "@fuel_irrelevance_Prims.pow2.fuel_instrumented", "@query", + "b2t_def", "bool_inversion", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Prims.squash", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "int_inversion", "int_typing", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_2de20c066034c13bf76e9c0b94f4806c", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "57a1d4d70fe49399c67fc38e9e8f5932" + ], + [ + "EquivImplSpec.Keccakf.Generic.keccakf_body", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "bool_inversion", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Slice.impl__len", + "equation_Libcrux_sha3.Generic_keccak.Constants.v_ROUNDCONSTANTS", + "equation_Prims.nat", "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.sz", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Slice.slice_length", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThan", + "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_21e0277b21b9413896fa7f0b23f8625e", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_a67f66693a5b871b79c600c9e08bd454", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Libcrux_sha3.Generic_keccak.Constants.v_ROUNDCONSTANTS", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "5978c97d4048368c923a228c7cbf9947" + ], + [ + "EquivImplSpec.Keccakf.Generic.keccakf_fold_local", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_556c7276aa861b118cdd5a165e9e4f0e", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "bb93904dad0c82abc4e66c4f8a9f6966" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_keccakf_fold_local_is_rounds", + 1, + 1, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_EquivImplSpec.Keccakf.Generic.impl_rounds.fuel_instrumented", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", + "@fuel_correspondence_Rust_primitives.Hax.Folds.fold_range.fuel_instrumented", + "@fuel_irrelevance_EquivImplSpec.Keccakf.Generic.impl_rounds.fuel_instrumented", + "@fuel_irrelevance_Prims.pow2.fuel_instrumented", + "@fuel_irrelevance_Rust_primitives.Hax.Folds.fold_range.fuel_instrumented", + "@query", + "EquivImplSpec.Keccakf.Generic_interpretation_Tm_arrow_9ca835f93f9318018085b204d8feb75c", + "EquivImplSpec.Keccakf.Generic_interpretation_Tm_arrow_c5ab2f321f8bf4390db48c3500ddfa8c", + "Prims_pretyping_ae567c2fb75be05905677af440075565", + "Rust_primitives.Hax.Folds_interpretation_Tm_arrow_8a1b3c71b8eb003c7bfb24d380080447", + "Rust_primitives.Hax.Folds_interpretation_Tm_arrow_c8b6fefc6a1ff03b84fa2dbb43486b72", + "assumption_Rust_primitives.Integers.int_t__uu___haseq", "b2t_def", + "binder_x_2322db7733008fc85924dc96454224b2_3", + "binder_x_3a77ceb7bb6324c0d5c09dbbede3a3d5_0", + "binder_x_3a77ceb7bb6324c0d5c09dbbede3a3d5_4", + "binder_x_56b3264e5151669f75e696a4afcd2612_2", + "binder_x_f9b4393cc603a1faf096d292b75c2298_1", "bool_inversion", + "bool_typing", "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Rust_primitives.Integers.MkInt", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_EquivImplSpec.Keccakf.Generic.impl_one_round", + "equation_EquivImplSpec.Keccakf.Generic.keccakf_body", + "equation_EquivImplSpec.Keccakf.Generic.keccakf_fold_local", + "equation_Prims.logical", "equation_Prims.nat", + "equation_Prims.squash", "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.lte", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_with_fuel_EquivImplSpec.Keccakf.Generic.impl_rounds.fuel_instrumented", + "equation_with_fuel_Rust_primitives.Hax.Folds.fold_range.fuel_instrumented", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "function_token_typing_Prims.__cache_version_number__", + "function_token_typing_Prims.l_True", "int_inversion", "int_typing", + "interpretation_Tm_abs_62b710721917bd40a1499d35a402dd44", + "interpretation_Tm_abs_70320acaa1e21c5e115fa8bb2ed5cb79", + "kinding_Libcrux_sha3.Generic_keccak.t_KeccakState@tok", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_Equality", "primitive_Prims.op_LessThan", + "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_066b9eb21a98c28e978234780f41cd65", + "refinement_interpretation_Tm_refine_2de20c066034c13bf76e9c0b94f4806c", + "refinement_interpretation_Tm_refine_51996c5c6192f6c4d97f417a4cc27ac1", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_a67f66693a5b871b79c600c9e08bd454", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "refinement_interpretation_Tm_refine_d68a8e9a56d7d58a15fd1befad9cf1e1", + "true_interp", "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.lte", + "typing_Rust_primitives.Integers.size_bits", + "typing_Tm_abs_62b710721917bd40a1499d35a402dd44", + "typing_Tm_abs_70320acaa1e21c5e115fa8bb2ed5cb79", + "typing_tok_Rust_primitives.Integers.USIZE@tok", + "well-founded-ordering-on-nat" + ], + 0, + "a60f7d28a0ea59f8dee20c1db1d3321c" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_keccakf_fold_local_is_rounds", + 2, + 1, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", + "@fuel_irrelevance_Prims.pow2.fuel_instrumented", "@query", + "b2t_def", "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Prims.squash", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.lte", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.v", "int_inversion", "int_typing", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_2de20c066034c13bf76e9c0b94f4806c", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "afb803c63da215a09cb6f753568cadd7" + ], + [ + "EquivImplSpec.Keccakf.Generic.keccakf_body_rnat", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Rust_primitives.Integers.MkInt", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "int_inversion", "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_273b490477cddb83cde7469c3489c55a", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "4c5617b8780da2666011f4e115e3055e" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_keccakf_body_is_one_round", + 1, + 1, + 1, + [ + "@MaxIFuel_assumption", "@query", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_EquivImplSpec.Keccakf.Generic.impl_one_round", + "equation_EquivImplSpec.Keccakf.Generic.keccakf_body", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "primitive_Prims.op_LessThan", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_a67f66693a5b871b79c600c9e08bd454" + ], + 0, + "0db72c90aec73ed656d921d08c39cda5" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_fold_range_nat_is_impl_rounds", + 1, + 1, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_EquivImplSpec.Keccakf.Generic.impl_rounds.fuel_instrumented", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", + "@fuel_correspondence_Proof_Utils.NatFold.fold_range_nat.fuel_instrumented", + "@fuel_irrelevance_EquivImplSpec.Keccakf.Generic.impl_rounds.fuel_instrumented", + "@fuel_irrelevance_Prims.pow2.fuel_instrumented", + "@fuel_irrelevance_Proof_Utils.NatFold.fold_range_nat.fuel_instrumented", + "@query", + "EquivImplSpec.Keccakf.Generic_interpretation_Tm_arrow_b5c5ddc74828dab3a9dee9844f990d11", + "Prims_pretyping_ae567c2fb75be05905677af440075565", + "Proof_Utils.NatFold_interpretation_Tm_arrow_bd1da0d284b931debe9bf450dfa59152", + "binder_x_2322db7733008fc85924dc96454224b2_3", + "binder_x_3a77ceb7bb6324c0d5c09dbbede3a3d5_0", + "binder_x_56b3264e5151669f75e696a4afcd2612_2", + "binder_x_571b8816b3de24e46424ce5f4f267c8c_4", + "binder_x_f9b4393cc603a1faf096d292b75c2298_1", "bool_inversion", + "bool_typing", "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Rust_primitives.Integers.MkInt", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_EquivImplSpec.Keccakf.Generic.impl_one_round", + "equation_EquivImplSpec.Keccakf.Generic.keccakf_body_rnat", + "equation_Libcrux_sha3.Generic_keccak.Constants.v_ROUNDCONSTANTS", + "equation_Prims.nat", "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.lte", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_with_fuel_EquivImplSpec.Keccakf.Generic.impl_rounds.fuel_instrumented", + "equation_with_fuel_Proof_Utils.NatFold.fold_range_nat.fuel_instrumented", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "function_token_typing_EquivImplSpec.Keccakf.Generic.keccakf_body_rnat", + "function_token_typing_Prims.__cache_version_number__", + "function_token_typing_Rust_primitives.Integers.u64", + "int_inversion", "int_typing", + "kinding_Libcrux_sha3.Generic_keccak.t_KeccakState@tok", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_Equality", "primitive_Prims.op_LessThan", + "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_0b7ef3d2b52e6501383c5d016b734f58", + "refinement_interpretation_Tm_refine_21e0277b21b9413896fa7f0b23f8625e", + "refinement_interpretation_Tm_refine_273b490477cddb83cde7469c3489c55a", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "refinement_interpretation_Tm_refine_c7f248c50d182c40aac9022fc9a66edc", + "refinement_interpretation_Tm_refine_edccc421660c61e3591d98071500d795", + "typing_FStar.Seq.Base.length", + "typing_Libcrux_sha3.Generic_keccak.Constants.v_ROUNDCONSTANTS", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.minint", + "typing_Rust_primitives.Integers.mk_usize", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok", + "well-founded-ordering-on-nat" + ], + 0, + "7608881e2a1e9526aaa25afb65ce1d69" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_fold_range_nat_is_impl_rounds", + 2, + 1, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", + "@fuel_irrelevance_Prims.pow2.fuel_instrumented", "@query", + "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Rust_primitives.Integers.MkInt", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.lte", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "int_inversion", "int_typing", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_87965f281743ea7b491d42bf5229cba2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "1e617456a07aebb648927f4993c8bd62" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_keccakf1600_is_rounds", + 1, + 1, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", + "@fuel_irrelevance_Prims.pow2.fuel_instrumented", "@query", + "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Rust_primitives.Integers.MkInt", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Slice.impl__len", + "equation_EquivImplSpec.Keccakf.Generic.keccakf_body", + "equation_EquivImplSpec.Keccakf.Generic.keccakf_body_rnat", + "equation_Libcrux_sha3.Generic_keccak.Constants.v_ROUNDCONSTANTS", + "equation_Libcrux_sha3.Generic_keccak.impl_2__keccakf1600", + "equation_Prims.nat", "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.lte", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.sz", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Slice.slice_length", + "fuel_guarded_inversion_Libcrux_sha3.Generic_keccak.t_KeccakState", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "int_inversion", "int_typing", + "lemma_Rust_primitives.Integers.mk_int_v_lemma", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_21e0277b21b9413896fa7f0b23f8625e", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "refinement_interpretation_Tm_refine_de8fb64794f3d3be9a0d175b28ad5581", + "typing_Libcrux_sha3.Generic_keccak.Constants.v_ROUNDCONSTANTS", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "b5020a0bab82a411eba8dfc831d55388" + ], + [ + "EquivImplSpec.Keccakf.Generic.lemma_keccakf1600_to_spec", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_EquivImplSpec.Keccakf.Generic.spec_rounds", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.lte", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_Libcrux_sha3.Traits.t_KeccakItem", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_3c519c8afa38c3c934a5bef97a712903", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "241a36d1d87e1231a3bdbc57a5b2a46e" + ] + ] +] \ No newline at end of file diff --git a/crates/algorithms/sha3/proofs/fstar/equivalence/.hints/EquivImplSpec.Keccakf.Portable.fst.hints b/crates/algorithms/sha3/proofs/fstar/equivalence/.hints/EquivImplSpec.Keccakf.Portable.fst.hints new file mode 100644 index 0000000000..919ba99555 --- /dev/null +++ b/crates/algorithms/sha3/proofs/fstar/equivalence/.hints/EquivImplSpec.Keccakf.Portable.fst.hints @@ -0,0 +1,603 @@ +[ + "b265e64410d1e999ea7c1da63218fe12", + [ + [ + "EquivImplSpec.Keccakf.Portable.portable_lc_zero", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Rust_primitives.Integers.MkInt", + "equality_tok_Rust_primitives.Integers.U64@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_EquivImplSpec.Keccakf.Portable.portable_lane", + "equation_Libcrux_sha3.Simd.Portable.impl", + "equation_Libcrux_sha3.Traits.f_zero", "equation_Prims.nat", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_u64", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.unsigned", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "int_inversion", + "interpretation_Tm_abs_85b579f30be9821b93e614b37bcd9b8b", + "interpretation_Tm_abs_91f62806e5548bfaf2c0bb75e41930af", + "interpretation_Tm_abs_d161c6fc3cafc427cc82b1e8a25a2f1b", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_zero_pre", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_zero", + "projection_inverse_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_zero_pre", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_9e7b7ec534a2a9a23ec52880cc32ece2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_zero_pre", + "token_correspondence_Libcrux_sha3.Traits.f_zero", "true_interp", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "57cafffc1f99e6ee3f8f0fb7386acb32" + ], + [ + "EquivImplSpec.Keccakf.Portable.portable_lc_xor5", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.U64", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.U64@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_EquivImplSpec.Keccakf.Portable.portable_lane", + "equation_Libcrux_sha3.Simd.Portable.e_veor5q_u64", + "equation_Libcrux_sha3.Simd.Portable.impl", + "equation_Libcrux_sha3.Traits.f_xor5", "equation_Prims.nat", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.unsigned", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "int_inversion", + "interpretation_Tm_abs_102f42c4ed9c78eb18badb9265620e17", + "interpretation_Tm_abs_9945fdcf8af2a1de74e692573d914f45", + "interpretation_Tm_abs_9b6089fd31ec3610e7a39c8960b918e0", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor5_pre", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor5", + "projection_inverse_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor5_pre", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_9e7b7ec534a2a9a23ec52880cc32ece2", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_xor5_pre", + "token_correspondence_Libcrux_sha3.Traits.f_xor5", "true_interp", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "abe6d44c6f4013a0610c3963c79e078f" + ], + [ + "EquivImplSpec.Keccakf.Portable.portable_lc_rotate_left1_and_xor", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "Prims_pretyping_ae567c2fb75be05905677af440075565", "bool_inversion", + "bool_typing", "constructor_distinct_Rust_primitives.Integers.U32", + "constructor_distinct_Rust_primitives.Integers.U64", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Rust_primitives.Integers.MkInt", + "equality_tok_Rust_primitives.Integers.I32@tok", + "equality_tok_Rust_primitives.Integers.U32@tok", + "equality_tok_Rust_primitives.Integers.U64@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_EquivImplSpec.Keccakf.Portable.portable_lane", + "equation_Libcrux_sha3.Simd.Portable.e_vrax1q_u64", + "equation_Libcrux_sha3.Simd.Portable.impl", + "equation_Libcrux_sha3.Simd.Portable.rotate_left", + "equation_Libcrux_sha3.Traits.f_rotate_left1_and_xor", + "equation_Prims.nat", "equation_Prims.pos", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.cast_mod", + "equation_Rust_primitives.Integers.i32", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_i32", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_u32", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.modulus", + "equation_Rust_primitives.Integers.op_At_Percent_Dot", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.sub", + "equation_Rust_primitives.Integers.u32", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.u64_inttype", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.cast", + "equation_Rust_primitives.cast_tc_integers", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "function_token_typing_Prims.__cache_version_number__", + "int_inversion", + "interpretation_Tm_abs_44d78164ecd3ae1d873768fc71c8c2e4", + "interpretation_Tm_abs_4e41eaf5703de6128b17c2c81e94b989", + "interpretation_Tm_abs_9b420abd7c3e11c07b133e6053abbd21", + "interpretation_Tm_abs_c67ffa662214ec54c707eb529398c6f5", + "interpretation_Tm_abs_e52af29d7e3dfdf63a074a1ffdcf5b27", + "lemma_Rust_primitives.Integers.pow2_values", + "lemma_Rust_primitives.Integers.v_mk_int_lemma", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_Equality", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Modulus", "primitive_Prims.op_Subtraction", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_rotate_left1_and_xor_pre", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_rotate_left1_and_xor", + "projection_inverse_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_rotate_left1_and_xor_pre", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_Rust_primitives.Mkcast_tc_@cast", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_774ba3f728d91ead8ef40be66c9802e5", + "refinement_interpretation_Tm_refine_9e7b7ec534a2a9a23ec52880cc32ece2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_rotate_left1_and_xor_pre", + "token_correspondence_Libcrux_sha3.Traits.f_rotate_left1_and_xor", + "token_correspondence_Rust_primitives.cast", "true_interp", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.modulus", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.U32@tok", + "typing_tok_Rust_primitives.Integers.U64@tok", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "70406c137d03daffcccd1b1acedc7d6f" + ], + [ + "EquivImplSpec.Keccakf.Portable.portable_lc_xor_and_rotate", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "Prims_pretyping_ae567c2fb75be05905677af440075565", "b2t_def", + "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.I32", + "constructor_distinct_Rust_primitives.Integers.U64", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Rust_primitives.Integers.MkInt", + "equality_tok_Rust_primitives.Integers.I32@tok", + "equality_tok_Rust_primitives.Integers.U64@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_EquivImplSpec.Keccakf.Portable.portable_lane", + "equation_Libcrux_sha3.Simd.Portable.e_vxarq_u64", + "equation_Libcrux_sha3.Simd.Portable.impl", + "equation_Libcrux_sha3.Simd.Portable.rotate_left", + "equation_Libcrux_sha3.Traits.f_xor_and_rotate", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.gt", + "equation_Rust_primitives.Integers.i32", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_i32", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "function_token_typing_Prims.__cache_version_number__", + "int_inversion", "int_typing", + "interpretation_Tm_abs_1eeff65ff9c3b4718cb125a4d4298f2a", + "interpretation_Tm_abs_1f81c164d14faa41c130347ecf560df5", + "interpretation_Tm_abs_7f3ceddca398b7c44e4939294b2a085f", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_Equality", + "primitive_Prims.op_GreaterThan", + "primitive_Prims.op_LessThanOrEqual", "primitive_Prims.op_Minus", + "primitive_Prims.op_Subtraction", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor_and_rotate_pre", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor_and_rotate", + "projection_inverse_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor_and_rotate_pre", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_9e7b7ec534a2a9a23ec52880cc32ece2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "refinement_interpretation_Tm_refine_e15422d7e08b3699e1d0be0bba6b3258", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_xor_and_rotate_pre", + "token_correspondence_Libcrux_sha3.Traits.f_xor_and_rotate", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.I32@tok", + "typing_tok_Rust_primitives.Integers.U64@tok", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "71e9e35e1499826f7f5128980ec6ee3f" + ], + [ + "EquivImplSpec.Keccakf.Portable.portable_lc_and_not_xor", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.U64", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.U64@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_EquivImplSpec.Keccakf.Portable.portable_lane", + "equation_Libcrux_sha3.Simd.Portable.e_vbcaxq_u64", + "equation_Libcrux_sha3.Simd.Portable.impl", + "equation_Libcrux_sha3.Traits.f_and_not_xor", "equation_Prims.nat", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.unsigned", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "int_inversion", + "interpretation_Tm_abs_0767e9d28e7b6dad8591a719aa2cdc30", + "interpretation_Tm_abs_39239c6131bcfc38a5c28503d85d9aa5", + "interpretation_Tm_abs_b3415a74df5b6badedff49d0e4c315f8", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_and_not_xor_pre", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_and_not_xor", + "projection_inverse_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_and_not_xor_pre", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_9e7b7ec534a2a9a23ec52880cc32ece2", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_and_not_xor_pre", + "token_correspondence_Libcrux_sha3.Traits.f_and_not_xor", + "true_interp", "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "e03dbc5db3bb1a6d3f00de654c60d43e" + ], + [ + "EquivImplSpec.Keccakf.Portable.portable_lc_xor_constant", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.U64", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.U64@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_EquivImplSpec.Keccakf.Portable.portable_lane", + "equation_Libcrux_sha3.Simd.Portable.e_veorq_n_u64", + "equation_Libcrux_sha3.Simd.Portable.impl", + "equation_Libcrux_sha3.Traits.f_xor_constant", "equation_Prims.nat", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.unsigned", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "int_inversion", + "interpretation_Tm_abs_4a07bec5c4cbf1be55632b9c0b1c19dd", + "interpretation_Tm_abs_a2b6f0a9718ad3ef32c23aa67ec84873", + "interpretation_Tm_abs_e52af29d7e3dfdf63a074a1ffdcf5b27", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor_constant_pre", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor_constant", + "projection_inverse_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor_constant_pre", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_9e7b7ec534a2a9a23ec52880cc32ece2", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_xor_constant_pre", + "token_correspondence_Libcrux_sha3.Traits.f_xor_constant", + "true_interp", "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "03fe442e89b255e17413e549cc42dbbf" + ], + [ + "EquivImplSpec.Keccakf.Portable.portable_lc_xor", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.U64", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.U64@tok", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_EquivImplSpec.Keccakf.Portable.portable_lane", + "equation_Libcrux_sha3.Simd.Portable.impl", + "equation_Libcrux_sha3.Traits.f_xor", "equation_Prims.nat", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.unsigned", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "int_inversion", + "interpretation_Tm_abs_497760c36a382f86b3f697d2044fa243", + "interpretation_Tm_abs_6c724cf449e8e345fb2b9fb8cc1b6524", + "interpretation_Tm_abs_e52af29d7e3dfdf63a074a1ffdcf5b27", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor_pre", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor", + "projection_inverse_Libcrux_sha3.Traits.Mkt_KeccakItem_@f_xor_pre", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_9e7b7ec534a2a9a23ec52880cc32ece2", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "token_correspondence_Libcrux_sha3.Traits.__proj__Mkt_KeccakItem__item__f_xor_pre", + "token_correspondence_Libcrux_sha3.Traits.f_xor", "true_interp", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "abf5d2633d33dfd8c9c62ed8e3ad8609" + ], + [ + "EquivImplSpec.Keccakf.Portable.lc_portable", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.v", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "2cf29ed110a261d22341fac7da4644fd" + ], + [ + "EquivImplSpec.Keccakf.Portable.lemma_extract_lane_portable_identity", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "b2t_def", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Core_models.Ops.Index.f_index", + "equation_Core_models.Ops.Index.f_index_pre", + "equation_EquivImplSpec.Keccakf.Portable.lc_portable", + "equation_EquivImplSpec.Keccakf.Portable.portable_lane", + "equation_Libcrux_sha3.Simd.Portable.impl", "equation_Prims.nat", + "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Hax.impl__index", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_Rust_primitives.Notations.op_String_Access", + "function_token_typing_Rust_primitives.Integers.u64", + "int_inversion", "int_typing", + "interpretation_Tm_abs_4ab552b3415220d2b607f7d57c958117", + "interpretation_Tm_abs_5868e62885022fbd12d9059af52f4674", + "interpretation_Tm_abs_9e51361188a25d28bb48d6a215e0ee9b", + "interpretation_Tm_abs_cae63eba7e18c3a3d84075d3995a179a", + "lemma_FStar.Seq.Base.lemma_eq_elim", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_EquivImplSpec.Keccakf.Generic.Mklane_correctness_@lane", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index", + "projection_inverse_Core_models.Ops.Index.Mkt_Index_@f_index_pre", + "projection_inverse_EquivImplSpec.Keccakf.Generic.Mklane_correctness_@lane", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_21e0277b21b9413896fa7f0b23f8625e", + "refinement_interpretation_Tm_refine_3af88438d0812e1d827db29465786d3a", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_693213d29dc5b9d0a76e3af0564654aa", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "token_correspondence_Core_models.Ops.Index.f_index", + "token_correspondence_Core_models.Ops.Index.f_index_pre", + "token_correspondence_EquivImplSpec.Keccakf.Generic.__proj__Mklane_correctness__item__lane", + "token_correspondence_EquivImplSpec.Keccakf.Portable.portable_lane", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "fd58024c13c1725449c0cc5b7906c908" + ], + [ + "EquivImplSpec.Keccakf.Portable.lemma_extract_lane_portable_identity", + 2, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.unsigned", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "2fa1147c7065b7bb3964e48954f679ea" + ], + [ + "EquivImplSpec.Keccakf.Portable.lemma_keccakf1600_portable", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Libcrux_sha3.Traits.Mkt_KeccakItem", + "data_elim_Rust_primitives.Integers.MkInt", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Libcrux_sha3.Simd.Portable.impl", "equation_Prims.nat", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", "int_typing", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Libcrux_sha3.Simd.Portable.impl", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "89fcde65698a225bfabe0cc5f9bc6c55" + ], + [ + "EquivImplSpec.Keccakf.Portable.lemma_keccakf1600_portable", + 2, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.unsigned", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "8da2c4cf4f3bb603b5192e2daa9d56f1" + ] + ] +] \ No newline at end of file diff --git a/crates/algorithms/sha3/proofs/fstar/equivalence/.hints/EquivImplSpec.Keccakf.SpecRounds.fst.hints b/crates/algorithms/sha3/proofs/fstar/equivalence/.hints/EquivImplSpec.Keccakf.SpecRounds.fst.hints new file mode 100644 index 0000000000..b131829395 --- /dev/null +++ b/crates/algorithms/sha3/proofs/fstar/equivalence/.hints/EquivImplSpec.Keccakf.SpecRounds.fst.hints @@ -0,0 +1,249 @@ +[ + "afc9855a38c759d630ff8d17d99a7c4c", + [ + [ + "EquivImplSpec.Keccakf.SpecRounds.spec_state", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.unsigned", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "ce4923e4039227e2a37c9774b71f6bbf" + ], + [ + "EquivImplSpec.Keccakf.SpecRounds.spec_one_round", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_EquivImplSpec.Keccakf.SpecRounds.spec_state", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.unsigned", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "a57f7bfa4f2d05b475bada4f0e7a6959" + ], + [ + "EquivImplSpec.Keccakf.SpecRounds.spec_rounds", + 1, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "Prims_pretyping_ae567c2fb75be05905677af440075565", + "assumption_Rust_primitives.Integers.int_t__uu___haseq", + "binder_x_3a77ceb7bb6324c0d5c09dbbede3a3d5_1", + "binder_x_6173fc66c0db2954367d8319920acab1_0", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Rust_primitives.Integers.MkInt", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.lte", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "function_token_typing_Prims.__cache_version_number__", + "int_inversion", "int_typing", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_Equality", "primitive_Prims.op_LessThan", + "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok", + "well-founded-ordering-on-nat" + ], + 0, + "39eac20f15176d5f09eebdb7e2164dc9" + ], + [ + "EquivImplSpec.Keccakf.SpecRounds.spec_rounds", + 2, + 0, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.unsigned", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.size_bits", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "d203dc7fe693e0e6798b9ff52b01fce4" + ], + [ + "EquivImplSpec.Keccakf.SpecRounds.lemma_keccak_f_is_rounds", + 1, + 30, + 2, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_EquivImplSpec.Keccakf.SpecRounds.spec_rounds.fuel_instrumented", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", + "@fuel_correspondence_Rust_primitives.Hax.Folds.fold_range.fuel_instrumented", + "@fuel_irrelevance_Prims.pow2.fuel_instrumented", "@query", + "Hacspec_sha3.Keccak_f_interpretation_Tm_arrow_6810ffd7fedc9f5daa2182e9ac575b71", + "Hacspec_sha3.Keccak_f_interpretation_Tm_arrow_7a864fbdb6dd4bcf55036cd2914f3e4c", + "Hacspec_sha3.Keccak_f_interpretation_Tm_arrow_d98c07d1b05717a33aa6ea3355704a07", + "Hacspec_sha3_interpretation_Tm_arrow_bf71e124d232d47c997d72c21e536b9a", + "Rust_primitives.Arrays_interpretation_Tm_arrow_0d263c675f2f6a422e85e8ffa504d5e2", + "Rust_primitives.Hax.Folds_interpretation_Tm_arrow_8a1b3c71b8eb003c7bfb24d380080447", + "Rust_primitives.Hax.Folds_interpretation_Tm_arrow_c8b6fefc6a1ff03b84fa2dbb43486b72", + "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_EquivImplSpec.Keccakf.SpecRounds.spec_one_round", + "equation_EquivImplSpec.Keccakf.SpecRounds.spec_state", + "equation_Hacspec_sha3.Keccak_f.chi", + "equation_Hacspec_sha3.Keccak_f.iota", + "equation_Hacspec_sha3.Keccak_f.keccak_f", + "equation_Hacspec_sha3.Keccak_f.pi", + "equation_Hacspec_sha3.Keccak_f.rho", + "equation_Hacspec_sha3.Keccak_f.theta", + "equation_Hacspec_sha3.createi", "equation_Prims.logical", + "equation_Prims.nat", "equation_Rust_primitives.Arrays.t_Array", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.lt", + "equation_Rust_primitives.Integers.lte", + "equation_Rust_primitives.Integers.max_usize", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.u64", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_with_fuel_EquivImplSpec.Keccakf.SpecRounds.spec_rounds.fuel_instrumented", + "equation_with_fuel_Rust_primitives.Hax.Folds.fold_range.fuel_instrumented", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "function_token_typing_EquivImplSpec.Keccakf.SpecRounds.spec_state", + "function_token_typing_Prims.l_True", + "function_token_typing_Rust_primitives.Integers.u64", + "int_inversion", "int_typing", + "interpretation_Tm_abs_c7a42c9e2d08fd782bf7613c32495cc6", + "interpretation_Tm_abs_fec714da2f5de09f2f4136a904db729a", + "kinding_Tm_arrow_d28fde83d99b9fd411f0baa86bc882a5", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_Equality", "primitive_Prims.op_GreaterThan", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_066b9eb21a98c28e978234780f41cd65", + "refinement_interpretation_Tm_refine_21e0277b21b9413896fa7f0b23f8625e", + "refinement_interpretation_Tm_refine_221edc532b512849362f091b0318b99d", + "refinement_interpretation_Tm_refine_414b3103e63acaca337a620ee42bb932", + "refinement_interpretation_Tm_refine_51996c5c6192f6c4d97f417a4cc27ac1", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_6af5dd912a49c5aa2d10fa9f5a5534c2", + "refinement_interpretation_Tm_refine_6c47c697fcc84e50a76cc2c5fae4d1cf", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "refinement_interpretation_Tm_refine_d68a8e9a56d7d58a15fd1befad9cf1e1", + "refinement_interpretation_Tm_refine_de8fb64794f3d3be9a0d175b28ad5581", + "refinement_interpretation_Tm_refine_e39af703595e7eb2b64454d7798b53d7", + "refinement_interpretation_Tm_refine_eea4a7aaf0d9fd792b6bd561042bfd5e", + "refinement_interpretation_Tm_refine_f21ae58475c7fc74d7e8a7c2eff3f408", + "true_interp", + "typing_EquivImplSpec.Keccakf.SpecRounds.spec_one_round", + "typing_FStar.Seq.Base.length", "typing_Hacspec_sha3.Keccak_f.chi", + "typing_Hacspec_sha3.Keccak_f.iota", + "typing_Hacspec_sha3.Keccak_f.keccak_f", + "typing_Hacspec_sha3.Keccak_f.pi", + "typing_Hacspec_sha3.Keccak_f.rho", + "typing_Hacspec_sha3.Keccak_f.theta", "typing_Hacspec_sha3.createi", + "typing_Rust_primitives.Arrays.createi", + "typing_Rust_primitives.Integers.add", + "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.minint", + "typing_Rust_primitives.Integers.mk_int", + "typing_Rust_primitives.Integers.mk_usize", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Tm_abs_6e12770ddd2256a6e162b3b613591f54", + "typing_Tm_abs_6ec269a97cc9e7124e00f9ceda15e72d", + "typing_Tm_abs_c7a42c9e2d08fd782bf7613c32495cc6", + "typing_Tm_abs_fec714da2f5de09f2f4136a904db729a", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "f80a8d850b6b37d5a508bb2607f78e6d" + ] + ] +] \ No newline at end of file diff --git a/crates/algorithms/sha3/proofs/fstar/equivalence/.hints/Proof_Utils.FoldRange.fst.hints b/crates/algorithms/sha3/proofs/fstar/equivalence/.hints/Proof_Utils.FoldRange.fst.hints new file mode 100644 index 0000000000..d06d861fd6 --- /dev/null +++ b/crates/algorithms/sha3/proofs/fstar/equivalence/.hints/Proof_Utils.FoldRange.fst.hints @@ -0,0 +1,89 @@ +[ + "b9ff537c1a8a1860d861e1832b1da2a5", + [ + [ + "Proof_Utils.FoldRange.lemma_fold_range_step", + 1, + 1, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Rust_primitives.Hax.Folds.fold_range.fuel_instrumented", + "@fuel_irrelevance_Rust_primitives.Hax.Folds.fold_range.fuel_instrumented", + "@query", + "Proof_Utils.FoldRange_interpretation_Tm_arrow_33698dc5b2191058ab0805f4c54cd6d4", + "Proof_Utils.FoldRange_interpretation_Tm_arrow_c5997104e637778d6a1b7447da745939", + "Rust_primitives.Hax.Folds_interpretation_Tm_arrow_8a1b3c71b8eb003c7bfb24d380080447", + "Rust_primitives.Hax.Folds_interpretation_Tm_arrow_c8b6fefc6a1ff03b84fa2dbb43486b72", + "b2t_def", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Rust_primitives.Integers.MkInt", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.squash", "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_usize", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "equation_with_fuel_Rust_primitives.Hax.Folds.fold_range.fuel_instrumented", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "int_inversion", "int_typing", + "lemma_Rust_primitives.Integers.v_mk_int_lemma", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_066b9eb21a98c28e978234780f41cd65", + "refinement_interpretation_Tm_refine_1e7d3ff6e5e7286312691ca528f40f6f", + "refinement_interpretation_Tm_refine_2de20c066034c13bf76e9c0b94f4806c", + "refinement_interpretation_Tm_refine_4f976b37a6f11355fd7b009188f8476b", + "refinement_interpretation_Tm_refine_51996c5c6192f6c4d97f417a4cc27ac1", + "refinement_interpretation_Tm_refine_6d10f7853713d9507f1ae802b7d98f50", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_c278c822ef4c8c91b70968f143a48c20", + "refinement_interpretation_Tm_refine_d68a8e9a56d7d58a15fd1befad9cf1e1", + "refinement_interpretation_Tm_refine_ef481a7ae2476286a44a20bc24f9ec1a", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "cdc9971d8b98393a1f8db0dddc979469" + ], + [ + "Proof_Utils.FoldRange.lemma_fold_range_step", + 2, + 1, + 1, + [ + "@MaxIFuel_assumption", "@query", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "data_elim_Rust_primitives.Integers.MkInt", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "int_inversion", "primitive_Prims.op_Addition", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_6d10f7853713d9507f1ae802b7d98f50", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0" + ], + 0, + "c54a787b7e0ea396f707b317e54a601e" + ] + ] +] \ No newline at end of file diff --git a/crates/algorithms/sha3/proofs/fstar/equivalence/.hints/Proof_Utils.Lemmas.fst.hints b/crates/algorithms/sha3/proofs/fstar/equivalence/.hints/Proof_Utils.Lemmas.fst.hints new file mode 100644 index 0000000000..40354f6c8e --- /dev/null +++ b/crates/algorithms/sha3/proofs/fstar/equivalence/.hints/Proof_Utils.Lemmas.fst.hints @@ -0,0 +1,79 @@ +[ + "53c2702cefb764ed7921bb8054c4fd14", + [ + [ + "Proof_Utils.Lemmas.lemma_rotate_left_zero", + 1, + 0, + 1, + [ + "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", "@query", + "Prims_pretyping_ae567c2fb75be05905677af440075565", + "constructor_distinct_Rust_primitives.Integers.U32", + "constructor_distinct_Rust_primitives.Integers.U64", + "equality_tok_Rust_primitives.Integers.U32@tok", + "equation_Prims.nat", "equation_Prims.pos", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.mk_u32", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.v", + "function_token_typing_Prims.__cache_version_number__", + "int_inversion", "int_typing", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_Equality", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Modulus", "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_774ba3f728d91ead8ef40be66c9802e5", + "typing_Prims.pow2", "typing_Rust_primitives.Integers.bits", + "typing_tok_Rust_primitives.Integers.U32@tok" + ], + 0, + "71c2ce510e65cdfea3cc331fb79818c7" + ], + [ + "Proof_Utils.Lemmas.lemma_index_update_at_range", + 1, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", "bool_inversion", "bool_typing", + "constructor_distinct_Rust_primitives.Integers.USIZE", + "equality_tok_Rust_primitives.Integers.USIZE@tok", + "equation_Prims.nat", "equation_Rust_primitives.Arrays.t_Slice", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.usize", + "fuel_guarded_inversion_Core_models.Ops.Range.t_Range", + "function_token_typing_Rust_primitives.Integers.usize", + "int_inversion", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_GreaterThanOrEqual", + "primitive_Prims.op_LessThan", "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_fd980a4a94cc34052e6e36a3c682afca", + "refinement_interpretation_Tm_refine_fe16053d5752c4abc20b8e062d537fea", + "typing_Core_models.Ops.Range.__proj__Mkt_Range__item__f_end", + "typing_Core_models.Ops.Range.__proj__Mkt_Range__item__f_start", + "typing_FStar.Seq.Base.length", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.v", + "typing_tok_Rust_primitives.Integers.USIZE@tok" + ], + 0, + "0f597853c68398241b0891a2ef364f6c" + ] + ] +] \ No newline at end of file diff --git a/crates/algorithms/sha3/proofs/fstar/equivalence/.hints/Proof_Utils.NatFold.fst.hints b/crates/algorithms/sha3/proofs/fstar/equivalence/.hints/Proof_Utils.NatFold.fst.hints new file mode 100644 index 0000000000..dbe15850b0 --- /dev/null +++ b/crates/algorithms/sha3/proofs/fstar/equivalence/.hints/Proof_Utils.NatFold.fst.hints @@ -0,0 +1,367 @@ +[ + "631c9f84c7cbeb95185fe4be235e80f8", + [ + [ + "Proof_Utils.NatFold.fold_nat_range", + 1, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", + "Prims_pretyping_ae567c2fb75be05905677af440075565", + "binder_x_bb4e1c9af0265270f8e7a5f250f730e2_1", + "binder_x_bb4e1c9af0265270f8e7a5f250f730e2_2", "equation_Prims.nat", + "function_token_typing_Prims.__cache_version_number__", + "int_inversion", "int_typing", "primitive_Prims.op_Addition", + "primitive_Prims.op_LessThan", "primitive_Prims.op_Subtraction", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "well-founded-ordering-on-nat" + ], + 0, + "5009252912ec75b1aba8c85f7166a4e9" + ], + [ + "Proof_Utils.NatFold.fold_range_nat", + 1, + 0, + 1, + [ + "@MaxIFuel_assumption", "@query", + "Prims_pretyping_ae567c2fb75be05905677af440075565", + "binder_x_5d0400e7e64130b1f4854127a0139fff_3", + "binder_x_bb4e1c9af0265270f8e7a5f250f730e2_1", + "binder_x_bb4e1c9af0265270f8e7a5f250f730e2_2", "equation_Prims.nat", + "function_token_typing_Prims.__cache_version_number__", + "int_inversion", "int_typing", "primitive_Prims.op_Addition", + "primitive_Prims.op_LessThan", "primitive_Prims.op_Subtraction", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_8ed6602de5b0c2e9764cf5d3c31b16e1", + "well-founded-ordering-on-nat" + ], + 0, + "5560498fdf08a47ad59c99d8d5d114b9" + ], + [ + "Proof_Utils.NatFold.lemma_fold_range_is_nat", + 1, + 1, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Proof_Utils.NatFold.fold_nat_range.fuel_instrumented", + "@fuel_correspondence_Rust_primitives.Hax.Folds.fold_range.fuel_instrumented", + "@fuel_irrelevance_Proof_Utils.NatFold.fold_nat_range.fuel_instrumented", + "@fuel_irrelevance_Rust_primitives.Hax.Folds.fold_range.fuel_instrumented", + "@query", "Prims_pretyping_ae567c2fb75be05905677af440075565", + "Proof_Utils.NatFold_interpretation_Tm_arrow_17c775e6de93114d382f1ff863b0ca30", + "Proof_Utils.NatFold_interpretation_Tm_arrow_6e0f0d33c4aa1a11274f175b51b894ff", + "Proof_Utils.NatFold_interpretation_Tm_arrow_8a3b53d7617ef10ec82a5af55b46a69f", + "Proof_Utils.NatFold_interpretation_Tm_arrow_fecf6d2e76722d527dc99698e5590a92", + "Rust_primitives.Hax.Folds_interpretation_Tm_arrow_8a1b3c71b8eb003c7bfb24d380080447", + "Rust_primitives.Hax.Folds_interpretation_Tm_arrow_c8b6fefc6a1ff03b84fa2dbb43486b72", + "binder_x_200cea1722bd1d7c0998e4308c392e60_5", + "binder_x_293ea8b16633370d454172be0f2f43cc_7", + "binder_x_2f874de7a35407f95c94af92d9dd525b_2", + "binder_x_2f874de7a35407f95c94af92d9dd525b_3", + "binder_x_5bf0d6230ddddf736007816157114b40_6", + "binder_x_72bedba789610b355c819db7fcccbd85_1", + "binder_x_f0c148a88bc09b136355d27739a593fb_4", + "binder_x_f9b4393cc603a1faf096d292b75c2298_0", "bool_inversion", + "bool_typing", "data_elim_Rust_primitives.Integers.MkInt", + "equation_Prims.nat", "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.uinttype", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.v", + "equation_with_fuel_Proof_Utils.NatFold.fold_nat_range.fuel_instrumented", + "equation_with_fuel_Rust_primitives.Hax.Folds.fold_range.fuel_instrumented", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "function_token_typing_Prims.__cache_version_number__", + "int_inversion", "int_typing", "primitive_Prims.op_Addition", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThan", + "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_066b9eb21a98c28e978234780f41cd65", + "refinement_interpretation_Tm_refine_0ad9c12bff8ec3577ad8e5a62a95c9d6", + "refinement_interpretation_Tm_refine_0d43d7650f1ca86f59da90afc602e163", + "refinement_interpretation_Tm_refine_3c5de41c8b199a01b5d8e299d1224062", + "refinement_interpretation_Tm_refine_4f976b37a6f11355fd7b009188f8476b", + "refinement_interpretation_Tm_refine_51996c5c6192f6c4d97f417a4cc27ac1", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_5dd36c8d2b3368afc1b0b2d885bfa84e", + "refinement_interpretation_Tm_refine_a1eefd213e113f8b4d85ed2eca50691b", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_afd0449fb85161b0491093d6132093cd", + "refinement_interpretation_Tm_refine_c1424615841f28cac7fc34e92b7ff33c", + "refinement_interpretation_Tm_refine_d68a8e9a56d7d58a15fd1befad9cf1e1", + "refinement_interpretation_Tm_refine_e8c9ca07e52b89077badab099f006d55", + "typing_Proof_Utils.NatFold.fold_nat_range", + "typing_Rust_primitives.Integers.unsigned", + "well-founded-ordering-on-nat" + ], + 0, + "e4e81e9316f496413c871ddc037f6eef" + ], + [ + "Proof_Utils.NatFold.lemma_fold_range_is_nat", + 2, + 1, + 1, + [ + "@MaxIFuel_assumption", "@query", "bool_inversion", "bool_typing", + "data_elim_Rust_primitives.Integers.MkInt", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.uinttype", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "int_inversion", "primitive_Prims.op_Addition", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThanOrEqual", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_51996c5c6192f6c4d97f417a4cc27ac1", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_e8c9ca07e52b89077badab099f006d55", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.unsigned", + "typing_Rust_primitives.Integers.v" + ], + 0, + "5f45da5de176a5cd621b0d383a8ff502" + ], + [ + "Proof_Utils.NatFold.lemma_fold_range_is_range_nat", + 1, + 1, + 1, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Proof_Utils.NatFold.fold_range_nat.fuel_instrumented", + "@fuel_correspondence_Rust_primitives.Hax.Folds.fold_range.fuel_instrumented", + "@fuel_irrelevance_Proof_Utils.NatFold.fold_range_nat.fuel_instrumented", + "@fuel_irrelevance_Rust_primitives.Hax.Folds.fold_range.fuel_instrumented", + "@query", "Prims_pretyping_ae567c2fb75be05905677af440075565", + "Proof_Utils.NatFold_interpretation_Tm_arrow_0db0b440140da435d62945ad020da432", + "Proof_Utils.NatFold_interpretation_Tm_arrow_484fa2fac7529afc6103a426112bd7a5", + "Proof_Utils.NatFold_interpretation_Tm_arrow_51c5189c642b4fce99f963b08353de64", + "Proof_Utils.NatFold_interpretation_Tm_arrow_bd1da0d284b931debe9bf450dfa59152", + "Rust_primitives.Hax.Folds_interpretation_Tm_arrow_8a1b3c71b8eb003c7bfb24d380080447", + "Rust_primitives.Hax.Folds_interpretation_Tm_arrow_c8b6fefc6a1ff03b84fa2dbb43486b72", + "binder_x_011d9f19cc4cbe5081bd524771c256a7_6", + "binder_x_2f874de7a35407f95c94af92d9dd525b_2", + "binder_x_2f874de7a35407f95c94af92d9dd525b_3", + "binder_x_72bedba789610b355c819db7fcccbd85_1", + "binder_x_8c121c581e9968c873236d8687b72765_7", + "binder_x_9d3e2725fb1224b731895cc6dc9ae4b3_5", + "binder_x_f1c266ba24149147a48732a4edd70d75_8", + "binder_x_f9b4393cc603a1faf096d292b75c2298_0", + "binder_x_fc1c69bb661f88433b85899ba968c929_4", "bool_inversion", + "bool_typing", "equation_Prims.nat", + "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.uinttype", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.v", + "equation_with_fuel_Proof_Utils.NatFold.fold_range_nat.fuel_instrumented", + "equation_with_fuel_Rust_primitives.Hax.Folds.fold_range.fuel_instrumented", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "function_token_typing_Prims.__cache_version_number__", + "int_inversion", "int_typing", "primitive_Prims.op_Addition", + "primitive_Prims.op_AmpAmp", "primitive_Prims.op_LessThan", + "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_066b9eb21a98c28e978234780f41cd65", + "refinement_interpretation_Tm_refine_1e09d75af60944785302c8d7e3fdc446", + "refinement_interpretation_Tm_refine_33e3c81445c7a13f57bf54890e5ee573", + "refinement_interpretation_Tm_refine_4f976b37a6f11355fd7b009188f8476b", + "refinement_interpretation_Tm_refine_51996c5c6192f6c4d97f417a4cc27ac1", + "refinement_interpretation_Tm_refine_542f02bebeb083f968ce44c3e2e05e53", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_59266fe48f16ce0f8b3195d8e7355710", + "refinement_interpretation_Tm_refine_5cc1802f6deb75f113e9703468740bc4", + "refinement_interpretation_Tm_refine_9b999e277fcaf7790022be15680430d1", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_ba687d8fc8de2b338932603676f64eaf", + "refinement_interpretation_Tm_refine_c7f248c50d182c40aac9022fc9a66edc", + "refinement_interpretation_Tm_refine_d68a8e9a56d7d58a15fd1befad9cf1e1", + "refinement_interpretation_Tm_refine_e8c9ca07e52b89077badab099f006d55", + "refinement_interpretation_Tm_refine_edccc421660c61e3591d98071500d795", + "typing_Proof_Utils.NatFold.fold_range_nat", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.unsigned", + "typing_Rust_primitives.Integers.v", "well-founded-ordering-on-nat" + ], + 0, + "cc93ca306bee777b7adbea05e421b399" + ], + [ + "Proof_Utils.NatFold.lemma_fold_range_is_range_nat", + 2, + 1, + 1, + [ + "@MaxIFuel_assumption", "@query", "bool_inversion", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.uinttype", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_LessThanOrEqual", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_098301f6c7014da2a754561b0f9d4087", + "refinement_interpretation_Tm_refine_51996c5c6192f6c4d97f417a4cc27ac1", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_e8c9ca07e52b89077badab099f006d55", + "typing_Rust_primitives.Integers.unsigned", + "typing_Rust_primitives.Integers.v" + ], + 0, + "0c73cb64d2c8019d1a4eeb2cc0be4d0d" + ], + [ + "Proof_Utils.NatFold.lemma_fold_range_unroll_5", + 1, + 6, + 2, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", + "@fuel_correspondence_Rust_primitives.Hax.Folds.fold_range.fuel_instrumented", + "@fuel_irrelevance_Prims.pow2.fuel_instrumented", "@query", + "Prims_pretyping_ae567c2fb75be05905677af440075565", + "Proof_Utils.NatFold_interpretation_Tm_arrow_8ec4c9cde5966ce63c2228281224de1a", + "Proof_Utils.NatFold_interpretation_Tm_arrow_930446a170c4fb69ffae2d5cae043403", + "Rust_primitives.Hax.Folds_interpretation_Tm_arrow_8a1b3c71b8eb003c7bfb24d380080447", + "Rust_primitives.Hax.Folds_interpretation_Tm_arrow_c8b6fefc6a1ff03b84fa2dbb43486b72", + "Rust_primitives.Integers_pretyping_1eff91dc290b8194aeb15d2394025944", + "bool_inversion", "bool_typing", "equation_Prims.nat", + "equation_Prims.pos", "equation_Rust_primitives.Integers.add", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.uinttype", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.v", + "equation_with_fuel_Rust_primitives.Hax.Folds.fold_range.fuel_instrumented", + "fuel_guarded_inversion_Rust_primitives.Integers.inttype", + "function_token_typing_Prims.__cache_version_number__", + "int_inversion", "int_typing", "lemma_FStar.UInt.pow2_values", + "lemma_Rust_primitives.Integers.pow2_values", + "lemma_Rust_primitives.Integers.v_mk_int_lemma", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_GreaterThan", "primitive_Prims.op_LessThan", + "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_014b8d2df9fbdc40b1dc33c067324612", + "refinement_interpretation_Tm_refine_066b9eb21a98c28e978234780f41cd65", + "refinement_interpretation_Tm_refine_23af6b8be8c2a870e8cc3bd77ed45ab8", + "refinement_interpretation_Tm_refine_3e1bd0090e9eeafbe382597e5eaee0fd", + "refinement_interpretation_Tm_refine_4f976b37a6f11355fd7b009188f8476b", + "refinement_interpretation_Tm_refine_51996c5c6192f6c4d97f417a4cc27ac1", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_6b00cb65a6cacb2a8d5a5645293d59a5", + "refinement_interpretation_Tm_refine_774ba3f728d91ead8ef40be66c9802e5", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_a9fe3fb6c8453a5cadf567cc452dd274", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "refinement_interpretation_Tm_refine_d68a8e9a56d7d58a15fd1befad9cf1e1", + "refinement_interpretation_Tm_refine_e13e0c1adc2be5e2350c050e82905f94", + "refinement_interpretation_Tm_refine_e47dcf97dc96eacf38cb141be9013b3c", + "refinement_interpretation_Tm_refine_e8c9ca07e52b89077badab099f006d55", + "typing_Prims.pow2", "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.mk_int", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.unsigned" + ], + 0, + "789bee90bcc4c8027c85dd50d624d5ec" + ], + [ + "Proof_Utils.NatFold.lemma_fold_range_unroll_5", + 2, + 6, + 2, + [ + "@MaxFuel_assumption", "@MaxIFuel_assumption", + "@fuel_correspondence_Prims.pow2.fuel_instrumented", + "@fuel_irrelevance_Prims.pow2.fuel_instrumented", "@query", + "bool_inversion", "data_elim_Rust_primitives.Integers.MkInt", + "equation_Prims.nat", "equation_Prims.pos", + "equation_Rust_primitives.Integers.bits", + "equation_Rust_primitives.Integers.maxint", + "equation_Rust_primitives.Integers.minint", + "equation_Rust_primitives.Integers.mk_int", + "equation_Rust_primitives.Integers.range", + "equation_Rust_primitives.Integers.range_t", + "equation_Rust_primitives.Integers.uinttype", + "equation_Rust_primitives.Integers.unsigned", + "equation_Rust_primitives.Integers.v", + "fuel_guarded_inversion_Rust_primitives.Integers.int_t", + "fuel_guarded_inversion_Rust_primitives.Integers.inttype", + "int_inversion", "int_typing", "lemma_FStar.UInt.pow2_values", + "lemma_Rust_primitives.Integers.pow2_values", + "primitive_Prims.op_Addition", "primitive_Prims.op_AmpAmp", + "primitive_Prims.op_LessThanOrEqual", + "primitive_Prims.op_Subtraction", + "proj_equation_Rust_primitives.Integers.MkInt_@_0", + "projection_inverse_BoxBool_proj_0", + "projection_inverse_BoxInt_proj_0", + "projection_inverse_Rust_primitives.Integers.MkInt_@_0", + "refinement_interpretation_Tm_refine_3e1bd0090e9eeafbe382597e5eaee0fd", + "refinement_interpretation_Tm_refine_542f9d4f129664613f2483a6c88bc7c2", + "refinement_interpretation_Tm_refine_774ba3f728d91ead8ef40be66c9802e5", + "refinement_interpretation_Tm_refine_a6d4eccfb2603ce5e66d6162c32df2b0", + "refinement_interpretation_Tm_refine_b045b04f0bb15cd7c94a2ec78d3283ce", + "refinement_interpretation_Tm_refine_e8c9ca07e52b89077badab099f006d55", + "typing_Prims.pow2", "typing_Rust_primitives.Integers.bits", + "typing_Rust_primitives.Integers.range", + "typing_Rust_primitives.Integers.size_bits", + "typing_Rust_primitives.Integers.unsigned" + ], + 0, + "28644f783c34497e02ccf3b4cbf69a12" + ] + ] +] \ No newline at end of file diff --git a/crates/algorithms/sha3/proofs/fstar/equivalence/Makefile b/crates/algorithms/sha3/proofs/fstar/equivalence/Makefile index 48c8a5de5e..a8717ffb21 100644 --- a/crates/algorithms/sha3/proofs/fstar/equivalence/Makefile +++ b/crates/algorithms/sha3/proofs/fstar/equivalence/Makefile @@ -17,6 +17,10 @@ ROOTS = \ FSTAR_EXT_FLAGS = --ext context_pruning +# SMT replay hints are tracked alongside the proofs so fresh checkouts +# replay them rather than re-searching Z3 (the heavy lemma_chi_outer_unfolds_generic +# query is reproducible but slow without hints — minutes vs seconds). +HINT_DIR = $(shell pwd)/.hints ENABLE_HINTS = --use_hints --record_hints include $(shell git rev-parse --show-toplevel)/fstar-helpers/Makefile.base diff --git a/crates/algorithms/sha3/proofs/fstar/equivalence/README.md b/crates/algorithms/sha3/proofs/fstar/equivalence/README.md new file mode 100644 index 0000000000..05bde82972 --- /dev/null +++ b/crates/algorithms/sha3/proofs/fstar/equivalence/README.md @@ -0,0 +1,161 @@ +# Portable keccakf1600 ↔ Hacspec equivalence proofs + +F\* proofs that the libcrux SHA-3 **portable** keccakf1600 permutation +(`Libcrux_sha3.Generic_keccak.impl_2__keccakf1600` instantiated at `N=1, T=u64`) +agrees with the Hacspec specification (`Hacspec_sha3.Keccak_f.keccak_f`) on +every input state. + +## Top-level theorems + +The portable instantiation: + +```fstar +val lemma_keccakf1600_portable + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState (mk_usize 1) u64) + : Lemma + ((Libcrux_sha3.Generic_keccak.impl_2__keccakf1600 (mk_usize 1) #u64 ks) + .Libcrux_sha3.Generic_keccak.f_st == + Hacspec_sha3.Keccak_f.keccak_f ks.Libcrux_sha3.Generic_keccak.f_st) +``` + +(Source: `EquivImplSpec.Keccakf.Portable.fst`.) + +The generic theorem, parametric over any `KeccakItem` backend that supplies +a `lane_correctness` record: + +```fstar +val lemma_keccakf1600_to_spec + (v_N: usize) (#v_T: Type0) + {| inst: Libcrux_sha3.Traits.t_KeccakItem v_T v_N |} + (lc: lane_correctness v_N #v_T) + (ks: Libcrux_sha3.Generic_keccak.t_KeccakState v_N v_T) + (l: nat{l < v v_N}) + : Lemma + (extract_lane v_N lc + (Libcrux_sha3.Generic_keccak.impl_2__keccakf1600 v_N #v_T ks) + .Libcrux_sha3.Generic_keccak.f_st l == + Hacspec_sha3.Keccak_f.keccak_f + (extract_lane v_N lc ks.Libcrux_sha3.Generic_keccak.f_st l)) +``` + +(Source: `EquivImplSpec.Keccakf.Generic.fst`.) + +The generic theorem is the reusable boundary: future Arm64 (Neon) and +AVX2 PRs only need to populate a `lane_correctness` record at their +respective `(N=2, T=uint64x2_t)` and `(N=4, T=__m256i)` to inherit the +keccakf1600 ↔ spec equivalence. + +## Scope + +PR-2 establishes two distinct claims: + +### Panic-freedom (Spec + Implementation) + +Both the Hacspec SHA-3 specification and the libcrux SHA-3 implementation +panic-free typecheck under hax → F\*. That is: every `requires` precondition +is sufficient to discharge any panic-introducing operation in the body +(slice indexing, integer overflow, `unwrap`, etc.) — no runtime panics +are reachable from any Rust call site that satisfies the documented +preconditions. + +| Module | Status | +| --- | --- | +| `Hacspec_sha3.{Keccak_f, Sha3, Sponge}` (spec) | Panic-free typecheck | +| `Libcrux_sha3.{lib, traits, proof_utils, simd.portable}` (generic / portable utilities) | Panic-free typecheck | +| `Libcrux_sha3.Generic_keccak.{Constants, Portable, Xof}` (sponge + state) | Panic-free typecheck | +| `Libcrux_sha3.Portable.{Incremental.*}` (top-level portable API + XOF wrappers) | Panic-free typecheck | + +This claim covers the entire portable surface — including the sponge +layer, XOF API, and SHA-3/SHAKE digest wrappers — even though no +equivalence theorem about them is proven yet. + +### Implementation ↔ Spec correctness + +The portable `keccakf1600` permutation is proven to compute exactly the +same value as the Hacspec specification on every input state. + +| Layer | Status in this PR | +| --- | --- | +| Portable keccakf1600 ↔ `Hacspec_sha3.Keccak_f.keccak_f` | **Proven** (`lemma_keccakf1600_portable`) | +| Generic-over-`T` keccakf1600 ↔ spec | **Proven** (`lemma_keccakf1600_to_spec`, parametric on `lane_correctness`) | +| Sponge layer (absorb / squeeze / XOF) ↔ `Hacspec_sha3.Sponge.*` | Out of scope; ships separately | +| Top-level digest API (`sha3_*`, `shake*`) ↔ `Hacspec_sha3.Sha3.*` | Out of scope; depends on sponge equivalence | +| Arm64 Neon backend ↔ spec | Out of scope; ships separately | +| AVX2 backend ↔ spec | Out of scope; ships separately | + +## Modules + +| File | Purpose | +| --- | --- | +| `EquivImplSpec.Keccakf.Generic.fst` | 2024 LoC, ~72 lemmas — `lane_correctness` boundary, per-step `theta`/`rho`/`pi`/`chi`/`iota` extract-lane lemmas, and `lemma_keccakf1600_to_spec`. | +| `EquivImplSpec.Keccakf.Portable.fst` | Instantiates `Generic` for `(N=1, T=u64)` (all 7 `lane_correctness` fields by reflexivity) and exports `lemma_keccakf1600_portable`. | +| `EquivImplSpec.Keccakf.ChiFold.fst` | Per-position equality lemma chaining the impl's chi unrolled form to the spec's `chi_inner_val`. | +| `EquivImplSpec.Keccakf.SpecRounds.fst` | Spec-side iteration helper: `lemma_keccak_f_is_rounds`. | +| `Proof_Utils.NatFold.fst` | Reusable lemmas about natural-number folds over ranges. | +| `Proof_Utils.FoldRange.fst` | Single step lemma for `fold_range` chunk decomposition. | +| `Proof_Utils.Lemmas.fst` | Thin wrappers around upstream hax-lib lemmas (`logand_commutative`, `lemma_rotate_left_zero`, `lemma_index_update_at_range`). | + +The `../stubs/Spec.Utils.{fst,fsti}` workaround keeps a small surface of +the cross-crate `Libcrux_intrinsics.Avx2_extract.fsti` references resolved +without pulling in libcrux-ml-kem's full `Spec.Utils`. + +## Dependencies + +- **hax-lib**: pinned to the `cryspen/hax:integer-lemmas` branch (workspace + `Cargo.toml`). Several `Proof_Utils.Lemmas` wrappers cite upstream lemmas + that today live only on that branch; an upstream PR is in flight to merge + these into hax main, after which the pin will move to a tagged release. +- **Spec**: the Hacspec SHA-3 specification at `specs/sha3/`, extracted to + `Hacspec_sha3.{Keccak_f, Sponge, Sha3}` modules. + +## Building + +From the crate root, with the workspace's `fstar-helpers/Makefile.base` set up: + +```sh +make -C proofs/fstar/equivalence +``` + +Or, equivalently, via the wrapper script: + +```sh +bash hax.sh prove # extraction + sponge-and-above panic-free typecheck +make -C proofs/fstar/equivalence # equivalence proofs +``` + +A cold-cache full build of the seven equivalence ROOTs takes roughly +**7–8 minutes** on a 12-thread laptop with `JOBS=2`; the panic-free +typecheck of sponge-and-above takes another **~90 seconds**. + +Per-module verification times (cold cache, no hint replay): + +| Module | Wall time | Notes | +| --- | --- | --- | +| `EquivImplSpec.Keccakf.Generic` | ~175 s | 72 lemmas; rho/theta/pi extract-lane, `lemma_keccakf1600_to_spec`. | +| `EquivImplSpec.Keccakf.ChiFold` | ~127 s | dominated by `lemma_chi_outer_unfolds_generic` (one query at fuel=6, rlimit=800, ~108 s). | +| `EquivImplSpec.Keccakf.SpecRounds` | ~3 s | spec-side `fold_range` bridge. | +| `EquivImplSpec.Keccakf.Portable` | <1 s | `lane_correctness` instantiation by reflexivity. | +| `Proof_Utils.{NatFold, FoldRange, Lemmas}` | <1 s combined | thin upstream-lemma wrappers. | + +Hint files (`*.hints`) are recorded under the workspace +`.fstar-cache/hints/` directory after the first successful build; F\* +replays them on subsequent runs and the wall time drops to seconds. + +## Verification status + +The crate ships a `proofs/generate_verification_status.sh` helper that +classifies each Rust function by its proof tier (lax / unverified / +panic-free / math / bounds / hacspec) and writes a Markdown table to +`proofs/verification_status.md`. Run it any time after re-extraction: + +```sh +bash proofs/generate_verification_status.sh --config proofs/verification_status.config.json --root . +``` + +## Future work (out of scope for this PR) + +- Sponge-level equivalence: `EquivImplSpec.Sponge.{Generic, Portable}.*` + (load_block / store_block / absorb / squeeze ↔ spec). +- Arm64 (Neon) `lane_correctness` instance; AVX2 `lane_correctness` instance. +- Top-level digest API equivalence (`sha3_224`, `sha3_256`, `shake128`, + `shake256`, …) once the sponge layer is proven. From b3caa47cdf8efd50747734610897938e1316c724 Mon Sep 17 00:00:00 2001 From: Karthikeyan Bhargavan Date: Wed, 6 May 2026 16:44:42 +0200 Subject: [PATCH 14/14] sha3: add verification-status tooling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Lifts the verification-status script from the proof-focused branch into the SHA-3 crate. The script reads the F* extraction Makefile's ADMIT_MODULES list plus per-function `#[hax_lib::fstar::*]` annotations in the Rust source and produces a Markdown table classifying each function at one of six tiers (lax / unverified / panic-free / math / bounds / hacspec). Files: - proofs/generate_verification_status.sh — bash entry point. - proofs/generate_verification_status.py — implementation (~900 LoC; reusable across crates via a JSON config). - proofs/verification_status.config.json — SHA-3 module map. - proofs/verification_status.md — generated output (regenerate after re-extraction with `bash proofs/generate_verification_status.sh --config proofs/verification_status.config.json --root .`). Co-Authored-By: Claude Opus 4.7 (1M context) --- .../proofs/generate_verification_status.py | 907 ++++++++++++++++++ .../proofs/generate_verification_status.sh | 8 + .../proofs/verification_status.config.json | 38 + .../sha3/proofs/verification_status.md | 83 ++ 4 files changed, 1036 insertions(+) create mode 100755 crates/algorithms/sha3/proofs/generate_verification_status.py create mode 100755 crates/algorithms/sha3/proofs/generate_verification_status.sh create mode 100644 crates/algorithms/sha3/proofs/verification_status.config.json create mode 100644 crates/algorithms/sha3/proofs/verification_status.md diff --git a/crates/algorithms/sha3/proofs/generate_verification_status.py b/crates/algorithms/sha3/proofs/generate_verification_status.py new file mode 100755 index 0000000000..4c187d74b2 --- /dev/null +++ b/crates/algorithms/sha3/proofs/generate_verification_status.py @@ -0,0 +1,907 @@ +#!/usr/bin/env python3 +"""Generate per-crate verification_status.md from Rust source annotations and the F* Makefile. + +Reusable across libcrux-ml-kem, libcrux-ml-dsa, libcrux-sha3 via a JSON config file +(verification_status.config.json) that sits next to the per-crate Makefile. + +Classification (highest tier wins; in order from worst to best): + - lax: module in ADMIT_MODULES, OR fn has #[hax_lib::fstar::verification_status(lax)], + OR fn has #[hax_lib::fstar::options("--admit_smt_queries true")] pragma, + OR fn body has an inline admit at non-terminal position. + - panic_free: not lax, AND (verification_status(panic_free) + OR no #[ensures(...)] annotation + OR a single TERMINAL inline admit). + - correct: not lax, has a non-trivial ensures (matches range/spec patterns), and no body admit. + +CLI: + generate_verification_status.py [--root PATH] [--config PATH] [--output PATH] + [--diff PREV CURR] [--all-body-admits-lax] +""" + +import argparse +import json +import os +import re +import sys + +DEFAULT_ML_KEM_CONFIG = { + "crate_name": "ML-KEM", + "src_dir": "src", + "makefile": "proofs/fstar/extraction/Makefile", + "extraction_dir": "proofs/fstar/extraction", + "output": "proofs/verification_status.md", + "admit_module_prefix": "Libcrux_ml_kem.", + "spec_patterns": [ + r"Hacspec_ml_kem\.", + r"Spec\.Utils\.v_G", r"Spec\.Utils\.v_H", r"Spec\.Utils\.v_PRF", + r"to_spec_poly_t", r"to_spec_vector_t", r"to_spec_matrix_t", + r"Traits\.Spec\.\w+_post", + ], + "range_patterns": [ + r"is_i16b", r"is_bounded_poly", r"is_bounded_vector", + r"\bbounded\b", r"is_intb", r"is_i32b", + ], + "modules": [ + {"category": "Generic", "display": "constant_time_ops", "paths": ["constant_time_ops"]}, + {"category": "Generic", "display": "hash_functions", "paths": ["hash_functions"]}, + {"category": "Generic", "display": "ind_cpa", "paths": ["ind_cpa"]}, + {"category": "Generic", "display": "ind_cca", "paths": ["ind_cca"]}, + {"category": "Generic", "display": "instantiations", + "paths": ["ind_cca/instantiations", "ind_cca/instantiations/avx2"]}, + {"category": "Generic", "display": "multiplexing", + "paths": ["ind_cca/multiplexing", "ind_cca/incremental/multiplexing"]}, + {"category": "Generic", "display": "polynomial", "paths": ["polynomial"]}, + {"category": "Generic", "display": "invert_ntt", "paths": ["invert_ntt"]}, + {"category": "Generic", "display": "ntt", "paths": ["ntt"]}, + {"category": "Generic", "display": "mlkem*", + "paths": ["mlkem", "mlkem512", "mlkem768", "mlkem1024"]}, + {"category": "Generic", "display": "matrix", "paths": ["matrix"]}, + {"category": "Generic", "display": "serialize", "paths": ["serialize"]}, + {"category": "Generic", "display": "sampling", "paths": ["sampling"]}, + {"category": "Portable", "display": "arithmetic", "paths": ["vector/portable/arithmetic"]}, + {"category": "Portable", "display": "ntt", "paths": ["vector/portable/ntt"]}, + {"category": "Portable", "display": "serialize", "paths": ["vector/portable/serialize"]}, + {"category": "Portable", "display": "compress", "paths": ["vector/portable/compress"]}, + {"category": "Portable", "display": "sampling", "paths": ["vector/portable/sampling"]}, + {"category": "Portable", "display": "vector", "paths": ["vector/portable"]}, + {"category": "Avx2", "display": "arithmetic", "paths": ["vector/avx2/arithmetic"]}, + {"category": "Avx2", "display": "ntt", "paths": ["vector/avx2/ntt"]}, + {"category": "Avx2", "display": "serialize", "paths": ["vector/avx2/serialize"]}, + {"category": "Avx2", "display": "compress", "paths": ["vector/avx2/compress"]}, + {"category": "Avx2", "display": "sampling", "paths": ["vector/avx2/sampling"]}, + {"category": "Avx2", "display": "vector", "paths": ["vector/avx2"]}, + {"category": "Neon", "display": "arithmetic", "paths": ["vector/neon/arithmetic"]}, + {"category": "Neon", "display": "ntt", "paths": ["vector/neon/ntt"]}, + {"category": "Neon", "display": "compress", "paths": ["vector/neon/compress"]}, + {"category": "Neon", "display": "serialize", "paths": ["vector/neon/serialize"]}, + {"category": "Neon", "display": "sampling", "paths": ["vector/neon/sampling"]}, + ], +} + + +# ============================================================================ +# Text scanning utilities +# ============================================================================ + +def find_matching_bracket(text, start, open_ch="[", close_ch="]"): + """From position `start` (which should point AT the open bracket), + find the position after the matching close bracket. + Skips raw strings r#"..."# and regular strings "...". + Returns (end_pos, substring) or (-1, "") if not found.""" + depth = 0 + i = start + while i < len(text): + if text[i:i+3] == 'r#"': + end = text.find('"#', i + 3) + if end == -1: + return -1, "" + i = end + 2 + continue + if text[i] == '"': + i += 1 + while i < len(text) and text[i] != '"': + if text[i] == '\\': + i += 1 + i += 1 + i += 1 + continue + if text[i:i+2] == '//' and (i < 2 or text[i-1] != '*'): + nl = text.find('\n', i) + if nl == -1: + break + i = nl + 1 + continue + if text[i:i+2] == '/*': + end = text.find('*/', i + 2) + if end == -1: + break + i = end + 2 + continue + if text[i] == open_ch: + depth += 1 + elif text[i] == close_ch: + depth -= 1 + if depth == 0: + return i + 1, text[start:i + 1] + i += 1 + return -1, "" + + +# ============================================================================ +# Config loading +# ============================================================================ + +def load_config(config_path, root): + """Load JSON config from disk. Falls back to root/proofs/verification_status.config.json, + then to the baked-in ML-KEM default.""" + if config_path: + with open(config_path) as f: + return json.load(f) + fallback = os.path.join(root, "proofs", "verification_status.config.json") + if os.path.isfile(fallback): + with open(fallback) as f: + return json.load(f) + return DEFAULT_ML_KEM_CONFIG + + +# ============================================================================ +# ADMIT_MODULES parsing +# ============================================================================ + +def _parse_makefile_var(makefile_path, var_name, prefix): + """Generic helper: read a Makefile variable that lists `prefix`-prefixed + module names (one per line, possibly continued with `\\`), and return them + as a set of `src/.rs` paths. + + Mirrors `list_extracted_modules`'s name-mangling treatment: strips a single + trailing `_` from each segment (hax appends it to F* identifiers ending in + a digit).""" + if not os.path.isfile(makefile_path): + return set() + paths = set() + in_var = False + with open(makefile_path) as f: + for line in f: + if line.startswith(var_name): + in_var = True + if in_var: + for token in line.split(): + if token.startswith(prefix): + mod = token[len(prefix):] + mod = mod.removesuffix(".fst").removesuffix(".fsti") + segments = [s.rstrip('_') for s in mod.split('.')] + path = '/'.join(s.lower() for s in segments) + paths.add(f"src/{path}.rs") + if not line.rstrip().endswith("\\"): + in_var = False + return paths + + +def parse_admit_modules(makefile_path, prefix, extracted_paths=None): + """Read the F* extraction Makefile and return the set of source paths + classified as admitted. + + Two Makefile patterns are supported: + 1. Explicit `ADMIT_MODULES = ...` list (e.g. ml-kem). Direct read. + 2. Inverted list: `VERIFIED_MODULES = ...` plus + `ADMIT_MODULES = $(filter-out ${VERIFIED_OR_SLOW_MODULES}, $(wildcard *.fst))` + (e.g. ml-dsa). Admit = `extracted_paths` − `VERIFIED_MODULES` − `SLOW_MODULES`. + Caller must supply `extracted_paths` for this case to work. + """ + explicit = _parse_makefile_var(makefile_path, "ADMIT_MODULES", prefix) + verified = _parse_makefile_var(makefile_path, "VERIFIED_MODULES", prefix) + if verified and extracted_paths is not None: + slow = _parse_makefile_var(makefile_path, "SLOW_MODULES", prefix) + return extracted_paths - verified - slow + return explicit + + +def list_extracted_modules(extraction_dir, prefix, src_dir=None): + """Scan the F* extraction directory and return the set of `src/.rs` + paths covered by an extracted F* module (.fst or .fsti). + + Coverage rules: + * Direct: `Libcrux_.Foo.Bar.fst` → `src/foo/bar.rs`. + * Trailing-underscore mangling: hax appends `_` to F* segments whose + Rust identifier ends in a digit (e.g. `Ml_dsa_44_`). We strip a + single trailing `_` from each segment when reverse-mapping. + * Ancestor coverage: if `Libcrux_.Foo.Bar.Baz.fst` exists and + `src/foo/bar.rs` is a real file (e.g. parent module that uses a + hax macro to generate per-variant submodules), `src/foo/bar.rs` is + also marked extracted. Requires `src_dir` to be passed. + + A Rust module that ends up NOT in this set was filtered out of the + extraction via `-i -::**` in hax.py and is unverified.""" + if not os.path.isdir(extraction_dir): + return set() + extracted = set() + for fname in os.listdir(extraction_dir): + if not fname.startswith(prefix): + continue + if not (fname.endswith('.fst') or fname.endswith('.fsti')): + continue + mod = fname[len(prefix):] + mod = mod.removesuffix('.fsti').removesuffix('.fst') + # Bare crate-name file (e.g. `Libcrux_sha3.fst`) — hax extracts + # `src/lib.rs` to the prefix-only `.fst`/`.fsti`. After stripping + # the trailing dot from the prefix and the suffix, what remains + # is the bare suffix string `fst`/`fsti` with no leading dot for + # `removesuffix('.fst')` to bite. Map it to `src/lib.rs`. + if mod in ('fst', 'fsti'): + extracted.add('src/lib.rs') + continue + # Strip trailing-underscore mangling per-segment. + segments = [s.rstrip('_') for s in mod.split('.')] + # Direct mapping + leaf = '/'.join(s.lower() for s in segments) + extracted.add(f"src/{leaf}.rs") + # Ancestor coverage: walk up the segment list, register parent + # `.rs` files that actually exist on disk. + if src_dir is not None: + for n in range(len(segments) - 1, 0, -1): + anc = '/'.join(s.lower() for s in segments[:n]) + anc_path = os.path.join(src_dir, f"{anc}.rs") + if os.path.isfile(anc_path): + extracted.add(f"src/{anc}.rs") + return extracted + + +# ============================================================================ +# Per-file parser +# ============================================================================ + +FN_RE = re.compile( + r"^\s*(pub(\([a-z]+\))?\s+)?(const\s+)?(async\s+)?(unsafe\s+)?fn\s" +) +# Non-fn item declarations — cause us to clear pending attributes so they +# don't drift onto a fn that appears later. We do NOT apply per-fn attributes +# (verification_status / opaque / options-pragma) to these. +NON_FN_ITEM_RE = re.compile( + r"^\s*(pub(\([a-z]+\))?\s+)?" + r"(unsafe\s+)?" + r"(struct|enum|union|type|impl|trait|mod|static|const)\s" +) +VSTATUS_RE = re.compile(r"verification_status\((lax|panic_free)\)") +ADMIT_PRAGMA_RE = re.compile(r"--admit_smt_queries\s+true") +INLINE_ADMIT_RE = re.compile(r"\badmit\s*\(\s*\)|admit_smt_queries\s+true") +# `#[hax_lib::opaque]` (without args, no `_to_smt` suffix) — applied only to fns. +# `\b` word-boundary won't match inside `opaque_to_smt` because `_` is a word char, +# so this regex correctly excludes that variant. +OPAQUE_ATTR_RE = re.compile(r"\bhax_lib::opaque\b") + + +def classify_ensures(text, spec_re, range_re): + """Return the highest proof tier reached by an ensures annotation: + - 'hacspec': ensures cites the high-level mathematical spec (Spec.MLKEM/MLDSA/...). + - 'bounds': ensures uses range/interval predicates (is_i16b, is_bounded_*, ...). + - 'math': ensures present but doesn't match spec or bounds patterns + (proves SOME non-trivial property, but neither a bound nor spec equivalence). + """ + if spec_re.search(text): + return "hacspec" + if range_re.search(text): + return "bounds" + return "math" + + +def _strip_fstar_comments(content): + """Remove F* line/block comments from a fstar!() macro's content so we don't + false-match `admit ()` text inside an explanatory comment.""" + # F* line comments: // ... + content = re.sub(r'//[^\n]*', '', content) + # F* block comments: (* ... *) — non-greedy, multi-line. + content = re.sub(r'\(\*.*?\*\)', '', content, flags=re.DOTALL) + return content + + +def has_body_admit(text, body_open_pos, body_close_pos): + """Return True if the function body contains an inline admit inside a + hax_lib::fstar! block. F* comments inside the macro are stripped first.""" + macro_re = re.compile(r"\b(?:hax_lib::)?fstar\s*!\s*\(") + for m in macro_re.finditer(text, body_open_pos, body_close_pos): + paren_pos = m.end() - 1 # position of `(` + end_paren, content = find_matching_bracket(text, paren_pos, '(', ')') + if end_paren <= 0: + continue + cleaned = _strip_fstar_comments(content) + if INLINE_ADMIT_RE.search(cleaned): + return True + return False + + +def _find_fn_body_brace(text, fn_start): + """Find the position of the function-body opening `{` after `fn_start`. + Skips angle-brackets `<>` and parens `()` for generics and params. + Returns position of `{`, or None if a `;` (bare signature) or EOF is reached first.""" + angle_depth = 0 + paren_depth = 0 + i = fn_start + while i < len(text): + if text[i:i+3] == 'r#"': + end = text.find('"#', i + 3) + if end == -1: + return None + i = end + 2 + continue + if text[i] == '"': + i += 1 + while i < len(text) and text[i] != '"': + if text[i] == '\\': + i += 1 + i += 1 + i += 1 + continue + if text[i:i+2] == '//': + nl = text.find('\n', i) + if nl == -1: + return None + i = nl + 1 + continue + if text[i:i+2] == '/*': + end = text.find('*/', i + 2) + if end == -1: + return None + i = end + 2 + continue + c = text[i] + if c == '<': + angle_depth += 1 + elif c == '>': + if angle_depth > 0: + angle_depth -= 1 + elif c == '(': + paren_depth += 1 + elif c == ')': + if paren_depth > 0: + paren_depth -= 1 + elif c == '{' and angle_depth == 0 and paren_depth == 0: + return i + elif c == ';' and angle_depth == 0 and paren_depth == 0: + return None # bare signature, no body + i += 1 + return None + + +def parse_file(filepath, spec_re, range_re): + """Parse a Rust source file, returning a list of per-function dicts: + { 'line': int, 'vstatus': 'lax'|'panic_free'|None, + 'ensures_level': 'spec'|'range'|'panic_free'|None, + 'body_admit': bool } + Body admits (options-pragma OR inline `admit ()`) all classify as lax.""" + with open(filepath) as f: + text = f.read() + lines = text.split('\n') + line_offsets = [] + offset = 0 + for line in lines: + line_offsets.append(offset) + offset += len(line) + 1 + + functions = [] + pending_vstatus = None + pending_options_admit = False + pending_opaque = False + ensures_text = "" + skip_until = 0 + + def reset_pending(): + nonlocal pending_vstatus, pending_options_admit, pending_opaque, ensures_text + pending_vstatus = None + pending_options_admit = False + pending_opaque = False + ensures_text = "" + + for lineno, line in enumerate(lines): + line_start = line_offsets[lineno] + stripped = line.rstrip() + + if line_start < skip_until: + continue + + # Skip fstar::before(...) and fstar::after(...) blocks (their content + # may contain admits or ensures-keywords inside F* lemma bodies). + skipped = False + for skip_pat in ['fstar::before(', 'fstar::after(']: + idx = stripped.find(skip_pat) + if idx >= 0: + paren_pos = line_start + idx + len(skip_pat) - 1 + end_pos, _ = find_matching_bracket(text, paren_pos, '(', ')') + if end_pos > 0: + skip_until = end_pos + skipped = True + break + if skipped: + continue + + # `#[hax_lib::opaque]` attribute (function-only — see NON_FN_ITEM_RE handling). + # Detected separately because it's a standalone-bracket attribute with no args. + opaque_match = re.search(r'#\[hax_lib::opaque\]', stripped) + if opaque_match: + pending_opaque = True + continue + + # verification_status attribute + m = VSTATUS_RE.search(stripped) + if m: + pending_vstatus = m.group(1) + continue + + # options pragma — check for --admit_smt_queries true + if 'fstar::options' in stripped: + attr_start = stripped.find('#[') + if attr_start >= 0: + attr_bracket_pos = line_start + attr_start + 1 + end_pos, attr_text = find_matching_bracket(text, attr_bracket_pos, '[', ']') + if end_pos > 0: + if ADMIT_PRAGMA_RE.search(attr_text): + pending_options_admit = True + skip_until = end_pos + continue + + # ensures attribute + ensures_match = re.search(r'#\[(hax_lib::)?ensures\(', stripped) + if ensures_match: + if re.match(r"\s*//", stripped): + continue + hash_bracket = stripped.find('#[', ensures_match.start()) + if hash_bracket == -1: + hash_bracket = ensures_match.start() + attr_bracket_pos = line_start + hash_bracket + 1 + end_pos, attr_text = find_matching_bracket(text, attr_bracket_pos, '[', ']') + if end_pos > 0: + ensures_text = attr_text + skip_until = end_pos + continue + + # function definition — check BEFORE NON_FN_ITEM_RE so `const fn` / + # `async fn` aren't mistaken for `const` / non-fn items. + if FN_RE.match(stripped): + ensures_level = classify_ensures(ensures_text, spec_re, range_re) if ensures_text else None + + body_admit = False + if pending_options_admit: + body_admit = True + else: + fn_brace = _find_fn_body_brace(text, line_start) + if fn_brace is not None: + body_close, _ = find_matching_bracket(text, fn_brace, '{', '}') + if body_close > 0: + body_admit = has_body_admit(text, fn_brace, body_close) + + # `#[hax_lib::opaque]` is a function-only marker meaning the body + # is intentionally hidden from F* — equivalent to lax. + functions.append({ + 'line': lineno + 1, + 'vstatus': pending_vstatus, + 'ensures_level': ensures_level, + 'body_admit': body_admit, + 'opaque': pending_opaque, + }) + + reset_pending() + continue + + # Non-fn item — clear pending fn-only attributes so they don't drift + # onto the next fn we encounter. + if NON_FN_ITEM_RE.match(stripped): + reset_pending() + + return functions + + +# ============================================================================ +# Accounting +# ============================================================================ + +def compute_module_stats(funcs, in_admit_module, is_unverified): + """Per-module classification accounting. + + Each function is classified at exactly ONE proof tier (highest wins): + - lax : admitted (vstatus=lax, body admit, options-pragma admit, opaque) + - unverified : Rust module has no F* extraction (filtered out by hax) + - hacspec : ensures matches spec_patterns (cites high-level mathematical spec) + - bounds : ensures matches range_patterns (bounds/interval predicates only) + - math : ensures present but matches neither pattern (some non-trivial property) + - panic_free : no ensures at all, or vstatus=panic_free explicitly + + The `panic_safe` aggregate = panic_free + math + bounds + hacspec + (everything proven free of panics). + """ + base = { + 'total': len(funcs), + 'lax': 0, 'unverified': 0, + 'panic_free': 0, 'math': 0, 'bounds': 0, 'hacspec': 0, + 'body_admit_sites': [], + } + if is_unverified: + base['unverified'] = len(funcs) + return base + if in_admit_module: + base['lax'] = len(funcs) + return base + + body_admit_sites = [] + + for fn in funcs: + is_lax = fn['vstatus'] == 'lax' or fn['body_admit'] or fn.get('opaque', False) + if is_lax: + base['lax'] += 1 + if fn['body_admit']: + body_admit_sites.append(fn['line']) + continue + + # vstatus=panic_free or no ensures → panic_free (lowest verified tier) + if fn['vstatus'] == 'panic_free' or fn['ensures_level'] is None: + base['panic_free'] += 1 + continue + + # has ensures — classify by tier (hacspec > bounds > math) + lvl = fn['ensures_level'] + if lvl == 'hacspec': + base['hacspec'] += 1 + elif lvl == 'bounds': + base['bounds'] += 1 + else: # 'math' or unknown + base['math'] += 1 + + base['body_admit_sites'] = body_admit_sites + return base + + +# ============================================================================ +# Output: status Markdown +# ============================================================================ + +PREAMBLE = """# {crate} Verification Status + +This file is auto-generated by `proofs/generate_verification_status.py`. + +Each function is classified at exactly one proof tier (highest wins): + +- **Lax**: module in `ADMIT_MODULES`, OR fn has `#[hax_lib::fstar::verification_status(lax)]`, + OR `#[hax_lib::fstar::options("--admit_smt_queries true")]`, OR `#[hax_lib::opaque]` + (body hidden from F\\*; distinct from F\\*'s `opaque_to_smt`), OR an inline `admit ()` + in the body. +- **Unverified**: Rust module not extracted to F\\* at all (filtered out by hax via + `-i -::**`). Worse than lax — no proof of any kind. +- **Panic-free**: proven free of panics (and obeying preconditions), no further proof: + fn has `verification_status(panic_free)` or has no `#[ensures(...)]` annotation. +- **Math**: has an `#[ensures(...)]` annotation that proves SOME non-trivial property, + but doesn't match the bounds or hacspec patterns. +- **Bounds**: ensures uses range/interval predicates (e.g. `is_i16b`, `is_bounded_*`). +- **Hacspec**: ensures cites the high-level mathematical specification (e.g. `Spec.MLKEM.*`). + +The "Panic-safe" aggregate (sometimes useful for headline numbers) = Panic-free + Math ++ Bounds + Hacspec — i.e., total minus lax minus unverified. + +""" + + +def write_status_md(rows, crate_name, output_path, + body_admit_sites_by_module, unverified_paths_seen, + module_counts_by_display=None): + """`module_counts_by_display` maps display-name → number of underlying .rs files + (e.g., 'mlkem*' → 4). Used for per-row 'Modules' count + category subtotals.""" + if module_counts_by_display is None: + module_counts_by_display = {} + + # Group rows by category to compute subtotals + grouped = [] # list of (category, [data_rows]) + current_cat = None + bucket = [] + for row in rows: + if row is None: + continue + cat = row[0] + if cat: # new category header inline (the row carries _Category_) + if bucket: + grouped.append((current_cat, bucket)) + current_cat = cat.replace('_', '').strip() + bucket = [row] + else: + bucket.append(row) + if bucket: + grouped.append((current_cat, bucket)) + + with open(output_path, 'w') as f: + f.write(PREAMBLE.format(crate=crate_name)) + # Columns: Category | File | Mods | Fns | Lax | Unv | PF | Math | Bounds | Hacspec + f.write( + f"| {'Category':<10} | {'File':<17} | {'Mods':>4} | {'Fns':>3} " + f"| {'Lax':>3} | {'Unv':>3} | {'PF':>3} | {'Math':>4} | {'Bounds':>6} | {'Hacspec':>7} |\n" + ) + f.write( + f"| {'-'*10} | {'-'*17} | {'-'*4:>4} | {'---':>3} " + f"| {'---':>3} | {'---':>3} | {'---':>3} | {'-'*4:>4} | {'-'*6:>6} | {'-'*7:>7} |\n" + ) + + cat_totals = [] # for the per-category summary at the end + for cat_idx, (cat_label, cat_rows) in enumerate(grouped): + sub_total = sub_lax = sub_unv = sub_pf = sub_math = sub_bounds = sub_hacspec = sub_mods = 0 + for row in cat_rows: + cat_display, display, total, lax, unv, pf, math, bounds, hacspec = row + mods = module_counts_by_display.get(display, 1) + sub_mods += mods + sub_total += total; sub_lax += lax; sub_unv += unv + sub_pf += pf; sub_math += math; sub_bounds += bounds; sub_hacspec += hacspec + f.write( + f"| {cat_display:<10} | {display:<17} | {mods:>4} | {total:>3} " + f"| {lax:>3} | {unv if unv else '':>3} | {pf:>3} | {math:>4} | {bounds:>6} | {hacspec:>7} |\n" + ) + # Per-category subtotal row + f.write( + f"| {'':10} | {'**'+cat_label+' total**':<17} " + f"| {'**'+str(sub_mods)+'**':>4} | {'**'+str(sub_total)+'**':>3} " + f"| {'**'+str(sub_lax)+'**':>3} | {('**'+str(sub_unv)+'**') if sub_unv else '':>3} " + f"| {'**'+str(sub_pf)+'**':>3} | {'**'+str(sub_math)+'**':>4} " + f"| {'**'+str(sub_bounds)+'**':>6} | {'**'+str(sub_hacspec)+'**':>7} |\n" + ) + cat_totals.append((cat_label, sub_mods, sub_total, sub_lax, sub_unv, sub_pf, sub_math, sub_bounds, sub_hacspec)) + if cat_idx < len(grouped) - 1: + f.write( + f"| {'':10} | {'':17} | {'':>4} | {'':>3} " + f"| {'':>3} | {'':>3} | {'':>3} | {'':>4} | {'':>6} | {'':>7} |\n" + ) + + total_fns = sum(r[2] for r in rows if r is not None) + total_lax = sum(r[3] for r in rows if r is not None) + total_unv = sum(r[4] for r in rows if r is not None) + total_pf = sum(r[5] for r in rows if r is not None) + total_math = sum(r[6] for r in rows if r is not None) + total_bounds = sum(r[7] for r in rows if r is not None) + total_hacspec = sum(r[8] for r in rows if r is not None) + total_safe = total_pf + total_math + total_bounds + total_hacspec + total_mods = sum(c[1] for c in cat_totals) + + f.write("\n## Summary\n\n") + if total_fns: + def pct(n): + return f"({n*100/total_fns:.1f}%)" + f.write(f"- **Total modules**: {total_mods}\n") + f.write(f"- **Total functions**: {total_fns}\n") + f.write(f"- **Lax** (admitted): {total_lax} {pct(total_lax)}\n") + f.write(f"- **Unverified** (not extracted): {total_unv} {pct(total_unv)}\n") + f.write(f"- **Panic-safe** (PF + Math + Bounds + Hacspec): {total_safe} {pct(total_safe)}\n") + f.write(f" - Panic-free only (no further proof): {total_pf} {pct(total_pf)}\n") + f.write(f" - Math (non-trivial ensures, no bounds/spec match): {total_math} {pct(total_math)}\n") + f.write(f" - Bounds (range/interval ensures): {total_bounds} {pct(total_bounds)}\n") + f.write(f" - Hacspec (cites high-level spec): {total_hacspec} {pct(total_hacspec)}\n") + else: + f.write("- (no functions found — check config paths)\n") + + if cat_totals: + f.write("\n### Modules per category\n\n") + f.write(f"| {'Category':<12} | {'Modules':>7} | {'Fns':>4} | {'Lax':>3} | {'Unv':>3} | {'PF':>3} | {'Math':>4} | {'Bounds':>6} | {'Hacspec':>7} |\n") + f.write(f"| {'-'*12} | {'-'*7} | {'-'*4} | {'-'*3} | {'-'*3} | {'-'*3} | {'-'*4} | {'-'*6} | {'-'*7} |\n") + for label, mods, tot, lax, unv, pf, math, bounds, hacspec in cat_totals: + f.write(f"| {label:<12} | {mods:>7} | {tot:>4} | {lax:>3} | {unv:>3} | {pf:>3} | {math:>4} | {bounds:>6} | {hacspec:>7} |\n") + + if unverified_paths_seen: + f.write("\n## Unverified Rust modules (not extracted to F\\*)\n\n") + f.write("These Rust modules have no corresponding F\\* file in the extraction " + "directory — they were filtered out by hax (`-i -::**` in `hax.py`) " + "and are unverified at any tier.\n\n") + f.write(f"| {'Module':<30} | {'Path':<40} | {'Fns':>3} |\n") + f.write(f"| {'-'*30} | {'-'*40} | {'-'*3} |\n") + for label, path, n in unverified_paths_seen: + f.write(f"| {label:<30} | {path:<40} | {n:>3} |\n") + + if body_admit_sites_by_module: + f.write("\n## Body-admit sites (audit)\n\n") + f.write("Functions classified as lax due to `admit ()` (or `--admit_smt_queries true`) " + "inside their body. Auditable so the script's classification decisions are traceable.\n\n") + f.write(f"| {'Module':<25} | {'Line':>5} |\n") + f.write(f"| {'-'*25} | {'-'*5} |\n") + for module_label, sites in body_admit_sites_by_module: + for line in sites: + f.write(f"| {module_label:<25} | {line:>5} |\n") + + +# ============================================================================ +# Diff mode +# ============================================================================ + +# Match a status row with 10 columns: cat | display | mods | fns | lax | unv | pf | math | bounds | hacspec +# Subtotal rows wrap their numbers in `**...**` (markdown bold) so `\d+` won't match them. +DIFF_TABLE_RE = re.compile( + r"^\| \s*([^|]*?)\s*\| \s*([^|]+?)\s*\| \s*(\d+)\s*" + r"\| \s*(\d+)\s*" + r"\| \s*(\d+)\s*\| \s*(\d*)\s*\| \s*(\d+)\s*" + r"\| \s*(\d+)\s*\| \s*(\d+)\s*\| \s*(\d+)\s*\|\s*$", + re.MULTILINE, +) + + +def parse_status_md(path): + """Parse a verification_status.md table. + Returns dict[(category, display)] = (mods, total, lax, unv, pf, math, bounds, hacspec).""" + with open(path) as f: + text = f.read() + rows = {} + current_category = "" + for m in DIFF_TABLE_RE.finditer(text): + cat = m.group(1).strip() + display = m.group(2).strip() + try: + mods = int(m.group(3)) + total = int(m.group(4)) + lax = int(m.group(5)) + unv = int(m.group(6)) if m.group(6) else 0 + pf = int(m.group(7)) + math = int(m.group(8)) + bounds = int(m.group(9)) + hacspec = int(m.group(10)) + except ValueError: + continue + if cat: + cleaned = cat.replace('_', '').strip() + if cleaned: + current_category = cleaned + if not current_category: + continue + rows[(current_category, display)] = (mods, total, lax, unv, pf, math, bounds, hacspec) + return rows + + +def write_diff_md(prev_path, curr_path, output_path, prev_label, curr_label): + prev = parse_status_md(prev_path) + curr = parse_status_md(curr_path) + + ordered_keys = [] + seen = set() + for src in (curr, prev): + for k in src: + if k not in seen: + ordered_keys.append(k) + seen.add(k) + + def delta(a, b): + d = b - a + return f"{d:+d}" if d else " " + + with open(output_path, 'w') as f: + f.write(f"# Verification Status Diff — `{prev_label}` → `{curr_label}`\n\n") + f.write(f"Comparison of `{prev_path}` against `{curr_path}`. " + f"Each per-tier column is shown as `prev→curr (Δ)`.\n\n") + f.write(f"| {'Category':<10} | {'File':<17} | {'Fns':>9} " + f"| {'Lax':>9} | {'Unv':>9} | {'PF':>9} | {'Math':>9} | {'Bounds':>9} | {'Hacspec':>9} |\n") + f.write(f"| {'-'*10} | {'-'*17} | {'-'*9} " + f"| {'-'*9} | {'-'*9} | {'-'*9} | {'-'*9} | {'-'*9} | {'-'*9} |\n") + last_cat = "" + sums = {k: [0, 0] for k in ('total', 'lax', 'unv', 'pf', 'math', 'bounds', 'hacspec')} + + def cell(prev_n, curr_n): + d = curr_n - prev_n + sign = f"{d:+d}" if d else "·" + return f"{prev_n}→{curr_n} {sign}" + + for k in ordered_keys: + cat, display = k + p = prev.get(k, (0, 0, 0, 0, 0, 0, 0, 0)) + c = curr.get(k, (0, 0, 0, 0, 0, 0, 0, 0)) + pmods, pt, plax, punv, ppf, pmath, pb, ph = p + cmods, ct, clax, cunv, cpf, cmath, cb, ch = c + cat_show = f"_{cat}_" if cat != last_cat else "" + last_cat = cat + f.write(f"| {cat_show:<10} | {display:<17} | {cell(pt, ct):>9} " + f"| {cell(plax, clax):>9} | {cell(punv, cunv):>9} | {cell(ppf, cpf):>9} " + f"| {cell(pmath, cmath):>9} | {cell(pb, cb):>9} | {cell(ph, ch):>9} |\n") + for key, pv, cv in ( + ('total', pt, ct), ('lax', plax, clax), ('unv', punv, cunv), + ('pf', ppf, cpf), ('math', pmath, cmath), + ('bounds', pb, cb), ('hacspec', ph, ch), + ): + sums[key][0] += pv + sums[key][1] += cv + + f.write("\n## Aggregate\n\n") + for label, key in ( + ('Functions', 'total'), ('Lax', 'lax'), ('Unverified', 'unv'), + ('Panic-free only', 'pf'), ('Math', 'math'), + ('Bounds', 'bounds'), ('Hacspec', 'hacspec'), + ): + a, b = sums[key] + f.write(f"- {label}: {a} → {b} ({b - a:+d})\n") + safe_prev = sums['pf'][0] + sums['math'][0] + sums['bounds'][0] + sums['hacspec'][0] + safe_curr = sums['pf'][1] + sums['math'][1] + sums['bounds'][1] + sums['hacspec'][1] + f.write(f"- **Panic-safe (PF+Math+Bounds+Hacspec)**: {safe_prev} → {safe_curr} ({safe_curr-safe_prev:+d})\n") + + +# ============================================================================ +# Main +# ============================================================================ + +def main(): + parser = argparse.ArgumentParser(description=__doc__.split('\n')[0]) + parser.add_argument('--root', default=None, + help="Crate root (default: parent of script's directory)") + parser.add_argument('--config', default=None, + help='Path to verification_status.config.json (default: /proofs/verification_status.config.json or baked-in ML-KEM)') + parser.add_argument('--output', default=None, + help='Output Markdown path') + parser.add_argument('--diff', nargs=2, metavar=('PREV', 'CURR'), + help='Diff mode: write a comparison table of two verification_status.md files') + parser.add_argument('--diff-label-prev', default='prev') + parser.add_argument('--diff-label-curr', default='curr') + args = parser.parse_args() + + if args.diff: + prev, curr = args.diff + out = args.output or 'verification_status_diff.md' + write_diff_md(prev, curr, out, args.diff_label_prev, args.diff_label_curr) + print(f"Generated diff at {out}") + return + + script_dir = os.path.dirname(os.path.abspath(__file__)) + root = os.path.abspath(args.root) if args.root else os.path.dirname(script_dir) + config = load_config(args.config, root) + + src_dir = os.path.join(root, config['src_dir']) + makefile = os.path.join(root, config['makefile']) + extraction_dir = os.path.join(root, config.get('extraction_dir', + 'proofs/fstar/extraction')) + output = args.output or os.path.join(root, config['output']) + + spec_re = re.compile('|'.join(config['spec_patterns'])) + range_re = re.compile('|'.join(config['range_patterns'])) + + extracted_paths = list_extracted_modules(extraction_dir, config['admit_module_prefix'], src_dir) + admit_paths = parse_admit_modules(makefile, config['admit_module_prefix'], extracted_paths) + + rows = [] + body_admit_sites_by_module = [] + unverified_paths_seen = [] + module_counts_by_display = {} # display name → number of underlying source files + prev_category = "" + + for module in config['modules']: + category = module['category'] + display = module['display'] + paths = module['paths'] + + agg = {'total': 0, 'lax': 0, 'unverified': 0, + 'panic_free': 0, 'math': 0, 'bounds': 0, 'hacspec': 0} + all_body_admits = [] + files_present = 0 + + for p in paths: + filepath = os.path.join(src_dir, f"{p}.rs") + if not os.path.isfile(filepath): + continue + files_present += 1 + rel = f"src/{p}.rs" + funcs = parse_file(filepath, spec_re, range_re) + # If we have an extraction dir, a Rust module not present there is unverified. + is_unverified = bool(extracted_paths) and rel not in extracted_paths + stats = compute_module_stats(funcs, rel in admit_paths, is_unverified) + for k in ('total', 'lax', 'unverified', 'panic_free', 'math', 'bounds', 'hacspec'): + agg[k] += stats[k] + for line in stats['body_admit_sites']: + all_body_admits.append((rel, line)) + if is_unverified and stats['total'] > 0: + unverified_paths_seen.append((f"{category}/{display}", rel, stats['total'])) + + cat_display = "" + if category != prev_category: + if prev_category: + rows.append(None) + cat_display = f"_{category}_" + prev_category = category + + rows.append((cat_display, display, + agg['total'], agg['lax'], agg['unverified'], + agg['panic_free'], agg['math'], agg['bounds'], agg['hacspec'])) + module_counts_by_display[display] = files_present + + if all_body_admits: + label = f"{category}/{display}" + body_admit_sites_by_module.append((label, [line for (_, line) in all_body_admits])) + + write_status_md(rows, config['crate_name'], output, + body_admit_sites_by_module, unverified_paths_seen, + module_counts_by_display) + print(f"Generated {output}") + + +if __name__ == "__main__": + main() diff --git a/crates/algorithms/sha3/proofs/generate_verification_status.sh b/crates/algorithms/sha3/proofs/generate_verification_status.sh new file mode 100755 index 0000000000..ee9c8fedc2 --- /dev/null +++ b/crates/algorithms/sha3/proofs/generate_verification_status.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +# Generate proofs/verification_status.md from Rust source annotations and Makefile ADMIT list. +# Run from the libcrux-ml-kem directory. + +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +exec python3 "$SCRIPT_DIR/generate_verification_status.py" "$@" diff --git a/crates/algorithms/sha3/proofs/verification_status.config.json b/crates/algorithms/sha3/proofs/verification_status.config.json new file mode 100644 index 0000000000..35343831bd --- /dev/null +++ b/crates/algorithms/sha3/proofs/verification_status.config.json @@ -0,0 +1,38 @@ +{ + "crate_name": "SHA-3", + "src_dir": "src", + "makefile": "proofs/fstar/extraction/Makefile", + "extraction_dir": "proofs/fstar/extraction", + "output": "proofs/verification_status.md", + "admit_module_prefix": "Libcrux_sha3.", + "spec_patterns": [ + "Hacspec_sha3\\.", + "Spec\\.SHA3\\.", + "Spec\\.Keccak\\.", + "to_spec_state", + "Traits\\.Specs?\\.\\w+_post" + ], + "range_patterns": [ + "is_intb", "is_i32b", "is_u8b", "is_bounded", + "\\bbounded\\b" + ], + "modules": [ + {"category": "Generic", "display": "lib", "paths": ["lib"]}, + {"category": "Generic", "display": "traits", "paths": ["traits"]}, + {"category": "Generic", "display": "proof_utils", "paths": ["proof_utils"]}, + {"category": "Generic", "display": "impl_digest_trait", "paths": ["impl_digest_trait"]}, + {"category": "Generic", "display": "simd (top)", "paths": ["simd"]}, + {"category": "Generic", "display": "generic_keccak (top)", "paths": ["generic_keccak"]}, + {"category": "Generic", "display": "generic_keccak/constants", "paths": ["generic_keccak/constants"]}, + {"category": "Generic", "display": "generic_keccak/xof", "paths": ["generic_keccak/xof"]}, + {"category": "Portable", "display": "generic_keccak", "paths": ["generic_keccak/portable"]}, + {"category": "Portable", "display": "portable", "paths": ["portable"]}, + {"category": "Portable", "display": "simd", "paths": ["simd/portable"]}, + {"category": "Avx2", "display": "generic_keccak", "paths": ["generic_keccak/simd256"]}, + {"category": "Avx2", "display": "avx2", "paths": ["avx2"]}, + {"category": "Avx2", "display": "simd", "paths": ["simd/avx2"]}, + {"category": "Neon", "display": "generic_keccak", "paths": ["generic_keccak/simd128"]}, + {"category": "Neon", "display": "neon", "paths": ["neon"]}, + {"category": "Neon", "display": "simd", "paths": ["simd/arm64"]} + ] +} diff --git a/crates/algorithms/sha3/proofs/verification_status.md b/crates/algorithms/sha3/proofs/verification_status.md new file mode 100644 index 0000000000..3f836377f8 --- /dev/null +++ b/crates/algorithms/sha3/proofs/verification_status.md @@ -0,0 +1,83 @@ +# SHA-3 Verification Status + +This file is auto-generated by `proofs/generate_verification_status.py`. + +Each function is classified at exactly one proof tier (highest wins): + +- **Lax**: module in `ADMIT_MODULES`, OR fn has `#[hax_lib::fstar::verification_status(lax)]`, + OR `#[hax_lib::fstar::options("--admit_smt_queries true")]`, OR `#[hax_lib::opaque]` + (body hidden from F\*; distinct from F\*'s `opaque_to_smt`), OR an inline `admit ()` + in the body. +- **Unverified**: Rust module not extracted to F\* at all (filtered out by hax via + `-i -::**`). Worse than lax — no proof of any kind. +- **Panic-free**: proven free of panics (and obeying preconditions), no further proof: + fn has `verification_status(panic_free)` or has no `#[ensures(...)]` annotation. +- **Math**: has an `#[ensures(...)]` annotation that proves SOME non-trivial property, + but doesn't match the bounds or hacspec patterns. +- **Bounds**: ensures uses range/interval predicates (e.g. `is_i16b`, `is_bounded_*`). +- **Hacspec**: ensures cites the high-level mathematical specification (e.g. `Spec.MLKEM.*`). + +The "Panic-safe" aggregate (sometimes useful for headline numbers) = Panic-free + Math ++ Bounds + Hacspec — i.e., total minus lax minus unverified. + +| Category | File | Mods | Fns | Lax | Unv | PF | Math | Bounds | Hacspec | +| ---------- | ----------------- | ---- | --- | --- | --- | --- | ---- | ------ | ------- | +| _Generic_ | lib | 1 | 16 | 0 | | 16 | 0 | 0 | 0 | +| | traits | 1 | 14 | 0 | | 13 | 1 | 0 | 0 | +| | proof_utils | 1 | 5 | 0 | | 5 | 0 | 0 | 0 | +| | impl_digest_trait | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | +| | simd (top) | 1 | 0 | 0 | | 0 | 0 | 0 | 0 | +| | generic_keccak (top) | 1 | 50 | 0 | | 50 | 0 | 0 | 0 | +| | generic_keccak/constants | 1 | 0 | 0 | | 0 | 0 | 0 | 0 | +| | generic_keccak/xof | 1 | 8 | 0 | | 2 | 6 | 0 | 0 | +| | **Generic total** | **8** | **94** | **0** | **1** | **86** | **7** | **0** | **0** | +| | | | | | | | | | | +| _Portable_ | generic_keccak | 1 | 5 | 0 | | 0 | 5 | 0 | 0 | +| | portable | 1 | 27 | 0 | | 14 | 13 | 0 | 0 | +| | simd | 1 | 19 | 0 | | 17 | 2 | 0 | 0 | +| | **Portable total** | **3** | **51** | **0** | | **31** | **20** | **0** | **0** | +| | | | | | | | | | | +| _Avx2_ | generic_keccak | 1 | 5 | 0 | 5 | 0 | 0 | 0 | 0 | +| | avx2 | 1 | 9 | 0 | 9 | 0 | 0 | 0 | 0 | +| | simd | 1 | 19 | 0 | 19 | 0 | 0 | 0 | 0 | +| | **Avx2 total** | **3** | **33** | **0** | **33** | **0** | **0** | **0** | **0** | +| | | | | | | | | | | +| _Neon_ | generic_keccak | 1 | 5 | 0 | 5 | 0 | 0 | 0 | 0 | +| | neon | 1 | 15 | 0 | 15 | 0 | 0 | 0 | 0 | +| | simd | 1 | 18 | 0 | 18 | 0 | 0 | 0 | 0 | +| | **Neon total** | **3** | **38** | **0** | **38** | **0** | **0** | **0** | **0** | + +## Summary + +- **Total modules**: 17 +- **Total functions**: 216 +- **Lax** (admitted): 0 (0.0%) +- **Unverified** (not extracted): 72 (33.3%) +- **Panic-safe** (PF + Math + Bounds + Hacspec): 144 (66.7%) + - Panic-free only (no further proof): 117 (54.2%) + - Math (non-trivial ensures, no bounds/spec match): 27 (12.5%) + - Bounds (range/interval ensures): 0 (0.0%) + - Hacspec (cites high-level spec): 0 (0.0%) + +### Modules per category + +| Category | Modules | Fns | Lax | Unv | PF | Math | Bounds | Hacspec | +| ------------ | ------- | ---- | --- | --- | --- | ---- | ------ | ------- | +| Generic | 8 | 94 | 0 | 1 | 86 | 7 | 0 | 0 | +| Portable | 3 | 51 | 0 | 0 | 31 | 20 | 0 | 0 | +| Avx2 | 3 | 33 | 0 | 33 | 0 | 0 | 0 | 0 | +| Neon | 3 | 38 | 0 | 38 | 0 | 0 | 0 | 0 | + +## Unverified Rust modules (not extracted to F\*) + +These Rust modules have no corresponding F\* file in the extraction directory — they were filtered out by hax (`-i -::**` in `hax.py`) and are unverified at any tier. + +| Module | Path | Fns | +| ------------------------------ | ---------------------------------------- | --- | +| Generic/impl_digest_trait | src/impl_digest_trait.rs | 1 | +| Avx2/generic_keccak | src/generic_keccak/simd256.rs | 5 | +| Avx2/avx2 | src/avx2.rs | 9 | +| Avx2/simd | src/simd/avx2.rs | 19 | +| Neon/generic_keccak | src/generic_keccak/simd128.rs | 5 | +| Neon/neon | src/neon.rs | 15 | +| Neon/simd | src/simd/arm64.rs | 18 |

P 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 z zI{K0M}5OG*DcNQ;%esQO^ZuIJ5UEv)I!N^i*9{NgViya0EQI#a~zwS zzaA_W<521CBYO(u9?T-?jO7t5zk2s8QfJ<>+s)|eJk_|qHDe@41J$EWXb zvH8xX3mh5G=;s1z^fXF;ZCK}C7fHz&sU&u+P<^~;{JByxwj8`JZAxn98q!CybOibk zyxn^p_xF3>gPR~&+@(Uq`zIWx`{u zTlJZRn6`qSuf{;KmG&_j#{P5hCXBK*4>hhUp!HRY6o=OWD1KWpsoG7uq?2sX#?Eq1 zysC&#dgt8;PwJ5xR=tkD^R%%`a)`#;gPrNben~V;r#N*SCNvAsNkT3^*vTNHATP@H zg7=n>Dm@^lN3~?|689T{-E42V%Nssrdmm&aB_51-Vvn)K z@o+utCQ#&DFMY@gL48>k-@2-nRDM16P}t-=OgB@wO?Phzfv{}7^&l>|W0f?$yXFk9 z+LvVZMZ|8#Pn<*L>F;pXKUNP#X7?o0+yOTkKF$}}E%({)&Dl|RojN~34>R;uoe#0B zqebCd0*j5luDWD2Z3zPUz{txE=qYUt${3Mlvzze;%C*f4ikD{E@eYbL&bJ&Gwi6Q* z--#u}!=cxRFru@H&68f;)bxsUy!R8#Gj-#`<{RU3wx;i_+@wnr5G(Kedj~Vi&620- zTwV5d`=VFv23FS#EaUS1tEJ~CM|bUKdndZOTom<{QjQIETw`PfmoLLU|GG8V z>4LwIZ2rdJQ7+W?Mhorg?C9;ZIc#^=nAP`VoUK+up<^LlmKX=&(vNMZO*{+XjnoBS zr!Kxcz6>4)D8Fx5WWD@!HTC$nd@gsaRIjkb^CUL>G|B`4tGRVojpoyS^-sHFq19-p z7TFnTIJJERhIqA}&3L|Wq967|@ZgMq{(1Xj!ujFZ{IAqaNWB8gVy;BLqJ(avFXoH~ zd4pZ)4z?!t^;J*e4>H~*Pdm@shlOz|#CsxLRB_A>6gGXsItC33*Kzy+dkeX%VYA}H zwS{qC1i`g-#}L!1!GT86^Elp`etU9GT%WjqovmhCK3knUb?AaRqKv+te_c%nIz_u` z;?AGkTj;W!&gZ&qbt*Pj6V{t;q84TwQfXzc$GJ9tb?-N1mV0;HW^&EnL82Jg#aec= zy6R1jILB)5UREs?MJ6X!1Y3X(w zr)hcCN|kDoOyz*NEd6w`R`}Gj$rgA&R^qPP7E8fhKQ?(&p$7>uj9)il!pS)*?Qv@Qh5UV>L>rWeg+fUPQ z*F~-zF-B73gIelevPRLLU$gnSA1Xa`$C*AO*!l5n9B>0m(S}@u!*yg(%QZ@O;+bp2BdEe5P+dn6I>aAf<4D|)esrH&lb*8)J z8Iws+yFdR%^ydTrrY-BR8&~k2phnm|-2q(5=uQ94du#dfismaB{L@oaU{DnwfdnbN z(~OzPr=;3w zGSzlme0v~*#vKDv#;8&G;?HZwXvI#^LonmAYOj9x_ z$|}Vkc5kT0Z`u*A0PXrL9GaY#gcec)vW)g^{*0Gglrv~?X}z}m{B@EPV|(s~FfTVm zf9hPhxA1lw%EfyZnnUNo^8|v`_Z~8yooE=f$So3DtNTd&AI{zaDz2qz8%=Nt5InfM zySuw2xCM824-g=@ySuwP1oy!uSa8?D2Ky)HJ?H(-ch_C(-t{l`p54_|^;C6L@9Adt zO!xA0$LtYHTuY!=$_B_rhaX_py7=AsSf?l4d5<}G&+XEaA7<{XhfDwU#56$&D^6}d z+bGmJ^KDFwW!*Ozmuo8~QMz)#MW}of8OA@8nrbMYecpIs?;(IUE@J@lF6CBGK_Sw^ zdSJknFBnUT`8NfY^Mvq6X_z`;2-Xo&cZd-P7-Ib0Z}OS41CKMyvJgB)#m@4tBw7tl ztZZl$GifqB&Hi4cBYW4qfHcf3J5TgSFBBALjP`}@p6+@7{=%Yy2ds`RPm-4sH`h;X zH>!z92NBWaSv(dXz}{rQ^Ea=iv+<>z*xh!eb?^@NhPPGMgq(Ak+XiQNehM9Rbf7L) zTQx$Rw^Z%bIAz0`9u3|3*Twao!iqDQEVQ1Ny4lmZ>aoqKq__Fl#g)79m9^%+z+x6A zCRXsjA@WVX$3mjC3aqY^lh>KpF+uz*4~*o#)WtV7+xuSZ@c+fXse*cuf5l^Ar7y1Orp19 z!^cYnlv&3*wB=LNjJ`1$TK>Yim)+g$DfUCV*9xzPWU`s#O9NWv19T~GOOo&XUnKK0 zl%h?&+}vemi0sup9=7Yrq$}z5Owsuwvd(ZM`9T-_P8&bx4Z7jUt|=m*4uW+0Auz4H z_+JwA8@ls37O&?{)6wng+oPi`Soj(}?M>y5gZs=&S>WZ;!@nG;>w5ZiJHH`ylrt?g z!*F?V7&N5nX@C-36*IO&PL!&>ku@Eig02Va1ZobB1R2zHi*a8I-(I(~={g1ZxE$=0^{NJTma#$iEnA({*yEvH|+Wu9vH?l%PU}fcCCT1r7tE@xJ ztV7Jj#jQt7%%(#OW`GMUEIPz&Y;1qdKNQDb^?%j;&F9e}=3r+2|8@QcgN+re!Sx55 zjT3B+m6e#2lk2bRKV?o9mOpO%b+U2u{Du98{v*f3&i)_SKlDFxUVxuXu3%kpy$W6fyT7 zF1Y-U#DBHGuKuO@H}8+_e?kLB1^dABCw#1bHJyhGT;yi?<0~7u$N`pRWBJ43Uf%Pzk>eXM1Z67e~~aS^1qV>CjVphALD=buD_G>-*Ep)!=Ik_cUu0Z z^naP4KSBDFoc|SHR&ed#H^*Nc{(mw5MD{NxKR=VCrHzZJ6O*Kkp^K@wsj$KewVs=4lq954zgMtG~IK(-DO&LZgBXvCN$C zQE-S8(?YQZBQ%Y2u0(9I6AhedVeNL{7Hv3muo~8&>w8xb487SewYvIc)$OFT5+4Ds zZE)1N)s@&Tn7nW1iiorK;02r4H1GC<@s8QqmqLM@JLVVhaa;P~+z-Yc1Bk`VLP= zJSP@XMWajj&2!Q5nfsi`aH0Nc$&%Jy;IhB0WpQ1ILE~diKU}E+A>(D&F)%Yl7IxhH z$hRY6rWZ2TUNaGB27f4RE5z)t*&{(0w1~!2Cp5+=ySo% zsmW=%YOvH~JaB#?S$M%(=3$1THG=X)H~c!0P&}2^Ire*QvAu_<-W4=4Gf#%n&i;Y=*5jtg-aQ7f+U`yK%S5IQiRn?lPnQn^RO@!A#Dh3osjwSim$K)f zS0myVYD&3WgNv2jEr_bi<{`Zxfd(#Qx8I9Zm`XELbB_RQi6XwaX^9Av`FOc204AEy z*<9aIq_g2Bp`wbn!uN^qCyV3{g~tMs^KEVs+ryl4gUXoLV@^IEm-s1)S-x}mwB$1u zj9e0MY|b7CBO>L*01klYSWt96$+2a7+KB}&0)be6Zi{laSNPDZg9U2TH>^47L+(Qv z+B}Fu4_xRhVJ)Di=CTkrGuF7u=;^7MWgw#h>9DBZtJy z0Z@l$>?#6^Y?f$^nJ4tL!BfSffK5QvF-v>U34S_4S3o6f-gGS^M1k83MplUZ^GNWPqS>Pq4a!p1kvdSmXD7 z5u(D5Togw=S;TpN0BbuQ$QwieG^~yR2mtn6YCxzj0a&6M0AGOAk)O@&CkD|I+3J`% zNPy6+(II*xl<(_+E2aRPo&t)sARKxf z!UE|95PYKvgY0sXO8v7>5P?$j&%xQ>>~@dyghc2ple}U(8*#NItaF)W695XpM6Yk0 zb8~={R`t1@JROUy_MB#?b;)VrmN~D(H$cPj6OeU@pz*!7*tD2I9`?L1kanqO)*!bg z4i?1g!qg>_1n5!01S)u;wkMqEG|KqKxXqXy{sN)_3Ccsd<#gr+8Z(+jt=rD?YytNc z9ollQ$w zHEPOHKxsJF)djzN7XB9L_t8>YiT{wm3)}foNn1(Iezsq_H^>r9w3g&-XZwYFgJ}LA z1Ql3pH`_1X8zggnl;foImgo&CS(_8u%YKEw2P(Ce`2Q4mK?k!Ol!W>OUZC!Q=xcLI zU}8$(h5H`3vo;swtRw_B`RN{L3?>|v-cr3m!(fE{>{ph1U;((!Nl9o-;D!1gNCqar zs$fL8dtm?C912)XVl{SY3e2MOXzF@*hX>(k_m+2nZwKli8 zll@9~54>+J=>ZF%+=Ew#n!9&U@{jQb5uP7;x0YP|&h8HN_F}jPYM&o9t<713ard*k zGrU1|=SLlFB|YN;FM8)k7fwq4Dc+zCFyim*SLA!3I~Z|Nz!&=-sJAxf4z@q|FTx+J z&Incq!*6GIM|gvDzpDVR7uUVM7CeA zRCc$D2dHN2=((p>p#bvdvve}%dQwl)&Zdj&jsUgBn|hq^mRup-h1I1V#u5QNab=O% z-|z6390AGu8#>UOdR6vc(C*a(trN}GbZ~sJ2VFxkJkn~&{xf2L2ZBC~qndS{BmeFL zXhvuIg$DsYM|+A^$+()%iq;m;G)Wq%&OZYIgaP`RU@V5jQsi4p`$UeOm5=>Gt>7X0w8z!G8o_201t42foIwcn-Y zFt-qOQI&p$BNni=RER^Qf%I3KRHa?yLjNA$wyd??;V82dHzVznQ#1YtlYM97nALy* zLl;{01et*#@UKA&BA^C7ijC`Lqg?GT$`H+@0?$e~~fO(h+`R`<;*q40! zmTTr?y}1JJWA_h(OqGAouhe>}|8hEF-2Q)@Rydep!T9vaB~3_s0V6BD8rk{_tAVdL zL;#cJ&~&rz{!UF`h47~5zcUy=>`tCAx(4=#id~Ojrj*>TOWPr8Hqx6eV>+<)6+jj9 zZ~T}tM+^)Mw7VMtrY)=X_N#-E^sBe85PdZ=Y<^}GtA7IX$xGh$UmnSNl0w6Vem8i; zTL07Q9%-&p0-*lg-cPDy|LV^Po(5b9@RoC6e@Zy@)*l33&7Or)g)gnqfH!)KA1^wn ztN9|+?wefT{>-ny_f|Khy97d$ovo$+o{kAvBTt1U|40!+M9#STx|-2o(1Bn(r6d1e zJ*$7Q=(B}I;?7u0>qJgjnDrN{r@tmz(%=>pbzJ1Po?j9*|GO&|R6MD8cswBsZQekL zWmKQ9m72UjlfXj>7UCE{pYHte2trDu<$pXfd(Ple5&tf5H`YRJ)6UzbGWz--3y0J0 zZQsBf%j^254)v`3w^KYLj3AXUu;>%Upe-(AsFo608oYAFi+hC^i&%7IEgr6y%dQ%{ zwG~zpT5HNqdE(wV!^aEn(5ZU3 z$rg!Aq6c1!^VZi3phnX(K*XF*FcMyj;;F`FVVbsJQ&M_pnuQr>hT`L7Z+UD4vpyQ~ zgXCiZh=w?|`0%uCD&$McG*xYj9VM;;b_jMNq_919w?)rBkz8@xB~v|5?Ih=fFMC!@ z1U@m@M#a&hgD5O-&w=NGYdAQp$xE~HWnre$j zzk+ul*9k+4!{ByM>|##?M9|85<>67AERV4f#tfUp7?`O9^FZI4*?PxJS-LILc2n@b zMl%W8>waESE^trpp|DlUpuncWU1h5D-rf;#bXDwHCUbldIDw+F8DTI!jgi8PN{yrD&Ld$*o z@?!1KF&^_4;b2(Y@kQ@E9&fpDMXyj6+i;vfTPabt)sLAu-Ui|5c!ZOsLh7^&gd2C@ zpn!F7ps=k$_~+?^w+E{rRP@v(W}WC^-T4}Q#Fw)>y0ubmfdbpXh8#|7ZYm{NpB<+h z$vw&6(CQ;_nn%QY`!VIEm-h3?kPYRfBaX{XwBfYj6${Wi_?!&|MiIKi*k2M&vGqJ2 zDi*3D3ix^C5FF8p=%GLBaZ8iPGTY9snrgCnA1-**h)%G)Jjy*#0hE+WZ-;Y zt4V6qu2Q92ZiLul<)`b6kGqdq-KNy;)xp&78>d)^^vJprB`AouD(jx|$x{@~QZ+c( zcg0QrY_gB7%M1H}Ucrp&Y=yWto})49xY!6(e&og+EwO0w2}CBNF_DbIv9^>p)zpY{ zv5N9(q~+sV(Tn2mW}EJ+%ZhKYK-w5-9(^MtO3E&YHjx-KwAaM2=h>YcvCur4sqibJ zWn_7DXz%g)(JdaoD|T%dUbR_H+w6Ru=7LU}>VplU)>~$Ydiy2n^O%snEW$H{!!$E4pJl55!@^ed2sRg zG{C2@NE$B=10h5^EvvQV|dpb*Yft>6+B%6tG3dNw*Q>&EzJyhvjz@!N0wgLu}1U37=A&r;sQE?rP84Y$$ADOjpH5^;im!IH`61biyAlh%?B z*WHeiskckA&$pCxg4H^ZyV-jj^U2yCGpceM8BH{w7YtgERV@7Ca%e)3G3JH!nDoeS znK0?cDU_1)i)mVkOD~&=Dao`Vle}a!Xs@omTD$5BSGAqg`F^3qMGvc%vKL($T^TR; z=Fl401R?{md1WbF%y!&*f=GSS`~v*a{GvAO)BMszXc4FpH9rz(K-#>oe&;T%|82_Z ztMx4Q*v^CNHFx9{H^0)bA;z%b^Yndtfo$I) zcBEflDUzfuvlV=K(=G`nNfJlnF;lbdvgC=sq_xQLk455n7(<&F;b{wNX-H+(JQLB; z@A^%%JmMB1tFhOyCi?DBG95VF?sbz30R8WU2WRFUIf%A)wmL_d9j(R+RQpE*i!Mgv zye#fk+Ftd1xU=PI6?M^dQ+0L5OSE$Yb6Io7B{ga=d@y{l!^rv-g*>yFmUWiaN#s)T zY&4vfRYtCwS&Nz{+NMXnQIPH*)&!Js_#8mJkC1!W9*5qWW_QE6S@J3XtBz@sC#8Te?7_umdS;GiycJBafywyg~LZ^bx z+-i~J8LQ&6r@ib_-x1{3Hsd&TveD)H8w>CPebolPMot6(WSxEvVs9Ls8wg#sQ6GZv z25s#yvi%Caz7|-}tK!5*yN#1wZ8NL>Vw(^D64Hn&6DMVeLlcvz-+SE&?9ANabcJtH zO}&E*sS=IccWJ=*!SmJVq)l+>_IQvQqs{)o$*> z?MH(yb6YN-OI*5|$C0#(H>=sJTAE@NA(+1820rxn;i4S}Qfcu(Q= zwN(2GXC{MktkbE-3JOx{2MT8qr=47`nDs=RWigs94gPGe@k3Ky#?d-+Vk=ygJ^4vJ zb|Y_tpgEXb^H?R(?r7CC^v9g8GI#5joT0mzf@cf~yrx$rRl-d>j+5z=xB1$2^o{S1 z+{Z*+@XikN!!!Xzw<`8O9p?qN6+GUp^lyAG8%g%c(*E|jv&?Z3_>nWrh`h=ko`-@V zJ^)GTG*m!IVxz@x$HqReSuNS^n^p3WtBc5@N`w=ivofJj=EBJq)k-wJ54P=SUr;nD z)pU?1Gs=ee3_q6_fx9si2s>-IYO~00PBF9Fv~NRg(fF66ADQxV>g~N zdGQk>f`UrAENbs6cPg8upShOYJE#_n@~tzx%&tKk!&;MoQ^mo)wbwFt5T}0bez^XRVnkvZV)=b$7UmY# z7RENF?07+u0h0a&Go@U#lB3c?oD0XO?wxmcQg~fj~NhW^pDNEIxm}NWO z)vMto@4E@i{$C;7f(M zyBVhbspO0*PP?enxxc{yI0cf60aesbBs@+d{g5C za)9riB~H7{8BNFqoupNbYrjwFrq*Q1YPm^Zcp9V(4dSML&Ehy4_*J(-OhDTVG~GT#&RRFziiM8^8k~!iWmVaI-N~`iKOcfvY_qJcmbZ1?VdC? z^JHtw#Yzv0NANyAbi)aYg7ixX1?$trUaAcO=lPYQ#RB*ZxFhrq8SaJWib=&KQ%ZX2 z?YyqW<#vmeqF-88QM>rGaq$EMy!?Q(hYK@!1-IJ$hk=vl^9wTulH(1`8JavJQ`^It z!T4{DMvs+gxZfcs#LI%wE#7Da(JZTp`>MxZHnKEoUI6tW{#yHY&45qg0em4GQ%)ud2 z(w?Q{CVcM_Wgc}PP?y#KCl&w;g~NNbnzm}z(D)3Y4Oyvq|8Z8hp0sJt-J+0Cf;ZZw z-tL>1qB|YWadD}X$=S{o6Fd1CQ*>qS0*08mCbn0S)zC>HGNid2Vi=jqNzAFYF5Og`hBV|iDU_1MY1th^8xYX%>EY z?!p3<^iDNuUTbQ;iUiL!7w?dgR`SID2y!vqHE!KXibG5oDdN488ZVkSi>z4&!7#pXGZ}gHYR?5{62|6Vl)vkn&F)xBTB0 zIH2*v-G+?7KGa={HeJh_#FO~x z&B@JB|3E8Clx^ykS!Q$ghcx`V1ui(~#XZ$`LbY$z7WYH(OehuR; zcv*g}oR=E=dEMBk!%NPTm_mEta=$=O_EdQ;)fD(4)zp^-x#5r}@@ESD2NoBj&&%>| zAL5u2^b>`1)f#%1sLy@R`^-0BNXE1RWfG>wV~Rnrq`_M{UEgEf=onr8iu3fI&b`(ExL=qq+7 zuVEc5B~)BTH9<#MC)qO>tOK|poFSY|!TZ6-)|=o1lm!(%ll4hgx?}yar!NF~QzFlb zvV~JWfPUg_XwD7{$p_5nTyuCpPJ*pEzd`ci{>T<)STivQ!Y1}b>=fLW6=F`PaR+*` z6>9oH8+^J!)*ObfJ;wL7-YY?;C_bJa4w{n%#yO2W!)yny1^Fff4NF!u&?xK3jXC*> zqE+MP@yyd{Zj)f-#OmbZi;Za#>{85jP`xC}~W?R4m;V>QP7;|!ASN8i-R zDMVycRg+N1$oB|MTk55FN}o#`j_X~E+SS@MZdE{bAn+3e&@d41mg@H4gO?Z~qs9U5 z9nO~mbh}%w%====xAnxr%}KN4Rcd$X(5uec5!3dk6^F=F{jrpiF_h7ZBg%TV`Y7KK z+TGFXs^dAQXkZtAR#dE8t;I^YTpZObn(7M7Q7JGAScW!sUG$k={ZYVMCY{lIJ6iE( zp-Z;ZDdwEK+66^9oIPeix@P=-q;_^dtyze3_0)lq@z5aqu7jzY3s;&_s?*KxYx4hWqg zVtR_QYxZkdNRy*FY-xPDHb9k_kRiszNWgLBCECXP$>a@$l30(dNq%9h4wD?)L?X)=61Ez zJ)#)~k4c`89Vu1XZ9EAjTKFHUFy`3-4B4e8Qg-zBGmMlo`~yB@*$1AoLfjV!t_V{O ztoj8o+Z>Km3hG2f^89XM3*PgC?CQR%1W|kohR0qH7d8uW0*8KjdF-OtH7-HJ=O#73 zZx1hQSbRE&eBp$gSP`>^uCWLF3+(XJsA0FVERWG{eGvvd#EriX{Z<2VD-`$}t${{4 z=9|tb%Ty=h#xD_EQ$tFpOV#(4ijKce%$OHB_)LRzvhN(r$msn;U;y6G7L(UJ!FsCA6-Z|0g48TjO=xbv zHAeFBrqCq=h%XVFqrG!?GE;%qwtlo8x%%|OcJ)`sqm&;Jdl_uoPP@Bzh`wm&g40`y zJj}|j9l^KTb36379wWC<*Bf`bO{vsrzpF`Xk}5AMUlB`#!Ze|yZ6me^4kiBaQ6uCw zv3om#cFNG;W|ookV}coNB)T)@+-Z4PSq;0B%FJPucM+xwslH9FNj|mtQ!}ICs+ws}&~o z7U@Pb3F*BQ9_=|3%}j-7aZYv(P)KnsmnS~ z=)=MiAG*wi`)uP-vc)}UYT*jmK~e@_%}UZPrkJebA0t#+HGKp)#rvAEq|r|Z>0XRE zjtbBV==w4^rB)Oa1<5VyxKv*{@MQDm&4;S~^ww#Ya&a%BKv852_MdE?2%~ma13)GR zS0@2WPqefTv=dHc{P=uIiYOloE>Y;4Mh(8_G-pP0$NMDv!M#oGoeqOS56Gj8f`606 z7k}SGy$acLUGf|ETY?{l*HEtI7@H=vZIF~$E#T8BFglxw=NPkaPpwihbPHX_U6?tC zYthUPYa)?@s)LIt(q294o=KV?GKF`i(2CbYGeU`p`~jEp94SefQej*<h(nH&MIdX-;9{Rvy6pLiiD!SQ1n11$Dd7iwVGfW>p8K)vMOsO zeNo8E@2WcKBeR3Mkr52+-dyI<=bC=TbwV_-^!WAu#%m%K=bKq%A5ttI?dTdMbJRja zTgxEY>@Op`g^bALjo%AaXT_HrZ!uZ+0pZ88bL$85L4mZ{q}zzm;ekKC1(M^gN(K#Z z{@@gW5~u!7TaJNHnsO^zF55`(i_>k@(G%yFTW7SbZnW*E^yaSUCF{t9=7qg*%N_FL zdV*WtW<#4_pNv1a_H<2`mg2q?q2T&-(K(ER^NC`-xoNcn>)`9puh-o zw8U3t_6|}-%Z`oX@ffOaOkg9J4IY#zrLkHrLPcjVJIxNj?TsARIoHQC5k_Tovb!^r zwXibKuh}(IaUC2*n^79xlkDqej?95U5 zzs6-E<=7&xFF!xtAEnVEuf@|{@{lFT9~k&Xlx!YhDvZ*EN9?31sFC_Vn98cz&}$=Q zsiGPBsA6O(s3J;1#)NO9qdk}gnhn4;M&dOng|oW^$I5HK?L?2-#a{&^yu^KqQc~ci z?a;#D%BN-xG2kSPlh4M-iA$m&;~^?A)6KYZMDE>V7Ru@5Jabu-kqMMC9GyJI-? zdtE#&L1Fr;5xiMSsO>bF^p~_Gx@rHXo$o3QJ-$d!F)tLO@R`pg8v3Ktd3%npji)}g z(NgCsHp$-3e#y?PRQc4y8T|>Fg%fde$u!Ajw8dvXdLxLbb~``b%6>7OSA0}ryWbVh zobY6h!iFN1=f-LknGe8|Ktu?p5Y5Vsu|n1TsWhVWJqWcYk~^U+J0CZ$IxQuZHQ!_R z0a)m{qdJ6LVw9$x%@Oa(z!5P%CYx0DIm|0il6#B;n<8?a(lfy?nOsg`HF<#Q#qL;@ z;zf{zj4$V|$HO%Fdhax)V}Om>_G;K5RbyLAkj@pBx-M^eA;+sBbH>?;)LSQiH~ZJ3G*D!M_4oLDaB z`AVO{yMZ6TQO~O|8JUp-m2jDc?FP@}gRs=Cw>{H~d;+fQ&NE#!I`Wt_tjR&8n5>hZmJ+MJa54tEbU83Q--SaBz2D6+;_!fi)!XyxW)CZ)pXzW;E8XB(L&~QO zfv5N76xp)ROeR8PIBU~IK2sy~`S9iP1eiIDC1q*ZnPY<$7VSd~j-9FnA{pV4=LN`&ehf^icjGU%Y9N8Y}9n}LPf0!T% zTKPTsAhRCrv@$7@cA3eg37p|hHnh%}7Y}Ad^ARMkC6u<(X#T=l!5ozm6|P51um2up zE~DV;vnn-Ae11DKQ9QtO*fl>tQKpJ!V0hG1RvMU2g+L=uB z6G|D4J|;g$j@rob52gt+)ma@~5=p&gQ|E!yc7>W-N&2=FzZv1+X!F2pyC512abnz1gpNAq|9X| z`Xs*v(>fYj#1UTS?-gZqI+sI@8?v}{bHG*ECeVn2!#|Ytp-SZi$NJ0eoN;+Ahok>c zI`=iv@b&-)a8qu!DM9YJruE^`e^kPsaXW+Y@mK%SC5I1^LI0A0gWeNUn;=1VNX^?l zqeQ1sx>4WXtpE4R?c4oecT0MI4soAQd|i4I>m6G@jg7cv_J9LC`9q4-#BPZAc)te* zc^X}c1x4Bj^Z^-o##2Drc1krsO(4VRq(jb|e(@V!)St^Z`8ihHnOyxhyX4cZMVCx*#4_D?H{N_|J? z81Ke;!zyV8XteF^jB_;Enc|-flq23twI1@KtE-Je?m}L3YgE{(?0r$^q>E(*TH|Qo z?c);5^y+z)ysxbnNbeQ9NE^kSXhMB4DB8Tqbbc)){BmPv6r|vC!BZHoWf(_}V1iXR z)k{&EqskF4xn|q%Tb`FB|Dx@8{5#KgP%rdOS5`l$FubO&oKzf>tz%I%1b!9X1m10~ z0X)e(>b2ICDr)*VMDsW@(J5PGW>_45rL)p0ESu&#KTbITUu(fR8dSW{YTuuFEV;L= ziEsJkgK8vDK0iq!BKlX_U{$O2phN*fteQ=gTKEz~{fDQ?gvIp!^G3D{4#N~l%9#n<_Jf2DF| z(a!>@%%PLxDnz|~v-FE=MqY2a*vY$SFwEJ;Khe!~vLr4U*mt!)Y213zOu){g&0x{} zV)8I5^_f|uoTxNSZmIkHaGM;SZTAqb;Ywd`t4gO$G0Pdbszt|adzLqWxu>iM`i1V# zE@_Xz=4`%;hzXNb+d4UK=GuJnJ>}QLne9GIMcrf~!-TaZ>R8kyOoasXl9r2EM>S2y z&*kz4IMenfQBNJ~AQ@)u?=XE5GN8GUUXB`hisRxvX07I76Of1-75ESI7eBi3l) z$usa$v9sba*cQ|0%`RKmvLO~B?Nerr(oUpiaW%A0QZ{mOLuW`(X(H81Z-($8Vdd$W z+i_@DwNn}JFb`FCSy1O=U`9)tcBW{EV|lK%o`eR{C@XYZk2=NBhPW-~3B5X7Wl+V> z=Hctu%9KhRMwJk_Gc}-fsY}NB*%uA-A zV?>r_Uo$02hip%EIf)?^xZm3Xzc|f|v@d*m>dP*US=QYOThsTO*jonRAzKj>Fw5%+VtFo_K(GLDGO9I+B z`vIGg=%z-jg+c(V)OQ;-Z&b$q!3^0B0pA{$&arOX&8~qLMX`?v5;Q}Bsr!BY@1Myw zkw2)@Gtx~@QkWDxfPZfdv(9twE9%deaj640{Pyk5UOc3wgb?6A{6=u7_sj?o+IJ6n zg@1boym+L_6-p3+)C&A?p;eDsj|Qk2(TCQf)q!o7Ta@rf)3}2JQq`O1_QdL3+8HP5 zgvr|_@QHNnG6L)#QAB!3-cS$EuFrDc)L&b2-Kp#0N>Zy+WlX~PB?u3F2IX=QlLo(k zW>hv}GA(mrIb_{)0;rAA0v5(FbFGuq0h~ohje2cZjbd#9mt#?57XcfE&v<|gvO849 zZ6eawfDzI=sb_qb9xKA%YBy>g;I)u7IlggKzbOkqyvUG~OQ}m$Q`Ad`;@a0AQ@gUq zl^M_DDW2^a-2pBuYZ+%vG^kzX#U=3T+UyEWO;7WpfG0_1L*FXYmZU6)XON^L;-IC z^~{Qf6-7E~!j2<06z^!l|D+)Q8*kBf9si|}mbs5a}-5fgFUe*k&bNKqQ zelt3xkZ4J8+p)PFz+oG}5X{8*qNe8)^~jul)){CZ{^59V%@zJqNn6Ksi2a1!9Ptw9 zYGja){iJ~v=DYHqw8X#9XjDG``>(bnr+je;$6JQ&SESFSoQFB#J8GW`yQPnx2D>e} zb`nmWZq09(ZczqR8k$#DJIg#%xLL(5|(r0*6CWq2z<(blD6|@r;8b=$)T?SlMT?Soxq8cfhO&c-8aa$U& ze4DB3x`a>pwg)zJN$--4Npl!a)NfCstgO`w3^$F~y~fF;RzOL|~{7@(yASx|*if z<1cvCTxVWWR(GJTpq`<^s_lGXQwuI%C}${VE3YUIjT0@Tt7oERJ9e2DXp+s!Ra95{ zvQ*Ah{xomC5W~*Kftk*$&|+4zuQxeo;prmcq6Ta~>^=--Nl$HK8DueKVPMfQb|Yz- zgQ!Wsh9HVt>BY}w1`NLlUh>}KTzYP~W{pA03e1S!>4 zW1WP{xb_NL0hSd?r4W_As2T8?p-fuE#^AvG%-;M4JF@i zAZ=AaUz}|D5_E<-W}5<7u_|_Y(PR94azhKZ>~OiwxAh%!gA(5%2F&)Vs7CwYfMkJc zht^;VEcxVz)8u(XD3&zBxQ9j-bswpNk@r3^i5Wo88!2jssW~ol5x#gFW+zc z%T*Wq3H#w)M~@;_-HNKVH-z0pD{4_rKl1Ts$Wy;8`V#zH%x9o5p~1UEh)sgiZ8~Bu zh?D$U#&B;@*|uqzP03wj54%fSzYotv!i=Xw6P~+2?RG^_u5&|24(TPmB7vm|Be0Bg z4nHyoxd-UJjR?~caXiooVo4)tdORd4A!?3DJ1{^jQ8V(z4(~zHw&4WS=@K4J!^C{W z4)l!?{z)o``y(hBexw&wn3Wmk6JF`gFeJozkug6emctjOc`Kap;&~xCbm%>pVX3X! zuP;8DtT_W;tDvnJ05vF}Tag~Y!zEZnMDBaB5JZ}v0||*lP!NH&4sE?3h*7>eBFu}bLz^fV zsf$B80$2#8MHA!mu(x3iZu|BNE>oc0i1w(AGvCV(a-)02Bsg8uu;*%D19G8o6Q392 zWDzDF3TC!{H=tjxz@tI0WW}z-|MddiS>{w~>jFxH>VdCsC5)qQLM|U9+s*)*o+N#E zzzqwX@EbV=zYJJ#?B0n<3Yp*s*uKO%Lh;^-P2Ce85O}l@IayEw#T12rXH-_wINuWG zVx8d8V2BOhJvzZ>raXl8VnmkY=U{yzj*AuOrTTep0yKtr!*hZqzBhQ3NgaR38b_gG zFgp5`ahAUjSKh?&%s4aUr&|xy)MXZv44*-M8;=KG(jliO8$bdXW-3AdTR+Wl->=X9 zxrsTU2|XXX{V}NrJy?{n4n=PtFnjRttsq(+F$1!E1S}vy9EUo+zYtO(y2zt*Afwv? z^t<8Qv6wAUNX|$K*Fzc$V()bP;P-nXFfq3(kns;rm=}Nh(KUtze6MDP@0uM;uT>NJ zSx(qoj(NZO4Y?9OG=T$`M}T*YS32XJWo_iHNP0HY`+L!ep73tm9b7=uauKqNZ*G_Y zv^K1EOg9em*E1`Nd4$!F4P@@x4)i4DzCuRIg2%nXlNqj$=~p+x3~+0dR--vCEjP70 zxTgaew^1HQL?`}E!f(oGZp z;k`kKA3W`kAvpOxIej~}({A`&t4EW4|- zzGa`MfKdaz{;m=Nw{P>iJ}jXC$gKC>>d18i#;Sx!1AjL`BTnr*Z|MR&1qG&=62{a$%GG;@=^PDB@Y6Xr1DnL9f0FLxz5RqNll$Ym$t@q3Xg zP_GzAjs_J&e;@T5uGC09YuD{)j_wo1QCF6J)uP;&#-6MCa3hy1;kp%?H&Mc~LTCB~ zHo^!HP7#3Srbu0a<;rQR+5>YGDUC}qfot|-5hV3B~TZl53d zj|VK$4?J3m-R3`zd1p*ki`>oWat0u)H^Uw6hU0%3!{w)Nfc4&xbU9(3g#cC)Vh+7K z(}wH`Fhl9PecxLB`|M5OAs=SJ9lGJD^9x-dM`m`ee?Nj(cyw)gU(gc?pAzorB{H9_ zcA4tQRbzg7_(>`3QMN=-$)#m_foGbadVoXlJ=F}Rp3>_fF)-v8oB2XIY! zXqQkBS>oJVUE$rohtS90(vQz%v z-Il%`dS?fBb4|AmGkruSz$!hWmgE}{&Nn3|c!qx2lh7?Yg;tTtyZXk2_bCTo6wT3* zJPL5}wPZU!4qw+voCM_ps=f;$wDDaUFjgEoL}@b zk>jqdQ#!fBT^k)H*5IQ_oqa1=N!kJxVp82wF47;K_X`p{+caJ@}!upg0SA< z>pJo*rERIW4}SDQ(I(erKD49Ta}VsSS=0LsGMqWn)1*8PCIT@NTM>_FtQiJB=JZFH zwo~HmuWGI^3sY-$E2QBKATRtv?YA>V+&%g0WO(eikajuzI5rh&J@_t&=^mnytOqvKTKiVm2Fax zKs;L>DnXi4=q7^3(W)W1D3n2rizfL*u|pd0B{i5&9Bqe0G9I!cxZmxf&~Bg)IfMgS zLuN=@qaj7oi57g8E_)ruFDGJi$4y4qhnO)A$HYHDhv4cliUl|#1XoL>$QV*5D1UXq zsmAM?gbW#;jQKE~o`Xw>2e*5NQ}scX%pUMbEwZNfkYktAz)U$%3BB9@Mj}KP;2mHB zFY<~3_*R|&$T}FC%}YvB$~8Bq43`d`sfg}Gd@w~rC{+;7`wnHy5=7XE(dUSGm<;ex zkrpiKA5w^U<^F(}7eT1G78F}Mx9O1LoM83wMP_hm+kyG;u+U zF!=oXe*j-Vpub9;slk}yBxs6bppP*fGa34j%Yd%MxRWAe+faQH$3gxA3gl~A=}d<|8>DmJezo}`#nAosn+&14 z0XjE)9P)jT|1QJxb>{iH5j^+v;eVhbts|4du&^VSA$TsIdsc+(#+hs%03Lxxy>EZ2 z%j_Uu9S@xq=t%MW*^zwJfjsRf7|Q96LW~QC#-TINjpqQxIy?s`&UDNdp;I!PL+mId zzjQ3rr7$R)FH;0_vqOWiW+=x)^)~oU@cgq=vLA0vYW7_?Vc&wQ*!SO&ihM;riBY_$ zc!|WaZ>dKp%apH?G0IBiaw4$rrzf)Si6^sfd9&%y81nzYKY)}}*+jz2(q*|sDa(@; zkT{u7_J|}ZG89>4lcG>@iTptE8^v$9$%+q@FL6_pbCoZ1-&fWuo4FqPU4Yw^#j^x{v$s>VEYvxSwh`jfs1caNGmFVCaoc+YM}H-)Ir-Hed(n zEJB)1pm(u*M7tNjTb1@O&<7j?P6B6ubKswe{ypG|gzHj&OTs>K71(!fhl0WkpH)f(Or2`nB6v9woeXuC{nZe%(`0`Pw-vGVAfOuFcfu z)|u+=fD*J*>YC~XKqYC%X(!g41*Op@Xp`%1fa0|(ZA{$>!q-2kAJoe0&R~wzKdOIP zcMx-r>+jV+sOtrFzy3!3ow^;MZq{F}zgo8&)Rp>k_3zc;Exi6h{i*tQ>o$Yxtv_3T zqRtEIK>f-3zB)URL-PIl4_6$6gopKaRz_jwe*HnvM{uWqWmU}_aJ%Zg^&9ID-}?4? zd%dS_?tfaAD%j6-5cbm?oN}FV1Bqlm*AUNsDq#fjDw*@+GnIy%KnzG71@fW}afTK| zmxR7pnp*@c1u6l&>DR3S3;=Sj&I-5yuY`?KzeU0uz)lI2-VN-N=pYVCI07Iy>W%}a zfOn<)r@n%$6?S%cnpUr{H?^)576{6k6NIZqd@K|%a!Fs zhTN+ra^(tSphEqR>VG6k^%v?dNW@>YhD#V2L4Sr^!<|4aAQr^lg1l+G&cN&9Fh>4Z zkUtjWiv{^&LB3d!FHOi%3v$DPoM|c+VYwj9Q@-~@;M^&MU%pNR@|@R=!~BQnCl1Yj z6Lc9s_MgF*55Qtw5gRkT7;Z?qQC(1{8c~-k&wgpG$afzxkz;*{H23f?M{OLF9YRp9 zt4(&e(9baT%K2u@9guwVcz6C=G|%D z>OAS)4bE=xw>!_UwcXx*kbe%G+nw)u4}!jey?UJ2!L!GC%X`GU-+9m556%Z(7uxG+ z4>=!ukDGg)&%CG1M_s)4-DSI6D(?mJ30I8wee-EoqW44dS?udIUv!P}-Y{Qw3En&A ztF9^D`{tXjEbl|}UDr(S6KQ6^^&)n8F0Z#zY^mQ`uUImv$1J(7 zjo>eEZSk(M6uRC(Yj(ZsJ@uv5;kpoN&9tS~`7$i)TKvv$Fx1{miy+w zYDln6bU*T)wk&k*hK*&+QqiI_?s2{n^MHGzuhi1#j)FG|V51A1lqb`*4;~Qd3fDo< z;!KU}h}SE%T8ZvQt9KoT%<#6wb?UkHoI3*%6myJ4)AF7>+k4P*#hs6MU3bs%T9=i% zi+tn6yp`u%Bfu}-0pwPrDTCX2G3`Jctt`l8$8-C|X_ z{oXJ!QTomd~ra-fCfC(8<}0iHZ= zc|bjBHBqlxt&DcLxBJ?yUU!erZr$kKv4Bd{T4BckPkQo)>AB_#1p~t3iCKAv{IRl)10YZWqsFu+Pl$u!F?8$0aeTAr}e=! z#`?bdVm+&1zD*)0tzf>bv{snLNYxCqZ@cwF*A`!o^#(g%EEd)~l%|yp(ojQud#v}F z{~uESTc5Zu`}SK0-B*2w*cn+Ro;#a7jE)-eKdpzYS7_z&_1faxH@*F~B==oZlA%mK zY8&Ss@SRwzqIcKE(7S6B89j#40;8vduUhB#C7J8oPf=+vdI+@b@f-tv+H(>+B8S&+ zq&d8Pi*(XibrQ38ZI&x>{Tpj%y7sN#Db*tJM0c~8GC!|!*rIaidbQoZa6`-a@GvR-H|jT-!YELbWEf& zwWS`V@2u^z=ds^xIpERw@@*NO1m8tl_R1vRWm~={88g|Q6yIg(?i^2=Z;q|Vlj*x^ zEAiy|ZfdJM1zv-#)KloY3(om$)k1KVd&+zR+Hx9MTa~B6_sDY6Q{#JTtMh36#Mb1| z`<1rUo)*8xeAQ$2-nX@T9R398v#!3Z$aBtL zX6tod^;c-iq3wR#QO|q6LzMQ{*iLw^cvnI4bx1z#x#ic|&U)_o_2Ls&e3scRdLH;& zq&B}R&6jUa?#lF=saDG5O{-y+!a+R^SV>Avfj$j*M|y8YfQ z4*R-8csk>4Vf{fde{fQ^AUF29?yTSE@Hij)PcAESxz?*3etL=>o4Q)M2OL|w%+P9k zm!ta;l}Yn~%5?NN@A)n|_H?c5eu^9pRaEiWQ%K>z?Cs z*R~BB$JMSK8xm~xu3f%-8oLe2GUH?RS?i8@o(G9IW3_ne_ ztDa|w?9EQz??9_UOS3CqnrE%$Kxd4v$ac3g5%cUE*#$PWg*5X`vI#+$Et+3~I8vMKL1)V1UUe+FGk*77j|y+AG4QrZtEljkVSgVho5Ehlzl-*7z*fSZa;eSgy6i zTAtT>t=C#>t>yZBUTciC*6W8FFY#HQA8U>ESsuQ%zUQ3b%&5_(ef{UMKWpuE*4}&V zwfA0o?H|m{S$1;yU}O8TGi`F?s%8DNRyVF)HZW^?|u2 zmSs0*Ehap~IHd9@gyP#A+Ag|rTPUS1UGL`|p|rNF+3P|XZO+DBq3pIis(mu`6JhcHh~B1>5bYvp-IT*8n*z;C+II8KyseYZ z4sH8DA8e}Ny-?G1?9yAB+v_(q&0Lz?*2nvzHtgQpPBzUU`V7;ruWOo5bU&3%ZX1C0 zUT&(Vb?2Jdk{8#9)`S-~Ee@>S|$-hg!OTw3`0PS8C}x2Nz9p*>AsC z=pN9uO~*o~cxMtiOFKi_@wV5og}2XbIvF}2?rAy`x=1^g0O)?EIe&W{=cha+d|qoB z2wkC*5&5h31#J2Cd}ch|wvXxd2D2Z-THm9s^~1ZGnpI4<<80O5*mOB`J={zB-=Z<1 zGvG_-__WnF)O2ll55uRz_7*;W)mOYazE#ke-fXqfJksc)*2MPZJ0ZqW<5AJqA{RB`K|$ukY_T+;O7gX!DrH z#E$ih!`EKj*1Cm!S4-=*<-yn1wC;Glc**(JT^(Z@2Sbf*OPl0SOIvu!#n!zY`Ae>} z9_SdqsH*jFN70h&tw%ei)D*RzXzSK@__eL4JAB;p9n)B!=N2!y)q1WYsGV^2v#oZj zjXtrK7^l=`(Rv~Jtg5fz*grH|TQ7CYXijXs`udgT)Ycmvvo*i^>e1FgI%PmkV`^Al zKG-}e9M>@qb9O+RiCk~TLj5#Ndt>6jl3A0EMY_L@XwtF7>>+Vd?&mXdM@aK&>@hmp zwez*+mv}C>H}cxiu}Z@lN2{edb7@?gqd6y>+_6@(5MDKilOJ|;Y}9WjaAVLszIjo{ z7VUPTxhR}YHm2Q0;MCtdC7jiz_-7I>Dym2zWt@fO^K@&7JTC?1K;@i zB);*L6W18mBA$+Gjr*Dyk8g8*2H)nYNO&qCUj!5WSHf?_Ond`v7QS!B?;$S~IpWho zh!XLFNEdU&>tdYvDutj}E50sj#Aflf_?*~E;W@Eg^okkchhndoB@T=C#OFo7_)qbQ z_&{71P2z^QEtW~LG)8bsI%y{P_HdRV<-QKXTU9Lp2Zhp3Z^`QuuO~_J&yv!U z(&cxPGLo|8lSxk{JthA-DK9BcJ}V^Zmj$>f&E)UQl+V>+fe_v`BE7t>d~W%I@`m!p z@|N=Dq_P`|kKT>|Y{8ahb^7G{vDG$FGTfx|hxX;9W zM#yo2xB$MZmMZ7Tc|yo8*(D^|ExUy*KPx{g6nTpL8KL4cLsq$5E*CbrMy?TY^5^6k z!YkMZaG$NP)?Q~W;SPV)!-GyJpt^ZX0_i~LLc zA%DAnmG6jut$)3LqwlzXi+`Jchwqesmw&JSfd8=nsPC-*g#Wbvod1IVlJC6#s{e+6 z(04H)`;M5xaXp;U!`VnUuZ2LI?@A!qcRk=Ba0Su>SpjDtFHjhm94H9{0`-B4z;xf) zz)Z?HCorGC<7E3M>dmw$JLm7Qj}r}KwQkW&Ha`V+UPkuaE6T~je<-GreZMC@i#LB& zppPnTkK3LQRkkN>Pl_7br)-}R(`|oa8!J9%%eUo==WOF`h9}#T>ly1A=W%5apK=8JR{zxFdpxRn;zs6=I^T##STTwz;;sVv>+(7U367#28@{q9Q<0 zA*5<2#nTC93aNMz!9u05qNF;xB2euBFkMldUNOBo3pB&bYG=iq>bywW{OZC;nvsvo zGR^5mT79)ELNkAH_2i1B)g@6e%VwG(Tpa)y^or_=NSXnLE=E2EmT%B3b2UA$)^*}~ zjb{cDFUIH$#rmw>{O?uvOf zY|?CtMmr4Nnd)#wfAxx}apyR2kM`e9C-bv0zYIQ=sT!m4V&kZ?1J$c5$5o%HbXWIB zjq82ls{98_kIEO@-wzO@yzv~{&#`^+QSr%`XKMF7;}TPBl2bKa>!~`dH=I>XQ-wp!E0+!~z90AFVCwg;;sb68(XD|ZHKEB6HJ z%s#Dhe{e3^b||>up6fE(-jQGfx0l;kc|6z{k$EcEV(zcXv%%$+=YuONF9z3CUJ0(N zydK<8c`LZNN(8r7S%cfF5`#OdQiFS{Mg{jrtsTbPGsnhS66=TW7023FMNDk)+3$DV z#h&i97R9bfRJN)}x7WMnGp(n{XPV2fSDtq?-bReQ3CH(q=STTkjyLIh4I?(@O(13- z#jbzGeuSQ@e9>`aZxg<=9e1p^52~-89$716*VTLNKVrvIpIedo*r!o{zkKNBBX{g= zxxOtmqpC84hpKXdN2<2fWLE8{$%)!CvRnpkGt1glGbS>JxxdW&V`Kgq`w(59s=YP& zyiQads2Lxb_slVd{JcY%sQW|nHK4b z3pGK*zgJzVnGxwXUFWK+HM67kLwY|}%QcIl#+dEHSQEM2jhcB?gEb5J6d(6S+J@--{^ud@rID(22HN^bFq~ zxQm3(9dyrd&vwsqFLW<*FL4dHL+*C>D)(CVdiO?mk$VflHunzqF1OFU*L}b>KsgS( zkGfB|PrJ{#FSswcuexuz2Pess;wB|ea!g8hPnnc8$vG)+QsE?*d)lPQlS(E9CRI#4 zWlTIZf zNq8tE3m=7tM1Vqym`dScF-?4yG_4d>!a+7yE7I^whv}k`!Y4$CLWT%a7%h%c$fUNv zD;|@QrDX9*{MuG%xUB_gN@3~2(!SDTr6)_zsGOVPf~h?t*cibu7gQRI3rzP`M2Sb>1A7MN)2hwv*&+qR#-% zuB*EM6T{ZEtr`Efc`;g?U_ip5#^ltHP^X~ADp;~DS zy}P`718W28y$1pt16u;y0y_e`0(%1o0*3=f11AEf1Lp!4jFIFTyrTk_7y?%VH#{D# z1g8ZC%Vf=d^d8lFP8)Hut;m>ab``NDvaPbXvShZ7GDlguXLJ6|vMiS1J?g7K3GSbi z(ldUyXPm#-@9|G9DE3!*-2PgB9fi5x9RC6e4c=+~asI~AK7R|cnpUa{o&I z8vi=~2I6n_Z!M_vZ};!?@A2=aaL9kef7~f8Kx5n?sVW_^(gg?Z4$oBe!G? zBnDCgiJk?4QGv`rP9VpBDnMi6-%~mi$PbJU6a}UPeE!D3w2~Q|5(oxn1ZD^31s3KH z1r`OC1VZ@(6_!5@2f|@(wLN9_AT};^@V*ae5(PSzAoP;Zz_3_st90g zyqA34z8+t%Z+EPvlGmtZ(8kAmj={IjcaUwz*XKLNu|cyh@SXIX@%8%#e3yOKSbyJ5 z-w@hij4Sy^zv_?YS?N#lUMM}7f0F^DNp|N?^Jn<8{kgs{?ulDGWBp@iXR)^}bC%_m z6_&XI?SWNglgmm-^J9gH>(z3Tn${Qm@vMu9`Pq?kO&tQ#QY>o+LDQ zYReV}MA_1^aM=pths#!%b(VDzcT-t+Sx;GS*>1A$QDyte4wm(m9V*D7io#h6=P6vIaD~G4 z!t4AigK@LsX5-fsONE#E)i26uUr|oG1FNW}-bV!@veUQ)jCqQ8g#Om@^;)FBcN>g^hg z)+0(z#a-GETkmv&nFMo8dd9ZpZo1y3f9@4Szrv4*b(@T`MLC8ypP>HU{Se#!`|4z# zU&frtik^G1c@QrqI7rZUkMaEr#`o&?2aaR<`9a6)uJPgrjLm(l_tX92kF3{uAN}>Y zHhw8VSf|6owh^&q&bz{tXSLo>ovvtq-9@m;74aDn+vq0fiK)AnU^l@&*RX#u?C_Wi z^Eb-BaC}lPd&U(#ANzG6-h@3A59suMfo6)m{A(>vDzQx`|JHJK|fDIWu zx2b>iwRA!;fhW4%6Q*kVPN*`qIR-fIgj%h=+{OuYCYf`i`)k4if(C*{f);}11S<*F z5UeBEK(Lu$Ys}h_caQikV|7pad{7@3cXxaGQ`e-A)FXBdo8xqSykp`&%hwvd#1!8# zf9|#Z-!HyTdp@?lAGKya$hhW3*Khcy+O%l9H)59{yW38%lV~eJqF(QysUBHxGs$wL zx`yX)vMYLjY|KAnZ>;O%8s)+|;mULk&wJ+QX!Flp-ZjRgU#x7B>&iFrjQMExPlhjY z4(s3=Kb-C=8ust5DW-nYb$0n;>_qQJ*TR@FjvJnfC^wBD=$gl$d%~~Xi~l-jO=&Iv z8oEf7l0~r)&h-Qvg~-{YfpZJR-4t&l*g>$1U@yS|g2O^&_ECIPhZ8!V@@4KDhDVoc z`H=UtmY4a?a|9Q3{w0E|1UEhg3~F)=FyuWcYx+MKr^_aIGC4YLOu1rbs&kYx)0yKO zr%RC(b)JGUiyL zoLhjmeWL!++(&brJ4oIPr|%Psox3RPbsjK<9sF6(J3r}*H$13#x5G%h!yygtaCj7N zZ^*!V8%E7h`lgwmGi1=F9Cr=;MmT(uTi^{I+Pga}_#}5cKFOVgcXy1!`#Li4rjF5gM@JUk z#gUD-a5(Yija8AuVKA5x65y#n~R6LJln@ zd#aIclptK2T^r$y;}D&0$TMWIBtwoafjDVyqnuGQ-yF*8sV}VZX8A|t)_)@ZOk~PG zmj}e-)+TF{_zZhbQIhb(gae`!Zw?tnkgC6va-B_^A4oDiuakBuyJoE}-2mFhU{IOjMwQXVNgPB<<&E;+6` zZXgUo2LGZ)y!;*cJ5=}gr9Rx$F4qh)v?&I_^}(0-Qaxu94TuKR34=Y9fc#8J1We9%f{yCeC80Fo+W3= zW*xKQvf>O{(@xXRv6$PFMS5xV-%Fq2cIoxAUW1PfIs%Ts$mNtH!1=V`m`uFJk&P5j z#yIkOmjvEkB-v-!Ul6i=mVLIc+UMHmia7f``xk}X{w4dDM1uWg`^zHHzR3QnNU}HD zo5Vv8Y{QbYUAl?!ZlrySNS*uOkV#%Ole}tX?p>fkgAofUUZBSfLdxWKQ`L&{)Y&8A zI6Qo7^pz3y8l9P%nL7IX=k0*W z)?{eqQ*-oqHc42BICDfj$(lV3Ttj9i)s+dk6tsNNFd~j6qb^F%%+YjA9b_FxEQXG{ zej{cM>xXhzM&BYW2MwL>rVq;iKNv|bO3fU7F?D?E_{>q1V?5`h_yob2)bS(IN6eu( z#G@p?A(M}mzaf7^*yV4^-xTro=j_js1=QK=$O67#{{mUS0(-qkw!dP3MU24PryL2t zPx!rfB;mt^55*|FU+U36$;Z_aR1nm|%Vpy`CNuC^h9ceb;r*{-DL!!^36CjXp_s?- zN{Qr?$Qyl&ELtXig!)liCTin%qQ=3}1uR{KrCVX?HdwkHmL3mFPasQg6iJZ8Z4hXK z1#Nf&b@Tg%SaYrJ$D!jAXf26`2u~I>bw!jKW0+J+1k|9Zfq&UdnxBOb})B&|5 zKz{N^jNy8*$25i-Z?EV!*`CI$*L%av>(qP0;Qgig;z3&T=k(Uy`a%-B#Zl}E()o9* zlQV@#+y^L6Je}l7PD|Ryka#pXjbnPsNZgT}Mrr%B^yKX1?4;i03`*^#IGgiOu3X@; z$zz$zA@MYaXo-eAJ%uDi$#EoSBsn-Y*G4s=W|qWlv47tFd1`Zmoh;J+nw@9E1FubD zCq_{J&t^g&pggH0DUei=G@bCwq&Z3RDby1zCSFO>(xfnPms0AAq}55C1YJp+h+mS_ zjW84WE0EV5q9q#gmeO+x(W@b6KIoa0YcV}{liVKS^iV%A-kr3MXS{umeeuU_Vf+A~ zoZkePuqa_L;YOmI7)SJAVlsgPoOC+17bT`sJV-nv&Y~12g3Qn0^(SUAK-vu|JuERI zk4hIAk|J^n6AmQ05(g5UL}w-D0T@$23tzO){}a{^nfCvu;H9*A=;U8smkK49I7rW3 zQQTZQ=uQ*8&P2bd)6{k;D9xa~U!LCfC&8O4Rq?MkM)69d0P)l)UXe6~o~}mm z#z}5^Ivd5ylM3mnFN&8V@tJT}6fZ;KeZl4^9*?d>>$jPgD5YWrH}h19KkqTu%;R^_ znbr)AcU{~vtr;5cvbbhiGc?`>ami#8Pr}Z5`~`fs1m7*gcPr$(7t&6ko;VG|7C^RF_77Im!Ywn%kR=Pl)oFRBLhW zaBgaycAjOtlW@GS(9SVF!j1A>)^;Img`(WrNudk4#5&U&rVt={x^)v#%_aF)xlI&y>!DK*W{HNpPLdVYC2{I*veh~!4^HMxX==?)KhQ~U1C{H z6!SVQT|{?THW73Yr_0h!DLn{2T9VfM3jRN{G`#PrZ;( zZ`n=MK1=V%+;2bV$ue0AqW2b&)d&mu6*Ybs@O&`_bpAtmCMeXwMKGD5gdjlqGKb-z zV<=m$rcuaHRl+T5ipqcS${7kL!CS88s@ZC`az-7eu2jbotWnpg`k&IL<)plBJ*4R& zgR#;FiH5v1l9fg>#u0EHH%p*gEL)`~kGg?*6noUos^>4Z_xxCWuh6=e)IAJJh#)5# zm@i);+NZ-bf}jpe&mfqs(MdhSkX#FXIln8KbXzHJAh)uP-zp-nk?Sbbf@h`GaVv#7 zd5@AP?^F_%RAm%$ahR&-td;lcVS^qvGu9=pA)0e-AXzKrowUa8R9zJBhXhXBL)3ox zh>{835u$SBBY*9_$NN=pnRXL=M;JHMFqAkn8G!I7tSo$llyMFB0gHE8)>Zf z+-5ugT*s->TBgM=S| zfw9|^OLPfEkeLe|a-mx$w93U;Grt8jVuvALV5}s9c7paXR?%K}d2oo3^XMzU+1{@N7-a?USr0W9d5R zTF~9Vd5jeq^dh8g0^SGC9;Euf2?K8fUI+d(;0EA}!0o`OOHBb@32o2leVYkeT?@>g zGreUC1J}ZGm?JdWaupoTIRION&6A}yu>O`MJR&?J#9159!Ck;-QFa&bS(M$ySaw=4 zIxJImT7$rR*Dzp#m7NU#-~xwB^@HvQ zornAwDZ(1f`SbMNUW-!fC9YyLZ(DdCC98kr(T9&pX5S@#s-7qOA^2C}%|@s<&;!i* zkV}aZ)+ZTT_@3-H7WTfG>We%d(KETg4q%~S?kl2S1h&GiM#09)!1*KSuY*1YIv%tB zao}036`x6OpBKoF|8WWCC=J#;*#Ab1DQF%+rGfh-E{prYx|XrU!+urW$T^in#;S{L zLrK&uoJZEOn)x)pnC|0#i@V5t>sq!Y^*n4w$eVz_%~(1G`Z&)`>3zcQ&MU;Y7mU4?NIbCfm6`M&($xfJtB+W%n5peJ(eN}9ZzJqDLm z2Fd41@=a+y&qs-@g^pwYO!Q&tKSBSIY1xY!*;=m4FLSS|W7soGJnqHPYs^tde(?mzU6T2ze3*R{d2UG=r?Aa0QfP%zmNKo(Q@Yp#D_x#~!FkL=>$2L8 z|BnBI2P0!HL{Zk>g^pGD6E~ z=!C8O*pfo{kHEcqlH^9^RpfaUqma+zsE@^Rj0Md{saE{}WAS6wMCrv?(79dt zmGVQLzqgO^oaNO)eg*6A`&cPzK)-|3iQv>>T|SJQ0;>RS2V{Xfg8AYy@~lDrFM{3y z+Kv521!mJUlxkrQsWkHrN-luRqwM{Zw~@c#Htimjt)Rcn*z!Hb%6EXDVZW+u9U|M7 zmTUT;u5a_6L0Jiz@%%p>HHEP=Dd#d+1RapjpH*?es@ZVvMbXctgCL54**k8#x7-gY;9+*<)Uih(p0q6fRmVT*~ zvJ`V33;$>7wtAT{)~pY03)v5&T?es4%i;Ybt)tY&+bK*B?bbPr)3N7VO?z8v9j!vV z%3$BZy+ms|@6|_Pr*zAf!8E55#_odaBAkKs?n&VP!}#{|*w2Kq)@$p&6`Tynabsn- z@?79Nw1>#WE}eBdi5)C%cZaac6+LLhA$_0E^l9K@z_6U5BYG)Kg7#lSwifNP6q&#d zJx?FbKFqN|!dB1^1E-;u(cr&>{1+``GeZ*@)970n^Ngc)JO>=|hvFd}Gv^q;$A(hJ z@@_$+Isfg;+OB}@hjN0}Qf2g>nht&n=-I$~xo5bChbG#{gAKjS^lh*0?;#UA1j{<~ zc@5}q0=EPI8u*96zeJuXpf7=b7x;1DFJV7yM`{;1t3l&zWrZB;5^&A}fh-I)hp{r6u}#BofCH=w=0O^0%in_k3`%Kj*#`bK z@Sg>z0up9}ej2GNI5WZ71^R2in^EJF;Qu2yw~#*`xCH!{!2bYv88~x69|Zm#@E?HD z!>SK-1N1>}Sdr8EE>g8t?|}RQ@XNvf3h+{3jDqqj(6@pAH#n;q$78(gLB??y9a{$S zECS~OINt>4?}1-OS@f-X67Bse>eXr=3w|m1>%sXXI8%WSqwI^o?ZC)y`Jcd>z(F1r z^zHL(Z?_Mzy$R^1)IjnazN3(9>DRH~!`@po);IIr zJLh`uyXDpX1g2s2>2X`QBd20&VoJg35O&JJX*(Cs3q{vRM@Fo>jQoy_;bOj2~G@fAL^!oep2R?obBMC z7CQ{g2M3a>PItliUPqaS*?xJ~W?dz!SAjz$Dk~+@Y7)&l&Hx9fVs)p4NaR4~jnXji ze*oPd{8f+#t)2j95lWwd(*znSfc^sXCn((ujsi}7=rn_W8JsDwCmq^AGk@>{QA_X3 za_}F6-vXRY(9j!nBb2J(B!aU6^mJeWTC5BHSKz#ayd5wC`~l$K0Dc5cDrlU3&_}@M zKzLYf3pxw-z#ANr{5VSWUKc^XFZk`jp9~xY#3<0ypx*)Sf%BN0(?^Lv_x9$UeB=~c|sR>RDa3AWX0Ve_>&kh6g!GVmb(_KJc z!TDh<@B&upGeN(`$)uy?s95`{SUIS2y zYJJcFkXa6#qo1kb-W4$U$`uHW#ZDmz^4N)(ZbKUfJs#(T_fh&r(p*0i z?hYB8iz@nAvA5Kto(CrxZEcpQUU@r8S_OP9QOO4$#hQ6A{Nn?wm|Q!VmdH}EqL%U( zV88AM?7S5C))XW))5VZ+fqWG9M~l(A?(LTF+bQ_A7C3*=Pf%goS#TP{atlW4AgsNn z@8eL4^*Ni0vFL-|9RjX@7a>X!`=*n!T{RdQ&Y;DSu=6S`#GF*nE*&M`@l(TLgB2%x zOMpFLd4NQv1Ly|8gV?FP03C~!;d0=8Xx6~rggspb_$MTaJM>)aK(ip91q-G8%(n+o zSE2=+P4BKqM7w8zgHakGkz!ZHaJsI1FEvvI)@GyK{y3lPi*~m`+aA!DAqoA88~piJ ztbgTr$k#03}!$xL|L6{zo&%flWs>Lx-@6!?k2 z7raE=;26v*(@gC!u|E1-|RpcF02zw;27 z0&U1MroGUXhJFPZ_ZLau0lzaOr|Nb>j~`|r@~yH096YH}hC?3DR+ukZ*@Ds#qb>Lx z^hn@`z_q9~QQucW<_BoNa~!rF5p9LcPRM(pkABb$ztM|mt2+Ao6Re7cWPuU&pNrg! zXE&B&M9M?pbm%_;J(vk*Ji+0Zjp|ES5(f^R{)n}v)VU53T?VB=GS+x6BU6c1lcmLJrbp>A^9Qt`y23MU^pa;AQJ$3A8w(7e zDUKC|m|b!fU4=bOVC_z0&z_4tdx6|n(#P1RFT~D$E_T+A-~?mG9gICYPVc3p*t6?2 z_P=t4kGC_#{vD;|fJCu?ehrxz8BKC`tPBI*2W|sS11951=xxyZfa@gEbf5x`6KEHp z1}p(TA9YX49f#2HQl6XupJER(Owx)IXeaP11HHkwNTeD{EznQ|90QD!Pq?T8`YmKa zL0LO$(MrkMj}4g`H)B6R`Igl#WSy3dfb;Djd-sLKaJUUE+2`O8VxOIi;4Dd@^< z4KNkf_ChaK0wqnjr@&RZZQz8WG(?`B(F^cQWi?W8C|a40(qy#TK(|D`rz1Qj`A5My z3wj^uBG9uy?}t^tg05_ifIaeLRRQNVB!{8Dq2R>pc7k4kx>52uHPyg*Do;g}eE1<5 zp1CCLSEs=80A5>Ql04T{UhwTQ+oN~8p#Lc3cY`xcmMTuXCfbtEK?pl7TSu+iXv-U8 zL2!Op3jSO8_AM;5LS_u;!EBy9ePx;)9cV6vuf9dQ_x0!am^p_qbL?<#83QE1RXES| zm*3%2YO2DwbQVrBuV55RC><_KX*2Y+f*e6p7hMDQkgbFBQ1*yM=zLk1uE#m*9_X15 zempc+(QC18sOtecrRGG)q_a;2dSNE)Q(FV2hDwqaHp@~I_(hU$S_<3??1Gck`;e~# zdLPgY9#$daCOMR_nKD#~n_m#{i?SJHCjzUqJq?d{!me`UtU!*x{4pJr0re1}&Ol6-B%xNc%1Q zB*(l?a@cu^yhM7EJ0OZ%OEhl==c=SxS&3>K;%k+(kXD6G3tEXlyAHCymMQW*7NNO< zsC8GOh&buDW-=B`3lNW+VaXY2NI=~b@Uy`WgXA1NY7jyFxLg%P$atZ+7tl)Z|9yEr zuXxCLVw#UUAFZxH$M2-+ghb5e4|-DD(Y ztgPD+wN^@P@Ak;EZki|WHEIm-ci=C;g}|;7S#{uCiQ*C3s1zUV4Ms%Thi>-pkaLtSsc^i~pgJ zyeiug^3sw~G*zBT;VJD9$>BX@E$$>~c0uYlZIkyDWhFRc7`%=6x-a=OT74$Zd~}`i zxi&v4Wmq%#|0bTfZTebpyD}^S_?AeA#)rUCQ(@__BtloMcO7Tl=KXVYP3Yri&g^9No$o5 z$q_5GR`Qfg+R4G8FM%7SHfBd}h|)jcHxKC_;Th?lUZ}egdY%DS;wk?^+D_mNy;Rz% zEJUwE)C}m9maKvP;j$L(Cws?yC5nDg!FidQokA`@3U%Kqet=_ zBMW@ICyae#kS0;EWox>pr)}G|ZQHhO+qUg#+nnjIZChVs+BRRmx4SQ5BX%R+kDGa` zDsM)``E#qXvd$TPD`Dskn%ezRV3dj3Z9l8Z*ridf;KnK|3G`zs;k_{zOSO&pVImvC z)NXP=2hn9bJPqL8iShbGIwnb0k73$qCz9z2JNRjNy<)~VBSYwd`i{*xSNkg-qlHhL z#wv1??)L+BvK?Z7o})obXg+%ng?X5+S!-&NS%j<_xqf=Kg=7n&sRoCrYn!MH)ve3V zYfRdfjAZxGrQ$l8Q|W?O@zPj{`=t@w4(Mssmvfz#H>zThx{^nk(mN-PH42T|bC!cW zt!rQWHzcQ566+VjFBxw*bw8SV7M^H zJmP1{{NuBPY!Sc~mv(tKTey=;7?Ec#OkSBv$q8|#71c$#RGSKxb5H6yc1oMooj*l7AG*1 z;sx25v`}JG~v`J)kJT7@rN=qlV4?35c6g^`={u=zeE+57;?U7z@hL1r!Ccup_s zh;eLh$5_|@$FR}1dYbP9>SEZJT<32z$ee%2cUY?kB>b3<$Ny%!zl-xf(t^?mUw~W8 z2aRE)ZWFUAUbj(=>|!SQqD3D5v$H6@%Zvh7gH9 z>*~^d4fXlE_v$ia#>;RjJm2yt6>V&OH@!dq;82FHCiyN%|4nX6NsjUvA3c{v z-l5>B6*yVrpySH9pO78Lk`y297e7PB*`wdV^nQ~6%n2%mZKODiVxgi5fX-i)_(c_$ zN+Mqh=7iXPm~+zaWO>ahW1q8xAK5WgSpnmmtl?dC6)P^QBRgab=@#_P-<|)ATpZb{t{=|DBSLe z{1Ts5IVtqfo|m>;uYdl_uzt+G+UY~8pWFI%sZ($?#)gdJLz_#t-oPu!Qs%h6Xa2c& z@Hi~xxgTnsKB8YNf#?GIPk&$K`%b`)bWI^3mf4FEw52s$a8r^JnnH_Pw^()jS=>??DW)jMYj{S?abR`oZ%3w(Nm9Z}D$lyC8!5_D{7s~I9 z24Su@J6@vxC%zC^PXf22O!vO6FCBYX$b&2turs-=ye`r$&Fk+udj$*O2Gf}STsF^# zxqC@>;S%(i_??!X2g!TiDjTC{gCrVo38~olo#vhgU3*D5*Q0WSB<-*Xo9w*KBiEyP zgCtL%aS}(#zD=>HA1Vo(9K5#!*P|kXBnhwyyzIQU5cpo!o(EY>CjK0}cbnIfFoP@s zhQmFq?|0+ZGd6<^4zT?_Y`nMfPmz+W*O5b|K7it5{6@tSq?jrnz+cw{&5lc?7_Fzs zp<*9^@{z#xD86%KYNE?C%+<(2nWo{o*7lR6RQVaE?mz}7(AB9Z!D{m=OzQp*w1atE`M8vk-Uj^Dhs z5UMr1d5ph#FG>rEi9E&&Z(DW*r8*ZN(;}`~J&_5JX@^O|UCDaI)MtnYQmEFkbYv{- z=<=FdUALF#f9S|y*wN`VwYt8{q_=DYTbo#sd3wN7D|Ew9D_>t?E%rAZM^6=3v&Tr= zq3bnkxo(-y!R3f?*r9JVX}Rv0&w=NNA$+qPG-;6 zeKh_WMJi#BSADr+Px)c&rzFarVq%Qn&p75F+L5^_2PX?!epKF8ZsdGu-k(GHd=zB; zRT8&;M^T20zKBui->4*EyQqZoKttKdy_jl}tX}skH>PQyy%HJ64Ga~n*O3q{HRU%E zT~?7K4S&RB<&&u{s?~z78AFklw!GWr~OEk$Ay`&W56YgzO74S5*a_8b->k$b_OYsK3Mhd!)ZYMJss;B!_La#Ld3o zs_Nh@O^b`I{kBwu-O;I`eMHLt{esz=UpTBHDG+jS#hgN!AO;s)f272prJ#H;9jNS@ zv#!L`8BmPVap_rF){go$fF~8;t zpC^Mc>)Vw{UqW+Ytt}dJ!rc{RU&eE6-<5!0+COV@Ps%64FiUgaHS3nKU4d|7qMqQ@ zY+m!jW=y+Layh)!WUhuJ#$;*`;VlZ!SYnMy{jYqZ%Q-TQ8ONI5 zVWyZ$2gtte*9*X#%@|CP5rdZ&3X@g{Y8WnPz6qqgg)Xld@$YCBsEW;VFBTssrJsCCJ>MP9ony^zeh zw^g;aepw;qD;el)UF2+~6tawHqL{Hv_UoZo-xwBqKHRv*uad!tH4ze7eq`YWAWJa| z4GVTV23%g`7L4<&H@$^D@52J^pv^q8vY6aTi6RCyJ4DdvEi~ z=2R?mq70PPm_;iE`{vdvZ z+dS6q%1|wVItEqF!!M7Jf_tU;Nb6WYxreBfQdn33gydKJlcMv^(nn{x!|oNgUeLKm zuN1kO88J!C348 z#)&l{Zp>=6Y=9%{O>KYzu|`Vd0qzEP(!`-AO=LhPltzjB1No2_iItw{Q9h1Z+1Y{{)g%$wIpqy2{YN#<857VFg;TY zDeCU=x@1=OkS)TKbNFtN*9NF_(36S$1`5&;K8qPCfyd}x;*T|+$9PlcaVo5VsZCi( zXCHe7$Q$P#+%e#xmlty;kBdd}6wQsa>CgJV)rq+JaT+8dolsANgB=u4q=Q~~`Vq0a z51xF?$sD_Iqm-9Zy%OlObcA_~RmDp4+(`6rH@W z5lPUzxe+N*yh#+v3Z4$zIkLb?-Za^xHQpTAMgyDvblFw|hyHxo=CA2b9%en1cE#Ju zVODW-OS2Yc({gon8X0q|!`55VHg%trr%yIS@a-RkNk zG8Z<6shG(HY^%6YjO_j+g`;nlg<;d6Wl4cUwB=~p`E^S>$v*U2v6T9j zcx?&g!XYcC1Do2Me&#>tdgZcVnj(eT1e1D1l3LdeRi!y-)l6y`*v6=apd+J`I{fMOs z1x>%@KzR$M8k86dXxgL)^U4~A2~#cFh&V%&RpYkUT2nFGyiBDWE%3Iy3uB)(Q1?uH zj1`n~R-PI9W}9>L?h*V(i*tm>@Ep#4Gfyq=kfH177V`S>w>v^~hTr+TSryF_k2phc ze{0rk4p}W~lhxI#iEeCO#QT~E4bp`Anne1VB=qMKGscM-xCj~2MD(3S^{Eqj4nlhl zVtZ6Uy()=slVNU^$qvfKM`hF!Gjx+Os)$KCiAdB$#H-?CRl(PW@z%=8o8q9FyH?M{g|7Dd`B6Koei)`nr$hH=))iEaZCZUspWKxu9R8Eyj!ZUY5w1wn2F z32y~W4uT91f)Eda6c2*PN5SQipt6Y&SS9c+gLo0cd1sNm2ywj%(QXAHZUsqi1#J$3 z*hj(blAzX!5We{^MM)3@yPBP73oSaA}$z#qBL7r6in zuo3`R1putbfvzAxS3;mGB9Ilvi5s&qi|**mEm`cFz1O-7^q%S?)nB~75XK5rPdH-% z&Xr|LJfP6$Sm7R#Pg>^K;U2eFROUpkF}st-_^vWijsYp>Ld#+~%*}#N6IsRt%N7J@ zGQ272oa7PiExp#*X4Shb%&QU4mSbZCzRAEcsw3ajV)ci6n4U%Zn%`sQ$FzP^yY61@ zh7*)`O6x!R#gOhBS$tAp6NbW`-#Ld(mH8a&lu~t}+VUo=$CS$5+!uS^_wHfa#2|hStf>7khaO8*~z~m>83H4?b;%4>R z!rrXn-mHS%V1|3zMtQn;ZCE&@wV2-!^nDIf^zABia|3i~Js`}l2zVIRd| z$%!CSkV2>;|EK~Cv5gt=m{y^fRxy||gD}q{FwYY(Cq-f51!3X8E%KXrd_Y7ahnB2* zirfK|b7E>D%mKNVtp5HxxDWok;CXJa6E}vTK5tlJ{>y^kl#*%7WkPR&wwMoXZsr- zdO&_>?lUpcKq+PWGX?ohD4zfqy+1#)cin50YqpViT`bGLti6#S)#qpMR-n{k52Z(- z=d0nLzSrVCVQ zr`d5`pA%)TtrxP!Ce9a5QUuv@E_gc(}90Lmz&sa4h^ieA_isG#SW*X zGdK+_Y`k6ufwn7jR+2lhL4MAVaQAL4+>+&MYq&Y-+=jCQsynCZ9Ak|xb*ua&WInTr zLML38wUA~OaO3jhV~A|l+BT!kr@Alohc{T@^Vq|Oq;R9oSBq6;t=?r#eV^(9{lot1 zHVp>5P(X`7w$aB0ZvT(3Xfw0g$EM9~ExVmYl^O><8@msShoD;Krq^<_ZV7-`m&CB! zPdJ2l+ojo^b>>1Nlbt}2o%LmH?}W`yqXgi5Q-oP*sg{cz{*})v;O7)u8cDE2#X+|0 zL3VZLtbLuwSb5-L0r)0?g9?gsg#)b%eH-anHBHnuNB)D(t!>K8`b|n#&Sl#~O}%;m zI&ZJep@qP6S}z9U+hyOV&5lBIb?@z;l@f}tN6Ko2#XbLjb@fI8R_+OATUK7COY7?= zJN4S{dWQnyoC%oTo?QVziKo}|PKljGoxE9}mE((j^XGqLWID^!r{}5c)rTWK@{4^- zjJ=09>Yxn&;sS2GZ&#j#jcs~5mfrPdoS-}tU(VO)J{~#vnXO7}TveqmM&1Il8_6qY zT3DRo@&T#^yLrwH159o2%Qw&>e<}3gG(EoDx8pN6O9-Y~uQ=Q0kVf$9l1{2qC3<#bo7SRexqFjU2V^3yM2u6!+W)_)ZR^YU!9jdsT4)*9OByAXe?C_ zxhmCma&v2D#p9HlSo|R0x#an&LLgbkPYZ}TbF%HZY3u;xeEW1Uf%B8}Bwe%JJYgx2rtv6SW2~p3FgVe!Ek@;y*$>&tA2O48enW~V;ie< zJehPjwYB!4yL2**=*_8EcGGPEo+fFxi<_e#KES#80edR`mMay#(9KLK~Z*&~;8A4mZ0>yKyo5gyZ1rdh5&t}g1NtK%% zd$v1vc{Gp!2EHbv*J$(!90U8+6a7M&2&fB* zJU4vyveh@ECjgoUeLo`t;n()?kiw;J z&%4${bX0naH5-n={r0KRRmZZ^oMVCldHhL7+37jZVy7qXQ&nfSXm<^?J6l6tpY2Dh z*8*kxj_0eb*ls7+7J6?qz0)Wk4)4Ut#ZpR%b9t%0{I<$Qh0t8_I2&%2!+P(qONdB? z9meJ@@&+AFr_;ik!RIKp-VCdgOUSE)d!6C=ZJBe(Mn9Eo4O`J?-iJ?#f0vdA@FwA@ zwdpIjp%rfd^6GZ*I>Rlp8dS^m?3yR@wp#LL_VRC<4uBOlAmSD}FjzEWJ0(e_B ziXo$|L-OhG3xG`$$Z`P>*cnI^tPi{|b+vIe*$J1b{EWkaBqe*{ko|=$fCEKVp$Y!+ z4i1*A{6!A>srz~K#{@?gSr!WW?YX9ixsi=n+B`x!0R3R_)h)G-HATGiN!aOtfxZWt#yhv z$CcU#k#sy6E?l=VuagvbhiyN<6Q7|@DTF5&J#AkVR-Q=?Ps`r?)97XJIsqIuW?P@Q zK@JiHRK1hA_qExNl?4@V0`5jb-~m?t@;?Ny`10?X$u`9}k+;R~!4SEE2!9-1?KhT* zCaM$Twc)lX-*(X%4|l0gH{C|738c&w77P)v$gCsW$@>HEo6M-9FFnMow8%)%m!t$NwbS-}>|Z0Xd`t;k%(Wep{AiiPS*b}w&lhx~q^-JCiOn(?St9L2kIThN zDc|%U z7H}4t^Pfa?6Qu(fhx5r`FSRTaoOJAeyZkYU@<>$-fi#2>6BG2>H<1g*hpX^tjH(;L z+7l&IN>khG*x>21-Hh0nv#*zZ2*2wL;^O5inPSqOvp+bVNpF5em(#0_ohOm!GR9(p z3vMLcs`AChh>xFv*cj1I>LvW5#!^Ha{RIo}+<;(n{2-TH^H(~W0Mdkp5g8SD@KVBx z6g03)Kw)0dZ{Rz-q?NwW5DGu^8_<{f!R@s=P~CO7W$E~l5ffU($ZrK<2!(5&!7?1U zSD+a_S#ilhNJWNVC)}%XA+kz#i8TosRiJ4OnjKWmYLabK`YB+smSOZuXTAF8t0dDK z8!8Lbnxei4Q|%Xdk`5f^zC!b7o`K@e1__@xDKXzY&q5)l%k&veWRye;CV@+5&v|L6 zEi>JLw<06dxT$0ZUU^yQ443JZLCr0*gQPmx#4NKin4)%C%DasbScT=MnM`hG-`p*!^ctL&oH zz;6kHYl3K+h?Xdv+-SPdqmOI?1}U}K4ml2~`XjEG>Yltob0wy$6BF=Oz!&xTI*QVLsmDw3k^4>m|~Ik}M?n&rqKY#f@y;hdKTm+)pual+dx{-C278 zI)1>IV~wo9d_J3K0Ea2Lq9dVM7-f}H4>G++i@==X*qf2Bt+Af0NA_l%o4kfOCI>M> z{?VNfONbw6WofY1oQX?u1=?k<-OU)wpfPuqwm)=)IjcGxA=P7)@NaXb z8SA!pZ)tB|QQKLr{lM*iM^05Eer(H6TW18nrCQS{&{>-S(7)bQ>^kk#e+U)U>~gN4 zyon;kKtPvt;84jI8YArTIG=9=xadE6n9=(Cc4^eB7w|2R6{e+Tf}7*-~#w?A$L7a1Im${<+)`V>%u^ z;4}K202U6Ckvb1hU@m^IY_?y#d!%RUPqISMPVxRoQ{}x&hT`E=&|*dp7)N78IVv*$ zWbLFm06%C#P2vGV1i49R4@etfsh)ex3Y#YiUnPmN>gBH3KdGD5Q9g^_nW@+cWp&sz z>TmiP@GO}A#L`>etU>y;GxwGg_Px2$HKcFbB7o#ezd-D$VEj>G+8Jip;@fx#pjW68 zv<#x$N={cXeAvI_(4~Y+_`*5;Dw)sgT?QLdLdfHkZEF;lfr;mJfNyOLN40^#bH4v4 zqUTV@iLO&VM+Jy{^q_GGWJfer0;n!4h4@36?_EwL`za@m`kIfPzbr%Jjj9HS(SqsY zm~0D}Q2cG`#OL6|-M=I4Ic*Qsl9z=TIVMvJi#zaexq=c=W?P^rPfkf0upai*_zSE+ZW@y;GhXYC&uCv9H-z_tnxi=I!Dy}mx$<6hL z!C<4xg}&w1;-TN>N!jqtyMJHA!9G&8?J)G&kA9i#ki@3=c z%CJXETUdUU4BMI=J*B0i>(%TFmSnuD^t>Vv_qa^R>+MDCCMCMnH^0{@@8Y~lye&BB zH>H)9bpM!LVOqVO)>oc92taJ}l%WEsIMHY|vczkZo4(3cC9ZJ!R$EyE-R|k3E*dkw`#kh!8WGtm3 zICx`tLb!X7LMHa%3%SG{s!HX)R2iOJb=S);Z&QaRydoubxwad$uhw_KhMiM#8mVbU zu_Y?(ZJ@oMkjX_1Ofr5u;8ELP$%HkEV5Y-_2@1M*`1Sj~Y}lpL%bBiMo-VmwAbi|9 z8on&M|6XIbUIGpg|7k5Dt{&U{hhwD4o(daU>*ADTWHBrwc61mikdAHzg%Jd`y!khR zEa;JS$1ZYzrAL6gXwRDV)t8spwpP}<;gJ_>-4Ul2U;JuV} z2O&k7{qL%Vsy_u~8DxfTBrF-GEwLF|Wi%`=>Qb_NSH%db+$+#N6t55DL2^Aj6xgrs z3fW0aZB?qg(#121@8ZqIBxF*fjjIZdn=Q%#?Oo!YJM>wLwf;#+7PC(4!C6@fw1w)h zx&vFr&vjijLFOdcO>fTCF1{!*Myg1MDN09*9RnYV{4e)B8S^-as%ootB`+7U%;x=U zN_h$fJ7v5yjw(Ap4s;jys&?xv5m0XMh`5M0nQqeMGi=kA93q7%$)Lll>hal3(A@A3 zHN>7~Hb$PLDJAe4uzIA+xgDFP50$?q3*c-@QKkUh@J>Cw<%T9e+*lisVCSlom{;Gt zBmI?4Gk?`P-*(#F4IX40))Uz1`ZUt3l{~bcZ+iyf zyPBU0dh9jm>NYGtjh{Z{lIo+%ray1wq_Na5GEkUO`lQzV_yhJHs?;ZSg|Rb@{`EGQ zaxDgrQ*X%rWhRg`O@M1o&Mqe*0WY|Bm%6#aTds^<0v)4IzAE6RB`kNb_sHju$t-?G zTd&N+#e|whuF2>yQoDGb%;ku__(w+CF-DL^AVWOyX!G_p9BT>%go-? z#nsu&$nL+U4#w7SznGcXSP2;k|7*_6%OGxL>uToAAZ}~qY9?xC;$UjVAZuoC;c7|9 z%*w^j5BKZ;toO{-OO&%7WJC;m;vS-15KF9C4hm)p1^i%m71_ccNFRz5)E&o7s~1F8XGge_{65eptf(EONm_A9u~%^kw)S%+psOleN$)kWg1}1qCzW+^ zF;!G)VuWafGI{chS@}Mf%7W=mj>vi#2s%=Aw1wKk2Pkw0#Psz*q!92+^b9dDRZn z9-eTYkEH@JY(SrDs&0qSd=zT5eq8@$1ZlSsGE;k?5qP^`8Thz`$xUo7e7rR~EOEF8 z>sf@^Y&pZA)zPop;r99AIKm9-&EM^t#Zo{0&i0JrH;n-JMX1AX$a`;pLdffAC zq`mF62NK$2 zZp#3T_IjIsN946b1TfJVuv3|j3WoO;3c7wBG_`jsO_9LAe|9!G3YG<`?0ff8-ci_Y z2(;vlSWr0=LH}Vr#dd-stNSJgJkC8QWR^=At}2i%PZ)hOCIo`BaDvhy=tZ3=@48Wp z(x1c4UCnhjd=%=Y%oxF8?H6cNt+U$UG-LJYNn}7i21!)d&a7^foTIq;* zmjtg`PP+*A^%zO|T z@ecytEF8yQeImEVt>yp$`T*e13yi+fg4hDAFIdC(ABzLOPH-IfA2+*a`rbAH6vdi- zlft+B20tO4gInoeA<%|C#~ut;nHHYfLGBFLyeA;q{em~j7CrQMbGtovzDNb*1H@(m z)SfHGd1rnVbev{a*K2ncHyU~QZ6yz}#h~kV6?Qch_e`p2Gxt9ydtDZHhW&V{>)FJ$ za91xUF_HJyww7-4Ym>`la~XEEQ7$GU;-`1lmTlppX8wzckB)83dhEsv$(o``DkCPc zq)pXWEXBM=b73yTtmp0>r4o!;J%vx#ksGHqPAPSjXs8{Bs@J3uuS+>HqdVa)FgYpr_DIr~D*|1iFoDp0fwi;G1rZ1E_*-F{2 zWi}=ZZH+?-AJ?xEDookLMqF!?XkIlnJX{&e8>vswH!wLN+3z)ws;NXJbPkfaokSQ9 z&!Y!{j4E>i&kBgeU4WF20{GJ=Ss_R11d|u^L*%))SpFhVjk38=D<U)!%cspV1 z`cfeQ1^TwvY|HFKav!qCFm+bjRydt9%$n*_%LvqfH$0rB0(q7BU zQhl7VObB$=-v06U>Y}Eq)8OTATV2YgUC%b3AC(>t+FVaPJd5w`4>@ED7VNR` z!%!AYQPDI*<*kbct@>S4RjtBb?gSgB@NI098b#K2WMbS%%>?QD=V)+hwU1RUFu>uY zJr(*~n`Wsfc<#pj{^;yuv^noJ({oM>0X`IUC?OweQU$*1!u%l+jeAcT9JC~6!ykF# zKH1bbICjpPPQOiM*Q#dPU_Mk!n8c#pGVLN795`v3%j=4&=EvO`oY3Iz6trt7lIkn- z5K&;_PdxHl#`&wX%8t z$+NXSnS(9Nu&CSTRR%fARbMiwrvFZ=CP!=s$)HhDH?AFft@9rQEv+VcXRwdjfvW33 z{n>Xl#LcmsX;?>T&waeF;zL=;ImhIXnQH1!+(~ii7Ffq8>ByV>IzL4#+w^nE=K-HIy(?c~BzJkzWW}YOQq%PVJ1PY5Mz_=6J@rDj4w)nhOd+3IG&rzrQBUU#X7S(1+Exu@ zMU}~V&~eLSz@nQHxwQLVqA4ec)yY6fvz7b;8?7t@wmBcBIfw1JRc?eR|>bMdh@%!&H+Rl#*JH)Kcx)C~C{X|L%YQMsmE+uZR(wugVM&igDZoi-2A`c_#C)oJLNiG%4 zzCk)V-m<^Y8AML5dBa!w{T+Y-Rg&fg2-~TM{Ri;zL4>5DkobXy%%r4JqR4RlRQT$#IP<+GgfOwOLYU4piBWX=_vG*KcO^4^jjS2fqn7bp<*c3RNvSlhB4&cB zNe9)Vj`5xf=Buhn9%>g^v-qmXGwM5(G%qX}=qn>Ed>Rn3#eQLAL*$2rx=Wz3k>$W_f^sY{+>SuRn; z1Uw@k_3ly<_JLSYFXf9GG9ZOGskzjqc6F4UF#@OBk5F zBj^5M;hEoai5HmNgOq^BURt;klq4{BWz6NpZVw;Bi?_3^&m6B{U6|afi#rINQfZOi zH!YisI~cp7lvHEsja$-{WH4(_TauP3nN4*uXNDb%(u(!qI-wa;0L=j#NCe`W3D3B| z1SAqev@cM8ZtoWbLkyt4D6|vijT)dNvI0p&u^Ohe>;Gj4VeLjo=3Y3t2_*jQAN%6w zC6wI#iL74VvjeC^@`@7Wg=t22{JJs9+cH@x@Q;wRh?sF6v@qcFxj#Q?=I#VWj2Pev zaQl1fuBf4x%Lp|`B=tpmqTaO751Gv4eSDr=xx|X5iJjU0UKJPk$gmlhQ<6*|cJ8pn zv^x{dCswK?t(vT2X=(#KF{clT^FuTz;zp7|Vvx`cvkYuc$`{7{hksAIzr&AR!1z(| z6?YJhvtP@xnfbh~kZ8~kD&>Qb+$K+Y#tp1J<7W4u_~B!`U*29L)-;>|Si!b=XnoYn zNyUup?<1aTLt<*A&FBWdlsGWto|heWdUEmUfEoa74PPACk8~AmOkaSYXm-9C@etcX zpA1HRMLola;P zL+~wgIIZkAPyDe{K0WKC$@2ZC$T>y792e>p!31_e)&{?6)#1FIbik*c{eB+@@1*yz z)WY(hBPHgK`Vg^=CD3sodg3RZ*&4SKP2ld(uQ_?2(p2HGS3Hf|M63DYwuj@##NG6+ zsqB%c1efj=$HD+$XX@7Rbkab^#dDdpu97!|DPLM&V%wv2IZ|ni&<(yaUpm*J>tRjn zg?FI-?Wo>EKEO#bNLUTIfNJ>As|kpA!~8dbbv9cx^?NMB4aHhJu9YCV(;Pq!s7A^l z)(_VlLu08|bDYDZgz7^}*&tgj@6MkQD_NzKr+imQ5=ixTJFDvFxM2PH;EK5kj8`(Id3y z4rq0V!b)>m0Ervm_k=qc(Q^?2j;{V-+Bm^~phtE?O&pOKIf*cHAz?)9R* zM7$!_cR?fcbNbCWQ%tNyJjAfUovRrZe)VFJ_<1`v%YNofordMEeT?doCR{So0{dkt z$9sg#VX^1?7q;u4PYB@;@VL8KZ`UnW_A?>VxKANIk^4b>-Xr;2+#@JYXSh#0e|UHW zCMVr?8go2sH~e<&>08$3-%HH(E#o7F4=W0^8EJ+-3`9sLS@JeLIGiT^A~#(){xxjo zWbes$WMp2^KXe56b9jZLCd>Njb4pI{MotGg&_gE7QrkF&j!>ukDjkb<81a%`|4l(6(}mI%XR_6e350WOK@=S5fI2>7T$n9AJ6{jn^*r{lP~g~x}E4K zkFRSj;&alYywIvmeNBL>gMtgA%57W8C0_dpUi-rtuEEs`&+A-5K`s!FpkSVd|MU>I z;^`E(VwNo*#p}g>23j{xey6)dzOEX5)J=&=1)~oG{OeJ_3ByA9MKAM9^>ac0er75s zYM;Et8in2o`DSX$)Wu-D#?BAWh<2l{dx#F;^1JK{^Lx+cSKgBN^(JXe&^R5}j5<7o z1{gXR5$goXdN~z!I)&$QZeu~MIh9xxhtB0H(X-Jp^U+ZcB4wRKX4@smwnaf$Km5G4I)AlxW;oAknbr<|K(fj5^PYy z`dVGNjTNViZ{|K_8H!EiP-)tl!BZYA*dS30E+iHj_D9g$IxSV{Fpar7n;New6%?9q zbU#fC<$+W%59Lg@^YwsU8);Z5ks3x>iqUg>fNHsLzrS>d6>_=&{4_j`=ubWSKjNH_ zQ_eBsG~;u6Tt-Cc5KSEo`G6E%k|;N}`N{P(IpyTu9&zs2+P~{*$z%HQUEs_RC)E^! z;6>_oL+6n7Kb%RzTR|7Q@G-En2 z8zG&LjERili&2s$^c|}&ZiZ(PpqsFg8Dw8 zN@{{?o{{}?(8%3?A`nY|hvEv3;)A_>uMUt@-v2!P?vjoS=3b|akQ)y?it374(s<{x zyM8aY$ivnT%GedyLmw6ZhuYs|RQOYp*c1>^qgZnffcD55$?K+59cMn1<>_^ss8Mf z)^OM}qv{_rSCWgdEDVAV1^q92cDz((*SrI@PI#kgPG&_Is;&?0aZqJ91hj+Ta7GZ1 z*Yue`)KLh#@`1~3(GU5aL|{+g^Eo4NMKeI(f#Bgp za}LO?+x>Uf>boFn`-SX_@bLhCKjns*Ho}OH@P|Gb%*T+%mYDn*l2_#RbEJUtgKssc zYbF9?m+;k&VAzAgn>Nttg;&kd)!+c zcaWMPYfB++G(f-;$ezwF@@lx!7rK7*RZ$PFeK5T7VD+uosyMA9U;G!O^i^<$6ns3~ zfC?#|xYC#Oqk{lFNDso~xF5*9Zn7sYg(v$9OUqP1;WiXC*_fl}t)JjIDcIeG&oyb? z*H2!-n$QS^J^xQ_hs|BiFjE&$m z{|zsXg(**Ee862Rw97FS@0ma#&#pkjc2I4vXYgg%R|wZN=8^K%fdcAcJqX4;x^xx- zF%yfS@s<%aL4ciaXf03iH1-D9pD&L5BZFP9x}k1iaJbL-0jz#cjW70gMS?PleS*_` z*3)72WQ9f(g8XNmr0u{mv(wIZtxvy?&zqgI0(_bkiL;cEI=pVA0yBY-g29Bnh->)fKh^dfn~N6*jJvN zUMi>Q_j|6aL@p9u4jus(ULGD^76T2%pDwsub(vNR#B}NBy7)Vec6tOu zwu>nronix6kW!RtmyAn?<{kiM%YpS8svH@z3DWe_sLK1XOx>dx7H~aJF~qkU&(Eo` z!7ZW{6L$5LF>=#6FRfW?EV@fB$}&e97HiB4^A$MUeJ@juPp&?nE#glvSy#J|L9;$v zf;$puf3auCUZV16Gi6Xv^r-fdtbCoNZ%xvWs1nb{{c4&B|BQD(i^}woMbnPW6qs>h z6(|mj08q)a^xkXqBknYX^pMljnOFzn# zEv;lEr1ZpWIbTz>7wpOfiinYo@#;R$j$+a^t53wLhiS*ZJn;yU z5|3V=kwt1su0D~rILU0N09^4_g1$TFM zcX#LF65QP-xZB0uA-KC=+-1q{eg9UwwYA^3UsczcXU;r*P7k!5xzp2F_`JBr>B)+5 zlE7R$EV6#k$2;+Y#9CX!VpF8Y_*GJoiabdDEUuT|!+p~a@*b4cF1cF(>GOjC_$UG% zzjVZWpaG-dnG-t#9y7t0gFg#8-U{oMlxyrZn9Lc2D1?J4Hr%}Uy)vwbzs2iFg$`+2 z)Pd=?6An?@#Z_K!kIdxKi~{Z~?jw$=%tQr*H&)$fXm_DnX>DfZ6T<}l25O+xZ0mtP zbu+O>3fno~?L8PLkwI?Pl za172DkIRHYrJ6_&i%XVQ${MdIxxRM4Tnq_+tmLED(n&(XKu$j%>;J8)ge>TM-^0P2 zXG*J+!2Gd*hxgv=<3p0FJ2m9{^yZqZjSXes7;^2srur(y{)eep*=FKi?K8;9aW8Jh z$MKZ%@(+!yeYidSAMuCI?9_v~Y$V5iY*)P__)HFM@1#Gb)C{u-F>(jEROrMyE69)OIpCh?$^DrOS%O$&$4lY zIM>O+YcxqFI3VTNc**YxEKeij#BUyND%ZV-KyZS7%@>^)ju1$aAi>;0Yy^=~wn$8Y z`w-#du-uH(1NL|yVD~ru@FK>7L&E)-7%&~t%7S=z_ZAMy6aeejVOV-c+3AI6rcDk^ z5sdY)dtz;p+4w#z(ipIKJoY$VM4f|Cc~7wteP0iRW1hQ9#$(8j1)Qo=i0zr#BF^jT z`{Uk6)jp3HEHAF_PUKYmDPFuPqAvMoZmrx%xI`*$NryMP>gw>v6vAKc%rKTZOefVc zYr?aJ)?SFt8CeIRj5P-15V-->WU6R|| z7h0m+-bWk9E>H&G<707|S1f=6Da8ELQ;1|Ju2WE)m=#To#{1&Z)6AKQ;f~PVrI?wR zi8!7zf1MtIKC#R0Z^0(pWsZ?N6hzp!9bLl{*f$orI`SE^H1SqM|Vj{y$UhM&quKmRt{11VJg30JAlL;Jv06a+6oHK#|7 z>3?g4ssC5tyT?~Q?+^(p1w1uBK_3iVb|0wo0NNc;m-g<18xlu!9N}}-y^KxPRrUo* z^E26-pwIXEnxq#zCgLhZx6iR&~bFi#>OX0BqJgr8VJC?iSO)Tsm-DSe~!N(Vzv zfiy4l6PLtX zX%8Y)FME}i$vq_+dii2I4)O@IIhJf|`6idDWm>*+k{Mv?xpSymSEJ$ zOhRYJ+2f?tr=BegPB>9trzWqN)Pua}?>0Sd)EOQ{V5=QhS&ur^#@#>#JkP1FD%4Gd z9tTg06)t-a&Mw+>=`DnNnN9fw>7yvEja*G zw(5itbSQ!+y*juU$y_b8L>`HZ(%sGVn^JW-B&=(12dRFhp}OiIIdEgEYYypmtlc|k zC*?EV<+{)sc%W(x#A3T|FvNq6H~4_3%nALb-V7er1$He4Qeg7V!FX3-)-pjNOv~3^}2D6{pi;em^Jc*R<7(b~#2&1!)iU2)^7 z$;s7jT>&`=`8vL6cKg(}@`Bg-2_=8{jb+H?c`Ac-bG`SIu#n)3HE(W1 z-HNZbspvOyS!_BSVP`q6J=%xmwkg*7cyqM_6uIc4ui#Fq}i&Y}0V?sUjuIhxXVo4d)L!0dh`EX5qtQAy*@&wiLtGI;=DCYo&ebrRSnRt|{vc&mRQx8#PW%lQoSqV9M4lfSB%w1hG1m4qZgTCY1LVu{#h*X%o?o~0UNEj2J!re* zU{1=HHj|NZFj1&{`~KzDV2QHMVHTy%@JgXx#YZEC@^QV#-TZDYr4Q4}WI7qOjrEfw za>Ea6^Y4X)M&Dz3Z6_kfoNQ%9Y8^~ZmJr82eqc5wv#B0)EX`p2yW7t`VT5*UQm>hL z1M~Y+iP7P62%531ct*Z)!LFg{&#$TR9tdl!Gt@#jBhOnnwZ%%lDSW^}OiZeIPX(jM@ zQMEmXA}$6FBN=_CON^-+GUY3&Y$|~L#3wV6v_^k|8uI0Imlf^hy9FGvk+Jb=)8d+e z0i)W!2A>#{aTePhX!E61Mien)mWc`RhLt*qb!Sx_9i42B@v~d;kqk$SJtk9Qa+AV| zHtJ#Cc)aChCE&ss{^Xdk!hv~2vd!f$jp)WxtP2ivm){Z0`$u?hXZiN`C$JK2{1R$$ z%M!Cjgp>`+>IQe_9ySiM-${%2j0$Ie#(!e$;Ld8~KJzw6TbUTsi*l7c@fR4If_YU^ z7OA_0_bf<1As+V8>xxTr(Uv@U67xK1RR#UL|DjPsA|wR?>xAz~Oi#kYT;rU7!!cc6 zwZus47(i@HBr#0sD33c%#zM+-(hAv{S~>;!R=Jyy8dfpR8^)pjNc#?OP^UOucyB9M z2O+`}%he|<)Gq*~|8%0EO1N(G3#@Jez1E-TSKkY#moKkvl6PS+9+Y=MH+H0K3#~Oyn0gbwN^ZEt#Qgp_kdIz$ z+vtIUym@-t=hB`37Z3`j8XRJu3pZN&$e)*Z%Cv-?I{`TR_SVC<88|1OFY@R48O9fg zSX-|o=w|>$MUSYI@H6}KnJg-5wOybWtj6o(0|mbim&+*>j6#6GdeQI+j&C}=I&k{;LI<1qJJ|~ zwb{BK_}Z{9n6OzrTa1DbL%`{C7#Oq#e$0V~oD&2--44pxswZIEe7gIR;79m69l{3w zKnVsmeg;VyEGO!pPuQ#+f0L7G0A;=s_*qw%v=0~w{Pm5rK--aE`HuLXb&aWdD<(fJxm3@)K3I8DE9Qo zB97FWsFPn}G*Q~jij9hmGW5ue9`WmcG?R~45X%5W6^X7IJv8>V{3%t)`^mou`;LN& zfUr-s7E>D#zA(wK0iP3cx`M5$Vu=>@%v?_|YI^k{MhI-4W<5L~>>&HU?fZJ$!g{?X zRDX&YR3vLZMx$ZHoPf$Ma9=tS$V|*+(uCWz%On!{mCudLM}DBWihXO zEAbUM%+9=-w0SyMdph{}>gX0xwlP+$ejl=o@@Ni>W~AchHieo*9Z+j9mEyc8h+S4> z;KtgYq9(=DV*St_v6mC_ckPreak|Tr}ZWokbs3yu4#yb=X-q)J(&TO!eu;w0EcSIb4< zNP25eKAQZq*ToB!dmjP!_8jZCT^DPRY4h^3>4bIqyOG(-i#z1<{$z}8I&gJ{)%UTx z@v*R~XtC{B*3e5HvyK-K;mwP@_uwhMqh1B4OIJzfj_e?apnQNJk`KvOe`ZtM6rb<1Z%yOvCfZQ> z98y*`#U@?nhqvJNMIWRoO@@5du9O35NAj)=XQ~tBkwmTU$Xo(eSg)djqQY=X0U!a3 z5{uH98M44=?CH5evGi3@w7{rfzWBGyS$5+DtK%JHoou0Jef!*-mM_D>>{y_BBaP>L zY=xn^XtgCSC5RST+h6_GQd)jCTK#E)6zUbmiDN#uj6K-&=gh> zx+nnJV`8SK4fb8ji1JwRN4=Slyw>z?-frG$UO?WS@JV=MKfVUK;9+A0j`@o?l@<=Dim^RF- zBL2}J6a{IXmi&poWkCk+O#7D5R=rnO` z!*$YI?}Au$EKe4swNzCM!ukB8v&!-r5Zf$3pmk4s&*s!LSPCjd_k-e;bCbdP` zMzruY!}HN860cKKNZ;9S+xI+!UJkm4N`7ziK-bfcAzxK%(RGxKq5 z7D$l7w>2t7+;~(Q*(zoOOn@{d-dxto^bwa9V8s!)H79Fn#})4)k}K6E<}tQ6Yd@?N zm-eI6C0W~=f^1XU_j*)%=evHNH4aqpbSL^};%YH&r!trLd23#Fnrw;5{J=Yjv-u~C&ospEa7?lh_+y#*T$4}^1af!R)vy~m%2Qt zCo@FxU9}ef8D;U7v@o0-<7}|OCYdcDW>?68dZ@I(6yIY%m%MY%RfY4G+-};TBgOe8pkF5JHLf-h+NQ5* z4QavVHm5zyKE8D5ZDgf(ZyXJA)N$)JDCk)!vAlHbT?w;nuP`D^=_|3cQor?^@0jQ) zd?XI-iKeAbc&lohR>%*A%w0UCP*ZJ}5~*LyDM+SP zH#oBH9R{qTE+x0mMcqzfd6`CH{;3SG3g&F^Rt)KPv-$`|Kgo=`h z66{YeJXU`~?;%s!HBsqP*{1H>=)S-BqD6Wp+6)nw8f{?1$t2pukd%ozYBsPS!kvEO zlp?4DVI+Xg4ZZa1i^~w8<(FuxR|@2{J{V0wWpOA5*mczphM0pbWG`AC2!e~iPYiX4 zKJZ^Qbuh^-)lV9bJoidNy)TeYLz26ptGdcB(ki0e@Yek%jg*CGz39q`zZh8?5rXqG z1pTB4;^)%C6AqR%HG&LHI2X&Oi5dHaLE@-K$Iuuni$otFa227~!i}a*Q%SuV_p5lrRRDxNOjZsYQvAu?p4$c7NK`#?jGS%{@6F>#ZaqFyqxTf+zU3! z4y)2HAz29w2D1y&Ye~~*6A|nig={JRH#nkiF#0q3jb9R^;6udJf8WI`TTtzGYuaJ1 zCp8=+v5(y9hQ=Ue`#IJM{62WYQLprYO>XHVrjB~6ogY%e!LlSVv^J`U($2-XA@%j6 zVM8Fw66Gd9?-Fnee-W<6oPydxR->Yh1jv2Q95CL@(V}cDZ_y#4rd2gc1T^3#jOf(ZmWN zgiXlA)K`OCYNtT1oVNN1d^?QWHCm-h>g~=c#HZdW{ZFf3R36~rf{7SV&qMStKEZ`- z^gv-k=j;982DfK`80cZgM7+F!lJWx=3&Q#ZKK$!5vp#ykRfTzud+`#tCFhtw+)xmW z8*(iX4eSAaaf8Ce826#lSA8XRZi=@1%ugRXuHsjh!k7qh8o{6`+l%fy@*wW_e%6DN$3%qL;n&BOPw|dLaObWKx=~Pr zx6Fadg2-ZVpuP04V(SuF1W(t8b=S-lSSD#Qyv98ZkZ=Rj3F6rW0lc+<;LlseZfH7z z3#A9}4|ofZ-NL%-eQ)0uY-gKDvge%@_~84s04O!x=HSDFh9_mGoEq*@LQXU)rtDlsGZ3tQ#o+5S_prb;EgUqRXC#ol0_|QcQ&XWLN z&7di6WQbG>q-<;_6uKZ0H)7(&XZN-+-5}R3*$e!3*{AHV_s@fyRhz*(#DX1)QYt8Y zP!oElf82?6y(Ml~&Vv^?>Qq9Jl1zmt6)oyF3!_i8pRTOs^x$W((bR3${?GOQk7( zUTTQhj?WQm=h!upX8i-2n{sP@-0q;Xsmjw9`rA6w8s)4uj_U1~fo+zjiaoD^**T^( zeC2*KjvGbis3gNVhsw#@+vq;~v&_I^(8N(n=D>hy+F>; zw(!+`w`4Ve4#b4iwyWK@^*)GOq>M~(Q}XT>@pf3>fcwqKt`gV@neC7N65^)qh3f;R z#U`p<5pwYs^8>CNvVUAC#FGm?U6*h(xNa}o1?@*uZWh=8277zKXE9f$|7UWn!~yLOw6$;?w34W?Al>i;bc)*TN8|vJ@E?Tcg}q?j{o>`m z6mMo!Wtd~jc6z8{-i;Rl82!IiNkx#3C?`BGi@BH@6?xg9I-iA4uATvk`k&W`-+W%RqMMl{1rLXvb{{-OOd6?&rA>Qz4{` zjC^V(?z|D)^0Atcb3sz7IoVy|9ToR=vFxaurN82jm~NEkmS4Ns5fo|HTWvLvCej~p z&~)*VBwagEi{~Z-J87Pq0WhtXrBqb>f5h<)o<5rIuNDf)_zwj+eyPx-?F`Mw<_a#@Mf-)4gfYL%}5 zP|ORUlFyb1X&_Nj1%g!)YQoSaFzwhgX+p$XbJ+4quB)TbFOlT0a(?v^2$pqme|IMYJxm zwi4#rCF6#k6{vl|trYkE`7{`#)D_YB>_2*7ySO`;%ksXe?vo1$T)&N2pKm_0>2z-K zK6n95n16b?dsq5IH}OgW@-OI)eDhxKLqB>C`hU7&iwCX@znIbm!58R%)jPo_$_Mg{ z;7PIa!ph08$*DVxhr~L$!CQ_848teehq%kKk5R?HGdl#<4vDUN;R60&GYGkZe|l$W zPD{(eI%u~NiF#JB-wj*CRwFJ)N-qCZ_#W75oR7hy8l%1`Mq}g(j@FjQ)Y$DhJ=6if zmH^r%-lMvVaft0E+=1)dq~9S%7}7@q#y5rrUU=Gdr`tijeew-z+GJ>l7cF4f#xsxk z=ayce*8}gjCW*0iH+wMDNZ!IbaH4x5ySRlJWFMfYd3&%gkru|3`vy0+-cUw-|Fd;< zaW`CH>^;D$8vRI{6V~{nX5Oo+c8TKR6$DS9-_Mt@Ltym~0{#++wxOp80`L=Sbi}wZ zGz#ibtRnX6u^#~eNDK;h@}ly0{3E>JhDM~ky=A;o%j{Q!g52B!EzlPfw=zM4V(H*9 zjyzaJzu3@<6j@_ynRgjpB9x^E$iABN&`iBVMY*xQ%8>j1otM52#NbrJYG0}yMs0<9hhad?M<{{?fvz2rXgQh>cHM!(k_y&Y6>*QFn@Blzw-30}Fy zcOfoa2(o(pLL)Hhhg84hSNS(wy5LiJi9vfe?0;9g{5KqYU%cdFeTjkpFYVe@+-V@9 zL>DCKW?;nwAvNz%IAZPgzhDV2fl@Rg)gWY|=3DS2hqwn`4(tOFj?Yjqfy9T~OaA#1 z_9aL@rD%c=j(R?sV|bpOKfJwImg=goS=sC_;C*5-2FB4oO3yI^lDDC|9 z2kqF9r$lFXIgbm-w&uSxT%1*=JI~~AHn{4s%hERVZ@64XGfk%F9DeIGW^dESP&Exp zO2A$I9T|SoI00dJ_Py#6!iAs}{0>r< z8+a9Q7jK`OZBF>)E(0B)2j$OT2Dvo_MofqtsTWM)u`2KLd$kA7WgGjeN}fAOv-ErC zSbs?~CK^Wmwt}L;?B33V8>U@O3^McO!%>w*hj_zFh?UJo5&si7Dir}u^4+~ZiM(P=oE-qA~0nC zM`kiGM>DB^f>|PXCPI|jP4S^%Ts_{Xv0{5LnxJC0q>qRSMh}`M5#NvqH5Le$bPd