"`&J&.`ʰ%MSets#Coq@(OrdersEx*Structures#Coq@)OrdersAlt*Structures#Coq@)MSetFacts%MSets#Coq@*MSetDecide%MSets#Coq@.MSetProperties%MSets#Coq@0MSetEqProperties%MSets#Coq@,MSetWeakList%MSets#Coq@$Bool#Coq@-MSetInterface%MSets#Coq@+OrdersFacts*Structures#Coq@-RelationPairs'Classes#Coq@$List%Lists#Coq@&Sorted'Sorting#Coq@&Basics'Program#Coq@*SetoidList%Lists#Coq@2Relation_Operators)Relations#Coq@4Operators_Properties)Relations#Coq@)Relations#Coq@)Morphisms'Classes#Coq@4Relation_Definitions)Relations#Coq@-SetoidTactics'Classes#Coq@&Setoid'Setoids#Coq@$Init'Classes#Coq@/RelationClasses'Classes#Coq@*Equalities*Structures#Coq@&Orders*Structures#Coq@/EqualitiesFacts*Structures#Coq@+OrdersLists*Structures#Coq@(MSetList%MSets#Coq@,MSetPositive%MSets#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@'MSetAVL%MSets#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̂"&/r'Prelude$Init#Coq@0JqTttֱ4Relation_Definitions)Relations#Coq@0]4Ѐd{n^2Relation_Operators)Relations#Coq@0%s鯰s4Operators_Properties)Relations#Coq@0U3y#h&)Relations#Coq@0u%+Equivalence'Classes#Coq@07;ꮹ-SetoidTactics'Classes#Coq@0S_`nOU$&Setoid'Setoids#Coq@0D9AsWE!>$Bool#Coq@0j 2cZ`FW*Equalities*Structures#Coq@0όe얟)H.Ƞ&Orders*Structures#Coq@0$Znl0\͗*NumPrelude'Numbers#Coq@05WUVŦ]xVXԠ)OrdersTac*Structures#Coq@05'4Ԗ+9%+OrdersFacts*Structures#Coq@05Mܿ獐ζΖLB-GenericMinMax*Structures#Coq@0måj$(NZAxioms&NatInt'Numbers#Coq@0] ρ5r&NZBase&NatInt'Numbers#Coq@0^&8yUL%NZAdd&NatInt'Numbers#Coq@00h`ZK4%NZMul&NatInt'Numbers#Coq@0ctR~6[Ƞ)Decidable%Logic#Coq@0ND걸풬/Oߠ'NZOrder&NatInt'Numbers#Coq@0 q;Ve7R W,*NZAddOrder&NatInt'Numbers#Coq@0e~1>r砠*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@0KI+Relations_1$Sets#Coq@0k<⪚(тc1&Sorted'Sorting#Coq@0bb1z٠*SetoidList%Lists#Coq@0k窪ܸqS-RelationPairs'Classes#Coq@0CjN/EqualitiesFacts*Structures#Coq@0)n,:5-|!N@Ƞ]0'4|a|{s9e@]D+OrderedType*Structures#Coq@0#73t1E iWc0S-DecidableType*Structures#Coq@0kO!Z7+$Mult%Arith#Coq@0햖Qyb0(Zcompare&ZArith#Coq@0'ҤjI=D'Between%Arith#Coq@06v*0ur`C0)Peano_dec%Arith#Coq@0Kݢ*k+Compare_dec%Arith#Coq@0jXF 8)Factorial%Arith#Coq@0@oehJd%EqNat%Arith#Coq@0AIgՋXRV &Wf_nat%Arith#Coq@0UJX AJhO*Arith_base%Arith#Coq@0Ĕ}CS&Zorder&ZArith#Coq@0fVk.BG)%Zeven&ZArith#Coq@0i?eK#aU堠#Min%Arith#Coq@0Ce-Fѕ(PreOmega%omega#Coq@0\|چBb~w4%Omega%omega#Coq@0t.J'6\ϨrK,Zcomplements&ZArith#Coq@03 ٠*VectorSpec'Vectors#Coq@0GyK5%l6L(VectorEq'Vectors#Coq@0#'`ԶlxjT&Vector'Vectors#Coq@0_ċ|"Ʌhz'Bvector$Bool#Coq@0,rO3^~'Ndigits&NArith#Coq@040ss|BEo_vWLH0 agB;XRs:ߠ+OrdersLists*Structures#Coq@0 X@u#ɠ0C!̢2X<l ~N%Zerob$Bool#Coq@0f(j-6^B0j6B=8 0BǡVCLBLz-0zD1<.aPZ*0[.ou&/'x*Extraction*extraction#Coq@0DJS.~Xt=堠&FunInd&funind#Coq@0I#A0+MSetGenTree%MSets#Coq@0+`pH5 B#Int&ZArith#Coq@0Phg]IO٠0Z:X uxQjRyXsР%MSets#Coq@A@@@8!@8!U-RelationPairs'Classes#Coq@@A@A9!@9!àV @A@@#|@@#|] @A@A#@A#^@A@ABC ӳ2@ ӳ2[)Datatypes$Init#Coq@@A@ Գq@ Գq\ @A@AD@cA,Ring_polynom+setoid_ring#Coq@A.0TQ+Ring_theory+setoid_ring#Coq@@ABA.U>[J @2A8ӠA4Relation_Definitions)Relations#Coq@@AB7A @5A @AC@,MSetPositive%MSets#Coq@+PositiveSet!E(OrdersEx*Structures#Coq@7PositiveOrderedTypeBits@A 'N_as_DT0Private_OrderTac'IsTotal&BinNat&NArith#Coq@!N  @B'N_as_OT@!)Nat_as_DT0Private_OrderTac'IsTotal(PeanoNat%Arith#Coq@#Nat  @AC2)Nat_as_OT@8'Z_as_DT0Private_OrderTac'IsTotal&BinInt&ZArith#Coq@!Z  @AI'Z_as_OT@+Private_Div&NZQuot@ABD @/DecidableTypeEx*Structures#Coq@'N_as_DT-OrderedTypeEx*Structures#Coq@'N_as_OT@A^X@BMX@)Nat_as_DT)Nat_as_OT@AOI@B>I@.Positive_as_DT.Positive_as_OT@Aw.Positive_as_DT&BinPos&PArith#Coq@#Pos@B,POrderedType&PArith#Coq@.Positive_as_DT&BinPos&PArith#Coq@#Pos@.Positive_as_OT@ACDEF.Positive_as_OT@f1Private_BootStrapb@AX@+Private_Dec@AB@+Private_Dec@Az@8+Private_Dec8@A0+Private_Dec)@!@ABCD -@+Private_Dec@Aw@Bsp@pr@A-Private_NZDiv@BC@-Private_NZDiv@A@B-Private_NZDiv@@A-Private_NZPow@BCDEG@-Private_NZPow@A@B.Private_NZSqrt@@A.Private_NZSqrt@BC@@A@B@@A@BCD@.Private_Parity@A@B+Private_Tac@@A+Private_Tac@@+Private_Tac@ABCD+Private_Tac@}  @A| @+Private_Tac@AB@(Quot2Div@A@#Tac@ABC @ #Tac@A@#Tac@AB@&Vector'Vectors#Coq@/VectorNotations)VectorDef'Vectors#Coq@ @'Z_as_DT'Z_as_OT@AB@@ACDEFGH@J@&@+tail_addmulJ#Nat$Init#Coq@@ F2e@A@A"O@(PeanoNat%Arith#Coq@#Nat@&of_int"O#Nat$Init#Coq@@ 6@A@B\@&BinInt&ZArith#Coq@!Z@'quotrem\)BinIntDef&ZArith#Coq@!Z@ /@A@\@@+pred_double\@/S@@A@E@|@'compareE)BinNatDef&NArith#Coq@!N@ ?H{@A@ABs2@B@&shiftls29@vY@A@CDs8@G@&shiftrs8>@vY@A@ѓ@O@&squareѓF@y@A@A@T@&to_intϑK@@A@z@E@&doublez<@/!@A@ABC@@&divmodCk@C@A@O@@&doubleOۑr@NĴ@A@AV@@(size_natV7@{@A@@@(nth_map2*VectorSpec'Vectors#Coq@@ 8"@A@@@*fold_left2@6U@A@ABj@@%j$@A@"W@@*fold_right"W@6N@A@A J@@( J'@A@([@@'([&@A@ABCDEF/@@)log2_iter/@wd@A@NH/@@&moduloNH/@1,@A@A\d@@&of_int\d@1?A @A@bz@@&of_natbz@1?G!@A@@@&modulo@"i@A@@@&of_intő@6@A@ABCD`@@0double_pred_mask`ϑ)BinPosDef&PArith#Coq@#Pos@ 0-+m@A@#@@&shiftl#@1dV@A@#@@&shiftr#@1d\@A@ABE/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@s:@=@\s:[@A@w?@R@&shiftlw?@vY@A@w?@X@&shiftrw?!@vY@A@ABC@@F@(sub_mask@=@)@A@^@d@&square^-@y@A@Ab@@'iter_opb)BinPosDef&PArith#Coq@#Pos@  @A@@y@&to_intꭑB@@A@AO4@m@O4@A@P@l@'of_uintP)BinIntDef&ZArith#Coq@!Z@ '"h@A@A>@@>@A@BCDEFGH c@Q@'testbit cH@!ć@A@7 B@@'of_uint7 B@*`]?@A@AE)@@*shiftl_natE)-@y/@A@Hr@@XHrW@A@ABHr@@UHrT@A@Q@@*shiftr_natQ:@4@A@AC[b@@R[bQ@A@g@F@QgёP@A@{@@E{D@A@@@?>@A@ABCDG@@)mask_rectG@+ED@A@\@@)log2_iter\@wd@A@AИ@@/И.@A@"X@@(div_eucl"XT@(*k@A@"@@,"+@A@ABCF˱@@)add_carryF˱@+p@A@Jj@@+pred_doubleJj@25\@A@K5@@*Forall_indK5@9M@A@X@@/shiftrepeat_nthX=@;\@A@ABCD^Ҷ@@'to_uint^Ҷ@#m@A@gL7@@'sqrtremgL7@40@A@Av@-PositiveOrder"TO@'comparevd@@,compare_cont$ W#Pos@!)Datatypes$Init@*comparison;f@A@A@B.@@÷.̑-@2j@A@@ @cb@A@E@ @^EǑ]@A@AB-@@R-Q@A@%a@<@)sqrt_iter%a@!$:@A@ACDEFpb;@@pb;@A@q@@'testbitq@5)@A@AlA@M@'testbitlA@!ć@A@@B@Б@A@@A@-replace_order;@:k@A@2s@G@,shiftin_last2s@=Nn@A@ABCD6k @@&of_int6k e@4}5@A@6q @@&of_nat6q k@4};@A@>@ @(mask_ind>q@4@A@ABE>@@(mask_rec>v@4@A@t@@&pred_Nt@4s)@A@AxYe@l@!txYef@;z@A@x^@r@"Inx^ʑl@;z!@A@ABxa @w@"hdxa q@;zd@A@xa@}@"tlxaw@;zP@A@ACx#@@#eqbx#(VectorEq'Vectors#Coq@@ /@A@x[@@#etax[@> .@A@AxI@@#mapxI@;{&@A@x@@#nthx@;{)j@A@ABy@@#revy@;{-@A@G8@@$castG8&@/Y@A@A8[@@$last8[@;d@A@R@@$map2R@;@A@ @@$take @;:c@A@AB@@@A@CDEFҎU@w@&shiftlҎU@5X@A@Ҏ[@~@&shiftrҎ[@5X@A@ݎO@@+succ_doubleݎO@6r@A@AB8@@&square8@5,x@A@R@@'pos_subRo@+ie@A@A9@@&to_int9@5L@A@B@@@&to_nat@@5L @A@@@'pow_pos@+q @A@Ay@@y@A@BCDGHIJ@@@A@ @@ @A@A@@@A@@@'to_uint@#m@A@ABE@@E@A@HI@@%case0HI @@A@ADE @y@$even p@>4@A@ @@$ggcd Бz@>U@A@A @@$iter @>:@A@ 3"@@$land 3"@>m@A@AB F)@@$log2 F)@>t@A@ S@@$lxor S@>@A@AC @@$pred @?U@A@ @@$size ܑ@?'@A@A !@@$sqrt !@?@A@ ! @@$succ ! @?\@A@ !7@@$zero !7@@P@A@ABCD "?@@ "?@A@ ~]w@7@,pos_div_eucl ~]w@-u@A@A L@@X LW@A@ *@@%ldiff *@@A@AB @@'testbit _@8g$@A@ 2*@ @!t 2*@#EE@A@A 2@@#add 2@#Fj@A@ 2X@@#eqb 2X@#F@A@ABCEFG 2"@@#gcd 2" @#F@A@ 2S@'@#leb 2S@#F@A@A 2!@,@#lor 2!@#F@A@ 2p@2@#ltb 2p@#F@A@AB 2ˆ@7@#max 2ˆ$@#F1@A@ 2@>@#min 2+@#F@A@A 2@C@#mul 20@#F@A@ 2@I@#pow 2ʑ6@#Fu@A@ABC 2b@N@#sub 2b;@#F @A@ =>w@W@$div2 =>wD@#Q"@A@A =H@\@$gcdn =HI@#QX@A@ =@b@$ggcd =ϑO@#Q^z@A@AB =@g@$iter =T@#Q@A@ > !@n@$land > ![@#Q@A@A >$R@s@$mask >$R`@#Q@A@ >)@y@$lxor >)f@#Q\@A@ABC >@~@$pred >k@#R_F@A@ >@@$size >ۑr@#R@A@A >ۚ@@$sqrt >ۚw@#RE@A@ >@@$succ >~@#R@A@A N@@.to_little_uint N@#b@A@ O@@ O@A@A g@@,sqrtrem_step g@8R@A@ @@'quotrem y@/@A@ABCDEF `@@,compare_spec `@*YJ@A@ (@@+pred_double (@/S@@A@A @@ @A@ O@@,take_prf_irr Ob@*@A@A ^ @@ ^ @A@BC .@@ .@A@ @@ Ǒ@A@AD @@ @A@ @@ ‘@A@A @@ @A@ @@ ߑ@A@AB @@ @A@ @@ @A@A e@@ e@A@ 9@@ 9@A@ABCE @@ ё@A@ W@@%ggcdn W@$*@A@A q@@ q@A@ @@ @A@AB >@@ >@A@ ]@@ ]@A@A <@@ <@A@ W@@ W@A@ABC ] @@ ] @A@  @@  @A@A J@@ J@A@  @@  @A@A @@ @A@ @%@%ldiff @$'R@A@ @ @ @A@ABCDEF 86#@@ 86#@A@ G@s@&double G@/!@A@A g_@x@+pred_double g_o@25\@A@ q@@(take_app q@lm@A@A r@:@'to_uint rّ@9w@A@ y!@y@ y!@A@ \@}@ \@A@ABCD m@@÷ m@2j@A@ @@+Exists2_ind Ñ@ @A@A ۊ@B@j ۊi@A@B 4@E@> 4=@A@ }@@3 }2@A@AC D!H@J@% D!H$@A@ @@&modulo ÑC@1,@A@A (@@&of_int (H@1?A @A@ /@@&of_nat /N@1?G!@A@ k@@'nth_map k"@wF@A@ABCS@@&of_intS㫑@4}5@A@S@@&of_natS@4};@A@ADEFGHIK\R@@(mask_ind\R@4@A@\^@@(mask_rec\^@4@A@AkH2@@1kH20@A@oLC@@&shiftloLCx@1dV@A@ABoLI@@&shiftroLI}@1d\@A@ũ@@*Exists_indũ@@A@Al&@@&squarel&@19@A@Ǜ@@'of_listǛ@@A@ABC!,@@&pred_N!,@4s)@A@@@&to_int@2@A@A@ @&to_nat@2 @A@@@&to_posё@2@A@\g@@e\gd@A@b}@ @cb}b@A@ABCD@ @&shiftl@5X@A@@'@&shiftr@5X@A@A&@,@&square&ّ#@5,x@A@BEF"@1@&to_int"(@5L@A@"@;@&to_nat"2@5L @A@A@@/@\@[@A@@@3@[@Z@A@ABS@6@RSQ@A@s+O@:@Cs+OB@A@s1e@>@Bs1eA@A@s5@@B@@s5@?@A@ABCDnTq@V@+testbit_natnTqM@6n@A@B@@(succ_posB@@A@@d@'sqrtremˑ@40@A@AI@(@'abs_natI@?n@A@BC.@@'of_uint.@MS@A@3~@u@'sqrtrem3~l@7]%{@A@AD@@;@)pred_maskD@(@)X@A@L:@p@L:@A@AU@E@(sub_maskU2@)@A@yt@@'testbityt@5)@A@*@3@*@A@ABCDEF,@g@'bitwise,^@/v@A@>4'@@'testbit>4'@8g$@A@AL@b@'of_uintLO@*`]?@A@d;@@*rev_appendd;@fh:@A@Ak@P@)kđ(@A@BC{U@@,sqrtrem_step{U@8R@A@@@.-@A@Au^@E@(div_euclu^<@ @A@u@@&Existsu@@A@UA@@&ForallUA@@A@ABCq@@)mask_rectqz@+ED@A@@v@21@A@#N@@&In_ind#N@%@A@AB)Z@@+succ_double)Zp@6r@A@\J@@)add_carry\J@+p@A@Ay@@+lt_strordery@2@A@BCDEfz@@'to_uintfz@9w@A@@@*)@A@AO@@+of_succ_natO@$@A@R@@#R"@A@-}r@@ -}r@A@ABC,@@ , @A@[@"@'bitwise[ˑ@/v@A@:@@:@A@ABl@@'comparel@3R@A@A@@&appendA@ m@A@AL9@!@&caseS'L9@ x@A@W@(@'replaceWݑ"@ 4@A@AK@-@&eq_decK@?w@A@K~@3@&eqb_eqK~@?w@A@MĚ@9@)nth_orderMĚ3@ O@A@ABCDEFGHIs8@@+of_uint_accs8@5+@A@@K@3to_list_of_list_opp@<@A@A}@@,pos_div_eucl}@&`@A@W@@0double_pred_maskW‘@0-+m@A@AB3x@@'compare3x@]=@A@7@w@'compare7@@3R@A@AC1@@1@A@bA@@!tbA @2@A@Af@@#addf@3 @A@@@#div@3@A@AB@@#eqb@3@A@@@#gcdɑ!@3n@A@ACD@@#leb&@3@A@@@#lorȑ/@3m@A@A@@#ltb4@3@A@-@@#max-:@3@A@AB@@#min?@3`@A@@@#mulE@3B@A@AC$@@#odd$J@3@A@@@#oneR@3@A@Aq@@#powqW@3@A@ @@#sub ]@3@A@AB@@#twob@3J@A@ v@@$div2 vh@>@A@ACDE 7@@$even 7m@>4@A@ v@ @$ggcd vv@>U@A@A @ @$iter {@>:@A@ @@ @$land @ȑ@>m@A@AB S@ @$log2 Sϑ@>t@A@ aX@ @$lxor aX@>@A@AC B@ @$pred B@?U@A@ @ &@$size @?'@A@A A@ +@$sqrt A@?@A@ @ 1@$succ @?\@A@AB @ 6@$zero ݑ@@P@A@Xkf@ @Xkf@A@`<@@&t_rect`<@ b@A@c`@@&take_Oc`{@3@A@ABCDEF@@&double@'޺_@A@Е@ E@Е@A@A%@ H@%Ց@A@B*@ K@*@A@,n@ P@,n@A@A.8@ S@.8@A@BC5i@ V@5i@A@67@ \@67@A@A6@ _@6@A@B6@ b@6@A@7*@ g@7*@A@A8 @ j@8 @A@BCD9@ m@9@A@:R@ u@:R@A@A;@ x@;@A@B@x@ {@@x@A@B@ @B@A@A۩@ @۩@A@BCզ@ @զ@A@@ @@A@A>@ @>@A@Bt7@ @t7@A@܇>@ @܇>@A@Aܔ@ @ܔǑ@A@BCD@ @@A@;@ @;@A@AF@ @F@A@BK&@ @K&@A@L@ @L@A@A8N@ @%ldiff8N6@@A@(@@'shiftin(@*I@A@ABC,r@ @+of_uint_acc,r@5+@A@}a@ i@+pred_double}aV@25\@A@k@ @k@A@%@ s@÷%`@2j@A@ABCq@@+of_succ_natq@$@A@@ @@A@Aw@K@&modulowɑB@)1@A@BDEFGK@P@&of_intKG@)j,I@A@K@Y@&of_natKP@)j2_@A@AN @ w@,N +@A@H@@'Exists2H@uF@A@AY.@ @,Y.+@A@BCI@k@&shiftlIb@*O@A@O@s@&shiftrOj@*O@A@A,@x@&square,o@*ow@A@@ @'abs_natݑ@?n@A@ABZ@@&to_intZz@*81@A@`@@&to_nat`@*9G@A@Aia@ @&of_intia@4}5@A@ih@ @&of_natih@4};@A@ABq@ @(mask_indq@4@A@q @ @(mask_recq @4@A@~@ @&pred_N~@4s)@A@L@ @/L.@A@ABCDEF<@ @'compare<@@ )Q@A@H@ @&shiftlH@5X@A@AN@ @&shiftrN@5X@A@@ =@'Forall2 7@?j@A@A+@ @&square+@5,x@A@BCc@YW@'le_lteqc @;@A@80@ @&to_int80@5L@A@AD86@ @&to_nat86@5L @A@:l@ @S:lR@A@A:@ @P:O@A@Cu@ @PCuO@A@Cz@ @NCzM@A@ABe@@+testbit_nateđ@+@A@x@ @QxP@A@ACDE@ @KJ@A@'@ z@+Forall2_ind' t@ ~@A@Aָ@ !@NָM@A@Bָ@ $@LָK@A@Cؚ@ '@CؚB@A@"@ @'to_list"ӑ @O*@A@A dT@ 2@B dTA@A@ jj@ 6@A jj@@A@AB+{@ @'sqrtrem+{ё@,J@A@VR@ R@(size_natVR@ @A@@ c@+testbit_natÑP@6n@A@ABCD[@ ]@+of_uint_acc[@ ΋@A@F'@@!tF'J'BinNums'Numbers@(positive*@@A@AM@@"eqM^%Logic@"eq @@A@N@@"leNh!x&!y)@#notШ߀@'compare@ )QڀBAC@A@ABN+@ @"ltN+h$H"I8B@A@ @ @+double_mask  @ S@A@ACEFGHI@ @'div2_up #@ "@A@@ @0shiftrepeat_last w@@A@A'@ @~'}@A@B5z@@'testbit5z@-T|@A@IQ@ @'sqrtremIQБ@7]%{@A@U2@ @U2@A@ABCX@ @Xʑ@A@p?$@ @,p?$+@A@PL@ a@(succ_posPL @@A@ABDK@ @0K/@A@ ;@ k@'of_uint ; @MS@A@ ?@ @! ? @A@ Sy@ @'testbit Sy@8g$@A@ABC dL@ @'Ndouble dL g@ @A@ e@ p@  e@A@A @@'to_uint ͑@.@A@ @ @,sqrtrem_step  @8R@A@A @@+succ_double @.^4@A@ @ @+ *@A@!$@ @%!$$@A@ABCDEF!5m@ @#!5m"@A@!En@ -@*shiftl_nat!En @9-@A@A!Q\@ 2@*shiftr_nat!Q\ @'@A@!k-@ %@$!k-#@A@!lK@ @)const_nth!lK @@A@ABC!tTt@ A@0succ_double_mask!tTt @@A@!@ @(div_eucl! 1@ @A@!K@ @+fold_right2!K @x @A@A!@ ^@'to_uint!̑ K@9w@A@BCD"@ C@+"*@A@""d@ J@-""d,@A@A"E@ M@!"E @A@"Vs@ @"Vs@A@"w;@ W@"w;@A@ABC#:$@ m@#:$ @!@A@#E*@ @'compare#E* Q@]=@A@A#@ @'compare#ݑ @ )Q@A@$ W@ i@$ W@A@$Px@ @$Px@A@$@ @8fold_left_right_assoc_eq$ 2@3@A@ABCDE%t2@ @(size_nat%t2 @ @A@%9@ @+of_uint_acc%9 @ ΋@A@A%V@ @+double_mask%V @ S@A@%%@ @'div2_up%% @ "@A@%R@ @)take_idem%R P@-W@A@A&#@ @,pos_div_eucl&# @&`@A@BCDFGH'ş@ @'Ndouble'ş @ @A@'@ @.sub_mask_carry' @΂@A@'@ #@'@A@(K|@ @*eqb_nat_eq(K|@w@A@ABC(Xe@ @(Xe@A@(b0@ @*shiftl_nat(b0 @9-@A@AD(nՖ@ @*shiftr_nat(nՖ @'@A@(@ !@0succ_double_mask( @@A@A('@ S@&double(' @'޺_@A@)B@ @+of_succ_nat)B @$@A@AB)|[)@ M@ )|[) @A@)#@ @ )# @A@A)o@ f@&modulo)o @)1@A@*6@ l@&of_int*6 @)j,I@A@*6@ r@&of_nat*6 @)j2_@A@ABCDE*W$@ J@,compare_cont*W$ A@!@A@*@ U@(cons_inj* @!@A@*A@ [@(shiftout*A U@@A@AB*θ@ {@&*θޑ%@A@C*Ҽ@ @&shiftl*Ҽ @*O@A@*Ҽ@ @&shiftr*Ҽ @*O@A@A*@ @&square*ґ @*ow@A@+h@ @&to_int+h @*81@A@ABD+n@ @&to_nat+n @*9G@A@+@ @B+A@A@A+)@ @?+)>@A@+^@ @&+^%@A@AB+d@ @"+d!@A@+A@ @#+A"@A@A+֛@ @ +֛@A@+֢@ @+֢@A@AB,Q j@ @+testbit_nat,Q j ;@+@A@-w@ @'sqrtrem-w B@,J@A@-"=@ @ -"=ّ @A@AB-)b@  @)lt_compat-)b \@ 1@A@-@ @-@A@. @ @'testbit.  V@-T|@A@ABCDEF.bo@ q@'iter_op.bo @ @A@.f@  @&eq_dec.fޑ t@ @A@A.0@ @.sub_mask_carry.0 @΂@A@B.@ @!t. @ ;@A@.먩@ @#add.먩 @ `@A@A.U@ @#div.U @ @A@.B@ @#eqb.B @ @A@A. @ @#gcd.  @ @A@.=@ @#leb.= @ @A@ABCDGHIJKL. @ @#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@.@ N@|.{@A@ABCDE.,a@ @$div2.,a @ @A@.Xz@ @$even.Xz @ ?1@A@A.@ @$iter.ؑ @ @A@B. @ @$land.  @ @A@. @ !@$log2.  @ @A@ACF.@ &@$lxor. @ R@A@.y@ .@$pred.y %@ `<@A@A.Ʉ@ 3@$sqrt.Ʉ *@ ;@A@.@ 9@$succ. 0@ @A@.t @ ?@$zero.t  6@ Z@A@ABC/@ D@.to_little_uint/ ;@ @A@/4@ @/4ޑ@A@/ss@ @'to_uint/ss @.@A@A/w@  @(eq_equiv/w玑 1@M@A@/ˏ@ @+succ_double/ˏ '@.^4@A@ABCDG/@ `@%ldiff/ W@ H@A@0DO@ @0DO@A@0]@ @0]@A@AB00@ (@'compare00 @?H{@A@1P%@ c@!t1P% Z@  @A@AC1P@ h@#abs1P _@ @A@1P&@ o@#add1P& f@ @A@A1P@ t@#div1Pґ k@ y@A@BD1P@ y@#eqb1P p@ f@A@1P@ @#gcd1P x@ 0@A@A1P@ @#geb1P }@ T@A@B1P@ @#gtb1Pʑ @ q@A@1Pĺ@ @#leb1Pĺ @ a@A@A1Pň@ @#lor1Pň @ /@A@BCE1P@ @#ltb1Pב @ ~@A@1P@ @#max1P @ @A@A1P{@ @#min1P{ @ "@A@B1P]@ @#mul1P] @ @A@1P@ @#odd1P @ @A@A1Pɣ@ @#one1Pɣ @ J@A@BC1P@ @#opp1Pԑ @ {@A@1P1@ @#pow1P1 @ @A@A1P;@ @#rem1P; @ @A@B1P@ @#sgn1Pˑ @ r@A@1P@ @#sub1Pɑ @ p@A@A1Pe@ @#two1Pe @  @A@BCDF1[8@ @$div21[8ޑ @ @A@1[d@ @$even1[d @ I@A@A1[6@ @$ggcd1[6 @ i@A@B1[U@ @$iter1[U @ @A@1\@ @$land1\ @ /@A@A1\@ @$log21\ @ 6@A@BC1\$@ @$lxor1\$ @ @A@1\Y@ @$of_N1\YÑ @ >j@A@A1\@ @$pred1\ @ j@A@B1\@ @$quot1\֑ @ }@A@1\@ @$sqrt1\ @ @A@A1\w@ %@$succ1\w @ @A@BCDGH1\k@ *@$to_N1\k !@ @A@1]@ 6@$zero1] -@ eD@A@A1b@@!t1b \@ ;@A@1t@@#add1t b@ `@A@AB1y3@@#div1y3 g@ @A@1{ @@#eqb1{  n@ @A@A1|@@#gcd1| s@ @A@1@@#leb1 y@ @A@ABC1@@#lor1 ~@ @A@18@@#ltb18 @ @A@A1N@@#max1N @ '@A@1@@#min1ܑ @ @A@ABD1@@#mul1 @ @A@1E@@#odd1E @ @A@A1@@#one1 @ @A@1@@#pow1 @ k@A@AB1*@@#sub1* @ @A@1@@#two1Ƒ @ @A@A1?@@$div21? @ @A@1$X@@$even1$X @ ?1@A@ABC1@@$iter1 @ @A@1@@$land1 @ @A@A1@@$log21 @ @A@1y@@$lxor1y @ R@A@ABDE1Ec@@$pred1Ec @ `<@A@1b@@$sqrt1b @ ;@A@A1@@$succ1ؑ @ @A@1?@%@$zero1? @ Z@A@1@+@.to_little_uint1 @ @A@2~/@@'compare2~/ @ )Q@A@ABCDF2:@ @%abs_N2: @ @A@21@ @%ldiff21 @ ߵ@A@2=*@ @%quot22=* @ @A@AB2kF@ @(size_nat2kF @{@A@2u@A@2uё@A@A2u@D@2u@A@2u@H@2u@A@ABC2u@K@2u@A@2uY@Q@2uY@A@A2u@T@2u@A@2uX@X@2uX@A@AB2u@[@2u@A@2u@`@2u@A@A2uK@c@2uK@A@2u-@g@2u-@A@ABCD2u@j@2u@A@2us@q@2us@A@A2u@t@2u@A@2u™@x@2u™@A@AB2u5@{@2u5@A@2+@@2+@A@A2W@@2WǑ@A@2%@@2%@A@ABC2X@@2X@A@2 _@@2 _@A@A2@@2@A@2x@@2xґ@A@AB2@@2ё@A@2G@@2G@A@A2sm@@2sm@A@2o@@%ldiff2o@ H@A@ABC2T@@2T@A@2汞@N@2汞@A@A3V@@ 3Vޑ @A@3s&@@*eq_nth_iff3s&@*@A@A3E@z@(size_nat3E g@ @A@B3@@(tail_add3@^q@A@CDEFG3@@(tail_mul3@^@A@3@@,Nsucc_double3 @ ʭ@A@A3N@@+of_uint_acc3N @ ΋@A@3@@+double_mask3 @ S@A@4 w@@'div2_up4 w @ "@A@4Z@@*4Z䴑)@A@ABCD4z3~@@4z3~@A@4@@4뽑@A@46@@46@A@4B@@4B@A@ABC5Z@ @*shiftl_nat5Z x@y/@A@5f}@ @*shiftr_nat5f} ~@4@A@AD5a@@'iter_op5a @ @A@5C@@'Ndouble5C @ @A@A53@@!t53)@#EE@A@B5@@#add5̑.@#Fj@A@CEF5e@@#eqb5e3@#F@A@5/@@#gcd5/<@#F@A@A5`@@#leb5`A@#F@A@B5.@@#lor5.F@#F@A@5}@@#ltb5}M@#F@A@A5ԓ@@#max5ԓR@#F1@A@BC5!@@#min5!W@#F@A@5@@#mul5]@#F@A@5@@#pow5בc@#Fu@A@5o@@#sub5oi@#F @A@ABCDGHIJ6w~@(@'of_uint6w~@^5@A@6 G@@$div26 Gz@#Q"@A@A6 U@@$gcdn6 U@#QX@A@6 @!@$ggcd6 ܑ@#Q^z@A@AB6 @&@$iter6 @#Q@A@6 .@-@$land6 .@#Q@A@A6 -_@2@$mask6 -_@#Q@A@6 2@8@$lxor6 2@#Q\@A@ABC6 @=@$pred6 @#R_F@A@6 @D@$size6 @#R@A@A6 @I@$sqrt6 䧑@#RE@A@6 @O@$succ6 @#R@A@ABD6*@T@.to_little_uint6*@#b@A@6W @@)fold_left6W @*Za@A@A6_v@@(tail_add6_v@^q@A@B6_@@(tail_mul6_ϑ@^@A@6hw`@\@6hw`@A@A6xe@}@*shiftl_nat6xej@9-@A@6S@@*shiftr_nat6Sp@'@A@6Kg@@0succ_double_mask6Kgv@@A@ABCD6g@n@6g@A@6;@r@6;@A@6@v@6ԑ@A@ABE6@y@6@A@6@@6ϑ@A@A6@@6@A@6@@6@A@AB6@@6@A@6@@6@A@A6 r@@6 r@A@6 F@@6 F@A@ABCFG6@@6ޑ@A@6`,@@%ggcdn6`,@$*@A@A6z@@6z@A@6@@6đ@A@AB6K@@6K@A@6j@@6j@A@A6E@@6E@A@6`@@6`Α@A@ABC6f-@@6f-@A@6@@6@A@A6 W@@6 W@A@6@@6@A@ABD6@@6@A@6 @@%ldiff6 J@$'R@A@A6 @@6 @A@70@?@70@A@AB70>@B@70>@A@7I@@7I@A@7UW@@7UW@A@7x~@@7x~֑@A@ABCDE7@@K7J@A@7=#@@"7=#!@A@A8j@@'of_uint8j @'"h@A@8mv@@,compare_cont8mv @!@A@8V@b@.nth_order_last8V@/71@A@ABC8C\@}@'of_uint8C\F@^5@A@9>N@@9>N@A@9v@w@ 9vˑ @A@AB9E@3@(div_eucl9Eđ*@(*k@A@:El@{@/rev_append_tail:Elu@.G@A@ACD:x@@,Nsucc_double:xv@ ʭ@A@<M@;@)pred_mask<M@)X@A@j@A@@e@o=m>n@A@B=m@h@m=mΑl@A@=m@m@m=m̑l@A@A=mh@p@i=mhh@A@BC=x8@s@g=x8f@A@=xd@y@h=xdg@A@A=x9@|@d=x9c@A@B=xX@@b=xXa@A@=y@@b=ya@A@A=y@@[=yZ@A@BCD=y$@@Y=y$X@A@=yY@@[=yYƑZ@A@A=y@@W=yV@A@B=y@@U=yّT@A@=y@@U=yT@A@A=yz@@Q=yzP@A@BC=yn@@N=ynM@A@=z@@N=zM@A@A=}Ǣ@@%ldiff=}ǢP@ ߵ@A@=@@%quot2=V@ @A@=X@k@L=XK@A@ABC=z@@)mask_rect=z@+ED@A@=@r@J=I@A@ADEF=@@%ggcdn=͑@$*@A@=U@@%ldiff=U@$'R@A@A>)S@@)add_carry>)S@+p@A@>8=@@>8=@A@A>N@@/>N.@A@>Z-@@.>Z--@A@A>@@(>'@A@BCD>@@&divmod>@C@A@>@@&double>@NĴ@A@>@@+shiftrepeat>@2Y@A@AB>@@'>&@A@?2@@,pos_div_eucl?2@-u@A@A?G@)@?G@A@?@D@?֑@A@A?;@@&modulo?;@"i@A@BCDEGHIJKM@%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&BinInt&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;:9@0.i bYN Z)Decidable%Logic#Coq@0ND걸풬/Oߠ-DecidableType*Structures#Coq@0kO!Z7+/DecidableTypeEx*Structures#Coq@0' m(k>4'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.Ƞ/EqualitiesFacts*Structures#Coq@0)n,:5-|!N@Ƞ+Equivalence'Classes#Coq@07;ꮹ*Extraction*extraction#Coq@0DJS.~Xt=堠)Factorial%Arith#Coq@0@oehJd#Fin'Vectors#Coq@0r'gް؅/׸&FunInd&funind#Coq@0I#A0-GenericMinMax*Structures#Coq@0måj$"Gt%Arith#Coq@0䙛#c:D $Init'Classes#Coq@0](p{yOh.+InitialRing+setoid_ring#Coq@0k/T=cN#Int&ZArith#Coq@0Phg]IO٠"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܏'MSetAVL%MSets#Coq@0Z:X u*MSetDecide%MSets#Coq@0 agB;XRs:ߠ0MSetEqProperties%MSets#Coq@0j6B=8 )MSetFacts%MSets#Coq@0ss|BEo_vWLH+MSetGenTree%MSets#Coq@0+`pH5 B-MSetInterface%MSets#Coq@0x* .>S(MSetList%MSets#Coq@0zD1<.aPZ&0[.ou&/'x.MSetProperties%MSets#Coq@0C!̢2X<l ~N,MSetWeakList%MSets#Coq@0BǡVCLBLz#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ɠ&NArith#Coq@0S22b%&*NArithRing+setoid_ring#Coq@0_ .Ys!Р'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蠠$Ndec&NArith#Coq@0${IէQ<^렠'Ndigits&NArith#Coq@0*SetoidList%Lists#Coq@0k窪ܸqS-SetoidTactics'Classes#Coq@0S_`nOU$&Sorted'Sorting#Coq@0bb1z٠&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`&i@@zP6Ao$T{{@ `^]@Bޭk^|Ë́@v2L abP