"`bH P'Zeuclid&ZArith#Coq@()Notations$Init#Coq@%Logic$Init#Coq@*Logic_Type$Init#Coq@)Datatypes$Init#Coq@&Specif$Init#Coq@%Peano$Init#Coq@"Wf$Init#Coq@'Tactics$Init#Coq@%Tauto$Init#Coq@'Prelude$Init#Coq@)Notations$Init#Coq@0&v!D]hwnv %Logic$Init#Coq@0\͉!Ig)Datatypes$Init#Coq@0.i bYN Z*Logic_Type$Init#Coq@0 1jc6&Specif$Init#Coq@0;RWMi\N'Decimal$Init#Coq@0C涳N*ua#Nat$Init#Coq@0eʤģPSR蠠%Peano$Init#Coq@0 jha|ؠ"Wf$Init#Coq@0q+W,J+'Tactics$Init#Coq@0/9m+ a%Tauto$Init#Coq@0̂"&/rk0JqTttֱ&Basics'Program#Coq@0!bs߯? :VU'Tactics'Program#Coq@03u%+Equivalence'Classes#Coq@07;ꮹ-SetoidTactics'Classes#Coq@0S_`nOU$&Setoid'Setoids#Coq@0D9AsWE!>$Bool#Coq@0j 2cZ`FW*Equalities*Structures#Coq@0όe얟)H.Ƞ2Relation_Operators)Relations#Coq@0%s鯰s4Operators_Properties)Relations#Coq@0U3y#h&)Relations#Coq@0r砠*NZMulOrder&NatInt'Numbers#Coq@0}\^ !"k}@R(NZParity&NatInt'Numbers#Coq@0H>ca'^^%NZPow&NatInt'Numbers#Coq@0)6*9 B:vȻ&NZSqrt&NatInt'Numbers#Coq@0` .%m%NZLog&NatInt'Numbers#Coq@0ꔉ .uV%NZDiv&NatInt'Numbers#Coq@0$ |J?d (w%NZGcd&NatInt'Numbers#Coq@0KgT7|&NZBits&NatInt'Numbers#Coq@0MlIpKt'NAxioms(Abstract'Natural'Numbers#Coq@0Zخb1Z3uuѠ,NZProperties&NatInt'Numbers#Coq@01D%E`|3x%NBase(Abstract'Natural'Numbers#Coq@0 Y?V vI$NAdd(Abstract'Natural'Numbers#Coq@05;ZW:㥜un$&NOrder(Abstract'Natural'Numbers#Coq@0]@7U#oY)NAddOrder(Abstract'Natural'Numbers#Coq@02'8zn7Hfɠ)NMulOrder(Abstract'Natural'Numbers#Coq@04> Aat/ j $NSub(Abstract'Natural'Numbers#Coq@0:DfJᠠ'NMaxMin(Abstract'Natural'Numbers#Coq@0]v|Qg̟ʠ'NParity(Abstract'Natural'Numbers#Coq@0̗SKz*!&4h$NPow(Abstract'Natural'Numbers#Coq@0҆mulf%NSqrt(Abstract'Natural'Numbers#Coq@0<ge$NLog(Abstract'Natural'Numbers#Coq@0K@5)@A@ݎO@U@+succ_doubleݎOF@6r@A@AI@Z@'abs_natIK@?n@A@3x@a@'compare3xR@]=@A@1P%@g@!t1P%X@  @A@AB1P@l@1P@A@1P&@p@`1P&`@A@ACD1P@s@#div1Pґd@ y@A@1P@z@#eqb1Pk@ f@A@A1P@@#gcd1Pp@ 0@A@1P@@#geb1Pw@ T@A@A1P@@#gtb1Pʑ|@ q@A@1Pĺ@@#leb1Pĺ@ a@A@ABCEFG1Pň@@#lor1Pň@ /@A@1P@@#ltb1Pב@ ~@A@A1P@@#max1P@ @A@B1P{@@#min1P{@ "@A@1P]@@b1P]@A@AC1P@@#odd1P@ @A@1Pɣ@@#one1Pɣ@ J@A@A1P@@#opp1Pԑ@ {@A@B1P1@@#pow1P1@ @A@C1P;@@#rem1P;@ @A@1P@@#sgn1Pˑ@ r@A@1P@@#sub1Pɑ@ p@A@1Pe@@#two1Pe@  @A@ABCDE1[8@@$div21[8ޑ@ @A@1[d@@$even1[d@ I@A@A1[6@@$ggcd1[6@ i@A@1[U@@$iter1[U@ @A@AB1\@@$land1\@ /@A@1\@@$log21\@ 6@A@ACF1\$@@$lxor1\$@ @A@1\Y@@$of_N1\YÑ@ >j@A@1\@@$pred1\@ j@A@AB1\@@$quot1\֑ @ }@A@C1\@@$sqrt1\@ @A@1\w@&@$succ1\w@ @A@A1\k@+@$to_N1\k@ @A@1]@2@$zero1]#@ eD@A@A2:@7@%abs_N2:(@ @A@BCD21@<@%ldiff21-@ ߵ@A@2=*@C@%quot22=*4@ @A@8j@I@'of_uint8j:@'"h@A@AB9E@N@(div_eucl9Eđ?@(*k@A@<@V@'pos_sub<G@+ie@A@A4'z@8g$@!N7@B@$negb&BinNat&NArith@5z)BinNatDef@#-T|ŀ@&pred_N!,@4s)m(4@A(I"@BD3x@@'compare3xdi!yjn @*comparison;f@s  簜 A"y'ӜBלC"x'ਗ਼@F#@G )Qڀ ꩚%@'CompOpp@A@1P%@@!t1P%JA@A@A1P,}@@"eq1P,}^%Logic$Init@@"eq @'BinNums'Numbers @7@@A@1P,@@"le1P,h!x!y#@#notШ+)Datatypes,@l;f@3@'compare3x)BinIntDef@]=BAC@A@1P-@@"lt1P-h2C0DR'(B@A@ABC1P@"@#abs1Pd!z{bC@A@1P&@0@#add1P&d@vuto@zyxGtUp@-=@+ieC@A@AD1P@`@#div1PҠdBǩd@9ES@(*k!q@@A@1P@v@#eqb1Pd@@cHfeiMڰhPܰRAoE$ɩ@=C@#FyO @A@A1P@@#gcd1Pd!  @%##@1P@ -+@$..@&1P@' ÷-ѐ@:=D@;#F̀ B@@@:1P@; @AB1P<@1Pĺ@@#leb1PĺdQLRH@@@@@@@@@@@DO@x3x@y]=5WW@A@ABCEFG1Pň@@#lor1Pňdhf]gF==l#>@c&"@Y=L@Z#F̀Kl/@(succ_posB@񀐩@ *@@[]C̩L@ 3"@>m@A@1P@)@#ltb1Pנd@YXWU-@3x@]=@A@A1P@9@#max1Pd!m@kji$@@3x/@]=@A@B1P{@L@#min1P{dͷ@|{zP@3x?@]=@A@1P]@]@#mul1P]dB޷A@?D+B@=N@#F÷ R9ưP@A@AC1P@w@#odd1PdUZWBΰ1@AA@AA@@@@@@@DMٰ  @A@1Pɣ@@#one1PɣT@A@A1P@@#opp1PԠd{yxw~өCs@A@B1P1@@#pow1P1d"##@m ਗ਼@Ljb@4=([@5#Q̀o6@'1\Y%@( >j=ɷy@!}D@51\Y3@6 >jK<=X@ "@3m;@A@1\@^@$log21\d<A:?km@$size=)R@#R_ M@A@ACF1\$@t@$lxor1\$d@Ͱͷ@Ѱ~@o1\Ym@p >j@=(_@#Q\ũ5+@ S%@>X@ԩDک@1\Y@ >j@A@1\Y@1\@@$pred1\d4@1P&@ ̀@A@AB1\@@$quot1\֠dCA8B6@#fst II@\@/ŀ%@A@C1\@@$sqrt1\dU*:򐩚 @=)]H@#RE2@A@1\w@@$succ1\wrh@1P&@ ̀C_@A@A1\k@1]@@$zero1]T@A@A2:@BCD21@@%ldiff21d~|s}}@A@?]T޷:@EDCVX{>@1\Y@ >j?@=U8@$'RhL@1\Y@ >jݷU@`_^qs,Yɐ*_&@1\Y@ >j-@AEGH@A@U+ZEuclidPropW@@@A@@%NZDiv&NatInt'Numbers#Coq@)NZDivPropy@@@A@@@J!C%NZDiv&NatInt'Numbers#Coq@@A@@I!B@@#ϸ@@o#ϸd@@A@4^@@x4^d@@A@AB@A@@H!A @@1v@@1vd@@A@A @@ J@@A@B ]@@ ]^@@A@ @ @ ֠h@@A@AC @@s h@@A@ m@@l md@@A@A n@@a nd@@A@ r@@5 rd@@A@ABD t@@" td@@A@ vi@#@ vid@@A@A }@&@ }d@@A@ ~h@*@ ~hd@@A@AB ~@-@ ~d@@A@ ~@2@t ~͠d@@A@A [@5@d [d@@A@ =@9@W =d@@A@ABCE @<@@ Ġd@@A@ @C@. T@@A@A @F@+ d@@A@ @J@$ d@@A@AB @M@ d@@A@ @R@ d@@A@A @U@ d@@A@ E@Y@ ET@@A@ABC!@\@!d@@A@!@c@!נd@@A@A!h@f@!hd@@A@!o@j@!od@@A@AB!@m@t!d@@A@!>@r@:!>d@@A@A!^@u@0!^d@@A@!@y@ !d@@A@ABC!W@|@!Wr@@A@!9}@@!9}T@@A@A!׳@@!׳d@@A@1@@1d@@A@AB28@@O28d@@A@28@@ 28d@@A@2Xr@@2Xrd@@A@6e@@6ed@@A@ABCDEFG@A@@!b"q1"q2"r1"r2@%Logic$Init#Coq@@#andЖw@MBBE@YB*F@}q렐G DEC%Logic$Init#Coq@@#andЖw@!@@@ %'A*Equalities*Structures#Coq@AviA)Morphisms'Classes#Coq@@AAۀߠK @Aۓό^ @A݋X_A/RelationClasses'Classes#Coq@@ABC@@AA@@A@*div_unique @/*jcSE5@QA!a!#!q&!r)@ǠD@Ϡvxl@x_nsmp sx@@@\AG@^AE@AB@@=*mod_unique @٠ido@B:Z\9^8`@D@Ā֠@(." @@@A~@A|@AB@@t0div_unique_exact @,۠ԠĠ@Cqp@3C@̶@WKЩàѩ[O٩ נ֐@@@A@A@AB@@(div_same @Y=͠Ƞ@D@*A|p @@@A@A@AB@@ (mod_same @z^)"@E߶@K@A ~))E@@@A@A@A@ABC@@堠)div_small @ LE5'@3Fq@diBwBAʰ FDVr@@@/A'@1A@3A@ABC@@)mod_small @ʠ>9yrbTD@`G/1@ӠBBA ؠqq@@@\AT@^AI@`AG@ABC@@?'div_0_l @۠kfq@H<\@ȠA @@@@@\'mod_0_l @ à@IYy@ڐA7+ ߐ@@@@@y'div_1_r @ 1 ٠ɠ@Jv@4ATH Р@@@A@A@AB@@'mod_1_r @ R 6Ơܠ@K@UAui V@@@A@A@A@ABC@@'div_1_l @ u Y$ @ Lڶ@F͐A $@@@@@@ڠ'mod_1_l @  vA:* @(M@cA A@@@@@'div_mul @  #^WG9)@EN@wB@{_װ˩ SEYSSY@@@>A%@A@@'mod_mul @ ՠ ID}m_O@kO:<@ڠB@ ޠkyy@@@dAO@fAM@AB@@E&mod_le @  qlw@PBbd@ŐB@Ԡ @@@@@g'div_pos @  ΠǠ@Qd@$B@ϩ* à@@@A@AA@A@A@ABC@@+div_str_pos @ I -Ӡ@R@ AUAB' @@@A@A@A@ABC@@-div_small_iff @ v Z%@ S۶Jݶ@{>B@MB&@#iffС) !%MZ'!@@@ A@A@@렠-mod_small_iff @    RK;-@9T w @kB@zoS-ϰé OIOQK@@@6A.@8A#@:A!@ABC@@/div_str_pos_iff @ Ѡ  E @yi[K@gU 6 8@֠B@[ y}wy@@@@@A&div_lt @  ݠ m hs@V> ^ `@̠B@РWҠ @@@A@AAw@Au@As@ABC@@k+div_le_mono @ #   Ҡˠ@Wh  !c @A@񀠩3Ω5ʩ7 РΩ ҠА@@@A@AA@A@A@ABC@@*mul_div_le @ X < ̠ Ǡ@X , @] B@/ $c @@@A@A@A@ABC@@ʠ/mul_succ_div_gt @  f  1* @Y 綐V @ JB@Y N2[($ *.(@@@A @AA@A@A@ABC@@)div_exact @   $ _XH:*@FZ  @ xB@ |`:ܰZHV Z^X֩ àb\ @@@GA?@IA4@KA2@ABC@@*2div_lt_upper_bound @  Ơ V Qzl\@x[' G I& K@ C@ @y  @@@@@S2div_le_upper_bound @    z@\P p rO t@  ՐC@ @   @@@@@|2div_le_lower_bound @ 4   ܠ̠@]y  x @ ; C@  Զ@ Bˠک F ߠސ@@@A@AA@A@A@ABC@@/div_le_compat_l @ e I ٠ Ԡ @^!p ˶ Ͷ ϶@ m 0C@3 C 8  w  y@@@A@AA@A@A@ABC@@⠠'mod_add @  ~  IB2$@0_ n w @  dC@  h [B0>P@ z oA ˰  fV;JOOZQ@@@6A.@8A#@:A!@ABC@@'div_add @ Ѡ  E @yi[K@g` 6 8 :@ ؠ C@ ܠ  ygu@  x  ~ r @@@oAg@qA\@sAZ@ABC@@R)div_add_l @   ~ y@aO o q s@  ԐA@  ة ˠ@   ; / ֠ ڠʩ@@@A@A@A@ABC@@0div_mul_cancel_r @ C '  ۠͠@b    @ J C@  @   p d젩ޠ@@@A@A@A@ABC@@0div_mul_cancel_l @ v Z  %@ c ۶J ݶS ߶@ } @C@ O D@ R G   %. '"%2$@@@A@A@A@ABC@@/mul_mod_distr_l @    XQA3#@?d }  @  sC@  wI@  zL ְ ʩ DXa FZU H\gY@@@CA;@EA0@GA.@ABC@@&/mul_mod_distr_r @ ޠ   R MvhX@te# C E G@  C@  ~@    젩 y { }@@@xAp@zAe@|Ac@ABC@@['mod_mod @    @fX x!n {@  ܐB@  ĩ < 0!@@@@@/mul_mod_idemp_l @:  ҠĠ@g  ) @ A C@ E ڶ@  ݩ g [H ՠLN ۠@@@A@A@A@ABC@@/mul_mod_idemp_r @oS  ޠ@h ԶC ֶ^ ض@ v 9C@ z =@ K @  } '   -$@@@ A@ A@ A@ABC@@젠'mul_mod @  SL<.@:i x  @  nC@  rD@  uG Ѱ ũ ?\NS CbYV[[@@@@A+@BA)@AB@@!/add_mod_idemp_l @٠ M HqcS@oj > @ B@  C@  y@  |  砩  @@@sAk@uA`@wA^@ABC@@V/add_mod_idemp_r @  }@kS s u w@  ؐC@  @   ; / ֠Ʃ " ܠÐ@@@A@A@A@ABC@@'add_mod @C'  ۠͠@l  2 @ J C@ N @   p dQ U Y[@@@A@A@AB@@'div_div @x\   '   @ m ݶL ߶U @  BC@ Q F@ T I  !#0"'%2 &+@@@A @AA@A@A@ABC@@)mod_mul_r @! \ U E 7 '@ Cn@  wC@  {M@  ~P ڰ Ωc HW\ wi[ N]Šboaf@@@KAC@MA8@OA6@ABC@@.*div_mul_le @ʠZU   ~ p `@ |o+KMO@  C@  @     @@@~Av@Ao@Ai@ABC@@a+mod_divides @ Ƞ    @ p^~@  B@  ɩ E 9& @"ex @  S G̩ ӐA@@@A@AA@A@A@A1@DՠԠ@@ABCD@@@@@@@A  BC @&mod_eq @bF֠Ѡ @b@!aĶ!bǶ@%Logic$Init#Coq@@#notШ  A7  tCB  @@@ %'A*Equalities*Structures#Coq@A݋X_A/RelationClasses'Classes#Coq@@A@@AA@@A@.div_mod_unique @ Y@AE "q1"q2"r1"r2@%Logic$Init#Coq@@#andЖw@ ĠB B E@ ҠY [ F@    eG D  kEm%Logic$Init#Coq@@#andЖw@  @@@xAviA)Morphisms'Classes#Coq@@Aۓό^ @A~@ABC@@v*div_unique @ @B~!q!r@o(A A C@OCN 蠩 WUIYѠdV@@@AB@A:@A@ABC@@*mod_unique @U9ɠĠ @UC87@^!A/A&C@y l@@@Ax@Ap@A@ABC@@䠠)div_opp_r @o :@D)춐(@'AT,  琩2#"@@@A@A@A@ABC@@)mod_opp_r @*% e@ETS@Rذ̐A۰ϩH ILK@@@DA@FA@HA@@ABC@@8+div_opp_l_z @ߠàSN @F}@|B@{A@rq  >x @|@@@uA@AvAۀߠK@zA@|At@ABC@@l,div_opp_l_nz @ @Gtv@5)Aܶ@=1A5 vI 9 zŠO K@@@A8@A0@A@ABC@@+mod_opp_l_z @K/ @KH@瀐maA@qeRuiV }@@@Ad@A\@A@ABC@@Р,mod_opp_l_nz @w[ &@wIضڶ@A@@ I ڐ R@@@A@A@A@ABC@@-div_opp_opp_z @! \@JKJ@IϰÐAv@Ӱǩ@?{װ˩S ߩHYJ@@@BA@DA@FA>@ABC@@6.div_opp_opp_nz @ݠQL @K{>z@@yA@ts @B|@@@zA@|A@~Av@ABC@@n-mod_opp_opp_z @ @Lvx@7+A޶@;/?3 tGv@@@A0@A(@A@ABC@@.mod_opp_opp_nz @C' @CM@߀eYA @瀐maNqeRyk \@@@Ah@A`@A@ABC@@Ԡ(div_same @{_ *@{Nܶ@AB  ؐ@@@A@A@A@ABC@@(mod_same @  M@O<@8Ae--i@@@&A@(A@*A"@ABC@@)div_small @50 p@P_"^$@ ƠBBAީfWV@@@@@=)mod_small @ȠXS @QEG@0BBA zyz@@@@@`'div_0_l @{v @Rh@'AΩ*Ґ@@@A@A@A@ABC@@'mod_0_l @* @*S@ĀJ>AMA.@@@A:@A2@A@ABC@@'div_1_r @M1 @MTh\䠐AA@@@AW@AO@A@ABC@@à'mod_1_r @jNޠ٠@jU˩yfA.@@@As@Ak@A@ABC@@ߠ'div_1_l @j5@V$@SڐA!M@@@@@'mod_1_l @N@W=@lA*@@@@@'div_mul @,'g@XVU@TڰΐAݰѩYKLKKL@@@DA@FA>@AB@@6'mod_mul @ݠQL@Y{>z@@yA㠩pqpp@@@iA@kA@mAe@ABC@@]0div_unique_exact @xs@Zegi@(B϶@, 00$16@@@A@A@A@ABC@@&mod_le @0@0[@1B@ЀVJ;9^^@@@AE@AI@A@ABC@@'div_pos @X<̠Ǡ@X\@YB@+ _"@@@@@Ϡ+div_str_pos @vZ%@v]׶ٶ@€I>A~ABPE  @@@@@-div_small_iff @} H@^76@5Ab@#iffС)ŰA21ms8:v;@@@4A@6A@8A0@ABC@@(-mod_small_iff @ϠC>~@_m0l2@kA6٠ede*kmn@@@gA@iA@kAc@ABC@@[&div_lt @vq@`ce@ѠƐB@ՠ\נ,,@@@@@y+div_le_mono @ @ a!c@A@(I*àHŠO@@@A7@AA:@A0@A@ABC@@*mul_div_le @K/@Kb@瀐maASܠܩߐ@@@A`@AAc@AY@A@ABC@@͠/mul_succ_div_gt @tX#@tcն׶@C8AFy@@@A@AA@A@A@ABC@@/mul_pred_div_gt @ J@d98@jA`m'((Ԑ<-,@@@&A@A'A@)A@+A#@ABC@@)div_exact @ 61q@e`#_%@^ؐA)VWWiZYҠ^]@@@VA@XA@ZAR@ABC@@J2div_lt_upper_bound @ՠe`@fRTV@ B@Ơʠ@@@@@l2div_le_upper_bound @@gtvx@ِB@;<A@@@A)@AA,@A"@A@ABC@@2div_le_lower_bound @=!@=h @B@D͠gHЩfk@@@AR@AV@A@ABC@@/div_le_compat_l @eI٠Ԡ@ei!pǶGɶF˶@i,C@?4su@@@@@砠'mod_add @r=@j,﶐+n@,AYP%&%%'@@@ A@"A@$A@ABC@@'div_add @/*j@kYX @Y߰ӐA֩^}RSRRfVW@@@OA@QA@SAK@ABC@@C)div_add_l @Π^Y@lKMO@B@@@~A@A@Az@ABC@@r0div_mul_cancel_r @@mz|~@=1B@C7FMŠJO@@@A6@A.@A@ABC@@0div_mul_cancel_l @I-@In)@瀐maB@"۩sgv}z@@@Af@A^@A@ABC@@Ҡ/mul_mod_distr_l @y](@yoڶܶY޶@BD@RG @@@A@A@A @ABC@@/mul_mod_distr_r @Z@pI H@IϰÐBv@y=հɩCDEFGJ@@@BA@DA@FA>@ABC@@6'mod_mod @ݠQL@q{>!nA@zA䠩rqqts@@@@@Z/mul_mod_idemp_l @up@rbd&f@%A̩(  26@@@A@A@A@ABC@@/mul_mod_idemp_r @0@0sU@΀THAWK8Š_<ǩ>ˠeː@@@AL@AD@A@ABC@@'mul_mod @_CӠΠ@_t¶Ķ@wA*zgkoq@@@As@A@AB@@砠/add_mod_idemp_l @r=@u ,﶐ +@ ,AYP % & %V * )@@@ "A@ $A@ &A @ABC@@ /add_mod_idemp_r @1,l@v [ Z "@ [ՐAةŠɠ U T Tˠ Y X@@@ QA@ SA@ UA M@ABC@@ E'add_mod @Р`[@w M OQ@ A    !    @@@ A @ A |@AB@@ t'div_div @@x | ~@B@ C7 E9à H M Š J Q @@@ A 9@A A<@ A 2@ A @ABC@@ )mod_mul_r @M1@My  -@B@ ui wkX x  ^ ~  b   @@@ A p@ A h@ A @ABC@@ ܠ'mod_div @g2@z !䶐 @ AL$   R@@@@@ *div_mul_le @S@{ B A @jC@yn 3@q 69 өK  ЩM?   Ԑ@@@@@ &+mod_divides @͠A<|@| k. j0@ iA4נ c b@÷ & i j@@@ cA @A dA @ fA ^@ hA1@D   @@ABC@@ ]@@@@@A @@A@B  CD@@@@ ӳ2@ ӳ2[)Datatypes$Init#Coq@@A@ Գq@ Գq\ @A@AB@@"O@(PeanoNat%Arith#Coq@#Nat@&of_int"O#Nat$Init#Coq@@ 6@A@A\@@A@\@@A@As2@@&shiftls2@vY@A@BCs8@ @&shiftrs8@vY@A@ѓ@&@&squareѓ@y@A@@,@&to_intϑ#@@A@z@@A@ABCD/@4@)log2_iter/+@wd@A@NH/@@A@A\d@@A@bz@@A@#@@A@#@@A@ABCD/x@&BinPos&PArith#Coq@#Pos@)pred_mask/x)BinPosDef&PArith#Coq@#Pos@ )X@A@6@$"@A@AV+L@!@A@V1b@@A@V5=@@A@ABCl@m@)sqrt_iterld@!$:@A@@@*@(sub_mask@!@)@A@ADEF c@x@'testbit co@!ć@A@7 B@8@'of_uint7 B/@*`]?@A@AG@=@)mask_rectG4@+ED@A@F˱@C@)add_carryF˱:@+p@A@AB^Ҷ@@'to_uint^Ҷ@#m@A@gL7@CA@A@Aq@@>@A@ݎO@<:@A@A p@W@0double_pred_mask pN@0-+m@A@BCD T@&BinNat&NArith#Coq@!N@!t T8&NArith#Coq@!N@ 2@A@ @@#add @3 @A@A l@@#div l@3@A@ Y@$@#eqb Y@3@A@AB #@)@#gcd # @3n@A@ T@/@#leb T&@3@A@ACEG "@4@#lor "+@3m@A@ q@>@#ltb q5@3@A@A @C@#max :@3@A@ @I@#min @@3`@A@AB @N@#mul E@3B@A@ ~@T@#odd ~K@3@A@AC =@Y@#one =P@3@A@ @a@#pow ˑX@3@A@A c@f@#sub c]@3@A@ @l@#two c@3J@A@AB hx@q@$div2 hxh@>@A@ @w@$even n@>4@A@ACD @|@$ggcd Бs@>U@A@ @@$iter |@>:@A@A 3"@@$land 3"@>m@A@ F)@@$log2 F)@>t@A@AB S@@$lxor S@>@A@ @@$pred @?U@A@AC @@$size ܑ@?'@A@ !@@$sqrt !@?@A@A ! @@$succ ! @?\@A@ !7@@$zero !7@@P@A@ *@@%ldiff *@@A@AB g_@@+pred_double g_@25\@A@CD m@ @÷ m@2j@A@S@'@&of_intS㫑@4}5@A@AS@,@&of_natS#@4};@A@BEFGH\R@1@(mask_ind\R(@4@A@\^@;@(mask_rec\^2@4@A@A!,@@@&pred_N!,7@4s)@A@B@E@&shiftl<@5X@A@@L@&shiftrC@5X@A@A&@Q@&square&ّH@5,x@A@BC"@V@&to_int"M@5L@A@"@^@&to_nat"U@5L @A@AnTq@c@+testbit_natnTqZ@6n@A@B@@(succ_posB@@A@I@RP@A@AB.@@'of_uint. @MS@A@3~@x@'sqrtrem3~o@7]%{@A@ACD,@@'bitwise,@/v@A@>4'@@'testbit>4'{@8g$@A@A{U@@,sqrtrem_step{U@8R@A@u^@5@(div_euclu^,@ @A@Afz@@'to_uintfz@9w@A@Bl@@'comparel@3R@A@CDEFs8@@+of_uint_accs8@5+@A@}@N@,pos_div_eucl}E@&`@A@3x@@A@A@W@&doubleN@'޺_@A@BCq@@+of_succ_natq@$@A@w@b@&modulowɑY@)1@A@ADK@g@&of_intK^@)j,I@A@K@o@&of_natKf@)j2_@A@AI@t@&shiftlIk@*O@A@O@z@&shiftrOq@*O@A@AB,@@&square,v@*ow@A@Z@@&to_intZ|@*81@A@ACE`@@&to_nat`@*9G@A@e@@+testbit_nateđ@+@A@A+{@@'sqrtrem+{ё@,J@A@5z@@'testbit5z@-T|@A@A @@'to_uint ͑@.@A@ @@+succ_double @.^4@A@A#@ @'compare#ݑ@ )Q@A@BCD%t2@@(size_nat%t2@ @A@%9@@+of_uint_acc%9@ ΋@A@A%V@@+double_mask%V@ S@A@%%@"@'div2_up%%@ "@A@ABEF'ş@'@'Ndouble'ş@ @A@(b0@/@*shiftl_nat(b0&@9-@A@A(nՖ@4@*shiftr_nat(nՖ+@'@A@(@:@0succ_double_mask(1@@A@*W$@@@,compare_cont*W$7@!@A@.0@F@.sub_mask_carry.0=@΂@A@ABCD.@@!t.@ ;@A@.먩@@#add.먩@ `@A@A.U@@#div.U@ @A@.B@@#eqb.B@ @A@A. @@#gcd. @ @A@.=@@#leb.=@ @A@ABCEGHI. @@#lor. @ @A@.Z@@#ltb.Z@ @A@A.p@@#max.p@ '@A@B.@@#min.@ @A@.@@#mul.@ @A@AC.g@@#odd.g@ @A@.&@@#one.&@ @A@A.뾴@@#pow.뾴@ k@A@.L@@#sub.L@ @A@.@@#two.@ @A@ABCD.,a@@$div2.,a@ @A@.Xz@@$even.Xz@ ?1@A@A.@@$iter.ؑ@ @A@B. @@$land. @ @A@. @@$log2. @ @A@ACE.@@$lxor. @ R@A@.y@@$pred.y@ `<@A@A.Ʉ@@$sqrt.Ʉ@ ;@A@.@&@$succ.@ @A@.t @,@$zero.t #@ Z@A@AB/@1@.to_little_uint/(@ @A@CDF/@6@%ldiff/-@ H@A@00@@'compare00@?H{@A@A1P%@ґ@A@B1P@ϑ@A@1P&@ϑ.@A@A1P@Α@A@BC1P@ɑ@A@1P@ɑ@A@A1P@đ@A@B1P@@A@1Pĺ@@A@A1Pň@@A@BCD1P@@A@1P@@A@A1P{@@A@B1P]@@@A@1P@@A@A1Pɣ@@A@BC1P@@A@1P1@@A@A1P;@@A@B1P@@A@1P@@A@A1Pe@@A@BCDE1[8@@A@1[d@@A@A1[6@@A@B1[U@@A@1\@@A@A1\@@A@BC1\$@@A@1\Y@~@A@A1\@|z@A@B1\@yw@A@1\@xv@A@A1\w@sq@A@BC1\k@pn@A@1]@nl@A@A2:@ki@A@21@ig@A@2=*@ec@A@ABC2kF@@(size_nat2kF @{@A@3@@(tail_add3@^q@A@ADEFGH3@@(tail_mul3@^@A@5Z@'@*shiftl_nat5Z@y/@A@5f}@-@*shiftr_nat5f}$@4@A@AB5a@@'iter_op5a@ @A@C6w~@@'of_uint6w~@^5@A@8j@@A@9E@@A@AB:x@@,Nsucc_double:x@ ʭ@A@CD@@&divmod>@C@A@>@@&double>@NĴ@A@?2@42@A@AB?;@@&modulo?;@"i@A@CEFGIJ@&Basics'Program#Coq@0!bs߯? :VU 0BpHޞun^)BinIntDef&ZArith#Coq@0ådR4Tuy&BinNat&NArith#Coq@0K11ڤs+Π)BinNatDef&NArith#Coq@03@1O,[{ 'BinNums'Numbers#Coq@0dmk(5Ju<&BinPos&PArith#Coq@0vyػ0= u)BinPosDef&PArith#Coq@0}H d.%,b$Bool#Coq@0j 2cZ`FW*CMorphisms'Classes#Coq@0qیZBeϠ0CRelationClasses'Classes#Coq@0TL;0RUfw1@0.i bYN Z)Decidable%Logic#Coq@0ND걸풬/Oߠ'Decimal$Init#Coq@0C涳N*ua*EqdepFacts%Logic#Coq@0FI$ͼՋ`)Eqdep_dec%Logic#Coq@0u wWIϰ߼*Equalities*Structures#Coq@0όe얟)H.Ƞ+Equivalence'Classes#Coq@07;ꮹ-GenericMinMax*Structures#Coq@0måj$$Init'Classes#Coq@0](p{yOh."Le%Arith#Coq@0d}Omq+!g0\͉!Ig*Logic_Type$Init#Coq@0 1jc6"Lt%Arith#Coq@0KZ-eJkP܏)Morphisms'Classes#Coq@0Imӽ%\$PD.Morphisms_Prop'Classes#Coq@0% :B'.>u%$NAdd(Abstract'Natural'Numbers#Coq@05;ZW:㥜un$)NAddOrder(Abstract'Natural'Numbers#Coq@02'8zn7Hfɠ'NAxioms(Abstract'Natural'Numbers#Coq@0Zخb1Z3uuѠ%NBase(Abstract'Natural'Numbers#Coq@0 Y?V vI%NBits(Abstract'Natural'Numbers#Coq@0qteo_hɅ $NDiv(Abstract'Natural'Numbers#Coq@0bz$?[p(5$NGcd(Abstract'Natural'Numbers#Coq@08E-S ;j_Ҡ$NLcm(Abstract'Natural'Numbers#Coq@0 ~xZ9L{:$NLog(Abstract'Natural'Numbers#Coq@0K Aat/ j &NOrder(Abstract'Natural'Numbers#Coq@0]@7U#oY'NParity(Abstract'Natural'Numbers#Coq@0̗SKz*!&4h$NPow(Abstract'Natural'Numbers#Coq@0҆mulf+NProperties(Abstract'Natural'Numbers#Coq@0unt"kwpYC%NSqrt(Abstract'Natural'Numbers#Coq@0<ge$NSub(Abstract'Natural'Numbers#Coq@0:DfJᠠ%NZAdd&NatInt'Numbers#Coq@00h`ZK4*NZAddOrder&NatInt'Numbers#Coq@0e~1>r砠(NZAxioms&NatInt'Numbers#Coq@0] ρ5r&NZBase&NatInt'Numbers#Coq@0^&8yUL&NZBits&NatInt'Numbers#Coq@0MlIpKt%NZDiv&NatInt'Numbers#Coq@0$ |J?d (w%NZGcd&NatInt'Numbers#Coq@0KgT7|%NZLog&NatInt'Numbers#Coq@0ꔉ .uV%NZMul&NatInt'Numbers#Coq@0ctR~6[Ƞ*NZMulOrder&NatInt'Numbers#Coq@0}\^ !"k}@R'NZOrder&NatInt'Numbers#Coq@0 q;Ve7R W,(NZParity&NatInt'Numbers#Coq@0H>ca'^^%NZPow&NatInt'Numbers#Coq@0)6*9 B:vȻ,NZProperties&NatInt'Numbers#Coq@01D%E`|3x&NZSqrt&NatInt'Numbers#Coq@0` .%m#Nat$Init#Coq@0eʤģPSR蠠)Notations$Init#Coq@0&v!D]hwnv *NumPrelude'Numbers#Coq@05WUVŦ]xVXԠ4Operators_Properties)Relations#Coq@0U3y#h&&Orders*Structures#Coq@0$Znl0\͗+OrdersFacts*Structures#Coq@05Mܿ獐ζΖLB)OrdersTac*Structures#Coq@05'4Ԗ+9%%Peano$Init#Coq@0 jha|ؠ(PeanoNat%Arith#Coq@0O~2$k[#lZ$Plus%Arith#Coq@04tmG$Pnat&PArith#Coq@0,?pr.gZ'Prelude$Init#Coq@0JqTttֱ/RelationClasses'Classes#Coq@0Gz rA6ՠ4Relation_Definitions)Relations#Coq@0]4Ѐd{n^2Relation_Operators)Relations#Coq@0%s鯰s)Relations#Coq@0-SetoidTactics'Classes#Coq@0S_`nOU$&Specif$Init#Coq@0;RWMi\N'Tactics$Init#Coq@0/9m+ a'Tactics'Program#Coq@03%۠rHȠ@%٠2 Q@@@@"_7$@A@@@@@@@@"_82M접 BA@A"_9'`o@B'Z_scope@%ɠ%@%2 Q@@@@#_10$*)@#_112M접 BB@A#_12'`o@B')@%%@%2 Q@@J@#_13&8@% @A@@@@Q@#_142M접 #_15'`o@@@@#_1646@@%L@@@!#_17X@3typeclass_instances%@@@&]@@&b@&f@%&o@@&t@&x@%@&@%&@&@%@&@%@&@%ܐb@@@@&@@&@?Coq.ZArith.Zeuclid.ZEuclid#<>#1 3@%2 Q@@J@#_18&@% B@A@@@@@#_192M접 #_20'`o@@@@#_2146@@#_22X@&C@@@&@@&@&@&J&@@'@'@&P@'@&f'@'@&g@')@&q@'3@&Wa@@&e'N@?Coq.ZArith.Zeuclid.ZEuclid#<>#2 4@&\2 Q@@@@#_23'\@&g%ű@A@@@@u@#_242M접 #_25'`o@Ctv@@'=&y&q@&2 Q@@A@#_26'@&* K@A@@@@@#_272M접 #_28'`o@C@@'j&<&@%2 Q@@A@#_29'@&>25@A@@@@@#_302M접 #_31'`o@DΠР@@@''&M&B@'ߠ#tӡ(ZDivEucl(Abstract'Integer'Numbers#Coq@@'@A@$]%Ҡ@@\@%ӑ%@A@A\@%Α%@A@z@%ˑ%@A@ABNH/@%@$eNH/d$d@A@\d@%Ǒ%@A@Abz@%Ñ%@A@#@%@$5#d$4@A@ABC#@%@##d#@A@6@%@#6d#@A@AV+L@%%@A@V1b@%%@A@ABV5=@%%@A@gL7@%%@A@Aq@&@#qd#@A@ݎO@%%@A@ABCDI@%%@A@3x@&@#3xd#@A@A1P%@&@#W1P%J$@A@1P,}@&@#W1P,}^#V@A@AB1P,@&!@#=1P,h#<@A@1P-@&'@#1P-h#@A@A1P@&+@# 1Pd#@A@1P&@&0@#1P&d"@A@ABC1P@&4@"1PҠd"@A@1P@&;@"1Pd"@A@A1P@&?@"1Pd"@A@1P@%%@A@AB1P@%%@A@1Pĺ@&J@"z1Pĺd"y@A@A1Pň@&N@"i1Pňd"h@A@1P@&S@"*1Pנd")@A@ABCDE1P@&W@"1Pd"@A@1P{@&`@"1P{d"@A@A1P]@&d@"1P]d"@A@1P@&i@!1Pd!@A@AB1Pɣ@&m@!1PɣT!@A@1P@&s@!1PԠd!@A@A1P1@&w@!1P1d!@A@1P;@&|@!1P;d!@A@ABC1P@&@!1Pˠd!@A@1P@&@!1Pɠd!@A@A1Pe@&@!1PeT$@A@1[8@&@!1[8ޠd!@A@AB1[d@&@!1[dd!@A@1[6@%%@A@A1[U@%%@A@1\@&@!1\d!@A@ABCD1\@&@!E1\d!D@A@1\$@&@!71\$d!6@A@A1\Y@%%@A@1\@&@ 1\d @A@AB1\@&@ 1\֠d @A@1\@&@ 1\d @A@A1\w@&@ 1\wr @A@1\k@%%@A@ABC1]@&@ 1]T$@A@2:@%%@A@A21@&@ 21d @A@2=*@%%@A@AB8j@%%@A@9E@%%@A@A<@%%}@A@@A@A9E@&=&;@A@<@&8&6@A@'<@A@1P1@'<':@A@AB1P;@'9'7@A@1P@'7'5@A@A1P@'3'1@A@1Pe@'0'.@A@ABC1[8@'-'+@A@1[d@'*'(@A@A1[6@'''%@A@1[U@'$'"@A@AB1\@'!'@A@1\@''@A@A1\$@''@A@1\Y@''@A@ABCD1\@''@A@1\@''@A@A1\@''@A@1\w@' ' @A@AB1\k@' '@A@1]@''@A@A2:@''@A@21@'&@A@ABC2=*@&&@A@8j@&&@A@A9E@&&@A@<@&&@A@e{AvdU阄@XǨ×wBL@J4O^Xz%U  c А!x'BinNums'Numbers#Coq@@!Z7@!y!H%Logic$Init@"eq @ BA"x0&"y0)"H0@(eq_trans!y3'Zeuclid&ZArith4'ZEuclid@&modulo &FCE(4@'f_equal=ඐ!bRRR!f5D%'0ඐ!acDG33UA 8$n:-)&pp.POC)Morphisms'Classesp@*respectful%WO?||i~K>MbC@&ProperL@@[sqomh@#div<瘠a^\[VS M L{ZaK\HDMe`njXg oCA7754C3.,Yk"Hb@#notШA@(eq_ind_r!2#ҩ&BinInt@#mul1P])BinIntDef@ ĩ@#sgn1P@ rj@P1P@Q y @#abs1P@ x!z,@#add1P&(@ ̀婚4@NH//@1,րCC, F@'div_mod.̀- @@AA@AA@@@@@@D/)nll.<gtr4mm!p7@(positive*@-BDB&&8MOC B@Uc /EB@@@@@DSa@OdrF@UjJV@%Falsee@OH_t)Of{Ȑ"H1j@&eq_ind J:-!ekAn&@Z}@$Truey@@a.Az1@)False_induُ8\@q9>CVcǩ@'sgn_abs:.ݠߠȩ@)mul_assoc <)'Cz%eƷwǷ  @-mod_pos_boundπީӶ@"lt1P-!Ȑ!n>ww@@D@{Ұ)Datatypes@*comparison;f@ A BՀC"13ķ@ C+:ηJ C3BC@#andЖw@?@"le1P,QVDX($_tmp\hP%lemma+驚@>Reflexive_partial_app_morphism 2R,!B @#iffС)&Basics'Program<@$flip$ @$impl7oC@2subrelation_properJ7@#ʶ@#%%P.Morphisms_Prop@0and_iff_morphism Ƴ2/*~@$unitUe@A@6subrelation_respectful>6z @==@0subrelation_reflv D!? FF F? @9iff_flip_impl_subrelation2VAoO?-@6reflexive_proper_proxy5V/RelationClasses@-iff_Reflexive/h>Bm,+!hȩ-@0reflexive_properm+@ 5 + 7@:reflexive_eq_dom_reflexive=[#{%.@@/eq_proper_proxy)f5` -@(symmetry0xjB4@,eq_Symmetric9^G-m@&abs_eqp}0Private_OrderTac#Tac@)not_gt_le$Ҁʩ @)lt_irrefl,SX!ǐ@(lt_trans*))C2@.mod_always_pos K쀰6bE" 6@%lt_eqrzCJ('|/I