]0P      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<= > ? @ 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:;<=>?@ABCDEFGHIJKLMNO3None<PBEncode a Haskell String to a list of Word8 values, in UTF8 format.CQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~PBQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~P,QRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~PSafeSafeXX  None *+-./0345679:;<>@CDEHIKLNN      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@N      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@J      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@  Safe-./  return ()9  !"#$%&'()*+,-./0123456789  !"#$%&'()*+,-./012345678901$%&'()*+,-./2 !"#3 45678     !"#$ %&'()*+,-./012345678None 4 9:;<=>?@ABCD 9:;<=>?@ABCD :9;<=>?@ABCD 9:;<=>?@ABCDSafeIN EFGHIJKLMNEFGHIJK EFGNMLHIJKEFGHIJKLMNSafe-N RSort and remove duplicatesS3Sort and remove duplicates wrt some custom orderingTUnion on a predicateU Returns the duplicates in a listWStrongly connected componentsY=Sort things in topologically in strongly connected componentsZ Recursive[+Makes a nice flag from a constructor string )> flagify "PrintPolyFOL" "print-poly-fol"\Makes a flag from something Show-able]1Calculates the maximum value of a foldable value.^)Pair up a list with its previous elements 4withPrevious "abc" = [('a',""),('b',"a"),('c',"ab")]_<Cursored traversal with previous and next elements of a listOPQRSTUVWXYZ[\]^_OPQRSTUVWXYZ[\]^_RSTUOPQVWXYZ[\]^_OPQRSTUVWXYZ[\]^_None -./3457N`)The different kinds of declarations in a z.x#top-level quantified type variablesConstructor name (e.g. Cons)Discriminator name (e.g. is-Cons)4Argument types names of their projectors (e.g. [(head,a),(tail ,List a)])Data definitionUninterpreted sortUninterpreted functionTypesPolymorphic typesPatterns in branchesYFunction application: always perfectly saturated. Lambdas and locals are applied with  as head.,The default case comes first if there is oneLet (Local x t) b e = (let ((l x)) b e)X Unlike SMT-LIB, this does not accept a list of bound variable-/expression-pairs. Fix?`arations in a z Assemble a z from some `arations`abcdefghijklmnopqrstuvwxyz{|}~     `abcdefghijklmnopqrstuvwxyz{|}~     z{|}~tuvwxyijklmnopqrsfgh`abcde     O`abcdefghi jklmnopqrstuvwxyz{|}~     None35CTypeclass for variablesThe string in a variableTypeclass for pretty thingsPretty to string Print something pretty! Variable to A"Infix B#Conditional parentheses !"#$%&'()*+,-  !"# -,+*)('&%$!"# !"#$%&'()*+,-"NoneCN .The Name type class/Make a fresh name0GRefresh a name, which could have some resemblance to the original name17Make a fresh name that can incorporate the given string2-Refresh a name with an additional hint string3'Gets the unique associated with a name.4The Fresh monad6UContinues making unique names after the highest numbered name in a foldable value.7?Run fresh from starting from the greatest unique in a structure8Run fresh, starting from zero9"Run fresh from some starting value./0123456789:; ./0123456789456789./0123;:./0123456789:;None4N<<< None  -./4N?The trigger(s).@@The action. The variables here must be a subset of those in pre.-=>?@ABCDCEFDEFGGHIHIJJKLKMNOPQRSTUVWXYLZ[\]^_=>?@ABCDEFGHIJKLKH=>?@ABCDLGIJEF%=>?@ABCDCEFDEFGGHIHIJJKLKMNOPQRSTUVWXYLZ[\]^_ None-./3457IKLN S-A representation of Nested patterns, used in yy4Match as left-hand side pattern-matching definitions)Stops at default patterns, for simplicityThe signature of a functionThe type of a functionThe type of an expression=The result type of a built in function, applied to some types Substitution, of local variablesSince there are only rank-1 types, bound variables from lambdas and case never have a forall type and thus are not applied to any types.Substitution, but without refreshing. Only use when the replacement expression contains no binders (i.e. no lambdas, no lets, no quantifiers), since the binders are not refreshed at every insertion point..Goals in first component, assertions in second.Goals in first component, assertions in secondXMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~`abcdefghijklmnopqrstuvwxyz{|}~     MNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~XWXYZ[\]^_`abcdefghijklmnopqrstuvwxSTUVyz{|}~PQRMNOQMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~W`a None4CThe scope of a theoryAdd everything in a theory;9;- NoneN"The representation of renamed Ids.Renames a theory `abcdKeywords to avoidEscapingTheory to be renamedThe renamed theoryef`abcdef None -     -     -     None 4"Crashes if the theory is malformedSame as ), but returns in a monad, for convenience)Returns a Left if the theory is malformed,Returns the error if the theory is malformedghijklmnopqrstuvwxyghijklmnopqrstuvwxy NoneNA sum type that supports z and {| for  !} !  !}None 4N $Options for the simplifier&Allow simplifications on lets' transform (match x (case (K y) (e x y))) to !(match x (case (K y) (e (K y) y))b This is useful for triggering other known-case simplifications, and is therefore on by default.(Inlining predicate)*Allow function inlining to introduce match*Gentle, but without inlining+UGentle options: if there is risk for code duplication, only inline atomic expressions,QAggressive options: inline everything that might plausibly lead to simplification-Simplify an entire theory.2Simplify an expression, without knowing its theory/&Simplify an expression within a theory"#$%&'()*+,-./012"#$%&'()*+,-./012$%&'()"#*+,-./012 "#$%&'()*+,-./012None5The function to transform6New function argument type7New function result type8Transform function body9Transform call to function 3456789:;< 3456789:;< 3456789:;<3456789:;<!None4=ESplits a theory with many goals into many theories each with one goal>0Splits, type skolems and skolemises conjectures!?`Skolemises a conjecture, assuming that there is just one goal and that it has no type variables.ANegates the conjecture: changes assert-not into assert, and introduce skolem types in case the goal is polymorphic. (runs B)B7Introduce skolem types in case the goal is polymorphic.=>?@AB=>?@AB=>?@AB"NoneC>Replace SMTLIB-style selector and discriminator functions (is-nil, head, tail) with case expressions.CCC#None4N~Makes an effort to move match statements upwards: moves match above function applications, and moves matches inside scrutinees outside.2Does not move past quantifiers, lets, and lambdas.DMakes an effort to move match statements upwards: moves match above function applications, and moves matches inside scrutinees outside.2Does not move past quantifiers, lets, and lambdas.~D~D~D$NoneETurn case expressions into is-Cons, head, tail etc.EEE%None$Also do CSE for nullary constructorsH$Look for expressions of the form (match x (case P ...P...) ...) and replace them with (match x (case P ...x...) ...)7. This helps Why3's termination checker in some cases.FGHFGHFGH&NoneIReplace "fat arrow", =>4, functions with normal functions wherever possible.III'NoneJ]Remove datatypes that have only one constructor with one field. Can only be run after the addMatch pass.JJJ(None4NK If we have f x = E[x] g y = E[y]then we remove g and replace it with f everywhere)Pair up a list with its previous elements 4withPrevious "abc" = [('a',""),('b',"a"),('c',"ab")]L If we have g [a] x y = f [T1 a,T2 a] x ythen we remove g [t] and replace it with  f [T1 t,T2 t] everywhereKLKLKL)None4NMDefunctionalization. f x = ... \ y -> e [ x ] ...becomes &f x = ... g x ... g x = \ y -> e [ x ]where g is a fresh function.BAfter this pass, lambdas only exist at the top level of functions.NLift lets to the top level. let x = b[fvs] in e[x]becomes e[f fvs] f fvs = b[fvs]OAxiomatize lambdas. f x = \ y -> E[x,y]becomes :declare-fun f ... assert (forall x y . @ (f x) y = E[x,y])P(Lifts boolean operators to the top levelDreplaces (and r s t) with f r s t and f x y z = and x y z,Run CollapseEqual and BoolOpToIf afterwards MNOPMNOP MNOP*None CNQQQNone 4NR.Names to replace the builtin boolean type withYCTransforms boolean operators to if, but not in expression contexts.\ Transforms and, or, =>, not and = and distinct on Bool into ite (i.e. match)] Transforms ite (matchY) on boolean literals in the branches into the corresponding builtin boolean function.RSTUVWXYZ[\]^_`abcRSTUVWXYZ[\]^_`abcYZ[\]RSTUVWX^_`abc RSTUVWXYZ[\]^_`abc+None,Noneddd-NoneNeTransforms define-fun to declare-fun in the most straightforward way. All parts of the right hand side is preserved, including match and if-then-else.f^Makes function definitions into case by converting case to left hand side pattern matching.efefef.Noneggg/Nonehijkhijkhijk0NoneNlll1None m<Applies induction at the given coordinates to the first goalmmmNone N#nopqrstuvwxyz{|}~"nopqrstuvwxyz{|}~#nopqtrsuvwxyz{|}~"nopqrstuvwxyz{|}~None N$$$$None None N2None"Identifiers from parsed Tip syntax1A source position of the identifier, if available&" NoneHParse from a file. If the string is empty or "-", then reads from stdin.5Parse, and get either an error or the string's theory3NoneN,Replaces abstract sorts with natural numbersoReplaces the builtin Int to natural numbers, if the only operations performed on are related to int orderingNone+The passes in the standard Tip distribution'd6< !$%&'()+,-=>?@ABCDEFGHIJKLMNOPQY\]cdefghijklmd6-+,$%&'()JI=>?@ABhijk]\YcPCDEHFGdKLMNOefgQml< !%None-KL   None !"-./NA qualified importBThe current module defines something with this very important nameFrom the theoryFor various purposes...2      !"#$%&'()*+,-./0123456781      !"#$%&'()*+,-./012345672 !"#$%&8'()*+     ,-./01234567#      !"#$%&'()*+,-./012345678NoneN 9:;9:;:;9 9:;None<In instance declarations, you cannot write qualified variables, but need to write them unqualified. As an example, the mempty part here is incorrect: =instance Data.Monoid.Monoid T where Data.Monoid.mempty = K JThus, instance function declarations will be pretty printed with ppUnqual.<=>?@ABCDEFGHIJKLMNO     9<=>?@ABCDEFGH>?<=@ABCDOEFNMLGKJIH9     <=>?@ABCDEFGHIJKLMNO4564789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abccdefghijklmnopqrstuvwwxyz{|}~WZOQP9IFHH=AB      !"#$%&'()*+,-../0123456789:;<=>?@ABCDEFGHIIJKLMNOP Q 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:;<<=>?@ABCD!E!F!G!H!I!J"K#L$M%N%O%P&Q'R(S(T)U)V)W)X*YZZ[\]^_`abcdefghij,k-l-m.n/o/p/q/r0s1tuuvwxyz{|}~ wxyz{|}~ ~   2233=x        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJK"LMNOPQRST9UHHVW=TXYBVZ[\]OQ^_`abbccddefghhYYiijjklmWnopqrstuvwxyzz{{|}~~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ V                                    #%%%& & (( ( (t( )))))))))**U***S******* *!*"*#*$*%*u*&**'**(*)**+++,---../.011122232425262728292:2;2<2=2>2?2@2A2B2C2D2E2/2F2G2H2I2J2K2L2M2N2O22P2Q2R2S3T3UVWXYZ[\]^_`tipli_KK8Arhi24rSFiYMoUFtDL3Tip.Haskell.ReprTip.Utils.Rename Tip.Writer Tip.Utils Tip.Types Tip.Pretty Tip.Fresh Tip.PassesTip.Utils.SpecialiserTip.Core Tip.Scope Tip.RenameTip.Pretty.SMTTip.Lint Tip.SimplifyTip.WorkerWrapperTip.Pass.BooleansTip.Pretty.Why3Tip.Pretty.IsabelleTip.Pretty.TFFTip.Pretty.Waldmeister Tip.Parser Tip.CallGraphTip.Haskell.TranslateTip.Haskell.RenameTip.Pretty.HaskellTip.Parser.LexTIPTip.Parser.ErrMTip.Parser.AbsTIPTip.Parser.ParTIPTip.Pass.DropSuffixTip.Pass.PipelineTip.Pass.ConjectureTip.Pass.AddMatchTip.Pass.CommuteMatchTip.Pass.RemoveMatchTip.Pass.CSEMatchTip.Pass.UncurryTip.Pass.RemoveNewtypeTip.Pass.EqualFunctions Tip.Pass.LiftTip.Pass.MonomorphiseTip.Pass.EliminateDeadCodeTip.Pass.FillInCasesTip.Pass.AxiomatizeFuncdefsTip.Pass.AxiomatizeDatadeclsTip.Pass.SelectConjectureTip.Pass.UniqLocalsTip.Pass.InductionTip.Parser.ConvertTip.Pass.ConcretiseStmtBind BindTypedPatVarPatConPatTupPatWildPatIntPatExprApplyImpVarDoLamLetImpLetListTupStringNoopCaseInt QuoteTyCon QuoteNameTHSpliceRecord:::TypeTyConTyVarTyTupTyArrTyForallTyCtxTyImpDeclTySigFunDeclDataDeclInstDecl ClassDeclTypeDefWhereTHModuleLANGUAGE QualImportDeclsfunDeclmodTyCon nestedTyTup nestedTup nestedTupPatmkDovar SuggestorRenameMdisambig disambig2 evalRenameM runRenameMinsert insertManylkuprename renameWithrenameWithBlocksWriterT unWriterT runWriterTtellliftcensor$fMonadWriterT$fApplicativeWriterT$fFunctorWriterT ComponentRecNonRecusortusortOnunionOn duplicatesflattenComponent componentslookupComponent sortThings recursiveflagify flagifyShow maximumOn withPreviouscursorSortDeclSigDeclFuncDecl AssertDeclRoleAssertProveInfo DefinitionIHLemma Projection DataDomainDataProjection DataDistinct Defunction UserAssertedUnknownFormulafm_rolefm_infofm_tvsfm_bodyTheory thy_datatypes thy_sortsthy_sigs thy_funcs thy_asserts Constructorcon_name con_discrimcon_argsDatatype data_namedata_tvs data_consSort sort_namesort_tvs Signaturesig_namesig_typeFunction func_namefunc_tvs func_argsfunc_res func_body BuiltinTypeIntegerBoolean:=>:PolyType polytype_tvs polytype_args polytype_resPatternDefaultpat_conpat_argsLitPatLitBoolBuiltinAtAndOrNotImpliesEqualDistinctIntAddIntSubIntMulIntDivIntModIntGtIntGeIntLtIntLecase_patcase_rhs QuantInfoNoInfoQuantIHQuantForallExists:@:LclMatchGlobalgbl_namegbl_typegbl_argsLocallcl_namelcl_typeHeadGbl intBuiltin litBuiltineqRelatedBuiltinlogicalBuiltin emptyTheory joinTheories theoryDecls declsToTheory declsPass$fMonoidTheory$fUniverseBiExprExpr$fUniverseBiFunctionExpr$fUniverseBiFunctionGlobal$fUniverseBiFunctionType$fUniverseBiDatatypeType$fUniverseBiExprPattern$fUniverseBiExprLocal$fUniverseBiExprGlobal$fUniverseBiTheoryExpr$fUniverseBiTheoryType$fUniverseBiTypeType$fUniverseBiTheoryConstructor$fUniverseBiTheoryGlobal$fUniverseBiTheoryLocal$fUniverseBiTheoryBuiltin$fTransformBiExprExpr$fTransformBiaExpr$fTransformBiaFormula$fTransformBiExprFunction$fTransformBiExprTheory$fTransformBiHeadExpr$fTransformBiHeadTheory$fTransformBiLocalExpr$fTransformBiPatternExpr$fTransformBiPatternTheory$fTransformBiTypeTheory$fTransformBiGlobalTheory$fTransformBiTypeDecl$fTransformBiTypeExpr transformExprtransformExprMtransformExprIntransformExprInM transformTypetransformTypeInExprtransformTypeInDecl$fTransformBiMmFunctionTheory$fTransformBiMmTypeTheory$fTransformBiMmTypeType$fTransformBiMmExprFormula$fTransformBiMmExprTheory$fTransformBiMmLocalExpr$fTransformBiMmPatternExpr$fTransformBiMmExprFunction$fTransformBiMmExprExpr$fTransformBiTypeTypePPVarunPPVar PrettyVarvarStrPrettyppppRenderpprintppVar$\parIf $fShowPPVar $fPrettyPPVar $fPretty() $fPrettyInt $fPretty[] $fPretty(,,) $fPretty(,)$fPrettyVarEither$fPrettyVarInt $fPrettyVar[]Namefreshrefresh freshNamed refreshNamed getUniqueFresh freshPass freshFromrunFresh runFreshFrom $fNamePPVar $fNameInt dropSuffixRulerule_pre rule_postVarConVoidSubstInstClosedsafeRule subtermRulessubterms specialiseabsurd:+:InLInRdefinesuses DeepPattern DeepConPat DeepVarPat DeepLitPat====/= oppositeQuant gentleNegneg/\\/andsors==>===>mkQuantbooltrueExpr falseExprmakeIfintLitliteralintTypeboolType applyFunctionapplySignatureapply applyTypeIn applyTypeapplyTypeInExprapplyTypeInDecl applyPolyTypegblTypemakeLets collectLetslitViewboolView forallViewpatternMatchingViewifViewprojAt projGlobalatomic occurrences signaturefuncTypeboundlocalsfreeglobalstyVars freeTyVarsexprType builtinType theoryTypes freshLocal freshArgs refreshLocalfreshen freshenNames// substManyletExpr unsafeSubstupdateLocalTypeupdateFuncType matchTypesIn matchTypes makeGlobalconstructorTypedestructorType constructor projector discriminator theoryGoalspartitionGoalsmapDeclstopsort$fDefinitionDatatype$fDefinitionFunction$fDefinitionSignature$fDefinition:+:ScopeMScopeTunScopeT GlobalInfo FunctionInfoConstructorInfo ProjectorInfoDiscriminatorInfoTypeInfo TyVarInfo DatatypeInfoSortInfoScopeinnertypesscope globalTypeisTypeisLocalisGlobalisTyVarisSort lookupType lookupLocal lookupGloballookupDatatypelookupFunctionlookupConstructorlookupDiscriminatorlookupProjector whichDatatype whichLocal whichGlobal whichFunctionwhichConstructorwhichDiscriminatorwhichProjector runScopeT checkScopeTrunScope checkScope emptyScope inContextlocalnewScopenewNamenewTyVarnewSort newDatatypenewConstructor newFunctionnewLocal withTheory $fErrorDoc$fMonadTransScopeT RenamedIdrenameAvoidingparExpr parExprSepexprexprSep validSMTCharppTheoryppSortppDatasppDatappConparpar'par'' ppUninterpppFuncs ppFuncSig ppFormulappExprppLocalsppLocalppHead ppBuiltinppLitppQuantppCaseppPatppType ppBuiltinType ppPolyType smtKeywords$fPrettyPattern $fPrettyHead$fPrettyGlobal $fPrettyLocal$fPrettySignature $fPrettySort$fPrettyDatatype$fPrettyFormula$fPrettyFunction $fPrettyType$fPrettyPolyType $fPrettyExpr$fPrettyTheory $fPrettyDecllintlintM lintEither lintTheoryChoiceFirstSecondPassrunPasspassName parsePassunitPasslintMany runPassLintedchoice runPassescontinuePasses parsePasses Occurrences SimplifyOpts touch_lets%remove_variable_scrutinee_in_branches should_inline inline_matchgentlyNoInlinegently aggressivelysimplifyTheory simplifyExprsimplifyExprIn isConstructor missingCasetryMatch WorkerWrapperww_funcww_argsww_resww_defww_useworkerWrapperTheoryworkerWrapperFunctions workerWrappersplitConjectureskolemiseConjectureskolemiseConjecture' skolemisenegateConjecturetypeSkolemConjectureaddMatch commuteMatch removeMatchcseMatchNormal cseMatchWhy3cseMatch uncurryTheory removeNewtype collapseEqual removeAliases lambdaLiftletLiftaxiomatizeLambdas boolOpLift monomorphise BoolNamesboolNametrueName falseName isTrueName isFalseNametheoryBoolOpToIfformulaBoolOpToIf hasBoolType boolOpToIf ifToBoolOpfreshBoolNamesboolGblboolExprremoveBuiltinBoolFromremoveBuiltinBoolWithremoveBuiltinBool fillInCasesaxiomatizeFuncdefsaxiomatizeFuncdefs2axiomatizeDatadeclsmakeConjectureselectConjectureprovedConjecturedeleteConjecture uniqLocals inductionWhy3Var why3VarTheoryblockcsvcsv1pcsv separatingescapeppBinder ppLocalBinderppFunc ppDeepPatternppRoleppBinOp ppQuantNameppTyVar why3Keywords$fPrettyVarWhy3Var$-$intersperseWithPrequote quoteWhen ppAsTupleisabelleKeywordsclause validTFFChartffify tffvarify validCharppSigkeywordsIdidPos parseFileparse sortsToNatintToNat StandardPassSimplifyGentlySimplifyAggressively RemoveNewtype UncurryTheoryNegateConjectureTypeSkolemConjectureIntToNat SortsToNatSplitConjectureSkolemiseConjecture IfToBoolOp BoolOpToIfRemoveBuiltinBool BoolOpLiftAddMatch CommuteMatch RemoveMatch CollapseEqual RemoveAliases LambdaLiftLetLiftAxiomatizeLambdasAxiomatizeFuncdefsAxiomatizeFuncdefs2AxiomatizeDatadeclsAxiomatizeDatadeclsUEQ MonomorphiseCSEMatch CSEMatchWhy3EliminateDeadCodeMakeConjectureSelectConjectureProvedConjectureDeleteConjecture DropSuffix UniqLocals Induction CallGraphOptsexploreSingleFunctionsexploreCalleesFirstBlockcallerscalleesFS flattenBlock theoryStuff callGraph flatCallGraphModeFeat QuickCheckLazySmallCheckSmten QuickSpecPlainKindHsId Qualified qual_modulequal_module_short qual_funcExactOtherDerivedpreludetipDSL quickCheckquickCheckUnsafe quickCheckAll quickSpecsysEnvsmtenSymsmtenEnv smtenMinisat smtenMonadfeatlsctypeable addHeader addImportstrTheory theorySigsufInfoisLazySmallCheckisSmten trTheory' arbitrarytrType trBuiltinTypewithBool hsBuiltinTys hsBuiltins typeOfBuiltinmakeSigtheoryBuiltins$fPrettyVarHsId RenameMap renameDecls isOperator PrettyHsVar varUnqualppTheoryWithRenamingsppUnqualppHsVarppOperQppOperisOptuple $fPrettyDecls $fPrettyPat $fPrettyStmt$fPrettyHsVarHsId utf8EncodeAlexAcc AlexAccNone AlexAccSkip AlexLastAccAlexNone AlexLastSkip AlexReturnAlexEOF AlexErrorAlexSkip AlexTokenAlexAddrAlexA# AlexInputBytePosnPnBTreeNBTokenPTErrTokTSTLTITVTDTCT_Symbol alex_base alex_table alex_check alex_deflt alex_accepttoksharetokenPos tokenPosn tokenLineCol posLineCol mkPosTokenprTokeneitherResIdentresWordsunescapeInitTail alexStartPosalexMovetokens alexGetBytealexInputPrevChar alex_action_2 alex_action_3 alex_action_4 alex_action_5alexIndexInt16OffAddralexIndexInt32OffAddr quickIndexalexScan alexScanUser alex_scan_tkniUnbox$fFunctorAlexLastAccOkBad$fAlternativeErr$fMonadPlusErr $fFunctorErr$fApplicativeErr $fMonadErrConst IfThenElse SimplePatBinderLambdaAsAppLitInt LitNegIntLitTrueLitFalseTyAppArrowTyIntTyBoolTyLetDeclBinding InnerFunDecFunDec ParFunDec MonoFunDecFunDef ConstDeclPar AssertionAssertIt AssertNotDeclareDatatypes DeclareSort DeclareConstDeclareConstPar DeclareFun DeclareFunPar DefineFun DefineFunPar DefineFunRecDefineFunRecPar DefineFunsRec AssertParStartSymbol HappyAddrHappyA#HappyStk Happy_IntList HappyConsHappyAny HappyAbsSyn happyIn34 happyOut34 happyIn35 happyOut35 happyIn36 happyOut36 happyIn37 happyOut37 happyIn38 happyOut38 happyIn39 happyOut39 happyIn40 happyOut40 happyIn41 happyOut41 happyIn42 happyOut42 happyIn43 happyOut43 happyIn44 happyOut44 happyIn45 happyOut45 happyIn46 happyOut46 happyIn47 happyOut47 happyIn48 happyOut48 happyIn49 happyOut49 happyIn50 happyOut50 happyIn51 happyOut51 happyIn52 happyOut52 happyIn53 happyOut53 happyIn54 happyOut54 happyIn55 happyOut55 happyIn56 happyOut56 happyIn57 happyOut57 happyIn58 happyOut58 happyIn59 happyOut59 happyIn60 happyOut60 happyIn61 happyOut61 happyIn62 happyOut62 happyIn63 happyOut63 happyIn64 happyOut64 happyIn65 happyOut65 happyIn66 happyOut66 happyInTok happyOutTokhappyActOffsetshappyGotoOffsetshappyDefActions happyCheck happyTablehappyReduceArr happy_n_termshappy_n_nontermshappyReduce_31happyReduction_31happyReduce_32happyReduction_32happyReduce_33happyReduction_33happyReduce_34happyReduction_34happyReduce_35happyReduction_35happyReduce_36happyReduction_36happyReduce_37happyReduction_37happyReduce_38happyReduction_38happyReduce_39happyReduction_39happyReduce_40happyReduction_40happyReduce_41happyReduction_41happyReduce_42happyReduction_42happyReduce_43happyReduction_43happyReduce_44happyReduction_44happyReduce_45happyReduction_45happyReduce_46happyReduction_46happyReduce_47happyReduction_47happyReduce_48happyReduction_48happyReduce_49happyReduction_49happyReduce_50happyReduction_50happyReduce_51happyReduction_51happyReduce_52happyReduction_52happyReduce_53happyReduction_53happyReduce_54happyReduction_54happyReduce_55happyReduction_55happyReduce_56happyReduction_56happyReduce_57happyReduction_57happyReduce_58happyReduction_58happyReduce_59happyReduction_59happyReduce_60happyReduction_60happyReduce_61happyReduction_61happyReduce_62happyReduction_62happyReduce_63happyReduction_63happyReduce_64happyReduction_64happyReduce_65happyReduction_65happyReduce_66happyReduction_66happyReduce_67happyReduction_67happyReduce_68happyReduction_68happyReduce_69happyReduction_69happyReduce_70happyReduction_70happyReduce_71happyReduction_71happyReduce_72happyReduction_72happyReduce_73happyReduction_73happyReduce_74happyReduction_74happyReduce_75happyReduction_75happyReduce_76happyReduction_76happyReduce_77happyReduction_77happyReduce_78happyReduction_78happyReduce_79happyReduction_79happyReduce_80happyReduction_80happyReduce_81happyReduction_81happyReduce_82happyReduction_82happyReduce_83happyReduction_83happyReduce_84happyReduction_84happyReduce_85happyReduction_85happyReduce_86happyReduction_86happyReduce_87happyReduction_87happyReduce_88happyReduction_88happyReduce_89happyReduction_89happyReduce_90happyReduction_90happyReduce_91happyReduction_91happyReduce_92happyReduction_92happyReduce_93happyReduction_93happyReduce_94happyReduction_94happyReduce_95happyReduction_95happyReduce_96happyReduction_96happyReduce_97happyReduction_97happyReduce_98happyReduction_98happyReduce_99happyReduction_99happyReduce_100happyReduction_100happyReduce_101happyReduction_101happyReduce_102happyReduction_102happyReduce_103happyReduction_103happyReduce_104happyReduction_104happyReduce_105happyReduction_105happyReduce_106happyReduction_106happyReduce_107happyReduction_107happyReduce_108happyReduction_108happyReduce_109happyReduction_109happyReduce_110happyReduction_110happyReduce_111happyReduction_111happyReduce_112happyReduction_112happyReduce_113happyReduction_113happyReduce_114happyReduction_114happyReduce_115happyReduction_115happyReduce_116happyReduction_116happyReduce_117happyReduction_117happyReduce_118happyReduction_118happyReduce_119happyReduction_119happyReduce_120happyReduction_120happyReduce_121happyReduction_121happyReduce_122happyReduction_122happyReduce_123happyReduction_123 happyNewToken happyError_ happyThen happyReturn happyThen1 happyReturn1 happyError'pStart pListDeclpDecl pAssertionpPar pConstDeclpFunDeclpFunDefpFunDec pInnerFunDec pDatatype pConstructorpBindingpLetDeclpTypepExprpBinderpCasepPatternpHead pListLetDecl pListCase pListExpr pListDatatypepListConstructor pListBinding pListSymbol pListType pListFunDecl pListFunDef pListFunDechappySeqreturnMthenM happyErrormyLexer happyParse happyAccept happyDoActionindexShortOffAddr happyShifthappySpecReduce_0happySpecReduce_1happySpecReduce_2happySpecReduce_3 happyReducehappyMonadReducehappyMonad2Reduce happyDrop happyDropStk happyGoto happyFail notHappyAtAll happyTcHack happyDoSeq happyDontSeqprett_7UQTOB05U7lIYPkFOVraeRText.PrettyPrint.HughesPJDochangSkOld bimapRule mapRuleOrdbadRuleruleVarsunSkolemvarOfseparate terminatingunion\\instinstPreclose unnamedStepstep activateOnemergemergesmatch $fPrettyVoid $fPrettyVarSk$fNameSk $fPrettySk $fPrettyRuleTwoStageRemainRenamed renameSome renameRest$fShowTwoStage$fPrettyVarRenamedIdExprKind FormulaKindcheckcheck' lintDatatypelintSort lintPolyTypelintType lintSignature lintFunction lintBinder lintFormulalintExpr lintGloballintCall lintBuiltin isExpressionlintCasebaseGHC.EnumEnumBounded Data.Eithereither $fPassChoicecommuteMatchTheory cse_nullary CSEMatchOptsouterUncurryWWinnerUncurryWW renameVarsrenameFn renameGlobalsTopLiftLiftM liftAnywhere liftTheory lambdaLiftTop letLiftTop axLamFunc mkTyVarName boolOpTop trListTYPEPredTConTyBunDummytrListmonomorphicThymonomorphicDecl monomorphise'exprGlobalRecordsexprTypeRecords typeRecords exprRecords renameRenamestyRename renameDecltoTypesigRule declToRule $fPrettyConeliminateDeadCodefixpoint axiomatize axiomatize2 trDatatypediag theoryTyEnvtrTermidStringidUniqueCMIdKindLocalIdGlobalIdrunCMppSymlkSymaddSymtrDeclstrDeclemptyPar decToDecl defToDecl trFunDecldecToDeftrFunDefdataSym trConstructor bindingType trBindingtrLocalBinding trLetDeclstrExprtrHeadtrBindertrCase trPattern$fNameId $fPrettyVarId$fOrdId$fEqId nat_theory renameWrt$fPassStandardPass uppercase makeUniform initialAlpha disambigHsupperlowercouldBeOperatornumOpsopSyms