"`ڄ"K*Zpow_facts&ZArith#Coq@0)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@P)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ֱ'BinNums'Numbers#Coq@0dmk(5Ju<*EqdepFacts%Logic#Coq@0FI$ͼՋ`)Eqdep_dec%Logic#Coq@0u wWIϰ߼&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!>$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@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ᬠ(Zpow_def&ZArith#Coq@0f蓜DX;V*ZArithRing+setoid_ring#Coq@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@AA@AA@@@@@@@D"m'Ȑ!zppA##@@AA@AA@@@@@@D,, .AC*a+@bNH/)BinIntDef0@g1,ր@#mul1P] @ F2E0.N+$-# I !3@T@*@ H,k(*()= IR'> 3" =/ Ro'> 7!7!7%'> 7!7!7%'G''> 3" =' R;'> 7!7%'> 7!7%'G'' 7%''+k6'+k6'+k6'+7Tk+7T'+7T'6'ࠐL@@AABAADBH<}<(rAABA@@AG\F0$܀@@@@@(Zpow_mod @t/hBq9o@ !xy}@5U{қ0␐ +k()= R!'> 7&'>G'77%''+k6'РOADDĐܠ$lA@@@@@@4Zpow_mod_pos_correct @@jNd@@S@#notШ[AAc@  !xJ(UR@@@@@10Zpow_mod_correct @@O d4 @@5 AAt@,o󳀰|ĩZ̐@@@@@c-Zpower_divide @@PS@AA@÷ &멚@@@@@2rel_prime_Zpower_r @@Q!ix'BinNums'Numbers#Coq@@!Z7@9@†KAC@*Znumtheory&ZArith#Coq@@)rel_primej'&⩚뀠/@@@@@Š0rel_prime_Zpower @@3R@^!jaBn5@~AD@A @;X?G!@@@@@1prime_power_prime @@iS뛠'BinNums'Numbers#Coq@@!Z7@ @UAA@t@%primenH@K@ P@^ZY|5FĐ@@@@@[J @B@@"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@P%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,[{ @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+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% 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@@A@"_8O@K+;@A@@@@@@@@"_92M접#_10'`o@A'Z_scope@[@2 Q@@A@#_11v@+5@A@@@@'@#_122M접 #_13'`o@A.positive_scope@@2 Q@@A@#_14@+@A@@@@L@#_152M접 #_16'`o@A%@6@2 Q@@A@#_17@,C@A@@@@p@#_182M접 #_19'`o@CnK@@`@*Zpower_1_r9D{(@@@'pow_1_r<^B*Zpower_1_l9D{(@@@'pow_1_l@A@@@@M@#_302M접 #_31'`o@EKMO@@@ꠐ@@2 Q@@@@#_32@KQ^@A@@@@@#_332M접 #_34'`o@D@@@àƠ@<2 Q@@@@#_35@G5a@A@@@@@#_362M접 #_37'`o@D@@@#_38X@&zarith[@"le1P,A@ @@7@A(META1308(META1309*@@@@/!a@!b@5@41P,Az>D@#pow1P1A@@}@:Coq.ZArith.Zpow_facts#<>#1&L蠠O@"lt1P-B@N@AZ(META1311(META1312~@@IHGDJ@x@)1P-C@@1P,Ké8Q@I1P1H@:Coq.ZArith.Zpow_facts#<>#2&L@Ϡ2 Q@@@@#_39@8@A@@@@@#_402M접 #_41'`o@E@@@ŠȠˠԠ@Р2 Q@@A@#_42@[5_@A@@@@@#_432M접 #_44'`o@F@@@@WZ@1Zpower_nat_Zpower9D{(@@&Zpower&ZArith#Coq@@1Zpower_nat_ZpowerTh]2 Q@@@@#_45T@H@A@@@@@#_462M접 #_47'`o@B@@BK@2 Q@@@@#_48|@f4I@A@@@@-@#_492M접 #_50'`o@B+@@js@2 Q@@A@#_54@]@A@@@@U@#_552M접 #_56'`o@B)nat_scope1@@2 Q@@@@#_66@@A@@@@@#_672M접 #_68'`o@D}@@ܠߠƠ@z2 Q@@E@#_69{1@#_702M접 BB@A#_71'`o@C@-43@2 Q@@@@#_72t\@#_732M접 CB@A#_74'`o@Cנ٠@X;@2 Q@@@@#_75V@%J@A@@@@@#_762M접 #_77'`o@D⠐ @@  @2 Q@@@@#_78@Q@A@@@@9@#_792M접 #_80'`o@D79;@@蠐 =@2 Q@@A@#_87@#@A@@@@k@#_882M접 #_89'`o@Cik@@@2 Q@@@@#_90@^@A@@@@@#_912M접 #_92'`o@E@@@ڠ預@2 Q@@@@#_93@(@A@@@@@#_942M접 #_95'`o@G̠ΠРҠ@@@@PS%(@@2 Q@@@@#_96\@ )@A@@@@ @#_972M접 #_98'`o@G  @@@@@W`@2 Q@@@@$_120@9 @A@@@@K@$_1212M접 $_122'`o@GIKM@@@@@VF@'Psquare9D{(@@@&square&@&square5,x֐@'Zsquare9D{(@@@&square6@&square19@/Psquare_correct9D{(@@@+square_spec ^u/Zsquare_correct9D{(@@@+square_spec9@.@@}rŕmԮ"@u;? xN/K@KĂnH"儦t@pC%Krsb;6ل=!.qYo}T!x'BinNums'Numbers#Coq@@!Z7@&BinInt&ZArith @'pow_1_r<^A!p @(positive*@@'pow_1_l@'compare3x)BinIntDef@J@]=XA-CȐ"H0*B@@@@@D!y(@6+"BCX@>3B@@%Falsee@b I>5+U*(QF.Ȑ"H1U@&eq_ind JPG=gD!eXX@@@@@@@@@@@D!caA0p@$Truey@6AU9y@)False_induُ@@w__CA~fC@"le1P,p@'pow_0_l<Bط@"lt1P-l@.pow_pos_nonneg7Dwfεlb@^~֐ilkdȐ"H2nАEiTQJGC@!a!b i ة1@#andЖw@V W @-pow_le_mono_r%!BBB@@@@D@kmo2 1Coq_ZArith_Zpow_facts_Zpower_lt_monotone_subproof4;<ߩ/`f( 2Coq_ZArith_Zpow_facts_Zpower_lt_monotone_subproof0@GH o2GKELMt#3CHBK@-pow_lt_mono_r'T3`꩐GHF_fg +)Decidable4g@+dec_not_notHɀ*f@,lt_decidablèa񩚠D@#notШ8v@"ge1P,[S@'and_ind14ۀЩР;c'H0_left(H0_right8+OmegaLemmas%omega@7fast_Zopp_eq_mult_neg_1=ҀD@T@#add1P&`@ ̀H>@1fast_Zred_factor0#[@h@#mul1P]v@ iC|W2@1fast_Zred_factor6)s ׶@/+h&Omega2!8$<N8@-DF@*}X@/fast_Zplus_comm11O3: @>L@D[GIB`D&Omega0Pgi1M{@,fast_OMEGA13Kr$ȩtEX%@,fast_OMEGA14Lu_,ͩv~vC@mC@w©@&OMEGA2.$D9&=&+)auxiliary7@(Zlt_left,ڀک @(Zge_lefts吩&ZorderI@*Znot_lt_ge>π[bc''Y@,le_decidableHƀ0詚d@"gt1P,k~@*֠i Ơ1ݠٷ@Π9x;&Omega1ՠ@B@ݠH,@S렐J9[oUCulib_CH^ +auxiliary_2+auxiliary_1 (@,fast_OMEGA11I N  M'  ک;@,fast_OMEGA10H$޶@6"O%rM@1fast_Zred_factor5( D  &Omega44K7011BC@ҰǩC@LdP.hT2N|@&OMEGA7.$I s(UN!۰o@(Zle_left*x퀰v@(Zgt_leftE@*Znot_le_gt>/=;< :>8?@f"@6@mm<@#pow1P1@ ؀"@w <I@J{(K@(pow_gt_1 (=GE@@@8ae_f@'!NPMk!qn!rq?te@)pow_mul_l fx|v}~L"Ws@-pow_le_mono_l%m"HaA"Hb`Ӡ>L&:@M@_~@@v㠩\K_@렩df@@@1pow_le_mono_r_iff5l $IE@@ @%@`-@*lt_le_inclsm̷@2@@%@dζ@wg@ @Ŷ@F Ȱ䩚@+lt_le_transn29;>|!n@,pow_gt_lin_rT/向@  ,Coq_ZArith_Zpow_facts_Zpower2_Psize_subproof@#nat@"HnW© @&of_natbz@1?G!%Peano@d UxT@B"A@&@'nat_indJзI/ @#iffС)kK0ǩ*&BinPos&PArithM#Pos@(size_nat%t2)BinPosDef @ EA??@AA@AA@@@@@@@DJH*?#pUAO%BWUSfA@N_Aha7W@g=[_ ![1/)O@]RIi)-@eZ'ʩ|R#rEncZԩJsh" kb4Fq?? ?@xp&9cA@B@B@@@@@@D@@\5hxU| TRѩ0I@@A@A@@@@DFϠt@E?u<Է!m%iũmohQNࠩ,ېY@ٰ6|X@?!Ԑ&@ M ̷@栩9@퐩?> " osP{3ש56@0$!0cI@8@@0$D+TB3/X7ީ[;PRS_}{xàU+}u{Otes@rOp@6f<8Z@X.,&L@ZOF x@ y7`Uũ;Z [)))@pF@!@&Nw&R(&+=1Y/Ʃ1]E `8<@=#IHn$Znat%Nat2Z@)is_nonneg{N|uީÐǰõ"Pͩ͠𩚠@(eq_ind_r!2#K7x!z%ꐩ栩ސ @$succ1\w@ ڠ@q]"Щנ$3$c(ݠ*.)렩Q'ŰW= #@'dec_iff? +Compare_dec%ArithA@&dec_le*c<Ӑ @"or @KAacH]^V b2@&or_ind"aȠy'{0}bq^V6Yyv  VЩ⠩ΠAРJ|yqQt )&H_left'H_right+_ @? Uxl2ж@䠩xũL|3@:ԩ^(IHn_left)IHn_right@1ǐl Ƞ>!s8ې֠?% 'y;萐P.꠩:Q4>Ƞ;RC?נ$ MOw5S!P@0&$I:-#%&|@(inj_succ:w LJ@ڠ34%Uܩ'%"<J@ k\OEVGH9"ig@7Pȩ`V%pe[TF"E@&ex_ind 5{uPn=aqˠ6⠩ΠwA:%Zvar0'Omega10ЩdQ))ޠI/TM. Q;\U1G|[+@%Zvar1&Omega9 3Щ\N%M1 JǷ`ȩʩU%Zvar2ηTѷjҩԩةac%Zvar3ܷ&Omega5 sOp˩ΐdy@-DF2+@#opp1P@ {Q=Ӑ_h@/fast_Zmult_comm   @Lc%鐐`@\ǩsua&[0{5%,-+@lש<@4fast_Zopp_plus_distrpey>?=@~"(̩@6fast_Zopp_mult_distr_r0A<KLJ@/7]ݩ@2fast_Zplus_permuteЩ`fd@8fast_Zplus_assoc_reverse ' jh@puU&Omega7ɠˠ~MKHbf~ dQ@ -٠l][XrtEwe@֠A7%,@ߠJ@-@R7఩@@^ ViC&Omega6grmd5{tͷ̩Ω#rة'Bڷ٩ 0ǩ&8$<@,D*(K7O;Q>5@WC[ ]SA صRCذͩĠC UYYĩpIr^zX Yxdb^Щ|hfb/ hd1CCsl@. @/Zmult_le_approx"8=B% &A ' '@&OMEGA1.$CRRVN 6 7R V;c-_ 0^dfKbY@'new_var&/wS&sX[  GZ ]@'intro_Zz, cA@&inj_gt8FFP6 _`K@¬_le+gji ywig d ~, h & sh\i  @1  0{y v 9 V 8 `k^  @@F  =C3B  X    9 N%Zvar4 Ƿ'Omega21 AЩ   Y0 X'Omega11 ,W Է m թǠ  ٩t P e%Zvar5 ޷'Omega20 XЩ  q qH p'Omega12 Do     ؐ]  ~%Zvar6 'Omega14  5 %Zvar7 'Omega15:շ       @ J aeQ #    @ Y ĩp  >1 "     & $@ e Щ|~Wb (/  0 .@ o ک   8 6@ w  ! ũ ? @ >@   ͩЩ ~ OM N L@   Y 9 ݷ'Omega18  s/- *ҩn _ `  E_ ɰ c a@   Lr =; 8| m   S  q o@  Ǡ  ٰ w y w@  #Ϡ  b Ȱ   @  +נ j Š   @ ʠ 5 t 'Omega17 Ѡ < @ e  C   f 2 C  B U N   q       Rd {     aǩ    < kp  o    u     + 3  1  3      9  ;  ΐ  v    Ґ C  E 1 A.  ^ ۩" M 9 <  <WD X R Y 򐩚 @(imp_simp{    D#Cʠ ^ H& NPx~z[ p\ 6 %Zvar8 9'Omega32  ȷ'Omega22 D η%Zvar9 G'Omega31  ַ'Omega23 R  S  U Y>W > ⷐ&Zvar10 ['Omega27  `  a , cO I &Zvar11 f'Omega28@> ; U q  WX'] x v@  " Π РK  Ԡ- 1 ! 3   @ Š 0 ܠ o  _] Z t   v ݠ  @ Ӡ > ꠩  Bi #f  K  @ ݠ H    +    @  P Z 3VЩ  V   M X   @  \    ?  'Omega26  e      O 4   ƶ@  r  א\ W    ^    ض@   0 /C g B   @ !  8 7  o 1 ݷ  @ )  @  w    @ 1  H 4 I   'Omega25 :  Q  S ,   T&$  "  Y* [ \*  氩  (C@ N  eg i  C@ W © n p Y.   D/Ð1   @&inj_le8F <3#" $g1  )U F  ,-ٰ M K@ ۠ 45E ک%#  :f W  =㠷 \ Z@  C  SIIWD  l  m _ : q W &Zvar12 t'Omega43  Щ D {  'Omega33 ٩    t O m<9 o &Zvar13 'Omega42  Щ \ zI7 ! 'Omega34   &&Zvar14 'Omega37'  .&Zvar15 'Omega38⩵ |"   <    @  _ =Đ  l F\  n   @  k    N Z   U f  ̶@  x $ &  | ]   ֶ@   .   e @  ޶@   6 mЩ : 4    6    @ +  B   y ; >  @ 3  J #  'Omega36 :  Q ߩѷ 1     4  @ F  ]  ޷ M  i     @ S  j M}  |   @ [ Ʃ r U   k R $ "@ c Ω z  {  Z ! , *@ k ֩   'Omega35 r ݩ  i  0  " p    I u  B    w  D     N  , ѩ $ /Yu C@   k\   C@    N D  lU  <  g M N6CB ֩ D  EM  VdTQ2T  Zh    a a I Щ  ۩  ۠ Ǡ  ] ; ʠ  D  v֩  ַ. "5 ){w  @ [ 1U  @ C 6  B75 0 <&Zvar16 'Omega545 /! D'Omega44$C  J&Zvar17 ÷'Omega53 = * R'Omega45 &Q  X&Zvar18 ѷ'Omega48 Y  `&Zvar19 ٷ'Omega49 T  @ "  9 =  t  @ /  F H  ~1   @ 8  O    a9 @ @  W  S  [ ?   A  @ L  c    \ _@ T  k  'Omega47 [ Ʃ r CR$"@ c Ω z 3B k.,@ m ة   9   *75@ v     ĩ G  h 5 A  p 'Omega46    > { 0 lj  Lh FD 0 !B C@     u^ 7  C@  7g@ 琩 <C< FF, ׷Fϰhf@   mk@  ˩ q &Zvar20t'Omega65  'Omega55ש &Zvar21'Omega64 'Omega56&Zvar22'Omega58&Zvar23'Omega59ө~@ ߠJ /@ T <7 @ \ D? B@ d 7G @l O'Omega61s * !#wfѶ@} ) ˩{b~۶@ 3 5 Gk Fr@% < s  @e=  8 @0 GI ~'Omega607 NL g      6  ҩ  V: M 1   Ӱ 5479}msC詷B&Zvar24'Omega76 'Omega66*|&Zvar25-'Omega75 t'Omega67w8q·&Zvar26;'Omega71v@oʷ&Zvar27C'Omega72tKI@ 4ZFک堷US@  N P  _]@  H  ?ge@  )P'Omega69RNF ְ i? 9 m y   ѷ'Omega68840 X]  bbLIuAo>@5 2@+*#!&Zvar28'Omega87& 'Omega77%&Zvar29'Omega86-'Omega78,3&Zvar30'Omega81©4;&Zvar31'Omega82@fː M Pƶ@r Uɠζ@z&(a Cڶ@2 EiK @#:q  @-D{'Omega844KM,$c SN'Omega83թ Et#   ְ b;dA NJ ߰ kWY asu=ҩ$ye' *ة7,mrs 6䩷Dvy! @ C  GC =7 9 [2S; wuWsqo;K Z >Y??'EFM ^kf cII/KKNN@'not_iff7G@  j  0 kX ) v gg@*pow_succ_r;9 } f( jNR0 &ж@  l @ o ީ    @ k  P   勺 ɩ M&     <,Π    6  ک,  ک a:   N>  D    ǩ O  é IƷ_ǩi @U&Zvar32η'Omega97 HЩ` 7_'Omega88  3 ^۷tܩΠ  Uj&Zvar33㷐'Omega96 ]Щ ѐw Nv'Omega89  J u &Zvar34'Omega91  ʰ&Zvar35'Omega92  ڷ}  ^Y@Of ad'Omega95  \ . x#!@bͩy]5a".'Omega94mة)hj7Bp <L Ր  C ِ * +ΐ ;ɰ) G0 Uh3 v s PQS T9ݷ&Zvar36V'Omega98 [\'^ ?D跐&Zvar37a'Omega99 fgY4k Q &Zvar38n(Omega105 Щ>u  (Omega102  ө N LI i ~ dr˰(Omega104Ġ/۠1 ] [X  -sn (Omega103ՠ@Щ8DIncH*vJ  M S- = ?   ߩ k W    ۩ b;   O C    ԩ    ϩ  JQ&Zvar39ʷ(Omega113D 1Y(Omega106 - X_&Zvar40ط(Omega112R ?g(Omega107 ;   ѩ q 3Pک3S](Omega111h   t | 1ҩWw-p(Omega110d`а ѩٰ$ Ͱ mx < / : 4I  # - ݰ  &Zvar41(Omega123 Щ  (Omega114  | $%)  &Zvar42,(Omega122 Щ3  (Omega115   9:<@$ȷ&Zvar43A(Omega117  FTз&Zvar44I(Omega118Y !  `Q7` E ȷ(Omega121 2 0 .+ o`{F1Aưpi(Omega120Tp ?4à <ŠzXI  #R  5 /|` a  I es  ĩ A iwW3 )pq T J w%Pos2Z@&inj_xIրCX z }         f̠      mӠ  Gs٠    | D w?  l  f aK  _ X V QU S[ IЩ G E ?` 7 5 3 7 *Q  f       x  l    驷     s  ө  ũ     N   z x s d b tn ` [ a f U  O G E Pv C co D I ]  > : ?   8 0  . 9 ,@Of "   @Yĩp  " @a̩x P ")*(@iԩ   1 <  5 ©rݩ  ܩ     ? q    { }FGEG y /MNLN sP m T i e#Z d    ^0$2 Z T V# Q 1n QRmSS ,Ġ 'Ơ %YZ #.     [ [      Y  ة Ҡ ˷  ǩ }  ~         ݩ                     ˩ @נB   '  @L / @T 7 :@\  ? sB  t r fe w y d ` X T' NU H B @ : 86 |ηͩϩ$ d& 2 r ׷֩  0ک/ ~k3 , 9 ( (? $  ީ0 4   ݐ N P 4g     3wЩ0 k e c _ h O C 8 P 6 4 ; ,  % z >  =     @ ٰʠ z J !"   )*   1 E2 F 5 n6 o <:@{ Lɩ <C̷DB@-ѩ ELJ@ -z٩ LSTR@ 5  [n pj     ˰u nm~hv; rsq<sȠ ʠ  ]""{|zE| f~Ӡ Fՠ +M٠`/ Sߠ^5Π9X;`  b    M aME' \ S YL DT   T 3 >=<B51EO 3@8;:8" @&inj_xO܀/CtڠܩڵF@nu©Ʃ@˩y5$_tmp kGƷԩ֩%lemma`)Morphisms'Classes@9iff_flip_impl_subrelation2VAސ-hԠ@)lt_succ_rMw_kiC;נqߐީַ⩷T  ٷ֩!@ǩ  !   " FЩ'  L  +,.2 |3U 3I: hװ.L~,;WH>.h蠷LJ@ ٩ TR@W[Y@   dΩ Ok?/ҩpQC@à |eL'ĩU"˩ 2de  Xh [k )Coq_ZArith_Zpow_facts_Zpower_mod_subproofny#][!; *Coq_ZArith_Zpow_facts_Zpower_mod_subproof0 *Coq_ZArith_Zpow_facts_Zpower_mod_subproof1}0Ȑ!o@+le_gt_cases*VϠ:TYBAAAA@@@@@D@cܠ"a@&moduloNH/o@1,րy)- | f33B$Wf_Z@+natlike_ind{ зש٩}ީ#'(+"S~귐"Hq﷐#Rec8C<@ <ͰJSLP^YxZNW ʠ^Ynoi-d_·(#%  6'mhq.ͷ3.0vq,G8~'ڷ@;=~7'C%E'8驚<@'mul_mod5F=T]R]+  C RT@/mul_mod_idemp_l0^U7C"\`_'hjuZCw }xCzb} 5+N ˠ]ĩ|@)pow_neg_r fcvΩ/xv·+e3f㠩V>0+(>qaM7 OZ@`A۩c@0iJénn*@,fast_OMEGA15M$||uЩ #շ !CbCcC d?@&OMEGA6.$H lǩ@*Zegal_left;6t7 26\ :bffܷ ˰@,positive_ind?Uзհ *Zpow_facts@,Zpow_mod_pos !x\ @'pow_postrans_sym_co_inv_impl_morphism'\|57/RelationClassesZ@/Equivalence_PER/;A  @.eq_equivalence()';J3N7)Su@0reflexive_properm+(VZT[[~@*respectful%WO?b-dd//@:reflexive_eq_dom_reflexive=[k mm86@,eq_ReflexiveaN3=($@>Reflexive_partial_app_morphism 2R,z@[{F ]}H_Jf-@' O    "hSo(@/eq_proper_proxy)f/>uF@*xI_succ_xO H! zN@=ҷ'2ȷ,µĩǶVuqթt۩!}$'`CٰQ/uS}458^ܠ`b ʰ@(Zpow_mod,oMQTCڰ}Y_ @4Zpow_mod_pos_correct%J C! $iܠ( n+q C.-1v5Ð ,Coq_ZArith_Zpow_facts_Zpower_divide_subproof;=#02@#sub1P@ p -Coq_ZArith_Zpow_facts_Zpower_divide_subproof0Kx2PQ~@"ex @A[a\'^Fʩsdlg2i Ok"`! r<swBy㩷F}~~IsC©M@(eq_trans!y?0Tᩚc@'f_equal=9!fmFE 5:]kN=@(mul_comm9+؀JOmSm]AqaNjb.mȩ04rP2зж@|( *cU߷ΩI}mC@#:grivW|/֐@,eq_decidableOé:@@#Zne>o= b@  `x@n @0fast_Zplus_assoc Da~a[ͷ'%@!@1fast_Zred_factor2%e1/@+J'0}:C@6ʩKC@?өTԐ@(Zne_left0߀8!iW:XY"HiF#Hpq*ZnumtheoryQ@)rel_primejPзql o%@-rel_prime_symଢ'ᩚ@+rel_prime_1UC6ַ,($"Ơ&+٩,@.rel_prime_mult p 2/xI1' 3%!!C7O)H!j6Ix"Hj{tHz@2rel_prime_Zpower_r^LfQ<A UDE!O"Hpb@%primenH@2з̶@@÷ &t3$w "}|@*prime_ge_25 Uv![@-divide_pos_le췀8^@&is_pos|1CEGO@?V %D[mc  @Lc9Ri>ƩSo"qy$tC@V©ܠ(Щ)Ʒ6*->@`|=B3rƷ=8@lV< p5 eߩF@*prime_mult5 ީ@*aGl @/prime_div_primeW`Pt S# C@L .Coq_ZArith_Zpow_facts_Zdivide_power_2_subproof"p1|"q1#Hp1Bw /Coq_ZArith_Zpow_facts_Zdivide_power_2_subproof0  "Hx=Р" /Coq_ZArith_Zpow_facts_Zdivide_power_2_subproof1Z /Coq_ZArith_Zpow_facts_Zdivide_power_2_subproof2 /Coq_ZArith_Zpow_facts_Zdivide_power_2_subproof4)'#Hq1ζ"r1 /Coq_ZArith_Zpow_facts_Zdivide_power_2_subproof5 +@.Z_lt_induction c6Ķ@T@d~t˷̩Ϸ"IHkӶ@Ơة˶Oٶڶݶ@@\+& ?@=?+I"; @4iff_impl_subrelation5C-Ӱ 𠩚@+lt_eq_cases0㜀"%!(@ @[ն@ߩ_@٩b@)le_succ_l#ڀ鐷@@ :.A/r' !@栩_=v?R@ Bs_nLtQ7G9Р&Specif@'sumbool7̂K@BAAAA@@@@@D!spq<s*[@)prime_dec%,#Hpr-1շOlz@1prime_power_prime )s-*D$4 n`@1divide_transitiveĀ*ov#w}xCzrd˩àN|@UCtǠ\ҠL}}#Hr1 ,Lɠ2ҩtY(G T|V~&Basics'Program@$flip$ @$impl7o`b%@.flip_Reflexive-,@.impl_ReflexiveJ/*Q@'mul_1_r5J(@Ƿ@۠@-.Z@2Ʃ3@7_82@1mul_lt_mono_pos_lf@@@r@E %yeV  ?fzĠZݰ=SQ @&eq_sym X\xqY"5#%`ܠe @b+>,._=i2E35tm"r2=#Hr2BUCEbG/L\0MPPȩwp;W@J\BQ吩1Lҩn =t%-͠p-2@tlŠ?r*͐ ]àѠKMKR7ũĠWLz0],ڶC@Ԡ=i`ݶ,۠gߩޠqgN.{h~ MP  ѩiж.sةzk4ŷ{@֠ Ω'Z\)f B3JFƩ,:CXEEDEDEFe1Ġ=@ȠjiL UϠPѠ @)pow_add_r Lj.Y+&MҩOa#Hq0Uک ܩ&@'le_refl/(%"p0ce @v2o÷'npV @ m>@^Bg) lp2'Ȑ"H3,#'nZŠ\]@""`k|/V@r#Hp05TRLf9JH,j=C.(N@\QHEA{={bWNK9ɩh] 6`WT4.0..DA3.S.j W׶wݠ7c|jO@+nun·éunwȩz|'w@'pow_0_r<-շLJ ض  g޷ߩK{@֠ Va@,8iŰ␷  ͩu A  а [@'mul_0_r5ذ Q e^C   @S@JkЩR .  YJ  ! "  #~J| %˩ϩ 0 1 3 l  5 8 9  ;z3 #Ƿ >MxE &Omega3 ͩWtP?y;WQ.O ;,  Sʐ/ c HC d e&R] V C q  r = tw \  w~ư (ԠxƠ 1 r8bC@ Z O F <ʐE < C@ "`[m ' s G YP@8kr N  C- +  A8 O3! S.w9 E @% F ٩  ' H b L  @  ks Nd Qʩ S˷  t +ө x  ж@  |( | ` N  f  E  ݶ@  5!I mH t  @ ' >   u><-] 0 0 ^ K/,  ީ9 :J g> aQ ꐷ!!ȩ   ! !NNci ˩) #" _  ) '! ! uTJ,=zw