!dy=      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<Safe_ " !#$% " !#$%Safe2% 4tpdb all positions5tpdbnon-variable positions6tpdbvariable positions7tpdb"leaf positions (= nullary symbols)<tpdb3compute new symbol at position, giving the position=tpdbjcompute new symbol from *reverse* position and previous symbol this is more efficient (no reverse needed)@tpdbwarning: don't check arityCtpdb in preorder Htpdb:list of variables (each occurs once, unspecified ordering)Itpdb1list of variables (in pre-order, with duplicates),-/.0123456789:;<=>?@ABCDEFGHI-/.0,123456789:;<=>?@ABCDEFGHISafe(]]tpdbWARNING: there is instance Pretty a => Pretty (Maybe a) in the back-end but its spec is "Ignore Nothings, print Just contents"" NOPQRSTUVWXYZ[\#WZYX[UVTSQR  N\PO Safe*jtpdb3value is meaningless if the system has no variables_`jihgfedcbaklmn_`jihgfedcbaklmnSafe 2=>?@AHV/wrtpdblegacy stuff (used in matchbox)ztpdbthis is modelled after +https://www.lri.fr/~marche/tpdb/format.html{tpdbexample: "(AC plus)"tpdb"better keep order in signature (?)tpdb"if True, write comma between rulestpdbaccording to XTC spech! "#$%,-./0123456789:;<=>?@ABCDEFGHIqrstuvxwyz{|}~=qrstuvxwyz{|}~Safe>2Y Safe=?X5tpdbpthis is super-ugly: a parenthesized, possibly nested, possibly comma-separated, list of identifiers or stringstpdb6warning: by definition, {}[] may appear in identifiers Safe8[=tpdbview variables as symbolstpdb)will only bind variables in the left sidetpdb-naive implementation (worst case exponential) Safe:tpdbMsuccess iff term consists of unary symbols and the lowest node is a variable Safe;[tpdb1if input is SRS, reverse lhs and rhs of each rule Safe7?@ABCDEFGHIqrstuvxwyz{|}~  None=?XQ  None=>?R"tpdbFIXME: move to separate moduleNone12EXXctpdbYit seems the degree must always be given in CPF, although the category spec also allows POLY Ehttp://cl-informatik.uibk.ac.at/users/georg/cbr/competition/rules.phptpdbthis is actually not true, since instead of copying from XTC, CPF format repeats the definition of TRS, and it's a different one (relative rules are extra)r#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKMLNOPQRSTWUVXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ظ#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKMLNOPQRSTWUVXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~rNone 2=>?X^None_^()()NoneX_cS*tpdb[dangerous: not all constructor arguments will be set. the function produces something likeCertificationProblem { input = CertificationProblemInput , proof = TrsTerminationProof undefined } *+,-./0123456789:;<*+,-./0123456789:;<Noned!*+,-./0123456789:;<> !"#$%&$%'$%($%)$%*$+,$+-$+.$+/$+0$+1$+2$+3$+4$+5$+6$+789:8;<8;=8;>8?@AABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~U                                      !"#$%&'()*++,-./0123456789:;<=>?@AABCDEEFGHIIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghid\jjklmnopqrstuvwwxyz{|}~?      !"#$%&'<()*+,-./0123456789:;<=>?@A BC!tpdb-2.2.0-9ZO1OoOeDl7GqI9abtLeDW TPDB.PrettyTPDB.XTC.WriteTPDB.XmlTPDB.Data.RuleTPDB.Data.TermTPDB.Data.Attributes TPDB.DataTPDB.Plain.WriteTPDB.Plain.Read TPDB.DP.Unify TPDB.Convert TPDB.MirrorTPDB.DP.Transform TPDB.DP.TCapTPDB.DP.Usable TPDB.DP.Graph TPDB.XTC.ReadTPDB.Input.MemoryTPDB.Input.File TPDB.Data.XmlTPDB.CPF.Proof.TypeTPDB.CPF.Proof.WriteTPDB.CPF.Proof.UtilTPDB.CPF.Proof.ReadTPDB.DP TPDB.InputTPDB.XTCTPDB.CPF.Proof.XmlbaseGHC.Base<>mempty1data-default-class-0.1.2.0-FeIQ5tLoVZBHMSgrT9zptQData.Default.Classdef*prettyprinter-1.3.0-6qg3eRt5h66FauUzehlm4q'Data.Text.Prettyprint.Doc.Symbols.Asciicommabracesbracketsanglesparens"Data.Text.Prettyprint.Doc.Internalenclose punctuatetupledlist encloseSepindenthangnestDoc prettyListprettyPretty*xml-conduit-1.8.0.1-Fu1XEwmgJdL8opovVbJOfoText.XML.CursorcontentText.XML renderText renderLBS writeFileText.XML.Cursor.Generic&|RulelhsrhsrelationtopRelationStrictWeakEqualstrictweakequal $fFunctorRule $fEqRelation $fOrdRelation$fShowRelation$fEqRule $fOrdRulePositionTermVarNodevmap positionssizedepthpossymposvarposleafpossubtermsstrict_subterms isSubtermOfisStrictSubtermOfpmaprpmappeek peek_symbol poke_symbolpokepokessymslsymslsymsvarsisvarlvarsvoccs $fFunctorTerm$fEqTerm $fOrdTerm $fShowTermempty$$<+>vcathcatvsephsepfsepseprender renderPretty renderCompact renderWide displayIOtext$fPrettyEither $fPretty(,,,) Attributessize_of_signature max_aritytotal_term_size max_term_sizemax_term_depth left_linear right_linearlinear max_var_count max_var_depthcompute_attributes safe_maximumvarcount varcount_term$fPrettyAttributes$fShowAttributesSESTES StarttermStartterm_Constructor_basedStartterm_FullTheoryACAC TheorydeclProperty EquationsStrategyFull Innermost OutermostType Termination ComplexityProblemtype_trsstrategyfull_signature startterm attributesSRSTRSRS signaturerulesseparateReplacementmap SignatureHigherOrderSignatureFuncsymfs_namefs_arity fs_theoryfs_replacementmap Variables variables Identifier_identifier_hashnamearitymk strict_rules weak_rules equal_rules mknullarymkunaryfrom_strict_rules with_rules$fShowIdentifier$fHashableIdentifier$fVariablesRule $fVariables[]$fVariablesTerm $fFunctorRS$fEqRS $fVariablesRS$fVariablesRS0$fEqIdentifier$fOrdIdentifier$fShowReplacementmap $fShowType$fShowStrategy $fEqTheory $fOrdTheory $fReadTheory $fShowTheory $fShowFuncsym$fShowSignature$fShowStartterm PrettyTerm prettyTerm$fPrettyProblem $fPrettyTerm$fPrettyIdentifier $fPrettyRS$fPrettyTermTerm$fPrettyTerm[] $fPrettyRule DeclarationVar_DeclarationTheory_DeclarationStrategy_DeclarationRules_DeclarationUnknown_DeclarationReaderreadersrslexer declarationanylistrepair_signature_srsmake_srsrepair_signature_trsmake_trsrepair_variables $fReaderRS $fReaderRS0 $fReaderRule $fReaderTerm $fReader[]$fReaderIdentifierunifiesmatchmgutimesapplysrs2trs set_arityconvert_srs_ruletrs2srsconvert_trs_ruleunspinespinemirrorMarkedOriginal Auxiliary isOriginalisMarkedmark_topdefineddp$fPrettyMarked$fHashableMarked $fShowMarked $fEqMarked $fOrdMarked$fGenericMarkedtcap fresh_varwalkrestrictusablefixpointrequiredneeded componentsedgeschecksys readProblemF readProblemTgetgetEget_trsgetE_trsget_srsdocument XmlContent toContents parseContentsmkelrmkel nospaceStringescape$fXmlContentBool$fXmlContentInteger$fXmlContentIntno_sharp_name_HACK$fXmlContentRule$fXmlContentTerm$fXmlContentIdentifierACTerminationProofACTerminationProofFIXMEArgumentFilterEntry afeSymbolafeArity afeFilterPrecedenceEntrypeSymbolpeArity pePrecedence PathOrderToExotictoExoticExoticMinus_Infinite E_Integer E_Rational Plus_Infinite CoefficientVectorMatrixCoefficient_CoefficientLabel LblNumber LblSymbolSymbolSymNameSymSharpSymLabel ArithFunction AFNatural AFVariableAFSum AFProductAFMinAFMax AFIfEqual PolynomialSumProductPolynomial_CoefficientPolynomial_VariableValue InterpretsymbolvalueDomainNaturals RationalsArcticTropicalInterpretation_TypeMatrix_Interpretationdomain dimensionstrictDimensionInterpretationinterpretation_type interpretsRedPairRPInterpretation RPPathOrderOrderingConstraintProof OCPRedPairDepGraphComponent dgcRealSccdgcDps dgcDpProofDpProofPIsEmpty RedPairProc DepGraphProc SemLabProc UnlabProcrppOrderingConstraintProofrppDpsrppUsableRules rppDpProofslpModelslpDpsslpTrs slpDpProofulpDpsulpTrs ulpDpProofModel FiniteModelTransition_LhsTransition_SymbolTransition_Epsilon tr_symbol tr_height tr_arguments Transitiontransition_lhstransition_rhsState TreeAutomatonta_finalStatesta_transitions Criterion CompatibilityClosedTreeAutomatoncta_treeAutomaton cta_criterion Bounds_TypeRoofMatchTrsTerminationProofRIsEmpty RuleRemovalDpTransSemlabUnlabStringReversalBoundsrr_orderingConstraintProoftrsTerminationProof dptrans_dps markedSymbolsdptrans_dpProofmodel bounds_type bounds_boundbounds_finalStatesbounds_closedTreeAutomatonTrsNonterminationProofTrsNonterminationProofFIXMEComplexityClassComplexityClassPolynomialdegreeComplexityMeasureDerivationalComplexityRuntimeComplexityComplexityProofComplexityProofFIXMEDPSProofRelativeTerminationProofRelativeNonterminationProofCertificationProblemInputTrsInputComplexityInputACRewriteSystem trsinput_trscomplexityMeasurecomplexityClassasymbolscsymbolsToolversionOrigin ProofOrigintoolCertificationProbleminput cpfVersionprooforigin ignoredOrigin$fEqDPS!$fPrettyCertificationProblemInput$fEqCoefficient$fEqTool $fEqOrigin$fEqComplexityProof$fEqComplexityMeasure$fShowComplexityMeasure$fEqComplexityClass$fShowComplexityClass$fEqCertificationProblemInput$fEqTrsNonterminationProof$fEqBounds_Type $fEqCriterion $fEqState $fEqDomain$fEqInterpretation_Type$fEqArithFunction $fEqLabel $fEqSymbol$fEqTransition_Lhs$fEqTransition$fEqTreeAutomaton$fEqClosedTreeAutomaton$fEqPolynomial $fEqValue $fEqInterpret$fEqInterpretation $fEqModel $fEqExotic$fEqPrecedenceEntry$fEqArgumentFilterEntry $fEqPathOrder $fEqRedPair$fEqOrderingConstraintProof $fEqDpProof$fEqDepGraphComponent$fEqTrsTerminationProof$fEqACTerminationProof $fEqProof$fEqCertificationProblemtox symbolize$fXmlContentArgumentFilterEntry$fXmlContentPrecedenceEntry$fXmlContentPathOrder$fXmlContentLabel$fXmlContentSymbol$fXmlContentExotic$fXmlContentCoefficient$fXmlContentArithFunction$fXmlContentPolynomial$fXmlContentValue$fXmlContentInterpret$fXmlContentRatio$fXmlContentDomain$fXmlContentInterpretation_Type$fXmlContentInterpretation$fXmlContentRedPair#$fXmlContentOrderingConstraintProof$fXmlContentDepGraphComponent$fXmlContentDpProof$fXmlContentModel$fXmlContentTransition_Lhs$fXmlContentTransition$fXmlContentTreeAutomaton$fXmlContentCriterion$fXmlContentClosedTreeAutomaton$fXmlContentState$fXmlContentBounds_Type$fXmlContentTrsTerminationProof$fXmlContentDPS$fXmlContentProof$fXmlContentRS%$fXmlContentCertificationProblemInput$fXmlContentTool$fXmlContentOrigin $fXmlContentCertificationProblemfromMarkedIdentifier sortVariablesreadCPreadFileelement1fromDocgetInputgetTerminationInputgetACTerminationInput getSymbolgetComplexityInputgetComplexityMeasuregetComplexityClass getTrsInput getRulesWithgetRulegetProofgetDummygetTermgetVar getFunApppack