/export/starexec/sandbox/solver/bin/starexec_run_standard /export/starexec/sandbox/benchmark/theBenchmark.pl /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox/benchmark/theBenchmark.pl # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Left Termination of the query pattern extend(g,a) w.r.t. the given Prolog program could successfully be proven: (0) Prolog (1) PrologToIRSwTTransformerProof [SOUND, 39 ms] (2) AND (3) IRSwT (4) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (5) TRUE (6) IRSwT (7) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (8) TRUE (9) IRSwT (10) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (11) IRSwT (12) IntTRSCompressionProof [EQUIVALENT, 22 ms] (13) IRSwT (14) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (15) IRSwT (16) IRSwTTerminationDigraphProof [EQUIVALENT, 6 ms] (17) IRSwT (18) IntTRSUnneededArgumentFilterProof [EQUIVALENT, 0 ms] (19) IRSwT (20) TempFilterProof [SOUND, 1 ms] (21) IRSwT (22) IRSwTToQDPProof [SOUND, 0 ms] (23) QDP (24) QDPSizeChangeProof [EQUIVALENT, 0 ms] (25) YES ---------------------------------------- (0) Obligation: Clauses: extend(In, Out) :- ','(min(In, Min), ','(max(In, Max), range(Min, Max, Out))). range(Low, High, []) :- >(Low, High). range(Low, High, Result) :- ','(=<(Low, High), ','(range(+(Low, 1), High, RecursiveResult), ','(is(Temp, Low), =(Result, .(Temp, RecursiveResult))))). min(.(X, []), X). min(.(X, Xs), X) :- ','(min(Xs, Y), =<(X, Y)). min(.(X, Xs), Y) :- ','(min(Xs, Y), >(X, Y)). max(.(X, []), X). max(.(X, Xs), X) :- ','(max(Xs, Y), >=(X, Y)). max(.(X, Xs), Y) :- ','(max(Xs, Y), <(X, Y)). Query: extend(g,a) ---------------------------------------- (1) PrologToIRSwTTransformerProof (SOUND) Transformed Prolog program to IRSwT according to method in Master Thesis of A. Weinert { "root": 4, "program": { "directives": [], "clauses": [ [ "(extend In Out)", "(',' (min In Min) (',' (max In Max) (range Min Max Out)))" ], [ "(range Low High ([]))", "(> Low High)" ], [ "(range Low High Result)", "(',' (=< Low High) (',' (range (+ Low (1)) High RecursiveResult) (',' (is Temp Low) (= Result (. Temp RecursiveResult)))))" ], [ "(min (. X ([])) X)", null ], [ "(min (. X Xs) X)", "(',' (min Xs Y) (=< X Y))" ], [ "(min (. X Xs) Y)", "(',' (min Xs Y) (> X Y))" ], [ "(max (. X ([])) X)", null ], [ "(max (. X Xs) X)", "(',' (max Xs Y) (>= X Y))" ], [ "(max (. X Xs) Y)", "(',' (max Xs Y) (< X Y))" ] ] }, "graph": { "nodes": { "3082": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T67", "type": "PlainIntegerVariable" }, "operation": "<=" }] }, "ground": [ "T67", "T71" ], "free": [], "exprvars": [ "T67", "T71" ] } }, "2991": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T31", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T35", "type": "PlainIntegerVariable" }, "operation": "<=" }] }, "ground": [ "T31", "T35" ], "free": [], "exprvars": [ "T31", "T35" ] } }, "3089": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3088": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (max T79 X92) (< T78 X92))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T78", "T79" ], "free": ["X92"], "exprvars": [] } }, "3121": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3120": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (=< T104 T105) (',' (range (+ T104 (1)) T105 X120) (',' (is X121 T104) (= T107 (. X121 X120)))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T104", "T105" ], "free": [ "X120", "X121" ], "exprvars": [] } }, "type": "Nodes", "3163": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3162": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T113", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T104", "type": "PlainIntegerVariable" }, "operation": "=" }] }, "ground": [], "free": [], "exprvars": [ "T104", "T113" ] } }, "3084": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T67", "type": "PlainIntegerVariable" }, "operation": "<=" }] }, "ground": [], "free": [], "exprvars": [ "T67", "T71" ] } }, "3161": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3083": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T67", "type": "PlainIntegerVariable" }, "operation": ">" }] }, "ground": [ "T67", "T71" ], "free": [], "exprvars": [ "T67", "T71" ] } }, "3160": { "goal": [{ "clause": -1, "scope": -1, "term": "(= T107 (. T113 T110))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T113", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T104", "type": "PlainIntegerVariable" }, "operation": "=" }] }, "ground": [ "T104", "T110", "T113" ], "free": ["X121"], "exprvars": [ "T104", "T113" ] } }, "3119": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T96", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T95", "type": "PlainIntegerVariable" }, "operation": "<" }] }, "ground": [], "free": [], "exprvars": [ "T96", "T95" ] } }, "3118": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T96", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T95", "type": "PlainIntegerVariable" }, "operation": ">=" }] }, "ground": [ "T96", "T95" ], "free": [], "exprvars": [ "T96", "T95" ] } }, "3117": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T96", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T95", "type": "PlainIntegerVariable" }, "operation": "<" }] }, "ground": [ "T96", "T95" ], "free": [], "exprvars": [ "T96", "T95" ] } }, "3159": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "11": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (min T10 X11) (',' (max T10 X12) (range X11 X12 T12)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T10"], "free": [ "X11", "X12" ], "exprvars": [] } }, "15": { "goal": [{ "clause": -1, "scope": -1, "term": "(min T10 X11)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T10"], "free": ["X11"], "exprvars": [] } }, "17": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (max T10 X12) (range T15 X12 T12))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T10", "T15" ], "free": ["X12"], "exprvars": [] } }, "3013": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3057": { "goal": [{ "clause": 6, "scope": 3, "term": "(max T10 X12)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T10"], "free": ["X12"], "exprvars": [] } }, "3012": { "goal": [{ "clause": -1, "scope": -1, "term": "(> T42 T46)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T42", "T46" ], "free": [], "exprvars": [] } }, "3056": { "goal": [ { "clause": 6, "scope": 3, "term": "(max T10 X12)" }, { "clause": 7, "scope": 3, "term": "(max T10 X12)" }, { "clause": 8, "scope": 3, "term": "(max T10 X12)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T10"], "free": ["X12"], "exprvars": [] } }, "3011": { "goal": [{ "clause": -1, "scope": -1, "term": "(min T43 X50)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T43"], "free": ["X50"], "exprvars": [] } }, "3055": { "goal": [{ "clause": -1, "scope": -1, "term": "(range T15 T51 T12)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T15", "T51" ], "free": [], "exprvars": [] } }, "3010": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3054": { "goal": [{ "clause": -1, "scope": -1, "term": "(max T10 X12)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T10"], "free": ["X12"], "exprvars": [] } }, "3098": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3053": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T46", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T42", "type": "PlainIntegerVariable" }, "operation": "<" }] }, "ground": [], "free": [], "exprvars": [ "T42", "T46" ] } }, "3097": { "goal": [{ "clause": -1, "scope": -1, "term": "(< T78 T82)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T78", "T82" ], "free": [], "exprvars": [] } }, "3052": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T46", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T42", "type": "PlainIntegerVariable" }, "operation": ">=" }] }, "ground": [ "T42", "T46" ], "free": [], "exprvars": [ "T42", "T46" ] } }, "3096": { "goal": [{ "clause": -1, "scope": -1, "term": "(max T79 X92)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T79"], "free": ["X92"], "exprvars": [] } }, "3051": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T46", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T42", "type": "PlainIntegerVariable" }, "operation": "<" }] }, "ground": [ "T42", "T46" ], "free": [], "exprvars": [ "T42", "T46" ] } }, "3009": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (min T43 X50) (> T42 X50))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T42", "T43" ], "free": ["X50"], "exprvars": [] } }, "3129": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X121 T104) (= T107 (. X121 T110)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T104", "T110" ], "free": ["X121"], "exprvars": [] } }, "3128": { "goal": [{ "clause": -1, "scope": -1, "term": "(range (+ T104 (1)) T105 X120)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T104", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T105", "type": "PlainIntegerVariable" }, "operation": "<=" }] }, "ground": [ "T104", "T105" ], "free": ["X120"], "exprvars": [ "T104", "T105" ] } }, "4": { "goal": [{ "clause": -1, "scope": -1, "term": "(extend T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "125": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3127": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T104", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T105", "type": "PlainIntegerVariable" }, "operation": ">" }] }, "ground": [ "T104", "T105" ], "free": [ "X120", "X121" ], "exprvars": [ "T104", "T105" ] } }, "5": { "goal": [{ "clause": 0, "scope": 1, "term": "(extend T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "2994": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T31", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T35", "type": "PlainIntegerVariable" }, "operation": "<=" }] }, "ground": [], "free": [], "exprvars": [ "T31", "T35" ] } }, "3126": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (range (+ T104 (1)) T105 X120) (',' (is X121 T104) (= T107 (. X121 X120))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T104", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T105", "type": "PlainIntegerVariable" }, "operation": "<=" }] }, "ground": [ "T104", "T105" ], "free": [ "X120", "X121" ], "exprvars": [ "T104", "T105" ] } }, "2993": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T31", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T35", "type": "PlainIntegerVariable" }, "operation": ">" }] }, "ground": [ "T31", "T35" ], "free": [], "exprvars": [ "T31", "T35" ] } }, "3060": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "23": { "goal": [ { "clause": 3, "scope": 2, "term": "(min T10 X11)" }, { "clause": 4, "scope": 2, "term": "(min T10 X11)" }, { "clause": 5, "scope": 2, "term": "(min T10 X11)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T10"], "free": ["X11"], "exprvars": [] } }, "24": { "goal": [{ "clause": 3, "scope": 2, "term": "(min T10 X11)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T10"], "free": ["X11"], "exprvars": [] } }, "25": { "goal": [ { "clause": 4, "scope": 2, "term": "(min T10 X11)" }, { "clause": 5, "scope": 2, "term": "(min T10 X11)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T10"], "free": ["X11"], "exprvars": [] } }, "69": { "goal": [{ "clause": -1, "scope": -1, "term": "(min T32 X34)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T32"], "free": ["X34"], "exprvars": [] } }, "28": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "29": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3101": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T78", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T82", "type": "PlainIntegerVariable" }, "operation": "<" }] }, "ground": [ "T78", "T82" ], "free": [], "exprvars": [ "T78", "T82" ] } }, "3067": { "goal": [{ "clause": -1, "scope": -1, "term": "(>= T67 T71)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T67", "T71" ], "free": [], "exprvars": [] } }, "3066": { "goal": [{ "clause": -1, "scope": -1, "term": "(max T68 X76)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T68"], "free": ["X76"], "exprvars": [] } }, "3065": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3064": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (max T68 X76) (>= T67 X76))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T67", "T68" ], "free": ["X76"], "exprvars": [] } }, "3063": { "goal": [{ "clause": 8, "scope": 3, "term": "(max T10 X12)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T10"], "free": ["X12"], "exprvars": [] } }, "3062": { "goal": [{ "clause": 7, "scope": 3, "term": "(max T10 X12)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T10"], "free": ["X12"], "exprvars": [] } }, "3061": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3059": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3058": { "goal": [ { "clause": 7, "scope": 3, "term": "(max T10 X12)" }, { "clause": 8, "scope": 3, "term": "(max T10 X12)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T10"], "free": ["X12"], "exprvars": [] } }, "71": { "goal": [{ "clause": -1, "scope": -1, "term": "(=< T31 T35)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T31", "T35" ], "free": [], "exprvars": [] } }, "30": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "31": { "goal": [{ "clause": 4, "scope": 2, "term": "(min T10 X11)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T10"], "free": ["X11"], "exprvars": [] } }, "32": { "goal": [{ "clause": 5, "scope": 2, "term": "(min T10 X11)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T10"], "free": ["X11"], "exprvars": [] } }, "33": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (min T32 X34) (=< T31 X34))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T31", "T32" ], "free": ["X34"], "exprvars": [] } }, "3071": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "34": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3111": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3110": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3109": { "goal": [{ "clause": -1, "scope": -1, "term": "(> T95 T96)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T95", "T96" ], "free": [], "exprvars": [] } }, "3108": { "goal": [{ "clause": 2, "scope": 4, "term": "(range T15 T51 T12)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T15", "T51" ], "free": [], "exprvars": [] } }, "3107": { "goal": [{ "clause": 1, "scope": 4, "term": "(range T15 T51 T12)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T15", "T51" ], "free": [], "exprvars": [] } }, "3106": { "goal": [ { "clause": 1, "scope": 4, "term": "(range T15 T51 T12)" }, { "clause": 2, "scope": 4, "term": "(range T15 T51 T12)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T15", "T51" ], "free": [], "exprvars": [] } }, "3103": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T78", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T82", "type": "PlainIntegerVariable" }, "operation": "<" }] }, "ground": [], "free": [], "exprvars": [ "T78", "T82" ] } }, "3102": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T78", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T82", "type": "PlainIntegerVariable" }, "operation": ">=" }] }, "ground": [ "T78", "T82" ], "free": [], "exprvars": [ "T78", "T82" ] } } }, "edges": [ { "from": 4, "to": 5, "label": "CASE" }, { "from": 5, "to": 11, "label": "ONLY EVAL with clause\nextend(X9, X10) :- ','(min(X9, X11), ','(max(X9, X12), range(X11, X12, X10))).\nand substitutionT1 -> T10,\nX9 -> T10,\nT2 -> T12,\nX10 -> T12,\nT11 -> T12" }, { "from": 11, "to": 15, "label": "SPLIT 1" }, { "from": 11, "to": 17, "label": "SPLIT 2\nnew knowledge:\nT10 is ground\nT15 is ground\nreplacements:X11 -> T15" }, { "from": 15, "to": 23, "label": "CASE" }, { "from": 17, "to": 3054, "label": "SPLIT 1" }, { "from": 17, "to": 3055, "label": "SPLIT 2\nnew knowledge:\nT10 is ground\nT51 is ground\nreplacements:X12 -> T51" }, { "from": 23, "to": 24, "label": "PARALLEL" }, { "from": 23, "to": 25, "label": "PARALLEL" }, { "from": 24, "to": 28, "label": "EVAL with clause\nmin(.(X21, []), X21).\nand substitutionX21 -> T22,\nT10 -> .(T22, []),\nX11 -> T22" }, { "from": 24, "to": 29, "label": "EVAL-BACKTRACK" }, { "from": 25, "to": 31, "label": "PARALLEL" }, { "from": 25, "to": 32, "label": "PARALLEL" }, { "from": 28, "to": 30, "label": "SUCCESS" }, { "from": 31, "to": 33, "label": "EVAL with clause\nmin(.(X32, X33), X32) :- ','(min(X33, X34), =<(X32, X34)).\nand substitutionX32 -> T31,\nX33 -> T32,\nT10 -> .(T31, T32),\nX11 -> T31" }, { "from": 31, "to": 34, "label": "EVAL-BACKTRACK" }, { "from": 32, "to": 3009, "label": "EVAL with clause\nmin(.(X47, X48), X49) :- ','(min(X48, X49), >(X47, X49)).\nand substitutionX47 -> T42,\nX48 -> T43,\nT10 -> .(T42, T43),\nX11 -> X50,\nX49 -> X50" }, { "from": 32, "to": 3010, "label": "EVAL-BACKTRACK" }, { "from": 33, "to": 69, "label": "SPLIT 1" }, { "from": 33, "to": 71, "label": "SPLIT 2\nnew knowledge:\nT32 is ground\nT35 is ground\nreplacements:X34 -> T35" }, { "from": 69, "to": 15, "label": "INSTANCE with matching:\nT10 -> T32\nX11 -> X34" }, { "from": 71, "to": 125, "label": "IS ERROR" }, { "from": 71, "to": 2991, "label": "ARITHCOMP SUCCESS" }, { "from": 71, "to": 2993, "label": "ARITHCOMP FAIL" }, { "from": 2991, "to": 2994, "label": "SUCCESS" }, { "from": 3009, "to": 3011, "label": "SPLIT 1" }, { "from": 3009, "to": 3012, "label": "SPLIT 2\nnew knowledge:\nT43 is ground\nT46 is ground\nreplacements:X50 -> T46" }, { "from": 3011, "to": 15, "label": "INSTANCE with matching:\nT10 -> T43\nX11 -> X50" }, { "from": 3012, "to": 3013, "label": "IS ERROR" }, { "from": 3012, "to": 3051, "label": "ARITHCOMP SUCCESS" }, { "from": 3012, "to": 3052, "label": "ARITHCOMP FAIL" }, { "from": 3051, "to": 3053, "label": "SUCCESS" }, { "from": 3054, "to": 3056, "label": "CASE" }, { "from": 3055, "to": 3106, "label": "CASE" }, { "from": 3056, "to": 3057, "label": "PARALLEL" }, { "from": 3056, "to": 3058, "label": "PARALLEL" }, { "from": 3057, "to": 3059, "label": "EVAL with clause\nmax(.(X63, []), X63).\nand substitutionX63 -> T58,\nT10 -> .(T58, []),\nX12 -> T58" }, { "from": 3057, "to": 3060, "label": "EVAL-BACKTRACK" }, { "from": 3058, "to": 3062, "label": "PARALLEL" }, { "from": 3058, "to": 3063, "label": "PARALLEL" }, { "from": 3059, "to": 3061, "label": "SUCCESS" }, { "from": 3062, "to": 3064, "label": "EVAL with clause\nmax(.(X74, X75), X74) :- ','(max(X75, X76), >=(X74, X76)).\nand substitutionX74 -> T67,\nX75 -> T68,\nT10 -> .(T67, T68),\nX12 -> T67" }, { "from": 3062, "to": 3065, "label": "EVAL-BACKTRACK" }, { "from": 3063, "to": 3088, "label": "EVAL with clause\nmax(.(X89, X90), X91) :- ','(max(X90, X91), <(X89, X91)).\nand substitutionX89 -> T78,\nX90 -> T79,\nT10 -> .(T78, T79),\nX12 -> X92,\nX91 -> X92" }, { "from": 3063, "to": 3089, "label": "EVAL-BACKTRACK" }, { "from": 3064, "to": 3066, "label": "SPLIT 1" }, { "from": 3064, "to": 3067, "label": "SPLIT 2\nnew knowledge:\nT68 is ground\nT71 is ground\nreplacements:X76 -> T71" }, { "from": 3066, "to": 3054, "label": "INSTANCE with matching:\nT10 -> T68\nX12 -> X76" }, { "from": 3067, "to": 3071, "label": "IS ERROR" }, { "from": 3067, "to": 3082, "label": "ARITHCOMP SUCCESS" }, { "from": 3067, "to": 3083, "label": "ARITHCOMP FAIL" }, { "from": 3082, "to": 3084, "label": "SUCCESS" }, { "from": 3088, "to": 3096, "label": "SPLIT 1" }, { "from": 3088, "to": 3097, "label": "SPLIT 2\nnew knowledge:\nT79 is ground\nT82 is ground\nreplacements:X92 -> T82" }, { "from": 3096, "to": 3054, "label": "INSTANCE with matching:\nT10 -> T79\nX12 -> X92" }, { "from": 3097, "to": 3098, "label": "IS ERROR" }, { "from": 3097, "to": 3101, "label": "ARITHCOMP SUCCESS" }, { "from": 3097, "to": 3102, "label": "ARITHCOMP FAIL" }, { "from": 3101, "to": 3103, "label": "SUCCESS" }, { "from": 3106, "to": 3107, "label": "PARALLEL" }, { "from": 3106, "to": 3108, "label": "PARALLEL" }, { "from": 3107, "to": 3109, "label": "EVAL with clause\nrange(X107, X108, []) :- >(X107, X108).\nand substitutionT15 -> T95,\nX107 -> T95,\nT51 -> T96,\nX108 -> T96,\nT12 -> []" }, { "from": 3107, "to": 3110, "label": "EVAL-BACKTRACK" }, { "from": 3108, "to": 3120, "label": "ONLY EVAL with clause\nrange(X117, X118, X119) :- ','(=<(X117, X118), ','(range(+(X117, 1), X118, X120), ','(is(X121, X117), =(X119, .(X121, X120))))).\nand substitutionT15 -> T104,\nX117 -> T104,\nT51 -> T105,\nX118 -> T105,\nT12 -> T107,\nX119 -> T107,\nT106 -> T107" }, { "from": 3109, "to": 3111, "label": "IS ERROR" }, { "from": 3109, "to": 3117, "label": "ARITHCOMP SUCCESS" }, { "from": 3109, "to": 3118, "label": "ARITHCOMP FAIL" }, { "from": 3117, "to": 3119, "label": "SUCCESS" }, { "from": 3120, "to": 3121, "label": "IS ERROR" }, { "from": 3120, "to": 3126, "label": "ARITHCOMP SUCCESS" }, { "from": 3120, "to": 3127, "label": "ARITHCOMP FAIL" }, { "from": 3126, "to": 3128, "label": "SPLIT 1" }, { "from": 3126, "to": 3129, "label": "SPLIT 2\nnew knowledge:\nT104 is ground\nT105 is ground\nT110 is ground\nreplacements:X120 -> T110" }, { "from": 3128, "to": 3055, "label": "INSTANCE with matching:\nT15 -> +(T104, 1)\nT51 -> T105\nT12 -> X120" }, { "from": 3129, "to": 3159, "label": "IS ERROR" }, { "from": 3129, "to": 3160, "label": "\nX121 -> T113" }, { "from": 3160, "to": 3161, "label": "UNIFY CASE with substitutionT113 -> T116,\nT110 -> T117,\nT107 -> .(T116, T117)" }, { "from": 3160, "to": 3162, "label": "UNIFY-BACKTRACK" }, { "from": 3161, "to": 3163, "label": "SUCCESS" } ], "type": "Graph" } } ---------------------------------------- (2) Complex Obligation (AND) ---------------------------------------- (3) Obligation: Rules: f3126_in(T104, T105) -> f3128_in(T104, T105) :|: TRUE f3128_out(x, x1) -> f3129_in(x, x2) :|: TRUE f3129_out(x3, x4) -> f3126_out(x3, x5) :|: TRUE f3161_out -> f3160_out(x6, x7, x8) :|: TRUE f3162_out -> f3160_out(x9, x10, x11) :|: TRUE f3160_in(x12, x13, x14) -> f3161_in :|: TRUE f3160_in(x15, x16, x17) -> f3162_in :|: TRUE f3121_out -> f3120_out(x18, x19) :|: TRUE f3120_in(x20, x21) -> f3126_in(x20, x21) :|: x20 <= x21 f3126_out(x22, x23) -> f3120_out(x22, x23) :|: x22 <= x23 f3120_in(x24, x25) -> f3121_in :|: TRUE f3127_out(x26, x27) -> f3120_out(x26, x27) :|: x26 > x27 f3120_in(x28, x29) -> f3127_in(x28, x29) :|: x28 > x29 f3107_out(T15, T51) -> f3106_out(T15, T51) :|: TRUE f3108_out(x30, x31) -> f3106_out(x30, x31) :|: TRUE f3106_in(x32, x33) -> f3107_in(x32, x33) :|: TRUE f3106_in(x34, x35) -> f3108_in(x34, x35) :|: TRUE f3106_out(x36, x37) -> f3055_out(x36, x37) :|: TRUE f3055_in(x38, x39) -> f3106_in(x38, x39) :|: TRUE f3160_out(x40, x41, x42) -> f3129_out(x42, x41) :|: TRUE f3159_out -> f3129_out(x43, x44) :|: TRUE f3129_in(x45, x46) -> f3159_in :|: TRUE f3129_in(x47, x48) -> f3160_in(x49, x48, x47) :|: x49 = x47 f3128_in(x50, x51) -> f3055_in(x50 + 1, x51) :|: TRUE f3055_out(x52 + 1, x53) -> f3128_out(x52, x53) :|: TRUE f3161_in -> f3161_out :|: TRUE f3120_out(x54, x55) -> f3108_out(x54, x55) :|: TRUE f3108_in(x56, x57) -> f3120_in(x56, x57) :|: TRUE f5_out(T1) -> f4_out(T1) :|: TRUE f4_in(x58) -> f5_in(x58) :|: TRUE f11_out(T10) -> f5_out(T10) :|: TRUE f5_in(x59) -> f11_in(x59) :|: TRUE f15_out(x60) -> f17_in(x60, x61) :|: TRUE f17_out(x62, x63) -> f11_out(x62) :|: TRUE f11_in(x64) -> f15_in(x64) :|: TRUE f17_in(x65, x66) -> f3054_in(x65) :|: TRUE f3055_out(x67, x68) -> f17_out(x69, x67) :|: TRUE f3054_out(x70) -> f3055_in(x71, x72) :|: TRUE Start term: f4_in(T1) ---------------------------------------- (4) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: ---------------------------------------- (5) TRUE ---------------------------------------- (6) Obligation: Rules: f3054_in(T10) -> f3056_in(T10) :|: TRUE f3056_out(x) -> f3054_out(x) :|: TRUE f3062_out(x1) -> f3058_out(x1) :|: TRUE f3058_in(x2) -> f3063_in(x2) :|: TRUE f3058_in(x3) -> f3062_in(x3) :|: TRUE f3063_out(x4) -> f3058_out(x4) :|: TRUE f3066_in(T68) -> f3054_in(T68) :|: TRUE f3054_out(x5) -> f3066_out(x5) :|: TRUE f3088_in(T79, T78) -> f3096_in(T79) :|: TRUE f3096_out(x6) -> f3097_in(x7, x8) :|: TRUE f3097_out(x9, x10) -> f3088_out(x11, x9) :|: TRUE f3101_in(x12, x13) -> f3101_out(x12, x13) :|: TRUE f3062_in(x14) -> f3065_in :|: TRUE f3062_in(.(x15, x16)) -> f3064_in(x16, x15) :|: TRUE f3064_out(x17, x18) -> f3062_out(.(x18, x17)) :|: TRUE f3065_out -> f3062_out(x19) :|: TRUE f3089_out -> f3063_out(x20) :|: TRUE f3063_in(x21) -> f3089_in :|: TRUE f3063_in(.(x22, x23)) -> f3088_in(x23, x22) :|: TRUE f3088_out(x24, x25) -> f3063_out(.(x25, x24)) :|: TRUE f3056_in(x26) -> f3057_in(x26) :|: TRUE f3056_in(x27) -> f3058_in(x27) :|: TRUE f3057_out(x28) -> f3056_out(x28) :|: TRUE f3058_out(x29) -> f3056_out(x29) :|: TRUE f3082_in(T67, T71) -> f3082_out(T67, T71) :|: TRUE f3054_out(x30) -> f3096_out(x30) :|: TRUE f3096_in(x31) -> f3054_in(x31) :|: TRUE f3067_in(x32, x33) -> f3071_in :|: TRUE f3067_in(x34, x35) -> f3082_in(x34, x35) :|: x34 >= x35 f3082_out(x36, x37) -> f3067_out(x36, x37) :|: x36 >= x37 f3083_out(x38, x39) -> f3067_out(x38, x39) :|: x38 < x39 f3067_in(x40, x41) -> f3083_in(x40, x41) :|: x40 < x41 f3071_out -> f3067_out(x42, x43) :|: TRUE f3097_in(x44, x45) -> f3102_in(x44, x45) :|: x44 >= x45 f3101_out(x46, x47) -> f3097_out(x46, x47) :|: x46 < x47 f3097_in(x48, x49) -> f3101_in(x48, x49) :|: x48 < x49 f3102_out(x50, x51) -> f3097_out(x50, x51) :|: x50 >= x51 f3097_in(x52, x53) -> f3098_in :|: TRUE f3098_out -> f3097_out(x54, x55) :|: TRUE f3067_out(x56, x57) -> f3064_out(x58, x56) :|: TRUE f3064_in(x59, x60) -> f3066_in(x59) :|: TRUE f3066_out(x61) -> f3067_in(x62, x63) :|: TRUE f5_out(T1) -> f4_out(T1) :|: TRUE f4_in(x64) -> f5_in(x64) :|: TRUE f11_out(x65) -> f5_out(x65) :|: TRUE f5_in(x66) -> f11_in(x66) :|: TRUE f15_out(x67) -> f17_in(x67, x68) :|: TRUE f17_out(x69, x70) -> f11_out(x69) :|: TRUE f11_in(x71) -> f15_in(x71) :|: TRUE f17_in(x72, x73) -> f3054_in(x72) :|: TRUE f3055_out(x74, x75) -> f17_out(x76, x74) :|: TRUE f3054_out(x77) -> f3055_in(x78, x79) :|: TRUE Start term: f4_in(T1) ---------------------------------------- (7) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: ---------------------------------------- (8) TRUE ---------------------------------------- (9) Obligation: Rules: f3012_in(T42, T46) -> f3013_in :|: TRUE f3012_in(x, x1) -> f3051_in(x, x1) :|: x > x1 f3051_out(x2, x3) -> f3012_out(x2, x3) :|: x2 > x3 f3052_out(x4, x5) -> f3012_out(x4, x5) :|: x4 <= x5 f3013_out -> f3012_out(x6, x7) :|: TRUE f3012_in(x8, x9) -> f3052_in(x8, x9) :|: x8 <= x9 f15_out(T32) -> f69_out(T32) :|: TRUE f69_in(x10) -> f15_in(x10) :|: TRUE f2991_in(T31, T35) -> f2991_out(T31, T35) :|: TRUE f33_in(x11, x12) -> f69_in(x11) :|: TRUE f69_out(x13) -> f71_in(x14, x15) :|: TRUE f71_out(x16, x17) -> f33_out(x18, x16) :|: TRUE f25_in(T10) -> f32_in(T10) :|: TRUE f31_out(x19) -> f25_out(x19) :|: TRUE f32_out(x20) -> f25_out(x20) :|: TRUE f25_in(x21) -> f31_in(x21) :|: TRUE f3011_in(T43) -> f15_in(T43) :|: TRUE f15_out(x22) -> f3011_out(x22) :|: TRUE f15_in(x23) -> f23_in(x23) :|: TRUE f23_out(x24) -> f15_out(x24) :|: TRUE f71_in(x25, x26) -> f2991_in(x25, x26) :|: x25 <= x26 f2993_out(x27, x28) -> f71_out(x27, x28) :|: x27 > x28 f71_in(x29, x30) -> f125_in :|: TRUE f2991_out(x31, x32) -> f71_out(x31, x32) :|: x31 <= x32 f71_in(x33, x34) -> f2993_in(x33, x34) :|: x33 > x34 f125_out -> f71_out(x35, x36) :|: TRUE f3011_out(x37) -> f3012_in(x38, x39) :|: TRUE f3012_out(x40, x41) -> f3009_out(x42, x40) :|: TRUE f3009_in(x43, x44) -> f3011_in(x43) :|: TRUE f23_in(x45) -> f24_in(x45) :|: TRUE f25_out(x46) -> f23_out(x46) :|: TRUE f24_out(x47) -> f23_out(x47) :|: TRUE f23_in(x48) -> f25_in(x48) :|: TRUE f34_out -> f31_out(x49) :|: TRUE f33_out(x50, x51) -> f31_out(.(x51, x50)) :|: TRUE f31_in(x52) -> f34_in :|: TRUE f31_in(.(x53, x54)) -> f33_in(x54, x53) :|: TRUE f3009_out(x55, x56) -> f32_out(.(x56, x55)) :|: TRUE f32_in(x57) -> f3010_in :|: TRUE f3010_out -> f32_out(x58) :|: TRUE f32_in(.(x59, x60)) -> f3009_in(x60, x59) :|: TRUE f3051_in(x61, x62) -> f3051_out(x61, x62) :|: TRUE f5_out(T1) -> f4_out(T1) :|: TRUE f4_in(x63) -> f5_in(x63) :|: TRUE f11_out(x64) -> f5_out(x64) :|: TRUE f5_in(x65) -> f11_in(x65) :|: TRUE f15_out(x66) -> f17_in(x66, x67) :|: TRUE f17_out(x68, x69) -> f11_out(x68) :|: TRUE f11_in(x70) -> f15_in(x70) :|: TRUE Start term: f4_in(T1) ---------------------------------------- (10) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: intTRSProblem: f69_in(x10) -> f15_in(x10) :|: TRUE f33_in(x11, x12) -> f69_in(x11) :|: TRUE f25_in(T10) -> f32_in(T10) :|: TRUE f25_in(x21) -> f31_in(x21) :|: TRUE f3011_in(T43) -> f15_in(T43) :|: TRUE f15_in(x23) -> f23_in(x23) :|: TRUE f3009_in(x43, x44) -> f3011_in(x43) :|: TRUE f23_in(x48) -> f25_in(x48) :|: TRUE f31_in(.(x53, x54)) -> f33_in(x54, x53) :|: TRUE f32_in(.(x59, x60)) -> f3009_in(x60, x59) :|: TRUE ---------------------------------------- (11) Obligation: Rules: f69_in(x10) -> f15_in(x10) :|: TRUE f33_in(x11, x12) -> f69_in(x11) :|: TRUE f25_in(T10) -> f32_in(T10) :|: TRUE f25_in(x21) -> f31_in(x21) :|: TRUE f3011_in(T43) -> f15_in(T43) :|: TRUE f15_in(x23) -> f23_in(x23) :|: TRUE f3009_in(x43, x44) -> f3011_in(x43) :|: TRUE f23_in(x48) -> f25_in(x48) :|: TRUE f31_in(.(x53, x54)) -> f33_in(x54, x53) :|: TRUE f32_in(.(x59, x60)) -> f3009_in(x60, x59) :|: TRUE ---------------------------------------- (12) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (13) Obligation: Rules: f25_in(.(x53:0, x54:0)) -> f25_in(x54:0) :|: TRUE ---------------------------------------- (14) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (15) Obligation: Rules: f25_in(.(x53:0, x54:0)) -> f25_in(x54:0) :|: TRUE ---------------------------------------- (16) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f25_in(.(x53:0, x54:0)) -> f25_in(x54:0) :|: TRUE Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (17) Obligation: Termination digraph: Nodes: (1) f25_in(.(x53:0, x54:0)) -> f25_in(x54:0) :|: TRUE Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (18) IntTRSUnneededArgumentFilterProof (EQUIVALENT) Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements: .(x1, x2) -> .(x2) ---------------------------------------- (19) Obligation: Rules: f25_in(.(x54:0)) -> f25_in(x54:0) :|: TRUE ---------------------------------------- (20) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f25_in(VARIABLE) .(VARIABLE) Removed predefined arithmetic. ---------------------------------------- (21) Obligation: Rules: f25_in(.(x54:0)) -> f25_in(x54:0) ---------------------------------------- (22) IRSwTToQDPProof (SOUND) Removed the integers and created a QDP-Problem. ---------------------------------------- (23) Obligation: Q DP problem: The TRS P consists of the following rules: f25_in(.(x54:0)) -> f25_in(x54:0) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (24) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *f25_in(.(x54:0)) -> f25_in(x54:0) The graph contains the following edges 1 > 1 ---------------------------------------- (25) YES