"`}K$Heap'Sorting#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@h)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$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&Permut$Sets#Coq@0!?edb>(Multiset$Sets#Coq@0ڛs FѤa'BinNums'Numbers#Coq@0dmk(5Ju<*EqdepFacts%Logic#Coq@0FI$ͼՋ`)Eqdep_dec%Logic#Coq@0u wWIϰ߼)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^$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+Relations_1$Sets#Coq@0k<⪚(тc1&Sorted'Sorting#Coq@0bb1z٠*SetoidList%Lists#Coq@0k窪ܸqS'ListDec%Lists#Coq@0a&:׃j#Fin'Vectors#Coq@0r'gް؅/׸&FinFun%Logic#Coq@08@OcսtG20+Permutation'Sorting#Coq@00zVybؠ,PermutSetoid'Sorting#Coq@0 uQYc2m4)Mergesort'Sorting#Coq@0x@[w|'*mS'Sorting#Coq@0wZO͇0Q&6p smР$Heap'Sorting#Coq@A$Tree,<!AN KA@@@@ @ HA@@)Tree_Leaf)Tree_NodeBA@@C @DE@@@AB@@C@C@@@<5R@@@@@@AA@@AC@@A@AA@>@@@@AA@@"s @,Ring_polynom+setoid_ring#Coq@@&PEeval"s @@A@AA@A@)Tree_rect @ZX!P!t_@n5R@MP ɠCe@@!fVAU !aZT@Zd!F@jG(BHfit@@!F9;9t:A@C@C@@@@@@DG&"/&JH%MK!-@XVFDG> X+k() ,7'*(= R'>3 3 # '''+k$'+7 Tk$'\0'AH|@@P @]@A@A@@@(Tree_ind @ηvtrAg@Ӷ{#!|0GAH|@@@@@(Tree_rec @@@@ G <+k() 7%'h@@@@@Ġ(leA_Tree @ #leA4Relation_Definitions)Relations@(relation'JjO%Logic$Init"@$Truey@!b "T1"T2@97+)"j +k()= R'>% '6''+k6'sAE@*x@@@@@-leA_Tree_Leaf @@j@YWKIB@X7AHF=@@@@@#-leA_Tree_Node @@~Amk_]VBP!G!Dݶ@QUYTY]d@@@@@>'is_heap,<@)i}{@@ +nil_is_heap,node_is_heapz)&nl%@F|@I%@$(@I!(J$)-1AA@@@G@G@@:-)ٓ@@@@@AA@@AG@@A@BB@@@@+is_heap_ind @з·yBgvjaA\@Y]Ŷ@U\ȶ@@f-)ٓ@>]Ŷ@_Q@ KAȶ@CqlMKjqA@ie!iT$%B@G@G@@@@@@@@@@@Dl@6ouu!l:zL>.K: 1NN>F$@:8,*hfA +k(),J'(*()=( R)'> 3!3!# ' ''+k()$'+7 Tk+ 7"T'$'gGAP@@@@@+invert_heap @@lB[YMKD-@+@~;>=DKIC@#andЖw@GJN ̩ MTO]@@@@@7,is_heap_rect @@Csq(@S!F@@@@!T@@@S!@ @A@A@A,@A1?Cs@AB@@Y+is_heap_rec @@DJ@@@@@@g)low_trans @@E)leA_trans!x!y!z@@7M@Ѷ@nFJpAH@@@@@)merge_lem,<"l2)Datatypes@$list]@K"l1 'eqA_dec9϶7̩&Specif@'sumbool7̂K@@#notШ#eqA砠  @ @@@@@@+merge_exist  0.64ECD@&Sorted!@1ĭ@#@(Multiset$Sets+@#meqTy,PermutSetoid6@-list_contents(D(@&munion'#&%,@@.@%HdRel%5p@<ֶ@ lA٩ 1n<۩o7@@5GDD@r@u/@@1111@AAD@@A@FFomgexv@@@wA3XyAN@AzABAZ@~AHAI@A al@ABC@H.merge_lem_rect @=!m;@u/@!{~V"CI@@;!s$+| 04t 59!hF@p<@s?uE.A("AHL53DKO4FDD@@@@@@DB@2QX\`@ܶζٶ Lw<M͐ +k()= R ' > #' ' + k$' AH@@@V"C@P@A@A@@@-merge_lem_ind @*(lj3]@#!20(%DAH@@@@@@֠-merge_lem_rec @ 75=;LJ˶7@h  @., +)ECKIZXP T+k()7#'|@@@@@6Equivalence_instance_0 @HF/RelationClasses'ClassesJ@+Equivalence~@AЩ,@(multiset"Y@C2D IB@"eq @A@#nat@F@,multiplicity5X_]CMa__C0@)ReflexiveW+$-˩.d!H]^@'meq_sym lpwuCF@)SymmetricFgql@)meq_trans,04CS@*Transitive++-#@[' +k7 + +;'() 7#'()G'$pX@@@;@A@@u1Proper_instance_0 @@F)Morphismsu@&ProperL@t@Gu @*respectful%WO?}@~Pwyy@@$@@%merge @@GҶݶ'leA_dec2ȶ0ũɠն:̶8ʩ @ O@L_Qpw@@@@A@@|@A:I @ABCD@@Š(contents @  %\Z#Ȑ(emptyBag@(EmptyBag5𿣀QȐ,singletonBag@,SingletonBag.i @@&"t1"t2!@ECA5[6*! +k()7 7" ,='*(=  R!'> 3 7" 3 7&'''+k7$'+7 Tk7$'ࠒ0|l@dؠ%AF @@@@@%*equiv_Tree @omk_`^\VTM:۷8J򩚠@s?̀VdXd@~|pqIeG  +k() 7  7 7&'dxbx@@@@Q+insert_spec,<&z@@@@@@@,insert_existȶ?+:@@1F~}4Ivy@@F@mpnon@@DD@@>R@@@AAD@@A@FFMAd٠Ѡ@@0@0insert_spec_rect @޷ީשհݶƷwlQ@lR@v}甑g&rZ@@ )_bu"$gѰ&(k}@@*O*A(4;{ +/~ 0FDD@@@@@@D8<K@:8,*75QOBF@նFc .+"@7@/3Z^ts6AH@@@g&r@b@A@A@@@&/insert_spec_ind @pnb`mk`,XϷz~q@zxljwuZ%@?]AH@@@@@@K/insert_spec_rec @Q}#B=@@#@1Pkjx|@@@@@u&insert @@H۶Զ E B@D @? !@N@ȶWC&EL@@@Y@AO@A@ABC@@*build_heap,<ߠנ@@@@@@*heap_exist  nb@@Ұz|~Yy@@CC@@3@@@AAC@@A@EE,+)  @@@@@@ABC@ࠠ/build_heap_rect @*('%A?<;9 ֶ@]@i&\7@@ҶC*#0&A b)075#3 ECC@@@@@D/+;D>@`^RP][wu@{ 84ADHOM/leөA&K% KRYWEANQU +k()= R'>  &' '+k$'+nAF|@@i&@G@A@A@@@B.build_heap_ind @~||Htns8fbU@u?m53&PAF|@@@@@e.build_heap_rec @k[ǩV@ @Ҷضg][ P+k()7# 'x@@@@@,list_to_heap @@IնǶҶ)Z^Đ@@@g@A@_@ABC@@)flat_spec,<bt젠䠠@@@@@@*flat_existz-@@@e@ʩgk@@DD@*@7'@@@AAD@@A@EE<:%#.,@@@.flat_spec_rect @86*(53OM(J IGҩ@^'@k'n^D@@߶*s/8@h;/-j?4.mo6&q?9"A$;xBFMK''EDD@@@@@@D3YS@usgerp ;6Z_^Ŷ @'i]5mb\ީ٩S lf-$ lpwu#Q +k()= R'> #' '+k$'3zAH|@@k'n@W@A@A@@@_-flat_spec_ind @e"0UCqe@Ƕ);\J=<&XAH|@@@@@-flat_spec_rec @ʷǷ۷ESxf䩚s@U@ضʶնQcredx@@@@@,heap_to_list @@ J k_@vz@@@@A@@AA]@A@@ABCD@@Ġ(treesort @@ K    ,*&#`O$@$sig2#6@rsot@+permutation=w   @@@@A@@@ (A8ܠD9@ABCD@@@@@N K@ /@A@AP n@BS!@V"CC@Ag&r@i&@k'n@ABC ӳ2@ ӳ2[)Datatypes$Init#Coq@@A@ Գq@ Գq\ @A@ADE@cA   @A.0TQ+Ring_theory+setoid_ring#Coq@@ABA.U>[J @@AB@@@AB`@@A@b@AB@ bA1FdJ%Logic$Init#Coq@@ACDE kA1GK @ pA8ӠA4Relation_Definitions)Relations#Coq@@S@A|@BC@@ADF@@"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@h%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*CMorphisms'Classes#Coq@0qیZBeϠ0CRelationClasses'Classes#Coq@0TL;0RUfw1+Compare_dec%Arith#Coq@0jXF 8YXW@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ް؅/׸&FinFun%Logic#Coq@08@OcսtG20-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'ListDec%Lists#Coq@0a&:׃j+ListTactics%Lists#Coq@0,Jcy{ԠӠ@0\͉!Ig*Logic_Type$Init#Coq@0 1jc6"Lt%Arith#Coq@0KZ-eJkP܏#Max%Arith#Coq@04=;3$>aU堠)Mergesort'Sorting#Coq@0x@[w|'*mS#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(Multiset$Sets#Coq@0ڛs FѤa$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&Permut$Sets#Coq@0!?edb>,PermutSetoid'Sorting#Coq@0 uQYc2m4+Permutation'Sorting#Coq@00zVybؠ$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ՠ n m l@0]4Ѐd{n^2Relation_Operators)Relations#Coq@0%s鯰s)Relations#Coq@0*SetoidList%Lists#Coq@0k窪ܸqS-SetoidTactics'Classes#Coq@0S_`nOU$&Sorted'Sorting#Coq@0bb1z٠'Sorting#Coq@0wZO㔠&Specif$Init#Coq@0;RWMi\N'Sumbool$Bool#Coq@0sB ,$11.]m'Tactics$Init#Coq@0/9m+ a'Tactics'Program#Coq@03N$@@B@;@@@@@@@#_41%@!5R@A@@@@@@@@@A@@@@B@@@@@#_42'`o@D@@5R@A*type_scope@@@#_43'`o@S@O5R@AA@@@#_44'`o@a@]5R@BD@@@@@@@@2 Q@@G@#_45}@X@@@@@#_462M접@,EE@A#_47'`o@@5EP.function_scope@@@@A@A9@#_48? 3V/_rect_from_type@@@U2 Q@@D@#_49@?N@@@@@#_502M접@?NEE@A#_51'`o@@?NEC@F@@@A@A{@#_52? 3V._ind_from_type@@@!2 Q@@@#_53@?Zݠ@@@@@#_542M접@?ZEE@A#_55'`o@@&?ZEՠ@@@@A@A@#_56? 3V._rec_from_type6@2@8@E'2 Q@@@@#_57E@27 @@@@@@#_582M접T@A7DD@A#_59'`o@]@J7D@@@@@H@@2 Q@@A@#_60x@<5z@A@@@@@@@@@@#_612M접@*<5z#_62'`o@@4<5zCN@@@@|@@,2 Q@@A@#_63@7<5b@A@@@@@@@@@@#_642M접@G<5b#_65'`o@@Q<5bG@@@@@@@@@@gj@@NN$@@B@S@BB@@@@#_66@]-)ٓA@@@@@@ A@@@@@B@@@@@@#_67'`o@ @~-)ٓ@CǠ@@@@@#_68'`o@!@-)ٓ@ABݠ@@@ @#_69'`o@3@-)ٓ@BI@@@@@@@@@@#@ؠ۠㠐栐"@@2 Q@@@#_70b@w՗@@@@@@#_712M접q@w՗GG@A#_72'`o@z@w՗G6@@@@@@jA@A#@#_73? 3V._ind_from_prop@@@C2 Q@@A@#_74@N#72@A@@@@@@@@@@#_752M접@^#72#_76'`o@@h#72F@@@@@@@@jm@Z2 Q@@A@#_77@ef@A@@@@@@@@@@#_782M접@uf䐐#_79'`o@@fG@r@u@@@@A@A/@y2 Q@@A@#_80,@w@A@@@@@@@@@@#_812M접<@wᜐ#_82'`o@F@wG@@@@@@6A@Ap@2 Q@@A@#_83m@;@A@@@@@@@@@@@#_842M접~@;ߐ#_85'`o@@;HD@@@@@@@@xA.@@@9@ǠN$@@B@@@@@@#_86@u/E@@@@@@@@ A@@@@@@@@#_87'`o@@u/@F@@=*list_scope@@àA@#_88'`o@@u/@AJ@@b%')@@l@@ꠐA(+.렐䠐A@2 Q@@@#_89+@h@@@@@@@@#_902M접<@hII@A#_91'`o@E@hI@@vx@@@:=Ax{AA@#_92? 3VĐu@@w@v2 Q@@@#_93@- /@@@@@@@@#_942M접@- /II@A#_95'`o@@- /IY@@ ΠР@@@AРӠAA@#_96? 3Vڐ@@@2 Q@@_@#_97@- ;n@@@@@@@@#_982M접@- ;II@A#_99'`o@@- ;I@@c&(ik@@@ꠐA(+AAr@$_100? 3V𐠠%@H@'@ܠ2 Q@@J@$_1024@0#@A@@@@@@@@@$_1032M접C@0#@$_104'`o@K@0#A@@@2 Q@@J@$_107\@8@A@@@@@@@@@$_1082M접k@8$_109'`o@u@8A1@@@2 Q@@A@$_112@5ڢ@A@@@@@@@@@@@@@$_1132M접@5ڢ$_114'`o@@5ڢI_@@֠@٠@@@AAנݠ@2 Q@@E@$_115@?P@@@@@@@$_1162M접@?DD@A$_117'`o@@?D@\@@@۠A@2 Q@@@@$_118 @'JY=@@@@@@@$_1192M접@'JY=@$_120'`o@%@'JY=E@@@@@AȠ@N$@@B@(@@@@&@$_121I@Rà@@@@@@@@ A@@@@@@@@$_122'`o@f@R@F"@@Ԡ@@@@TWA@@$_123'`o@@R@AJB@@@@@@@@@y|A@36qA@2 Q@@<@$_124@@2@@@@@@@@$_1252M접@@II@A$_126'`o@@@I@@@@@DF@@@ŠȠA@AA@$_127? 3VM@^@@ 2 Q@@@$_128 @?K@@@@@@@@$_1292M접@?KII@A$_130'`o@&@?KI@@@@@@@A@ӠAA?@$_131? 3V_R@@T@2 Q@@@$_132`@?+Pڠ@@@@@@@@$_1332M접q@?+PII@A$_134'`o@z@?+PI6@@@@점@@@mpA@'AA@$_135? 3Vq@@@2 Q@@A@$_136@_`@A@@@@@@@@@@@@@@$_1372M접@_`Ӑ$_138'`o@@_`I@@ACE@@@@@ƠɠAAA@@N$@@B@@@@@@$_139@P@@@@@@@@ A@@@@@@@@$_140'`o@"@<@Eޠ@@S@@AN@$_141'`o@A@[@AH@@r@@@@@25Apo)@52 Q@@@$_142n@? @@@@@@@@$_1432M접@P HH@A$_144'`o@@Y HD@@@@@{~AAAi@$_145? 3V@@@&2 Q@@E@$_146@02 @@@@@@@@$_1472M접@A2HH@A$_148'`o@@J2H@@I MO@@@ΠѠA AA@$_149? 3V@ @@wV2 Q@@@$_150@`2_@@@@@@@@$_1512M접%@q2HH@A$_152'`o@.@z2H@@_@@@!$A_AA@$_153? 3V$Y@s@[@2 Q@@A@$_154h@eE@A@@@@@@@@@@@@@@$_1552M접|@eEѐ$_156'`o@@eEG B@@@@x{AAA@N$@@B@ @@@@ @$_157@'K@@@@@@@@ A@@@@@@@@$_158'`o@@'@E @@ >@@@Av@$_159'`o@@'@AI @@ \@ @ b@@@᠐䠐A"ߠA@ؠ2 Q@@ @$_160@U@@@@@@@@$_1612M접0@UHH@A$_162'`o@9@UH @@ @  @@@+.A䠐AA @$_163? 3V c@p@e@(2 Q@@ @$_164q@A @@@@@@@@$_1652M접@AHH@A$_166'`o@@AH G@@ @  @@@}A6AA]@$_167? 3V @@@ 2 Q@@ G@$_168@A#[@@@@@@@@$_1692M접@A#HH@A$_170'`o@@ A#H @@ K@ N P@@@ϠҠAAA@$_171? 3V Ґ @@ @82 Q@@A@$_172 @,@A@@@@@@@@@@@@@$_1732M접 )@1,$_174'`o@ 3@;,G @@  @@@@#&AAޠ_@>2 Q@@@@$_175 \@I(>@A@@@@@@@@@@@@@@$_1762M접 p@](>搐$_177'`o@ z@g(>G 6@@ 蠐 ꠐ 점@@loAAA@@@i]ev]>>ᄕ@a#&aۆIJ @EO*> >3@&H$&G2^9 &k%0!AN KA$Heap'Sorting#Coq@@@#leA4Relation_Definitions)Relations@(relation'JjA!aB%Logic$Init"@$Truey@AC.@(leA_Tree7C @$Tree5R@A EC75(&!b!GD!DE!H &AC?=( @3GF.B4Joma_QO"T1&4"T2*J@'is_heap-)ٓ@)/+KafȐ"H0 B@G@G@@@@@@@@@@@D!tI3@!76@z@"eq @WHADRX@#andЖw@IPO TaB WD g=$,,]`tD+|gfjw}Ȑ"H1@&eq_ind J44!e8A@C@C@@@@@@DR5AΠȀ@;@J@K@%Falsee@U@)False_induُZ跐"a0"T0@"T3h\iA!_"H2"&Ʒ"H3L(̷"H4ՐMЩ48v Nͩ?C@'f_equal=OfdPQ,+R3/7^7`ԩ"~@l?̩SB!t#8CKF˰'E6(&)$TUS$'T@2Ʃ4=LWD߰6?3e=f"`=a@(eq_ind_r!2#=m@BUcD@HViJjWeXΩnXO\)YV-ZZ{[  ; = Fs.7([*)@#t(aA'+/&*.R%){U#(m&\(-1+,19/b 09d 2?L!\EnQcEIMQDHLʶ9թuCF]!HMK%LUO )U +[bfjpaeis"H5bfn"H6WdA@==;ܩ;9@{VVp̩txԩ Aeb20$"!P@S!F7@@!X& "X0(@+@.@ذ@@ݰbf@h©e9!T 1@)Tree_rect Ҷ@Щ3O $"PG@Y?$"PD@aG"PN .4db@(and_recttԀЩ]r)7堩av-[頩z?|a47Eeq~>Q,A.W#Щ{}U6L8[NR_ B~DY9ЩH~J``dp GR&$i}*@+invert_heap#72rٷ˷@@@(Tree_rec?Z݀g#}{wuqo@'and_rec1@ki_)l[ QOIRE ?=;}@751向)leA_trans!x궐!y׶!z@ @@(Tree_ind?N؀ϷԶ˶@ @ةxԷ ۷ַթ g߷ܶѶӶ@@  M緐"t0x$@!@TX(/VH\^*=!6]18a 6;C(5=7?_]W(Multiset$Sets`@(multiset"Y@Qa 7@#meqTy?UZ"x'+"y')"H'ch#@)meq_congr,''&4Tj:oC)Morphisms'Classes@*respectful%WO?(H7@&munion'BOC@&ProperL@H@<IjL@M@>#PP#eqA'leA_decm&Specif@'sumbool7̂K@yz'eqA_decz @#notШ@@%merge"l1)Datatypes@$list]@@&Sorted@1ĭ@߶"l25@@)merge_lemu/@Vc萷'%ut)k `m-A@B@B@@@@@D!l90ȩ0.2" 04ԠΩ68vDA=-A(=AΩ ?@ P@#nat@@,multiplicity5(*,PermutSetoidE@-list_contents(D4_'6 8c8Cac!eg*>hm@%HdRel%5p@JqJT EMHMKyx|SzBXSX@@&merge0]T_gGVaI06f\O^qzsNMPxHORg'J4wwX^sZp(X[a{0Z=<x\LC^aE@2munion_empty_right(~ifhN@,SingletonBag.ioxRpqzSCIstu~$wxy{ew~/hfzhC@@nXl_Z"l0SiȐ!s,!1%@,sumbool_rectⴀ2c~eg#Hle @*Sorted_inv |rPZvx_BBB@@@@D@i#!# RȐ!mũ)*FDD@@@@@@D6 ʰ:ΰаP%_]3U,1ڰ,   `d88@g> @^k=1<_,6(r©tvEMx {B}9U BS[ĵ%lemma 8/<6>@=trans_co_eq_inv_impl_morphism&ni$-2 /RelationClasses@6Equivalence_TransitiveW  k@6Equivalence_instance_00#EG.^IOKMdOJfQP#@>Reflexive_partial_app_morphism 2R,("m2+XX+///--$/@1Proper_instance_085!8@6reflexive_proper_proxy5=;:@5Equivalence_Reflexivetrans_sym_co_inv_impl_morphism'\|pnm@/Equivalence_PER/;j]3kcm]3렩@*munion_ass1QP%#@+reflexivity(ϓ/%O*C+-t}/1x"a14#7ʷ#`ЩB@)HdRel_inv0COAP<@X51/_4T*5-7Z̩!0$C}OKͰ!Ω$'%|PP@V @TQH(U(W*D`Y [1d$-/1H3f,xt( !, ,ȩԠʩ8Cȩ0$+)( ]"_$a&c栩`@+munion_comm!)OZ35.I$DBA9v1;x7꩷`kD\FZ$USRJBL<N:,]5[0.-H'ku db!ՠl(\\ H,SRPO5L,WVTSz9| =   %CkC]fߩѐ`^][KIö @ @z n Ȑ(emptyBag@(EmptyBag5𿣀Ȑ,singletonBagͩ۩#@,is_heap_rectfKNI@+insert_specR@*QU*%(V A(W[0YZ3B$_c8%@-leA_Tree_Leaf<5z8Ajn]l8,&IͰK8@(contents?̀R}ȩ69TC} 'ܰ,(^2N[c^G]_b63VckPfY[f9ixO^<OpKQJMSmu,zMP=QwHX6JQZ|47<>ǩf0D_@ z@0insert_spec_rect@$:Ni!iu$?Snĩw &AiQ"ȷ+ C&,O%Y'1`*)]+5dw*@,g@(,%*l(048Bnm2o4$6:5{@/treesort_twist19#iŀ@|BJT~DLVQHPZC|JLT^WNPXb  QשSNS٩P^T$n Oq Mt&HeapT3K%ConT3pKsrI뷐#LeAs@uI(tx|Dvȩ$x|ʩ@)low_trans;߀ -ͩ   ﵩ@/treesort_twist29#iƀKIFGE CC"b0A2?DCLC!A?31wu?,$"+9a@)list_rect ]ƀ3jj#@*build_heap@h= A 5x'yCCI?3-{} 6SC+ W÷X9'^K@/build_heap_rect  e`C1hc3bjөd7Q+٩hppi`Ibu@*dwr$Wfq0^XZit3aGV\k~+X87,a"i0(^d"m06`@bkdDfoV ˶hb@d@?S&AR^ Wkr{JYjCD\pm^@)meq_trans,04d.fh٩j4lgnljqs=u  v@)meq_right,+Qn| ~@'meq_sym Cw1@&insert_`Ӏ$Ր@>=;+)ש|ϩLܶ57!hR_ @)flat_spec'@A$_l"Ad)gA*. n46 Cv w<9ԩ:   d0 C&6٩ @.flat_spec_rectU @B [ig"s1` 7"i1 8@ ) >e ; "m1Щn .' r$bud  ?JRsڷ"s2 Y"i2 Zڶ@ K `M ] -ɩ; L T@.merge_lem_recth$ 9g < )CJMu {t)ǩT {˩XZ ="h0 @IL @LJO N{L w I$S  JU!<PCW# cJZ& f  (ɠ*m W,vC̰b df -Rd + a C j@ hm  dj5;Vnl _5 kv;xn3>{q.;JB 7©F; < J5?UA d  7@(meq_left2i 2[]@-munion_rotate!"%' !  C3_V5aV @,5ڢ$gkosw h       򐑷    ][ZXHF   i v    թ l y   a@$sig2#6@   6թ 8 z   H~  =ܩ ?      A E  !f3  F J  а   ' R ީ  ) T )t`mWI , @    2    /    1 `   3 b 9A̷9˷:Ω   $ >   & @ H  - "  $ 9 L © & ; N $ ( = P   P =@,heap_to_list, W ~    < R D@,list_to_heapeEр     # ) ^C[,Y-[/9@+permutation=w   ! e j>Os9