!4-%Equiv@$)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@'Prelude$Init#Coq@@)Notations$Init#Coq@0XMtԱ4 ߱9-%Logic$Init#Coq@0O{yʁjbſŠ)Datatypes$Init#Coq@0f:|aԬ)ܑ *Logic_Type$Init#Coq@0$IS'G6Ȳ&Specif$Init#Coq@0؇)+)ެ/*K#Nat$Init#Coq@0dbGntO ZTk%Peano$Init#Coq@0o gFF~"Wf$Init#Coq@0dV<'Tactics$Init#Coq@05،I`VY0A+Aub;$Bool#Coq@0*nKIvİ. &Basics'Program#Coq@0Z3}ɚ_K$Init'Classes#Coq@0˻GF+<՚ЗH'Tactics'Program#Coq@0 4x>Ơ4Relation_Definitions)Relations#Coq@0P,B? L6/RelationClasses'Classes#Coq@06z NcM)Morphisms'Classes#Coq@0%KP񽠠0CRelationClasses'Classes#Coq@0- vN]mN;*CMorphisms'Classes#Coq@0K823CPP.Morphisms_Prop'Classes#Coq@0PZ_D|%ߟv+Equivalence'Classes#Coq@0% +< qz-SetoidTactics'Classes#Coq@0oMUV&Setoid'Setoids#Coq@0I\ @$0a*Equalities*Structures#Coq@0  hGk2Relation_Operators)Relations#Coq@04*oV}m4Operators_Properties)Relations#Coq@0lv >!Uaj?2)Relations#Coq@0Q&Wv DBz-tʠ&Orders*Structures#Coq@0$L\ P*NumPrelude'Numbers#Coq@0HHHHz8ab^)OrdersTac*Structures#Coq@0&?Up@EteZ+OrdersFacts*Structures#Coq@0H ALAɽ-GenericMinMax*Structures#Coq@0v* +Ѵ?٠(NZAxioms&NatInt'Numbers#Coq@0,p蹭8&NZBase&NatInt'Numbers#Coq@0,L4&Ca%NZAdd&NatInt'Numbers#Coq@0>}cq=J*'%NZMul&NatInt'Numbers#Coq@0/7d#)Decidable%Logic#Coq@00ț "O_'NZOrder&NatInt'Numbers#Coq@0%#/{ˬy?*NZAddOrder&NatInt'Numbers#Coq@0lU%1*gFz*NZMulOrder&NatInt'Numbers#Coq@0Uf t_ٌP.(NZParity&NatInt'Numbers#Coq@0^McEa継ߴm%NZPow&NatInt'Numbers#Coq@0UZV?.@&NOrder(Abstract'Natural'Numbers#Coq@0# bu)NAddOrder(Abstract'Natural'Numbers#Coq@0`XO1n܀m)NMulOrder(Abstract'Natural'Numbers#Coq@0~yM: ʠ$NSub(Abstract'Natural'Numbers#Coq@0\4kwL'NMaxMin(Abstract'Natural'Numbers#Coq@0'{"ljզ'NParity(Abstract'Natural'Numbers#Coq@07:{F+'$NPow(Abstract'Natural'Numbers#Coq@0~AP9P%NSqrt(Abstract'Natural'Numbers#Coq@0I r[&Z$NLog(Abstract'Natural'Numbers#Coq@0 SnI`]y$NDiv(Abstract'Natural'Numbers#Coq@0e.qIz yQvIF$NGcd(Abstract'Natural'Numbers#Coq@0З\9sؼY$NLcm(Abstract'Natural'Numbers#Coq@0q1Q ̓}Cy %NBits(Abstract'Natural'Numbers#Coq@0%x}hK'$+NProperties(Abstract'Natural'Numbers#Coq@0 J-?t_͠(PeanoNat%Arith#Coq@0J# ݳ0j}4젠"Le%Arith#Coq@0vi:5"dxIV"Lt%Arith#Coq@0eS>Ә|pF$Plus%Arith#Coq@0B"3$î>jǠ"Gt%Arith#Coq@0i,ųd%Minus%Arith#Coq@0 gГFU?bv$Mult%Arith#Coq@0cd\o9B'Between%Arith#Coq@0d0]Z*EqdepFacts%Logic#Coq@0.!~F)Eqdep_dec%Logic#Coq@0:oLf`}ʠ)Peano_dec%Arith#Coq@0&φ^<j8!+Compare_dec%Arith#Coq@0D{Е)Factorial%Arith#Coq@0fyN;P _{ۗ%EqNat%Arith#Coq@0)C-b˸4?l&Wf_nat%Arith#Coq@0m A]֤J%؛*Arith_base%Arith#Coq@0G-_/I'BinNums'Numbers#Coq@0©&o&%Y )BinPosDef&PArith#Coq@0ppozĨ8[{&BinPos&PArith#Coq@0y-]"͓A_)BinNatDef&NArith#Coq@0=Wnå5y{栠&BinNat&NArith#Coq@0s]$Xca`]x$Pnat&PArith#Coq@0~ֿeZ`2b{KҠ$Nnat&NArith#Coq@0;,֖!-ޕxAq+Ring_theory+setoid_ring#Coq@0k CD֢%Quote%quote#Coq@0TUEóT(W$List%Lists#Coq@0p':xv M'BinList+setoid_ring#Coq@0x t(g'ZAxioms(Abstract'Integer'Numbers#Coq@0J'|FeeJG%ZBase(Abstract'Integer'Numbers#Coq@0|U"mQQ-0JG$ZAdd(Abstract'Integer'Numbers#Coq@0 $쳿NlVtf֠$ZMul(Abstract'Integer'Numbers#Coq@0?F%><}4&{4a#ZLt(Abstract'Integer'Numbers#Coq@0^^՞*]ķdC)ZAddOrder(Abstract'Integer'Numbers#Coq@0q<ۮJ͏:8ɠ)ZMulOrder(Abstract'Integer'Numbers#Coq@0>pށ1*'ZMaxMin(Abstract'Integer'Numbers#Coq@0O*>⽈~(]'ZSgnAbs(Abstract'Integer'Numbers#Coq@0ބ\z*޷p'ZParity(Abstract'Integer'Numbers#Coq@0Cru }r5$ZPow(Abstract'Integer'Numbers#Coq@0 5gW5)ZDivTrunc(Abstract'Integer'Numbers#Coq@0$,`"d&L)ZDivFloor(Abstract'Integer'Numbers#Coq@0)A(GQAXYN$ZGcd(Abstract'Integer'Numbers#Coq@0(ࢦ|@à$ZLcm(Abstract'Integer'Numbers#Coq@0rxµ۟ј"Š%ZBits(Abstract'Integer'Numbers#Coq@0m~܍xQUu+젠+ZProperties(Abstract'Integer'Numbers#Coq@0sۈ.B]}Rm)BinIntDef&ZArith#Coq@0iEY+InitialRing+setoid_ring#Coq@0;/7c6v(Ring_tac+setoid_ring#Coq@0] N@7)Ring_base+setoid_ring#Coq@0jT0v,:̼Ԡ$Ring+setoid_ring#Coq@0CLxBV_cEP)ArithRing+setoid_ring#Coq@01rl#uHrKmƠ%Arith#Coq@02Ȯ΄/Eb؀'Zminmax&ZArith#Coq@0zuN]Z|kO$Zmin&ZArith#Coq@0LY*1!w$Zmax&ZArith#Coq@0e/TCA|5$Znat&ZArith#Coq@0p=t&f#n$Zabs&ZArith#Coq@0U>[XQ鷁^g:)auxiliary&ZArith#Coq@0L6U4aEР%Zmisc&ZArith#Coq@0xw}}{.$Wf_Z&ZArith#Coq@0zAvfs >Ŝ&Zhints&ZArith#Coq@06J>0\ 7B6(+ZArith_base&ZArith#Coq@0ӆ%$8(+OmegaLemmas%omega#Coq@0q|%GC#Max%Arith#Coq@0,hPymsҭ#Min%Arith#Coq@0m,[38@(PreOmega%omega#Coq@0a<}Чk'$%Omega%omega#Coq@0d"ctS0 :j8FunctionalExtensionality%Logic#Coq@0ŠLzSjʬj%SfLib@0krmUg9$Maps@0H֫dؠq_Ơ#Imp@0roẉ<`t&W ) <3}Р%Equiv@A&aequiv @"a1#Imp@@$aexp#@"a2 "st@%state$ș%Logic$Init#Coq@@"eq @)Datatypes@#nat@,@%aeval$XAC B@<#Imp@@$aexp#@; A +j() +7S' 7! 7!77&'At&P)d7pIx@@@@@@&bequiv @"b1k@$bexp#@"b2 hfaT@$boolZ'@}@%beval$UπQN@L@$bexp#@I +j() +7S' 7! 7!77&'tPd*px@@@@@@&cequiv @"c1@#com#v@"c2 #st'@#iffС)@%ceval$R@D @#@#com#v@" +j() +7S' +7S'7" 7"7%'t`$(2@@@@@@&prog_a @LEED B@!X#5AAmB$CB@Z d679:7:779:9:jAA@D.L1dA@t:|@@@@@@&prog_b @CDCXGGe@!Y#5DNXRasDkk @ 67:7979:7::77:77:779:7::779:;:jA@D!L$\}lDA@\3dAA@t>|AA@A@Ġ@@@@@@&prog_c @A@(Fj@@@@@@&prog_d @ܠِ~ΩEo@ |67979::7:779:9:jAA@DL\|A@LT@@@@@@&prog_e @@;<67:jA@DL@@@@@@&prog_f @Ӡ  /,@] 679:7:7979:9:779:7::jAA@D1Ldt:DAA@lEt@@@@@@&prog_g @fA@,6jD@@D@@@@@@&prog_h @$yyg@ l679:7:7979:9:jAA@DLdtD@@@@@@&prog_i @}8@ۀ l679:7:7979:9:jAA@DYLd_tD@@@@@@-equiv_classes @%SfLib@@%admit1(@$list]@4@)Datatypes$Init#Coq@@$list]@ 067 7 7 jJD#L'X4d@@@@@@.aequiv_example @@ @#@*r@@@@@.bequiv_example @@1A4@*c[Ɛ@@@@@)skip_left @@BB!c#Imp@@f#v@P@*+@@@@@*skip_right @@g@@*+))@@@@@/IFB_true_simple @@tC1@.<@DACGC@@@@@(IFB_true @@D!b؛R@@l_ AW)Dkhk@@@@@)IFB_false @@$?@[@O*c[IBd_@@@@@0swap_if_branches @@Y"e1"e2xstΐ@@@@@+WHILE_false @@EWV@@aB}EA@@@@@2WHILE_true_nonterm @@F|{Λ@@@%state$șT @IA%Logic$Init#Coq@@#notШ@b$R@EEg@@@@@*WHILE_true @@Զ@ ߩI@@@@@.loop_unrolling @@X#!'@@@@@)seq_assoc @@"c3':;@@@@@3identity_assignment @@Gh$Maps@@"id @FB[UB`!A@@@@@-assign_aequiv @@$Maps@@"id @!e@\@*rds@@@@@+refl_aequiv @@H!a@@@@@*sym_aequiv @@Iٛћ@̀р@@@@@,trans_aequiv @@J웠"a3@퀠̶@ѩؐ@@@@@+refl_bequiv @@$K@@@@@*sym_bequiv @@6L@@@@@@,trans_bequiv @@QM֛ۛ€"b3ǀ@.!@3&#7**@@@@@+refl_cequiv @@vN4-==@@@@@*sym_cequiv @@O˛ƛ@DPTHTW@@@@@)iff_trans @@P"P1P"P2S"P3V@@С)qn@vs zz@@@@@,trans_cequiv @@Q 怶ꀶ[@@@@@@@/CAss_congruence @@R!i$Maps@@"id @#a1'@܀$B-ǩ)B2ɐ@@@@@1CWhile_congruence @@#b1'^\#c1'_@eF@ЩĠFM@@@@@/CSeq_congruence @@wuvpw#c2'z@@ݠ@@@@@.CIf_congruence @@Ҷ"b'ն3@-@|@IGH:@@@@@2congruence_example @@lSCB0@!X#58ATa`@@U@ADCQB#XA A(Bb@!Y#5jA2A:ByAB@BB BBBBB$B)B.B3B8B=BBBGBLBQBVB[B`BeBjBoBtByB~BBBBBBBBBBBBBBBBBAC!B+`A(A0D!CrBDyAAAIB!DB_BfcB;A)B.B3B8B=BBBGBLBQBVB[B`BeBjBoBtByB~BBBBBBBBBBBBBBBBBBBBBBBBB̐ \+j+7S' 7%'idH@@@@@@3fold_constants_aexp @@@ n 1 1p 3 3@AABBBAABBB@Р@@@@@@@@@@@@@D B B з!n #1k> M K B LР )@$prodt@BBB@@@@D!x _ _ _A d d} i#a2' l9 n n 7з"n1 O?  t t =з"n2 Uc#Nat e@#add `.<br "a0 gACiF       D92+ * a( ^з' td% aз$ w"@#sub M[2  5^`7c $     aVOH G ~E {зD B ~зA ?@#mul jx ·< é{}$ ǷA @  ,(j*(=>3 3 :=u>=e&> :'> :'> :'> :'>=1&>:'>:'>:'> :'> 7!9'QE''QF''QG''>3 3 :=u>=e&> :'> :'> :'> :'>=1&>:'>:'>:'> :'> 7!9'Q''Q''Q''>3 3 :=u>=e&> :'> :'> :'> :'>=1&>:'>:'>:'> :'> 7!9'Qm''Qn''Qo''>9'>9'QbJ''+j6'+j6'+j6'+j6'+j6'+j6'+j6'+j6'+j6'+j6'+7Sj6'𠠐РAABACBDBEBA A8ABA\OA<A`A@&Ad*A A2A < d   ܠ # ', +T /| 3 7 ;@@@@@@-fold_aexp_ex1 @@ TT-@"eq @ _@0<逐 E C %ABA 2ABBA DB KE PABBB'A gB9@@@@@-fold_aexp_ex2 @@ Uk詚g D BW C E A^A A%B*B/B4B9B>BA Bd D B C AA B@@@@@3fold_constants_bexp @@@   ː  @@@BBAB@@BBAB@@@@@@@@@@@@@@D    J H ? I  M M@/< U V# X  !з 7' \  %з ; @@@@@@@@A@  (PeanoNat%Arith Q@#eqb.B@  ,ө b v w /1ة 4 { |  } t ~254  O, Lз bR+ Oз e*%$@#leb.=@ ;I     LN Q   1 /bC 1 1 i :    DN    S >   B"b0 E  IFa N L F Mla_ Q Q Q] S SZY U#b2' X Z Z  ] ]  e ʷD ˩$ b& d" e      @O N P ,j*(=DAG >3 3 :=>=`'> :'> :'> :'> :'=*'-> :'> :'> :'> :'G'G'Q''=*'-> :'> :'> :'> :'G'F'Q''Qc''QS''>3 =1.4$> :9'>99'> :9'> :9'F'G'Qw''>7 7 :=>=u&> :'> :'> :'> :'>=A&>:'>:'>:'> :'> 7!= G'F'Q''Q''Q''Qw''>7 7 :=>=u&> :'> :'> :'> :'>=A&>:'>:'>:'> :'> 7!= G'F'Q''Q''Q''Qw''G'F'Q''+j6'+j6'+j6'+j6'+j6'+j6'+j6'+j6'+j6'+j6'+j6'+j6'+j6'+j6'+7Sj6'@@A@ABBBCADBA A蠠A  A0A@hxv@@A@AD2Ah6A,Aؠ蠠tAKAؠOAEA PA \      ࠠ    0  X      Р      H  p      @@@@@@-fold_bexp_ex1 @@ V5 @\W F A E F B A A@@@@@-fold_bexp_ex2 @@ Wdש/ -F 2C BU B* EC A^A D A*B/BuA C AABA ANBA F C B B A@@@@@2fold_constants_com @@@       @@BBCB@BBCB@@@@@@@@@@@@@@@D      O 2                @7W  - . c d ĩ   j k    ũW X       ' @    | }       &    @ W  P,j*(=X>7 ==:A- >3 ::'>3 9:'>3 ::'>3 ::'F'6'Q''>7 =LFR6&>3 3 :;'>3 3 9;'>3 3 :;'>3 3 :;'3$'3$'Q5''>3 3 :'>7 :'F'Q'''+j6'+j6'+j6'+7Sj6'<\D@@dkA|JrA^`uР@@ABBBCCDBA Ƞ 𠠑  4 D@@@@@@,fold_com_ex1 @@ XJ @:R nC sB} C A>BCBHBMBA AZB_BdBiBnBA C BDB׀ ABBBA C D C2D7B >BހECJABBA\ABBBB8A ?A CBAJA RC WDHDAaADA-B2B7B3" 3":'>3" 3":'>3" 3":'> 7!= 9''Q''>9'Q''+j6'+j6'+7Sj+7S'+7S'6'*,At-A 蠠 q,Hh|@@@@@@-subst_aexp_ex @@7Z〰7>@{91 ǀCA B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B #B (B -B 2B 7B B CB HB MB RB WB \B aB fB ACB B ʀCB  CA B B B B B B B B B B B B B B B B B B B B B B B B B B B B #B (B -B 2B 7B BCBHBMBRBWB\BaBfBkBpBuBA@@@@@4subst_equiv_property @"i1"i2FD;E,}.2@91@ +7Sj+7S'+7S' +7S'7"::: :::7%'PpfXj@@@@@@-subst_inequiv @@[a,@K$w@@@@@4var_not_used_in_aexp,<@@@@@LL&VNUNum%VNUId'VNUPlus(VNUMinus'VNUMultж Z{ki Z9@@#notШ vz{@n@l 4@ @  ¶@@ AA@@,ABDDDABDDD@@IW@С@@@@@@@@  @EРAABBCDDDED@@A@AAE@D@@@@8var_not_used_in_aexp_ind @NM!P^!f ҩ WX@V]0˩1L@@W@Զ@@ ۶@Ðη# @@@@J޷3(&'@$@\@)@ʩKTA@!F |?!v> GDEA@@Р@@@@@@@@@@@@@@@@@@@@D _@\0/10з !B Ʒ $ĐV:9pneo0lL<4pM@WEB*0G+/~|s}>? 1xCD2 @涐@B IjW I@@@W@@o@ @TکZ@@@d@@jʶ@&@@s@@ ϶7@ +j(),|'(*()=VNE0> 3! 3!# '> 3! 3!# '> 3! 3!# '> %'>$'Q''+j()$'+7Sj+ 7!S'$'AࠠP|@@@@@@/aeval_weakening @@ P婚Q@)total_map39-ֶ7"niڶ@ީՠb@(t_update<֩@@@@@0inequiv_exercise @@pĠS@@@@@$Himp,Al,<p@@%CSkip$CAss$CSeq#CIf&CWhile&CHavoc@@5@@@Ͷ@@l@@@@@AB@ @BBCBA@BBCBA@)@Y@@@yy@@@@~@@AE@@ABBBCCDBEA@@A@@@@@@@(com_rect @vQ@Y@ےM@Ef@BA3ڶ|B-3@ 5 @n9&CD%@+@ B-@BΩG3D2M8@P٩N>E``YFF瞠@@yeP"gRR@z{@@@@@@@@@@@@@@@@@Dvav)_{f|g{kj'ekl t s,jps8t@춐@,Y@vr J( q@@)Ŷ@ʩu |Λ&@@׶@ܩz8@@ː|,CyFԐ ,+j(),k'*(=HK?/>$'>3 &'>3 3 # '>3 3 #'> %''Q''+j$'+7Sj$'xA@@@@@@'com_ind @P@#xX~@lkjd ,+j7$' X@@@@@@'com_rec @j 1@4z ,+j7$'#X@@@@@@,<@@`@@b@@ @@@h@i/&E_Skip%E_Ass%E_Seq(E_IfTrue)E_IfFalse*E_WhileEnd+E_WhileLoopusLQQxvCd@uhTrX[n]Z],-$st''@ggd@MKQmm;9?@@2,4A@_||^dNLRS@EFB@qZX_@QK*:hf"l@^X-@@9<CC_AEGGGDHAEGGGDH@@Q@@@@@@@@!!!!!!@####@ %%%%%%  @GAABECGDGEGFDGH@@A@@@@@@@)ceval_ind @ on@ c[Y@@RQ@@ѰS@ @X9pöɶwʶ@@@hŰ lI/-.Ӷٶڶ@@*@Ӱ,V޶=;@,\B@AB@@@N@A} A@P QCC@/!s`a Y$ g h'_@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DVA;<@9Jx8m*W~PQ$jk\$nMpO\Z`a!xm {Z}ge!kl(O  fqo̷,v2ѷ$ҷLӷzx4~:(uw@@@@ƶ۶_^@wusUMKs@@DQ@v@ðE߶@ H@( `og@z@@w@8pöɶwʶ@w@(@u@ð궐IҶ1/ٶ@z vQ8678ݶ@w@A@@8@@Q$MO*V@1.230 +j(),'(*()=dI<>   :3    3       # ' > # '>   3#' >   3#' >  3     3# ' >#' >$'Q9''+j() &'+7Sj +7S' +7S'+ 7"S'&'xA  f0i\c@@@@@@.havoc_example1 @@nz@+empty_state&^Xmv@@@@@.havoc_example2 @@'󐚠@!Z#5}ÐŐǐɐːϐ@@@@@Q @PHFD9@X+@Uɐ +j() +7S' +7S'7" 7"7%'t ` e@@@@@@#pXY @@*@ ,6979:jD/T@@@@@@#pYX @@C@ ,6979:jEDT@@@@@@.pXY_cequiv_pYX @@N@"or @@* @J倚 @4Ԑ@@@@@&ptwice @T@{@ ,6979:j'DT@@@@@@%pcopy @8@@ <697:79:jDETd@@@@@@3ptwice_cequiv_pcopy @@VPU@B4DY@/U  @@@@@"p1 @-GU@̀ |679:7:79:779:9:jAA@DLdtA@LT@@@@@@"p2 @\&@ 8F779:9:jA@HP@@@@@@.p1_may_diverge @@ z_ @y ~ @`<@@@@@.p2_may_diverge @@'x&@ @E< @@@@@+p1_p2_equiv @@ݠ#@@@@@"p3 @Ƞ֠/~Π@R |6979:779:9:77::jDVTA@l_tAA@\d@@@@@@"p4 @xs4@ <67:77::jAA@DLA@\d@@@@@@-p3_p4_inequiv @@DI@g<M@9<@@@@@"p5 @g>@ D69779:9:jDAA@T\@@@@@@"p6 @f@ހ<67:jAA@DL@@@@@@+p5_p6_equiv @@@K<@,<@@@@@@@@ے@@A@A@@@@?swap_noninterfering_assignments @@"l1z"l2}! @}W@"Q@$ננܠ@@@@@'capprox @1/0@zz@pt +j() +7S' +7S'+ 7"S'7&'AtD`@@@@@@ @@867 jDL@@@@@@"c4 @@867 jDL@@@@@@/c3_c4_different @@@#andЖw@K@l$ЌP@@LhT@4Lh @@@@@$cmin @T@倐867 jDL@@@@@@,cmin_minimal @@3@#W_@@@@@%zprop @.N@ 0+j67$'T\@@@@@@0zprop_preserving @@J"c'M@@+K]P@i8@@@@@@@@ے@A@@@\@&BinInt&ZArith#Coq@!Z@'quotrem\)BinIntDef&ZArith#Coq@!Z@ /@A@\@@+pred_double\@/S@@A@ABs2@(PeanoNat%Arith#Coq@#Nat@&shiftls2#Nat$Init#Coq@@ vY@A@Cs8@@&shiftrs8 @vY@A@ѓ@@&squareѓ@y@A@z@@@&doublez7@/!@A@AB/@(@)log2_iter/@wd@A@NH/@L@&moduloNH/C@1,@A@Abz@Q@&of_natbzH@1?G!@A@#@W@&shiftl#N@1dV@A@#@]@&shiftr#T@1d\@A@ABCD/x@&BinPos&PArith#Coq@#Pos@)pred_mask/x)BinPosDef&PArith#Coq@#Pos@ )X@A@6@{@&square6r@19@A@V1b@@&to_natV1bx@2 @A@V5=@@&to_posV5=~@2@A@ABCl@o@)sqrt_iterlf@!$:@A@@@0@(sub_mask@'@)@A@ADEF c@z@'testbit cq@!ć@A@G@=@)mask_rectG4@+ED@A@AF˱@B@)add_carryF˱9@+p@A@gL7@@'sqrtremgL7@40@A@Aq@@'testbitq@5)@A@ݎO@@+succ_doubleݎO@6r@A@A p@Z@0double_pred_mask pQ@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@1@#leb T(@3@A@A "@6@#lor "-@3m@A@ q@<@#ltb q3@3@A@ABCEG @A@#max 8@3@A@ @K@#min B@3`@A@A @P@#mul G@3B@A@ ~@V@#odd ~M@3@A@AB =@[@#one =R@3@A@ @b@#pow ˑY@3@A@A c@g@#sub c^@3@A@ @m@#two d@3J@A@ABC hx@r@$div2 hxi@>@A@ @y@$even p@>4@A@A @~@$ggcd Бu@>U@A@ @@$iter {@>:@A@ABD 3"@@$land 3"@>m@A@ F)@@$log2 F)@>t@A@A S@@$lxor S@>@A@ @@$pred @?U@A@AB @@$size ܑ@?'@A@ !@@$sqrt !@?@A@A ! @@$succ ! @?\@A@ !7@@$zero !7@@P@A@ *@@%ldiff *@@A@ABCD g_@@+pred_double g_@25\@A@ m@&@÷ m@2j@A@AS@+@&of_natS"@4};@A@\R@1@(mask_ind\R(@4@A@AB\^@6@(mask_rec\^-@4@A@!,@=@&pred_N!,4@4s)@A@A@B@&shiftl9@5X@A@@H@&shiftr?@5X@A@ABCEFH&@M@&square&ّD@5,x@A@"@V@&to_nat"M@5L @A@AnTq@[@+testbit_natnTqR@6n@A@B@@(succ_posB@@A@I@@'abs_natI@?n@A@AB3~@m@'sqrtrem3~d@7]%{@A@CD,@@'bitwise,@/v@A@>4'@x@'testbit>4'o@8g$@A@{U@~@,sqrtrem_step{Uu@8R@A@u^@%@(div_euclu^@ @A@ABCEl@@'comparel@3R@A@}@3@,pos_div_eucl}*@&`@A@3x@@'compare3x@]=@A@A@?@&double6@'޺_@A@BCq@@+of_succ_natq@$@A@w@K@&modulowɑB@)1@A@AK@P@&of_natKG@)j2_@A@I@V@&shiftlIM@*O@A@ABDO@[@&shiftrOR@*O@A@,@c@&square,Z@*ow@A@A`@h@&to_nat`_@*9G@A@e@n@+testbit_nateđe@+@A@AB+{@s@'sqrtrem+{ёj@,J@A@5z@z@'testbit5zq@-T|@A@ @@+succ_double w@.^4@A@AB#@@'compare#ݑ@ )Q@A@CDE%t2@@(size_nat%t2@ @A@%V@@+double_mask%V@ S@A@A%%@@'div2_up%%@ "@A@'ş@@'Ndouble'ş@ @A@AB(b0@@*shiftl_nat(b0@9-@A@(nՖ@ @*shiftr_nat(nՖ@'@A@A(@@0succ_double_mask(@@A@*W$@@,compare_cont*W$ @!@A@.0@@.sub_mask_carry.0@΂@A@ABCD.@d@!t.[@ ;@A@.먩@k@#add.먩b@ `@A@A.U@p@#div.Ug@ @A@.B@w@#eqb.Bn@ @A@A. @|@#gcd. s@ @A@.=@@#leb.=y@ @A@ABCEFGI. @@#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@@#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@ABC/@@%ldiff/@ H@A@00@c@'compare00Z@?H{@A@A1P%@)@!t1P% @  @A@1P@/@#abs1P&@ @A@ABDF1P&@4@#add1P&+@ @A@1P@@@#div1Pґ7@ y@A@A1P@E@#eqb1P<@ f@A@1P@K@#gcd1PB@ 0@A@AB1P@P@#geb1PG@ T@A@1P@W@#gtb1PʑN@ q@A@A1Pĺ@\@#leb1PĺS@ a@A@1Pň@b@#lor1PňY@ /@A@ABC1P@g@#ltb1Pב^@ ~@A@1P@o@#max1Pf@ @A@A1P{@t@#min1P{k@ "@A@1P]@z@#mul1P]q@ @A@AB1P@@#odd1Pv@ @A@1Pɣ@@#one1Pɣ}@ J@A@A1P@@#opp1Pԑ@ {@A@1P1@@#pow1P1@ @A@ABCD1P;@@#rem1P;@ @A@1P@@#sgn1Pˑ@ r@A@A1P@@#sub1Pɑ@ p@A@1Pe@@#two1Pe@  @A@AB1[8@@$div21[8ޑ@ @A@1[d@@$even1[d@ I@A@A1[6@@$ggcd1[6@ i@A@1[U@@$iter1[U@ @A@ABCE1\@@$land1\@ /@A@1\@@$log21\@ 6@A@A1\$@@$lxor1\$@ @A@1\Y@@$of_N1\YÑ@ >j@A@AB1\@@$pred1\@ j@A@1\@@$quot1\֑@ }@A@A1\@@$sqrt1\@ @A@1\w@@$succ1\w@ @A@AB1\k@@$to_N1\k@ @A@1]@@$zero1]@ eD@A@A2:@@%abs_N2:@ @A@21@@%ldiff21@ ߵ@A@2=*@@%quot22=*@ @A@ABCDE2kF@R@(size_nat2kFI@{@A@5Z@Z@*shiftl_nat5ZQ@y/@A@5f}@`@*shiftr_nat5f}W@4@A@AB5a@@'iter_op5a@ @A@9E@,@(div_eucl9Eđ#@(*k@A@AC:x@@,Nsucc_double:x@ ʭ@A@<@9@'pos_sub<0@+ie@A@@@&divmod>@C@A@>@@&double>@NĴ@A@?2@@,pos_div_eucl?2@-u@A@AB?;@@&modulo?;@"i@A@CDEFHIJ@@%Arith#Coq@02Ȯ΄/Eb؀)ArithRing+setoid_ring#Coq@01rl#uHrKmƠ*Arith_base%Arith#Coq@0G-_/I&Basics'Program#Coq@0Z3}ɚ_K'Between%Arith#Coq@0d0]Z&BinInt&ZArith#Coq@0µri )BinIntDef&ZArith#Coq@0iEӘ|pF$Maps@0H֫dؠq_Ơ#Max%Arith#Coq@0,hPymsҭ#Min%Arith#Coq@0m,[38@%Minus%Arith#Coq@0 gГFU?bv)Morphisms'Classes#Coq@0%KP񽠠.Morphisms_Prop'Classes#Coq@0PZ_D|%ߟv$Mult%Arith#Coq@0cd\o9B$NAdd(Abstract'Natural'Numbers#Coq@0OC>?.@)NAddOrder(Abstract'Natural'Numbers#Coq@0`XO1n܀m'NAxioms(Abstract'Natural'Numbers#Coq@0u#(~dbUчu%NBase(Abstract'Natural'Numbers#Coq@0)ke ql}6%NBits(Abstract'Natural'Numbers#Coq@0%x}hK'$$NDiv(Abstract'Natural'Numbers#Coq@0e.qIz yQvIF$NGcd(Abstract'Natural'Numbers#Coq@0З\9sؼY$NLcm(Abstract'Natural'Numbers#Coq@0q1Q ̓}Cy $NLog(Abstract'Natural'Numbers#Coq@0 SnI`]y'NMaxMin(Abstract'Natural'Numbers#Coq@0'{"ljզ)NMulOrder(Abstract'Natural'Numbers#Coq@0~yM: ʠ&NOrder(Abstract'Natural'Numbers#Coq@0# bu'NParity(Abstract'Natural'Numbers#Coq@07:{F+'$NPow(Abstract'Natural'Numbers#Coq@0~AP9P+NProperties(Abstract'Natural'Numbers#Coq@0 J-?t_͠%NSqrt(Abstract'Natural'Numbers#Coq@0I r[&Z$NSub(Abstract'Natural'Numbers#Coq@0\4kwL%NZAdd&NatInt'Numbers#Coq@0>}cq=J*'*NZAddOrder&NatInt'Numbers#Coq@0lU%1*gFz(NZAxioms&NatInt'Numbers#Coq@0,p蹭8&NZBase&NatInt'Numbers#Coq@0,L4&Ca&NZBits&NatInt'Numbers#Coq@0'xR_ V~%NZDiv&NatInt'Numbers#Coq@0J%NZGcd&NatInt'Numbers#Coq@0$ eJUHqkk%NZLog&NatInt'Numbers#Coq@0 by{tQ;e%NZMul&NatInt'Numbers#Coq@0/7d#*NZMulOrder&NatInt'Numbers#Coq@0Uf t_ٌP.'NZOrder&NatInt'Numbers#Coq@0%#/{ˬy?(NZParity&NatInt'Numbers#Coq@0^McEa継ߴm%NZPow&NatInt'Numbers#Coq@0UZV!Uaj?2&Orders*Structures#Coq@0$L\ P+OrdersFacts*Structures#Coq@0H ALAɽ)OrdersTac*Structures#Coq@0&?Up@EteZ%Peano$Init#Coq@0o gFF~(PeanoNat%Arith#Coq@0J# ݳ0j}4젠)Peano_dec%Arith#Coq@0&φ^<j8!$Plus%Arith#Coq@0B"3$î>jǠ$Pnat&PArith#Coq@0~ֿeZ`2b{KҠ(PreOmega%omega#Coq@0a<}Чk'$'Prelude$Init#Coq@0A+Aub;%Quote%quote#Coq@0TUEóT(W/RelationClasses'Classes#Coq@06z NcM4Relation_Definitions)Relations#Coq@0P,B? L62Relation_Operators)Relations#Coq@04*oV}m)Relations#Coq@0Q&Wv DBz-tʠ$Ring+setoid_ring#Coq@0CLxBV_cEP)Ring_base+setoid_ring#Coq@0jT0v,:̼Ԡ,Ring_polynom+setoid_ring#Coq@0rP(p?2Uz(Ring_tac+setoid_ring#Coq@0] N@7+Ring_theory+setoid_ring#Coq@0k CD֢&Setoid'Setoids#Coq@0I\ @$0a-SetoidTactics'Classes#Coq@0oMUV%SfLib@0krmUg9&Specif$Init#Coq@0؇)+)ެ/*K'Sumbool$Bool#Coq@0Rܝpk 'Tactics$Init#Coq@05،I`V'Tactics'Program#Coq@0 4x>Ơ"Wf$Init#Coq@0dV<$Wf_Z&ZArith#Coq@0zAvfs >Ŝ&Wf_nat%Arith#Coq@0m A]֤J%؛$ZAdd(Abstract'Integer'Numbers#Coq@0 $쳿NlVtf֠)ZAddOrder(Abstract'Integer'Numbers#Coq@0q<ۮJ͏:8ɠ+ZArith_base&ZArith#Coq@0ӆ%$8(*ZArith_dec&ZArith#Coq@0Qbz]\'ZAxioms(Abstract'Integer'Numbers#Coq@0J'|FeeJG%ZBase(Abstract'Integer'Numbers#Coq@0|U"mQQ-0JG%ZBits(Abstract'Integer'Numbers#Coq@0m~܍xQUu+젠)ZDivFloor(Abstract'Integer'Numbers#Coq@0)A(GQAXYN)ZDivTrunc(Abstract'Integer'Numbers#Coq@0$,`"d&L$ZGcd(Abstract'Integer'Numbers#Coq@0(ࢦ|@à$ZLcm(Abstract'Integer'Numbers#Coq@0rxµ۟ј"Š#ZLt(Abstract'Integer'Numbers#Coq@0^^՞*]ķdC'ZMaxMin(Abstract'Integer'Numbers#Coq@0O*>⽈~(]$ZMul(Abstract'Integer'Numbers#Coq@0?F%><}4&{4a)ZMulOrder(Abstract'Integer'Numbers#Coq@0>pށ1*'ZParity(Abstract'Integer'Numbers#Coq@0Cru }r5$ZPow(Abstract'Integer'Numbers#Coq@0 5gW5+ZProperties(Abstract'Integer'Numbers#Coq@0sۈ.B]}Rm'ZSgnAbs(Abstract'Integer'Numbers#Coq@0ބ\z*޷p$Zabs&ZArith#Coq@0U>[XQ鷁^g:%Zbool&ZArith#Coq@04dClQ UhZQ>Y(Zcompare&ZArith#Coq@0#Eq; /9<%Zeven&ZArith#Coq@0X0|%0\ 7B6($Zmax&ZArith#Coq@0e/TCA|5$Zmin&ZArith#Coq@0LY*1!w'Zminmax&ZArith#Coq@0zuN]Z|kO%Zmisc&ZArith#Coq@0xw}}{.$Znat&ZArith#Coq@0p=t&f#n&Zorder&ZArith#Coq@01:b谠|94)auxiliary&ZArith#Coq@0L6U4aEРAA(2 Q@@@(e@@@@@@@#_36%@A@@@@@@@@#_372M접 @#_38'`o@@@@((@(r2 Q.@@@@@#_39%)(@#_402M접 &#_41'`o@@@@(k(o@(P2 QS@@@@@#_42%NM@#_432M접 K#_44'`o@@@@(C(G@((2 Qx@@@@@#_45)6@(3,ts@#_462M접 @#_47'`o@@@'2 Q@@@@@#_48)R@',@#_492M접 @#_50'`o@@@'2 Q@@@@@#_51)n@',@#_522M접 @#_53'`o@@@'2 Q@@@@@#_54)@',Ƞ@#_552M접 @#_56'`o@@@'2 Q@@@@@#_57)@',䠠@#_582M접 @#_59'`o@@@'2 Q@@@@@#_60)@',@#_612M접 @#_62'`o@@@'j2 Q @@@@@#_63)@'u,@#_642M접 @#_65'`o@@@'j2 Q<@@@@@#_66)@'u,87@#_672M접 @#_68'`o@@@'\2 QX@@@@@#_69*@'g,TS@#_702M접 @#_71'`o@@@'N2 Qt@@@@@#_72*2@'Y1lThpo@#_732M접 /@%admit1(#_74'`o@@@'12 Q@@@@@#_75*T@'<˻@A@@@@@#_762M접 #_77'`o@@@'?2 Q@@@@@#_78*s@'J-^@A@@@@@#_792M접 #_80'`o@@@'M2 Q@@@@@#_81*@'XM:@A@@@@@#_822M접 #_83'`o@@@'d@'T2 Q@B@@@#_84*@'_K @A@@@@)@$_1242M접 $_125'`o@@@@@,,)@(2 Q[@A@@@$_126-@("@A@@@@W@$_1272M접 $_128'`o@@@@@@@,렐,,󠐐**#@(*2 Q@A@@@$_129-Q@(5z-@A@@@@@$_1302M접 $_131'`o@@@,@(<2 Q@A@@@$_132-u@(G>qec@A@@@@@$_1332M접 $_134'`o@@@@@,,*d@(O2 Q@A@@@$_135-@(ZJB@A@@@@@$_1362M접 $_137'`o@@@@@@@-)---1**@(b2 Q@A@@@$_138-@(m Bp@A@@@@@$_1392M접 $_140'`o@@@-@(t2 QA@A@@@$_141-@(>-@A@@@@=@$_1422M접 $_143'`o@@@@@-6-:*@(2 Qo@A@@@$_144.-@(6)^E@A@@@@k@$_1452M접 $_146'`o@*type_scope@@@@@@((@(2 Q@A@@@$_147.c@(@A@@@@@$_1482M접 $_149'`o@@@@@@@---+<+@@(2 Q@@@@@$_150.@(>@A@@@@@$_1512M접 $_152'`o@@@@@@(Ƞ.p.t+@(2 Q@@@@$_153.@(6ps2 @$_1542M접  $_155'`o@@@@@@@@.o.s.0.4+<+@(Ѡ2 QK@S@@@$_156/@(1mE@$_1572M접  $_158'`o@@@@@@@@.c.g.k.o+Ҡ+@(2 Q@@@@$_159/C@)3!@$_1602M접  $_161'`o@@@@@@@@@@@.蠐.점....+,, @)2 Q@D@@@$_162/@)* @A@@@@@$_1632M접 $_164'`o@@@&ݠ2 Q@@@@@$_165@$_1662M접 砠$_167'`o@@@@@&Ԡ2 Q @@@@@$_168/@&ͦ-<@$_1692M접 $_170'`o@@@@@&Р2 Q*@@@@@$_171/@&NXZ%@$_1722M접 #$_173'`o@@@@@&̠2 QH@E@@@$_174%wB@$_1752M접 AA@A$_176'`o@@@/@%Р2 Qi@D@@@$_1770'@%q@A@@@@e@$_1782M접 $_179'`o@@@%2 Q@D@@@$_1800F@%q@A@@@@@$_1812M접 $_182'`o@@@%&2 Q@E@@@$_183#@$_1842M접 AA@A$_185'`o@@@/@#2 Q@D@@@$_1860@$/O@A@@@@@$_1872M접 $_188'`o@@@#2 Q@D@@@$_1890@#/P@A@@@@@$_1902M접 $_191'`o@@@#2 Q@E@@@$_192"@$_1932M접 AA@A$_194'`o@@@/@"2 Q'@D@@@$_1950@# !-@A@@@@#@$_1962M접 $_197'`o@@@ h2 QF@@@@@$_1981@ s"g#@A@@@@B@$_1992M접 $_200'`o@@@ w2 Qe@m@@@$_2011"@ \_@$_2022M접  $_203'`o@@@ 2 Q@@@@$_2041?@  ;|@$_2052M접  $_206'`o@@@ 2 Q@E@@@$_207 X@$_2082M접 CC@A$_209'`o@@@@@,預1.12@ N2 Q@D@@@$_2101@ YC@A@@@@@$_2112M접 $_212'`o@@@X2 Q@@@@@$_2131@c$w@$_2142M접 ⠠$_215'`o@@@72 Q @@@@@$_2161@B1@A@@@@ @$_2172M접 $_218'`o@@@DN$@@B@I1@;;;;;@@@@ (@$_219=%@ &A * B . C 2D 6E :@$_220'`o@ @@@@-^2@$_221'`o@2@A@)nat_scope@-r1@$_222'`o@F@B@@@@--@$_223'`o@]@C@@@@@@-2C2Gs@@$_224'`o@@D@@@@@@-2e2i@@$_225'`o@@E@@@@@@-⠐22@@2 Q @G@@@$_2262@%6K젠 @$_2272M접 II@A$_228'`o@@@@@@@@@@@.@@@@@@2Ƞ@$_229? 3V._ind_from_prop52 Q 1@9@@@$_2302@:0m+ +@$_2312M접  $_232'`o@@@@@@.Z 32䠐@2 Q h@p@@@$_2333%@ b b@$_2342M접  $_235'`o@@@rHȠ@2zN$@@B@22@      @@@@ @$_237a@ A  B  C D E F @$_238'`o@$@@@$_239'`o@,@A@@$_240'`o@4@B@@@.٠3~@$_241'`o@F@C@@@M@@$_242'`o@Y@D@@@@35e@@$_243'`o@q@E@@@3L|@@$_244'`o@@F@@/(@n2 Q &@5@@@$_245@x#xX  @$_2462M접 HH@A$_247'`o@@@@@@@@@@@@@@@@@@$_248? 3V/_rect_from_type"-ˠ2 Q ]@l@@@$_249@'˝W W@$_2502M접 HH@A$_251'`o@@@@@@@@@@@@@@@@@Q@$_252? 3V._ind_from_typeY-2 Q @@@@$_253&@'ע @$_2542M접 HH@A$_255'`o@@@@@@@@@@@@@@@@@@$_256? 3V._rec_from_type-$_257@Р@@$SKIP@@$SKIP$SKIP@@@@@@@@$_258%c?@@@A@$SKIP4w@&'SKIP'$_259@Р||@|@@'_ ::= _|@|@@3#::=|A /@@@@@@A@A@$::= B@@@@@$_260%c?@@3@@@0 @@@@B3Š0@@'_ ::= _4@)X '::=' a$_261@РPP@PA@&_ ;; _PAP@A4H";;PA 4J@@@@@NA@A@BA@@@@$_262%c?@@4h@@@4c@@@@C4t4m@@&_ ;; _5:@(c1 ;; c2$_263@РPȐȠȐ@0WHILE _ DO _ ENDP@%WHILE@1 "DO 2#END@@@@@&WHILE AȠA@#DO BȠA@@@@@$_264%c?@@1@@@2B@@@@sE12L@@0WHILE _ DO _ END5k@6'WHILE' b 'DO' c 'END'$_265@РPȐȠȐȠȐ@6IFB _ THEN _ ELSE _ FIP@#IFB^@1ߠ$THEN 1䠐$ELSE"e3"FI@@@@@@$IFB AȠA@%THEN BȠA@%ELSE CȠA@#@@@@$_266%c?@@2@@@2@@@7@@@@D2.2-C@@6IFB _ THEN _ ELSE _ FI6 @ !'IFB' e1 'THEN' e2 'ELSE' e3 'FI'$_267@Р||@@'HAVOC _|@%HAVOC|Al!l@@@@`&HAVOC A@@@@@$_268%c?@@@@@@"F@@'HAVOC _6B@)'HAVOC' l$_269@Рhh@ggh@@*_ / _ \\ _h@h@5!/g@6J"\\hA5@@@@@@A@" /A@Bg# \\A@C@@@@@5N$@@B@56:@       @@@@ @$_272٠@ ڠA ޠ B ⠠ C 栠D ꠠE F 򠠓G @$_273'`o@(@@@@@V66@$_274'`o@?@A@@6@$_275'`o@L@B@@Ϡ@@@6Ԡ6砐6Ƞ2N6@$_276'`o@n@C@@@@@@@@677@@$_277'`o@@D@@@@@@@@7#7'6Ϡؠܠ71@@$_278'`o@@E@@@@@@@@7O7S6  7]@@$_279'`o@@F@@@@@77| )7~@$_280'`o@@G@@@@@@@@@7777H Q73@@Š2 Q!@0@@@$_281 @@$_2822M접 LL@A$_283'`o@@@@@@@@@@@@@@@@@@@@@@ 77񠐐@$_284? 3V8=$_285@Рhh@ggh@@*_ / _ \\ _h@*_ / _ \\ _h@@"c1!/g@"st"\\hA#st'@@@@@@àA@" /A@Bg# \\A@C@@@@@$_286%c?@@7@@@8V@@@7@@@@`@78e7@@*_ / _ \\ _8!^@2c1 '/' st '\\' st'2 Q@ @@@$_287!h@8~yР@$_2882M접  $_289'`o@@@2 Q@ @@@$_290!@8~z@$_2912M접  $_292'`o@@@8 2 Q@@@@@$_293!@8*  @$_2942M접  $_295'`o@@@@̠@2 Q6@@@@@$_296!@11@$_2972M접 @$_298'`o@@@2 QR@@@@@$_299!@MM@$_3002M접 @$_301'`o@@@2 Qn@v@@@$_302"@-E%hh@$_3032M접  $_304'`o@@@2 Q@@@@@$_305"@4D@$_3062M접 @$_307'`o@@@2 Q@@@@@$_308":@U@$_3092M접 @$_310'`o@@@2 Q@@@@$_311"U@Q@$_3122M접  $_313'`o@@@2 Q@@@@@$_314"s@<۠@$_3152M접 @$_316'`o@@@2 Q@@@@@$_317"@<@$_3182M접 @$_319'`o@@@2 Q@ @@@$_320"@!7X@$_3212M접  $_322'`o@@@@@@9Ѡ$?@2 QA@I@@@$_323"@+%!;;@$_3242M접  $_325'`o@@@@@@9$h@Ϡ2 Qj@r@@@$_326"@ B#dd@$_3272M접  $_328'`o@@@2 Q@@@@@$_329#@<@$_3302M접 @$_331'`o@@@ˠ2 Q@@@@@$_332#6@<@$_3332M접 @$_334'`o@@@2 Q@@@@$_335#Q@!-@$_3362M접  $_337'`o@@@Ǡ2 Q@@@@@$_338#o@<נ@$_3392M접 @$_340'`o@@@2 Q@@@@@$_341#@<󠠑@$_3422M접 @$_343'`o@@@2 Q@@@@$_344#@ @$_3452M접  $_346'`o@@@@Š2 Q1@9@@@$_348:@[A@A@@@@,@$_3492M접 $_350'`o@@@@@@@@@6\6`;; %h% %@2 Qr@@@@@$_351;0@$ЌBm@$_3522M접 k$_353'`o@@@@:c:g@6ؠ2 Q@@@@@$_354;V@6Lhh@$_3552M접 $$_356'`o@@@2 Q@@@@@$_357;r@Lh@$_3582M접 @$_359'`o@@@2 Q@@@@$_360;@#&@$_3612M접  $_362'`o@@@2 Q@@@@@$_363;@W_@$_3642M접 y$_365'`o@@@2 Q @@@@$_366;@!Cؠ@$_3672M접  $_368'`o@@@;@2 Q+@@@@@$_369;@K]&@$_3702M접 $_371'`o@@@;@2 QL@T@@@$_372< @52ފF@$_3732M접  $_374'`o@@@@@@;b;f@@@1.e*$)ل@:Hd[z'cl[*@L>%GT*+@׺~ZH5~ }p"st#Imp@@%state$ș)Decidable%Logic#Coq@@+dec_not_notHɀ $Init@"eq @)Datatypes @#nat@#Nat@#sub A9@!X#5A)Peano_dec%Arith8@*dec_eq_nat5뵀!!H8@#notШ@&Specif@@+sumbool_ind=S𩛠%PeanoK@"le UxT@B6 @"gt Ux !s!@'sumbool7̂K@@&BinInt&ZArithw@#Zne>o= !Z@&of_natbz)BinIntDef@1?G!oCgc@%Falsee@&Omega0I!P@'BinNums'Numbers@&7@An2@1P.@ p9D@(eq_ind_r!2#!FEiJ$Znat[%Nat2Z@'inj_sub~H!x;@kNLGc@1P,iZx<LA@&ex_ind 5{U!yX@#andЖw@bFީ&@#add1P&@ ̀@#mul1P]@ 𩜠zB~@(positive*@C9%Zvar0&Omega42!@'and_ind14ۀЩ)G٩WN1+%R&Omega1aX;5/\ %K(ӐK+}@栩QS5@#opp1P@ {萩J@ ٩"ζ@ikO婚+OmegaLemmas%omega}@7fast_Zopp_eq_mult_neg_1=Ҁʷ@c"@8fast_Zplus_assoc_reverse '٩۩C|@)t %@0fast_Zplus_assoc Da~ ,@1fast_Zred_factor2% @;8@1fast_Zred_factor5(&Omega2HЩA"C@RLId;)auxiliary]@(Zne_left0߀a@'intro_Zz,@&inj_le8FYYOMK2N'@*inj_minus2{^z@1P,D_ m%Zvar1b&Omega8 u&Omega6ٷʩ°5n@/&  ̠?x@90YhI@C: @/fast_Zplus_comm11&W@QH |@1fast_Zred_factor3&d@^U-&Omega7e\x@F<@*comparison;f@Cǩ2 CC [@'compare3x@]=&C*(@(Zgt_leftEoL@&inj_gt8FF+Compare_decI@)le_gt_dec 堀(@'inj_neqjDn0]dCz@%aeval$Xm@$aexp#@D By|AC%Equiv@@&aequiv*rŵ!n@$boolZ'@(PeanoNat@#eqb.B@ Bt.AI/@.aequiv_example˻gCհ!@%beval$Uπ@$bexp#@C=Ȝ ACK@&bequiv*c[ !c@#com#v@#st'A@!@%ceval$R@CAiĶ@ p˷"H0@'1  @*C{{@%2q|;# wNP1@AEGGGDHAEGGGDH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Dus@S@oya^H@u@p/Z#st0[lN"H10ȷ"H2ͩiz@)False_induُ׶pکLVA@&eq_ind J!e@@BBCB@BBCB@@@@@@@@@@@@@@@DЛ@$Truey@@$Maps@@"id @@?F@ٷ@H@@Aɠ`"a1.Էة^5_e񩜠B=hV"H3 0@(t_updateJ=7{Cөc{t!M %Lu QPOy%4"v(tf@_@VgTRONv"c12"c25E$st'0H$st''K-y9C+@-*P@YE"H4E^©IS;=:N.R\;2V`C6ZdRGܩ^hKjMmk@dnMTxhQ(kJfYXiS]\lYXWz- UmCoevRu xZ+V;WyI/[/c !2M¶8;- K[\#.@,"H5+IE@@°  @Ű00^]-S޷yz@@ڰ+Ƕ@ݰ._@2R۰ba`n,j;jy4r 8ԩHMdc!c "&XY$C%eo$*O-+ީ  =-68hn<o$st'1:I89oy6\/rw"H6w{2h[?$bd;? kSioI4v Է@@yDz3!b̷xv~ܷ͠%"D*oAϷ@DɩéJ5.°$PŰ'Ȱ},KŰ/D.ک&a+)M@A?]q>ް*<+Bbܰ(=6t42c\.|,Ω>*sl(^[%}"c0٩I(z! EX-ȩ $O| U(1ة4YTjIB/#,2~p i\Z@ZW EFG^8:3^ymTI17W?~=G;,ͩB[A"H7G`KUI!:-ǩߩTmLWpt6ZEݩWIHrZ`\NM^mlJuiFZOPsYPYPXPWPp@'f_equal=ͷ[r!i!ai.opyvzwt6lqGϷvķJǷ }"pͷyw"j7_h&b' ĩt7UH0#%Cַ׷$ʷ˷C?! CB;߶P96XݷٷUװhSe۰j]߰YR_uH'KΩΐM˷v   X"ķvr F gzsĩ R #lzp>CiĩAC*(@&cequiv*+  45GE/F-@*N@/1U @AK@@=J(SePZXhi@8@T^p@@R<u;_iL޷کAeoRߩؠӶѩee$Oz]ưTXkUz ְz䩷b~gzutmsqCrl"c3igvefcUa_][Y Om+2,6C+'% "@ӷԷ!Ƿ,ȷ@<ð'Bɰ%ͰѰհ勺ٰ;[ݰ -E@N@vRǩ7o1%n[rAc~sw G@P/q >MtCi|+^$-dC4RUXn}"r=>(A+wVGe(i*Uj!PQ;fWu8cx:]{zEpa+***2*1**ܠUzVZX}0_]`^ϷߩrC:eef?·mknlķSRJuuvO}{~|VݷIX׷=ة`bdf @@Pp&@_Ŷ$50Ʃh6mӶ2?>0vE^Ӷz ?<L7kʰKŰyа^˰ "1@ذ$'(B@@@@@D1@4#̶@9  ϩ?-թE{slߐ^L+%[OO@@@@@@@@DoVjP7-vtq; & &; " |907   .P  > ? @W53I? /9I{ME 5?~53ީ8 "Mo %ַ ?Dc~ +{'W%X"Hbhm o mW nU@Ra  >Vc @Y  C[8  0 E@ jt@C@Dfs Q|?=;    @_@ {&@ @ ww! a ` q˷f w5   EI4 t x| ̷ طy  " Y &> ީ #< Ϸ з ѷ:6 r!~> Ű| @9 GNHȰ;_G 1CA)L >\  "b0 J=^9Z 7$<=` ."ǩ թ˩ -fϩ "ө &Yyy *f K,c-@  @@y v ]@ & dCRRV{0 p,/-6 (tScb%f'R~2   M  N 9d ^s6a ɩ8[x/  ^  _% Itf̩Fi Hl S~x) 8 8 8@ 8? 8  8꠩c  <ggJ  All D˷ |7 }npqF}ŷ+ƩNPRT @}@~>^{y @wIi usP Uu qm\  + D `{ kƶ%wge   O Ķ eж/qa _Է@ĩ@޷  @   @֩ Ω ɰ멷K C<  .  f3!=$ ڰ&  f  pG  p  p  p  p p}E d a _q g , c\i ԩi ԐS!Q ѷ|   !(ʷ|xƷ  \L 3 yV  r@       [ geDȷg i URH   q R0.֩< ӜJB F D. E,@)  +   ߶@.#  06 ? ~    @ @J@@<1 I  ' RFXV  f  g@6@ R\ P @@OD   9 r8 \fI۷ש> blO ܩՠжΩbW !  LwZk PT  g Q v  |\ {xat}ron gmks= lfec a _ n]^  [YWU S~ c& 7  ש 4 Ƿ ȷ߷40  #x6 ! 70E & 1O  ַ׷OK+,O NG'(\6 E d a _q g Uɩ  婷ͩ   /کѩ $ ߩr (  I*ra+@   v{      T 3 [,    # a     0*  3  i H A  "6 t ?  @: * C   - y X Q ) D 4 M 8 Qǩ  Sַ  T  >  i "b : /  E  pi  b e c  EK 1b R k ܩ L A߷  OU۷lu  u v ) X^ D \ Q 0 _eQ M    M T M  M  M   x y# R   }۷r  J " X    ] P      ]  d^  W U   fW  S  P+M  H詷 s   & w  =* {   Ѷ@c  (  +    נJ   / 3M -  -8R  )D 9   = 8  I  ʶܶ  İ ;/  ǰ  K'  J İ 7N H ǰ͠  <S ˰ 1D0 Q & b } $ ܰ kf  ߰ +  0  b ܰ3 _O ` ߰"!sT  :I6* i > {   Щ  @ g. . w 1W u !7 y  8O |  O .T =  Wys $|   [ :` I @  b N N  QP  O> 1 i@  l K[ @ % q  ]  BJ   + w Ve e  1 } i       c]  83    i u  ѐ   ke( 3{ &  &  &  < &  ؠ Q v  R  + H  . Y Y  Z  3     a _ b `  U D ; %& :@@ 6@ 7 Y f  D 0 . , r p    @ P@@ @  f   P   O    쩷 S  V        ~  `  x  7    %  c   > )   @ .   n     ̷   [   t     A  @ J J c    Q    ?     &  l    V [   q     F $ `    ڠ dש ܠ f *  h l  a   W a   I   I  < Ϸ        ڷ ;r 7 %  ͩ ?n  9 2 ?      ~   h   ӷ  Է Q        O  Kc     O[  N G . , U \V ְܠ K b o W SI g          F gB c@ C D g5  f _ ? @ - t) '] {  &      { wT W X {I  z s S T  , ;q1 8 #       !6     2 )0       4 5 6F M' )  ?  5 = oA 9ީ    ' w% ֶ Ҷ Щ *0    ǐ f D BTR <S R  W&Hwhile ;  Ȑ$Hcom PȐ&Heqcom  U-M W/g@)ceval_ind<Ā4 _qo YpZ d  ҷvt^ h K+@c m ۩F  q ~ t@m w ZO@p zn _ S>@w  d  W   ]   k  `    w  N =   f@ ))n ڠ   @    y@ F| z   >   &-       =    ŷ Ʒ ~Ƿ'Hwhile1 ~)IHHwhile1n  U/'Hwhile2   7)IHHwhile2y°  &:|Ű ϩ Z@˰ ttC    ܷ@հ  E@ذ ֠ v iRް    Rk D _ T  z       L H(IHHwhile Dkk Z ֶ@ PPsސ J # @  L@ ꐷ   a   Wl r  D B @ 0. /? F  "  # > 9.֩ ),H O<: * , (ݩ& 0 $ @+ 5 z 9͐SF <@5 ? 3<@: D > H <  C M᩷ ũG Q  ɩK z  5 ͩO ~  : ̩S   ʩ    @Y c  ѷ m n h  k iש k  j le o c I߷!j t h d  j     ۷ =t   /x  v& HF} ɩ  w  9    Q ԩ  s   j@ ܷ@ ߩ   w@x v  Š    |   ©   Ϡ    :   Ԡ  6W# H  `ddY dAdAA ?  ߷   e a_]@ _ E      @ ?  =  J  Ʒ   L # @= 6Rط ٷ ڷ   ͷ    η Ͱ "Eа y @հ M$  @߰  t@ vZĐ ©   Ʃ   l ,  p ! ] t % X  s )  J +  b ,@   x |    U  xW,  z  ĩ    a   [     fҩ %l_֩ ) 4  = Eܩ% / #  y "   s % +  ~  ~3 = kLw7 A 5  r=( j Vd k?  j # yD N B b D e d C I j  ٶQ [ O R Q U Tͷ!X    u ] g [ { z Z  f p d g K v  N U d#  UN N  y   z $S # ݷ    ~  V       [ (\&\CC;\   @    n6lY@W    =]  r@   Wz   [ k i g  FG@ @   8 :X 3Ʒ    1 / - +   T      Ӡ(  Eط      Dư    B 0  ة J̰  ϩ  0: 2 ԰  c@ Ω ڰ   ް  m ǩ [   ̩2 " Ϸ j #@  T a fӶ   k  g ϩoH շ p + Yc 䩷 K 1i   4 |            ޷  "`+ , &/ $    ɩ     4$= 2     *C 8"    ȩ G <&   J4*  1&  <2 ! ) Y N8   E\> _ ԩ  ,D9 ة ZD   I j   KѠ N$S t Ωɐ   mW  C[P ԩ q[  1`"  v`  Ko  }g     od Y _ p  ة  ^8FunctionalExtensionality@9functional_extensionality%; }  Ʃඐ"x'   >u * @-t_update_sameq  C +  -  /F 2O  % %7 7 V7E77 5    9 0  . X <  Y : Ơ Ƞ d^ D    ?  = ge ! g  ՠ   ɷ ʷGڷ ۷ ܷ E AȰ  6    KҰ #44 F D  D- B`  A    ?` ;\ 9  >  ?b 0:,K   Vt  U   t p P  Qt% c `*    Z} * ?z ( &   q  ?G - . / |F$"  8 .( R  8 j <4$. N  $ t "  Ӷ ϶ :  \I Ƿ9G1M7F>_MO,*@ @Pi@K'aKZѠ\: t($jhxy@H@ @e~@`v` ̩M rwuzU zZ~ 7%f;~~~;ٷkF6v طgMT#u(b6ɶ|Π.05ӷqqB|q|qYYL߷K GPߩϰqQ KDQذz۰ְͩ)' ~gea yK0Ni uha߶6 sz tj~ w m l6 j f d ) * Y'   Q M K 23 J&' B = x3 = > m; ! "  ; 92 _  \G;9 5 1ϷE (<U4O?X}7 $:,$ \]^ uSQ&  g ]  a /ɩ TWpB6   TuAɩlVܠED  D[,ߩka٩۩d}g/ܰj Ơq_)Cߠaa"a2Q4j@&eq_sym X uwB*C Ϸз"a3ӷ#H12#H23©',^#% !2JC7@9j@!)ީLC.L"b1"b2װ#DO'JGC   @Y 㐑"b3J9H ?=FX?Aש EFDEF e%DC.+,,-@C@_"  ! @(iff_reflQC  312@#iffС) <:$;"H'   󩚠)@'iff_sym"㡀 C < =@  8"P1"P2"P3)-)YBBB@@@@D@c@@Z< #7@.'@11<@3HD@w@ O @@@թs@nض@.*!ArQ5^\ c@)iff_trans6)^EЩiAwCy 8hCsq @ ~@ '׷!ط$Heqv!·é@ w\._@c5f&Hceval@°  @@^ թٷtu@@հ&E@d@eҰ}c_b[`YTlR氩ҐQL ڷ{"a0,I+8ک h{ |ҩ =֩ KکOSSeUV@O 1-9%Yw]^*.G<&(+L 7SַT>WL6"*ܶ C90?`ũLeZD7ݩbRk`J>odNCr%\RؠթXyue[Rwang Rjlq r ܷuũz|h8ҩ ̩$  W/L ""44S4B442 P6 1ķŷ}Ʒy{|0yP/vr7p3,9:;ܠOGT<&86q2P1׷ط/+QӰ)!O./Wٰ 6SLY,- ÐBMkL lhGHpjcpCD7a^(۩ *|(Sx&$'q?-./|F$"8(18<$.\;$"Ӷ ϶: \Iķw~@7A@@3TAJY  PN^_@.@JTc@ڶ@۩H2kU_B4ԷЩ$[eH;թΠ>ɶǩ[_EpS JNta8Lpz ڷRvyCz -GqIom@~ oT 4(   /ȶjb Ly ;Dem  w.1#^Z VQƶy,<>)E?`ǩ3$DRն_J?MM}N[$BS9İZXHư @Eʰr]_#b%@&B)ϩ۰@>H<jFV]]ooo}oom81r.ȩnmksohuO Mvw}w␩a sq/|n m7kge5j#k\7h-iVR ~*PNL:;R./JE<DCA7dOCA=;E9ɷdAK2gb`,B3,W(&y_/)g"h i^\"2rѩXbjkrvש^h[+ةѠu^#\0 D ItC\LCLh@/CSeq_congruence1Yϰ@!Y#5쐩B   !#%')+-/13579;=?ACEGIKMOQSUW4ecW^D@+refl_cequiv BprK@.CIf_congruence3!$uusllR@+refl_bequivz-|Y@/CAss_congruence>dswީI@(sub_diag5R C&$ uCou-`IECjSCw[F{_TFYQE-Vt2[ũ,8n|;ѩ@өNv.m65ĩ}zxy@(aexp_ind\Հi_@3fold_constants_aexp<ilXCxn&)ΠyC{36$IHa1)ŷ$IHa2z.0 ѩ@AABBBAABBB@Р@@@@@@@@@@@@@D/ ,w-@ `7p8M:O"#a1'pз"n1*#a2'`з"n2ǩ7MZ(k\!q4d\dз5۷X8dpm Oq#^nȩpةCvjwya7з3hO E栩o?@렩t7`з"n0  $hөڷn kbs/z"&2(}-. BC|A7O;+<H>(Ġ)CéDʠHTJ" LҠ7> _<`"a4ͩaWfݠBݩ\2]i_MegNcPjةUnzpŠvp`ˠva{bfsȷ*BZ( r ޷$  ٷJڷ%b%zH-ө4 D  <$ J8ȰDCM.P=ߩѰ٩M 8з'ͷFĩ(ЩV ?-ө߰[CIȩ47ݩߩ4gO:kР VD"i04eGJܩx`ݠ wPS R n\o@A|^%a  @hkh n k\]z"A}#/%Ʃ)+,8. 0 -st9X:F<ݩ @'3BCOE2 G͠2 37DʩZP֠ϩcYhߠGg]XGͩJL5Pзfߩsix,m p|rv]_GyW|~Ӡ n٠ o%dptѷO#4~! U  &A^"a5巐"a6#3V 1  <uy>w{VEU©ΰĩL ʩPΩXbmTD+)JްZBU0X3٩'aƠ#T9gS>" =nӠv\:H+F,g٩w_RMuPD~@QVP[ ? Z Y;WʷwHI]OO~R!зxy!~$0&ǩ*R-.:06  6!"&3>?KAǠE, ƩGHTJ LҠ75 8<IU#VbXޠC_`lb# RhlSB Xq?r~t3_z{} ԠjY"oѷ·÷VשJv32 p9 [ٷJڷ%:.1OK.~cз (I 8 X=E˰I ǩM5&[EC'*ЩܰsX֩ W0?3٩ 2ݩcKȠ5<= ;!\9>#A5oԠH1KH{ NB/KY<W=x.Z?]Qĩ~c *f  eYFbpSnT(qVt&h۩3uz"$}#/%2 |'+p{]y  C7-}4Аdsٷux{J@7ǠзFзIBϷd}iAзW|xƷwi_Vq#зeՐ^mljYзhofrbsul_萩q\}[~wX ؠ F~^tѷU|QP\M ۷LܷJwE+&B@= 61: !c.9ŰA<42ͰũK3F/ 6xC.%(Ωڰ,VԩQ)-'0֩+/ک`H[$+m&[#lMo!\lgзEdFI|w_rNԷQ Q}ZHy̩[3^tc Ƿf eө"#n RSp7s%wx {!-# {& "w hi.M/;15 67C9; &*7 }~CbDPF̠J KLXN+P֠ ;?L ķg]T̩Mзcfgsiũmno{qh ɠt_cpҷ{|~کݠ swʷ˷ߩSܩڷ % Aө'0i+ϩη  :5V2˩<ɰ,E~@ǩƷũѰ+ɩOͩJk  : | K\=_L}y\DWз5۷Tu69ߩ=gb>mA ArZmJ8igKҷNR|wSbVUn^_B]C~[`ַc  xʩhQk  kKguXsYJvy+!~&E'3)+/`|mnB34@6;=<H>+@ƠD/u  WMӠ<зRUVbXޠ\]^j`W cѩNR_ީjkwmɩqrٷsu̠wbfsշҩAȷ /|޷Ϸз ҷW(#D 3l.  + =8Y {4CưB =éE_Ah M?=U76X I)ٰϩ@ $ZoB зEзܩL bo(n  !t-s% &зDgx *Y{-h #ya7з3h+D< =з{]`9w{>hkD k٩K*+vdwz ,"'(4*,#>? noݩ4 5A7hة</թ=ӷ>J@q Cɠ:.2? ̩K!LXNԠREǩSŷT`VXޠƩOCGT  `6amc,gZhiuk+ m۩dX\i7y<phз~u| {g R~۷ _ƷZ)f V!Tʷw4 I ?'  *l7B©ΰJȩ!;$ʩְ#ΩT< ?L7.1ש_ݩ609ߩ+8iQ4 T%&ev((Wy+f!w_зPoQT ũY \   5 \ ueSf i   ک~n }q  # p { yz]x^v{ #~ $ 0 &Wro ,m - 9 /`k  26)h !gtuf : ; G =à4b Ba C O E G͠K>_ 6|^ OϷ P \ R,ؠIZ WY X d Z+ \`SW K  Vз s iyש`R Xз n qP r ~ t=xkN y z  |L Ԡ vIj n{ݷ˷ e   RH     G~ շַ i   x$]F    D  /AK 'ݩ      :s@  ط  ư  D©?`  <թ  ! ǩ Ӱ O> & з) ϩ ۰ +( өYש=u  $ DU<fGiV  fN8 з? ^ @ 6C   q4 H wK   $2 K |d/  TBsq U KX ! !ɩ. ]!l`!!!_! x -  hiLgMe j!Om!!!ԩ , r![u!!'!N* u! $ '!U qb}cT !(e!)!5!+ "& !0O!1!=!3!59 ,%!$j wxL !=z!>!J!@Ơ 7$ !EG!F!R!H+!JРN A#!9 C!Y!Oՠ  FVؠ ! C !DC@,atrans_soundMI L I N א 됩 퐩          &Contra"i1ж"i2Ӷʶ˩y .!! 2!@*subst_aexp91q Và -Ȑ%Heqc1f!!  `͠ 7 `Ȑ%Heqc2p!! !Ȑ#st1!!!@+empty_state&^X!  K @Ȑ&Heqst1 E!!ѰG!Ȑ#st2! W LȐ&Heqst2 !۰Q!]װ !0\۰r!^ö"!"@!!̩N!g!n + ĩ'Hcontra!l (Hcontra'!! ; ֩  ש!N$v?Bw?!"}! " "!   !JN"Q P"" #" T  :   !h$FI Y"-"!`!Ͷ*"$"!bS6"*iV3"-"#;"%l  T !$; <!"0!sw3!vg!"9|<p!P!Q"*",!·"--@"R"H%%!ʩ"5 "L)z!m"O@"\"RG">@"_"U" 2!!?6A8w!쐩"^S"_"_@@A@A@@@@D"g!"S!"i "V@"l!I"X! !a!{!!-!"""X! !"""X!!M"|"r"_ V  W ˠ"v "b"@3ceval_deterministic-;!?!"j""l!_""""F@!@!L"A"wJ""C@!" @@@!""M!з "! +!d"!Q۷0!T""""f"!t "  ʶA"""rG!" x   x "!"  |  S!" 6!""!c!""%""O"RѰ!"")Q RX8װA![ڰq"2Z#&[߰I""ɩ"7 7"5g4)-"4k"@J"" M246+96 e  z+["!7!"!"="t""ې"Jr(+s:""O O "Ω L"Щ!EU"W a "B!!I"!""O""퐩"\ \ !"` j ˩"X"   "f"""C"ސC" z@4subst_equiv_property$w{S6pX