!i      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                                                                                      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~SafeNSafe 2=?@AHUVO:       Safe 2HSVXPSafe =>?HSUVXR=tfpNegate x4 evaluates to the additive inverse of (i.e., minus) x.Wtfp synonym for V!, kept for backward compatibility< !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ<=><?;@:A9B8C7D6E5F4G3H2I1J0K*Q)R/L.M-N,O+P !"#$%('&STUVWXYZSafeHSVXU aaSafeHSVXUllSafeHSUVXVtfp1Representation name for unary type level numbers.wxyz{|}~wx}~{|zySafeW           Safe 2>EHSVX\Z !"#$%&'#$%!" &' Safe&'>SUVX_TtfpIThe proof is pretty expensive. For proving (x:+:y ~ y:+:x) we need about x*y reduction steps.EFGHIJKLMNOPQRSTUVWMNKLOPRQIJSGHTEFUVW Safe>EX_ XYZ[\]^_`abc ^_\]Z[b`XYca Safe@AHUV`!defghijklmnopqrstuvwxyz{|}~!xywvutzs{r|p}qn~olmjkhifged Safe @AHSUVXjYtfpIf subtracting y from x would not borrow, then  Borrow x y z evaluates to z. Otherwise,  Borrow x y z evaluates to  PredAsc ztfp If adding x and y would not carry, then AddCarry x y z evaluates to z. Otherwise, AddCarry x y z evaluates to  SuccAsc ztfp7The terminator type for descending decimal digit lists.tfp6The terminator type for ascending decimal digit lists.tfp0The wrapper type for decimal type level numbers.tfp3Representation name for decimal type level numbers.449 9 Safe>EUVXl}SafeHUVm      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!      ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!            !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~SafeD      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,-.//0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~//@B67FS4bcdei                  ! " / / 4 # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B B C C D D   E E F G H I J K L M N O O P P   E E Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w  x [ ] W Y _ a i 8 9 D @ A B E F y z / / 5 { 6 7 2 " | } ~        1 $  g h i 4 b c d e                                                    yyOOPPST      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~   tfp-1.0.1-3vYjKxpFAIsIiC7wpqVHrUType.Base.ProxyType.Data.BoolType.Data.List Type.Data.NumData.SizedWord Data.SizedIntType.Data.Num.UnaryType.Data.Num.Unary.LiteralType.Data.Num.Decimal.DigitType.Data.Num.Unary.Proof!Type.Data.Num.Decimal.Digit.Proof Type.Data.OrdType.Data.Num.Decimal.NumberType.Data.Num.Decimal.ProofType.Data.Num.Decimal.LiteralType.Data.Num.DecimalShow showsPrecProxy$fApplicativeProxy$fFunctorProxy $fShowProxy $fEqProxyIf:||::&&:NotFalseTruetruefalsenotandorif_ $fShowTrue $fShowFalseAppendReverseTailHeadIsNullNullCons $fShowCons $fShowNull SingletonRepresentation reifyIntegralIntegerRepr singletonNegativePositiveNaturalLog2CeilPow2FacDiv2ModDivDivModMul2:*::-::+:IsOddIsEvenPredSuccOne IsNatural IsNegativeIsZero IsPositiveNegatenegate isPositiveisZero isNegative isNaturalonesuccpredisEvenisOddaddsubmulmul2divModdivmoddiv2facpow2log2CeilintegerFromSingletonintegralFromSingletonsingletonFromProxyintegralFromProxy fromInteger reifyPositive reifyNegative reifyNatural $fNegativex $fPositivex $fNaturalx$fIntegerAssertPos$fIntegerAssertNeg$fIntegerAssertNat SizedWord$fBitsSizedWord$fIntegralSizedWord$fRealSizedWord$fNumSizedWord$fEnumSizedWord$fBoundedSizedWord$fOrdSizedWord$fReadSizedWord$fShowSizedWord $fEqSizedWordSizedInt$fBitsSizedInt$fIntegralSizedInt$fRealSizedInt $fNumSizedInt$fEnumSizedInt$fBoundedSizedInt $fOrdSizedInt$fReadSizedInt$fShowSizedInt $fEqSizedInt switchPos switchNatZeroUnUnaryzerounary$fRepresentationUnary$fShowUn $fIntegerUn $fNaturalSucc $fNaturalZero$fPositiveSuccU64U63U62U61U60U59U58U57U56U55U54U53U52U51U50U49U48U47U46U45U44U43U42U41U40U39U38U37U36U35U34U33U32U31U30U29U28U27U26U25U24U23U22U21U20U19U18U17U16U15U14U13U12U11U10U9U8U7U6U5U4U3U2U1U0u0u1u2u3u4u5u6u7u8u9u10u11u12u13u14u15u16u17u18u19u20u21u22u23u24u25u26u27u28u29u30u31u32u33u34u35u36u37u38u39u40u41u42u43u44u45u46u47u48u49u50u51u52u53u54u55u56u57u58u59u60u61u62u63u64ToUnaryDec9Dec8Dec7Dec6Dec5Dec4Dec3Dec2Dec1Dec0PosCswitchreifyreifyPos $fShowDec0 $fShowDec1 $fShowDec2 $fShowDec3 $fShowDec4 $fShowDec5 $fShowDec6 $fShowDec7 $fShowDec8 $fShowDec9$fCDec9$fCDec8$fCDec7$fCDec6$fCDec5$fCDec4$fCDec3$fCDec2$fCDec1$fCDec0 $fPosDec9 $fPosDec8 $fPosDec7 $fPosDec6 $fPosDec5 $fPosDec4 $fPosDec3 $fPosDec2 $fPosDec1AddAssocAddCommAddZeroLNat natFromPosaddNataddPosRaddPosLaddZeroLaddCommaddAssocmulNatmulPosUnaryPosUnaryNat unaryNatImpl unaryPosImplunaryNatunaryPosMaxMin:>:GTT:>=:GET:/=:NET:==:EQT:<=:LET:<:LTTIsGTIsEQIsLTGTEQLTComparecompareisLTisEQisGTltleeqnegegtminmaxUnaryAcc ToUnaryAcc FromUnaryDigits switchDigits switchNegEndDescEndAsc:>:<NegDecDecimaldecimalreifyNeg$fRepresentationDecimal $fShowEndAsc $fShowEndDesc $fDigits:>$fDigitsEndDesc $fIntegerPos $fIntegerNeg $fIntegerZero $fIntegerDec $fShowDec $fNegativeNeg $fNaturalPos $fPositivePos $f:<:PosPos $f:<:NegNeg $f:<:ZeroPos $f:<:NegPos $f:<:NegZero $f:<:DecDec $f:<=:ZeroPos$f:<=:ZeroZero $f:<=:NegPos $f:<=:NegZero $f:<=:DecDec $f:>=:PosZero$f:>=:ZeroZero $f:>=:PosNeg $f:>=:ZeroNeg $f:>=:DecDec $f:>:PosPos $f:>:NegNeg $f:>:PosZero $f:>:PosNeg $f:>:ZeroNeg $f:>:DecDec $f:==:PosPos $f:==:NegNeg$f:==:ZeroZero $f:==:DecDec $f:/=:PosPos $f:/=:NegNeg $f:/=:ZeroPos $f:/=:NegPos $f:/=:PosZero $f:/=:NegZero $f:/=:PosNeg $f:/=:ZeroNeg $f:/=:DecDec $f:>=:PosPos $f:>=:NegNeg $f:<=:PosPos $f:<=:NegNegDN256DN255DN254DN253DN252DN251DN250DN249DN248DN247DN246DN245DN244DN243DN242DN241DN240DN239DN238DN237DN236DN235DN234DN233DN232DN231DN230DN229DN228DN227DN226DN225DN224DN223DN222DN221DN220DN219DN218DN217DN216DN215DN214DN213DN212DN211DN210DN209DN208DN207DN206DN205DN204DN203DN202DN201DN200DN199DN198DN197DN196DN195DN194DN193DN192DN191DN190DN189DN188DN187DN186DN185DN184DN183DN182DN181DN180DN179DN178DN177DN176DN175DN174DN173DN172DN171DN170DN169DN168DN167DN166DN165DN164DN163DN162DN161DN160DN159DN158DN157DN156DN155DN154DN153DN152DN151DN150DN149DN148DN147DN146DN145DN144DN143DN142DN141DN140DN139DN138DN137DN136DN135DN134DN133DN132DN131DN130DN129DN128DN127DN126DN125DN124DN123DN122DN121DN120DN119DN118DN117DN116DN115DN114DN113DN112DN111DN110DN109DN108DN107DN106DN105DN104DN103DN102DN101DN100DN99DN98DN97DN96DN95DN94DN93DN92DN91DN90DN89DN88DN87DN86DN85DN84DN83DN82DN81DN80DN79DN78DN77DN76DN75DN74DN73DN72DN71DN70DN69DN68DN67DN66DN65DN64DN63DN62DN61DN60DN59DN58DN57DN56DN55DN54DN53DN52DN51DN50DN49DN48DN47DN46DN45DN44DN43DN42DN41DN40DN39DN38DN37DN36DN35DN34DN33DN32DN31DN30DN29DN28DN27DN26DN25DN24DN23DN22DN21DN20DN19DN18DN17DN16DN15DN14DN13DN12DN11DN10DN9DN8DN7DN6DN5DN4DN3DN2DN1D256D255D254D253D252D251D250D249D248D247D246D245D244D243D242D241D240D239D238D237D236D235D234D233D232D231D230D229D228D227D226D225D224D223D222D221D220D219D218D217D216D215D214D213D212D211D210D209D208D207D206D205D204D203D202D201D200D199D198D197D196D195D194D193D192D191D190D189D188D187D186D185D184D183D182D181D180D179D178D177D176D175D174D173D172D171D170D169D168D167D166D165D164D163D162D161D160D159D158D157D156D155D154D153D152D151D150D149D148D147D146D145D144D143D142D141D140D139D138D137D136D135D134D133D132D131D130D129D128D127D126D125D124D123D122D121D120D119D118D117D116D115D114D113D112D111D110D109D108D107D106D105D104D103D102D101D100D99D98D97D96D95D94D93D92D91D90D89D88D87D86D85D84D83D82D81D80D79D78D77D76D75D74D73D72D71D70D69D68D67D66D65D64D63D62D61D60D59D58D57D56D55D54D53D52D51D50D49D48D47D46D45D44D43D42D41D40D39D38D37D36D35D34D33D32D31D30D29D28D27D26D25D24D23D22D21D20D19D18D17D16D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0Neg7Neg6Neg5Neg4Neg3Neg2Neg1Pos7Pos6Pos5Pos4Pos3Pos2Pos1d0d1d2d3d4d5d6d7d8d9d10d11d12d13d14d15d16d17d18d19d20d21d22d23d24d25d26d27d28d29d30d31d32d33d34d35d36d37d38d39d40d41d42d43d44d45d46d47d48d49d50d51d52d53d54d55d56d57d58d59d60d61d62d63d64d65d66d67d68d69d70d71d72d73d74d75d76d77d78d79d80d81d82d83d84d85d86d87d88d89d90d91d92d93d94d95d96d97d98d99d100d101d102d103d104d105d106d107d108d109d110d111d112d113d114d115d116d117d118d119d120d121d122d123d124d125d126d127d128d129d130d131d132d133d134d135d136d137d138d139d140d141d142d143d144d145d146d147d148d149d150d151d152d153d154d155d156d157d158d159d160d161d162d163d164d165d166d167d168d169d170d171d172d173d174d175d176d177d178d179d180d181d182d183d184d185d186d187d188d189d190d191d192d193d194d195d196d197d198d199d200d201d202d203d204d205d206d207d208d209d210d211d212d213d214d215d216d217d218d219d220d221d222d223d224d225d226d227d228d229d230d231d232d233d234d235d236d237d238d239d240d241d242d243d244d245d246d247d248d249d250d251d252d253d254d255d256dn1dn2dn3dn4dn5dn6dn7dn8dn9dn10dn11dn12dn13dn14dn15dn16dn17dn18dn19dn20dn21dn22dn23dn24dn25dn26dn27dn28dn29dn30dn31dn32dn33dn34dn35dn36dn37dn38dn39dn40dn41dn42dn43dn44dn45dn46dn47dn48dn49dn50dn51dn52dn53dn54dn55dn56dn57dn58dn59dn60dn61dn62dn63dn64dn65dn66dn67dn68dn69dn70dn71dn72dn73dn74dn75dn76dn77dn78dn79dn80dn81dn82dn83dn84dn85dn86dn87dn88dn89dn90dn91dn92dn93dn94dn95dn96dn97dn98dn99dn100dn101dn102dn103dn104dn105dn106dn107dn108dn109dn110dn111dn112dn113dn114dn115dn116dn117dn118dn119dn120dn121dn122dn123dn124dn125dn126dn127dn128dn129dn130dn131dn132dn133dn134dn135dn136dn137dn138dn139dn140dn141dn142dn143dn144dn145dn146dn147dn148dn149dn150dn151dn152dn153dn154dn155dn156dn157dn158dn159dn160dn161dn162dn163dn164dn165dn166dn167dn168dn169dn170dn171dn172dn173dn174dn175dn176dn177dn178dn179dn180dn181dn182dn183dn184dn185dn186dn187dn188dn189dn190dn191dn192dn193dn194dn195dn196dn197dn198dn199dn200dn201dn202dn203dn204dn205dn206dn207dn208dn209dn210dn211dn212dn213dn214dn215dn216dn217dn218dn219dn220dn221dn222dn223dn224dn225dn226dn227dn228dn229dn230dn231dn232dn233dn234dn235dn236dn237dn238dn239dn240dn241dn242dn243dn244dn245dn246dn247dn248dn249dn250dn251dn252dn253dn254dn255dn256BorrowAddCarry