"`A%&Zpower&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@(Zpow_def&ZArith#Coq@D)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&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@0KI'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ᬠ)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\ϨrK0f蓜DX;V*ZArithRing+setoid_ring#Coq@0{#'[{nm!/,Zcomplements&ZArith#Coq@0 +77#'>'''9'+k6'@@AABAAEDxN@@@@@-two_power_nat @ Q@#Ek@(A 4+kG 7!9'\@@@@@ -two_power_pos @7 @#IF@ ^ \@@@@@ޠ%two_p @qkssU!yé?@-2ⷾķ ʜA@- +k= R'>7$'>G'6''+k6'lABxXA@@@@@@/shift_nat_equiv @@Hx񩛠%Logic@"eq @xs@*shiftl_nat(b0@9-{@@@@@2/shift_pos_equiv @@I!p@&shiftl@5X@!N7@B@@@@@Q+shift_equiv @@J1@@1P,nGϐ@ t1@-#@.1dV@@@@@v3two_power_nat_equiv @@Kd @2@D1P1@E ؀_@&of_natbz@1?G!@@@@@3two_power_pos_equiv @@>Lx.@@@@@+two_p_equiv @@NM<>@ ǩ3.@@@@@/two_power_nat_S @@bN$7RG=Bܩ*CO@@@@@Ҡ.shift_nat_plus @@wO9L5Nð2*_@% `~;aŐ@@@@@1shift_nat_correct @@PTg,ͩܰdթWO@: vN]@@@@@5two_power_nat_correct @@QlW@@@@@-shift_pos_nat @@RRq@&to_nat"@5L t@@@@@*1two_power_pos_nat @@S HF@@@@@:1shift_pos_correct @@Ty)Щ @'pow_pos= R'>77! = FR'>5=& R~ '>  7! 9:'> 9:'  7!L:''>;=+ RS '>  7!7 97!:'> 9:'  7!7:''L:':'''+ k677%'+ k677%'+k677%'+k6777!7%'+k6777!7%',@KȠ(<cABANhpB@0@80d\$QAABA@@@GAB@THl,A@4OH@@@@@)Zdiv_rest @(uB@@@@@V@.8::"qr?@@0 +k()7L::77777!7!7= R '>''+k677%'ࠐ!ZABMd\Tuаxl%LA@l@@@@@נ2Zdiv_rest_correct1 @@|\jZB\ꔐA?@rͰtK@@@Le$PnatA1GK@A@@2Zdiv_rest_correct2 @@]3x6[|#Q@#andЖw@Frcm>@@@@@0Zdiv_rest_proofs,<_@b@/Zdiv_rest_proofi !@)T@@dU #' '+k$'`AJ|@@^@F@A@A@@@4Zdiv_rest_proofs_ind @O?]T[O@SCa :|AJ|@@@@@֠4Zdiv_rest_proofs_rec @iYwnu4@*HD^3@sc @ @+k() 7&'l@@@@@1Zdiv_rest_correct @@^4y@@@@@,Zdiv_rest_ok @@_@m_@z5{8ǀ됷 whuF@@@@@&0Zdiv_rest_shiftr @@`d@#fst ,@&shiftr#@1d\@@@@@C@@@^@A ӳ2@ ӳ2[}|{@@A@ Գq@ Գq\@A@AB@e@AcAONM@A.0TQ+Ring_theory+setoid_ring#Coq@@BBA.U>[J @C@@"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ѓ5@y@A@@D@&to_intϑ;@@A@z@5@&doublez,@/!@A@ABCD/@O@)log2_iter/F@wd@A@NH/@B@&moduloNH/9@1,@A@A\d@G@&of_int\d>@1?A @A@bz@M@&of_natbzD@1?G!@A@#@S@&shiftl#J@1dV@A@#@Y@&shiftr#P@1d\@A@ABCD/x@&BinPos&PArith#Coq@#Pos@)pred_mask/x)BinPosDef&PArith#Coq@#Pos@ )X@A@6@x@&square6o@19@A@AV+L@}@&to_intV+Lt@2@A@V1b@@&to_natV1bz@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@AG@I@)mask_rectG@@+ED@A@F˱@O@)add_carryF˱F@+p@A@AB^Ҷ@@'to_uint^Ҷ@#m@A@gL7@@'sqrtremgL7@40@A@Aq@@'testbitq@5)@A@ݎO@@+succ_doubleݎO@6r@A@A p@l@0double_pred_mask pc@0-+m@A@BCD T@&BinNat&NArith#Coq@!N@!t T)BinNatDef&NArith#Coq@!N@ 2@A@ @@#add @3 @A@A l@@#div l@3@A@ Y@%@#eqb Y@3@A@AB #@*@#gcd #!@3n@A@ T@0@#leb T'@3@A@ACEG "@5@#lor ",@3m@A@ q@?@#ltb q6@3@A@A @D@#max ;@3@A@ @J@#min A@3`@A@AB @O@#mul F@3B@A@ ~@U@#odd ~L@3@A@AC =@Z@#one =Q@3@A@ @b@#pow ˑY@3@A@A c@g@#sub c^@3@A@ @m@#two d@3J@A@AB hx@r@$div2 hxi@>@A@ @x@$even o@>4@A@ACD @}@$ggcd Бt@>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_@1@+pred_double g_(@25\@A@CD m@6@÷ m-@2j@A@S@=@&of_intS㫑4@4}5@A@AS@B@&of_natS9@4};@A@BEFGH\R@G@(mask_ind\R>@4@A@\^@Q@(mask_rec\^H@4@A@A!,@V@&pred_N!,M@4s)@A@B@[@&shiftlR@5X@A@@b@&shiftrY@5X@A@A&@g@&square&ّ^@5,x@A@BC"@l@&to_int"c@5L@A@"@t@&to_nat"k@5L @A@AnTq@y@+testbit_natnTqp@6n@A@B@@(succ_posB@@A@I@@'abs_natI@?n@A@AB.@@'of_uint.@MS@A@3~@@'sqrtrem3~@7]%{@A@ACD,@ @'bitwise,@/v@A@>4'@@'testbit>4'@8g$@A@A{U@@,sqrtrem_step{U@8R@A@u^@9@(div_euclu^0@ @A@Afz@@'to_uintfz@9w@A@Bl@'@'comparel@3R@A@CDEFs8@,@+of_uint_accs8#@5+@A@}@R@,pos_div_eucl}I@&`@A@3x@(@'compare3x@]=@A@A@^@&doubleU@'޺_@A@BCq@@+of_succ_natq@$@A@w@i@&modulowɑ`@)1@A@ADK@n@&of_intKe@)j,I@A@K@v@&of_natKm@)j2_@A@AI@{@&shiftlIr@*O@A@O@@&shiftrOx@*O@A@AB,@@&square,}@*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@3@+of_uint_acc%9*@ ΋@A@A%V@8@+double_mask%V/@ S@A@%%@>@'div2_up%%5@ "@A@ABEF'ş@C@'Ndouble'ş:@ @A@(b0@K@*shiftl_nat(b0B@9-@A@A(nՖ@P@*shiftr_nat(nՖG@'@A@(@V@0succ_double_mask(M@@A@*W$@\@,compare_cont*W$S@!@A@.0@b@.sub_mask_carry.0Y@΂@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@1@#sub.L(@ @A@.@7@#two..@ @A@ABCD.,a@<@$div2.,a3@ @A@.Xz@D@$even.Xz;@ ?1@A@A.@I@$iter.ؑ@@ @A@B. @N@$land. E@ @A@. @T@$log2. K@ @A@ACE.@Y@$lxor.P@ R@A@.y@`@$pred.yW@ `<@A@A.Ʉ@e@$sqrt.Ʉ\@ ;@A@.@l@$succ.c@ @A@.t @r@$zero.t i@ Z@A@AB/@w@.to_little_uint/n@ @A@CDF/@|@%ldiff/s@ H@A@00@@'compare00@?H{@A@A1P%@w@!t1P%n@  @A@B1P@|@#abs1Ps@ @A@1P&@@#add1P&z@ @A@A1P@@#div1Pґ@ y@A@BC1P@@#eqb1P@ f@A@1P@@#gcd1P@ 0@A@A1P@@#geb1P@ T@A@B1P@@#gtb1Pʑ@ q@A@1Pĺ@@#leb1Pĺ@ a@A@A1Pň@@#lor1Pň@ /@A@BCD1P@@#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@BCDE1[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\@5@$sqrt1\,@ @A@A1\w@:@$succ1\w1@ @A@BC1\k@?@$to_N1\k6@ @A@1]@G@$zero1]>@ eD@A@A2:@L@%abs_N2:C@ @A@21@R@%ldiff21I@ ߵ@A@2=*@X@%quot22=*O@ @A@ABC2kF@@(size_nat2kF@{@A@3@x@(tail_add3o@^q@A@ADEFGH3@}@(tail_mul3t@^@A@5Z@@*shiftl_nat5Z@y/@A@5f}@@*shiftr_nat5f}@4@A@AB5a@@'iter_op5a@ @A@C6w~@@'of_uint6w~@^5@A@8j@@'of_uint8j@'"h@A@9E@@(div_eucl9Eđ@(*k@A@AB:x@6@,Nsucc_double:x-@ ʭ@A@CD@[@&divmod>R@C@A@>@b@&double>Y@NĴ@A@?2@S@,pos_div_eucl?2J@-u@A@AB?;@m@&modulo?;d@"i@A@CEFGIJ@D%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 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< 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+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-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{ ِ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@03!2 Q@@@@"_8l@A@@@@@@@@"_92M접 BB@A#_10'`o@B'Z_scope)nat_scope@@2 Q@@A@#_11[@0!`@A@@@@,@#_122M접 #_13'`o@A+@"@2 Q@@A@#_14@ Jv@A@@@@P@#_152M접 #_16'`o@BLQ@K@j2 Q@@A@#_17@uB@A@@@@y@#_182M접 #_19'`o@Cuw|@y@X2 Q@@A@#_20@c8E)@A@@@@@#_212M접 #_22'`o@B.positive_scope@r@42 Q@@A@#_23@?8@A@@@@@#_242M접 #_25'`o@BР@ɠ@.2 Q@@@@#_26)@9Th@A@@@@@#_272M접 #_28'`o@C@@Jՠ=@2 Q@@A@#_29V@#3_@A@@@@'@#_302M접 #_31'`o@C~*@𠐒󠐒'@#_32X@&zarithA@@@Ϡ(META1228H(META1226(META1227砛𠛐!@@@@\ tsp@@@6Coq.ZArith.Zpower#<>#1(vb/A@4@{@\(META1231(META1229(META1230栤t}!@@`䩛㰛i橚ҠѠrΠu_;@6Coq.ZArith.Zpower#<>#2(vb@#_33X@&zarithD@@@@N@6Coq.ZArith.Zpower#<>#3(vbD@@@@Z@6Coq.ZArith.Zpower#<>#4(vb@2 Q@@@@#_34h@: @A@@@@9@#_352M접 #_36'`o@E8:<@@@ @ڠ2 Q@@@@#_37@#Ek6@@@@#_382M접@#EkBA@A#_39'`o@@#EkBo@@2 Q@@@@#_40@#IFc@@@@#_412M접@#IFBA@A#_42'`o@@#IFB@@2 Q@@@@#_43@ t1@@@@#_442M접@ t1BA@A#_45'`o@@ t1B̠&@@ޠ2 Q@@@@#_46%@2@@@@#_472M접2@2@#_48'`o@:@2A@@2 Q@@@@#_49L@2ⷾ䠠@@@@#_502M접Y@2ⷾ@#_51'`o@a@2ⷾAw@3@2 Q@@@@#_52s@  @@@@#_532M접@  AA@A#_54'`o@@ AG@@2 Q@@A@#_55@) 7v@A@@@@@@@@#_562M접@) 7v#_57'`o@@ ) 7vBn@@2 Q@@A@#_58@8+y@A@@@@@@@@#_592M접@ 8+y#_60'`o@@8+yB@@2 Q@@A@#_61@>\ @A@@@@@@@@#_622M접@>\ #_63'`o@@'>\ CϠ)@@ 預*@2 Q@@A@#_64,@f.@A@@@@@@@@#_652M접:@+f.#_66'`o@D@5f.A@"@2 Q@@A@#_67V@$,1@A@@@@@@@@#_682M접d@2,1#_69'`o@n@<,1A@@@32 Q@@A@#_70@>1L@A@@@@@@@@#_712M접@L1Lא#_72'`o@@V1LAV@@I2 Q@@A@#_73@T*C@A@@@@@@@@#_742M접@b*C㐐#_75'`o@@l*CA}@@^2 Q@@A@#_76@i#<@A@@@@@@@@#_772M접@w#<А#_78'`o@@##5(vb@$_119X@&zarithA@򠤐񐛐(META1242,@KB@@Ơ'|@ɩGLMO@6Coq.ZArith.Zpower#<>#6(vbA@@@bR(META1244x@B@B@C @!@@!׶@^$8ਗ਼ː3̩%@6Coq.ZArith.Zpower#<>#7(vb@}2 Q@@@@$_120@.@A@@@@@@@@$_1212M접@.AA@A$_122'`o@&@.A@@@2 Q@@@@$_1237@ 5{8(@@@@$_1242M접D@5{8BB@A$_125'`o@M@5{8B e@F$@2 Q@@A@$_126d@D@A@@@@@@@@$_1272M접r@D$_128'`o@|@ DB:@uS@2 Q@@A@$_129@D@A@@@@@@@@$_1302M접@D$_131'`o@@DBi@@N$@@B@A@@@@@$_132@H;Ѡ@@@@$_1402M접q@>H;EE@A$_141'`o@z@%>H;E 8FH@@xVAA@$_142? 3V._ind_from_type@@@H02 Q@@@$_143@:>HG @@@@$_1442M접@G>HG EE@A$_145'`o@@P>HG E }נ@@AA@$_146? 3V._rec_from_type@)@@sU2 Q@@A@$_147@`!j@A@@@@@@@@$_1482M접@n!j$_149'`o@@x!jB Š @@x2 Q@@A@$_150@;6@A@@@@@@@@$_1512M접,@;6$_152'`o@6@;6B  N@/ @2 Q@@A@$_153M@<}@A@@@@@@@@$_1542M접[@<}$_155'`o@e@<}B # }@^<@@@+lTv1 qk@.`<:ka 4Qx@_w҈mEq%#@ƴ^sP:6=t9ք]\!z'BinNums'Numbers#Coq@@!Z7@%Logic$Init@"eq @AB!@(positive*@C!n)Datatypes@#nat@86)8&BinInt&ZArith97@#mul1P])BinIntDef=@ A&Zpower@*Zpower_nat:  B/--@'nat_indJ75!m8geWi!#Nat\@#add `C!>-0/O~|m@(eq_ind_r!2#h;3_AUED<H/LM`Ob@'mul_1_l5DVVYX@.Zpower_nat_0_r0!``#IHnMM5{jmDmThslvnE5HƩ˩f @)mul_assoc <)'#o%h!CxߩvB1 ﷐!pр$Pnat&PArith'Pos2Nat@(inj_iter Sʐ鐑 ܩߩ  ũ@#pow1P1@ ؀@&of_natbz@1?G!u ͩ z(sP.,ǰ.mO6@$succ1\w@ '<B@۰B ѩ7J=QOQȐ!H ﰩ@,XU. M\^bF"H0G^Xa@(eq_trans!yw7H2p m)|@'f_equal=ඐ!y!fOOI1&#M'#Zpn@*pow_succ_r;9o$Znatu%Nat2Z@)is_nonneg{@(inj_succ:wv  x@1Zpower_nat_succ_r Jvuͷη}@"le1P,A]۩̠hƐ@'abs_natI@?nڠ4vo@#abs1P@ B}@&abs_eqp}H'W(Zabs2Nat@&id_abs(d  0@,Zpower_nat_Z8&'@)pow_add_r Lj.ש ө@*comparison;f@@'compare3x@]=_C*B@@@@@D@ݰp+@#;@%Falsee@-';p"4&Ȑ"H1O@&eq_ind J>8L޷!eDD@@@@@@@@@@@D!cMA,-h@$Truey@3AK66q@)False_induُ==޶@#cUU@AgYC[?,lfs`2]q@4tGQTQ9x;MDB{^:%mXX"C!xH%lemma@#iffС)}@"ge1P,gi)Morphisms'Classes@2subrelation_properJ74!AY!B\\@*respectful%WO?c@dd)ff++&Basics'Program@$impl7o.Morphisms_Prop%@9iff_iff_iff_impl_morphism8Cz!?||A@$flip$@$unitUe@A@@6subrelation_respectful>6z 8VVG@0subrelation_reflv ]4 __ _O@9iff_flip_impl_subrelation2VA^?FAͶ@c Y@1P&@ ̀8꠩coi@6reflexive_proper_proxy5/RelationClasseso@-iff_Reflexive/h@)ge_le_iffvmt@>Reflexive_partial_app_morphism 2R,}\p@}siaVO8&!:8@8mTE:pJ3. &D 97trWt&BinPosr#Pos@*shiftl_nat(b0)BinPosDefy@9-"Om@&shiftl@5X:@!N7@Be@@AA@AA@@@@@@D@˩5S@%shift t1l@(#e@)1dVVV[ޠ٩ ݷ"p0ĵfU@-iter_swap_genK? B!a۩ϩ |\C@mԩ8c4' C9Ȑ!l[@@D@АO -Lɩ̩@-two_power_nat2W;?۷\ Է   ݩIƩڠMOط ϩ!"] ک_a{pmސ;9p ;-khc 042Ͱ4@%two_p ,.=.xiPN@3two_power_pos_equiv,1WU:I:m$"APX+)*e0.j@)shift_nat#Ek \y!{##bE G#Kém@R"C&1<*,ͷ`^1;C(&ɩ68A:G42*ܩCE.G4吩L?J됩R2%@kZMNX 1BvC[ЩfY Qj2S&کsjѩwʠ٩S#3c͐5+ӷސlɠ< ˠ$4@$BOFD0Ω D  !@3two_power_nat_equivf.x42315eݐ:8;Ѡ@&to_nat"@5L GEҰ9? 9/>D@)shift_pos#IF'@-shift_pos_nat8,ЀCO@-two_power_pos2ⷾhfgi"nl`(*@'pow_pos.VzB·}5G6av j,<@1shift_nat_correct1+C@.Zpower_pos_nat8E)T٩NڐY !ک=@5=M@#notШGVI&Omega0)auxiliaryB?C DCjC*@(Zge_lefts&Zorder@*Znot_lt_ge>π Doਜ਼@$prodt@@(nat_rectbA0ۚ@-Zdiv_rest_aux.ݷ BBB@@@@@&)̐@#!dө7 #! +&%1&'((R "퐷@5+ư-$;65A6788b2@E";ְ=C 2AGC5.LG!?@R/HJ !WRQ]RSTT~9NWRhBIH@@@@DmpQJ@lIbdjXQ`d@tQjl"r&}wuibqz{&@e~6:!q!rs(E![Ω2a1PIQ6HMک<ܩSBAK;6M8L)$!%nIA)0[ sÐ"u@/two_power_nat_S*C(C˩Xx@ڷЩkؐJCé @ݩx@1two_power_pos_nat Ȁ>@$iter=(T|@#Q򐑷N@.iter_invariant44Q B@@@@B^   @#andЖw@ϩ L"x02ɷ14@% ِ50 &)Ґ)*ǰ.1,ɐA<25+ސ56*Ӱ:$!GNIA?@C>ʐSN+DG=GH<L63NO7PEU9JL3NBBB@@@@D@XhL2_XFqlir~stuu_x{q${|pMkh71"H'zөc>+v\L4D0|@AA@AA@@@@@@@D\~0۩G7kũ@#sub1P{@ pЩ(Bȷ@ɩf͐N} XȠvuV@ՠ~;ɠޠǠQ@'dec_and @,eq_decidableOT@,le_decidableHƀ\W)@"or @c eFolRM  @&or_ind"{ɰ 0^o,kf  0@'and_ind14ۀЩwr!'H'_left(H'_right)|+OmegaLemmas%omega R@/fast_Zmult_comm _@ bFQ -@#opp1P '@ {Q %%@/fast_Zplus_comm11 >η y@  |`5-@4fast_Zopp_plus_distrpe @ # n( BB:@7fast_Zopp_eq_mult_neg_1=Ҁ @ 0 {5} Q6 eUM@6fast_Zopp_mult_distr_r0A<з @ C H v ff^@1fast_Zred_factor0#P @ U  t#vn@1fast_Zred_factor6)Q" ȶ@ d ˩ k #}@1fast_Zred_factor5(&Omega3 t ۩ ( ĩà 9"  ;@ @ @#Zne>o=ӠRؠ "w!# Q4V @ /@8fast_Zmult_assoc_reverse"'bE6q[i @)#>ʩcyq @1+ Fҩky @93 ܩ wTTV -@GA u `Է 9@S  " j C@]* Y /t{v &Omega2h57@,fast_OMEGA15M$k A A@* _@yrG  -    O 5© ' e t"@'OMEGA17 PЩ_5! 3 (@(Zne_left0߀ h N P ө@*Zegal_left;6tکu [ 3 ҷ 2` 4V됩w Ω{ө q a H  JqЩ llj:. @ xxS ! Ƕ@~&Omega6 O- Ӷ@  &Omega5     @,fast_OMEGA13K0 & !  jbC@ C@/@&OMEGA2.$D٠ !۠ D::  '@(Zle_left*x퀰 ,1 .@(Zgt_leftE 3<  ,@*Znot_le_gt>/ ;g Ƿ m _l ޠQBhfзidWy @ Q LSک_ '@ Y T[ |a /@ a \  iXow  <@ n i#c 'Omega10 u p* } /. v}|&Omega9w T@  ;=`  @e a@  H .L  &Omega8  SxU C  Q K _  ECZ  +auxiliary_2+auxiliary_1 2@,fast_OMEGA10H(U q˩p VT[ u [ z z zϩ { a  c  ש$i    ٷ'Omega12 Ӡ Ω n E5/ G71.3,4*(Z  ۩ {Y         l@,fast_OMEGA12J   'Omega13     C@ l     C@   -  1    @&OMEGA7.$I ̠ Π ;    B C C  Ҡ g f֠ k5e      3 M M"@(Zlt_left,ڀF, )2 Ǡ:  $Z  f@'not_and7G6n   Ð _ ȷ_ !v % # ĩ  e b  y x  !  %T    ߩ \  㰷 = ީ ˰ 2    A      ? $  ? E C ް Ex )      -  1 %Pos2Z@&inj_xIր R  Wש ; !     ^ & D * H  f d  f J   L 2   4 S 򩚠 6@/mul_add_distr_r)?O Z   w [ ݩ  { C E )   t  ͩ h < jީ|  ex   X Z >  3 ɩ ~   ȩ Ѡ {    I M P     w7 7 ^ a     d! #à   M  rЩ  Z" ^ @&ex_ind 5{  S      %Zvar0   ]      / E  %Zvar1 $ !P@     ϩ   M   ̠ Π A 9z  f @   \   ͩ ߠ S D Щ + w @   m    Q ݩ@8fast_Zplus_assoc_reverse '   /@ ˰ 2  ^   7@ Ӱ : א h   $)  C@ ߰ F *  r    K@  N 2 4 퐩 8Ʃ ? =  A  [@  ^ B D *    ذM  g@  j N P  R &   ( Y  u@  x \ũ ^ ` 4  4ΰX  @   i = k' m St  CͰ Wз  @ .  y  M 3  ~ d   h M    Щ W ` é .   W b t v  '   @Π  T  s /4  uP1  ¶@ܠ b    K W > ) ϶@頩 $   H a 1 ׶@ ,  y ĠWR  cT˷ ? @ ̠: Π  7-   b` K @  ؠF ڠ  ܠ l & p Y @ T    2 XU e @%  Ʃ &  n > ʩT q@1 A F ҷ&Omega48 p é   S S${ A ;  [pөb    v٩  xx  x۩j  ~ r '   s szݩЩ 1t$ Ұ 5 <@ =B ߩѰݩ A C)+ Jv/NxP@'new_var&/wS8: Y \ ܷ  o̐   eҐ^O ֩dڐ   sĩl K 2  4x ĩ ~˩]Щ Ϡ y XXV}B DFa a%Zvar2` Mj j%Zvar3vI/V @   C wB 87  ƶ@     h CF ,Ҷ@    W @2fast_Zplus_permute"+$v& B@      Ҡ  Ԡ1B"&Omega7 ( # ݠà" 'q Z@ 2 - 砩 F  0E[2 h@ @ ; ۠`T ˷M G B  ![  (]dd \i mmh$ooo 1@ c ^ ^ |" n q l & " 㩚@,fast_OMEGA11I x  OQ 5_   IX <"$&&^ B( F,.  j N4 R8  ԩ   Z@ ^D`   C ] W G PC e H$    sYeөf w }c ǩ g W@/Zmult_le_approx"8=  T_X@&OMEGA1.$C {7?k@    shQǰ?Sİ U  : Y\t^ 2i<k 7 75 831 %Zvar4ܷ'Omega1660 %Zvar5䷐'Omega175x^/ D@ Ѡ ,9  .j P@(# ݠ ߠ"C ^t 8 Z@2-   M|Ϡ~CYQ f @>9 ǩ Y۠[ ˩@1fast_Zred_factor2% w@OJ ' ةb0'Omega15XS s ;YV 2@d_ .  Vat =@oj $8 }to )n + i˩ /tw3-@,fast_OMEGA14Ly~ 4mf : @b $  ]ߩdaq  Щ4ũ6@,mul_shuffle3.Vꀰ ٷ%yƩ ]Cb /#h D<;:@&inj_xO܀' rXG&\ ϩ^w7!5 >ة = c i M Q T - $ ^    j ԷBթp`ط۷Iܩwn߷ g.pA@ Πl ҠqM@ ڠx"lU@  .xa@  6©\3i@ ʩ @̩Vs@HԷG!(O*(*g&s,@F|̐_8@Reȷ>@X%Km,F@`-auͷN@h5 7i ̷X@r?sAwDƩF=$KKJ|9  N4    AA /+ЩX ,!\a` HJ k $&~ ېܩ ݐ i  m  吩 q P79 }ҩ`ЩҠҩ |[[YEbb_L`iis),H O̩ ʩ ީΩ tΰ_ɰBadnf] 'Ȱ q?s" ک:8;=6734 WB@Ϡ3oN_(J@"נ;ElR@*%ߠ=qZ@2-'Omega1494ZR:GN4ީ8KaY׷t( [栐[K  d  _V  g$Y ni'Omega18c^ w w÷ĩ(a& k% * **v+ 02 2'Omega19|r  4f: ? >$  } D F#II   JALL>IOO t 6 Ɛ  t))o v--sߩ 2]F_ a1 ۩iOn' 갩 ( ܩs wu1' Ơ p }         > B  E , |         U         ~e ' { (   %  } ',Ҷ@n f / &4ڶ@v ^ ,:@|  W 2@@͠Ϡ  > R IطN@! G T@ S+ A "^@1 1  ? ` /8 I ]k@ +  $DЩ F kWy@ 9   Rީ # wcT   y -@ G ͐ bb\   ;@ U"' j  ©&  E@ _,1t  ̷M@ g496  :"   2 [@ uBGD  e@ LQNP$  %  r@ Y^[E/ ɰ |@ c7egO Q; 3@1fast_Zred_factor4'  ˷@ t<2H Ұ  H { Q} g Hũ F$ C  A k  G P     K K  I   F K B 5ЩW cX 0 y,2 ) Q  WWVX       < <~eg      a   S    H 1׶@   y S <@ɠ &ˠ  * ( & } - *I@!  *$٠  * G B ' "+&  p Y@1,栩  A W Rd @<7ŷA< 9 U(d ] ]0 _0 Z$ a a a}#@UP O [ ©^YΩY s s^m5а7  .=!f  ܰC' q K/3G {9=H ש٩۷ܩ  G   yM3R #&ǐW= A A"-Ω ]]``1&ҩ      } 吩 x:!# I @ @ >   @vJ /^ N F ͷ@͠ȩ #W  ܷ@֠ѩ __   w   ܷ@۩i }  m  @ uu  'Omega11   >  y ] r     p  d  o        &  EjC ZEC;>8  j>7 N =Ԡ   X Q A r HߠŠ!% KΠA*@&neg_xIT+  ۠ĩࠩ aW@թ f@/mul_sub_distr_r_RŰ, _0 wE  8sM?= 1ڰA %  , 1I^ CS 7 # g b  Tf J 24 * Ju Y AC ԩFe 6 B 9 9 7# AA @+Z\ϩ  3MM  L"KVhjݩ 0@C  Gh M $j b ŷ@S  WM D 2x # q7 W9 Iu= @y)϶@kҩ  q JO [M Pŷ9߶@{Ơ /Ƞʠ _ K +x <nI@֠ؠڠ R" 8 i #cax //  a I©Ԡ֠I2` Zm@ - h ԩ eLة ] %@ ?  z Őy ːw^  q9@ S   ِ$& n ? -+  /I@ c0  鐩4|  ; ķU@ o<  @B  9* K .e@ L      S R T Y u@ \ ʩ^2 b d  8    @ n ܩprF +H 2 {  } `@ ~  V  @   v ff   @ ͠nΩ ȩ t9   l ܠ  g % w x$  ߩ B w  '   }  &    (à"    Z$$$   \ˠ*    ],  yЩӠ "0C@ ؠ A ܠAĠƠ9" ɠˠ> /  SC@   X۠ݠP9 ' Bΐ   E堩ZCy kF Y    S34ϰ67  Z:;ְ=> ֐Eؐzw   lLsMq pPoQmk N ͩ^  j'l#pD <rF peI/ m ,$h "@&neg_xOT1qvZ@t|DFba㰩x!li+ސ /䐩2 ȩ}Rީv쐩: 9Y@e  \\ Z  Fcc  b Mjj    g =fqF֩=i ̩2kƩ4  7   ʷx !N w, P O U GC  lQ  r@b{}WOMPIGEH J ZY D  a B C  R+g(`^a c %, ) ( .&a ws ?w?KڠBOũo\Z~#pf 72xȩ{̩$ϰ6yٰ@s$ r   |zltnpðR@U9f;j`@cGI3xflPR©T u@\ a`F  5-ec|e@m r&q VEE ЩY ]YyS @ W< l%[&M sE@Ơ  }7mmȷ@Ԡu y>9;{ᠩ{$ Xz       Ơ% h'tЩΠ +oҠ1 k q;hؠ7NE? K}C AM   BpߠC n a, ' 0u"uy iөtשzȰ/]԰;$i  Щ )nE@_,t1M@g46  @0fast_Zplus_assoc Da~% Jb@| N*":cƩZP-&(Zͩ&Omega1C:C;C <ݐ?:< ԩDҩCILCJMCKNŰQS ~VV v0v[U@@[@Nkf,l@0Zdiv_rest_proofss i̶¶@@_qL\~DʷB˷̷{|r@k@k]5zpQ|@͠ @z ,."H2 "H3lF@(eq_rec_r!%0 E.ߠŠ)c٠,L b꠩Рn#q YABFi=PP@2Zdiv_rest_correct2D^@2Zdiv_rest_correct1Dd}#42s@:ѷ9<@@|$>A9"qr=3ސ56*Ӱ:/y%5tRYTLJ@%@?EOPDT~8I N5`aIbfiQj_oS9)fM.iyϩ]CnrY 1w kQԩf>2C1|b0R:wVUG_=ΩnFPϩTb7bWCb@)Zdiv_rest5{8ǀ/-Sitxŷԩrն@HηFϩàlq̠ wީ@#fst @&shiftr#@1d\*ig堩2٠g-ՠ@蠩Π1N5 /D*ǐ O@#div1P@ y'%'ݩ@.div_unique_pos^]kw0o53ΰ5u@(mul_comm9+؀Y@/shiftr_div_pow24a@=é$~y ɷ+E еs3- 'u$8@;5 ~A;5G 9Ȑ"H4LF @++CCxzz<0@,Zdiv_rest_ok;65