"`  @&FinFun%Logic#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@X)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+Compare_dec%Arith#Coq@0jXF 8%EqNat%Arith#Coq@0AIgՋXRV 'ListDec%Lists#Coq@0a&:׃j$Mult%Arith#Coq@0햖Qyb0'Between%Arith#Coq@06v*0ur`C0*EqdepFacts%Logic#Coq@0FI$ͼՋ`)Eqdep_dec%Logic#Coq@0u wWIϰ߼)Peano_dec%Arith#Coq@0Kݢ*k)Factorial%Arith#Coq@0@oehJd&Wf_nat%Arith#Coq@0UJX AJhO*Arith_base%Arith#Coq@0Ĕ}CS#Fin'Vectors#Coq@0r'gް؅/׸ 3+95n|YUР&FinFun%Logic#Coq@A)Injective @!A&|C@@@!B&}ҠD @@!f@B!xC!yD@8$Init"@"eq @AF@76@0/@,@B,A +k() + T' +T'+   7"T'7&'+@@&|@O@A@&}@E@A@AB@SA1DH%Logic$Init#Coq@@QA @AB@@AA@@A@*Surjective @n& Il@@i&LJs@@ge_e[@"ex @elfdhXp@@@~@B~R +k() + T'+7%'  7&' d@@& @7@A@&L@2@A@AB@;A1@DT@8AX@AB@@N)Bijective @&HN@@&O@@J@!g@#andЖw@EÐ@┑*@۔(@׶@BהA 0+k() + +9 T7%'+T +T7%'   7&'   7&''+Pޠ܀@@&H@K@A@&@F@A@AB@PA`@AQA@LAc@NA@ABC@@$Full @&DR@@!l)Datatypes@$list]@!a$List%Lists0@"In$  $@=$@!)Datatypes$Init#Coq@@$list]@  d+k() + T' 7&'(P@@&D@B@A@A@DAIPA$List%Lists#Coq@@NA al)Datatypes$Init#Coq@@AB@@&Finite @|&Sz@@adb@w:'tZ@@ h+k+ 7 7%'7%'uhtT@@&@'@A@A@)A=@+A@-A@ABC@@J'Listing @& T@@@%NoDup%#@:@@Ɣ@ᐐ \+k() 7! 7!7%'|HYh@@&@-@A@A@/A@3A@5A@ABC@@'Finite' @&U@@۷ܩz@U y@@xTht@@&@$@A@A@&A@(Ai@*Aw@ABC@@*Finite_alt @@<@,&W+@@!d'ListDec%Lists#Coq@@,decidable_eq,PGA@@#iffС)_@]πBf@l?B@@&@2@A@A@5AΘB'ListDec%Lists#Coq@@A>A΢ L @BA@DA{@ABC@@3Injective_map_NoDup @@A}& @A@B@PA@AKA@MAs@ABNAT@QA9@AJAf@LAZ@NA2@ABCD@@ᠠ/Injective_carac @@\CL& dK@@H& eS@@;B@r@ CAW@NN)ڀVDԀZŀ^Lb@@& @2@A@& @,@A@AB@8A@A9A@;A@ABA oY@CA@ADA@FA[@ABCDGAU@KA@ALAS@NA@ABOA@RA@ASA@UA@WA@YA@ABCDEF@@}%EqDec @蔑&$r@@ة&Specif@'sumbool7̂K@ٰ˩@#notШ @@HA@ +k+ T'+T'7"7 7"7%'%dp@@&$@8@A@A@:A@A@@à3Finite_Empty_or_not @@>G.&t-@@@怐A@"or @@,%Logic$Init#Coq@@%Falsee@=(?@$Truey@@@&@/@A@A@2A@A3AH@5A@7A@ABC@@2Surjective_inverse @@Hr&_wq@@n&xy@@@2B@@;% .vz@qq@vdՀ@ÐGҶ@l]@"eq @y@@&_@9@A@&@3@A@AB@?AD@A@A7@BA @AB;AA@=A@?A@AAg@ABCD@@]>Injective_Surjective_Bijective @@IȔ&F@@Ĕ&OG@@@B@Vʶζ@Ŷ@N@9ש@A }Zِ@@&@-@A@&O@'@A@AB@3A@A4A@6AF@AB7A@;A@A4A@6A@AB7AH@:A#@A;A@=A@?A@@ABCDE@@*Fin_Finite @@,J!n)Datatypes$Init#Coq@@#nat@ۀ#Fin'Vectors#Coq@@!t"Y@A@@@@@ߠ$bFun @.'@#nat@=@: @%Peano3@"lt Uxc-C 3A@F)Datatypes$Init#Coq@@#nat@\@/@#nat@7 +k() +7T' +  7!T' 7%',h;t@@@@@(*bInjective @IHB{JxK@By@EĶ@{TȐʐZ@D@79j X+k() +7T' +7T' + 7!T'+ 7!T'+  77"T'77&'_n<`tD@@@@@_+bSurjective @y@xP}@vŶ@ik +k() +7T'+  7!T'+ 77%'  77" 7!7%'Рh𠑑qtԐЀ@@@@@,Fin2Restrict A#f2n @򩛠#Fin'Vectors @!t"Y@穚'@)proj1_sigYԷ!iͩ@&to_nat4ﺀ@   +k() 7! + 77&' 7%'lh$LD@@@@@㠠&f2n_ok @5C^@)proj2_sigV7@:9>*+%Peano$Init#Coq@@"lt Uxco@k%*BABD$lZh0L9D@@@@@&'n2f_f2n @@1of_nat_to_nat_inv f@zy~@A#Fin'Vectors@@p"Y@B~@)of_nat_lt%CJBAB@w5 BAA4@@@@@f'f2n_n2f @!hK@'f_equal=ਜ਼@#sig#* @ĠЩ@)of_nat_lt%C򩜠A@-to_nat_of_nat8])@ݶ)Datatypes$Init#Coq@@#nat@8%Peano$Init#Coq@@"lt Uxc詛yBuCBAC +k() 7" :7"7!+77!7+77!7# ' 7%' 7%' ܠ䠒LT[dhNl,@@@CA1FdJ@GA8РP&Specif$Init#Coq@@ A8A @ABC@@'n2f_ext @Y@*of_nat_ext~@SqUuhBA"h'oCBހ㐐C؀DCB߀DCA.@@@@@7'f2n_inj @@*to_nat_inj@~AB@LCBRCA")@@@@@l&extend @ö@ͩBAAAA@@@@@Dʩ@"le UxT@+Compare_dec%Arith@)le_lt_dec  A,@%*쐩!@﶐@တ⩛倐 @ +k() 7!= R'>G'> 7" 7%''+k6'Р;NAABAADP.ܠFh@@@@@נ(restrict @ ."hf@:\ 2@oBBB@@@@@!s{;O; ? -"x'| 8 2 H@M V@. @4:\ a G@K bO b +k() 7!= R'> !  7& ''+k7$'ihȠHABAEL@@@@@ 8)extend_ok @@ KA @A 9B@5юBA@@@@@ Y*extend_f2n @@ L @A  B3'CBsCAyCBA@@@@@ *extend_n2f @@ M @쐐A 鶐 蛠3AClqDfgDCBD"@dYDCBAC}BDA@@@@@ Ҡ,restrict_f2n @@ MN!  *ԶϠBA -C3怠DZ@ qDDCBACDA@@@@@ ,restrict_n2f @@ OX a 4BA d|$AD怰 E8EDC瀰BEADBECBA@@@@@ J1extend_surjective @@ PS @A y @ BBAÐBBA@@@@@ z0extend_injective @@ Q Ҷ@ِAؐ ֩ @j'=fрBHBAgBBA@@@@@ 3restrict_surjective @@ %R FBAـpCCրCBAqCB@@@@@ ٠2restrict_injective @@ TS(ⶐ 1۶u֠BA ېCڐCCBApCB@@@@@ @@@@@@6bInjective_bSurjective @@ TZ c@ @ BA @ q uˀ u y@@@@@ 16bSurjective_bBijective @@ U: @-/@2BA@ꀠ  B D r@ Жw@J   @g  +W    36    Đ@@@[A |@A\A @_A @A`A u@bA p@dA k@ABCD@@ @@@ ӳ2@ ӳ2[ @A@A Գq@ Գq\ @A@&| @AB&} @&  R@A&L P@&H @ABC& @&D @A& X@& @AB& @& @A& < A@& { @@ABCD& 8@& w@A& @& @AB& "@& "@A&(@&g@ABC&c@&$@A&@&__@A&]@&@&O@ABCDEF@,@@AB@@AC @ @AD o@ l@ @ABE @ @A @ @A @ z@ABCF x@ z@A ?@B ;@ <@A @B @ @ @ABCD @ @ @ i@ABC h eDEG c d \ \ X@ W@ V@ABC@@A@ MA @A@ OA @ABCDE PA @ UA@A NA @ @AB @ RA @A @ UA @A VA @BCD WA@ \A ~@A A @B Ajob @ A @AC A q@ A ůM @A A @ A [@ABDEF A D@ A @A A @ A @AB A@ A@ A @@ABCD A@ A@A A e@ A @AB !A !@ #A,@@@ABCDEFGH@@AB@{@1@AB0-CD+*E$$@@ABC@@@ABCDE@@A@@ABCFGC@@A@@Aw@9@ABCD8@:@A8@B+A=\ @@C.AI@0A 5@ADE1A (@6Az@A7A1>lB U@;A @AB4A :@8A@A9A @;A a@@ABCDE@@@c@ABCDEFGHI@@"O@(PeanoNat%Arith#Coq@#Nat@&of_int"O#Nat$Init#Coq@@ 6@A@As2@@&shiftls2 @vY@A@Bs8@@&shiftrs8@vY@A@ѓ@!@&squareѓ@y@A@@'@&to_intϑ@@A@AB/@,@)log2_iter/#@wd@A@l@2@)sqrt_iterl)@!$:@A@ACD c@7@'testbit c.@!ć@A@^Ҷ@?@'to_uint^Ҷ6@#m@A@A,@D@'bitwise,;@/v@A@l@J@'comparelA@3R@A@ABs8@O@+of_uint_accs8F@5+@A@.@W@!t.N@ ;@A@A.먩@\@#add.먩S@ `@A@B.U@a@#div.UX@ @A@.B@h@#eqb.B_@ @A@A. @m@#gcd. d@ @A@.=@s@#leb.=j@ @A@ABCDE. @x@#lor. o@ @A@.Z@@#ltb.Zz@ @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@CD/@@%ldiff/@ H@A@3@@(tail_add3@^q@A@A3@@(tail_mul3@^@A@B6w~@ @'of_uint6w~@^5@A@@@&divmod> @C@A@>@@&double>@NĴ@A@A?;@ @&modulo?;@"i@A@BDEFG@X*Arith_base%Arith#Coq@0Ĕ}CS&Basics'Program#Coq@0!bs߯? :VU'Between%Arith#Coq@06v*0ur`C0$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Ӑ0r'gް؅/׸-GenericMinMax*Structures#Coq@0måj$"Gt%Arith#Coq@0䙛#c:D $Init'Classes#Coq@0](p{yOh."Le%Arith#Coq@0d}Omq+ = < ;@0>I ? > =@0a&:׃j b0\͉!Ig*Logic_Type$Init#Coq@0 1jc6"Lt%Arith#Coq@0KZ-eJkP܏%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蠠)Notations$Init#Coq@0&v!D]hwnv *NumPrelude'Numbers#Coq@05WUVŦ]xVXԠ4Operators_Properties)Relations#Coq@0U3y#h&&Orders*Structures#Coq@0$Znl0\͗+OrdersFacts*Structures#Coq@05Mܿ獐ζΖLB)OrdersTac*Structures#Coq@05'4Ԗ+9% D0 jha|ؠ(PeanoNat%Arith#Coq@0O~2$k[#lZ)Peano_dec%Arith#Coq@0Kݢ*k$Plus%Arith#Coq@04tmG'Prelude$Init#Coq@0JqTttֱ/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$@0;RWMi\N'Tactics$Init#Coq@0/9m+ a'Tactics'Program#Coq@03H2 Q@@@@"_8AA@@@@@TC@AN@A@@@@"_92M접@#_10'`o@ C*type_scope.function_scope@@@A@#_1154C@@AA@AA@@@@(2 Q@@@@#_12 N@C@A@A@@@@#_132M접M#_14'`o@CLNK@@@A@#_151~C@@AA@AA@@@@'2 Q@@@@#_16 @됐C@A@A@@@@#_172M접#_18'`o@C@@@A@#_191ȐC@@AA@AA@@@@2 Q@@@@#_209@:'㠠@6B@A@@@@#_212M접ݠ#_22'`o@Bܠ*list_scope@@ @#_23+ B@_@AA@@@@2 Q@@@@#_24"@@@@@#_252M접 #_26'`o@A@@@נ2 Q@@@@#_27)D@B@A@@@@#_282M접>#_29'`o@B=a@@k@#_30)lB@@AA@@@@Ԡ2 Q@@@@#_31s@@@@@#_322M접 v#_33'`o@Au@@@2 Q@@A@#_34@ AA@@@@@B@A@@@@#_352M접#_36'`o@B@@@@2 Q@@A@#_37+@%;;AA@@@@@)C@A#@AE@AF@A@@@@@#_382M접')#_39'`o@/F㠐堐⠐ @@@@@Aɠ@2 Q@@A@#_40~@/4AA@@@@@|C@AvD@A@@@@@#_412M접#_42'`o@$D+-@+@@@kA@b2 Q@@A@#_43@m]AA@@@@@C@AE@AD@A@@@@@#_442M접"$#_45'`o@*Epr@r@@@A@]2 Q@@A@#_46@h `AA@@@@@C@A@A@@@@#_472M접#_48'`o@"C@@@A@2 Q@@A@#_49@@(:ܿAA@@@@@>E@A8C@A@@@@@@#_502M접#_51'`o@%E@@@@@2A@2 Q@@A@#_52@,SAA@@@@@B@A@@@@@@#_532M접#_54'`o@D,@@+@@OlA@Ǡ2 Q@@@@#_55'9@@@@@#_562M접 [#_57'`o@AZ@@@2 Q@@A@#_58@% AA@@@@@ސB@A@@@@#_592M접#_60'`o@B@@@@2 Q@@A@#_61@#YAA@@@@@C@AD@A@@F@A@@@@#_622M접#%#_63'`o@+FĠƠ@@Š@@@@점A@2 Q@@A@#_64^@<AA@@@@@\C@AVD@A@@UF@A@@@@@#_652M접$&#_66'`o@,G@@@@@@@<A@2 Q@@A@#_67@= AA@@@@@@@@@#_682M접#_69'`o@A)nat_scope@@2 Q@@@@#_70 W'@@@@@@#_712M접w#_72'`o@B%s@A@_2 Q@@@@#_73 O@@@@@@#_742M접#_75'`o@BM@A@P2 Q@@@@#_76 Xw@@@@@@#_772M접Ǡ#_78'`o@Bu@ӠA@>rHȠ@#n2f9D{(@@@D2 Q@@@@#_79@>B@A@@@@#_802M접BB@A#_81'`o@B@@RC@#_82*ՐB@g@AA@@@@@2 Q@@@@#_83렠@}B@A@@@@#_842M접BB@A#_85'`o@B@@@+2 Q@@@@#_86@6"HY@B@A@@@@#_872M접1@1of_nat_to_nat_inv f#_88'`o@B"@@Ġ@2 Q@@@@#_89@) YM@ᐐC@A@A@@@@#_902M접i@-to_nat_of_nat8])#_91'`o@$CZ\@@"@Ġ2 Q@@@@#_920@"H(@C@A"@A@@@@@#_932M접@*of_nat_ext~#_94'`o@%D@@@^aTW@̠2 Q@@@@#_95r@ ̠@^B@A@@@@@@#_962M접@*to_nat_inj#_97'`o@!D֠@@@@zkn@Ԡ2 Q@@@@#_98 @B@A@@@@@#_992M접CAAA$_100'`o@C [@Ab@2 Q@@@@$_101 <@ΐC@Aې@A@@@@@$_1022M접DD@A$_103'`o@ DF@@@A@)break_decF@@@!H@ @"H'9./theories/Logic/FinFun.v "% "%"*",!H@@@@@@+Compare_dec%Arith#Coq@@)le_lt_dec @@@@@,+ "= "="U"W@43 "= "="X"Z@@6 "= "="T"[@@@@@@"Lt%Arith#Coq@@)le_not_lt _@Q "] "]"f"r@@@@Z "] "]"s"t@@@@c "] "]"u"vkj "] "]"w"yxq "] "]"z"{@t "] "]"f"{@@@@@AA@~@ "} "}"" AA@@ BA@@ "} "}"" "} "}""@ "} "}""@@@@@@  "} "}""i@0clear_#_4C69D547<@@@@H2 Q@@A@$_104AA@@@@@ېB@A@䐐D@A@@@@$_1052M접$_106'`o@#BU@A@^2 Q@@A@$_107&@ieAA@@@@@B@A@@@@@$_1082M접$_109'`o@Cՠ@@+A@`2 Q@@A@$_110\@keAA@@@@@IB@A@RD@A@@@@$_1112M접$_112'`o@$DàǠ@@$A)1@\2 Q@@A@$_113@g%ȋAA@@@@@C@A@A@@@@@$_1142M접$_115'`o@#DQ@@@AW@d2 Q@@A@$_116@o%ȗAA@@@@@ɐC@A֐@A@אE@A@@@@$_1172M접!#$_118'`o@)EH@M@@A@m2 Q@@A@$_119&@xХAA@@@@@B@A@@@@$_1202M접$_121'`o@B@䠐A@n2 Q@@A@$_122W@yAA@@@@@DB@A@@@@$_1232M접$_124'`o@B @A@o2 Q@@A@$_125@z&7AA@@@@@uC@A@A@@@@$_1262M접$_127'`o@"C ;@@LA@@z2 Q@@A@$_128@)DAA@@@@@C@A@A@@@@$_1292M접$_130'`o@"C' u@@Az@@2 Q@@A@$_132@\AA@@@@@鐐C@A@A@@@@$_1332M접$_134'`o@"Ca @@A@2 Q@@A@$_135A@MAA@@@@@#C@A0@A@@@@@$_1362M접$_137'`o@#D @@@A𠐑@@@8@OcսtG20^@CS(82"Qipp@XyһQ2yt@ "#p]C/q$jLJAIX!A&W&FinFun%Logic#Coq@@@!d'ListDec%Lists@,decidable_eq,PGA$Init@#andЖw@A@*@&Finite]πB @'Finite'?C@  !HР#@"ex @BBB@@@@D@)Datatypes6@$list]@#!l 5@$Full:'DL4N!FȐ!eb@(uniquify,GKEG+)"l'c$Listv@%NoDup%#@Fu @$incl$〰]|V@KI G?r+k BBB@@@@D@31H(BI!N !I4 7AyJr@'Listing KqUu|!xǩAC@АD@pn|©Zې$_tmpné7ZL萑& 6z 22YY?@0subrelation_reflv 9``&E@9iff_flip_impl_subrelation2VAQP _RSZaW ũ :MTȠ_@*in_map_iff51/w@@%Falsee@ڐ!yr P@|zЩ{LNd됷!E !YOY FPI@(eq_ind_r!2#QH(ѰRM4հ PY@)False_induُ>CCd]fwBb=& 8^;@@5& w_B@@<:5@0@26׶@ϩϠƩ&%@@נB٠0'/D$鷐"H0㩚=@3Injective_map_NoDup%;;<4S0{kE]Ȑ"d0BJ)Decidable|@)decidable r NVРj@"or @BAAAA@@@@@D@5aS"'9<=B-rAhܵ"H14K9©@&or_ind"=B+˷"H2@&eq_sym X@8%Cط ٩CCX+ol+* CC4W> Tm̩c4 @&eq_ind J8N!b!srưtȰv1XyEe}-а/Ұ1"]A@D@D@@@@@@@@D@6@ɐeOX |+.0ݐOR_3U}L A@B@B@@@@@D7+)@$Truey@@?@<b A79e.3;<"x0ҷ+Z-DܠS0"H34T/6Vg9Y/!XBZD\k{G_= ө`@'f_equal=3eM-8S;Tu6x`sbuhex[ %!3gGUKVxw  y"|%r'7( ;)t?1mV2M@HsW'E"XOYO[[5/_"! '*^A*cֶ7nZéz\19N,Cz+Ͱ-Ð/Ƿȩ9aѐA;?7%@&(B)-[2@33xyA2  ;=>`Z>C\\e@"  3|  CېA& d?@@9& eF@@!L8>@9@;?֠-,@۠2H)F3K6M*@렩 8@@D [طs8@շ@&'@@pq$=TQ@6@@KbW@,In_nth_errorO!,rVS@#nat@!n 4_@&option >v@3@)nth_error488A=5@x"#N.U0C!i0ͩ;S8t607b.(ǩ#-@B<Cn:4ө/4u%6א!jPȐ"X'u@-map_nth_error6+K%H($Ȑ"Y' 9ݩ`ZܩWکN|/}@%Peano@"lt Uxc@&length䷀@ư @4iff_impl_subrelation5Ơ9,{\@-!%@۰|,#-Dਗ਼@/NoDup_nth_errorMkˀHa"ORϩBQթIZVũN25ʰ8ͩ/RelationClasses@(symmetry0xj! @-iff_Symmetric!xy@.nth_error_Some ++/ޠ}p!o5[*&#j.=:G0B@@@@@D3@:*+v@AM\FB9BcMY=!,c AA@A@@@@@D9E@¶@b^[[Ő,C<vyJGzmiϩ2`t/wPvr0yW}Ԡnppqq_3K@(eq_trans!yKMUP9PRUQ    ඐ!a_mYǷ"f0fI kn'town!xΩH C-!}94İȰ~(0;˰(jBҰhް=@@P- N%HIȩOPQOYS[S3WRT[\[DC{& hy@@s& i@@qok@`@*Surjective<W_v"lBBF"lA #il%7@ RQH I>ru.@l"Su YX@(list_indjL!Ze&)?$@+E~B#Z\rKC3_^Pb c8Oq}η7ϩ>.0Cd\ \"s@!"c$*iMTYp.ϐ0@ \cfp!*ܩcjuɰwG\y*k"IC?طq٩x(װ*PU ,۰.޵\4 68൷>ީΰ=@ Xְ"kذU( $%^' CCCCB `lm CIeq9, Sܩ4ַש°ܩ!$@ ˰Ω*% 0©KJ̷e Ȑ"INQa  " 4ΩP'IH9@.·é4j7 q驷" @bYPFh3KηϩO(i+A'@(/ߩ| ^}7a*+7- h2*ٷکAܩ8YCĔ&go@@&(n@@@yw@Ķ@ccnSPgĩFKGUDWːV"FBߩض@``@hRe٩a)C@E@i1`MbzOdԩypw~Y4~}@cy@9iff_iff_iff_impl_morphism8C xe^  Yz`"Ӡik\m55@6reflexive_proper_proxy5š@-iff_Reflexive/hA @5Surjective_list_carac `I3ϩ$éKLJ@%&$!|771R 穚G@,uniquify_map_8+noࠩޠ5Kְ90)@Z[DZH+LMO{ee#lA'pF۷@\[`COPŠg}}#IC' priVWנyD(JQCzx@ǩ1(ɷ@B@  bi?S "FAq\mkUW<fahX_450˩  6^pwjT۩fw\!@&됷*_@C[Ġ7Y "˰`VAj CN )&q '@@^ "@˩ȩƠ kĩ   #@>trans_sym_co_inv_impl_morphism'\|ש@/Equivalence_PER/;ޚ@/iff_equivalenceZ4 ! ۷ܩʩ* ! @ @ 2@0Surjective_carac:ܿ ) 1 H G@I1@1 *@렶@ ;@  F@ ?ש I@*Finite_alt Հ  H@@@ L  >@ 3 '@i " :ѩ^  t t 4C)'y  k $ j4  s  j  Vؠܩz  ?}  @/Injective_carac]   = w ~  [  @ = ;   b c $ `    ]  E@1NoDup_length_incl:_  [ [ /  _+2@"le UxT@ Ʃ A  c@*map_length8  l ةnn 9 f  C f "'  h $ ) u ˠ C y   @ v v  ꐷ   J @-NoDup_map_inva6 n n    g@   u w w     e g g   @ @        c[ p    t T  t ʩO K X  ? }    @   s  u u  ʩ   o  q q   ᐷ@ @ / 0 C   1  3 Ȑ"L' 6 & ' $ z  ' ? ! A +C .  I@   @ ⠶@ H   L  : 9 ɶ@   ?   U  S @@  V ;    E \@@ _ e a  ? Է@  ?@  V     @@ + Y  p &t @@ V T@ĩ@ ` L b cV  BR 4ʩf FJ 8 EI@  Z  d y A N I@ :é d < =n  P Z < L Y + -  @ Щ q  {  " s  ɔ&_w @@ &x @@ i  ɩ @%EqDec;% .  6T? @3Finite_Empty_or_not% xA^@S,+ @ K 1!g  : v 7 e  ڠ#noA;Ȑ#noB  [   D # E  G  ·@  : * ;  = (    . ?    R J@ \ F& 7 Y  J v$  " b @*False_rect$0 S * j 3 3@@D  7  R r     n @  z { "!   ? @  p  q  h @ s S d l ǰ  Q *   |  Ȑ!h n v!k mР&Specif 2@'sumbool7̂K@BAAAA@@@@@A!s    5  @$boolZ'@   ?@ A@B  / Ȑ#getg t h   j   @  z    ~  s   ^ @$find$K> o   ɷ@ #  -   '  Ð 1 l   k /    p *@)find_some     6 i    ?S E BJ @ ? r    H\ 7 a T L   b R     Rf . Y k^s   Y Ft \M J B@@@@@D jX  L F   p vO  N =  ۠@@ ~<p  @ ᠷ    ϷU ĩ  Z @  @   ;R +     k * @@@@@@@@D +   2  2   @% _ l Z  C @   N ̐t     Z   / =  Щ j   - e . Ȱ 0  @  , l - ϰ / H 3  ^ 2 X 2 E ? G % ީ ݰ 8   ֩ N * ԩ @    ߩ R  ͩ ' V@@  Y    η @   d@  P   g    ̩  "e0#sn r G  = s   t@ (  wo,3 2 q  h 2C@ 4  '  @)find_none   +  A u  wC@r .  % t> ` ~C@ 6"" 8  / ~ + &F @@ &OG @@ a   { x)Gn d @2Surjective_inverse#Y 8 K b t   @ N &  = d * j  @ @)Bijective } / 4 s А  (@ 5  r   z p Ɛ ޶  -  & F   ˩  " 3  , ɐ "   I  : f   = |    A ,  B  ; j F 1 r  ls @'nat_indJt{ #Fin'Vectors $@!t"Y@  i ߐA  ڠ   "  @ABAB@@@@@@@D@(@ Ѱ    5  ذB ?$   -)  s  ) @@A@A@@@@D  P }@ & 8 R ~ G > 6 V W̷ 4P   C : թ&  +G a  V @\  1O G g h Q@ QQ 7U VM n fWC -[S鷐#IHnq Q@ F Du h = ;y d  s|@  F "Hl   V1 P N\ 6   A P  SB W @%caseS#x`  #!py r9,6 (   ' . x 3 xA  Ͱ `>)  A FC'   FC 9 @ ͩ4 ϵ > E"ɷ WJT հ uH>7- K= p@&in_map5Nu3BRA  C P W4۩7 ΩE      C ZR 鐑 Z a @q - eé  Ե+Compare_dec%Arith@)le_lt_dec E  DéL      N NˠV      5,Fin2Restrict@#f2n%*  @)of_nat_lt%C  , , % # ' "Lt=@)le_not_lt _  <2 B7   #1 ;-  /@&f2n_ok5  ۩ , S:@'n2f_ext"H( Z;C QC@&extend5ю ZCS@$bFun:\R    s .i@&to_nat4ﺀ AE@#sig#* @    x8 BBB@@@@DH    4@ 20ob@)proj1_sigY    ,Cl@)proj2_sigV  F  d: %  & , A * v # 0  1 "L9M. ; ?Ʃ0 =VVn~ː"x' DAݠ` Πe X ֠Z@  Ks  ^((0N P fڠٷ^ k > l >I[ذMi v I w Rek|, @*  t2 /.0@ xy   (n ,r >D + ɰ  7} & 21 35C@ ְ A *Aͩ  é  /7 E ũ[ 9& ˷  ̩ NYՐ8ɰ  %  DcͰ C@ FT 7O& 8o (TZ[+^@'n2f_f2n"HY F   UBŷDG|)gͷͩJ = 8 ~U}jw*+{EW ewG$ y onlpnlPΩ01G^"h' sM 8@)@h?E̩y G0W ~|Cvpnxyy֩}Ð@)extend_okdY␑ S Z@ \ \"hf)k|cly hV j_ lGBvu@@@@@ wRw7 yTQk"t \  A q@'f2n_n2f Y3C  b  i k&Cư ߩ@(restrict qDO鐑  <QPNv  ̠+BQD@  IgR ՠ 88 Ʒ$-o0X Ϸ9 Hd  ׶a] AtD̠ fЩ ٠Wv_C@  %? 'f} hZd#^+C@) rMu,Olt|n !K6WC86p?Q}\wDA  @@+bSurjective D =--@ @44 WT6drq 2 3Y1` 7f @ = >d-k Bq rI Ԑ KH@t ҠV} TZmʩ " "s琷"Eq cTiѩנVGݷ2ީG qӰY㩚@'f2n_inj Ā`f 2 zfk v } Zl^? sxu   iz  ҷ   İp"   , &@*extend_f2ne60CIW "hy׷yةܰ@@ !)   ĩQQj ˷ ̩ Щ]Dé] WƩ ٩  ̩l   ߩ  lqI%. ZuevO CƐ  z@o@*bInjective'=fрض@ש ַ  -+54rzGũzLMé &   ; A+© 0  E "6]mjnM $*+?  * YCZ$ o\F]H_C87 4 5"hx hݩg >mDWoFY D5v7 It Ky M>@ŷ R} TƠ@oBq ðPePRgϷ VΰT֩$Ұ_t_ av۰chc)ej   } w ~ɩ ]n]X\e\Ġ }/-A@*extend_n2fe%R7İBUL ʰ  ΰ ~~ѰΩz|ک O  ϩ$өͩ<a   AG#1gB   OPP?u@Cʐ  ɷZo(lU@ ک1 @ ©7Z{  ڷ2IDTk8./FWLT\M@BP H  )   %   #* sP 1 8MY p3\?/ @,restrict_f2n%ȋӀCNMZpiq)*PW.{&@23Y`7 y#9:eM|ǐ> ;@g Š4pG8w):?gې~U_6! `8:KPxcNנ@ ahjܠ<pnhoq M[Cqx @_@ &M5Q;8*ʩG{)IK Cqs%50-$ϰ:1%8 ۷#ڰEY?D  A;#+3%L"N!$X7@,restrict_n2f%ȗ @-f <Fje;V3?$)C  SIWMoc tzVdiu  7^%rCzy#(K`/Aub pxEx JK  }n&={ ; z2IG&9b$ m%P'̩0C.!F*I&C07ݷکvt[@=trans_co_eq_inv_impl_morphism&ni$U|d@.iff_Transitive*zȩj\bzzi@/eq_proper_proxy)fc@2restrict_injective)D o p rx젩@3restrict_surjective&7 ~@9Endo_Injective_Surjective,Sy@*Fin_Finite= ⵷?'d@&eq_dec2|  ŠPϩ͠ .""n0'C2͐1FECI4 : 8 5 0 .GM aNϠu@Ԡ۰((߰ΐ i, 5 0Y H%g >@ @R 8@꠶@  @ 9 @  lat@@Xv M@ @-a G ]d# _Ne Ri< ) 'RZD`,Xw% N|Z CVjuȐ"Biu@>Injective_Surjective_Bijective<''-+ uð**h@]@T / 7!<t, m >C@QCJ! N%o ! %@QթY#8ܩ`#(=ĩ bg(@@թgnErIՐ"Hg!#Hg'Ʃ}/@E6 -%]@dѐ کhݩ6G7o@txI,IF~"Hx  =RR vHdm ư]$ _ a-ϰ1 6!԰;.) )߰""1$+20r5ݐ(JO3ũ .ɩ;, *]H'#<!P9PK nQe\QE