11.31/3.80 YES 11.64/3.85 proof of /export/starexec/sandbox/benchmark/theBenchmark.pl 11.64/3.85 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 11.64/3.85 11.64/3.85 11.64/3.85 Left Termination of the query pattern 11.64/3.85 11.64/3.85 mergesort(g,a) 11.64/3.85 11.64/3.85 w.r.t. the given Prolog program could successfully be proven: 11.64/3.85 11.64/3.85 (0) Prolog 11.64/3.85 (1) PrologToDTProblemTransformerProof [SOUND, 0 ms] 11.64/3.85 (2) TRIPLES 11.64/3.85 (3) TriplesToPiDPProof [SOUND, 0 ms] 11.64/3.85 (4) PiDP 11.64/3.85 (5) DependencyGraphProof [EQUIVALENT, 0 ms] 11.64/3.85 (6) AND 11.64/3.85 (7) PiDP 11.64/3.85 (8) UsableRulesProof [EQUIVALENT, 0 ms] 11.64/3.85 (9) PiDP 11.64/3.85 (10) PiDPToQDPProof [SOUND, 0 ms] 11.64/3.85 (11) QDP 11.64/3.85 (12) QDPSizeChangeProof [EQUIVALENT, 0 ms] 11.64/3.85 (13) YES 11.64/3.85 (14) PiDP 11.64/3.85 (15) UsableRulesProof [EQUIVALENT, 0 ms] 11.64/3.85 (16) PiDP 11.64/3.85 (17) PiDPToQDPProof [SOUND, 0 ms] 11.64/3.85 (18) QDP 11.64/3.85 (19) QDPSizeChangeProof [EQUIVALENT, 0 ms] 11.64/3.85 (20) YES 11.64/3.85 (21) PiDP 11.64/3.85 (22) PiDPToQDPProof [SOUND, 0 ms] 11.64/3.85 (23) QDP 11.64/3.85 (24) TransformationProof [EQUIVALENT, 0 ms] 11.64/3.85 (25) QDP 11.64/3.85 (26) QDPQMonotonicMRRProof [EQUIVALENT, 50 ms] 11.64/3.85 (27) QDP 11.64/3.85 (28) DependencyGraphProof [EQUIVALENT, 0 ms] 11.64/3.85 (29) QDP 11.64/3.85 (30) UsableRulesProof [EQUIVALENT, 0 ms] 11.64/3.85 (31) QDP 11.64/3.85 (32) QReductionProof [EQUIVALENT, 0 ms] 11.64/3.85 (33) QDP 11.64/3.85 (34) QDPQMonotonicMRRProof [EQUIVALENT, 0 ms] 11.64/3.85 (35) QDP 11.64/3.85 (36) DependencyGraphProof [EQUIVALENT, 0 ms] 11.64/3.85 (37) TRUE 11.64/3.85 11.64/3.85 11.64/3.85 ---------------------------------------- 11.64/3.85 11.64/3.85 (0) 11.64/3.85 Obligation: 11.64/3.85 Clauses: 11.64/3.85 11.64/3.85 mergesort([], []). 11.64/3.85 mergesort(.(X, []), .(X, [])). 11.64/3.85 mergesort(.(X, .(Y, Xs)), Ys) :- ','(split(.(X, .(Y, Xs)), X1s, X2s), ','(mergesort(X1s, Y1s), ','(mergesort(X2s, Y2s), merge(Y1s, Y2s, Ys)))). 11.64/3.85 split([], [], []). 11.64/3.85 split(.(X, Xs), .(X, Ys), Zs) :- split(Xs, Zs, Ys). 11.64/3.85 merge([], Xs, Xs). 11.64/3.85 merge(Xs, [], Xs). 11.64/3.85 merge(.(X, Xs), .(Y, Ys), .(X, Zs)) :- ','(=(X, Y), merge(.(X, Xs), Ys, Zs)). 11.64/3.85 11.64/3.85 11.64/3.85 Query: mergesort(g,a) 11.64/3.85 ---------------------------------------- 11.64/3.85 11.64/3.85 (1) PrologToDTProblemTransformerProof (SOUND) 11.64/3.85 Built DT problem from termination graph DT10. 11.64/3.85 11.64/3.85 { 11.64/3.85 "root": 7, 11.64/3.85 "program": { 11.64/3.85 "directives": [], 11.64/3.85 "clauses": [ 11.64/3.85 [ 11.64/3.85 "(mergesort ([]) ([]))", 11.64/3.85 null 11.64/3.85 ], 11.64/3.85 [ 11.64/3.85 "(mergesort (. X ([])) (. X ([])))", 11.64/3.85 null 11.64/3.85 ], 11.64/3.85 [ 11.64/3.85 "(mergesort (. X (. Y Xs)) Ys)", 11.64/3.85 "(',' (split (. X (. Y Xs)) X1s X2s) (',' (mergesort X1s Y1s) (',' (mergesort X2s Y2s) (merge Y1s Y2s Ys))))" 11.64/3.85 ], 11.64/3.85 [ 11.64/3.85 "(split ([]) ([]) ([]))", 11.64/3.85 null 11.64/3.85 ], 11.64/3.85 [ 11.64/3.85 "(split (. X Xs) (. X Ys) Zs)", 11.64/3.85 "(split Xs Zs Ys)" 11.64/3.85 ], 11.64/3.85 [ 11.64/3.85 "(merge ([]) Xs Xs)", 11.64/3.85 null 11.64/3.85 ], 11.64/3.85 [ 11.64/3.85 "(merge Xs ([]) Xs)", 11.64/3.85 null 11.64/3.85 ], 11.64/3.85 [ 11.64/3.85 "(merge (. X Xs) (. Y Ys) (. X Zs))", 11.64/3.85 "(',' (= X Y) (merge (. X Xs) Ys Zs))" 11.64/3.85 ] 11.64/3.85 ] 11.64/3.85 }, 11.64/3.85 "graph": { 11.64/3.85 "nodes": { 11.64/3.85 "46": { 11.64/3.85 "goal": [ 11.64/3.85 { 11.64/3.85 "clause": -1, 11.64/3.85 "scope": -1, 11.64/3.85 "term": "(true)" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "clause": 1, 11.64/3.85 "scope": 1, 11.64/3.85 "term": "(mergesort ([]) T2)" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "clause": 2, 11.64/3.85 "scope": 1, 11.64/3.85 "term": "(mergesort ([]) T2)" 11.64/3.85 } 11.64/3.85 ], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [], 11.64/3.85 "free": [], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "48": { 11.64/3.85 "goal": [ 11.64/3.85 { 11.64/3.85 "clause": 1, 11.64/3.85 "scope": 1, 11.64/3.85 "term": "(mergesort T1 T2)" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "clause": 2, 11.64/3.85 "scope": 1, 11.64/3.85 "term": "(mergesort T1 T2)" 11.64/3.85 } 11.64/3.85 ], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [[ 11.64/3.85 "(mergesort T1 T2)", 11.64/3.85 "(mergesort ([]) ([]))" 11.64/3.85 ]], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": ["T1"], 11.64/3.85 "free": [], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "type": "Nodes", 11.64/3.85 "393": { 11.64/3.85 "goal": [{ 11.64/3.85 "clause": -1, 11.64/3.85 "scope": -1, 11.64/3.85 "term": "(split (. T22 T23) X41 X40)" 11.64/3.85 }], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [ 11.64/3.85 "T22", 11.64/3.85 "T23" 11.64/3.85 ], 11.64/3.85 "free": [ 11.64/3.85 "X40", 11.64/3.85 "X41" 11.64/3.85 ], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "394": { 11.64/3.85 "goal": [{ 11.64/3.85 "clause": -1, 11.64/3.85 "scope": -1, 11.64/3.85 "term": "(',' (mergesort (. T21 T25) X22) (',' (mergesort T24 X23) (merge X22 X23 T14)))" 11.64/3.85 }], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [ 11.64/3.85 "T21", 11.64/3.85 "T24", 11.64/3.85 "T25" 11.64/3.85 ], 11.64/3.85 "free": [ 11.64/3.85 "X22", 11.64/3.85 "X23" 11.64/3.85 ], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "471": { 11.64/3.85 "goal": [], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [], 11.64/3.85 "free": [], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "395": { 11.64/3.85 "goal": [ 11.64/3.85 { 11.64/3.85 "clause": 3, 11.64/3.85 "scope": 3, 11.64/3.85 "term": "(split (. T22 T23) X41 X40)" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "clause": 4, 11.64/3.85 "scope": 3, 11.64/3.85 "term": "(split (. T22 T23) X41 X40)" 11.64/3.85 } 11.64/3.85 ], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [ 11.64/3.85 "T22", 11.64/3.85 "T23" 11.64/3.85 ], 11.64/3.85 "free": [ 11.64/3.85 "X40", 11.64/3.85 "X41" 11.64/3.85 ], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "472": { 11.64/3.85 "goal": [{ 11.64/3.85 "clause": -1, 11.64/3.85 "scope": -1, 11.64/3.85 "term": "(merge (. T69 T63) T65 T67)" 11.64/3.85 }], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [ 11.64/3.85 "T63", 11.64/3.85 "T65", 11.64/3.85 "T69" 11.64/3.85 ], 11.64/3.85 "free": [], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "396": { 11.64/3.85 "goal": [{ 11.64/3.85 "clause": 4, 11.64/3.85 "scope": 3, 11.64/3.85 "term": "(split (. T22 T23) X41 X40)" 11.64/3.85 }], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [ 11.64/3.85 "T22", 11.64/3.85 "T23" 11.64/3.85 ], 11.64/3.85 "free": [ 11.64/3.85 "X40", 11.64/3.85 "X41" 11.64/3.85 ], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "473": { 11.64/3.85 "goal": [], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [], 11.64/3.85 "free": [], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "397": { 11.64/3.85 "goal": [{ 11.64/3.85 "clause": -1, 11.64/3.85 "scope": -1, 11.64/3.85 "term": "(split T31 X59 X58)" 11.64/3.85 }], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": ["T31"], 11.64/3.85 "free": [ 11.64/3.85 "X58", 11.64/3.85 "X59" 11.64/3.85 ], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "398": { 11.64/3.85 "goal": [ 11.64/3.85 { 11.64/3.85 "clause": 3, 11.64/3.85 "scope": 4, 11.64/3.85 "term": "(split T31 X59 X58)" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "clause": 4, 11.64/3.85 "scope": 4, 11.64/3.85 "term": "(split T31 X59 X58)" 11.64/3.85 } 11.64/3.85 ], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": ["T31"], 11.64/3.85 "free": [ 11.64/3.85 "X58", 11.64/3.85 "X59" 11.64/3.85 ], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "399": { 11.64/3.85 "goal": [{ 11.64/3.85 "clause": 3, 11.64/3.85 "scope": 4, 11.64/3.85 "term": "(split T31 X59 X58)" 11.64/3.85 }], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": ["T31"], 11.64/3.85 "free": [ 11.64/3.85 "X58", 11.64/3.85 "X59" 11.64/3.85 ], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "438": { 11.64/3.85 "goal": [{ 11.64/3.85 "clause": -1, 11.64/3.85 "scope": -1, 11.64/3.85 "term": "(mergesort (. T21 T25) X22)" 11.64/3.85 }], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [ 11.64/3.85 "T21", 11.64/3.85 "T25" 11.64/3.85 ], 11.64/3.85 "free": ["X22"], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "439": { 11.64/3.85 "goal": [{ 11.64/3.85 "clause": -1, 11.64/3.85 "scope": -1, 11.64/3.85 "term": "(',' (mergesort T24 X23) (merge T38 X23 T14))" 11.64/3.85 }], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [ 11.64/3.85 "T24", 11.64/3.85 "T38" 11.64/3.85 ], 11.64/3.85 "free": ["X23"], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "241": { 11.64/3.85 "goal": [ 11.64/3.85 { 11.64/3.85 "clause": 1, 11.64/3.85 "scope": 1, 11.64/3.85 "term": "(mergesort ([]) T2)" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "clause": 2, 11.64/3.85 "scope": 1, 11.64/3.85 "term": "(mergesort ([]) T2)" 11.64/3.85 } 11.64/3.85 ], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [], 11.64/3.85 "free": [], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "242": { 11.64/3.85 "goal": [{ 11.64/3.85 "clause": 2, 11.64/3.85 "scope": 1, 11.64/3.85 "term": "(mergesort ([]) T2)" 11.64/3.85 }], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [], 11.64/3.85 "free": [], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "243": { 11.64/3.85 "goal": [], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [], 11.64/3.85 "free": [], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "244": { 11.64/3.85 "goal": [ 11.64/3.85 { 11.64/3.85 "clause": -1, 11.64/3.85 "scope": -1, 11.64/3.85 "term": "(true)" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "clause": 2, 11.64/3.85 "scope": 1, 11.64/3.85 "term": "(mergesort (. T4 ([])) T2)" 11.64/3.85 } 11.64/3.85 ], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": ["T4"], 11.64/3.85 "free": [], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "442": { 11.64/3.85 "goal": [{ 11.64/3.85 "clause": -1, 11.64/3.85 "scope": -1, 11.64/3.85 "term": "(mergesort T24 X23)" 11.64/3.85 }], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": ["T24"], 11.64/3.85 "free": ["X23"], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "443": { 11.64/3.85 "goal": [{ 11.64/3.85 "clause": -1, 11.64/3.85 "scope": -1, 11.64/3.85 "term": "(merge T38 T39 T14)" 11.64/3.85 }], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [ 11.64/3.85 "T38", 11.64/3.85 "T39" 11.64/3.85 ], 11.64/3.85 "free": [], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "246": { 11.64/3.85 "goal": [{ 11.64/3.85 "clause": 2, 11.64/3.85 "scope": 1, 11.64/3.85 "term": "(mergesort T1 T2)" 11.64/3.85 }], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [ 11.64/3.85 [ 11.64/3.85 "(mergesort T1 T2)", 11.64/3.85 "(mergesort ([]) ([]))" 11.64/3.85 ], 11.64/3.85 [ 11.64/3.85 "(mergesort T1 T2)", 11.64/3.85 "(mergesort (. X7 ([])) (. X7 ([])))" 11.64/3.85 ] 11.64/3.85 ], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": ["T1"], 11.64/3.85 "free": ["X7"], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "400": { 11.64/3.85 "goal": [{ 11.64/3.85 "clause": 4, 11.64/3.85 "scope": 4, 11.64/3.85 "term": "(split T31 X59 X58)" 11.64/3.85 }], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": ["T31"], 11.64/3.85 "free": [ 11.64/3.85 "X58", 11.64/3.85 "X59" 11.64/3.85 ], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "247": { 11.64/3.85 "goal": [{ 11.64/3.85 "clause": 2, 11.64/3.85 "scope": 1, 11.64/3.85 "term": "(mergesort (. T4 ([])) T2)" 11.64/3.85 }], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": ["T4"], 11.64/3.85 "free": [], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "401": { 11.64/3.85 "goal": [{ 11.64/3.85 "clause": -1, 11.64/3.85 "scope": -1, 11.64/3.85 "term": "(true)" 11.64/3.85 }], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [], 11.64/3.85 "free": [], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "445": { 11.64/3.85 "goal": [ 11.64/3.85 { 11.64/3.85 "clause": 5, 11.64/3.85 "scope": 5, 11.64/3.85 "term": "(merge T38 T39 T14)" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "clause": 6, 11.64/3.85 "scope": 5, 11.64/3.85 "term": "(merge T38 T39 T14)" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "clause": 7, 11.64/3.85 "scope": 5, 11.64/3.85 "term": "(merge T38 T39 T14)" 11.64/3.85 } 11.64/3.85 ], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [ 11.64/3.85 "T38", 11.64/3.85 "T39" 11.64/3.85 ], 11.64/3.85 "free": [], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "248": { 11.64/3.85 "goal": [], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [], 11.64/3.85 "free": [], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "402": { 11.64/3.85 "goal": [], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [], 11.64/3.85 "free": [], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "7": { 11.64/3.85 "goal": [{ 11.64/3.85 "clause": -1, 11.64/3.85 "scope": -1, 11.64/3.85 "term": "(mergesort T1 T2)" 11.64/3.85 }], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": ["T1"], 11.64/3.85 "free": [], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "403": { 11.64/3.85 "goal": [], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [], 11.64/3.85 "free": [], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "447": { 11.64/3.85 "goal": [{ 11.64/3.85 "clause": 5, 11.64/3.85 "scope": 5, 11.64/3.85 "term": "(merge T38 T39 T14)" 11.64/3.85 }], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [ 11.64/3.85 "T38", 11.64/3.85 "T39" 11.64/3.85 ], 11.64/3.85 "free": [], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "449": { 11.64/3.85 "goal": [ 11.64/3.85 { 11.64/3.85 "clause": 6, 11.64/3.85 "scope": 5, 11.64/3.85 "term": "(merge T38 T39 T14)" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "clause": 7, 11.64/3.85 "scope": 5, 11.64/3.85 "term": "(merge T38 T39 T14)" 11.64/3.85 } 11.64/3.85 ], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [ 11.64/3.85 "T38", 11.64/3.85 "T39" 11.64/3.85 ], 11.64/3.85 "free": [], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "407": { 11.64/3.85 "goal": [{ 11.64/3.85 "clause": -1, 11.64/3.85 "scope": -1, 11.64/3.85 "term": "(split T37 X77 X76)" 11.64/3.85 }], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": ["T37"], 11.64/3.85 "free": [ 11.64/3.85 "X76", 11.64/3.85 "X77" 11.64/3.85 ], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "21": { 11.64/3.85 "goal": [ 11.64/3.85 { 11.64/3.85 "clause": 0, 11.64/3.85 "scope": 1, 11.64/3.85 "term": "(mergesort T1 T2)" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "clause": 1, 11.64/3.85 "scope": 1, 11.64/3.85 "term": "(mergesort T1 T2)" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "clause": 2, 11.64/3.85 "scope": 1, 11.64/3.85 "term": "(mergesort T1 T2)" 11.64/3.85 } 11.64/3.85 ], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": ["T1"], 11.64/3.85 "free": [], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "251": { 11.64/3.85 "goal": [{ 11.64/3.85 "clause": -1, 11.64/3.85 "scope": -1, 11.64/3.85 "term": "(',' (split (. T10 (. T11 T12)) X20 X21) (',' (mergesort X20 X22) (',' (mergesort X21 X23) (merge X22 X23 T14))))" 11.64/3.85 }], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [ 11.64/3.85 "T10", 11.64/3.85 "T11", 11.64/3.85 "T12" 11.64/3.85 ], 11.64/3.85 "free": [ 11.64/3.85 "X20", 11.64/3.85 "X21", 11.64/3.85 "X22", 11.64/3.85 "X23" 11.64/3.85 ], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "252": { 11.64/3.85 "goal": [], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [], 11.64/3.85 "free": [], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "450": { 11.64/3.85 "goal": [{ 11.64/3.85 "clause": -1, 11.64/3.85 "scope": -1, 11.64/3.85 "term": "(true)" 11.64/3.85 }], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [], 11.64/3.85 "free": [], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "253": { 11.64/3.85 "goal": [ 11.64/3.85 { 11.64/3.85 "clause": 3, 11.64/3.85 "scope": 2, 11.64/3.85 "term": "(',' (split (. T10 (. T11 T12)) X20 X21) (',' (mergesort X20 X22) (',' (mergesort X21 X23) (merge X22 X23 T14))))" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "clause": 4, 11.64/3.85 "scope": 2, 11.64/3.85 "term": "(',' (split (. T10 (. T11 T12)) X20 X21) (',' (mergesort X20 X22) (',' (mergesort X21 X23) (merge X22 X23 T14))))" 11.64/3.85 } 11.64/3.85 ], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [ 11.64/3.85 "T10", 11.64/3.85 "T11", 11.64/3.85 "T12" 11.64/3.85 ], 11.64/3.85 "free": [ 11.64/3.85 "X20", 11.64/3.85 "X21", 11.64/3.85 "X22", 11.64/3.85 "X23" 11.64/3.85 ], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "451": { 11.64/3.85 "goal": [], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [], 11.64/3.85 "free": [], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "254": { 11.64/3.85 "goal": [{ 11.64/3.85 "clause": 4, 11.64/3.85 "scope": 2, 11.64/3.85 "term": "(',' (split (. T10 (. T11 T12)) X20 X21) (',' (mergesort X20 X22) (',' (mergesort X21 X23) (merge X22 X23 T14))))" 11.64/3.85 }], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [ 11.64/3.85 "T10", 11.64/3.85 "T11", 11.64/3.85 "T12" 11.64/3.85 ], 11.64/3.85 "free": [ 11.64/3.85 "X20", 11.64/3.85 "X21", 11.64/3.85 "X22", 11.64/3.85 "X23" 11.64/3.85 ], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "452": { 11.64/3.85 "goal": [], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [], 11.64/3.85 "free": [], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "410": { 11.64/3.85 "goal": [], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [], 11.64/3.85 "free": [], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "456": { 11.64/3.85 "goal": [{ 11.64/3.85 "clause": 6, 11.64/3.85 "scope": 5, 11.64/3.85 "term": "(merge T38 T39 T14)" 11.64/3.85 }], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [ 11.64/3.85 "T38", 11.64/3.85 "T39" 11.64/3.85 ], 11.64/3.85 "free": [], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "457": { 11.64/3.85 "goal": [{ 11.64/3.85 "clause": 7, 11.64/3.85 "scope": 5, 11.64/3.85 "term": "(merge T38 T39 T14)" 11.64/3.85 }], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [ 11.64/3.85 "T38", 11.64/3.85 "T39" 11.64/3.85 ], 11.64/3.85 "free": [], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "262": { 11.64/3.85 "goal": [{ 11.64/3.85 "clause": -1, 11.64/3.85 "scope": -1, 11.64/3.85 "term": "(',' (split (. T22 T23) X41 X40) (',' (mergesort (. T21 X40) X22) (',' (mergesort X41 X23) (merge X22 X23 T14))))" 11.64/3.85 }], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [ 11.64/3.85 "T21", 11.64/3.85 "T22", 11.64/3.85 "T23" 11.64/3.85 ], 11.64/3.85 "free": [ 11.64/3.85 "X22", 11.64/3.85 "X23", 11.64/3.85 "X40", 11.64/3.85 "X41" 11.64/3.85 ], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "460": { 11.64/3.85 "goal": [{ 11.64/3.85 "clause": -1, 11.64/3.85 "scope": -1, 11.64/3.85 "term": "(true)" 11.64/3.85 }], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [], 11.64/3.85 "free": [], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "461": { 11.64/3.85 "goal": [], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [], 11.64/3.85 "free": [], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "462": { 11.64/3.85 "goal": [], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [], 11.64/3.85 "free": [], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "469": { 11.64/3.85 "goal": [{ 11.64/3.85 "clause": -1, 11.64/3.85 "scope": -1, 11.64/3.85 "term": "(',' (= T62 T64) (merge (. T62 T63) T65 T67))" 11.64/3.85 }], 11.64/3.85 "kb": { 11.64/3.85 "nonunifying": [], 11.64/3.85 "intvars": {}, 11.64/3.85 "arithmetic": { 11.64/3.85 "type": "PlainIntegerRelationState", 11.64/3.85 "relations": [] 11.64/3.85 }, 11.64/3.85 "ground": [ 11.64/3.85 "T62", 11.64/3.85 "T63", 11.64/3.85 "T64", 11.64/3.85 "T65" 11.64/3.85 ], 11.64/3.85 "free": [], 11.64/3.85 "exprvars": [] 11.64/3.85 } 11.64/3.85 } 11.64/3.85 }, 11.64/3.85 "edges": [ 11.64/3.85 { 11.64/3.85 "from": 7, 11.64/3.85 "to": 21, 11.64/3.85 "label": "CASE" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 21, 11.64/3.85 "to": 46, 11.64/3.85 "label": "EVAL with clause\nmergesort([], []).\nand substitutionT1 -> [],\nT2 -> []" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 21, 11.64/3.85 "to": 48, 11.64/3.85 "label": "EVAL-BACKTRACK" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 46, 11.64/3.85 "to": 241, 11.64/3.85 "label": "SUCCESS" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 48, 11.64/3.85 "to": 244, 11.64/3.85 "label": "EVAL with clause\nmergesort(.(X7, []), .(X7, [])).\nand substitutionX7 -> T4,\nT1 -> .(T4, []),\nT2 -> .(T4, [])" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 48, 11.64/3.85 "to": 246, 11.64/3.85 "label": "EVAL-BACKTRACK" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 241, 11.64/3.85 "to": 242, 11.64/3.85 "label": "BACKTRACK\nfor clause: mergesort(.(X, []), .(X, []))because of non-unification" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 242, 11.64/3.85 "to": 243, 11.64/3.85 "label": "BACKTRACK\nfor clause: mergesort(.(X, .(Y, Xs)), Ys) :- ','(split(.(X, .(Y, Xs)), X1s, X2s), ','(mergesort(X1s, Y1s), ','(mergesort(X2s, Y2s), merge(Y1s, Y2s, Ys))))because of non-unification" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 244, 11.64/3.85 "to": 247, 11.64/3.85 "label": "SUCCESS" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 246, 11.64/3.85 "to": 251, 11.64/3.85 "label": "EVAL with clause\nmergesort(.(X16, .(X17, X18)), X19) :- ','(split(.(X16, .(X17, X18)), X20, X21), ','(mergesort(X20, X22), ','(mergesort(X21, X23), merge(X22, X23, X19)))).\nand substitutionX16 -> T10,\nX17 -> T11,\nX18 -> T12,\nT1 -> .(T10, .(T11, T12)),\nT2 -> T14,\nX19 -> T14,\nT13 -> T14" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 246, 11.64/3.85 "to": 252, 11.64/3.85 "label": "EVAL-BACKTRACK" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 247, 11.64/3.85 "to": 248, 11.64/3.85 "label": "BACKTRACK\nfor clause: mergesort(.(X, .(Y, Xs)), Ys) :- ','(split(.(X, .(Y, Xs)), X1s, X2s), ','(mergesort(X1s, Y1s), ','(mergesort(X2s, Y2s), merge(Y1s, Y2s, Ys))))because of non-unification" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 251, 11.64/3.85 "to": 253, 11.64/3.85 "label": "CASE" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 253, 11.64/3.85 "to": 254, 11.64/3.85 "label": "BACKTRACK\nfor clause: split([], [], [])because of non-unification" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 254, 11.64/3.85 "to": 262, 11.64/3.85 "label": "ONLY EVAL with clause\nsplit(.(X36, X37), .(X36, X38), X39) :- split(X37, X39, X38).\nand substitutionT10 -> T21,\nX36 -> T21,\nT11 -> T22,\nT12 -> T23,\nX37 -> .(T22, T23),\nX38 -> X40,\nX20 -> .(T21, X40),\nX21 -> X41,\nX39 -> X41" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 262, 11.64/3.85 "to": 393, 11.64/3.85 "label": "SPLIT 1" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 262, 11.64/3.85 "to": 394, 11.64/3.85 "label": "SPLIT 2\nnew knowledge:\nT22 is ground\nT23 is ground\nT24 is ground\nT25 is ground\nreplacements:X41 -> T24,\nX40 -> T25" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 393, 11.64/3.85 "to": 395, 11.64/3.85 "label": "CASE" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 394, 11.64/3.85 "to": 438, 11.64/3.85 "label": "SPLIT 1" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 394, 11.64/3.85 "to": 439, 11.64/3.85 "label": "SPLIT 2\nnew knowledge:\nT21 is ground\nT25 is ground\nT38 is ground\nreplacements:X22 -> T38" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 395, 11.64/3.85 "to": 396, 11.64/3.85 "label": "BACKTRACK\nfor clause: split([], [], [])because of non-unification" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 396, 11.64/3.85 "to": 397, 11.64/3.85 "label": "ONLY EVAL with clause\nsplit(.(X54, X55), .(X54, X56), X57) :- split(X55, X57, X56).\nand substitutionT22 -> T30,\nX54 -> T30,\nT23 -> T31,\nX55 -> T31,\nX56 -> X58,\nX41 -> .(T30, X58),\nX40 -> X59,\nX57 -> X59" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 397, 11.64/3.85 "to": 398, 11.64/3.85 "label": "CASE" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 398, 11.64/3.85 "to": 399, 11.64/3.85 "label": "PARALLEL" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 398, 11.64/3.85 "to": 400, 11.64/3.85 "label": "PARALLEL" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 399, 11.64/3.85 "to": 401, 11.64/3.85 "label": "EVAL with clause\nsplit([], [], []).\nand substitutionT31 -> [],\nX59 -> [],\nX58 -> []" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 399, 11.64/3.85 "to": 402, 11.64/3.85 "label": "EVAL-BACKTRACK" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 400, 11.64/3.85 "to": 407, 11.64/3.85 "label": "EVAL with clause\nsplit(.(X72, X73), .(X72, X74), X75) :- split(X73, X75, X74).\nand substitutionX72 -> T36,\nX73 -> T37,\nT31 -> .(T36, T37),\nX74 -> X76,\nX59 -> .(T36, X76),\nX58 -> X77,\nX75 -> X77" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 400, 11.64/3.85 "to": 410, 11.64/3.85 "label": "EVAL-BACKTRACK" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 401, 11.64/3.85 "to": 403, 11.64/3.85 "label": "SUCCESS" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 407, 11.64/3.85 "to": 397, 11.64/3.85 "label": "INSTANCE with matching:\nT31 -> T37\nX59 -> X77\nX58 -> X76" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 438, 11.64/3.85 "to": 7, 11.64/3.85 "label": "INSTANCE with matching:\nT1 -> .(T21, T25)\nT2 -> X22" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 439, 11.64/3.85 "to": 442, 11.64/3.85 "label": "SPLIT 1" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 439, 11.64/3.85 "to": 443, 11.64/3.85 "label": "SPLIT 2\nnew knowledge:\nT24 is ground\nT39 is ground\nreplacements:X23 -> T39" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 442, 11.64/3.85 "to": 7, 11.64/3.85 "label": "INSTANCE with matching:\nT1 -> T24\nT2 -> X23" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 443, 11.64/3.85 "to": 445, 11.64/3.85 "label": "CASE" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 445, 11.64/3.85 "to": 447, 11.64/3.85 "label": "PARALLEL" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 445, 11.64/3.85 "to": 449, 11.64/3.85 "label": "PARALLEL" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 447, 11.64/3.85 "to": 450, 11.64/3.85 "label": "EVAL with clause\nmerge([], X84, X84).\nand substitutionT38 -> [],\nT39 -> T46,\nX84 -> T46,\nT14 -> T46" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 447, 11.64/3.85 "to": 451, 11.64/3.85 "label": "EVAL-BACKTRACK" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 449, 11.64/3.85 "to": 456, 11.64/3.85 "label": "PARALLEL" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 449, 11.64/3.85 "to": 457, 11.64/3.85 "label": "PARALLEL" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 450, 11.64/3.85 "to": 452, 11.64/3.85 "label": "SUCCESS" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 456, 11.64/3.85 "to": 460, 11.64/3.85 "label": "EVAL with clause\nmerge(X89, [], X89).\nand substitutionT38 -> T51,\nX89 -> T51,\nT39 -> [],\nT14 -> T51" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 456, 11.64/3.85 "to": 461, 11.64/3.85 "label": "EVAL-BACKTRACK" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 457, 11.64/3.85 "to": 469, 11.64/3.85 "label": "EVAL with clause\nmerge(.(X100, X101), .(X102, X103), .(X100, X104)) :- ','(=(X100, X102), merge(.(X100, X101), X103, X104)).\nand substitutionX100 -> T62,\nX101 -> T63,\nT38 -> .(T62, T63),\nX102 -> T64,\nX103 -> T65,\nT39 -> .(T64, T65),\nX104 -> T67,\nT14 -> .(T62, T67),\nT66 -> T67" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 457, 11.64/3.85 "to": 471, 11.64/3.85 "label": "EVAL-BACKTRACK" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 460, 11.64/3.85 "to": 462, 11.64/3.85 "label": "SUCCESS" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 469, 11.64/3.85 "to": 472, 11.64/3.85 "label": "UNIFY CASE with substitutionT62 -> T69,\nT64 -> T69" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 469, 11.64/3.85 "to": 473, 11.64/3.85 "label": "UNIFY-BACKTRACK" 11.64/3.85 }, 11.64/3.85 { 11.64/3.85 "from": 472, 11.64/3.85 "to": 443, 11.64/3.85 "label": "INSTANCE with matching:\nT38 -> .(T69, T63)\nT39 -> T65\nT14 -> T67" 11.64/3.85 } 11.64/3.85 ], 11.64/3.85 "type": "Graph" 11.64/3.85 } 11.64/3.85 } 11.64/3.85 11.64/3.85 ---------------------------------------- 11.64/3.85 11.64/3.85 (2) 11.64/3.85 Obligation: 11.64/3.85 Triples: 11.64/3.85 11.64/3.85 splitA(.(X1, X2), .(X1, X3), X4) :- splitA(X2, X4, X3). 11.64/3.85 mergeC(.(X1, X2), .(X1, X3), .(X1, X4)) :- mergeC(.(X1, X2), X3, X4). 11.64/3.85 mergesortB(.(X1, .(X2, X3)), X4) :- splitA(X3, X5, X6). 11.64/3.85 mergesortB(.(X1, .(X2, X3)), X4) :- ','(splitcD(X2, X3, X5, X6), mergesortB(.(X1, X6), X7)). 11.64/3.85 mergesortB(.(X1, .(X2, X3)), X4) :- ','(splitcD(X2, X3, X5, X6), ','(mergesortcB(.(X1, X6), X7), mergesortB(X5, X8))). 11.64/3.85 mergesortB(.(X1, .(X2, X3)), X4) :- ','(splitcD(X2, X3, X5, X6), ','(mergesortcB(.(X1, X6), X7), ','(mergesortcB(X5, X8), mergeC(X7, X8, X4)))). 11.64/3.85 11.64/3.85 Clauses: 11.64/3.85 11.64/3.85 splitcA([], [], []). 11.64/3.85 splitcA(.(X1, X2), .(X1, X3), X4) :- splitcA(X2, X4, X3). 11.64/3.85 mergesortcB([], []). 11.64/3.85 mergesortcB(.(X1, []), .(X1, [])). 11.64/3.85 mergesortcB(.(X1, .(X2, X3)), X4) :- ','(splitcD(X2, X3, X5, X6), ','(mergesortcB(.(X1, X6), X7), ','(mergesortcB(X5, X8), mergecC(X7, X8, X4)))). 11.64/3.85 mergecC([], X1, X1). 11.64/3.85 mergecC(X1, [], X1). 11.64/3.85 mergecC(.(X1, X2), .(X1, X3), .(X1, X4)) :- mergecC(.(X1, X2), X3, X4). 11.64/3.85 splitcD(X1, X2, .(X1, X3), X4) :- splitcA(X2, X4, X3). 11.64/3.85 11.64/3.85 Afs: 11.64/3.85 11.64/3.85 mergesortB(x1, x2) = mergesortB(x1) 11.64/3.86 11.64/3.86 11.64/3.86 ---------------------------------------- 11.64/3.86 11.64/3.86 (3) TriplesToPiDPProof (SOUND) 11.64/3.86 We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes: 11.64/3.86 11.64/3.86 mergesortB_in_2: (b,f) 11.64/3.86 11.64/3.86 splitA_in_3: (b,f,f) 11.64/3.86 11.64/3.86 splitcD_in_4: (b,b,f,f) 11.64/3.86 11.64/3.86 splitcA_in_3: (b,f,f) 11.64/3.86 11.64/3.86 mergesortcB_in_2: (b,f) 11.64/3.86 11.64/3.86 mergecC_in_3: (b,b,f) 11.64/3.86 11.64/3.86 mergeC_in_3: (b,b,f) 11.64/3.86 11.64/3.86 Transforming TRIPLES into the following Term Rewriting System: 11.64/3.86 11.64/3.86 Pi DP problem: 11.64/3.86 The TRS P consists of the following rules: 11.64/3.86 11.64/3.86 MERGESORTB_IN_GA(.(X1, .(X2, X3)), X4) -> U3_GA(X1, X2, X3, X4, splitA_in_gaa(X3, X5, X6)) 11.64/3.86 MERGESORTB_IN_GA(.(X1, .(X2, X3)), X4) -> SPLITA_IN_GAA(X3, X5, X6) 11.64/3.86 SPLITA_IN_GAA(.(X1, X2), .(X1, X3), X4) -> U1_GAA(X1, X2, X3, X4, splitA_in_gaa(X2, X4, X3)) 11.64/3.86 SPLITA_IN_GAA(.(X1, X2), .(X1, X3), X4) -> SPLITA_IN_GAA(X2, X4, X3) 11.64/3.86 MERGESORTB_IN_GA(.(X1, .(X2, X3)), X4) -> U4_GA(X1, X2, X3, X4, splitcD_in_ggaa(X2, X3, X5, X6)) 11.64/3.86 U4_GA(X1, X2, X3, X4, splitcD_out_ggaa(X2, X3, X5, X6)) -> U5_GA(X1, X2, X3, X4, mergesortB_in_ga(.(X1, X6), X7)) 11.64/3.86 U4_GA(X1, X2, X3, X4, splitcD_out_ggaa(X2, X3, X5, X6)) -> MERGESORTB_IN_GA(.(X1, X6), X7) 11.64/3.86 U4_GA(X1, X2, X3, X4, splitcD_out_ggaa(X2, X3, X5, X6)) -> U6_GA(X1, X2, X3, X4, X5, mergesortcB_in_ga(.(X1, X6), X7)) 11.64/3.86 U6_GA(X1, X2, X3, X4, X5, mergesortcB_out_ga(.(X1, X6), X7)) -> U7_GA(X1, X2, X3, X4, mergesortB_in_ga(X5, X8)) 11.64/3.86 U6_GA(X1, X2, X3, X4, X5, mergesortcB_out_ga(.(X1, X6), X7)) -> MERGESORTB_IN_GA(X5, X8) 11.64/3.86 U6_GA(X1, X2, X3, X4, X5, mergesortcB_out_ga(.(X1, X6), X7)) -> U8_GA(X1, X2, X3, X4, X7, mergesortcB_in_ga(X5, X8)) 11.64/3.86 U8_GA(X1, X2, X3, X4, X7, mergesortcB_out_ga(X5, X8)) -> U9_GA(X1, X2, X3, X4, mergeC_in_gga(X7, X8, X4)) 11.64/3.86 U8_GA(X1, X2, X3, X4, X7, mergesortcB_out_ga(X5, X8)) -> MERGEC_IN_GGA(X7, X8, X4) 11.64/3.86 MERGEC_IN_GGA(.(X1, X2), .(X1, X3), .(X1, X4)) -> U2_GGA(X1, X2, X3, X4, mergeC_in_gga(.(X1, X2), X3, X4)) 11.64/3.86 MERGEC_IN_GGA(.(X1, X2), .(X1, X3), .(X1, X4)) -> MERGEC_IN_GGA(.(X1, X2), X3, X4) 11.64/3.86 11.64/3.86 The TRS R consists of the following rules: 11.64/3.86 11.64/3.86 splitcD_in_ggaa(X1, X2, .(X1, X3), X4) -> U17_ggaa(X1, X2, X3, X4, splitcA_in_gaa(X2, X4, X3)) 11.64/3.86 splitcA_in_gaa([], [], []) -> splitcA_out_gaa([], [], []) 11.64/3.86 splitcA_in_gaa(.(X1, X2), .(X1, X3), X4) -> U11_gaa(X1, X2, X3, X4, splitcA_in_gaa(X2, X4, X3)) 11.64/3.86 U11_gaa(X1, X2, X3, X4, splitcA_out_gaa(X2, X4, X3)) -> splitcA_out_gaa(.(X1, X2), .(X1, X3), X4) 11.64/3.86 U17_ggaa(X1, X2, X3, X4, splitcA_out_gaa(X2, X4, X3)) -> splitcD_out_ggaa(X1, X2, .(X1, X3), X4) 11.64/3.86 mergesortcB_in_ga([], []) -> mergesortcB_out_ga([], []) 11.64/3.86 mergesortcB_in_ga(.(X1, []), .(X1, [])) -> mergesortcB_out_ga(.(X1, []), .(X1, [])) 11.64/3.86 mergesortcB_in_ga(.(X1, .(X2, X3)), X4) -> U12_ga(X1, X2, X3, X4, splitcD_in_ggaa(X2, X3, X5, X6)) 11.64/3.86 U12_ga(X1, X2, X3, X4, splitcD_out_ggaa(X2, X3, X5, X6)) -> U13_ga(X1, X2, X3, X4, X5, X6, mergesortcB_in_ga(.(X1, X6), X7)) 11.64/3.86 U13_ga(X1, X2, X3, X4, X5, X6, mergesortcB_out_ga(.(X1, X6), X7)) -> U14_ga(X1, X2, X3, X4, X5, X6, X7, mergesortcB_in_ga(X5, X8)) 11.64/3.86 U14_ga(X1, X2, X3, X4, X5, X6, X7, mergesortcB_out_ga(X5, X8)) -> U15_ga(X1, X2, X3, X4, mergecC_in_gga(X7, X8, X4)) 11.64/3.86 mergecC_in_gga([], X1, X1) -> mergecC_out_gga([], X1, X1) 11.64/3.86 mergecC_in_gga(X1, [], X1) -> mergecC_out_gga(X1, [], X1) 11.64/3.86 mergecC_in_gga(.(X1, X2), .(X1, X3), .(X1, X4)) -> U16_gga(X1, X2, X3, X4, mergecC_in_gga(.(X1, X2), X3, X4)) 11.64/3.86 U16_gga(X1, X2, X3, X4, mergecC_out_gga(.(X1, X2), X3, X4)) -> mergecC_out_gga(.(X1, X2), .(X1, X3), .(X1, X4)) 11.64/3.86 U15_ga(X1, X2, X3, X4, mergecC_out_gga(X7, X8, X4)) -> mergesortcB_out_ga(.(X1, .(X2, X3)), X4) 11.64/3.86 11.64/3.86 The argument filtering Pi contains the following mapping: 11.64/3.86 mergesortB_in_ga(x1, x2) = mergesortB_in_ga(x1) 11.64/3.86 11.64/3.86 .(x1, x2) = .(x1, x2) 11.64/3.86 11.64/3.86 splitA_in_gaa(x1, x2, x3) = splitA_in_gaa(x1) 11.64/3.86 11.64/3.86 splitcD_in_ggaa(x1, x2, x3, x4) = splitcD_in_ggaa(x1, x2) 11.64/3.86 11.64/3.86 U17_ggaa(x1, x2, x3, x4, x5) = U17_ggaa(x1, x2, x5) 11.64/3.86 11.64/3.86 splitcA_in_gaa(x1, x2, x3) = splitcA_in_gaa(x1) 11.64/3.86 11.64/3.86 [] = [] 11.64/3.86 11.64/3.86 splitcA_out_gaa(x1, x2, x3) = splitcA_out_gaa(x1, x2, x3) 11.64/3.86 11.64/3.86 U11_gaa(x1, x2, x3, x4, x5) = U11_gaa(x1, x2, x5) 11.64/3.86 11.64/3.86 splitcD_out_ggaa(x1, x2, x3, x4) = splitcD_out_ggaa(x1, x2, x3, x4) 11.64/3.86 11.64/3.86 mergesortcB_in_ga(x1, x2) = mergesortcB_in_ga(x1) 11.64/3.86 11.64/3.86 mergesortcB_out_ga(x1, x2) = mergesortcB_out_ga(x1, x2) 11.64/3.86 11.64/3.86 U12_ga(x1, x2, x3, x4, x5) = U12_ga(x1, x2, x3, x5) 11.64/3.86 11.64/3.86 U13_ga(x1, x2, x3, x4, x5, x6, x7) = U13_ga(x1, x2, x3, x5, x7) 11.64/3.86 11.64/3.86 U14_ga(x1, x2, x3, x4, x5, x6, x7, x8) = U14_ga(x1, x2, x3, x7, x8) 11.64/3.86 11.64/3.86 U15_ga(x1, x2, x3, x4, x5) = U15_ga(x1, x2, x3, x5) 11.64/3.86 11.64/3.86 mergecC_in_gga(x1, x2, x3) = mergecC_in_gga(x1, x2) 11.64/3.86 11.64/3.86 mergecC_out_gga(x1, x2, x3) = mergecC_out_gga(x1, x2, x3) 11.64/3.86 11.64/3.86 U16_gga(x1, x2, x3, x4, x5) = U16_gga(x1, x2, x3, x5) 11.64/3.86 11.64/3.86 mergeC_in_gga(x1, x2, x3) = mergeC_in_gga(x1, x2) 11.64/3.86 11.64/3.86 MERGESORTB_IN_GA(x1, x2) = MERGESORTB_IN_GA(x1) 11.64/3.86 11.64/3.86 U3_GA(x1, x2, x3, x4, x5) = U3_GA(x1, x2, x3, x5) 11.64/3.86 11.64/3.86 SPLITA_IN_GAA(x1, x2, x3) = SPLITA_IN_GAA(x1) 11.64/3.86 11.64/3.86 U1_GAA(x1, x2, x3, x4, x5) = U1_GAA(x1, x2, x5) 11.64/3.86 11.64/3.86 U4_GA(x1, x2, x3, x4, x5) = U4_GA(x1, x2, x3, x5) 11.64/3.86 11.64/3.86 U5_GA(x1, x2, x3, x4, x5) = U5_GA(x1, x2, x3, x5) 11.64/3.86 11.64/3.86 U6_GA(x1, x2, x3, x4, x5, x6) = U6_GA(x1, x2, x3, x5, x6) 11.64/3.86 11.64/3.86 U7_GA(x1, x2, x3, x4, x5) = U7_GA(x1, x2, x3, x5) 11.64/3.86 11.64/3.86 U8_GA(x1, x2, x3, x4, x5, x6) = U8_GA(x1, x2, x3, x5, x6) 11.64/3.86 11.64/3.86 U9_GA(x1, x2, x3, x4, x5) = U9_GA(x1, x2, x3, x5) 11.64/3.86 11.64/3.86 MERGEC_IN_GGA(x1, x2, x3) = MERGEC_IN_GGA(x1, x2) 11.64/3.86 11.64/3.86 U2_GGA(x1, x2, x3, x4, x5) = U2_GGA(x1, x2, x3, x5) 11.64/3.86 11.64/3.86 11.64/3.86 We have to consider all (P,R,Pi)-chains 11.64/3.86 11.64/3.86 11.64/3.86 Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES 11.64/3.86 11.64/3.86 11.64/3.86 11.64/3.86 ---------------------------------------- 11.64/3.86 11.64/3.86 (4) 11.64/3.86 Obligation: 11.64/3.86 Pi DP problem: 11.64/3.86 The TRS P consists of the following rules: 11.64/3.86 11.64/3.86 MERGESORTB_IN_GA(.(X1, .(X2, X3)), X4) -> U3_GA(X1, X2, X3, X4, splitA_in_gaa(X3, X5, X6)) 11.64/3.86 MERGESORTB_IN_GA(.(X1, .(X2, X3)), X4) -> SPLITA_IN_GAA(X3, X5, X6) 11.64/3.86 SPLITA_IN_GAA(.(X1, X2), .(X1, X3), X4) -> U1_GAA(X1, X2, X3, X4, splitA_in_gaa(X2, X4, X3)) 11.64/3.86 SPLITA_IN_GAA(.(X1, X2), .(X1, X3), X4) -> SPLITA_IN_GAA(X2, X4, X3) 11.64/3.86 MERGESORTB_IN_GA(.(X1, .(X2, X3)), X4) -> U4_GA(X1, X2, X3, X4, splitcD_in_ggaa(X2, X3, X5, X6)) 11.64/3.86 U4_GA(X1, X2, X3, X4, splitcD_out_ggaa(X2, X3, X5, X6)) -> U5_GA(X1, X2, X3, X4, mergesortB_in_ga(.(X1, X6), X7)) 11.64/3.86 U4_GA(X1, X2, X3, X4, splitcD_out_ggaa(X2, X3, X5, X6)) -> MERGESORTB_IN_GA(.(X1, X6), X7) 11.64/3.86 U4_GA(X1, X2, X3, X4, splitcD_out_ggaa(X2, X3, X5, X6)) -> U6_GA(X1, X2, X3, X4, X5, mergesortcB_in_ga(.(X1, X6), X7)) 11.64/3.86 U6_GA(X1, X2, X3, X4, X5, mergesortcB_out_ga(.(X1, X6), X7)) -> U7_GA(X1, X2, X3, X4, mergesortB_in_ga(X5, X8)) 11.64/3.86 U6_GA(X1, X2, X3, X4, X5, mergesortcB_out_ga(.(X1, X6), X7)) -> MERGESORTB_IN_GA(X5, X8) 11.64/3.86 U6_GA(X1, X2, X3, X4, X5, mergesortcB_out_ga(.(X1, X6), X7)) -> U8_GA(X1, X2, X3, X4, X7, mergesortcB_in_ga(X5, X8)) 11.64/3.86 U8_GA(X1, X2, X3, X4, X7, mergesortcB_out_ga(X5, X8)) -> U9_GA(X1, X2, X3, X4, mergeC_in_gga(X7, X8, X4)) 11.64/3.86 U8_GA(X1, X2, X3, X4, X7, mergesortcB_out_ga(X5, X8)) -> MERGEC_IN_GGA(X7, X8, X4) 11.64/3.86 MERGEC_IN_GGA(.(X1, X2), .(X1, X3), .(X1, X4)) -> U2_GGA(X1, X2, X3, X4, mergeC_in_gga(.(X1, X2), X3, X4)) 11.64/3.86 MERGEC_IN_GGA(.(X1, X2), .(X1, X3), .(X1, X4)) -> MERGEC_IN_GGA(.(X1, X2), X3, X4) 11.64/3.86 11.64/3.86 The TRS R consists of the following rules: 11.64/3.86 11.64/3.86 splitcD_in_ggaa(X1, X2, .(X1, X3), X4) -> U17_ggaa(X1, X2, X3, X4, splitcA_in_gaa(X2, X4, X3)) 11.64/3.86 splitcA_in_gaa([], [], []) -> splitcA_out_gaa([], [], []) 11.64/3.86 splitcA_in_gaa(.(X1, X2), .(X1, X3), X4) -> U11_gaa(X1, X2, X3, X4, splitcA_in_gaa(X2, X4, X3)) 11.64/3.86 U11_gaa(X1, X2, X3, X4, splitcA_out_gaa(X2, X4, X3)) -> splitcA_out_gaa(.(X1, X2), .(X1, X3), X4) 11.64/3.86 U17_ggaa(X1, X2, X3, X4, splitcA_out_gaa(X2, X4, X3)) -> splitcD_out_ggaa(X1, X2, .(X1, X3), X4) 11.64/3.86 mergesortcB_in_ga([], []) -> mergesortcB_out_ga([], []) 11.64/3.86 mergesortcB_in_ga(.(X1, []), .(X1, [])) -> mergesortcB_out_ga(.(X1, []), .(X1, [])) 11.64/3.86 mergesortcB_in_ga(.(X1, .(X2, X3)), X4) -> U12_ga(X1, X2, X3, X4, splitcD_in_ggaa(X2, X3, X5, X6)) 11.64/3.86 U12_ga(X1, X2, X3, X4, splitcD_out_ggaa(X2, X3, X5, X6)) -> U13_ga(X1, X2, X3, X4, X5, X6, mergesortcB_in_ga(.(X1, X6), X7)) 11.64/3.86 U13_ga(X1, X2, X3, X4, X5, X6, mergesortcB_out_ga(.(X1, X6), X7)) -> U14_ga(X1, X2, X3, X4, X5, X6, X7, mergesortcB_in_ga(X5, X8)) 11.64/3.86 U14_ga(X1, X2, X3, X4, X5, X6, X7, mergesortcB_out_ga(X5, X8)) -> U15_ga(X1, X2, X3, X4, mergecC_in_gga(X7, X8, X4)) 11.64/3.86 mergecC_in_gga([], X1, X1) -> mergecC_out_gga([], X1, X1) 11.64/3.86 mergecC_in_gga(X1, [], X1) -> mergecC_out_gga(X1, [], X1) 11.64/3.86 mergecC_in_gga(.(X1, X2), .(X1, X3), .(X1, X4)) -> U16_gga(X1, X2, X3, X4, mergecC_in_gga(.(X1, X2), X3, X4)) 11.64/3.86 U16_gga(X1, X2, X3, X4, mergecC_out_gga(.(X1, X2), X3, X4)) -> mergecC_out_gga(.(X1, X2), .(X1, X3), .(X1, X4)) 11.64/3.86 U15_ga(X1, X2, X3, X4, mergecC_out_gga(X7, X8, X4)) -> mergesortcB_out_ga(.(X1, .(X2, X3)), X4) 11.64/3.86 11.64/3.86 The argument filtering Pi contains the following mapping: 11.64/3.86 mergesortB_in_ga(x1, x2) = mergesortB_in_ga(x1) 11.64/3.86 11.64/3.86 .(x1, x2) = .(x1, x2) 11.64/3.86 11.64/3.86 splitA_in_gaa(x1, x2, x3) = splitA_in_gaa(x1) 11.64/3.86 11.64/3.86 splitcD_in_ggaa(x1, x2, x3, x4) = splitcD_in_ggaa(x1, x2) 11.64/3.86 11.64/3.86 U17_ggaa(x1, x2, x3, x4, x5) = U17_ggaa(x1, x2, x5) 11.64/3.86 11.64/3.86 splitcA_in_gaa(x1, x2, x3) = splitcA_in_gaa(x1) 11.64/3.86 11.64/3.86 [] = [] 11.64/3.86 11.64/3.86 splitcA_out_gaa(x1, x2, x3) = splitcA_out_gaa(x1, x2, x3) 11.64/3.86 11.64/3.86 U11_gaa(x1, x2, x3, x4, x5) = U11_gaa(x1, x2, x5) 11.64/3.86 11.64/3.86 splitcD_out_ggaa(x1, x2, x3, x4) = splitcD_out_ggaa(x1, x2, x3, x4) 11.64/3.86 11.64/3.86 mergesortcB_in_ga(x1, x2) = mergesortcB_in_ga(x1) 11.64/3.86 11.64/3.86 mergesortcB_out_ga(x1, x2) = mergesortcB_out_ga(x1, x2) 11.64/3.86 11.64/3.86 U12_ga(x1, x2, x3, x4, x5) = U12_ga(x1, x2, x3, x5) 11.64/3.86 11.64/3.86 U13_ga(x1, x2, x3, x4, x5, x6, x7) = U13_ga(x1, x2, x3, x5, x7) 11.64/3.86 11.64/3.86 U14_ga(x1, x2, x3, x4, x5, x6, x7, x8) = U14_ga(x1, x2, x3, x7, x8) 11.64/3.86 11.64/3.86 U15_ga(x1, x2, x3, x4, x5) = U15_ga(x1, x2, x3, x5) 11.64/3.86 11.64/3.86 mergecC_in_gga(x1, x2, x3) = mergecC_in_gga(x1, x2) 11.64/3.86 11.64/3.86 mergecC_out_gga(x1, x2, x3) = mergecC_out_gga(x1, x2, x3) 11.64/3.86 11.64/3.86 U16_gga(x1, x2, x3, x4, x5) = U16_gga(x1, x2, x3, x5) 11.64/3.86 11.64/3.86 mergeC_in_gga(x1, x2, x3) = mergeC_in_gga(x1, x2) 11.64/3.86 11.64/3.86 MERGESORTB_IN_GA(x1, x2) = MERGESORTB_IN_GA(x1) 11.64/3.86 11.64/3.86 U3_GA(x1, x2, x3, x4, x5) = U3_GA(x1, x2, x3, x5) 11.64/3.86 11.64/3.86 SPLITA_IN_GAA(x1, x2, x3) = SPLITA_IN_GAA(x1) 11.64/3.86 11.64/3.86 U1_GAA(x1, x2, x3, x4, x5) = U1_GAA(x1, x2, x5) 11.64/3.86 11.64/3.86 U4_GA(x1, x2, x3, x4, x5) = U4_GA(x1, x2, x3, x5) 11.64/3.86 11.64/3.86 U5_GA(x1, x2, x3, x4, x5) = U5_GA(x1, x2, x3, x5) 11.64/3.86 11.64/3.86 U6_GA(x1, x2, x3, x4, x5, x6) = U6_GA(x1, x2, x3, x5, x6) 11.64/3.86 11.64/3.86 U7_GA(x1, x2, x3, x4, x5) = U7_GA(x1, x2, x3, x5) 11.64/3.86 11.64/3.86 U8_GA(x1, x2, x3, x4, x5, x6) = U8_GA(x1, x2, x3, x5, x6) 11.64/3.86 11.64/3.86 U9_GA(x1, x2, x3, x4, x5) = U9_GA(x1, x2, x3, x5) 11.64/3.86 11.64/3.86 MERGEC_IN_GGA(x1, x2, x3) = MERGEC_IN_GGA(x1, x2) 11.64/3.86 11.64/3.86 U2_GGA(x1, x2, x3, x4, x5) = U2_GGA(x1, x2, x3, x5) 11.64/3.86 11.64/3.86 11.64/3.86 We have to consider all (P,R,Pi)-chains 11.64/3.86 ---------------------------------------- 11.64/3.86 11.64/3.86 (5) DependencyGraphProof (EQUIVALENT) 11.64/3.86 The approximation of the Dependency Graph [LOPSTR] contains 3 SCCs with 9 less nodes. 11.64/3.86 ---------------------------------------- 11.64/3.86 11.64/3.86 (6) 11.64/3.86 Complex Obligation (AND) 11.64/3.86 11.64/3.86 ---------------------------------------- 11.64/3.86 11.64/3.86 (7) 11.64/3.86 Obligation: 11.64/3.86 Pi DP problem: 11.64/3.86 The TRS P consists of the following rules: 11.64/3.86 11.64/3.86 MERGEC_IN_GGA(.(X1, X2), .(X1, X3), .(X1, X4)) -> MERGEC_IN_GGA(.(X1, X2), X3, X4) 11.64/3.86 11.64/3.86 The TRS R consists of the following rules: 11.64/3.86 11.64/3.86 splitcD_in_ggaa(X1, X2, .(X1, X3), X4) -> U17_ggaa(X1, X2, X3, X4, splitcA_in_gaa(X2, X4, X3)) 11.64/3.86 splitcA_in_gaa([], [], []) -> splitcA_out_gaa([], [], []) 11.64/3.86 splitcA_in_gaa(.(X1, X2), .(X1, X3), X4) -> U11_gaa(X1, X2, X3, X4, splitcA_in_gaa(X2, X4, X3)) 11.64/3.86 U11_gaa(X1, X2, X3, X4, splitcA_out_gaa(X2, X4, X3)) -> splitcA_out_gaa(.(X1, X2), .(X1, X3), X4) 11.64/3.86 U17_ggaa(X1, X2, X3, X4, splitcA_out_gaa(X2, X4, X3)) -> splitcD_out_ggaa(X1, X2, .(X1, X3), X4) 11.64/3.86 mergesortcB_in_ga([], []) -> mergesortcB_out_ga([], []) 11.64/3.86 mergesortcB_in_ga(.(X1, []), .(X1, [])) -> mergesortcB_out_ga(.(X1, []), .(X1, [])) 11.64/3.86 mergesortcB_in_ga(.(X1, .(X2, X3)), X4) -> U12_ga(X1, X2, X3, X4, splitcD_in_ggaa(X2, X3, X5, X6)) 11.64/3.86 U12_ga(X1, X2, X3, X4, splitcD_out_ggaa(X2, X3, X5, X6)) -> U13_ga(X1, X2, X3, X4, X5, X6, mergesortcB_in_ga(.(X1, X6), X7)) 11.64/3.86 U13_ga(X1, X2, X3, X4, X5, X6, mergesortcB_out_ga(.(X1, X6), X7)) -> U14_ga(X1, X2, X3, X4, X5, X6, X7, mergesortcB_in_ga(X5, X8)) 11.64/3.86 U14_ga(X1, X2, X3, X4, X5, X6, X7, mergesortcB_out_ga(X5, X8)) -> U15_ga(X1, X2, X3, X4, mergecC_in_gga(X7, X8, X4)) 11.64/3.86 mergecC_in_gga([], X1, X1) -> mergecC_out_gga([], X1, X1) 11.64/3.86 mergecC_in_gga(X1, [], X1) -> mergecC_out_gga(X1, [], X1) 11.64/3.86 mergecC_in_gga(.(X1, X2), .(X1, X3), .(X1, X4)) -> U16_gga(X1, X2, X3, X4, mergecC_in_gga(.(X1, X2), X3, X4)) 11.64/3.86 U16_gga(X1, X2, X3, X4, mergecC_out_gga(.(X1, X2), X3, X4)) -> mergecC_out_gga(.(X1, X2), .(X1, X3), .(X1, X4)) 11.64/3.86 U15_ga(X1, X2, X3, X4, mergecC_out_gga(X7, X8, X4)) -> mergesortcB_out_ga(.(X1, .(X2, X3)), X4) 11.64/3.86 11.64/3.86 The argument filtering Pi contains the following mapping: 11.64/3.86 .(x1, x2) = .(x1, x2) 11.64/3.86 11.64/3.86 splitcD_in_ggaa(x1, x2, x3, x4) = splitcD_in_ggaa(x1, x2) 11.64/3.86 11.64/3.86 U17_ggaa(x1, x2, x3, x4, x5) = U17_ggaa(x1, x2, x5) 11.64/3.86 11.64/3.86 splitcA_in_gaa(x1, x2, x3) = splitcA_in_gaa(x1) 11.64/3.86 11.64/3.86 [] = [] 11.64/3.86 11.64/3.86 splitcA_out_gaa(x1, x2, x3) = splitcA_out_gaa(x1, x2, x3) 11.64/3.86 11.64/3.86 U11_gaa(x1, x2, x3, x4, x5) = U11_gaa(x1, x2, x5) 11.64/3.86 11.64/3.86 splitcD_out_ggaa(x1, x2, x3, x4) = splitcD_out_ggaa(x1, x2, x3, x4) 11.64/3.86 11.64/3.86 mergesortcB_in_ga(x1, x2) = mergesortcB_in_ga(x1) 11.64/3.86 11.64/3.86 mergesortcB_out_ga(x1, x2) = mergesortcB_out_ga(x1, x2) 11.64/3.86 11.64/3.86 U12_ga(x1, x2, x3, x4, x5) = U12_ga(x1, x2, x3, x5) 11.64/3.86 11.64/3.86 U13_ga(x1, x2, x3, x4, x5, x6, x7) = U13_ga(x1, x2, x3, x5, x7) 11.64/3.86 11.64/3.86 U14_ga(x1, x2, x3, x4, x5, x6, x7, x8) = U14_ga(x1, x2, x3, x7, x8) 11.64/3.86 11.64/3.86 U15_ga(x1, x2, x3, x4, x5) = U15_ga(x1, x2, x3, x5) 11.64/3.86 11.64/3.86 mergecC_in_gga(x1, x2, x3) = mergecC_in_gga(x1, x2) 11.64/3.86 11.64/3.86 mergecC_out_gga(x1, x2, x3) = mergecC_out_gga(x1, x2, x3) 11.64/3.86 11.64/3.86 U16_gga(x1, x2, x3, x4, x5) = U16_gga(x1, x2, x3, x5) 11.64/3.86 11.64/3.86 MERGEC_IN_GGA(x1, x2, x3) = MERGEC_IN_GGA(x1, x2) 11.64/3.86 11.64/3.86 11.64/3.86 We have to consider all (P,R,Pi)-chains 11.64/3.86 ---------------------------------------- 11.64/3.86 11.64/3.86 (8) UsableRulesProof (EQUIVALENT) 11.64/3.86 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 11.64/3.86 ---------------------------------------- 11.64/3.86 11.64/3.86 (9) 11.64/3.86 Obligation: 11.64/3.86 Pi DP problem: 11.64/3.86 The TRS P consists of the following rules: 11.64/3.86 11.64/3.86 MERGEC_IN_GGA(.(X1, X2), .(X1, X3), .(X1, X4)) -> MERGEC_IN_GGA(.(X1, X2), X3, X4) 11.64/3.86 11.64/3.86 R is empty. 11.64/3.86 The argument filtering Pi contains the following mapping: 11.64/3.86 .(x1, x2) = .(x1, x2) 11.64/3.86 11.64/3.86 MERGEC_IN_GGA(x1, x2, x3) = MERGEC_IN_GGA(x1, x2) 11.64/3.86 11.64/3.86 11.64/3.86 We have to consider all (P,R,Pi)-chains 11.64/3.86 ---------------------------------------- 11.64/3.86 11.64/3.86 (10) PiDPToQDPProof (SOUND) 11.64/3.86 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 11.64/3.86 ---------------------------------------- 11.64/3.86 11.64/3.86 (11) 11.64/3.86 Obligation: 11.64/3.86 Q DP problem: 11.64/3.86 The TRS P consists of the following rules: 11.64/3.86 11.64/3.86 MERGEC_IN_GGA(.(X1, X2), .(X1, X3)) -> MERGEC_IN_GGA(.(X1, X2), X3) 11.64/3.86 11.64/3.86 R is empty. 11.64/3.86 Q is empty. 11.64/3.86 We have to consider all (P,Q,R)-chains. 11.64/3.86 ---------------------------------------- 11.64/3.86 11.64/3.86 (12) QDPSizeChangeProof (EQUIVALENT) 11.64/3.86 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. 11.64/3.86 11.64/3.86 From the DPs we obtained the following set of size-change graphs: 11.64/3.86 *MERGEC_IN_GGA(.(X1, X2), .(X1, X3)) -> MERGEC_IN_GGA(.(X1, X2), X3) 11.64/3.86 The graph contains the following edges 1 >= 1, 2 > 2 11.64/3.86 11.64/3.86 11.64/3.86 ---------------------------------------- 11.64/3.86 11.64/3.86 (13) 11.64/3.86 YES 11.64/3.86 11.64/3.86 ---------------------------------------- 11.64/3.86 11.64/3.86 (14) 11.64/3.86 Obligation: 11.64/3.86 Pi DP problem: 11.64/3.86 The TRS P consists of the following rules: 11.64/3.86 11.64/3.86 SPLITA_IN_GAA(.(X1, X2), .(X1, X3), X4) -> SPLITA_IN_GAA(X2, X4, X3) 11.64/3.86 11.64/3.86 The TRS R consists of the following rules: 11.64/3.86 11.64/3.86 splitcD_in_ggaa(X1, X2, .(X1, X3), X4) -> U17_ggaa(X1, X2, X3, X4, splitcA_in_gaa(X2, X4, X3)) 11.64/3.86 splitcA_in_gaa([], [], []) -> splitcA_out_gaa([], [], []) 11.64/3.86 splitcA_in_gaa(.(X1, X2), .(X1, X3), X4) -> U11_gaa(X1, X2, X3, X4, splitcA_in_gaa(X2, X4, X3)) 11.64/3.86 U11_gaa(X1, X2, X3, X4, splitcA_out_gaa(X2, X4, X3)) -> splitcA_out_gaa(.(X1, X2), .(X1, X3), X4) 11.64/3.86 U17_ggaa(X1, X2, X3, X4, splitcA_out_gaa(X2, X4, X3)) -> splitcD_out_ggaa(X1, X2, .(X1, X3), X4) 11.64/3.86 mergesortcB_in_ga([], []) -> mergesortcB_out_ga([], []) 11.64/3.86 mergesortcB_in_ga(.(X1, []), .(X1, [])) -> mergesortcB_out_ga(.(X1, []), .(X1, [])) 11.64/3.86 mergesortcB_in_ga(.(X1, .(X2, X3)), X4) -> U12_ga(X1, X2, X3, X4, splitcD_in_ggaa(X2, X3, X5, X6)) 11.64/3.86 U12_ga(X1, X2, X3, X4, splitcD_out_ggaa(X2, X3, X5, X6)) -> U13_ga(X1, X2, X3, X4, X5, X6, mergesortcB_in_ga(.(X1, X6), X7)) 11.64/3.86 U13_ga(X1, X2, X3, X4, X5, X6, mergesortcB_out_ga(.(X1, X6), X7)) -> U14_ga(X1, X2, X3, X4, X5, X6, X7, mergesortcB_in_ga(X5, X8)) 11.64/3.86 U14_ga(X1, X2, X3, X4, X5, X6, X7, mergesortcB_out_ga(X5, X8)) -> U15_ga(X1, X2, X3, X4, mergecC_in_gga(X7, X8, X4)) 11.64/3.86 mergecC_in_gga([], X1, X1) -> mergecC_out_gga([], X1, X1) 11.64/3.86 mergecC_in_gga(X1, [], X1) -> mergecC_out_gga(X1, [], X1) 11.64/3.86 mergecC_in_gga(.(X1, X2), .(X1, X3), .(X1, X4)) -> U16_gga(X1, X2, X3, X4, mergecC_in_gga(.(X1, X2), X3, X4)) 11.64/3.86 U16_gga(X1, X2, X3, X4, mergecC_out_gga(.(X1, X2), X3, X4)) -> mergecC_out_gga(.(X1, X2), .(X1, X3), .(X1, X4)) 11.64/3.86 U15_ga(X1, X2, X3, X4, mergecC_out_gga(X7, X8, X4)) -> mergesortcB_out_ga(.(X1, .(X2, X3)), X4) 11.64/3.86 11.64/3.86 The argument filtering Pi contains the following mapping: 11.64/3.86 .(x1, x2) = .(x1, x2) 11.64/3.86 11.64/3.86 splitcD_in_ggaa(x1, x2, x3, x4) = splitcD_in_ggaa(x1, x2) 11.64/3.86 11.64/3.86 U17_ggaa(x1, x2, x3, x4, x5) = U17_ggaa(x1, x2, x5) 11.64/3.86 11.64/3.86 splitcA_in_gaa(x1, x2, x3) = splitcA_in_gaa(x1) 11.64/3.86 11.64/3.86 [] = [] 11.64/3.86 11.64/3.86 splitcA_out_gaa(x1, x2, x3) = splitcA_out_gaa(x1, x2, x3) 11.64/3.86 11.64/3.86 U11_gaa(x1, x2, x3, x4, x5) = U11_gaa(x1, x2, x5) 11.64/3.86 11.64/3.86 splitcD_out_ggaa(x1, x2, x3, x4) = splitcD_out_ggaa(x1, x2, x3, x4) 11.64/3.86 11.64/3.86 mergesortcB_in_ga(x1, x2) = mergesortcB_in_ga(x1) 11.64/3.86 11.64/3.86 mergesortcB_out_ga(x1, x2) = mergesortcB_out_ga(x1, x2) 11.64/3.86 11.64/3.86 U12_ga(x1, x2, x3, x4, x5) = U12_ga(x1, x2, x3, x5) 11.64/3.86 11.64/3.86 U13_ga(x1, x2, x3, x4, x5, x6, x7) = U13_ga(x1, x2, x3, x5, x7) 11.64/3.86 11.64/3.86 U14_ga(x1, x2, x3, x4, x5, x6, x7, x8) = U14_ga(x1, x2, x3, x7, x8) 11.64/3.86 11.64/3.86 U15_ga(x1, x2, x3, x4, x5) = U15_ga(x1, x2, x3, x5) 11.64/3.86 11.64/3.86 mergecC_in_gga(x1, x2, x3) = mergecC_in_gga(x1, x2) 11.64/3.86 11.64/3.86 mergecC_out_gga(x1, x2, x3) = mergecC_out_gga(x1, x2, x3) 11.64/3.86 11.64/3.86 U16_gga(x1, x2, x3, x4, x5) = U16_gga(x1, x2, x3, x5) 11.64/3.86 11.64/3.86 SPLITA_IN_GAA(x1, x2, x3) = SPLITA_IN_GAA(x1) 11.64/3.86 11.64/3.86 11.64/3.86 We have to consider all (P,R,Pi)-chains 11.64/3.86 ---------------------------------------- 11.64/3.86 11.64/3.86 (15) UsableRulesProof (EQUIVALENT) 11.64/3.86 For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. 11.64/3.86 ---------------------------------------- 11.64/3.86 11.64/3.86 (16) 11.64/3.86 Obligation: 11.64/3.86 Pi DP problem: 11.64/3.86 The TRS P consists of the following rules: 11.64/3.86 11.64/3.86 SPLITA_IN_GAA(.(X1, X2), .(X1, X3), X4) -> SPLITA_IN_GAA(X2, X4, X3) 11.64/3.86 11.64/3.86 R is empty. 11.64/3.86 The argument filtering Pi contains the following mapping: 11.64/3.86 .(x1, x2) = .(x1, x2) 11.64/3.86 11.64/3.86 SPLITA_IN_GAA(x1, x2, x3) = SPLITA_IN_GAA(x1) 11.64/3.86 11.64/3.86 11.64/3.86 We have to consider all (P,R,Pi)-chains 11.64/3.86 ---------------------------------------- 11.64/3.86 11.64/3.86 (17) PiDPToQDPProof (SOUND) 11.64/3.86 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 11.64/3.86 ---------------------------------------- 11.64/3.86 11.64/3.86 (18) 11.64/3.86 Obligation: 11.64/3.86 Q DP problem: 11.64/3.86 The TRS P consists of the following rules: 11.64/3.86 11.64/3.86 SPLITA_IN_GAA(.(X1, X2)) -> SPLITA_IN_GAA(X2) 11.64/3.86 11.64/3.86 R is empty. 11.64/3.86 Q is empty. 11.64/3.86 We have to consider all (P,Q,R)-chains. 11.64/3.86 ---------------------------------------- 11.64/3.86 11.64/3.86 (19) QDPSizeChangeProof (EQUIVALENT) 11.64/3.86 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. 11.64/3.86 11.64/3.86 From the DPs we obtained the following set of size-change graphs: 11.64/3.86 *SPLITA_IN_GAA(.(X1, X2)) -> SPLITA_IN_GAA(X2) 11.64/3.86 The graph contains the following edges 1 > 1 11.64/3.86 11.64/3.86 11.64/3.86 ---------------------------------------- 11.64/3.86 11.64/3.86 (20) 11.64/3.86 YES 11.64/3.86 11.64/3.86 ---------------------------------------- 11.64/3.86 11.64/3.86 (21) 11.64/3.86 Obligation: 11.64/3.86 Pi DP problem: 11.64/3.86 The TRS P consists of the following rules: 11.64/3.86 11.64/3.86 MERGESORTB_IN_GA(.(X1, .(X2, X3)), X4) -> U4_GA(X1, X2, X3, X4, splitcD_in_ggaa(X2, X3, X5, X6)) 11.64/3.86 U4_GA(X1, X2, X3, X4, splitcD_out_ggaa(X2, X3, X5, X6)) -> MERGESORTB_IN_GA(.(X1, X6), X7) 11.64/3.86 U4_GA(X1, X2, X3, X4, splitcD_out_ggaa(X2, X3, X5, X6)) -> U6_GA(X1, X2, X3, X4, X5, mergesortcB_in_ga(.(X1, X6), X7)) 11.64/3.86 U6_GA(X1, X2, X3, X4, X5, mergesortcB_out_ga(.(X1, X6), X7)) -> MERGESORTB_IN_GA(X5, X8) 11.64/3.86 11.64/3.86 The TRS R consists of the following rules: 11.64/3.86 11.64/3.86 splitcD_in_ggaa(X1, X2, .(X1, X3), X4) -> U17_ggaa(X1, X2, X3, X4, splitcA_in_gaa(X2, X4, X3)) 11.64/3.86 splitcA_in_gaa([], [], []) -> splitcA_out_gaa([], [], []) 11.64/3.86 splitcA_in_gaa(.(X1, X2), .(X1, X3), X4) -> U11_gaa(X1, X2, X3, X4, splitcA_in_gaa(X2, X4, X3)) 11.64/3.86 U11_gaa(X1, X2, X3, X4, splitcA_out_gaa(X2, X4, X3)) -> splitcA_out_gaa(.(X1, X2), .(X1, X3), X4) 11.64/3.86 U17_ggaa(X1, X2, X3, X4, splitcA_out_gaa(X2, X4, X3)) -> splitcD_out_ggaa(X1, X2, .(X1, X3), X4) 11.64/3.86 mergesortcB_in_ga([], []) -> mergesortcB_out_ga([], []) 11.64/3.86 mergesortcB_in_ga(.(X1, []), .(X1, [])) -> mergesortcB_out_ga(.(X1, []), .(X1, [])) 11.64/3.86 mergesortcB_in_ga(.(X1, .(X2, X3)), X4) -> U12_ga(X1, X2, X3, X4, splitcD_in_ggaa(X2, X3, X5, X6)) 11.64/3.86 U12_ga(X1, X2, X3, X4, splitcD_out_ggaa(X2, X3, X5, X6)) -> U13_ga(X1, X2, X3, X4, X5, X6, mergesortcB_in_ga(.(X1, X6), X7)) 11.64/3.86 U13_ga(X1, X2, X3, X4, X5, X6, mergesortcB_out_ga(.(X1, X6), X7)) -> U14_ga(X1, X2, X3, X4, X5, X6, X7, mergesortcB_in_ga(X5, X8)) 11.64/3.86 U14_ga(X1, X2, X3, X4, X5, X6, X7, mergesortcB_out_ga(X5, X8)) -> U15_ga(X1, X2, X3, X4, mergecC_in_gga(X7, X8, X4)) 11.64/3.86 mergecC_in_gga([], X1, X1) -> mergecC_out_gga([], X1, X1) 11.64/3.86 mergecC_in_gga(X1, [], X1) -> mergecC_out_gga(X1, [], X1) 11.64/3.86 mergecC_in_gga(.(X1, X2), .(X1, X3), .(X1, X4)) -> U16_gga(X1, X2, X3, X4, mergecC_in_gga(.(X1, X2), X3, X4)) 11.64/3.86 U16_gga(X1, X2, X3, X4, mergecC_out_gga(.(X1, X2), X3, X4)) -> mergecC_out_gga(.(X1, X2), .(X1, X3), .(X1, X4)) 11.64/3.86 U15_ga(X1, X2, X3, X4, mergecC_out_gga(X7, X8, X4)) -> mergesortcB_out_ga(.(X1, .(X2, X3)), X4) 11.64/3.86 11.64/3.86 The argument filtering Pi contains the following mapping: 11.64/3.86 .(x1, x2) = .(x1, x2) 11.64/3.86 11.64/3.86 splitcD_in_ggaa(x1, x2, x3, x4) = splitcD_in_ggaa(x1, x2) 11.64/3.86 11.64/3.86 U17_ggaa(x1, x2, x3, x4, x5) = U17_ggaa(x1, x2, x5) 11.64/3.86 11.64/3.86 splitcA_in_gaa(x1, x2, x3) = splitcA_in_gaa(x1) 11.64/3.86 11.64/3.86 [] = [] 11.64/3.86 11.64/3.86 splitcA_out_gaa(x1, x2, x3) = splitcA_out_gaa(x1, x2, x3) 11.64/3.86 11.64/3.86 U11_gaa(x1, x2, x3, x4, x5) = U11_gaa(x1, x2, x5) 11.64/3.86 11.64/3.86 splitcD_out_ggaa(x1, x2, x3, x4) = splitcD_out_ggaa(x1, x2, x3, x4) 11.64/3.86 11.64/3.86 mergesortcB_in_ga(x1, x2) = mergesortcB_in_ga(x1) 11.64/3.86 11.64/3.86 mergesortcB_out_ga(x1, x2) = mergesortcB_out_ga(x1, x2) 11.64/3.86 11.64/3.86 U12_ga(x1, x2, x3, x4, x5) = U12_ga(x1, x2, x3, x5) 11.64/3.86 11.64/3.86 U13_ga(x1, x2, x3, x4, x5, x6, x7) = U13_ga(x1, x2, x3, x5, x7) 11.64/3.86 11.64/3.86 U14_ga(x1, x2, x3, x4, x5, x6, x7, x8) = U14_ga(x1, x2, x3, x7, x8) 11.64/3.86 11.64/3.86 U15_ga(x1, x2, x3, x4, x5) = U15_ga(x1, x2, x3, x5) 11.64/3.86 11.64/3.86 mergecC_in_gga(x1, x2, x3) = mergecC_in_gga(x1, x2) 11.64/3.86 11.64/3.86 mergecC_out_gga(x1, x2, x3) = mergecC_out_gga(x1, x2, x3) 11.64/3.86 11.64/3.86 U16_gga(x1, x2, x3, x4, x5) = U16_gga(x1, x2, x3, x5) 11.64/3.86 11.64/3.86 MERGESORTB_IN_GA(x1, x2) = MERGESORTB_IN_GA(x1) 11.64/3.86 11.64/3.86 U4_GA(x1, x2, x3, x4, x5) = U4_GA(x1, x2, x3, x5) 11.64/3.86 11.64/3.86 U6_GA(x1, x2, x3, x4, x5, x6) = U6_GA(x1, x2, x3, x5, x6) 11.64/3.86 11.64/3.86 11.64/3.86 We have to consider all (P,R,Pi)-chains 11.64/3.86 ---------------------------------------- 11.64/3.86 11.64/3.86 (22) PiDPToQDPProof (SOUND) 11.64/3.86 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 11.64/3.86 ---------------------------------------- 11.64/3.86 11.64/3.86 (23) 11.64/3.86 Obligation: 11.64/3.86 Q DP problem: 11.64/3.86 The TRS P consists of the following rules: 11.64/3.86 11.64/3.86 MERGESORTB_IN_GA(.(X1, .(X2, X3))) -> U4_GA(X1, X2, X3, splitcD_in_ggaa(X2, X3)) 11.64/3.86 U4_GA(X1, X2, X3, splitcD_out_ggaa(X2, X3, X5, X6)) -> MERGESORTB_IN_GA(.(X1, X6)) 11.64/3.86 U4_GA(X1, X2, X3, splitcD_out_ggaa(X2, X3, X5, X6)) -> U6_GA(X1, X2, X3, X5, mergesortcB_in_ga(.(X1, X6))) 11.64/3.86 U6_GA(X1, X2, X3, X5, mergesortcB_out_ga(.(X1, X6), X7)) -> MERGESORTB_IN_GA(X5) 11.64/3.86 11.64/3.86 The TRS R consists of the following rules: 11.64/3.86 11.64/3.86 splitcD_in_ggaa(X1, X2) -> U17_ggaa(X1, X2, splitcA_in_gaa(X2)) 11.64/3.86 splitcA_in_gaa([]) -> splitcA_out_gaa([], [], []) 11.64/3.86 splitcA_in_gaa(.(X1, X2)) -> U11_gaa(X1, X2, splitcA_in_gaa(X2)) 11.64/3.86 U11_gaa(X1, X2, splitcA_out_gaa(X2, X4, X3)) -> splitcA_out_gaa(.(X1, X2), .(X1, X3), X4) 11.64/3.86 U17_ggaa(X1, X2, splitcA_out_gaa(X2, X4, X3)) -> splitcD_out_ggaa(X1, X2, .(X1, X3), X4) 11.64/3.86 mergesortcB_in_ga([]) -> mergesortcB_out_ga([], []) 11.64/3.86 mergesortcB_in_ga(.(X1, [])) -> mergesortcB_out_ga(.(X1, []), .(X1, [])) 11.64/3.86 mergesortcB_in_ga(.(X1, .(X2, X3))) -> U12_ga(X1, X2, X3, splitcD_in_ggaa(X2, X3)) 11.64/3.86 U12_ga(X1, X2, X3, splitcD_out_ggaa(X2, X3, X5, X6)) -> U13_ga(X1, X2, X3, X5, mergesortcB_in_ga(.(X1, X6))) 11.64/3.86 U13_ga(X1, X2, X3, X5, mergesortcB_out_ga(.(X1, X6), X7)) -> U14_ga(X1, X2, X3, X7, mergesortcB_in_ga(X5)) 11.64/3.86 U14_ga(X1, X2, X3, X7, mergesortcB_out_ga(X5, X8)) -> U15_ga(X1, X2, X3, mergecC_in_gga(X7, X8)) 11.64/3.86 mergecC_in_gga([], X1) -> mergecC_out_gga([], X1, X1) 11.64/3.86 mergecC_in_gga(X1, []) -> mergecC_out_gga(X1, [], X1) 11.64/3.86 mergecC_in_gga(.(X1, X2), .(X1, X3)) -> U16_gga(X1, X2, X3, mergecC_in_gga(.(X1, X2), X3)) 11.64/3.86 U16_gga(X1, X2, X3, mergecC_out_gga(.(X1, X2), X3, X4)) -> mergecC_out_gga(.(X1, X2), .(X1, X3), .(X1, X4)) 11.64/3.86 U15_ga(X1, X2, X3, mergecC_out_gga(X7, X8, X4)) -> mergesortcB_out_ga(.(X1, .(X2, X3)), X4) 11.64/3.86 11.64/3.86 The set Q consists of the following terms: 11.64/3.86 11.64/3.86 splitcD_in_ggaa(x0, x1) 11.64/3.86 splitcA_in_gaa(x0) 11.64/3.86 U11_gaa(x0, x1, x2) 11.64/3.86 U17_ggaa(x0, x1, x2) 11.64/3.86 mergesortcB_in_ga(x0) 11.64/3.86 U12_ga(x0, x1, x2, x3) 11.64/3.86 U13_ga(x0, x1, x2, x3, x4) 11.64/3.86 U14_ga(x0, x1, x2, x3, x4) 11.64/3.86 mergecC_in_gga(x0, x1) 11.64/3.86 U16_gga(x0, x1, x2, x3) 11.64/3.86 U15_ga(x0, x1, x2, x3) 11.64/3.86 11.64/3.86 We have to consider all (P,Q,R)-chains. 11.64/3.86 ---------------------------------------- 11.64/3.86 11.64/3.86 (24) TransformationProof (EQUIVALENT) 11.64/3.86 By rewriting [LPAR04] the rule MERGESORTB_IN_GA(.(X1, .(X2, X3))) -> U4_GA(X1, X2, X3, splitcD_in_ggaa(X2, X3)) at position [3] we obtained the following new rules [LPAR04]: 11.64/3.86 11.64/3.86 (MERGESORTB_IN_GA(.(X1, .(X2, X3))) -> U4_GA(X1, X2, X3, U17_ggaa(X2, X3, splitcA_in_gaa(X3))),MERGESORTB_IN_GA(.(X1, .(X2, X3))) -> U4_GA(X1, X2, X3, U17_ggaa(X2, X3, splitcA_in_gaa(X3)))) 11.64/3.86 11.64/3.86 11.64/3.86 ---------------------------------------- 11.64/3.86 11.64/3.86 (25) 11.64/3.86 Obligation: 11.64/3.86 Q DP problem: 11.64/3.86 The TRS P consists of the following rules: 11.64/3.86 11.64/3.86 U4_GA(X1, X2, X3, splitcD_out_ggaa(X2, X3, X5, X6)) -> MERGESORTB_IN_GA(.(X1, X6)) 11.64/3.86 U4_GA(X1, X2, X3, splitcD_out_ggaa(X2, X3, X5, X6)) -> U6_GA(X1, X2, X3, X5, mergesortcB_in_ga(.(X1, X6))) 11.64/3.86 U6_GA(X1, X2, X3, X5, mergesortcB_out_ga(.(X1, X6), X7)) -> MERGESORTB_IN_GA(X5) 11.64/3.86 MERGESORTB_IN_GA(.(X1, .(X2, X3))) -> U4_GA(X1, X2, X3, U17_ggaa(X2, X3, splitcA_in_gaa(X3))) 11.64/3.86 11.64/3.86 The TRS R consists of the following rules: 11.64/3.86 11.64/3.86 splitcD_in_ggaa(X1, X2) -> U17_ggaa(X1, X2, splitcA_in_gaa(X2)) 11.64/3.86 splitcA_in_gaa([]) -> splitcA_out_gaa([], [], []) 11.64/3.86 splitcA_in_gaa(.(X1, X2)) -> U11_gaa(X1, X2, splitcA_in_gaa(X2)) 11.64/3.86 U11_gaa(X1, X2, splitcA_out_gaa(X2, X4, X3)) -> splitcA_out_gaa(.(X1, X2), .(X1, X3), X4) 11.64/3.86 U17_ggaa(X1, X2, splitcA_out_gaa(X2, X4, X3)) -> splitcD_out_ggaa(X1, X2, .(X1, X3), X4) 11.64/3.86 mergesortcB_in_ga([]) -> mergesortcB_out_ga([], []) 11.64/3.86 mergesortcB_in_ga(.(X1, [])) -> mergesortcB_out_ga(.(X1, []), .(X1, [])) 11.64/3.86 mergesortcB_in_ga(.(X1, .(X2, X3))) -> U12_ga(X1, X2, X3, splitcD_in_ggaa(X2, X3)) 11.64/3.86 U12_ga(X1, X2, X3, splitcD_out_ggaa(X2, X3, X5, X6)) -> U13_ga(X1, X2, X3, X5, mergesortcB_in_ga(.(X1, X6))) 11.64/3.86 U13_ga(X1, X2, X3, X5, mergesortcB_out_ga(.(X1, X6), X7)) -> U14_ga(X1, X2, X3, X7, mergesortcB_in_ga(X5)) 11.64/3.86 U14_ga(X1, X2, X3, X7, mergesortcB_out_ga(X5, X8)) -> U15_ga(X1, X2, X3, mergecC_in_gga(X7, X8)) 11.64/3.86 mergecC_in_gga([], X1) -> mergecC_out_gga([], X1, X1) 11.64/3.86 mergecC_in_gga(X1, []) -> mergecC_out_gga(X1, [], X1) 11.64/3.86 mergecC_in_gga(.(X1, X2), .(X1, X3)) -> U16_gga(X1, X2, X3, mergecC_in_gga(.(X1, X2), X3)) 11.64/3.86 U16_gga(X1, X2, X3, mergecC_out_gga(.(X1, X2), X3, X4)) -> mergecC_out_gga(.(X1, X2), .(X1, X3), .(X1, X4)) 11.64/3.86 U15_ga(X1, X2, X3, mergecC_out_gga(X7, X8, X4)) -> mergesortcB_out_ga(.(X1, .(X2, X3)), X4) 11.64/3.86 11.64/3.86 The set Q consists of the following terms: 11.64/3.86 11.64/3.86 splitcD_in_ggaa(x0, x1) 11.64/3.86 splitcA_in_gaa(x0) 11.64/3.86 U11_gaa(x0, x1, x2) 11.64/3.86 U17_ggaa(x0, x1, x2) 11.64/3.86 mergesortcB_in_ga(x0) 11.64/3.86 U12_ga(x0, x1, x2, x3) 11.64/3.86 U13_ga(x0, x1, x2, x3, x4) 11.64/3.86 U14_ga(x0, x1, x2, x3, x4) 11.64/3.86 mergecC_in_gga(x0, x1) 11.64/3.86 U16_gga(x0, x1, x2, x3) 11.64/3.86 U15_ga(x0, x1, x2, x3) 11.64/3.86 11.64/3.86 We have to consider all (P,Q,R)-chains. 11.64/3.86 ---------------------------------------- 11.64/3.86 11.64/3.86 (26) QDPQMonotonicMRRProof (EQUIVALENT) 11.64/3.86 By using the Q-monotonic rule removal processor with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented such that it always occurs at a strongly monotonic position in a (P,Q,R)-chain. 11.64/3.86 11.64/3.86 Strictly oriented dependency pairs: 11.64/3.86 11.64/3.86 U6_GA(X1, X2, X3, X5, mergesortcB_out_ga(.(X1, X6), X7)) -> MERGESORTB_IN_GA(X5) 11.64/3.86 11.64/3.86 11.64/3.86 Used ordering: Polynomial interpretation [POLO]: 11.64/3.86 11.64/3.86 POL(.(x_1, x_2)) = 2 + 2*x_2 11.64/3.86 POL(MERGESORTB_IN_GA(x_1)) = x_1 11.64/3.86 POL(U11_gaa(x_1, x_2, x_3)) = 1 + 2*x_3 11.64/3.86 POL(U12_ga(x_1, x_2, x_3, x_4)) = 0 11.64/3.86 POL(U13_ga(x_1, x_2, x_3, x_4, x_5)) = 0 11.64/3.86 POL(U14_ga(x_1, x_2, x_3, x_4, x_5)) = 0 11.64/3.86 POL(U15_ga(x_1, x_2, x_3, x_4)) = 0 11.64/3.86 POL(U16_gga(x_1, x_2, x_3, x_4)) = 0 11.64/3.86 POL(U17_ggaa(x_1, x_2, x_3)) = 2*x_3 11.64/3.86 POL(U4_GA(x_1, x_2, x_3, x_4)) = 2 + 2*x_4 11.64/3.86 POL(U6_GA(x_1, x_2, x_3, x_4, x_5)) = 2 + 2*x_4 11.64/3.86 POL([]) = 0 11.64/3.86 POL(mergecC_in_gga(x_1, x_2)) = 0 11.64/3.86 POL(mergecC_out_gga(x_1, x_2, x_3)) = 0 11.64/3.86 POL(mergesortcB_in_ga(x_1)) = 0 11.64/3.86 POL(mergesortcB_out_ga(x_1, x_2)) = 0 11.64/3.86 POL(splitcA_in_gaa(x_1)) = 1 + x_1 11.64/3.86 POL(splitcA_out_gaa(x_1, x_2, x_3)) = 1 + x_2 + 2*x_3 11.64/3.86 POL(splitcD_in_ggaa(x_1, x_2)) = 2 + 2*x_2 11.64/3.86 POL(splitcD_out_ggaa(x_1, x_2, x_3, x_4)) = x_3 + x_4 11.64/3.86 11.64/3.86 11.64/3.86 ---------------------------------------- 11.64/3.86 11.64/3.86 (27) 11.64/3.86 Obligation: 11.64/3.86 Q DP problem: 11.64/3.86 The TRS P consists of the following rules: 11.64/3.86 11.64/3.86 U4_GA(X1, X2, X3, splitcD_out_ggaa(X2, X3, X5, X6)) -> MERGESORTB_IN_GA(.(X1, X6)) 11.64/3.86 U4_GA(X1, X2, X3, splitcD_out_ggaa(X2, X3, X5, X6)) -> U6_GA(X1, X2, X3, X5, mergesortcB_in_ga(.(X1, X6))) 11.64/3.86 MERGESORTB_IN_GA(.(X1, .(X2, X3))) -> U4_GA(X1, X2, X3, U17_ggaa(X2, X3, splitcA_in_gaa(X3))) 11.64/3.86 11.64/3.86 The TRS R consists of the following rules: 11.64/3.86 11.64/3.86 splitcD_in_ggaa(X1, X2) -> U17_ggaa(X1, X2, splitcA_in_gaa(X2)) 11.64/3.86 splitcA_in_gaa([]) -> splitcA_out_gaa([], [], []) 11.64/3.86 splitcA_in_gaa(.(X1, X2)) -> U11_gaa(X1, X2, splitcA_in_gaa(X2)) 11.64/3.86 U11_gaa(X1, X2, splitcA_out_gaa(X2, X4, X3)) -> splitcA_out_gaa(.(X1, X2), .(X1, X3), X4) 11.64/3.86 U17_ggaa(X1, X2, splitcA_out_gaa(X2, X4, X3)) -> splitcD_out_ggaa(X1, X2, .(X1, X3), X4) 11.64/3.86 mergesortcB_in_ga([]) -> mergesortcB_out_ga([], []) 11.64/3.86 mergesortcB_in_ga(.(X1, [])) -> mergesortcB_out_ga(.(X1, []), .(X1, [])) 11.64/3.86 mergesortcB_in_ga(.(X1, .(X2, X3))) -> U12_ga(X1, X2, X3, splitcD_in_ggaa(X2, X3)) 11.64/3.86 U12_ga(X1, X2, X3, splitcD_out_ggaa(X2, X3, X5, X6)) -> U13_ga(X1, X2, X3, X5, mergesortcB_in_ga(.(X1, X6))) 11.64/3.86 U13_ga(X1, X2, X3, X5, mergesortcB_out_ga(.(X1, X6), X7)) -> U14_ga(X1, X2, X3, X7, mergesortcB_in_ga(X5)) 11.64/3.86 U14_ga(X1, X2, X3, X7, mergesortcB_out_ga(X5, X8)) -> U15_ga(X1, X2, X3, mergecC_in_gga(X7, X8)) 11.64/3.86 mergecC_in_gga([], X1) -> mergecC_out_gga([], X1, X1) 11.64/3.86 mergecC_in_gga(X1, []) -> mergecC_out_gga(X1, [], X1) 11.64/3.86 mergecC_in_gga(.(X1, X2), .(X1, X3)) -> U16_gga(X1, X2, X3, mergecC_in_gga(.(X1, X2), X3)) 11.64/3.86 U16_gga(X1, X2, X3, mergecC_out_gga(.(X1, X2), X3, X4)) -> mergecC_out_gga(.(X1, X2), .(X1, X3), .(X1, X4)) 11.64/3.86 U15_ga(X1, X2, X3, mergecC_out_gga(X7, X8, X4)) -> mergesortcB_out_ga(.(X1, .(X2, X3)), X4) 11.64/3.86 11.64/3.86 The set Q consists of the following terms: 11.64/3.86 11.64/3.86 splitcD_in_ggaa(x0, x1) 11.64/3.86 splitcA_in_gaa(x0) 11.64/3.86 U11_gaa(x0, x1, x2) 11.64/3.86 U17_ggaa(x0, x1, x2) 11.64/3.86 mergesortcB_in_ga(x0) 11.64/3.86 U12_ga(x0, x1, x2, x3) 11.64/3.86 U13_ga(x0, x1, x2, x3, x4) 11.64/3.86 U14_ga(x0, x1, x2, x3, x4) 11.64/3.86 mergecC_in_gga(x0, x1) 11.64/3.86 U16_gga(x0, x1, x2, x3) 11.64/3.86 U15_ga(x0, x1, x2, x3) 11.64/3.86 11.64/3.86 We have to consider all (P,Q,R)-chains. 11.64/3.86 ---------------------------------------- 11.64/3.86 11.64/3.86 (28) DependencyGraphProof (EQUIVALENT) 11.64/3.86 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 11.64/3.86 ---------------------------------------- 11.64/3.86 11.64/3.86 (29) 11.64/3.86 Obligation: 11.64/3.86 Q DP problem: 11.64/3.86 The TRS P consists of the following rules: 11.64/3.86 11.64/3.86 MERGESORTB_IN_GA(.(X1, .(X2, X3))) -> U4_GA(X1, X2, X3, U17_ggaa(X2, X3, splitcA_in_gaa(X3))) 11.64/3.86 U4_GA(X1, X2, X3, splitcD_out_ggaa(X2, X3, X5, X6)) -> MERGESORTB_IN_GA(.(X1, X6)) 11.64/3.86 11.64/3.86 The TRS R consists of the following rules: 11.64/3.86 11.64/3.86 splitcD_in_ggaa(X1, X2) -> U17_ggaa(X1, X2, splitcA_in_gaa(X2)) 11.64/3.86 splitcA_in_gaa([]) -> splitcA_out_gaa([], [], []) 11.64/3.86 splitcA_in_gaa(.(X1, X2)) -> U11_gaa(X1, X2, splitcA_in_gaa(X2)) 11.64/3.86 U11_gaa(X1, X2, splitcA_out_gaa(X2, X4, X3)) -> splitcA_out_gaa(.(X1, X2), .(X1, X3), X4) 11.64/3.86 U17_ggaa(X1, X2, splitcA_out_gaa(X2, X4, X3)) -> splitcD_out_ggaa(X1, X2, .(X1, X3), X4) 11.64/3.86 mergesortcB_in_ga([]) -> mergesortcB_out_ga([], []) 11.64/3.86 mergesortcB_in_ga(.(X1, [])) -> mergesortcB_out_ga(.(X1, []), .(X1, [])) 11.64/3.86 mergesortcB_in_ga(.(X1, .(X2, X3))) -> U12_ga(X1, X2, X3, splitcD_in_ggaa(X2, X3)) 11.64/3.86 U12_ga(X1, X2, X3, splitcD_out_ggaa(X2, X3, X5, X6)) -> U13_ga(X1, X2, X3, X5, mergesortcB_in_ga(.(X1, X6))) 11.64/3.86 U13_ga(X1, X2, X3, X5, mergesortcB_out_ga(.(X1, X6), X7)) -> U14_ga(X1, X2, X3, X7, mergesortcB_in_ga(X5)) 11.64/3.86 U14_ga(X1, X2, X3, X7, mergesortcB_out_ga(X5, X8)) -> U15_ga(X1, X2, X3, mergecC_in_gga(X7, X8)) 11.64/3.86 mergecC_in_gga([], X1) -> mergecC_out_gga([], X1, X1) 11.64/3.86 mergecC_in_gga(X1, []) -> mergecC_out_gga(X1, [], X1) 11.64/3.86 mergecC_in_gga(.(X1, X2), .(X1, X3)) -> U16_gga(X1, X2, X3, mergecC_in_gga(.(X1, X2), X3)) 11.64/3.86 U16_gga(X1, X2, X3, mergecC_out_gga(.(X1, X2), X3, X4)) -> mergecC_out_gga(.(X1, X2), .(X1, X3), .(X1, X4)) 11.64/3.86 U15_ga(X1, X2, X3, mergecC_out_gga(X7, X8, X4)) -> mergesortcB_out_ga(.(X1, .(X2, X3)), X4) 11.64/3.86 11.64/3.86 The set Q consists of the following terms: 11.64/3.86 11.64/3.86 splitcD_in_ggaa(x0, x1) 11.64/3.86 splitcA_in_gaa(x0) 11.64/3.86 U11_gaa(x0, x1, x2) 11.64/3.86 U17_ggaa(x0, x1, x2) 11.64/3.86 mergesortcB_in_ga(x0) 11.64/3.86 U12_ga(x0, x1, x2, x3) 11.64/3.86 U13_ga(x0, x1, x2, x3, x4) 11.64/3.86 U14_ga(x0, x1, x2, x3, x4) 11.64/3.86 mergecC_in_gga(x0, x1) 11.64/3.86 U16_gga(x0, x1, x2, x3) 11.64/3.86 U15_ga(x0, x1, x2, x3) 11.64/3.86 11.64/3.86 We have to consider all (P,Q,R)-chains. 11.64/3.86 ---------------------------------------- 11.64/3.86 11.64/3.86 (30) UsableRulesProof (EQUIVALENT) 11.64/3.86 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 11.64/3.86 ---------------------------------------- 11.64/3.86 11.64/3.86 (31) 11.64/3.86 Obligation: 11.64/3.86 Q DP problem: 11.64/3.86 The TRS P consists of the following rules: 11.64/3.86 11.64/3.86 MERGESORTB_IN_GA(.(X1, .(X2, X3))) -> U4_GA(X1, X2, X3, U17_ggaa(X2, X3, splitcA_in_gaa(X3))) 11.64/3.86 U4_GA(X1, X2, X3, splitcD_out_ggaa(X2, X3, X5, X6)) -> MERGESORTB_IN_GA(.(X1, X6)) 11.64/3.86 11.64/3.86 The TRS R consists of the following rules: 11.64/3.86 11.64/3.86 splitcA_in_gaa([]) -> splitcA_out_gaa([], [], []) 11.64/3.86 splitcA_in_gaa(.(X1, X2)) -> U11_gaa(X1, X2, splitcA_in_gaa(X2)) 11.64/3.86 U17_ggaa(X1, X2, splitcA_out_gaa(X2, X4, X3)) -> splitcD_out_ggaa(X1, X2, .(X1, X3), X4) 11.64/3.86 U11_gaa(X1, X2, splitcA_out_gaa(X2, X4, X3)) -> splitcA_out_gaa(.(X1, X2), .(X1, X3), X4) 11.64/3.86 11.64/3.86 The set Q consists of the following terms: 11.64/3.86 11.64/3.86 splitcD_in_ggaa(x0, x1) 11.64/3.86 splitcA_in_gaa(x0) 11.64/3.86 U11_gaa(x0, x1, x2) 11.64/3.86 U17_ggaa(x0, x1, x2) 11.64/3.86 mergesortcB_in_ga(x0) 11.64/3.86 U12_ga(x0, x1, x2, x3) 11.64/3.86 U13_ga(x0, x1, x2, x3, x4) 11.64/3.86 U14_ga(x0, x1, x2, x3, x4) 11.64/3.86 mergecC_in_gga(x0, x1) 11.64/3.86 U16_gga(x0, x1, x2, x3) 11.64/3.86 U15_ga(x0, x1, x2, x3) 11.64/3.86 11.64/3.86 We have to consider all (P,Q,R)-chains. 11.64/3.86 ---------------------------------------- 11.64/3.86 11.64/3.86 (32) QReductionProof (EQUIVALENT) 11.64/3.86 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 11.64/3.86 11.64/3.86 splitcD_in_ggaa(x0, x1) 11.64/3.86 mergesortcB_in_ga(x0) 11.64/3.86 U12_ga(x0, x1, x2, x3) 11.64/3.86 U13_ga(x0, x1, x2, x3, x4) 11.64/3.86 U14_ga(x0, x1, x2, x3, x4) 11.64/3.86 mergecC_in_gga(x0, x1) 11.64/3.86 U16_gga(x0, x1, x2, x3) 11.64/3.86 U15_ga(x0, x1, x2, x3) 11.64/3.86 11.64/3.86 11.64/3.86 ---------------------------------------- 11.64/3.86 11.64/3.86 (33) 11.64/3.86 Obligation: 11.64/3.86 Q DP problem: 11.64/3.86 The TRS P consists of the following rules: 11.64/3.86 11.64/3.86 MERGESORTB_IN_GA(.(X1, .(X2, X3))) -> U4_GA(X1, X2, X3, U17_ggaa(X2, X3, splitcA_in_gaa(X3))) 11.64/3.86 U4_GA(X1, X2, X3, splitcD_out_ggaa(X2, X3, X5, X6)) -> MERGESORTB_IN_GA(.(X1, X6)) 11.64/3.86 11.64/3.86 The TRS R consists of the following rules: 11.64/3.86 11.64/3.86 splitcA_in_gaa([]) -> splitcA_out_gaa([], [], []) 11.64/3.86 splitcA_in_gaa(.(X1, X2)) -> U11_gaa(X1, X2, splitcA_in_gaa(X2)) 11.64/3.86 U17_ggaa(X1, X2, splitcA_out_gaa(X2, X4, X3)) -> splitcD_out_ggaa(X1, X2, .(X1, X3), X4) 11.64/3.86 U11_gaa(X1, X2, splitcA_out_gaa(X2, X4, X3)) -> splitcA_out_gaa(.(X1, X2), .(X1, X3), X4) 11.64/3.86 11.64/3.86 The set Q consists of the following terms: 11.64/3.86 11.64/3.86 splitcA_in_gaa(x0) 11.64/3.86 U11_gaa(x0, x1, x2) 11.64/3.86 U17_ggaa(x0, x1, x2) 11.64/3.86 11.64/3.86 We have to consider all (P,Q,R)-chains. 11.64/3.86 ---------------------------------------- 11.64/3.86 11.64/3.86 (34) QDPQMonotonicMRRProof (EQUIVALENT) 11.64/3.86 By using the Q-monotonic rule removal processor with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented such that it always occurs at a strongly monotonic position in a (P,Q,R)-chain. 11.64/3.86 11.64/3.86 Strictly oriented dependency pairs: 11.64/3.86 11.64/3.86 MERGESORTB_IN_GA(.(X1, .(X2, X3))) -> U4_GA(X1, X2, X3, U17_ggaa(X2, X3, splitcA_in_gaa(X3))) 11.64/3.86 11.64/3.86 Strictly oriented rules of the TRS R: 11.64/3.86 11.64/3.86 splitcA_in_gaa([]) -> splitcA_out_gaa([], [], []) 11.64/3.86 11.64/3.86 Used ordering: Polynomial interpretation [POLO]: 11.64/3.86 11.64/3.86 POL(.(x_1, x_2)) = 1 + x_2 11.64/3.86 POL(MERGESORTB_IN_GA(x_1)) = 1 + 2*x_1 11.64/3.86 POL(U11_gaa(x_1, x_2, x_3)) = 2 + x_3 11.64/3.86 POL(U17_ggaa(x_1, x_2, x_3)) = 1 + x_3 11.64/3.86 POL(U4_GA(x_1, x_2, x_3, x_4)) = 1 + x_4 11.64/3.86 POL([]) = 0 11.64/3.86 POL(splitcA_in_gaa(x_1)) = 2 + 2*x_1 11.64/3.86 POL(splitcA_out_gaa(x_1, x_2, x_3)) = 1 + 2*x_2 + 2*x_3 11.64/3.86 POL(splitcD_out_ggaa(x_1, x_2, x_3, x_4)) = 2 + 2*x_4 11.64/3.86 11.64/3.86 11.64/3.86 ---------------------------------------- 11.64/3.86 11.64/3.86 (35) 11.64/3.86 Obligation: 11.64/3.86 Q DP problem: 11.64/3.86 The TRS P consists of the following rules: 11.64/3.86 11.64/3.86 U4_GA(X1, X2, X3, splitcD_out_ggaa(X2, X3, X5, X6)) -> MERGESORTB_IN_GA(.(X1, X6)) 11.64/3.86 11.64/3.86 The TRS R consists of the following rules: 11.64/3.86 11.64/3.86 splitcA_in_gaa(.(X1, X2)) -> U11_gaa(X1, X2, splitcA_in_gaa(X2)) 11.64/3.86 U17_ggaa(X1, X2, splitcA_out_gaa(X2, X4, X3)) -> splitcD_out_ggaa(X1, X2, .(X1, X3), X4) 11.64/3.86 U11_gaa(X1, X2, splitcA_out_gaa(X2, X4, X3)) -> splitcA_out_gaa(.(X1, X2), .(X1, X3), X4) 11.64/3.86 11.64/3.86 The set Q consists of the following terms: 11.64/3.86 11.64/3.86 splitcA_in_gaa(x0) 11.64/3.86 U11_gaa(x0, x1, x2) 11.64/3.86 U17_ggaa(x0, x1, x2) 11.64/3.86 11.64/3.86 We have to consider all (P,Q,R)-chains. 11.64/3.86 ---------------------------------------- 11.64/3.86 11.64/3.86 (36) DependencyGraphProof (EQUIVALENT) 11.64/3.86 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node. 11.64/3.86 ---------------------------------------- 11.64/3.86 11.64/3.86 (37) 11.64/3.86 TRUE 11.78/3.93 EOF