&\~#@(modprimeBA@&PrologB@'ProgramB@%TautoB@#InvB@(EqualityB@&ProPreB@0Logic_TypeSyntaxB@*Logic_TypeB@'PreludeB@"WfB@%PeanoB@,SpecifSyntaxB@&SpecifB@+LogicSyntaxB@%LogicB@/DatatypesSyntaxB@)DatatypesB@$CoreB@"IOB@S@,mod_not_exp_@B*mod_ab0a0b@B .order_le_predpB )order_divB(order_exB(order_exAB(orderdecB%OrderB!.until_not_0modB%*until_le_nB))until_posB--until_mod_allB1(until_okB5%untilB91permmod_cons_consB=,permmod_reflBA4permmod_not_nil_consBE3permmod_same_lengthBI3permmod_cons_extendBM'permModBQ.fermats_littleBBU)mod_mult_@BY1mod_mult_cancel_rB].mod_mult_inv_rBa,primedivmultBe*divmultgcdBi0prime_div_or_gcdABm!_LB@@r@B%Arith@%ArithBA{AB&ZArith@&ZArithBABB&Wf_nat@&Wf_natBA CB&lemmas@&lemmasBA)DB$natZ@$natZBA2EB#dec@#decBA;FB$list@$listBADGB#exp@#expBAMHB'divides@'dividesBAàVIB%prime@%primeBA̠_JB#mod@#modBAՠhKB#gcd@#gcdBAq-UnfoldabilityA*zarith_aux@*inject_nat@(CONSTANT@@@@C)Datatypes@#nat@@!pC,fast_integer@!Z@@!aCDJ@%Prime@B!HD𣓰%Logic@&or_ind@Di@(ZDivides@DM@L@CD@#not@D!@"or@@ D#gcd@@ 6DY@B\@AC1>@D@AD9D3D/D1AC2D,@B DУR@#and@@AD@D@'Divides@5D@&absolu@*D?D ZB!eBDD3DDmED#:D?@D%Peano@"le@@^D>3#DУ@"ex@@AC!qD@"eq@@+D!@$mult@~fiD𣓰@&eq_ind@qCݥ!nDBuDB@'abs_inj@D@@$plus@DH@(plus_n_O@DEC>D;Y5lDnClCiAD࣓@'and_ind@DDDߘFDDwqC BCDDCD )auxiliary@(eq_ind_r@1HC3VBDɥD#CD  DD|BD~DIDC'DD#MCNqDD@A?CD 0ZJC\BDD=D4CDD&EDF@)False_ind@DȘG DGD@'divzdiv@DJK)D[CDD D D x!RDУ@*primediv1p@S")D DcjDl}/D@'zdivdec@oBBB@fAA@@@@@?@@@@C@!Z@@!aC !bC!cCD@#not@D@"eq@@%C'@ACD"@@DD@%Zmult@B@CD@@ED@@@B@AAD࣓@&ex_ind@`Ca[D@"ex@@jCk`DOnD*zarith_aux@*inject_nat@-D'@%Zplus@DJHEDMGADYFUC%alphaC-(BD:CDy*D!DeIxDhDr C$betaC@CDRC!qDD~JDK4D:C!yCZDDУc@AɲCʥDDMKDYDLDD𣓰h@g@ݣDfDLDC奐!zD3fDDD<iC D=D~rD*DD%DȣD ͲCDMDDңD<SD𣓰@@D\_C0D`DDӣDFDk?C!Df;D=cC!xCBDУ]@ACD˜HD@%Zplus@D_DGCPD;ԲCեУDyزC٥!bD:ߣDDDwDSD{]Cꥐ%alphaC9DYCDQD3D-ˣD:DCD3C$betaCCDR CDCrDpDKDUDD֘JDf!C"D%D DdDDIDZ@$Zopp@D𣓰D@C@=DzDӣDDCF!zDL'D3D%D"ߣDTDD XDDD0C_Db=GD𣓰s@@iD*D ?Cn(DqLDNXD=uECv0DyTDVRD}MD<!D@AADCVD@)Zplus_n_O@KD"O`D@)Zmult_n_O@W-D@/Zplus_inverse_r@SFD@@fZyDUMD@-Zplus_assoc_r@nrUtD@)Zplus_sym@zvED࣓@p@DzuOmD`@G@ D@D@vD࣓C@B@}D࣓@'and_ind@D%Peano@@BޥHBD[@'Divides@@D@"or@@DXDZk C!JCBcBDs@DDg=ޣD/@w@@AD@A@頲BBB@B@ȐAA@@@@@j@@@@C]@!Z@@!aC !bC!cC~@}@@!pCD@p@AoCDo@@D@>@C;@AB@CDD@@FDD EAD࣓@&ex_ind@[C\)D-D=Df@B@"@@CDD@#Zle@D@#Zlt@DJC EDУ @"ex@@A.C/;D92KD @@DD@*inject_nat@LBD 0DID D6CNӣDXQND]D5C`D`Y'DXD]=Dg@AbBD&D o@+inj_abs_pos@LD!@&Zle_ge@ITq)JDQD:F3D@@MhCj^D\UD %@@EDDiD KCDD GD!MCDhDD)KCDpDKD D#D]MD'D N@)Zopp_Zopp@RD @+inj_abs_neg@qHD0D ^@*Zopp_Zmult@NDPCD J@/Zmult_Zopp_left@XD@)Zle_or_lt@ӲCDq@BJHDCDDaPCCߣDD^D`ģDbѲCУDCDDCDD DCXDDp D  D D DC%D DDDҲCD&D+ C,vD,%D'D'D+)0"DD-$D{/.umkDc0D࣓ +@ x@b{ D%DD I@(abs_mult@/D@*Zminus_n_O@D #@)moddivmin@+Bb]BZTB\QBN@BD@AA@@@@@  @@@@@B @ @@!aB #@ "@@!pBD _@ @A@BD @ h@D g@@C.@AB@D D @#Exp@DD@$pred@DH@B X@(positive@@C%AA@@@@@  y@@@@A@B |@ {@@!pB @%Zlist@!lAB @A >CCCB @ @@B A @$True@@C,fast_integer@!Z@@!a@CD@  @%False@@C!xC"xsD @D@@*C+"x'D @#and@@D 8@&inlist@?GDDD @@CRFDGYD O@%zdrop@^$univ@)prop_univBA@B@@A@@@@  BD@@BA@@@A EA @@@FA @@@AGA@@@@@@ACE ߐ ?@@@@C >@ =@@!pC <@ ;@@!xAC BC$list@@!lAC BCD @ @EBA NCD @@DF [@DУ [@@@A?C@D f@@@D>@@Q+DF@G@@BY&'DD0G8HDB= @$bool@@\D%Zmisc@(Zeq_bool@M@AD"uBDi@@VJXDУ:@AD7_D2aCDCD]Wf-Dm/Z+D$ll D?nDpD @"or@@AD @"eq@@D@&exlist@C!bD/D@AD=31D࣓ @'and_ind@B'@D(d@D_i@ABD2 C@D5JC ACB@D> BD𣓰 @ @ C!:D̘JDD{DDѣDBD @+zeq_bool_eq@ܠB BBBBB@B@DAA@@@@@  h@@@@C)Datatypes@#nat@@!pC @@!lAD࣓ @(list_ind@ x@ w@@CD @ @@ B"BBD@F@DBA@D @ @@DD @&length@/CD 2CD"D<6C1*BD$D6@A@"@D!`DE C @@@ D/@Apq@ACW!yCV"ysCBDME*G%"IHBC @'@@$D @)False_ind@DX'D@BXaaCC~"xsCByBDw*qpo)ACCDFD@Bm~QD࣓ @&ex_ind@CKD@J@@D@I@DDf@@*HD_D@E@DDΣD7lCѥn@C,8@D࣓7@'and_ind@D0ƣD9D+GʘIDTD'УD DDY \DزCXACDPDB=ΘJDD=eBD-DN"KDLDIxD-DD{-TDCzCCDL7D[:DD𣓰 @ ~@GD,DinCL!nDRDD9RD @,length_zdrop@%DCFD^'''''Bd]BZUB\:BD8 210AA@@@@@Ⱐ@@@@C@@@!pC@@@!hC@o@!tC@8@@AB)$B!BD@ @@Db@@CD@@@A;D@B@B%AA@@@@@琠;@@@@C@@!lD࣓@(list_ind@@@@CD@@@ BZ@Y@@!pD@@ABCH@@@AC*!hC)!tC&"IHC*%DУa@ @@ABCCDl@@@Ds@@@Dz@@@[Dg@=D@@^iDУ%@AD"pDoDqtD/DxxBDDFD| D࣓@+inlist_tail@D࣓@.inlist_head_eq@D@AD(Dc@ @dDaֲCץ[DYDTD@nQD_DMDDH DCDb6DkDY~DƣDT>DDͣDZLCDtD>D8LDУ@.zdrop_head_neq@\ãDeD=DCDDvϣD CDգD D(DУ7@-zdrop_head_eq@`D4D 4,v*D@&zeqdec@ B>9B61B8.B+&AA@@@@@k@@@@@@B@@@!n@=@C@AD"@#@@A@@@C(#D@B D@@D8@B!DC$?@@A@@A@AA@@@@B@NA@MX@JAIC U@ ADi@GA@A@FA@ChDD@B DF@GAD0@B DC#7@@@@@@@M@@@@CL@K@@!nDУW@'nat_ind@C BT@S@@!xBDE@@@D@@@AAD@@D@@B@D@@3 D@X@CC<7CD4/D$'*D࣓@'and_ind@D<7%D3'9D%S)D@@@A[C@CDD(JAD@)False_ind@DAoDDУ@*Zle_not_lt@ `]N]C!mC"IHC~CD{vDknDfD@BVNDLFDwkDrD *DmqDhCQBCDhDDEED𣓰@&or_ind@DCDD)FD@"eq@@P DRDCBD@K@@BD+D@BD,@,anti_convert@GD@R@C祐QD36ѣDD:JDУ@ADQDSDDr@+Zlt_n_Sm_le@] D𣓰>@@ DD0C!zD_D@"Zs@$DU@%inj_S@GCobD𣓰_@^@.$C/ D2DDHDp@AD>mmD_@CAZDDDsDp-\D@AM|2D@,Zle_lt_or_eq@:::BkYAA@@@@@ư@@@@C@@@!pC@@@!xCD@"lt@@ABCD@@D@@)@AC@D࣓@&ex_ind@7C8!qD@x@@CCD!rD@4@@DD*zarith_aux@#Zle@2AD @#Zlt@ D@H@FD@v@@rED8@%Zplus@D@@%Zmult@n )DGC!yDBD@p@9D@'@D@ @/DDJ2CmCkUAD{CiDfDhaDWZDQGDLODFD@ cDC:DyD7kD2D-DaqC̥C |BD࣓{@'and_ind@DDȣDʣD|HDw.DqDkE ӣDCeDDbD]DXIDCCCDDDD٥DD6DhDjDJDCḌDDDKDCECDD FD𣓰@&or_ind@D ˣD7ͣD9C:DD?DDMD#LCGDУ@APCQˣD DVDãDND:DУ@ADd%DC #D@@,DDID D4D$@@ D𣓰&@w@D D@BIC!zD47DPC!nD=D7BD"Lt@&S_pred@bDT@@9DS@@rDhC~DLvDFڣD@DZeeˣD𣓰f@e@ƣDSDMDgCͥBDcvDңDW CեJDkDe7D@f@Dn-D@@4"CD@)False_ind@DDDCãDDE DALCxDãDDMKD@,@D@(zdiv_rem@DxD@/@ B.)B&!B@B@AA@@@@@ɐ @@@@C@@@!nDУ@'nat_ind@C B@!Z@@!xBDt@ <@AD{@@B@DO@ v@$@A C'!C%Logic@%False@@+D @)False_ind@)CP!mCB"IHCF@CD=J8D7Dc@BC"D𣓰,@&or_ind@D4@ @@bHDe@BDy@M@DD@ @vCw D|+jDibC$z@D𣓰v@u@D'D$EC!zDwrD;@A@(relation@@@BRC5%D9VBAA@@@@@԰@@@@C@@@!nDУ@'nat_ind@C B@@@!xBD>@ @ADE@@B@D@ H@ D @@CC+&C@@@D@)False_ind@D"&@@A1CW!mCI"IHCMHCDEQ@D?Dj@B/&D𣓰@&or_ind@D@ c@@hODk@BDJ@@DD@ o@|C} nDYqDpDimDdD5C*Q@D𣓰M@L@D-D*EC!zDDDPFD@%Zle_n@DD]C>(D࣓@)Zle_trans@D%DLD@&inj_le@/D@@@B77D@A<ĠBِAA@@@@@Ͱ@@@@C@@@!pC@!Z@@!xCD@@@ABCD=@ @! DC@@D3@ @C@D2@-mod_repr_non_@@D DУ@#and@@AD$@#Zlt@N@A!D #D1@@@D{@@D8'3AD𣓰@@tDw@BCz!nD/;D$DzDY@@D/#C!zDCO(Di@+Zle_lt_n_Sm@cD@=@9j7DG1DI@@BgD @ @nBBB@B@Dc@@D@2@sAA@@@@@q@@@@C@@@!bC@@@!qC !pD@ @@D@@@ABDD@s@D@ @CD>@B@(positive@@CAB?!dBD/* @BD&D!E.@D1@/@@ %Ba\BYTB[QA$univ@)prop_univBA@@@@@@#@@@@C@@@!bC,@+@@!qC !pDУ@&anddec@Dw@i@@ABD(@ j@@D}@@D@@CDD@B]@@@CABDBD2-@BD$DE1@D@@@ #D@%ltdec@DADS; D@&moddec@<4)D𣓰r@&or_ind@Dz@"ex@@{C|!xD_DlBNDc>D^DYDITkD@@D@x@@VDXC)D@BBaB_@BDD|Fw$@D]{D&D࣓@&ex_ind@C@DD7D{DDwCȥC @D࣓@'and_ind@DD0DNBܥB@BDDH8@DCACḌDDɣDĘGBD,DsDգDwTDvBB@BDDۘJ)@DڲCCCDDI%%DCB۲B٥@BDDL@D6ED5@)False_ind@;@@@DУ@)le_not_lt@7NDP%CD@ACM CChDD> CaCcD,D iԣDDУ@AeCfDFDS)DJ%DED@X/:|DУQ@AD`DW}8D F\D=@(le_or_lt@ND@%exdec@CI nC!nDMD<zUD4byBBBDD@@sgD AA@@@@@氠@@@@C@@@!bC@@@!pCD+@@ACD@r@@C!dD@.@@DM@?@1@A"DK@@Dm@@D1DO@B+@(positive@@CC@D࣓@&ex_ind@ZC[=D:5D+D&ER!"DMeCf!xD@6@`0Cr D@)lt_wf_ind@jC|!nBD_ZDPDKFwF&@DsC&D#HGC!XCB!mBDtB@BDD{vDsDn h@DCHDEJI"IHCDDD.|7AD𣓰@&or_ind@D˲C̥fDDDDD%HD@ .@DC{Dx2UCBDCDʣDDɣDDEDKC@CCD࣓@'and_ind@DiDfDףDҘKp^DCDLCDCDDѣDDED(DDDMD1C2̣DɘN%CFCDD  GDDCEߣDܘP8OD4LCMAC HDУ?@AYCZDRMQND DУ@@AD=8D5D0#*7[[[[CDp/DrJD?D:54D 7CQ~CDHDC=ͥhDD`DQDLzFײBkBb@BDZDUcO|@D@@@KD8C~Cu{CiDDzWCgCiDs@)False_ind@DrD%DaCRDDDDD{zDbDDDDDl0DS@@$7D@@CޥFCdDУ&@@D-@R@ޣD@O@!g堲BBB@B@AA@@@@@Ր@@@@C@!Z@@!bC@@@!pCDC@@ACD@N@DM@@C1@AB@D࣓@'and_ind@Dp@@D>@BA@ABDBD'divides@0@?D@D4@0@@D;@@@`8%Db:EDE@@@jCk!xDQ@@@D@ @l-D@a@"s4CQkACBFBDD},@D=8D8kFzBD࣓y@&ex_ind@C5D$GDAC@<@@D9C1DCDDD3V.YB#B!@BDDBI@BD=D8I[3@Dl@j@@ dDy@|@CkC+%BCD-DXDSH)NOB'Bn@BDbD]JX @D%=CDNDoDj2d?B=B@BDxDsKn<@D;D6&MCVDCBQB@BDDL+@DOgED𣓰f@&or_ind@DU;mDp@W@  C |FIJC D࣓}@&ex_ind@C祐!qD@@@C󥐠!rDףDDMD@@@oD@$plus@D@@DjC0C.GD>C,DDɣDND))}D$DD2C0=CHDD"DD&OD@@D;D5-D CICDD+9PDRRUDMDG@JD D9QD``:D[DU&D @C  KCDmm0DhDb R  LD @@|DwDqSCC!nBDWDRUtM @DCD`D[TV$ID 5@)False_ind@D$ CDУ @)lt_not_le@DDFED𣓰 @@Dz(OD m@@D1DM* >DD DD;2UFD𣓰 e@&eq_ind@أDCۥ!zDD$DDVSHDTLD  @@%66gDУ @@,nDУ @'mod_expA@2v6D @@L}LD @@SDDtC D5DYD32|DPCBD?Dc:D"ZDD!$@(exp_mult@hD$Mult@(mult_sym@Dg9DD,wϲC>cDD!?@(exp_plus@''''DУ!>@*notdiv_rem@/D!F@&divdec@7B[VBSNBUKBH@BY@D࣓%Logic@'and_ind@D@@D;@B>@ABA!CCD;D6D1H-,OBɥ!B@BD@D;J6 @Dw!DDDMDH*BCBߥ7B5@BDVDQKL4@DȣD&DTC" ECBMBK@BDlDgLb-@Dޥ"FDDTD @@[DУ#@"B@/bOCD2$@Ah"5GD@)False_ind@@@@D"@(mod_0notA@cD𣓰"@@"D@VlDУ"@Q@ +sD𣓰"@0moda0_exp_compat@O{D @*lt_le_weak@>m1>10B`[BXSBZPBM@BC@AA@@@@@#"@@@@C"@"@@!pCD"@"@A"C"@!Z@@!aC !bCD"@p@D"@ @B$ @AD"@D࣓"@'and_ind@BDDCE@D@@FD@@D @@D5,/BDDD$6@DF 9D"@"@@DO.B-DQED/C6#ACB3@DZDU:LOG# BD # @"[@y Cz!zBBDpDkGPeH@DPIDKm'D4D~"qDUs CB*@D_DY5D "/@".@D@@DjmDlxCå!nBBDDIz/@DJWDdD<DTCBD@D?D&D]#gD𣓰#d@&or_ind@DN DP0LC#uCD@A#!DB&@DKDDdͲBD5DDoԥ@Dn8C#DCB@DEL#ED DMCDӘMDۣDVD@@]D#@@dCIFD@BgeDBh@DDD࣓&l@&@@BU 堲BB@B߲Bܥ@BǣDߣDڣDAA@@@@@@