!T$      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                                                                             ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~NoneSX'None, twee-lib An array.twee-libThe size of the array. twee-libThe contents of the array. twee-lib!A type which has a default value. twee-libThe default value. twee-lib3Convert an array to a list of (index, value) pairs. twee-libCreate an empty array.twee-libIndex into an array. O(1) time.twee-libUpdate the array. O(n) time.      SafeX38twee-libA heap.twee-libTake the union of two heaps.twee-libA singleton heap.twee-libThe empty heap.twee-libInsert an element.twee-lib$Find and remove the minimum element.twee-lib>Map a function over a heap, removing all values which map to L. May be more efficient when the function being mapped is mostly monotonic.twee-lib*Return the number of elements in the heap.None"#X8sKtwee-libA value of type a" which has been given a unique ID.Ltwee-libThe unique ID of a label.Mtwee-lib Construct a K a' from its unique ID, which must be the L of an already existing K. Extremely unsafe!Ntwee-libAssign a label to a value.Otwee-lib*Recover the underlying value from a label.KLMNOKMLNOSafe"#>Stwee-libA task which runs in the monad m and produces a value of type a.Ttwee-libCreate a new task that should be run a certain proportion of the time. The first argument is how often in seconds the task should run, at most. The second argument is the maximum percentage of time that should be spent on the task.Utwee-lib"Run a task if it's time to run it.STUSTUNone "#%FMSXg[7Vtwee-libA monoid for building terms. & represents the empty termlist, while  appends two termlists.Wtwee-lib A variable.Ytwee-librThe variable's number. Don't use huge variable numbers: they will be truncated to 32 bits when stored in a term.Ztwee-libA function symbol. fB is the underlying type of function symbols defined by the user; Z f is an f8 together with an automatically-generated unique number.[twee-libThe unique number of a Z.\twee-lib\ f, is a term whose function symbols have type f. It is either a W or an ^.]twee-lib] f5 is a list of terms whose function symbols have type f. It is either a c or an d. You can turn it into a [\ f] with .^twee-libMatches a function application._twee-libMatches a variable.`twee-libLike ai, but does not check that the termlist is non-empty. Use only if you are sure the termlist is non-empty.atwee-lib:Matches a non-empty termlist, unpacking it into head and -everything except the root symbol of the head;. Useful for iterating through terms one symbol at a time.For example, if ts is the termlist [f(x,y), g(z)], then let ConsSym u us = ts# results in the following bindings: u = f(x,y) us = [x, y, g(z)]btwee-libLike ci, but does not check that the termlist is non-empty. Use only if you are sure the termlist is non-empty.ctwee-lib>Matches a non-empty termlist, unpacking it into head and tail.dtwee-libMatches the empty termlist.etwee-libIndex into a termlist.ftwee-lib0The length of (number of symbols in) a termlist.gtwee-lib Construct a Z from a function symbol.htwee-lib$The underlying function symbol of a Z.itwee-libConvert a term to a termlist.jtwee-lib5Is a term contained as a subterm in a given termlist?twee-lib)Check if a variable occurs in a termlist.=VWXYZ [\!"#]$%&'()*+,^_`abcd-.ef/0gh1i23456789:;<=>?@AjBCNone %HVXgzCktwee-libwA triangle substitution is one in which variables can be defined in terms of each other, though not in a circular way.:The main use of triangle substitutions is in unification; Z returns one. A triangle substitution can be converted to an ordinary substitution with , or used directly using its q instance.ntwee-lib5A substitution which maps variables to terms of type \ f.qtwee-lib.A class for values which act as substitutions.Instances include n. as well as functions from variables to terms.rtwee-lib(The underlying type of function symbols.stwee-lib%Apply the substitution to a variable.ttwee-lib%Apply the substitution to a termlist.utwee-lib Instances of u can be turned into terms using y or z', and turned into term builders using wC. Has instances for terms, termlists, builders, and Haskell lists.vtwee-lib(The underlying type of function symbols.wtwee-libConvert a value into a V.xtwee-libA pattern which extracts the h from a Z.ytwee-lib>Build a term. The given builder must produce exactly one term.ztwee-libBuild a termlist.{twee-lib0Build a constant (a function with no arguments).|twee-libBuild a function application.}twee-libBuild a variable.~twee-lib-Convert a substitution to a list of bindings.twee-lib$Fold a function over a substitution.twee-libACheck if all bindings of a substitution satisfy a given property.twee-lib5Compute the set of variables bound by a substitution.twee-libApply a substitution to a term.twee-lib<Return the highest-number variable in a substitution plus 1.twee-lib;Look up a variable in a substitution, returning a termlist.twee-lib7Add a new binding to a substitution, giving a termlist.twee-lib%Remove a binding from a substitution.twee-libFAdd a new binding to a substitution. Overwrites any existing binding.twee-libCompose two substitutions.twee-libcCheck if two substitutions are compatible (they do not send the same variable to different terms).twee-libaTake the union of two substitutions. The substitutions must be compatible, which is not checked.twee-libcCheck if a substitution is idempotent (applying it twice has the same effect as applying it once).twee-lib6Check if a substitution has no effect on a given term.twee-lib6Iterate a triangle substitution to make it idempotent.twee-libgReturn a substitution which renames the variables of a list of terms to put them in a canonical order.twee-libThe empty substitution.twee-lib/Construct a substitution from a list. Returns Nothing3 if a variable is bound to several different terms.twee-lib pat t matches the term t against the pattern pat.twee-lib A variant of ( which extends an existing substitution.twee-lib A variant of  which works on termlists.twee-lib A variant of @ which works on termlists and extends an existing substitution.twee-libUnify two terms.twee-libUnify two termlists.twee-libRUnify two terms, returning a triangle substitution. This is slightly faster than .twee-libVUnify two termlists, returning a triangle substitution. This is slightly faster than .twee-libThe empty termlist.twee-lib-Get the children (direct subterms) of a term.twee-lib2Convert a termlist into an ordinary list of terms.twee-lib%Look up a variable in a substitution.twee-lib$Add a new binding to a substitution.twee-libFind the length of a term.twee-lib<Return the lowest- and highest-numbered variables in a term.twee-lib@Return the lowest- and highest-numbered variables in a termlist.twee-libIReturn the lowest- and highest-numbered variables in a list of termlists.twee-lib%Check if a variable occurs in a term.twee-lib Find all subterms of a termlist.twee-libFind all subterms of a term.twee-lib#Find all proper subterms of a term.twee-lib*Check if a term is a function application.twee-libCheck if a term is a variabletwee-libt `'isInstanceOf'\` pat checks if t is an instance of pat.twee-lib0Check if two terms are renamings of one another.twee-lib#Is a term a subterm of another one?twee-lib3Map a function over the function symbols in a term.twee-lib7Map a function over the function symbols in a termlist.twee-libEReplace the term at a given position in a term with a different term.twee-libReplace the term at a given position in a term with a different term, while simultaneously applying a substitution. Useful for building critical pairs.twee-libHConvert a position in a term, expressed as a single number, into a path.twee-lib)Convert a path in a term into a position.twee-lib Compare the h s of two Zs.]VWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~]\_^i]dcab`fZg[hxWXYuvwVyz{|}jeqrstnop~klmNoneSXKtwee-lib+Defines how to print out a function symbol.twee-libRenders a function application. Takes the following arguments in this order: Pretty-printing level, current precedence, pretty-printed function symbol and list of arguments to the function.twee-lib9A class for customising the printing of function symbols.twee-lib.The style of the function symbol. Defaults to .twee-libPrint a value to the console.twee-lib'Put one document beside another, i.e., D&. Renamed here because (a different) E is exported by Prelude.twee-lib4The empty document. Used to avoid name clashes with .twee-libPrint a tuple of values.twee-libPrint a set of vlaues.twee-lib7Generate a list of candidate names for pretty-printing.twee-libFor operators like $) that should be printed as a blank space.twee-lib-For functions that should be printed curried.twee-lib/For functions that should be printed uncurried.twee-libHA helper function that deals with under- and oversaturated applications.twee-lib;A helper function that drops a certain number of arguments.twee-libFor prefix operators.twee-libFor postfix operators.twee-libFor infix operators.twee-lib For tuples._  !"#$%&'()*+,-./0123456789:;<@?>=EDCBAJIHGFc  !"#$%&'()*+,-./0123456789:;<@?>=EDCBAJIHGF6NoneFNone "#1>HVX̟twee-libA queued critical pair.twee-lib The score of this critical pair.twee-lib@The rule which does the outermost rewrite in this critical pair.twee-lib@The rule which does the innermost rewrite in this critical pair.twee-lib!The position of the overlap. See .twee-libA critical pair queue.twee-lib=A datatype representing all the type parameters of the queue.twee-lib@The score assigned to critical pairs. Smaller scores are better.twee-lib*The type of ID numbers used to name rules.twee-libA  packed for storage into a F. Must be an instance of G.twee-libAn  packed for storage into a F. Must be an instance of G.twee-libPack a .twee-lib Unpack a .twee-libPack an .twee-lib Unpack a .twee-libThe empty queue.twee-lib Add a set of s to the queue.twee-libRemove the minimum  from the queue.twee-libMap a function over all s.None"#>8twee-lib7Describes whether an inequality is strict or nonstrict.twee-lib0The first term is strictly less than the second.twee-lib3The first term is less than or equal to the second. twee-libReturn HN if the first term is less than or equal to the second, in the term ordering. twee-libCheck if the first term is less than or equal to the second in the given model, and decide whether the inequality is strict or nonstrict.5twee-libReturn HO if the first argument is strictly less than the second, in the term ordering.6twee-libYReturn the direction in which the terms are oriented according to the term ordering, or ) if they cannot be oriented. A result of I J) means that the first term is less than  or equal to the second.2      !"#$%&'()*+,-./01234562 !"#$%&'()*+,- ./012  34  56None"#,48=>?@AHMUV$Gtwee-lib^A function symbol extended with a minimal constant and Skolem functions. Comes equipped with G and U instances.Htwee-libThe minimal constant.Itwee-libA Skolem function.Jtwee-libAn ordinary function symbol.Ktwee-lib&A hack for encoding Horn clauses. See !. The default implementation of L should work OK.Ptwee-libkThe collection of constraints which the type of function symbols must satisfy in order to be used by twee.Qtwee-lib&For types which have a notion of size.Rtwee-libCompute the size.Stwee-lib'For types which have a notion of arity.Ttwee-libMeasure the arity.Utwee-lib!Construction of Skolem constants.Vtwee-lib'Turn a variable into a Skolem constant.Xtwee-lib An instance X a b indicates that a value of type a contains a value of type b- which is somehow part of the meaning of the a.A number of functions use XO constraints to work in a more general setting. For example, the functions in 4 operate on rewrite rules, but actually accept any a satisfying X a (  f).Use taste when definining X$ instances; don't do it willy-nilly.Ytwee-libGet at the thing.Ztwee-lib3The underlying type of function symbols of a given `.[twee-lib"A builder compatible with a given `.\twee-lib0A triangle substitution compatible with a given `.]twee-lib'A substitution compatible with a given `.^twee-lib#A termlist compatible with a given `._twee-libA term compatible with a given `.`twee-libgGeneralisation of term functionality to things that contain terms (e.g., rewrite rules and equations).btwee-lib Compute a K` of all terms which appear in the argument (used for e.g. computing free variables). See also h.ctwee-lib&Apply a substitution. When using the ` type class, you can use g instead.dtwee-lib2Represents a unique identifier (e.g., for a rule).gtwee-libApply a substitution.htwee-lib(Find all terms occuring in the argument.itwee-lib-Find the variables occurring in the argument.jtwee-libTest if the argument is ground.ktwee-lib4Find the function symbols occurring in the argument.ltwee-lib>Count how many times a function symbol occurs in the argument.mtwee-lib7Count how many times a variable occurs in the argument.ntwee-libqRename the argument so that variables are introduced in a canonical order (starting with V0, then V1 and so on).otwee-lib_Rename the second argument so that it does not mention any variable which occurs in the first.ptwee-lib(Check if a term is the minimal constant.qtwee-lib%Build the minimal constant as a term.rtwee-lib\Erase a given set of variables from the argument, replacing them with the minimal constant.  !"#$%&'()*+,-./0123456789:;<@?>=EDCBAJIHGFVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~    56GJHIKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~`abcgh_^]\[ZijklmnodefXY  qprUVWSTQR  56KLMNOPGJHI None twee-lib.Check if one term is less than another in KBO.twee-lib8Check if one term is less than another in a given model. None"#>z twee-libA term index: a multimap from \ f to a.twee-libAn empty index.twee-libIs the index empty?twee-libAn index with one entry.twee-libInsert an entry into the index.twee-libDelete an entry from the index.twee-libLook up a term in the index. Finds all key-value such that the search term is an instance of the key, and returns an instance of the the value which makes the search term exactly equal to the key.twee-lib"Look up a term in the index. Like , but returns the exact value that was inserted into the index, not an instance. Also returns a substitution which when applied to the value gives you the matching instance.twee-libGLook up a term in the index, possibly returning spurious extra results.twee-lib!Return all elements of the index.   NoneHVntwee-libeOrder an equation roughly left-to-right. However, there is no guarantee that the result is oriented.twee-lib.Apply a function to both sides of an equation.twee-lib!Is an equation of the form t = t?   None"#HVX?P twee-lib6A proof, with all axioms and lemmas explicitly listed.twee-libThe used axioms.twee-libThe used lemmas.twee-libThe goals proved.twee-libOptions for proof presentation.twee-libNever inline lemmas.twee-libInline all lemmas.twee-lib!Print out explicit substitutions.twee-libHThe number of the axiom. Has no semantic meaning; for convenience only.twee-libKA description of the axiom. Has no semantic meaning; for convenience only.twee-lib%The equation which the axiom asserts.twee-libWA derivation is an unchecked proof. It might be wrong! The way to check it is to call  to turn it into a .twee-lib:Apply an existing rule (with proof!) to the root of a termtwee-lib$Apply an axiom to the root of a termtwee-lib Reflexivity.  t proves t = t.twee-libSymmetrytwee-lib Transivititytwee-liblCongruence. Parallel, i.e., takes a function symbol and one derivation for each argument of that function.twee-lib-A checked proof. If you have a value of type Proof f0, it should jolly well represent a valid proof!The only way to construct a Proof f is by using .twee-lib Checks a - and, if it is correct, returns a certified .If the # is incorrect, throws an exception.twee-libSimplify a derivation.@After simplification, a derivation has the following properties: is pushed down next to Lemma and  only occurs inside  or at the top level* is right-associated and is pushed inside  if possibletwee-lib/Find all lemmas which are used in a derivation.twee-libVFind all lemmas which are used in a derivation, together with the substitutions used.twee-lib/Find all axioms which are used in a derivation.twee-libVFind all axioms which are used in a derivation, together with the substitutions used.twee-lib4Applies a derivation at a particular path in a term.twee-libThe default configuration.twee-lib Construct a  ProvedGoal.twee-lib5Check that pg_goal/pg_witness match up with pg_proof.twee-libSimplify and present a proof.twee-libPrint a presented proof.twee-libFormat an equation nicely.$Used both here and in the main file.22 None"#>@AHMVXoE+twee-lib6A rewrite proof with the final term attached. Has an Ord( instance which compares the final term.twee-libA multi-step rewrite proof t ->* utwee-lib1Apply a single rewrite rule to the root of a termtwee-lib Reflexivitytwee-lib Transivititytwee-lib Congruencetwee-lib9A strategy gives a set of possible reductions for a term.twee-libA rule's orientation. and % rules are used only left-to-right.  and  rules are used bidirectionally.twee-libAn oriented rule.twee-libA weakly oriented rule. The first argument is the minimal constant, the second argument is a list of terms which are weakly oriented in the rule.A rule with orientation  k ts" can be used unless all terms in ts are equal to k.twee-libA permutative rule.A rule with orientation  ts can be used if  map fst ts# is lexicographically greater than  map snd ts.twee-libAn unoriented rule.twee-libA rewrite rule.twee-lib7Information about whether and how the rule is oriented.twee-libThe left-hand side of the rule.twee-lib The right-hand side of the rule.twee-lib&Is a rule oriented or weakly oriented?twee-libIs a rule weakly oriented? twee-libTurn a rule into an equation. twee-libzTurn an equation t :=: u into a rule t -> u by computing the orientation info (e.g. oriented, permutative or unoriented).NCrashes if t -> u is not a valid rule, for example if there is a variable in u which is not in t+. To prevent this happening, combine with . twee-lib6Flip an unoriented rule so that it goes right-to-left. twee-lib:Compute the normal form of a term wrt only oriented rules.twee-lib"Check if a term can be simplified.twee-lib2Find a simplification step that applies to a term.twee-lib4A smart constructor for Trans which simplifies Refl.twee-lib3A smart constructor for Cong which simplifies Refl.twee-lib6The list of all rewrite rules used in a rewrite proof.twee-libTurn a reduction into a proof.twee-libConstruct a basic rewrite step.twee-lib Construct a  from a .twee-lib+Normalise a term wrt a particular strategy.twee-libECompute all normal forms of a set of terms wrt a particular strategy.twee-lib@Compute all successors of a set of terms (a successor of a term t is a term u such that t ->* u).twee-lib$Apply a strategy anywhere in a term.twee-lib4Apply a strategy to some child of the root function.twee-libkApply a strategy in parallel in as many places as possible. Takes only the first rewrite of each strategy.twee-lib)A strategy which rewrites using an index.twee-lib'A strategy which applies one rule only. twee-lib>Check if a rule can be applied, given an ordering <= on terms.!twee-lib(Check if a rule can be applied normally."twee-lib/Check if a rule can be applied and is oriented.#twee-lib5Check if a rule can be applied in a particular model.$twee-libCCheck if a rule can be applied to the Skolemised version of a term.3      !"#$3      !"#$None"#>Xq; 789:;<=> 789:;<=>None"#>@AHMVXS@twee-libBA critical pair together with information about how it was derivedBtwee-libThe critical pair itself.Ctwee-libThe depth of the critical pair.Dtwee-libJThe critical term, if there is one. (Axioms do not have a critical term.)Etwee-lib2A derivation of the critical pair from the axioms.Ftwee-lib<The configuration for the critical pair weighting heuristic.Otwee-lib(Represents the depth of a critical pair.Rtwee-lib,A critical overlap of one rule with another.Ttwee-libIThe depth (1 for CPs of axioms, 2 for CPs whose rules have depth 1, etc.)Utwee-libThe critical term.Vtwee-lib<The part of the critical term which the inner rule rewrites.Wtwee-lib5The position in the critical term which is rewritten.Xtwee-libThe critical pair itself.Ztwee-lib@The set of positions at which a term can have critical overlaps.]twee-lib*Calculate the set of positions for a term._twee-lib3Compute all overlaps of a rule with a set of rules.btwee-libTCreate an overlap at a particular position in a term. Doesn't simplify the overlap.ctwee-lib2Simplify an overlap and remove it if it's trivial.ftwee-lib$The default heuristic configuration.gtwee-lib$Compute a score for a critical pair.htwee-lib:Split a critical pair so that it can be turned into rules.nThe resulting critical pairs have the property that no variable appears on the right that is not on the left.itwee-lib3Make a critical pair from two rules and an overlap.jtwee-lib#Return a proof for a critical pair.+@AEDCBFGNMLKJIHOPQRSXVUTWYZ\[]^_`abcdefghij+Z\[Y]^RSXVUTWQOP_`abcdeFGNMLKJIHfg@AEDCBhijNone"#>HV!vwzyx{|}~vwzyx{|~}None"#&'@AHMVX0twee-libMA message which is produced by the prover when something interesting happens.twee-lib A new rule.twee-libA new joinable equation.twee-libA rule was deleted.twee-libThe CP queue was simplified.twee-lib&The rules were reduced wrt each other.twee-libThe prover state.twee-libThe prover configuration.twee-lib!The default prover configuration.twee-lib:Does this configuration run the prover in a complete mode?twee-libThe initial state.twee-libEmit a message.twee-lib"Forget about all emitted messages.twee-libGet all emitted messages.twee-lib'Compute all critical pairs from a rule.twee-libATurn a Passive back into an overlap. Doesn't try to simplify it.twee-libRenormalise a queued Passive.twee-libRenormalise the entire queue.twee-lib Enqueue a set of critical pairs.twee-libDequeue a critical pair.Also takes care of:/removing any orphans from the head of the queueignoring CPs that are too big^^L !!"#$%&'&(&)&*&+&,&-&.&/&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&YZ[Z\Z]Z^Z_Z`ZaZbZcZcZdZeZfZgZhijklmnopqrstuvwxyz{|u}~      !"#$$%%&'N()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ["\]^_`ab]cdef\ghijklmnopqrstuvwx&yz{|}~  !                                                                                                                                                ! " # $ % & ' ( ) * + , - . /001234556789:;<=>?@AABCCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrrsttuvwxyzz{{|}~ dtz{d     & !"#$#twee-lib-2.2-6B2bSsHeKus58SWQGrgiqE Twee.Pretty Twee.Label Twee.Task Twee.Term Twee.UtilsTwee.PassiveQueueTwee.Constraints Twee.BaseTwee.KBO Twee.Index Twee.Equation Twee.Proof Twee.RuleTwee.Rule.IndexTwee.CP Twee.JoinTweeData.ChurchListData.DynamicArray Data.HeapTwee.Term.Coreunpack overlap_posScoreCPRulesplitpretty-1.1.3.6Text.PrettyPrint.HughesPJClass prettyParen prettyShow prettyNormal PrettyLevel pPrintListpPrint pPrintPrecPrettyText.PrettyPrint.HughesPJ fullRender renderStylerenderfirstfsepfcatcatsep<+>$+$$$ punctuatehangnestvcathsephcat reduceDocmaybeDoubleQuotes maybeQuotes maybeBraces maybeBrackets maybeParensbracesbracketsparens doubleQuotesquotesrationaldoublefloatintegerintrbracelbracerbracklbrackrparenlparenequalsspacecoloncommasemiisEmpty zeroWidthText sizedTextptexttextcharDoc#Text.PrettyPrint.Annotated.HughesPJstylePStrStrChr TextDetailsribbonsPerLine lineLengthmodeStyle OneLineModeLeftMode ZigZagModePageModeModeLabellabelNum unsafeMkLabellabelfind $fEqLabel $fOrdLabel $fShowLabelTasknewTask checkTaskBuilderVarVvar_idFunfun_idTermTermListApp UnsafeConsSymConsSym UnsafeConsConsEmptyatlenListfun fun_value singletonisSubtermOfList TriangleSubstTriangle unTriangleSubstunSubst SubstitutionSubstFun evalSubst substListBuildBuildFunbuilderFbuild buildListconappvar substToList foldSubstallSubst substDomainsubst substSize lookupList extendListretractunsafeExtendList substComposesubstCompatible substUnion idempotent idempotentOnclose canonicalise emptySubst listToSubstmatchmatchIn matchList matchListInunify unifyListunifyTri unifyListTriunifyListTriFromemptychildrenlookupextendlenbound boundList boundListsoccurs subtermsListsubtermsproperSubtermsisAppisVar isInstanceOf isVariantOf isSubtermOfmapFun mapFunListreplacePositionreplacePositionSubpositionToPathpathToPosition<<$fShowTermList $fShowTerm $fBuild[]$fBuildTermList $fBuildTerm$fBuildBuilder$fSubstitution-> $fShowSubst$fSubstitutionSubst$fSubstitutionTriangleSubst $fEqSubst$fShowTriangleSubst TermStyle pPrintTerm PrettyTerm termStyle prettyPrint<#> pPrintEmpty pPrintTuple pPrintSetsupply invisiblecurried uncurried fixedArityimplicitArgumentsprefixpostfix infixStyle tupleStyle $fPrettyFun $fPrettyRatio $fPrettyMap $fPrettyVar $fPrettySet $fPrettyDoc $fPrettySubst$fPrettyTermList $fPrettyTerm$fPrettyTermFunrepeatM partitionBycollateisSorted isSortedByusortusortBysortBy'usortBy'orElse unbufferedlabelMfixpointintMinintMax splitIntervalPassive passive_score passive_rule1 passive_rule2 passive_posQueueParamsId PackedScorePackedId packScore unpackScorepackIdunpackIdinsert removeMinmapMaybe $fOrdPassive $fEqPassive$fOrdPassiveSet$fEqPassiveSet StrictnessStrict NonstrictOrderedlessEqlessInMinimalminimalModelBranchfunslessFormulaLessLessEqAndOrAtomConstantVariableatomstoTermfromTerm negateFormulaconjdisj&&&|||truefalse trueBranchnorm contradictoryformAndbranchesaddLess addEqualsaddTermmodelToLiteralsmodelFromOrder weakenModel varInModel varGroups lessEqInModelsolvelessThan orientTerms $fPrettyAtom$fPrettyFormula$fPrettyBranch $fPrettyModel $fShowAtom$fEqAtom $fOrdAtom $fEqFormula $fOrdFormula $fShowFormula $fEqBranch $fOrdBranch $fEqModel $fShowModel$fEqStrictness$fShowStrictnessExtendedSkolemFunction EqualsBonushasEqualsBonusisEqualsisTrueisFalseSizedsizeArityarityskolem getSkolemHastheFunOf BuilderOfTriangleSubstOfSubstOf TermListOfTermOfSymbolic ConstantOftermsDLsubst_unIdtermsvarsisGroundoccoccVarrenameAvoiding isMinimal minimalTermerase $fPrettyId$fSymbolicMaybe $fSymbolic[]$fSymbolic(,,) $fSymbolic(,)$fSymbolicSubst$fSymbolicTermList$fSymbolicTerm$fHasaa $fArityFun $fSizedTerm$fSizedTermList $fSizedFun$fEqualsBonusFun$fEqualsBonusExtended$fSkolemExtended$fMinimalExtended$fArityExtended$fSizedExtended$fPrettyTermExtended$fPrettyExtended$fEqId$fOrdId$fShowId$fEnumId $fBoundedId$fNumId$fRealId $fIntegralId $fEqExtended $fOrdExtended$fShowExtended$fFunctorExtendedIndexnulldeletematches approxMatcheselems$fDefaultIndex $fShowIndex EquationOfEquation:=:eqn_lhseqn_rhsorder bothSidestrivial simplerThan$fSizedEquation$fPrettyEquation$fSymbolicEquation $fEqEquation $fOrdEquation$fShowEquation ProvedGoal pg_numberpg_namepg_proof pg_goal_hintpg_witness_hint Presentation pres_axioms pres_lemmas pres_goalsConfigcfg_all_lemmas cfg_no_lemmascfg_show_instancesAxiom axiom_number axiom_name axiom_eqn DerivationUseLemmaUseAxiomReflSymmTransCongProofequation derivationcertifysimplifylemmaaxiomsymmtranscong usedLemmasusedLemmasAndSubsts usedAxiomsusedAxiomsAndSubstscongPath defaultConfig provedGoalcheckProvedGoalpresentpPrintPresentationdescribeEquation $fPrettyAxiom$fPrettyDerivation $fPrettyProof$fSymbolicDerivation $fOrdProof $fEqProof$fPrettyPresentation $fEqAxiom $fOrdAxiom $fShowAxiom$fEqDerivation$fShowDerivation $fShowProof$fShowProvedGoal$fShowPresentation Resultingresult reduction ReductionStepStrategy OrientationOrientedWeaklyOriented Permutative UnorientedRuleOf orientationlhsrhsorientedweaklyOrientedunorientorient backwards simplify1 canSimplifycanSimplifyList simpleRewritestepsreductionProofstepreduce normaliseWith normalForms successorssuccessorsAndNormalFormsanywherenestedparallelrewritetryRule reducesWithreducesreducesOrientedreducesInModel reducesSkolem$fSymbolicOrientation$fOrdOrientation$fEqOrientation $fPrettyRule $fHasRuleTerm$fSymbolicRule$fPrettyReduction$fSymbolicReduction$fPrettyResulting$fSymbolicResulting$fOrdResulting $fEqResulting$fShowOrientation$fEqRule $fOrdRule $fShowRule$fShowReduction$fShowResulting RuleIndexindex_oriented index_weak index_all$fShowRuleIndex CriticalPaircp_eqncp_depthcp_topcp_proof cfg_lhsweight cfg_rhsweight cfg_funweight cfg_varweightcfg_depthweight cfg_dupcost cfg_dupfactorDepth OverlapOfOverlap overlap_depth overlap_top overlap_inner overlap_eqn PositionsOf PositionsNilPConsP positionspositionsChurchoverlapsoverlapsChurchasymmetricOverlaps overlapAtsimplifyOverlapbuildReplacePositionSub termSubstscoremakeCriticalPair overlapProof$fShowPositions$fPrettyCriticalPair$fSymbolicCriticalPair $fEqDepth $fOrdDepth $fNumDepth $fRealDepth $fEnumDepth$fIntegralDepth $fShowDepth $fShowOverlapcfg_ground_joincfg_use_connectedness cfg_set_joinjoinCriticalPairallStepsstep1step2step3joinWithsubsumed groundJoingroundJoinFromgroundJoinFromMaybevalidoptimiseOutputoutput_messageGoal goal_name goal_numbergoal_eqngoal_lhsgoal_rhsRuleId ActiveRule rule_activerule_rid rule_depth rule_rule rule_proofrule_positionsActive active_id active_depth active_rule active_top active_proof active_model active_rulesMessage NewActive NewEquation DeleteActive SimplifyQueue InterreduceStatest_rules st_active_ids st_rule_ids st_joinablest_goalsst_queuest_next_active st_next_rule st_consideredst_messages_revcfg_accept_termcfg_max_critical_pairscfg_max_cp_depth cfg_simplifycfg_renormalise_percentcfg_critical_pairscfg_joincfg_proof_presentationconfigIsComplete initialStatemessage clearMessagesmessages makePassives findPassivesimplifyPassive simplifyQueueenqueuedequeue active_cp addActive addActiveOnly deleteActiveconsider considerUsingaddCPaddAxiom addJoinableaddGoalnormaliseGoalsrecomputeGoalsgoal interreduce interreduce1complete complete1solved solutionsrules completePure normaliseTerm simplifyTerm$fParamsParams$fHasActiveRulePositions$fHasActiveRuleProof$fHasActiveRuleRule$fHasActiveRuleDepth$fHasActiveRuleRuleId$fHasActiveRuleId$fEqActiveRule$fSymbolicActiveRule$fPrettyActive $fEqActive$fPrettyMessage $fEqRuleId $fOrdRuleId $fShowRuleId $fNumRuleId $fRealRuleId$fIntegralRuleId $fEnumRuleId ChurchListfoldretanilunitconsappendjoinfromListtoListfoldl'filter fromMaybeArray arraySize arrayContentsDefaultdefnewArray!updateHeapunionbase GHC.MaybeNothingGHC.Basememptymappend occursListBuilder1 unBuildertermlistroothighlowarraySymbolisFunindextoSymbol fromSymbol unsafePatHeadpatHeadpatTerm eqTermList weqTermListcompareContents buildTermList getByteArraygetSizegetIndexputIndexliftSTbuiltthen_checkedemitSymbolBuilderemitAppemitVar emitTermList isSubArrayOfsymbolOccursList<>&vector-0.12.1.2-FWeXzqARiSu45G657SieqkData.Vector.Unboxed.BaseVectorUnboxghc-prim GHC.TypesTrueJustLT#dlist-0.8.0.7-62vR0IWGKydvDRbWJTrKt Data.DListDList