"`!!o(,FSetWeakList%FSets#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@)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ֱ$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+Relations_1$Sets#Coq@0k<⪚(тc1&Sorted'Sorting#Coq@0bb1z٠*SetoidList%Lists#Coq@0k窪ܸqS+OrderedType*Structures#Coq@0#73t1E iW-DecidableType*Structures#Coq@0kO!Z7+-FSetInterface%FSets#Coq@0^s h@ >Eb 驠'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,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@04)FSetFacts%FSets#Coq@0;yD.5[l-RelationPairs'Classes#Coq@0CjN-MSetInterface%MSets#Coq@0x* .>S)MSetFacts%MSets#Coq@0ss|BEo_vWLH*FSetCompat%FSets#Coq@0 [çm).E,MSetWeakList%MSets#Coq@0BǡVCLBLzbxc_t*GA焕4PD[ҠР,FSetWeakList%FSets#Coq@A$MakeA@!X@!t @J %'A*Equalities*Structures#Coq@@@@@ %'@ @A@A@@@AA@@A@"eq @^@)@%>~@.@*>~A@@@@@'eq_refl @@!x@@<>~E@&>0A@@@@@0&eq_sym @@U@Q>~!y\@X>~@b@C>0Bi@J>0C@@@@@T(eq_trans @@;y@u>~$~@z>~!z@>~@@l>0")@@s>0@x>0E/@@@@@&eq_dec @@i@>~R@>~&Specif$Init@'sumbool7̂K@@>0\%Logic@#notШ@>0k@@@@@@-DecidableType*Structures#Coq@-DecidableType@@@@>~@@>~J@@A@>0@@"eq>0^@@A@AB@!E @@@@>~@ %'A*Equalities*Structures @@@ >~@@ %'@@A@A@@@"eq @#@ >0@@)0>@$$6 ,@/@>0@@@@@ @>@+-0@!x@,$6Ȉ$H@+-0@@@@@0 @W@RM@4!y7@򐑠`@RM@@@@@H @o@n @1LMO@3@5ݐy@ n @@@@@aߐ @@R6k@Je1f&Specif$Init@7̂K@:%Logic @#notШD@R6k@@@@@@@@@@@A@$6 @@$6 @A@$6Ȉ@@$6Ȉ@A@AB@"X'*Equalities*Structures#Coq@)Update_DTА @@ƐS!E*Equalities*Structures#Coq@@!t1Th+@@ @A@ .@@@A@@@@@AA@@A@Ґ @@@E@*U"@͐.@"eq1To%"@@@@@͐ @@@*\ǐD@'eq_refli;8@@@@@2̐ @@/0@Y@&eq_sym'PM@@@@@G @@DEF@.@0p@(eq_transV܄gd@@@@@^ @@ [\à-/@&eq_dec'}z@@@@@t(eq_equiv @@@O!F@@ @@[ @]i@A@Pk@@Pk@1Th+@A@AP@@{P@}1To@A@BC/$*"@@'/$*"@)'@A@/$@@@Z/$@ϑ@\'@A@A0Sa@@G0Sađ@IV܄@A@BD@A@@N@@ $@Pk@@PkJˀ@A@AP@@P^@A@BC/$*"&"D@A@(UpdateEqƠ@@@A@@@/RelationClasses'Classes@+Equivalence~@@@@A݋X_A @A@@@@@@@@QV@ @QV@+-0@A@A*U"@@*U"@>~@A@*\@@*\@>0@A@A:u@@z:uّ@|R6k@A@:u@@:u@RM@A@;{@$@;{@n @A@ABCD,$MSet,MSetWeakList%MSets#Coq@$Make=#Raw,MSetWeakList%MSets#Coq@'MakeRaw#elt @@A!X@!t$٠@@B+@]*U"@/@!t*U"J%@A@*\@6@"eq*\^ @A@A:uZVCD@A@0>LI@A@@@@@%Z@@%ZJ@@A@%@@%֠^@@A@AB@A@D=O@@@A@@@@@@AA@@A@C @)Datatypes@$list]@_fn@Z6@HA@_867 k)Datatypes$Initw@@$list]@L #Ops@}2SDp^ZL@@@z}@@$@@u$\@A@$U@@q$U[@A@AB@A@\Y@A@@@@A alL@A@@\%empty @[AT@S@6ꃀ(Gk}1%@@!@@y(is_empty @!lyA@B@B@@@@@A @$boolZ'@A@@ B@5 +k= R'>H'G''+k6'{@$boolZ'@A*)(@@ABABtѠ͠sg@@@@@#mem @A@ !sgBjANM@@@@@D LԠAƷZBAAAA@@@@@A Dȩ_@@:u @ _@ F@, ,Rk(*()=- R8'> 7!= R'>G'>3%''H''+k6'+k6'+7Tk+7T'6'ࠒ@2UwF @DV hР&Specif@'sumbool7̂K@B543AABAACs@L$S@&eq_dec4W+|Р@A@@@@@D{AEX[IE7@@@@@1#add @A@ G-vېJ0yt{>C@B9,::Ftmf@mk@k B.c@ ,Wk(*()=/ R='> 7!= R '>'>3! :''G :''+k6'+k6'+7Tk+7T'6'Р'@2C`8,|Р^@BXAC@5@R3|KAPAEX7+@@'@@)singleton @s?u&@v# (+kG :'PD@@@@@&remove @A@ gBdH,^à@]@p ,Tk(*()=/ R:'> 7!= R'>'>3! :''G''+k6'+k6'+7Tk+7T'6'РZT,pXACV|RAEXԠ|@@x@@Р$fold @!B wD,MSetWeakList%MSets%@@!f@Զ@$List%Lists4@)fold_leftɀրᩚ&Basics'Program@@$flip$@*(@@ l+k() 777 7&'"%Lists@!ɀ֐XߠLt"'Program@!$|Q?;-@@ w@M@A@A@jA&A@AmA!s̓P8@WA%tH@[A!t Q@@_A!uRD@ABCD@@?%union @{ਗ਼4@z6;暠9@6zM@@쐐 <+k777&'`'@2?h,@32Xs'@@@A@A@@q$diff @"s'5j@'~a@  P+k() 777#'.p1x[@WhƠVJ@@@@@%inter @?-@`BD@@@@@@@@A!b(M@6nX@9 +k()G + 77#'() 7!= R' 7%'''+k6'Рexh@@#mem2p,@%$#@@A@ABt @@@@ᠠ&subset @p@t"nc@6d@*}k H+k() 7!7$'@2VÐh@t8&"Ƞ@@@@@%equal @L@$andb= @Blt#@2 \+k() 7! 7!7%'@O |h @=HhVRD@@@@@@&filter @A@ k@=nQ]COr:J= x\@ ,Rk(*()=- R8'> = R' 3! :' 3%''G''+k6'+k6'+ +7TTk+7T'6'6'Р L$4xʐABAEX9-@@)@@'for_all @A@ AƐC-A=@ ,Lk(*()=' R2'> = R' 3%'H''G''+k6'+k6'+ +7TTk+7T'6'6'РEo`4 AB>AEXҠΠth@@@@@'exists_ @A@ ;|fʠ7P&9y@u@C ,Lk(*()=' R2'> = R'G' 3%''H''+k6'+k6'+ +7TTk+7T'6'6'Р}`=4 ABv 3!= RC'> = R"' ::' : :'''6''+k677%'+k677%'+k677%'+ +7TTk+7T'677%'6' $|t`|A@@L@Р&@It@B876ABAE  ABࠐAGXs'@@@A ϲ6Wc@A вuXg@@ABC@@x(cardinal @v@&length䷀s@!~@#nat@ 4+k77%'_Xn@䷐`͠]Q@@@A o@A@@(elements @J@K<+k'֠ҠĠxl@@h@@&choose @a@&option >v@͠ B÷÷WϩA@w +k= R'>9'G''+k67$'@ >v@}CABt# @@@9A ůM@A@@$IsOk @*SetoidList@&NoDupA @@@\, 677!k#Coq@@ @TA^ts @_$ِL @"eq$UDeSOA@@@yAi0A2@A@@?"Ok @{AoE@~c6h.`(Xxtf@@%@@`"ok @)W@.6Wll@  lS (+k()'@@E@@(NoDup_Ok @w"ndD@{F#4à@@^@@$isok @@@ (*!!a0@$negbM@ ,5k*(= R'>3 7!7 7%'G''+k6'+77 Tk6'𠑑@]@@V @1Z'@ؠ@=A_^5AEL@,Vs|%@6  @@@@%Equal @1Q멚@#iffС)@#InA q9@W4 Y6 @E+ +k() +7T' 777  7777%'Р`XRt%Logic^@%С)@$ q9@haOK=@@@@@AB@@9&Subset @u01/@>>l % @6 +k() +7T' +  777T'777#''x!pt,xtf@@)@@`%Empty @WU]@[ |+k+7T' 7777$'РMPGHdRX^@#notШh@@Q@@'For_all @!P@@A@0 +k() +7T'+  777T'$'|xtvp~ܠʠƠ@@{@@&Exists @&$k@"ex @  t@#andЖw@ ^@3 +k() + 77%'  7777%'Р|tt@Жw@@& @| @@@@@ 2A1@D@ABC@@)In_compat @/ @K@)Morphisms@&ProperL@ W @*respectful%WO? ^ ; 0@ H @ @@@@ aAviA@@ABC@@((mem_spec @_MI;@{AhͶ ;!!H9#@@@@?(isok_iff @vd`R@BL6é<@6%@@@@@W'isok_Ok @|xj@CZ@א@@@@@g(add_spec @z@D  z` aa"Hs R{v   ]2 X 0@"or @  b   j@@S@@&add_ok @Š@E3 f2R x@@@@@+remove_spec @٠Ǡà@FG  ;9   87/ g2@@@@)remove_ok @ޠ@Gb >aP @@@@@Ѡ,singleton_ok @@$H ɩs@c)ʀu@@@@@砠.singleton_spec @ @:I ߶  A   Ԑ@@@@(empty_ok @4"@PJ@7T8@@@@*empty_spec @H62$@dK @7/@@@@@$-is_empty_spec @[IE7@wLdɩ1Jǐ@@@@@9.elements_spec1 @p^ZL@My޶ L2GB  p F7@:PA@@@@R/elements_spec2w @wse@NY  @@)@@d)fold_spec @w@O !A c@@!i x@jzg X9 Z ~ a \pr ^ ^ <X f@@ @@A@A@b@A_@A\@ABA@A[@AY@!A1DH C@ABCD@@(union_ok @Ѡ@P?-@r"H0A@q7tʀ @@@@@*union_spec @۠נ@ Q[I\ OM#Hs'Pɠ    xN    |   @@@@נ(inter_ok @ @ *R|j}X=Y|@M7\ǀ;@@@@@*inter_spec @ '   @ CS0 : M * ܩ8A7@@@@ 'diff_ok @ @ . * @ \TIo*i@@@@@ )diff_spec @ U C ? 1@ qU^öĶ 2 h/* { X Bfoe e@@@@ :+subset_spec @ q _ [ M@ Vz߶J4- ;@la@@@@ V*equal_spec @  { w i@ W׶ةfPݩ V@\7UA۩ [@|7ۀ@@;@@ v,choose_spec1 @    @ X   o@m s@nZ1H@@@T@@AB@@ ,choose_spec2 @ Ƞ   @ Y 6@֩2ϩH@@@@ -cardinal_spec @ ܠ ʠ Ơ @ Z J<H, @?2s_9 q@@@@ ,filter_spec' @   ߠ @ [ c  |@    @jy〠  @@@@A @ A1FdJ @ A1GK @ABC@@ ⠠+filter_spec @    @ 5\ "   ۶ @@ = h ? j ߐ l  E " ԩ-  :. v  p@@@@@AB@@ )filter_ok @ ? - ) @ [] H 0ŶI @@@@@ ,for_all_spec @ S A = /@ o^ \ Dٶ@9+  @%r   @ _R @ &# p  @@@@A@@ @+exists_spec @ w e a S@ _  h@]O9 Ʃ ?@$KyZ 0 ĩ D@,$@@ @@ _/partition_spec1 @    r@ `  @| e@#fst    c@O  Tc@@@E@A]@ A ӳ2[ u@AB A Գq\ x@ 0@@@ABCD@@ /partition_spec2 @     @ a  0H@+ @#snd,Ҡ   ~@@@o@A@ S@@@ABCD@@ .partition_ok1' @  Ӡ Ϡ @ b  SEQl  @   Q [ [LƩ    o@@@@ Ƞ.partition_ok2' @    @ c  m_k  ö@ #  ֩?@@@@ ޠ-partition_ok1 @    @ 1d   _@@@@@ -partition_ok2 @ (   @ De 1  rf@@@@@ "In @@  ULDT L : 6 (@@@@ " O @@\@6, ] K G 9@@@@@ 3  @2@/equivlist_equiv\h  f @ ,;@ 5 2@ u6 (6777"k5@\h\0T*L6@(eq_equiv5h@D   | n@@-@@ h@@@@ ʐ@ Ē !EA @ @ I!D-MSetInterface%MSets#Coq@@!t  @@J!M   @A@@  @A@)WRaw2Sets  @A@@ @@@AA@@A@ ̐ @ @@ @  0@"eq¤ ݠ ˠ'!@@@@@  @z@ WC@(eq_equiv>  ޠ:41@@ T@@+m @ @     ]@&eq_decՠ  TNK@@@@@E@@@@@ Iv ;@A@ -@@  - _@A@A -.@@  -. \@A@ ]#@ @  ]# Z@A@( F@@ #( F u@A@ABC;Z@ Y@p;ZʠJ@@A@;ZF@ ^@N;ZF^@@A@AD@ < @K@BG@@!tD = +~@@H@@@A@@G@@@@.@A@¤@@z¤,@A@AB@A@+WRaw2SetsOn@A@@@@@@AA@@A@"t_,<@@/C ]@@#Mkt$this ޶%is_ok @@@AB@ BB@ @!2/@@@@@AAB@BA@@@@@@@0 @ @;2/@@$%@@@@@ q4 2W@  +k= R '>''+k6'Р_@Vŭ@@=>0ABpH@ &x   ~r@@@@@mV @=<4?>:@@g2%岀<j FhD@JI +k= R '>''+k7 7$'6`ABp7@z{|5@"Ok   ?96@@@@@ @o@,6k]D  \VSՠϠ@@@@@ @@ 52 ,@:2'D @6耠\@  8  H+k()7 7%'Qd@"In t D 2@@@@@) @ Y- .y4(@(2,Z @ d8 9J +k() +7T' 7! 7!7%'%Logic$Init6@#iffС)p@#eltSt@;‹dP ~ lȠ A;/@@@@@* @ g hn@99<@4 +k() +7T' +  7!T'7%''t$d  c]Q@@@@@L @ 1V@ `+k+7T' 7!7$'HdE@Y@#notШL Ǡ  x@@@@@s @@· @~ S@ +k() +7T'+  7!T'$'qtnd  ؠ4.+@@@@@ @7# ԩ۷ܩ @% +k() + 77%'  7!7%'@#andЖw@t@"ex @|th hb_۠@@@@A@@ˠ > @  5  M@  8  x@#mem StVdC1@@@@@  @*1 Y-A *@@2@=D l@@ |+k()7 7 7" 7 7!:'@#add Kd@&add_okڤDTx@  {dq͠ǠĠF@4@@@@@/ Ő @jq m@ gU@=@75@&remove[,ZdTx@)remove_okMD4dxrf@@@@@a  @q@ .@ @+k7 7 :'@,singleton_ok4.X!@)singleton)XmhϠ+%"@@@@@ | @ ʷ I˩! n"@1( u@ض Wِ +k()7 7 7 7 7 7 7 7!:'N@(union_ok+1њh$|\L|lZ@%union md^[ݠנ@@@@@Ơ V @/ נ9@+17@53@%inter j@(inter_ok-e'9h\|\Lˠ|lL: @@@@@  @a5 6  @k@+?oi@ge@'diff_ok5rh|\L@$diff ,|l~lȠ A;/@@@@@* H @g h@j kא T+k()7 7 7%'@%equal p@tdf`T@@@@@O  @  e@%#@&subsetd@ؠtdŠ v@@@@@qC @@>1@<67:k(@%empty ېL.@(empty_okԐDܠ82/@@@@@O @ש +@͐ 8+k7 7$'XP@(is_empty8PdZTQӠ͠@@@@@ A @%M@'%q@(elements5dGX4"~xu@@@@ࠠ N @Iq@K M$HdX@&choose*dWE@@ 6@@a @ǔV@j@@Z@MXuI "@ `zNB L+k()7 7&'d@$fold jxtРʠǠIC7@@V@@&@A@A@(A.hB(@A@@8  @u@w 琐@(cardinaldXqk_@@@@@Z H @@l@( ʀi@ cbTx@&filterd[d"@)filter_ok>OcuKd@-partition_ok1>cuJ@)partition/}t|tXd)Datatypes @#fst ܠD @#sndrΠȠŠGA5@@@%A @A&A @(A@*A@ABC@@8 n @ݠ_YM@@ q@@ j l e ~T@@@HA _@AIA@KA@ d@ABC@@Z @'@ 2ܜ@@@%EqualJr~ɠ  z@@@@@u @٠Ǡ#@2ANL@2.@@@AG@A@@b @"s0_@{|@@@@DgfSթΐm _ k#s'0ut* -۩ݐi|  z3|Z  A` հbe@@@@@@@@DFl é oHI䠷 ѩ }G$yA%lemma  !  @9iff_flip_impl_subrelation2VA# %@(symmetry0xjF -@-iff_Symmetric!x2. @%<Ȑ!eUW ԐC )[@'eq_rect=߀b ߐIfIPIgi  ;mo d TT # BRéBONLJ _@2subrelation_properJ7(  \ l l.Morphisms_Prop@0not_iff_morphism Z f v@$impl7ot@$unitUe@A @6subrelation_respectful>6z    @0subrelation_reflv   uol` {Ȑ#HeqG@o!y yM@ X Ȑ"H1X@&eq_ind J$w%'c@$Truey@i@%Falsee@ A+ r@)False_induُCy ]@ +k= RA'> +''= R '>G 7!= R'+'+|'$''h P4G7  +Z7 77 G7  +F7 7777!L7!77"7777L7!77"7!79'''+ P4G7  +7 77 G7  +7 7777!L7!77"7777L7!77"7! '6  677777777!77777L  67777777777  67777 +k7T7 9'/   L7!77M7!L77ML +L7777%'= R'6'6''+k6'''6'+k+ 7!77"T'7!7 7!7%'+k:7!7 :7!7%'+k+7T'7!7 7!7%'@=@ e@(`@AJp[@*equal_spec'Ƞ4)Morphisms'Classes@2VA젒 @*respectful%WO?Р/RelationClasses@(symmetry0xj|@J7H$H@$l@& X&Basics'Program@$flip$ @"eqĢ  t ࠑ@$boolZ'@ @Pp 4DdA@ Zࠐ@EDC@@A@A@h@G䠒@|uُ0AX< XP,t_@v 4@ J@ H~h,L&Specif#@'sumbool7̂K@   h|@>6z`4@&eq_sym X<@X @HXxC@y@|@S!xdt@ 7o젒 t蠒U@(eq_trans!y䀠à t@@@@@o u @Ӡ@,B  %K@2q#@@@@@ c @ݠ930@HCжOѩ ʠ Ag@2~?E@@@@@  @ VPMϠɠ@eDl 砩 Ѱ^@ \@ ?L"Ԑ@@@@@ɠ  @-wqn@E@ 2kـ@2 @@@@@䠠  @H6 @FU)" @$%@@@@@ ǐ @dR'!@GqEDK+L@?@2i! Ƞ Q!@@@@@  @q͠ǠĠF@4@HdcjJk_7^@:x@ @ r@@@@@@  @gaU@IjW~@Vf- @@@@@\ Ԑ @   }q@ J t9@c3 [ $}@@@@@z  @ޠ̠ ( " @ 7K>ƩW@"2!y @@@@@  @ F @ =@ UL ݶ\޶ؠשu@m2$:%`@@@@@  @  e _ \ޠؠ@ tM( Xl@@ @  ة@32$x Z䩚@d5S@@X@@A@A@SgA@AA@A @@B&@ABCD@@ z @UC      @ Nb6@.\+4ƩD-ɐ@@@@  Y @q_    4 . "@ O~RQXg@ \N&)@ Y/  Y@@ @@ . @ @ ܠ ֠ Ӡ U O C@ Psݶ@ |nX婚 @!n;3O㩚 @ CU@@ A@@ R @ @    y s g@ Q@ |  /@s 4@=BiT$@@ c@@ t C @ؠƠ "     @ 1R#@ ©& F Q@Sʀk@@@^@]@@ABC@@  8 @ C = :   @ RSڶD@ G ;! 6@@@@   @ ] W T ֠ Р @ lT :Đ@@@@ Ǡ  @+ u o l   @ U8 O,ϐ@@@@ ۠  @?-      @ VL  &@ @_ǩI 0@@+@@   @\J      @ Wi =@!ʩgF5@@C@@ @@@@@ @A@ -@@6 -@A@A -.@@e -.@A@ ]#@ @Q ]#@A@( F@@( F@A@ABC;Z@ @ ;Z ]@A@;ZF@ @ ;ZF \@A@AD렠#elt @@!E*FSetCompat%FSets#Coq@@!t"%5@@A!M   @ܠ64;Z@!E@!t;ZʠJ@A@;ZF@@"eq;ZF^@A@AD@A@@@&@A@.Backport_WSets@A@@ %'A*Equalities*Structures#Coq@@@A6@@@@@AA@@"s @,Ring_polynom+setoid_ring#Coq@@&PEeval"s @@A@AA@A@N @AS^@X&wW>:@/C-MSetInterface%MSets#Coq@@@jQM@@@@@4"In @%@ &}#za]@@4@;/@9@;Atp@@@@@W%Equal @!s~@ "s' !a @(%Logic$Init@#iffС)@LACBà@-~@;*@;K +k() +7T' 7! 7!7%'-p5t'dPʠ@@@@@&Subset @VTNULJ@;;36ܠ@_@;\@;2 +k() +7T' +  7!T'7%'ctUd@@@@@۠%Empty @yws@#notШf&  @@0;] `+k+7T' 7!7$'d@L?&"@@@@@ 'For_all @!P@ȷ!x@DX?;@@@u;/۶ɚ@i; +k() +7T'+  7!T'$'ǐtdu\X@@@@@?&Exists @64穛@"ex @:䩛@#andЖw@ԩ֐ؠ}y@N@R@;/X@;A +k() + 77%'  7!7%'#t0|th@@@A1@D%Logic$Init#Coq@@A@@%empty @@ 'i^sנ@@; ɠ@@@@@(is_empty @@ 1٠@@@;)Datatypes$Init#Coq@@$boolZ'@ @@@@@ՠ#mem @@ &뀠@@@6;/@@);..@@@@@#add @@ &〠>%!@@@Y;/@@L;@P;S:6@@@@@)singleton @@ ѷcJF@@@~;/󀚠!@p;sZV@@@@@=&remove @.@ 8<jf@@=@;/@B@;F@;{@@@@@b%union @S@ '@@@b@;@g@;k@;@@@@@%inter @x@ 'qr͠@@@;@@;@;ɠ@@@@@$diff @@ &٠@@@;@@;@;@@@@@Ѡ"eq @@ &:@@@ ;@@%;'@%Equal'*-+@@@@@&eq_dec @@ 6gu;"@@E;@K;&Specif$Init#Coq@@'sumbool7̂K@@P;BA@@#notШ#@c;BA>x_[@@@@@B%equal @3@ 'i6ok@@B@;@G@;~@@@@@e&subset @V@ 8@@e@;@j@;@@@@@$fold @y@ &Π@!AJA@@@@@;/@"@@;@(Ҡ@@J@@A@A@.hBB@A@@'for_all @@ 鋭@@@@;/󀛠@@;@@@@@ᠠ'exists_ @@ `' @@@@C;/󀛠6@@8;==$ @@@@@&filter @@ 6M40@@@@i;/󀛠\@@^;@b;eLH@@@@@/)partition @ @  Du\X@@@0@;/󀛠@7@;)Datatypes$Init#Coq@@$prodt@J@;N@;,@@@IA ϲ6W@@PA вuX@AB@@u(cardinal @f@ "{@@u@;@#nat@͠@@@@@(elements @@ *èݠĠ@@@;@$list]@@;/󀐑ܠ@@@A alU@A@@à&choose @@ 6  @@@;@&option >v@@0;/󀐑!@@@A ůM@A@@"MFA#eqb @G!yJР&Specif@'sumbool7̂K@BAAAA@@@@@A_@G"%󱀠7)Datatypes@$boolZ'@p@6@A@BqXT@#5@z>~@:@>~& +k() 7!= R'>G'>H''+k6'Р&Specif$Init#Coq@@O7̂K@BNMLAABAAAP)Datatypes@$boolZ'@@!E)MSetFacts%MSets@&eq_dec.h@@B!M (@@@6-q@!E@!t6-qРJ@!t"%5@A@6-yL@@"eq6-yL^ @"eq"%@A@AB@A@%&WFacts@@@A@@@A.-1@@$@7+@*$J@@A@@0@"^@@A@AB@A@@@N?7@@$@<@;$@A@@@@2@A@AB@A@*(WFactsOn-@@@A@@@@@@AA@@"s @,Ring_polynom+setoid_ring#Coq@@&PEeval"s @@A@AA@A@$In_1 @!rNF5'@r@%@/2'Dݚ*@F2/@K2@@0>0@;@2,署A@2,E@@@/C-MSetInterface%MSetsZAviA)Morphisms'Classes`@A@@S%mem_1 @dKGxj@AӚh@r2'D m@2@s@ 2,@t @+@v2q@@@@@%mem_2 @yu@B@2'DN@2@)O@2qB@@2,@@@@@'equal_1 @ Ϡ@ C*@2'D&@2'D@@?2ܜ~W}@[2~q@@@@@Ԡ'equal_2 @̠Ƞ6 @6DT@2'DP@2'D@|@2~@p2ܜ*@@@@@(subset_1 @_;3"@_E}@2'Dy@!2'D@@<?L"ѩЩ$@SÐ@@@@@&(subset_2 @7d\K=@F;@E2'D@@J2'D@ΰH@穚M@l?L"|@@@@@O*is_empty_1 @`GCtf@GϚd@n2'D@j@[2kـީq@$#@@@@@s*is_empty_2 @kgՠ@H󚠐@2'D@<@$/@2kـG@@@@@%add_1 @ՠ͠@I@2'Dd@2@2@ @>0p@Y2, @2i@@@ %'A*Equalities*StructuresA݋X_A/RelationClasses@A@@ՠ%add_2 @͠ɠ7 @7JU@2'D@ 2@2@@2,F@2,G@2iʐ@@@@@%add_3 @iE=,@iK@&2'DԚ!@=2񚠐&@B2@ @)>0@4@2,|:@2i?@2,@@x@@A(remove_1 @R95wfX@LV@`2'D[@w2+`@|2@!+@a>0Pm@2,s@:x8@@@@u(remove_2 @miנ@M@2'DB@2_@2@!a@>0P@@:2,V@@2,󩚠@=:xbm@@@@(remove_3 @ ֠@N1@2'D~@2@2@@n2,"@k:x񩚠@y2,?@@@@@㠠+singleton_1 @۠נE!@EO@ 2Ț@ 2@ @2,O @Vf!@ >0=@@G@@+singleton_2 @ !  rNF5'@rPؚ %@ A2 *@ F2@!@+>0䩚 5@2,} ;@Vf@@u@@>'union_1 @ O 6 2|tcU@Q S@ ]2'D X@ b2'D ]@ y2@ c@2, i@3 @"or @ v@ 2,ԩ {@ 2,@@@@@}'union_2 @  u qߠ@R @ 2'D @ 2'DO @ 2@ @ :2, @ ?2,署 @3 a@@@@@'union_3 @   ՠ@S 0 @ 2'D , @ 2'D @ 2@ @ m2,  @ r2, " @J3 3@@@@@⠠'inter_1 @  ڠ ֠D @DT b @ 2'D ^ @ 2'D @ 2@ @ 2, S @R2!< @ 2,p@@@@@'inter_2 @ %  vRJ9+@vU  )@ 32'D  .@ 82'D暠 3@ O2@ 9@ 2,  ?@2!n D@ 2, Y@@@@@F'inter_3 @ W > :|k]@V ƚ [@ e2'D š `@ j2'D  e@ 2@ k@ 2, @ q@ 2,  v@ 2,  |@2!; 0@@@@@&diff_1 @  w s@W  @ 2'D  @ 2'D Q @ 2@ @ <2, 𩚠 @2$:%٩ @ G2, @@@@@&diff_2 @    ֠@X 1 @ 2'D - @ 2'D  @ 2@ @ n2, " @2$:%  Ɛ @ {2, @@@@@堠&diff_3 @  ݠ ٠G# @GY e @ 2'D a @ 2'D  @ 2@ @ 2, V@  @ 2, ' @ 2, b @=2$:%@@@@@(filter_1 @ 0  ]UD6@Z  4@ >2'D 욠 9@ U2!f@ A@ ]2@@&ProperL@$@ Y>~ @*respectful%WO?$@ d>~ $#@Y>0 @ f@ 2,  l@1ʩ q@ 2,Ð@@@A(@A@@u(filter_2 @  m iנ@[  @ 2'D B @ 2V@ @ 2F@T@$b@ >~NN$h@ >~T$l@>0I @ @ E2,  @x@f  jV@@F@@(filter_3 @ ʠ  ޠ@\ 9 @ 2'D  @ 2@ @ 2@@$@ >~$@ >~$@>0 6@ @ 2,@? @ 2, @ F@@@@)for_all_1 @   c?7&@c]  @ 2'Dݶ@ @ 82Ͷ@۰@$@ .>~թ$@ 4>~ۚ$@ )>0 y@ 4@  횠 :@ V2ǰ  ɰ署 C@T!n;3@@@@E)for_all_2 @ V = 9{j\@^ Ś Z@ d2'D!@ `@ |2@@%-@ r>~%3@ x>~%7@ m>0 @& z@!n;3  @ B 8 @ 28 ; ' ;@@@@(exists_1 @   ~Ƞ@_  @ 2'Df@ @ 2V@d@%r@ >~^^%x@ >~d%|@ >0Y @ @ J=BiT v @ 2 Pv @i@@Y@@̠(exists_2 @ ݠ Ġ . @.` L @ 2'D@ @ 2@@%@ >~%@ >~%@ >0 D@ @  @ =BiT  @ (2 @@@@*elements_1 @   pLD3%@pa  #@ -2'D ۚ (@ D2@ .@ 2, v*SetoidList%Lists E@#InA q9@&@ I>~&@ >>0  H@}5S @@@Ai0A@A@@N*elements_2 @ _ F Bse@b Κ c@ m2'D  h@ 2@;&4@ y>~&8@ n>0  x@5S * }@ 2, @@5@@)In_eq_iff @  w s@c  @ 2'D L @ 2i @ 2@&i@ >0X  @ C2,p @ H2,@@m@@'mem_iff @ à  נ@d 2 @ 2'D  @ 2 ) @ k2, ` @ 2q "y@@@@@ܠ+not_mem_iff @  Ԡ Р>@>e \ @ 2'D  @2 S ␩ @ 2, G@ 2q N@@@@@)equal_iff @ jF>-@jf @'2'D "@,2'D )@ 2ܜݩܩ0@ 2~ϐ@@@@@2*subset_iff @C*&phWI@g G@Q2'D L@V2'D S@ r?L"  Z@  @@@@@\)empty_iff @mTPs@h $q@2 Πx@2, Ě}@ 2  @%Falsee@@@@@@,is_empty_iff @}yà@i@2'D @ 2kـ . T@ $  G@@@@@-singleton_iff @ Ϡ@ j r@2 @2!@c2,@ Vf '@ >0 @@@@ؠ'add_iff @Р̠ :  @ :kX@2'D @2 š@2T@2,J@ 2i'@ >0 @2,\@@I@@ +add_neq_iff @#  t P H 7 )@ tl'@12'D ߚ,@H2 1@M2@'@ 4>0 @@2,F@ 2i K@2,@@@@ M*remove_iff @^EA    r d@ m͚b@l2'Dg@2 7l@2ɠs@ 2,y@ :x @2,̩j(L@ >0 ;@@@@ .remove_neq_iff @}  Ǡ   @ n @2'DV@2 s@2@(u@ >0 d @O2,@ L:x @Z2, @@@@ Ġ+for_all_iff @ՠ &    @ &oD@2'D@@2 @@(@>~ (@>~ (@ >0<N@@2H  @ !n;3 @@@@ *exists_iff @ i E = , @ ip@&2'D@"@>2 Ӷ@ᰶ@(@4>~ ۩(@:>~ ᚠ(@ />0;@=BiTA@]2 ΰ H@ 3] @@@@ J,elements_iff @[B>    o a@ qʚ_@i2'Dd@2k@2,=)6@{>~):@ p>0z@ 5S,@@2@@ |%mem_b @tp ޠ    @ r@2'DI@2 f@2@)f@ >0 U . T@2q m@2q @@@@@ 'empty_b @    Ԡ @ s @2 Q w@2q@ 2  k@@@@@ Ҡ%add_b @ʠƠ 4    @ 4tR@2'D@2 @ 2 ~ @2qD@2i @#orb* @ ) @2q\@@@@@ )add_neq_b @#  t P H 7 )@ tu'@12'Dߚ,@H2 1@M2@)@4>0  ư 쩚@@72qF@2i K@B2q@@@@@ M(remove_b @^EA    r d@ v͚b@l2'Dg@2 7l@2  s@j2qy@:x *@$andb=@|2qѩ 6@$negb+M o@ h) F@@@@@ ,remove_neq_b @  Ҡ ʠ  @ w@2'Da@2 ~@2@*@>0 o H n@2q @W:x @2q +@@@@@ Ϡ+singleton_b @Ǡà 1    @ 1x@2 @2 v @2q<@Vf+ @ ) @@@@@ 'union_b @ ` < 4 # @ `y~@2'Dz@"2'DК@92  Щ$@2qp*@3  Y,1@(2q}6@-2q~@@@@@ 8'inter_b @I0,  v n ] O@ zM@W2'DR@\2'D W@s2  ^@U2qd@2! 렩k@b2qp@g2q@@@@@ r&diff_b @jf Ԡ    @ {򚠐@2'D@2'DD@2  D@2q䩚@2$:% ͩ%@2q @2q@@@@@ *elements_b @    Ӡ @ |.@2'D{@2 U {@2q$List@'existsb +@>~, @ )W@5S@@@ !A=\@A@@ (filter_b @ P , $  @ P}n@ 2'D@$2϶@@*2 @Ͱ@+@ >~ ǩ+@&>~ ͚+@>0k  ө'@2qr-@ 4@+2q | @@@@ 7)for_all_b @H/+  u m \ N@ ~L@V2'D@R@n2@@,@d>~  ,%@j>~,)@_>0 k@|!n;3@'forallb?[/v@2{@5S @@@@4@A @ @A AIPA@@ A1@D@ABCD@@ (exists_b @}  Ǡ   @  @2'De@@2U@c@,q@>~]],w@>~c,{@>0X Ci@ҩ@2 @5S @@M@@ ʠ$In_m @۠ ,  @,@@,@>~@@2'D,@>~@@2'D,@>0@2'D@t2ܜ[@2,@@@ @@AB@@'Empty_m @iE=,@iAհ@@(2'Dة$@.2'Dޚ(@2ܜ,@2kـ@@@ @A@ gAۓό^ @ k@ lAРD.Morphisms_Prop @ABCD@@;*is_empty_m @L3/yq`R@B @R@\2'D X@b2'D \@2ܜ`@$@@@@b%mem_m @sZVĠy@C 0@->@>~@~@2'D/ /-I@>~@@2'D:-R@>0 >@2'DD@ 2ܜ 9@2q@@@Y@AYA @ -@q@ @ABCD@@+singleton_m @٠Ƞ@D q@-@>~@2'D o-@>~@2'D-@>0@E2ܜ@Vf@@@@A d@@ @ABC@@ڠ%add_m @ҠΠ<@<E @-@>~@@2'D@2'D -@ >~@@2'D @2'D-@>0 @2'D@!2'D@2ܜ@2ܜ#@2i@@O@@%(remove_m @6c[J<@F @.@F>~@A@K2'DE@O2'D .@U>~@P@Z2'DT@^2'D.@S>0 ^@h2'Db@l2'Df@2ܜj@2ܜn@:x@@@@p'union_m @hdҠ@G >@@2'D@@2'D@2'D A@2'D@@2'D@2'D@2ܜ T@2'D@2'D@&2ܜ@*2ܜ@#3 @@@@'inter_m @̠@H @@2'D@@2'D@2'D @2'D@@2'D@2'D@c2ܜ @2'D@2'D@q2ܜ@u2ܜ@I2!@@0@@&diff_m @hD<+@hI ԰@@'2'D@"@,2'D&@02'D ,@62'D@1@;2'D5@?2'D9@2ܜ ?@I2'DC@M2'DG@2ܜK@2ܜO@o2$:%@@{@@Q(Subset_m @bIEvh@J @h@r2'D@m@w2'D' s@}2'D@x@2'D2|@2ܜ -@2'D<@2ܜ⚠@?L"@@G@@(subset_m @ʠ @K Z@@2'D@@2'DY Y@2'D@@2'Dd@,2ܜ h@2'Dn@62ܜ c@,@@@@A@,@ABC@@ˠ'equal_m @ܠà- @-L @@2'D@@2'D @2'D@@2'D@k2ܜ @2'D@u2ܜ @2~@@?@@,SubsetSetoid @hD<+@hMI@(PreOrder@#@-2'D'@F?L"@@@@A@@*+Subset_refl @@2PreOrder_Reflexivevv񚠐@\3T)!@; 1J̀M40@0@)ReflexiveWR@\2'DV@u?L" (6777"kA@!t|T@&SubsetǐLu@h#nD'Classes@Cvv\kgՠ@@[@@,Subset_trans @u@3PreOrder_Transitive4(ۀZ~@~@*Transitive++-@2'D@?L"NMT;@ 4(ې\MLJDՠ@@@@&In_s_m @Ҡ#@#N @0@>~@@2'D 0@>~@@2'D0@>0 @2'D@?L"&Basics'Program @$impl7o@2,@@@@)Empty_s_m @hD<+@hO ԰@@'2'Dש #@-2'Dݩ.@$flip$.@82'D2@<2'D욠6@U?L"@:@+2kـ@@@@A!s̓PG@A!t QK@ABC@@E'add_s_m @V=9{j\@P @1!@f>~@a@k2'De@o2'D 10@u>~@p@z2'Dt@~2'D1=@s>0 )~@2'D@2'D@?L"@?L"@b2i@@@@*remove_s_m @ΠƠ@Q ^@1l@>~@@2'D@2'D a1{@>~@@2'D@2'D1@>0 t@2'D@2'D@?L"@?L"@h:x@@@@۠)union_s_m @ӠϠ=@=R @@2'D@@2'D@2'D @ 2'D@@2'D @2'D@-?L" @2'D@"2'D@;?L" @??L"$@3 @@P@@&)inter_s_m @7d\K=@S @=@G2'D@B@L2'DF@P2'D L@V2'D@Q@[2'DU@_2'DY@x?L" _@i2'Dc@m2'Dg@?L"k@?L"o@2!@@@@q(diff_s_m @ieӠ@T?@@2'D@@2'D@2'DB@2'D@@2'D@2'D@?L"U@2'D@2'D@2'D@2'Dr@?L"@?L"@2$:%@@@HA@ۿ`J@A@Q@@ABAۀߠK@@AA @AڠP@ABCA@@A@m@ABA@@AA@A@A@A@!A@ABCDEF@@젠,filter_equal @N*"@NUö@2@ >~!Hð@2@>~2@>~Ú2@>0a԰@@'2'D!@+2'D'@12'D+@52'D/@2ܜ3@2ܜ8@@@d@@:-filter_subset @K2.xp_Q@V@3@Z>~N@3@b>~  3#@h>~3'@]>0 @i@s2'Dm@w2'Ds@}2'Dw@2'D{@?L"@?L"@I6@@@@*filter_ext @~zĠ@W]@3a@>~M"f'W3i@>~U@c@3q@>~]]3w@>~c3{@>0X@o3@>~Io73.@2'D*@2'D@@C2ܜ@H2ܜ@G%@(@@ @@@@@@2@Ր @@8a*@c4@;4@;/󀶐Ϛ4@!;/@3@>>0BA@4@;瀠_ȩ4@;瀠eِ0( @@@@@'eq_refl @@5Equivalence_Reflexive+@e6@;b6@ ;@6@&K`BA䀰_6@z #^[$A*$ @@@@@ @@>,3@6@=;6@C;@6@ #BAVA7 @mK`*\C?@@@@@&'empty_1 @@*empty_specWmTP@7'@];7,@;7~ea@@@@@H* @C@29y$tp@7H@;@7N@;Ao7Y@&b朠A#@@@@@y7 @t@?9y$@(7y@;@ҩ7@&bAA7@;#Ǡ@@@@@D @@L9%qꀠ֠@Y7@;7@;/󀶐Ś7@;/@6@4>0BA7@;瀠Q7@;)ZÐ/@@@@@砠C @@K9%q뀠,@7@6;䚠7@N;/󀶐7@T;/@7@;瀠AC8@;瀠8@ ;)/ZA=@@@@@$N @@V9%q쀠iPL@Ӛ8$@s;!8*@;/󀶐?80@;/@7D@>0BA@8C@ ;瀠Щ8I@b;)B8O@,;瀠S:@@@@@l\ @g@d]B@8l@;i8r@;/󀶐8x@;/@7@>0BAn8@g;瀠8@d  3ʠ@@@@@i @@q]B٠@\8@;8@;/󀶐Ț8@;/@7@;>0BA@8@;瀠Yũ8@;瀠b8@ ܐ:+@@@@@u @@}]B:!@8@D;򚠐8@\;/󀶐9@b;/@9@;瀠A9@ BC9@;瀠0iPL@@@@@3& @.@.܀x_[@⚠93@;ߚ99@;69?@;/@9E@";瀠A9L@< aɀCB=@"or @9\@9;瀠U9b@?;瀠򐑠>@@@@@3 @z@;݀Ġ@.9@;+9@;9@;/@9@n;瀠AC9@v;瀠&9@N< aɀ//٠@@@@@= @@Eހ @k9@ ;h9@ ;9@ );/@9@;瀠AB9@;瀠c9@< aɀl/ /  @@@@@H @@P/ > % !@9@ H;9@ N;:@ f;/@: @;瀠A:@;ƀCB:@;瀠0 m T P@@@@@ 7T @ 2@\/ | c _@暠:7@ ;㚠:=@ ;::C@ ;/@:I@ &;瀠A:P@;ƀCB:X@ 5;瀠萑0   @@@@@ u` @ p@h/   @ $:u@ ; !:{@ ;x:@ ;/@:@ d;瀠AC@:@ m;瀠  :@ s;瀠 &:@&;ƀ6  ֠ @@@@@ k @ @s   @ h:@!; e:@!;:@!&;/@:@ ;瀠A:@7;"cCB:@ ;瀠 gӐ0!-!!@@@@@ w @ @!<!#!@ :@!F; :@!L;;@!d;/@; @ ;瀠A;@u;"cCB;@ ;瀠  4!o!V!R@@@@@!9 @ 4@!~!e!a@ 蚠;9@!; 嚠;?@!; <;E@!;/@;K@!(;瀠AC@<;X@!5;瀠  詚;^@!;;瀠 ;d@;"ch ]:!!!@@@@@!ϐ @ |@3h܀!Ơ!!@ x;@!;/󀶐;@!;/@;@!j;瀠A;@TɀB:@>0!+!()!!ՠ!@@@@@!ِ @ @3h݀!!!@ ;@";/󀶐͚;@";/@:@<>0BA;@!;瀠!Y;@Tɀ!b)"%" "@@@@@!&fold_1 @!@)fold_spectO"6""@!;@"@;nB"N@@!iA @<@"e;/@! $C<@;"߀CADB$List%Lists#Coq@@)fold_leftɀրАC<'@";/󀷐!!!e<0@";/󀩐CAB<:@>9DB[""v"r@@@Q@A@A@8ޠL";A@AA%tݠ$List%Lists#Coq@@ A1DH @"A&@Bi@ABCD@@"s*cardinal_1 @"d@-cardinal_spec*UȀ"""@"$9A,""ˠ"@@@"A oD@A@@"Đ @ @*\""ޠ"@"a<@#;!<@#;/󀶐Ķ@<@# ;/󀛠!@*SetoidList%Lists#Coq@@+compat_bool!!|;@!t>~;@Q>0A@<@";瀠"p<@ (†"s!ߩ<@";瀠!𐑠I#?#&#"@@@#Am,*SetoidList%Lists#Coq@@A@@#ϐ @ @*\#X#?#;@"š=@#b;"=@#z;/󀶐%@= @#;/󀛠!t@a<5@W>~<9@>0A@=6@#;瀠"Ʃ=<@F (†""5\!"ѐ";!AA###{@@@#uAY@A@@#dܐ @ _@*\###@#=d@#;"a=j@#;/󀶐v@=q@#;/󀛠!ŀ@<@>~<@>0A@=@#d;瀠#"@#"!A=@#t;瀠=@ (†"向H##נ#@@@#A@A@@# @ @7SIĀ$##@#k=@$ ;ȶ@=@$$;/󀛠"@<@>~<@J>0A@=@"Q"ך=@$A;/󀩛!#t#v";A#x *=@ H*lq#"뜠"HAH$H$/$+@@@$%A @A@@$ @ @7SIŀ$Y$@$<@#Ú>@$c; @>@$|;/󀛠"o@\=0@R>~=4@>0A@K m>5@ *lq##Ŝ"A>>@#FQ#<>E@$;/󀩛d.#B#ۜ"A#FH$$$@@@$}Aa@A@@$l @ g@u%$$$@$>l@$;x@>s@$;/󀛠"ǀ@=@>~=@>0A@>@#[@ے#>@$;/󀩛!$$$&"A$( >@ ((Y$2#"AH$$ߠ$@@@$A@A@@$Ġ) @ @1u%% $$@$s>@%;ж@>@%,;/󀛠#@ =@>~=@R>0A@ >@!((Y$r$u#;A>@#@ے#욠>@%V;/󀩛 .#$#PA#H%P%7%3@@@%-A@A@@%+partition_1 @% @/partition_spec18OԻ%c%J%F@$͚?@%m;*@?%@%;/󀛠#y@f>:@\>~>>@>0A?:@$;Nڀ#@#fst ?F@%;?J@%;?O@!1Q$$ߩ?U@!_ (†$$向G%%%@@@%QA ӳ2[!@%UA Գq\! @%Aq@ABC@@%|+partition_2 @%m@/partition_spec28OԼ%à%%@%-?~@%;@?@%;/󀛠#ـ@ƀ>@>~>@ >0A?@%T;Nڀ#@#snd?@%;?@%;?@!Q%<%??@! (†$?@&;/󀩚$@$negb%S%U%TV&%%@@@%Ao@%Am@%A@ABC@@%砠(choose_1 @%@,choose_spec1<愀&.&&@%?@&8;$暠?@&P;/@ !1?@&[;/󀩚?@!M YB!?A@ @&k;/A@@%;瀠%%7&c&J&F@@@&@A!B@A@@&/(choose_2 @& @,choose_spec2<慀&v&]&Y@%@1@&;@ Q!s@<@&;/󀩚@A@! YA!B@L@&;/󀩚@Q@%;%ސ0&&&@@@&A!@A@@&p @k@䀠&&&@&@p@&;%m@v@&;/@@|@&Y;瀠AB@#InA q9@?@>~?@!>0&@@">9&$3&&Π&@@@&Ai0A@A@@& @@倠&&&@&d@@';%@@';/@=?@>~?@!@>0A@@"H>9B@@&;瀠&b&e/'('' @@@'AA@A@@&+elements_3w @&@/elements_spec2wb ';'"'@&@@'E;5@&NoDupA @@ @.>~@@!~>0A @">9A&'_'F'B@@@'B@A@AA.@B@ -@'>f@A@A -.@'>c@A@ ]#@'>b@A@AQV@>}>|@A@BC$6 ?@$6Ȉ?@( F@'>@A@ABD*U"@>>~@A@*\@>}>|@A@A:u@>{>z@A@:u@>z>y@A@A;Z@'2@A@;ZF@'2@A@A;{@>{>z@A@BCDE@@@@J#@@AB8!@8!U-RelationPairs'Classes#Coq@@A@C9!@9!àV @A@@#|@@#|]@A@A#@A#^@A@AB ӳ2@ ӳ2[)Datatypes$Init#Coq@@A@ Գq@ Գq\ @A@ACD@cA,Ring_polynom+setoid_ring#Coq@A.0TQ+Ring_theory+setoid_ring#Coq@@ABA.U>[J @5A8ӠA4Relation_Definitions)Relations#Coq@@AB9A @8A @A @#Q@ABC#JD\F@/DecidableTypeEx*Structures#Coq@'N_as_DT-OrderedTypeEx*Structures#Coq@'N_as_OT@A)Nat_as_DT )Nat_as_OT@.Positive_as_DT.Positive_as_OT@A&Vector'Vectors#Coq@/VectorNotations)VectorDef'Vectors#Coq@ @.'Z_as_DT''Z_as_OT@ABC@"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ѓ6@y@A@A@D@&to_intϑ;@@A@z@6@&doublez-@/!@A@A@o@(nth_map2*VectorSpec'Vectors#Coq@@ 8"@A@@|@*fold_left2v@6U@A@"W@@*fold_right"W|@6N@A@ABCDE/@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@AG@I@)mask_rectG@@+ED@A@F˱@O@)add_carryF˱F@+p@A@K5@@*Forall_indK5@9M@A@X@@/shiftrepeat_nthX@;\@A@ABCD^Ҷ@@'to_uint^Ҷ@#m@A@gL7@@'sqrtremgL7@40@A@Aq@@'testbitq@5)@A@BE@@-replace_order@:k@A@2s@&@,shiftin_last2s@=Nn@A@AxYe@+@!txYe%@;z@A@Bx^@0@"Inx^ʑ*@;z!@A@xa @7@"hdxa 1@;zd@A@Axa@<@"tlxa6@;zP@A@BCx#@A@#eqbx#(VectorEq'Vectors#Coq@@ /@A@x[@O@#etax[@> .@A@AxI@T@#mapxIN@;{&@A@BDx@Y@#nthxS@;{)j@A@y@c@#revy]@;{-@A@AG8@h@$castG8'@/Y@A@B8[@m@$last8[g@;d@A@R@s@$map2Rm@;@A@ @y@$take s@;:c@A@ABCݎO@J@+succ_doubleݎOA@6r@A@HI@@%case0HI@@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@A *@@%ldiff *@@A@ O@z@,take_prf_irr O @*@A@A g_@@+pred_double g_@25\@A@ q@@(take_app q@lm@A@ABCD m@@÷ m@2j@A@ @@+Exists2_ind Ñ@ @A@ k@@'nth_map k(@wF@A@ABS@@&of_intS㫑@4}5@A@S@@&of_natS@4};@A@ACEFGJ\R@@(mask_ind\R@4@A@\^@@(mask_rec\^@4@A@Aũ@@*Exists_indũ@@A@Ǜ@@'of_listǛ@@A@A!,@@&pred_N!,@4s)@A@BC@@&shiftl@5X@A@@#@&shiftr@5X@A@A&@(@&square&ّ@5,x@A@BD"@-@&to_int"$@5L@A@"@5@&to_nat",@5L @A@AnTq@:@+testbit_natnTq1@6n@A@B@3@(succ_posB*@@A@I@@'abs_natI@?n@A@AB.@>@'of_uint.5@MS@A@3~@R@'sqrtrem3~I@7]%{@A@ACD,@@'bitwise,@/v@A@>4'@_@'testbit>4'V@8g$@A@d;@@*rev_appendd; @fh:@A@AB{U@j@,sqrtrem_step{Ua@8R@A@u^@c@(div_euclu^Z@ @A@Au@!@&Existsu@@A@UA@'@&ForallUA!@@A@#N@-@&In_ind#N'@%@A@ABCDfz@@'to_uintfz~@9w@A@l@@'comparel@3R@A@AA@?@&appendA9@ m@A@L9@E@&caseS'L9?@ x@A@ABW@J@'replaceWݑD@ 4@A@K@P@&eq_decK@?w@A@K~@V@&eqb_eqK~@?w@A@MĚ@\@)nth_orderMĚV@ O@A@ABCDEFGs8@B@+of_uint_accs89@5+@A@@l@3to_list_of_list_opp@<@A@A}@@,pos_div_eucl}@&`@A@3x@C@'compare3x:@]=@A@`<@}@&t_rect`<w@ b@A@c`@@&take_Oc`@3@A@ABCD@@&double@'޺_@A@(@@'shiftin(@*I@A@Aq@@+of_succ_natq@$@A@w@@&modulowɑ@)1@A@ABEK@@&of_intK@)j,I@A@K@@&of_natK@)j2_@A@H@@'Exists2H@uF@A@ABI@@&shiftlI@*O@A@O@@&shiftrO@*O@A@AC,@@&square,@*ow@A@Z@ @&to_intZ@*81@A@ADF`@@&to_nat`@*9G@A@@@'Forall2@?j@A@Ae@@+testbit_nateđ@+@A@'@@+Forall2_ind'@ ~@A@"@@'to_list"ӑ@O*@A@ABC+{@.@'sqrtrem+{ё%@,J@A@@@0shiftrepeat_last@@A@A5z@:@'testbit5z1@-T|@A@BD @?@'to_uint ͑6@.@A@ @G@+succ_double >@.^4@A@A!lK@@)const_nth!lK@@A@!K@ @+fold_right2!K@x @A@A#@f@'compare#ݑ]@ )Q@A@$@@8fold_left_right_assoc_eq$@3@A@ABC%t2@q@(size_nat%t2h@ @A@%9@x@+of_uint_acc%9o@ ΋@A@A%V@}@+double_mask%Vt@ S@A@%%@@'div2_up%%z@ "@A@%R@4@)take_idem%R@-W@A@ABCDEG'ş@@'Ndouble'ş@ @A@(K|@B@*eqb_nat_eq(K|@w@A@A(b0@@*shiftl_nat(b0@9-@A@B(nՖ@@*shiftr_nat(nՖ@'@A@(@@0succ_double_mask(@@A@A*W$@@,compare_cont*W$@!@A@*@_@(cons_inj*@!@A@*A@e@(shiftout*A_@@A@AB.0@@.sub_mask_carry.0@΂@A@CDE.@P@!t.G@ ;@A@.먩@W@#add.먩N@ `@A@A.U@\@#div.US@ @A@.B@c@#eqb.BZ@ @A@A. @h@#gcd. _@ @A@.=@n@#leb.=e@ @A@ABCFHIK. @s@#lor. j@ @A@.Z@@#ltb.Zw@ @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@CDF/@@%ldiff/@ H@A@00@c@'compare00Z@?H{@A@A1P%@@!t1P%@  @A@B1P@@#abs1P@ @A@1P&@@#add1P&@ @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{@4@#min1P{+@ "@A@B1P]@9@#mul1P]0@ @A@1P@@@#odd1P7@ @A@A1Pɣ@E@#one1Pɣ<@ J@A@BC1P@J@#opp1PԑA@ {@A@1P1@R@#pow1P1I@ @A@A1P;@W@#rem1P;N@ @A@B1P@\@#sgn1PˑS@ r@A@1P@c@#sub1PɑZ@ p@A@A1Pe@h@#two1Pe_@  @A@BCDE1[8@m@$div21[8ޑd@ @A@1[d@v@$even1[dm@ I@A@A1[6@{@$ggcd1[6r@ i@A@B1[U@@$iter1[Uw@ @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@BC1\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@A3@@(tail_add3@^q@A@BDEFGH3@@(tail_mul3@^@A@5Z@i@*shiftl_nat5Z`@y/@A@5f}@o@*shiftr_nat5f}f@4@A@AB5a@@'iter_op5ay@ @A@C6w~@@'of_uint6w~ @^5@A@6W @:@)fold_left6W 4@*Za@A@A8j@ @'of_uint8j@'"h@A@8V@E@.nth_order_last8V@/71@A@AB9E@@(div_eucl9Eđ @(*k@A@:El@Q@/rev_append_tail:ElK@.G@A@A:x@@,Nsucc_double:x@ ʭ@A@BCD@#R@A@A=9R@L@.to_little_uint=9RˑC@#b@A@=Y@@+shiftin_nth=Yӑ@3뗦@A@A=@X@%ggcdn=͑O@$*@A@=U@^@%ldiff=UU@$'R@A@ABCD>@@&divmod>@C@A@>@@&double>@NĴ@A@>@@+shiftrepeat>@2Y@A@AB?2@@,pos_div_eucl?2@-u@A@?;@@&modulo?;@"i@A@ACEFGIL@%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 @0.i bYN Z)Decidable%Logic#Coq@0ND걸풬/OߠHŠII@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ϰ߼H0όe얟)H.Ƞ+Equivalence'Classes#Coq@07;ꮹ0,0 [çm).E)FSetFacts%FSets#Coq@0;yD.5[l-FSetInterface%FSets#Coq@0^s h@ >Eb 驠)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܏)MSetFacts%MSets#Coq@0ss|BEo_vWLH-MSetInterface%MSets#Coq@0x* .>SGw0Bǡ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`&iOrHȠO@NˠrHȠ@*Equalities*Structures#Coq@1DecidableTypeOrig@NӠONN!@ANN"N!@N%N$@AB@NrHȠ@N@NON$M@A@NN@@>~@NN@A@>0@NN@A@AB@AMrHȠ@L@LOM 6c@A@LРL@@QV@M,M+@A@A*U"@M@L*U"JN@A@*\@M@L*\^N@A@A:u@M*M)@A@:u@M(M'@A@;{@M&M%@A@ABCD@AP#tӡ*FSetCompat%FSets#Coq@68@ PN+@A@6CO@@>~@O1O0@A@>0@O/O-@A@AB@6d6_@6M+@A@ -@6MM@A@A -.@6MJ@A@ ]#@6MI@A@A( F@6Mc@A@;Z@6q6k@6j;ZʠJO0@A@;ZF@6w6q@6i;ZF^O@A@ABCD@AB@@@PysK@ޠ ;Xۮ!29@pH?7;/mb@mT6 ]{QQG'Q{FPGe: