"`Ge'Zdigits&ZArith#Coq@L+Ring_theory+setoid_ring#Coq@)Ring_base+setoid_ring#Coq@+InitialRing+setoid_ring#Coq@+ListTactics%Lists#Coq@(Ring_tac+setoid_ring#Coq@$Ring+setoid_ring#Coq@*ZArithRing+setoid_ring#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@(Zpow_def&ZArith#Coq@&Zpower&ZArith#Coq@l)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̂"&/r'Prelude$Init#Coq@0JqTttֱ$Bool#Coq@0j 2cZ`FW'Sumbool$Bool#Coq@0sB ,$11.]m&Basics'Program#Coq@0!bs߯? :VU$Init'Classes#Coq@0](p{yOh.'Tactics'Program#Coq@03u%+Equivalence'Classes#Coq@07;ꮹ-SetoidTactics'Classes#Coq@0S_`nOU$&Setoid'Setoids#Coq@0D9AsWE!>*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@0K3 ٠*VectorSpec'Vectors#Coq@0GyK5%l6L(VectorEq'Vectors#Coq@0#'`ԶlxjT&Vector'Vectors#Coq@0_ċ|"Ʌhz'Bvector$Bool#Coq@0,rO3^~'BinNums'Numbers#Coq@0dmk(5Ju<)BinPosDef&PArith#Coq@0}H d.%,b&BinPos&PArith#Coq@0vyػ0= u)BinNatDef&NArith#Coq@03@1O,[{ &BinNat&NArith#Coq@0K11ڤs+Π$Pnat&PArith#Coq@0,?pr.gZ'ZAxioms(Abstract'Integer'Numbers#Coq@0\}zK=PK%ZBase(Abstract'Integer'Numbers#Coq@0 TL}2_} ؠ$ZAdd(Abstract'Integer'Numbers#Coq@0Y9Vgⲫ򐠠$ZMul(Abstract'Integer'Numbers#Coq@0Mtr\b"H#ZLt(Abstract'Integer'Numbers#Coq@0xK|j2[&=}۠)ZAddOrder(Abstract'Integer'Numbers#Coq@0w:}H#NK}{)ZMulOrder(Abstract'Integer'Numbers#Coq@0Dr~-~ECM'ZMaxMin(Abstract'Integer'Numbers#Coq@0bAX1'ZSgnAbs(Abstract'Integer'Numbers#Coq@02`ou{Z'ZParity(Abstract'Integer'Numbers#Coq@0S)*Dd$ZPow(Abstract'Integer'Numbers#Coq@0AşsאI)ZDivTrunc(Abstract'Integer'Numbers#Coq@0`]f5FԠ)ZDivFloor(Abstract'Integer'Numbers#Coq@0dj_TYQc|$ZGcd(Abstract'Integer'Numbers#Coq@0G0=$ZLcm(Abstract'Integer'Numbers#Coq@0(9g%MmN]%ZBits(Abstract'Integer'Numbers#Coq@0ܹCF5s+ZProperties(Abstract'Integer'Numbers#Coq@0Ve*ʞ_OV)BinIntDef&ZArith#Coq@0ådR4Tuy&BinInt&ZArith#Coq@0BpHޞun^(Zcompare&ZArith#Coq@0'ҤjI=D&Zorder&ZArith#Coq@0fVk.BG)%Zeven&ZArith#Coq@0i?eK#I'BinList+setoid_ring#Coq@0Au,Ring_polynom+setoid_ring#Coq@0gaKw9`UW+ListTactics%Lists#Coq@0,Jcy{+InitialRing+setoid_ring#Coq@0k/T=cN(Ring_tac+setoid_ring#Coq@0x2]%762f)Ring_base+setoid_ring#Coq@0fbU(2cNe$Ring+setoid_ring#Coq@0Msᬠ0{#'[{nm!/+OmegaLemmas%omega#Coq@0TJ#Jes)ArithRing+setoid_ring#Coq@0ṔCgt?}%Arith#Coq@0I|кX*o4#Max%Arith#Coq@04=;3$>aU堠#Min%Arith#Coq@0Ce-Fѕ(PreOmega%omega#Coq@0\|چBb~w4%Omega%omega#Coq@0t.J'6\ϨrK,Zcomplements&ZArith#Coq@0@nCL&BinInt^D1@#add1P&)BinIntDef7@ ̀n@dAɩ@#mul1P]@ DBBF(WMNض@\RA C @@ + +  +7"k()G != R'>   + '+'$' 99+777+1 +A77# '= R'>'''+k6'() 77! 7 7%'+7T'+ 77!T'6'9L +L7777%'= R'>6'6''+k6'+k()+ 9 77"T'6'G'+ 7 T'6'P|A\+p]t0 Ƞ@HPAB@8(ǐS@ݐC\Ox80'@@AC@Kxߐ@@AAAA`@@@@@/two_compl_value @tr@'nat_recO|z@tYmַkx]kcV@@@<`֠k@u oe&z! uOkKtoO?};T;XM>[i@#opp1P@ {@o;; ?'Hɷ@@y'xwtrmR+XOͷHJ"n1|©HȐGĩD?͐<@>̩Ր;:I\ڐ:9ސ65nps21aW @ ::e[ 8^@ l+k + + +7#'()G != R'>   + '+'$' 999+777+3 +C977# '= R'>'''+k6'() 77! 7 7%'+7T'+ 77!T'6'99L +L7777%'= R'>6'6''+k6'+k()+99 77"T'6'G = R'> + '+x'$' 79+777 +1 +9L77# '= R'>'''+k6'()7 7$'+7T'+ 77!T'6'7L +L7777%'= R'>6'6''+k6'+k()+ 7 77"T'6'+ 97 T'6'XtHF䠒_` t\\lJLAB@l dɠUtߠLEHQ0,TLTDDd\)@IX\A@(ȠAAX@@@@@%Zmod2 @!z@@AA@AA@@@@@@D ϰ·!pˀ@AA@AA@@@@@@@D  ް!qշ尷@#sub1P@ pC!@2 +k=X .Rl'>= RH'>9'>9'G''>= R/'>6 97%'>9'6''G''+k6'+k6'+k6'ࠐ9@@AABAADxB@hCH%F@@@@@ꠠ2two_compl_value_Sn @@NDѶXW@>-@nrD~Ѱ*ϩ @@@@@1Z_to_two_compl_Sn @@lE][zI" @4C" L t@@@@@&0Z_to_binary_Sn_z @@F fði_*m@@@@@:,Z_div2_value @@Gy@װ|K<>82@@@@@P%Pdiv2 @@H@y@@@@@^3Zdiv2_two_power_nat @@IHF@ @q@"lt1P-򩚠&Zpowerw@-two_power_nat27I @@@@@3Z_to_two_compl_Sn_z @@Jki©w\cKzH@@@@@/Zeven_bit_value @@KԶ@%Zeven@t:aƐ@@@@@.Zodd_bit_value @@L@@$Zodd,aՀNu@@@@@9Zge_minus_two_power_nat_S @@#M0@ [T@@@@@ՠ3Zlt_two_power_nat_S @@9NF@t ove@@@@@栠5binary_to_Z_to_binary @@JOͶTǩЩ)@@@@@;two_compl_to_Z_to_two_compl @@ZPݶd׶LJܰ5@@@@@ 0Z_to_binary_to_Z @@pQ}L@X@R|U@@@@@"3Z_to_two_compl_to_Z @@R  b@nZ\@ưk> @@@@@:@@@ ӳ2@ ӳ2[)Datatypes$Init#Coq@@A@ Գq@ Գq\ @A@AB@cAGFE@A.0TQ+Ring_theory+setoid_ring#Coq@@ABA.U>[J @B@&Vector'Vectors#Coq@/VectorNotations'Vectors#Coq@@A@"O@(PeanoNat%Arith#Coq@#Nat@&of_int"O#Nat$Init#Coq@@ 6@A@A\@&BinInt&ZArith#Coq@!Z@'quotrem\)BinIntDef&ZArith#Coq@!Z@ /@A@\@@+pred_double\@/S@@A@As2@3@&shiftls2*@vY@A@BCs8@8@&shiftrs8/@vY@A@ѓ@@@&squareѓ7@y@A@A@E@&to_intϑ<@@A@z@6@&doublez-@/!@A@AB@h@(nth_map2*VectorSpec'Vectors#Coq@@ 8"@A@@u@*fold_left2o@6U@A@"W@{@*fold_right"Wu@6N@A@ABCD/@h@)log2_iter/_@wd@A@NH/@[@&moduloNH/R@1,@A@A\d@`@&of_int\dW@1?A @A@bz@f@&of_natbz]@1?G!@A@#@l@&shiftl#c@1dV@A@#@r@&shiftr#i@1d\@A@ABCD/x@&BinPos&PArith#Coq@#Pos@)pred_mask/x)BinPosDef&PArith#Coq@#Pos@ )X@A@6@@&square6@19@A@AV+L@@&to_intV+L@2@A@V1b@@&to_natV1b@2 @A@V5=@@&to_posV5=@2@A@ABCl@@)sqrt_iterl@!$:@A@@@6@(sub_mask@-@)@A@ADEF c@@'testbit c@!ć@A@7 B@D@'of_uint7 B;@*`]?@A@G@J@)mask_rectGA@+ED@A@F˱@P@)add_carryF˱G@+p@A@ABCK5@@*Forall_indK5@9M@A@X@@/shiftrepeat_nthX@;\@A@A^Ҷ@@'to_uint^Ҷ@#m@A@gL7@@'sqrtremgL7@40@A@q@@'testbitq@5)@A@ABCD@@-replace_order@:k@A@2s@@,shiftin_last2s@=Nn@A@AxYe@"@!txYe@;z@A@BEx^@'@"Inx^ʑ!@;z!@A@xa @0@"hdxa *@;zd@A@Axa@5@"tlxa/@;zP@A@Bx#@:@#eqbx#(VectorEq'Vectors#Coq@@ /@A@x[@H@#etax[@> .@A@AxI@M@#mapxIG@;{&@A@BCx@R@#nthxL@;{)j@A@y@Y@#revyS@;{-@A@AG8@^@$castG8$@/Y@A@BDFG8[@c@$last8[]@;d@A@R@o@$map2Ri@;@A@A @t@$take n@;:c@A@ݎO@M@+succ_doubleݎOD@6r@A@ABHI@@%case0HIy@@A@ @x@$even o@>4@A@A @}@$ggcd Бt@>U@A@ @@$iter z@>:@A@ABD 3"@@$land 3"@>m@A@ F)@@$log2 F)@>t@A@A S@@$lxor S@>@A@ @@$pred @?U@A@AB @@$size ܑ@?'@A@ !@@$sqrt !@?@A@A ! @@$succ ! @?\@A@ !7@@$zero !7@@P@A@ *@@%ldiff *@@A@ABCD O@r@,take_prf_irr O @*@A@ g_@@+pred_double g_@25\@A@A q@~@(take_app q@lm@A@ m@@÷ m@2j@A@A @@+Exists2_ind Ñ@ @A@BCEFG k@@'nth_map k'@wF@A@S@@&of_intS㫑@4}5@A@AS@@&of_natS@4};@A@\R@@(mask_ind\R@4@A@\^@@(mask_rec\^@4@A@ABCũ@@*Exists_indũ@@A@Ǜ@@'of_listǛ@@A@A!,@@&pred_N!, @4s)@A@@@&shiftl@5X@A@ABD@!@&shiftr@5X@A@&@*@&square&ّ!@5,x@A@A"@/@&to_int"&@5L@A@"@5@&to_nat",@5L @A@ABnTq@:@+testbit_natnTq1@6n@A@B@1@(succ_posB(@@A@I@@'abs_natI@?n@A@AB.@<@'of_uint.3@MS@A@3~@R@'sqrtrem3~I@7]%{@A@ACD,@@'bitwise,@/v@A@>4'@_@'testbit>4'V@8g$@A@Ad;@@*rev_appendd;@fh:@A@{U@j@,sqrtrem_step{Ua@8R@A@u^@`@(div_euclu^W@ @A@ABCu@@&Existsu@@A@UA@@&ForallUA@@A@#N@%@&In_ind#N@%@A@fz@@'to_uintfz~@9w@A@ABCDEFHIl@@'comparel@3R@A@A@:@&appendA4@ m@A@AL9@?@&caseS'L99@ x@A@W@F@'replaceWݑ@@ 4@A@AK@K@&eq_decK@?w@A@K~@Q@&eqb_eqK~@?w@A@MĚ@W@)nth_orderMĚQ@ O@A@ABCDs8@D@+of_uint_accs8;@5+@A@@e@3to_list_of_list_opp@<@A@A}@@,pos_div_eucl}@&`@A@3x@D@'compare3x;@]=@A@A`<@v@&t_rect`<p@ b@A@BCc`@{@&take_Oc`@3@A@@@&double@'޺_@A@A(@@'shiftin(@*I@A@q@@+of_succ_natq@$@A@Aw@@&modulowɑ@)1@A@K@@&of_intK@)j,I@A@K@@&of_natK@)j2_@A@ABCDEH@@'Exists2H@uF@A@I@@&shiftlI@*O@A@AO@@&shiftrO@*O@A@,@@&square,@*ow@A@AZ@ @&to_intZ@*81@A@`@@&to_nat`@*9G@A@A@@'Forall2@?j@A@e@@+testbit_nateđ@+@A@ABCD'@@+Forall2_ind'@ ~@A@"@@'to_list"ӑ@O*@A@+{@-@'sqrtrem+{ё$@,J@A@AB@@0shiftrepeat_last~@@A@5z@9@'testbit5z0@-T|@A@A @>@'to_uint ͑5@.@A@ @E@+succ_double <@.^4@A@A!lK@@)const_nth!lK@@A@BCDEFG!K@@+fold_right2!K@x @A@#@h@'compare#ݑ_@ )Q@A@A$@@8fold_left_right_assoc_eq$@3@A@%t2@t@(size_nat%t2k@ @A@A%9@y@+of_uint_acc%9p@ ΋@A@%V@@+double_mask%Vv@ S@A@%%@@'div2_up%%|@ "@A@ABCD%R@.@)take_idem%R@-W@A@'ş@@'Ndouble'ş@ @A@A(K|@:@*eqb_nat_eq(K|@w@A@BE(b0@@*shiftl_nat(b0@9-@A@(nՖ@@*shiftr_nat(nՖ@'@A@(@@0succ_double_mask(@@A@*W$@@,compare_cont*W$@!@A@ABC*@X@(cons_inj*@!@A@*A@^@(shiftout*AX@@A@.0@@.sub_mask_carry.0@΂@A@ABD.@Q@!t.H@ ;@A@.먩@X@#add.먩O@ `@A@A.U@]@#div.UT@ @A@.B@d@#eqb.B[@ @A@A. @i@#gcd. `@ @A@.=@o@#leb.=f@ @A@ABCEFH. @t@#lor. k@ @A@.Z@@#ltb.Zx@ @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/@@.to_little_uint/@ @A@CD/@@%ldiff/@ H@A@00@`@'compare00W@?H{@A@A1P%@@!t1P%@  @A@1P@@#abs1P@ @A@AB1P&@@#add1P&@ @A@1P@@#div1Pґ@ y@A@ACEF1P@@#eqb1P@ f@A@1P@ @#gcd1P@ 0@A@A1P@@#geb1P @ T@A@1P@@#gtb1Pʑ@ q@A@AB1Pĺ@@#leb1Pĺ@ a@A@1Pň@#@#lor1Pň@ /@A@AC1P@(@#ltb1Pב@ ~@A@1P@0@#max1P'@ @A@A1P{@5@#min1P{,@ "@A@1P]@;@#mul1P]2@ @A@AB1P@@@#odd1P7@ @A@1Pɣ@F@#one1Pɣ=@ J@A@ACD1P@K@#opp1PԑB@ {@A@1P1@S@#pow1P1J@ @A@A1P;@X@#rem1P;O@ @A@1P@^@#sgn1PˑU@ r@A@AB1P@c@#sub1PɑZ@ p@A@1Pe@i@#two1Pe`@  @A@ACE1[8@n@$div21[8ޑe@ @A@1[d@x@$even1[do@ I@A@A1[6@}@$ggcd1[6t@ i@A@1[U@@$iter1[Uz@ @A@AB1\@@$land1\@ /@A@1\@@$log21\@ 6@A@AC1\$@@$lxor1\$@ @A@1\Y@@$of_N1\YÑ@ >j@A@A1\@@$pred1\@ j@A@1\@@$quot1\֑@ }@A@AB1\@@$sqrt1\@ @A@1\w@@$succ1\w@ @A@AC1\k@@$to_N1\k@ @A@1]@@$zero1]@ eD@A@A2:@@%abs_N2:@ @A@21@@%ldiff21@ ߵ@A@2=*@@%quot22=*@ @A@ABC2kF@N@(size_nat2kFE@{@A@3s&@@*eq_nth_iff3s&@*@A@3@@(tail_add3@^q@A@ABDEF3@@(tail_mul3@^@A@5Z@g@*shiftl_nat5Z^@y/@A@5f}@m@*shiftr_nat5f}d@4@A@AB5a@@'iter_op5ay@ @A@C6w~@@'of_uint6w~ @^5@A@6W @2@)fold_left6W ,@*Za@A@8j@ @'of_uint8j@'"h@A@AB8V@=@.nth_order_last8V@/71@A@9E@@(div_eucl9Eđ@(*k@A@A:El@I@/rev_append_tail:ElC@.G@A@:x@@,Nsucc_double:x@ ʭ@A@ABCDGHI@@&divmod>@C@A@>@@&double>@NĴ@A@A>@@+shiftrepeat>@2Y@A@?2@@,pos_div_eucl?2@-u@A@A?;@@&modulo?;@"i@A@BCFGJKL@l%Arith#Coq@0I|кX*o4)ArithRing+setoid_ring#Coq@0ṔCgt?}*Arith_base%Arith#Coq@0Ĕ}CS&Basics'Program#Coq@0!bs߯? :VU'Between%Arith#Coq@06v*0ur`C0 &ZArith#Coq@0BpHޞun^)BinIntDef&ZArith#Coq@0ådR4Tuy'BinList+setoid_ring#Coq@0Au&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'Bvector$Bool#Coq@0,rO3^~*CMorphisms'Classes#Coq@0qیZBeϠ0CRelationClasses'Classes#Coq@0TL;0RUfw1+Compare_dec%Arith#Coq@0jXF 8@0.i bYN Z)Decidable%Logic#Coq@0ND걸풬/Oߠ'Decimal$Init#Coq@0C涳N*ua%EqNat%Arith#Coq@0AIgՋXRV *EqdepFacts%Logic#Coq@0FI$ͼՋ`)Eqdep_dec%Logic#Coq@0u wWIϰ߼*Equalities*Structures#Coq@0όe얟)H.Ƞ+Equivalence'Classes#Coq@07;ꮹ)Factorial%Arith#Coq@0@oehJd#Fin'Vectors#Coq@0r'gް؅/׸-GenericMinMax*Structures#Coq@0måj$"Gt%Arith#Coq@0䙛#c:D $Init'Classes#Coq@0](p{yOh.+InitialRing+setoid_ring#Coq@0k/T=cN"Le%Arith#Coq@0d}Omq+$List%Lists#Coq@0>I+ListTactics%Lists#Coq@0,Jcy{%Logic$Init#Coq@0\͉!Ig*Logic_Type$Init#Coq@0 1jc6"Lt%Arith#Coq@0KZ-eJkP܏#Max%Arith#Coq@04=;3$>aU堠#Min%Arith#Coq@0Ce-Fѕ%Minus%Arith#Coq@0LFtR")Morphisms'Classes#Coq@0Imӽ%\$PD.Morphisms_Prop'Classes#Coq@0% :B'.>u%$Mult%Arith#Coq@0햖Qyb0$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蠠$Nnat&NArith#Coq@0$W;s #%M)Notations$Init#Coq@0&v!D]hwnv *NumPrelude'Numbers#Coq@05WUVŦ]xVXԠ%Omega%omega#Coq@0t.J'6\ϨrK+OmegaLemmas%omega#Coq@0TJ#Jes4Operators_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)Peano_dec%Arith#Coq@0Kݢ*k$Plus%Arith#Coq@04tmG$Pnat&PArith#Coq@0,?pr.gZ(PreOmega%omega#Coq@0\|چBb~w4'Prelude$Init#Coq@0JqTttֱ%Quote%quote#Coq@0J@ŹVz-,3%/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'Sumbool$Bool#Coq@0sB ,$11.]m'Tactics$Init#Coq@0/9m+ a'Tactics'Program#Coq@033 ٠(VectorEq'Vectors#Coq@0#'`ԶlxjT*VectorSpec'Vectors#Coq@0GyK5%l6L"Wf$Init#Coq@0q+W,J+$Wf_Z&ZArith#Coq@0`&i2 Q@@@@"_9@A@A@@@@@@@@#_102M접 @ AAA@A#_11'`o@@AA*bool_scope@@2 Q@@A@#_12)@(?@A@@@@@@@@#_132M접7@(?AA@A#_14'`o@@@(?B)nat_scope@@Π@i2 Q@@A@#_15W@trD@A@@@@@@@@#_162M접e@rDAA@A#_17'`o@n@rDB.@@@2 Q@@@@#_18@!@A@@@@@@@@#_192M접@!AA@A#_20'`o@@!A'Z_scope@@U2 Q@@A@#_21@`+@A@@@@@@@@#_222M접@n+#_23'`o@@x+A+@@`2 Q@@A@#_24@k7HP@A@@@@@@@@#_252M접@y7HPAA@A#_26'`o@@7HPBV@}@H2 Q@@A@#_27@S4C@A@@@@@@@@#_282M접@a4CAA@A#_29'`o@@j4CBݠ@@@2 Q@@A@#_304@K3,S@A@@@@@@@@#_312M접B@Y3,S#_32'`o@L@c3,SC 8@@۠I@Q2 Q@@A@#_33g@\/@A@@@@@@@@#_342M접u@j/ΐ#_35'`o@@t/D?k@@~n{@b2 Q@@A@#_39@m em@A@@@@@@@@#_402M접@{ em#_41'`o@@ emBw@@D?@2 Q@@A@#_42@$ZJ@A@@@@@@@@#_432M접@$ZJ#_44'`o@@$ZJC@@to@2 Q@@A@#_45@a@A@@@@@@@@#_462M접@a#_47'`o@@aCؠ@@2 Q@@A@#_484@E@A@@@@@@@@#_492M접B@E#_50'`o@L@EB @ڠ5@Ơ2 Q@@A@#_51c@X@A@@@@@@@@#_522M접q@X#_53'`o@{@XB@@`m@ޠ2 Q@@A@#_54@ @A@@@@@@@@#_552M접@ ِ#_56'`o@@ B@@@2 Q@@A@#_57@ @A@@@@@@@@#_582M접@쐐#_59'`o@@!D<@@@jϠ%@2 Q@@A@#_60@@A@@@@@@@@#_612M접@*ސ#_62'`o@@4BΠu@@-2 Q@@A@#_63%@8# LP@A@@@@@@@@#_642M접3@F# LP#_65'`o@=@P# LPB@@"O@E2 Q@@A@#_66S@P;ۗ@A@@@@@@@@#_672M접a@^;ۗ#_68'`o@k@h;ۗBР@@Pg@_2 Q@@A@#_69@j7@A@@@@@@@@#_702M접@x7#_71'`o@@7CY@@(@|2 Q@@A@#_72@&4C@A@@@@@@@@#_732M접@&4C#_74'`o@@&4CC3@@[@2 Q@@A@#_75@#t@A@@@@@@@@#_762M접@#t#_77'`o@@#tB@@@2 Q@@A@#_78@"@A@@@@@@@@#_792M접#@"#_80'`o@-@"C@@-@٠2 Q@@A@#_81H@$@A@@@@@@@@#_822M접V@$#_83'`o@`@$D Ǡ@@@𠐒KX@2 Q@@A@#_84@"jR@A@@@@@@@@#_852M접@"jR#_86'`o@@"jRDW@@@'@@@P3/ܯ@q:)A/ެ>܄@"|%Ӏ@:UJ RP[ Zm>=L!z'BinNums'Numbers#Coq@@!Z7@ @@AA@AA@@@@@@D%Logic$Init@"eq @#A&BinInt&ZArith%#@#add1P&)BinIntDef)@ ̀@#mul1P] @ @BE@(positive*@BC'Zdigits*@%Zmod2!ƀ6 @)bit_valueA<@#odd1P6@ DTAnoAC[sO?9(  !p:=@AA@AA@@@@@@@D uO6j!ys!q ,-"y'`]I#CM&-+)Datatypes@$boolZ'@86 A<:BA?VAoC-rQOf3C57|oکCŰqCɰTZnljqoذN͠cr`Ұ_xU&BinPos&PArith#Pos@=?C`wA|Aȷ!a!v$IHbvy!;@@OOCTR1J5WIC:$F@CA)&/.;JCK 7u&sgxv9U$ X?z[C\FhbCc"  MZiC j"UCƠݠB^,^wذǐ:!CéԐ[ C ZG$"f V|v@/two_compl_valuerD}860%2'ҩ0ϩ@.Z_to_two_compl4Cթ.۩ à۷԰ʠ%=ϰQ"eFg$A,M+we6859Eڠ"*_?=<&2gGED  PRFScH} [ ΠQd~C*k {  ʵ3@(eq_ind_r!2#ө<Gsw  "ECCʐ+ЩEZy@0succ_pred_double=, CbWUXHBzCqg©WQ &Ʃàx}8)'=ԩ.,B٩ŰؠLҰ\@$div21[8@ mʶ@ͩvqn[YV][@Űݩ'ðki*},tr(VT{yȩƠ٠͠ǩG    @BB:밷 @J10)zZQ"H0JC=C@[iO*c*ސ423jȷV}&Zpower@-two_power_nat2Ȑ"H1$GPKIhu+Ȑ!s%Zeven,@-Zeven_odd_dec;ѕP&SpecifD@'sumbool7̂K@@`@$Zodd,aՀfBAAAA@@@@@D*ICZI`%Heven f`iSg<@*Zeven_div251쀠kq$HoddVrwéڰkeK@,lt_decidablè "H2Ր砩}wHb@&ex_ind 5{/éJǷ%Zvar0ɷ ̷;ͩϩKշ%Zvar1׷&Omega1 !P@ߔA©N.!x@͠Ϡ驚@#opp1P@ {+OmegaLemmas%omega@7fast_Zopp_eq_mult_neg_1=ҀM @ 頩U@/fast_Zplus_comm111@3!$@1fast_Zred_factor0#<(@>F#<0&Omega4GƩ`.`^<@PYE@0H$OV)ouPS@/fast_Zmult_comm|kW@BZ6g:=ad@4fast_Zopp_plus_distrpe1+~j@UmI%Lps@6fast_Zopp_mult_distr_r0A<8w@bzV2X[W_@madcSb&Omega3xl\p`)xBQazߐQF@7ǩp֐c^q@ƠEٷo}䠷@֠Umpɩ̰˶@` ѩ@1fast_Zred_factor6)D&Omega2o u@,fast_OMEGA15M$Ơʠk֩@1fast_Zred_factor5(ՠŠ#ᩚ@,fast_OMEGA12J}*詚@8fast_Zplus_assoc_reverse 'ՠ3"@$ݠ^ߠ=&Omega6/.4$@,fast_OMEGA13KpU3@,fast_OMEGA14L /<6C@=C@>A@&OMEGA2.$D  !$!)P@&OMEGA6.$HЩ/Km3#mA@(Zge_lefts,& K@*Zegal_left;6tH82Wk:L|@'new_var&/wSF Ɛ+@*Znot_lt_ge>πk>@)Zodd_div2_Y^_@/two_power_nat_S*Cjd఩ĠZnҐ/wة")9÷%Zvar2ŷζ@cɩiةηڶ@o ੷H-@{ŠǠȷ@Ѡ 0@٠ݠ͠|z 0. XY&@("N?=ߩs5!@7o_'*N=)@?w /ַE1@GƩ 7f`.O;@QЩ hCjXש!o% P@,fast_OMEGA11IG/(I{jV@X4$թ8R;7T"uaKc ?/ 1]+FkG#IcYqM=QAm&;e}%YI]M*ya@{IgWk[oUWSCE^Cx@"gt1P,aCSC +auxiliary_1+auxiliary_2'ȠGo}S1wWyC@C@˩u{u@/Zmult_le_approx"8=#@&OMEGA1.$C][x3а0|zz?}TqyJאge \-KL.    @ AC@ @7  ^w !@}#e  *i ː@ .ʐȷ1   7v C@ $ <]η@ , D%D "ȷG6 6 N/d /ԷSVM& E ]> (5(Z-,^(Q R F %SU      P @ ><:7   3`2 @  ! . G  ( > *@  - : b 3   ȷK 7@ " :   =  S ?@ * B ͩ  #Q  H'v^ J@ 5 M ) , +   T$ > V 2 "  6 & "  Eu a@w  @^q{i , k@  Jh{s 6 u@  Tr{  }@  \z _b  @  d g% @ " l o ' q a"  u4 -T  d }g`G @ 8    ] @Ơ E  ٷn  ~  kᠷ @Ӡ R   l  ǩʰ ɶ@ߠ ^   ϩ   g $    m G o    ǩ  ^  w ɩ" y  @ ~ Ƞ ǩ  k  &Omega5   Ӡ ک " ؠ       ݠ> ߠ Ϡ   R /   ˷     蠩 ؠ ڠ 8     7      栩 $  +  $#      T   =E ĩ     w b   QY ة " $  r ީ,e *  , F 62  H 8CC 4  6/  9 !  # <    > @ 0 * 6 E  Щ F H b 2 TUY} > 8 T D > - Ʃ 0] ` 4@/Zeven_bit_value# LP η @  m w  ө k Oϰ     @   0\ 9X k m @   8S AO} {B w u @   B= K @     r  Uķ  Ʃ p n  \l}  d_  \a  KV]PoJKD<7ݰ,&!  ŷ $   P ȩ   V Ω  e  Щ)       Ϡ Ѡ2 ة       ٠: ۠ ' ީL )  ) ŷ       +  2    6     <% -   B{vuxsS  L   L  ΐN   S  q թ #  sʰ^  Y|Ab @.Zodd_bit_value;ۗ ~ @+Zmod2_twice+     G E G J H@ h  i޷@@ q I{ syv 3 W Z  ] [@u@ | l ~jgBf      n  o Y q " O s s  v  w a y@ W { { ~ǩ5 X E ^f e3 F y[$ P } JJh @ v  j m " a {  o= q a   + +  z S   c |  @  6 ө X k  @  ?   : @ Ƞ G         H 4 ՠ T   -}   o ˶@  `  ې ө    7  ٶ@  n  ߩ շ @  v   ư @  ~ Ƞ   @   Р     ՠ$  # ٠  %  ݠ ͠ +   -  Ӡ  1 !   % "ztonql*j`^ 8   ͩWU^ S  ːKF  j ΩЩ ? / R  pѰcԩ yo ݐB? h 9q < b {۷کة E F F ^ة I Ju Jsԩϰ  DN w H 3j V@ A Y 5 8  \, F ^ : < V ɰĩ ( jWNs fQ J$ l  \ V` $  r bz tus   _ a  h< ~7  L  u  i5 k  nE j   % U  ~  3 -  tP v    z- 2    ' 8  <  >    x H z   ^ ^ ٩ w 6   eq /    . , #    2 0 '   '     d +    ( = ; 2     ש   Щ     ݩ ǰ ة    L 9   '  A    ,  .  L հ     K   R ۰       b ԩ  e" @.Z_to_binary_Sn/΀ D   @0binary_value_pos em  Q t&Vector b@ VxYe W@B y @/binary_value_Sn3,S ]       { v u u    k  x ? M j a l @ n    j    \b [  o  N   Р  S    Ԡ W          $   H$   CmQO9 H z ~0 k     . } L   q8 R  R  H W=   [ z  Y   ^O ^  - F  J d  d  f 6   k,%@1Z_to_two_compl_Sna pX/  t.@2two_compl_value_Sn$ZJ ya Ha  署 @'nat_indJ  @ Ƕ@  X~    O ݵ  ӷ ~ f ܰ5 穚@,eq_decidableO<  h Ӑ  @ ƠE ۩ ɠH  L @ ӠR ©U ٠X} ɶ@@#Zne>o=d өfն@   ط l ک߰qʰ@,fast_OMEGA16N  {  Ǡװ ݰ Ӡo$ : %%+  <ݠ/ :  @'OMEGA17 PЩ6 퐩 @&OMEGA8.$J @ © @(Zne_left0߀  e  II gȰ  iC(&@ ]@ G 쐩@(nat_rectb@    7   ^   C><@ s@ ] q   #IHnHF F } ( g  C  z e| u t w  m  =U  04 L Y5%  b`Jb? W dgeOgC  b  a@,Z_div2_valueX $ h#%@%Pdiv2 ـ ,+@3Zdiv2_two_power_nat  E^ ̠ { 6s 8   ͩ:@0Z_to_binary_Sn_zE  m    @ Πw @  ڠ   X 浵      f 氩@"or @  I @&dec_or<    ķ ~  @#andЖw@  ũ  g@'and_ind14ۀЩ Ȱԩ ̰ v 巐'H1_left (H1_right ְ    @    i Ӡ  D?   %     @:   /=1  H "@E  )H@&or_ind" 0G 6 ' "N   > Dé ) Jɩ. ; 60 &Omega7 Tө7C ?C0  7  MC K S@,fast_OMEGA10H( |JJ|| : d 4 OQ >'Omega10 r kC X cC V dC  y e  h@&OMEGA7.$I G7 cK; gP7 'ii Y&Omega8  Vp|94~;6893( xx h  b } l&Omega9  C  C  C   :. p)(r'u\ o@@ @'OMEGA19 PlcS   6p !e`gbde_( n)   p~    ̩ C   C   C   fZ  i o= ill, Z o    q t  @¬_orf+ °ک@(eq_rec_r!%0 I LJ!h; Ʃ݀@A D  > ©Z M@$Bnil%K M)  V _% i   .E8 # +I [3  ? *2PC @D @ P  @\C@P '޶@ $""Y 0    !BYW UTr &1 l' 4e s`۩ <ة s{*BY9; o  KL6N ).R Rj UV V  YZD\ 9] ] .ⰷ ua@Ld@  qD   n 1d p@[sO  SV z  {  2~ B[%  ' @nb  f %i {  e @zn  & 4 m `  o @x 'z}  ;4 3f @ 3>  ۷ @ H ! @'P 3k 0W    ~oql   ϶@2j٩     1  ߶@ /@x  @ Ƞ H  y @(РҠ A  ֠  ?( ܰ  @6ޠ | 4  @>    4CT z 0$  ; ש :  CI +   IO @  nK KQ 3 pQW H SY ;.[,(Щ   z[ϩ    װ kƩ琩 q  ː v ͐qgB@9Zge_minus_two_power_nat_S7{@3Zlt_two_power_nat_S&4C944٩@3Z_to_two_compl_Sn_zހD7+f #hw