3.71/1.75 YES 3.71/1.77 proof of /export/starexec/sandbox/benchmark/theBenchmark.pl 3.71/1.77 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 3.71/1.77 3.71/1.77 3.71/1.77 Left Termination of the query pattern 3.71/1.77 3.71/1.77 p(g,a) 3.71/1.77 3.71/1.77 w.r.t. the given Prolog program could successfully be proven: 3.71/1.77 3.71/1.77 (0) Prolog 3.71/1.77 (1) PrologToDTProblemTransformerProof [SOUND, 0 ms] 3.71/1.77 (2) TRIPLES 3.71/1.77 (3) TriplesToPiDPProof [SOUND, 7 ms] 3.71/1.77 (4) PiDP 3.71/1.77 (5) DependencyGraphProof [EQUIVALENT, 0 ms] 3.71/1.77 (6) PiDP 3.71/1.77 (7) PiDPToQDPProof [SOUND, 0 ms] 3.71/1.77 (8) QDP 3.71/1.77 (9) QDPSizeChangeProof [EQUIVALENT, 0 ms] 3.71/1.77 (10) YES 3.71/1.77 3.71/1.77 3.71/1.77 ---------------------------------------- 3.71/1.77 3.71/1.77 (0) 3.71/1.77 Obligation: 3.71/1.77 Clauses: 3.71/1.77 3.71/1.77 p(X, X). 3.71/1.77 p(f(X), g(Y)) :- ','(p(f(X), f(Z)), p(Z, g(W))). 3.71/1.77 3.71/1.77 3.71/1.77 Query: p(g,a) 3.71/1.77 ---------------------------------------- 3.71/1.77 3.71/1.77 (1) PrologToDTProblemTransformerProof (SOUND) 3.71/1.77 Built DT problem from termination graph DT10. 3.71/1.77 3.71/1.77 { 3.71/1.77 "root": 7, 3.71/1.77 "program": { 3.71/1.77 "directives": [], 3.71/1.77 "clauses": [ 3.71/1.77 [ 3.71/1.77 "(p X X)", 3.71/1.77 null 3.71/1.77 ], 3.71/1.77 [ 3.71/1.77 "(p (f X) (g Y))", 3.71/1.77 "(',' (p (f X) (f Z)) (p Z (g W)))" 3.71/1.77 ] 3.71/1.77 ] 3.71/1.77 }, 3.71/1.77 "graph": { 3.71/1.77 "nodes": { 3.71/1.77 "33": { 3.71/1.77 "goal": [ 3.71/1.77 { 3.71/1.77 "clause": 0, 3.71/1.77 "scope": 2, 3.71/1.77 "term": "(',' (p (f T7) (f X7)) (p X7 (g X8)))" 3.71/1.77 }, 3.71/1.77 { 3.71/1.77 "clause": 1, 3.71/1.77 "scope": 2, 3.71/1.77 "term": "(',' (p (f T7) (f X7)) (p X7 (g X8)))" 3.71/1.77 } 3.71/1.77 ], 3.71/1.77 "kb": { 3.71/1.77 "nonunifying": [], 3.71/1.77 "intvars": {}, 3.71/1.77 "arithmetic": { 3.71/1.77 "type": "PlainIntegerRelationState", 3.71/1.77 "relations": [] 3.71/1.77 }, 3.71/1.77 "ground": ["T7"], 3.71/1.77 "free": [ 3.71/1.77 "X7", 3.71/1.77 "X8" 3.71/1.77 ], 3.71/1.77 "exprvars": [] 3.71/1.77 } 3.71/1.77 }, 3.71/1.77 "44": { 3.71/1.77 "goal": [{ 3.71/1.77 "clause": 1, 3.71/1.77 "scope": 3, 3.71/1.77 "term": "(',' (p (f T29) (f X26)) (p X26 (g X27)))" 3.71/1.77 }], 3.71/1.77 "kb": { 3.71/1.77 "nonunifying": [[ 3.71/1.77 "(p (f T29) T2)", 3.71/1.77 "(p X2 X2)" 3.71/1.77 ]], 3.71/1.77 "intvars": {}, 3.71/1.77 "arithmetic": { 3.71/1.77 "type": "PlainIntegerRelationState", 3.71/1.77 "relations": [] 3.71/1.77 }, 3.71/1.77 "ground": ["T29"], 3.71/1.77 "free": [ 3.71/1.77 "X2", 3.71/1.77 "X26", 3.71/1.77 "X27" 3.71/1.77 ], 3.71/1.77 "exprvars": [] 3.71/1.77 } 3.71/1.77 }, 3.71/1.77 "34": { 3.71/1.77 "goal": [{ 3.71/1.77 "clause": 0, 3.71/1.77 "scope": 2, 3.71/1.77 "term": "(',' (p (f T7) (f X7)) (p X7 (g X8)))" 3.71/1.77 }], 3.71/1.77 "kb": { 3.71/1.77 "nonunifying": [], 3.71/1.77 "intvars": {}, 3.71/1.77 "arithmetic": { 3.71/1.77 "type": "PlainIntegerRelationState", 3.71/1.77 "relations": [] 3.71/1.77 }, 3.71/1.77 "ground": ["T7"], 3.71/1.77 "free": [ 3.71/1.77 "X7", 3.71/1.77 "X8" 3.71/1.77 ], 3.71/1.77 "exprvars": [] 3.71/1.77 } 3.71/1.77 }, 3.71/1.77 "45": { 3.71/1.77 "goal": [{ 3.71/1.77 "clause": -1, 3.71/1.77 "scope": -1, 3.71/1.77 "term": "(p T43 (g X27))" 3.71/1.77 }], 3.71/1.77 "kb": { 3.71/1.77 "nonunifying": [[ 3.71/1.77 "(p (f T43) T2)", 3.71/1.77 "(p X2 X2)" 3.71/1.77 ]], 3.71/1.77 "intvars": {}, 3.71/1.77 "arithmetic": { 3.71/1.77 "type": "PlainIntegerRelationState", 3.71/1.77 "relations": [] 3.71/1.77 }, 3.71/1.77 "ground": ["T43"], 3.71/1.77 "free": [ 3.71/1.77 "X2", 3.71/1.77 "X27" 3.71/1.77 ], 3.71/1.77 "exprvars": [] 3.71/1.77 } 3.71/1.77 }, 3.71/1.77 "35": { 3.71/1.77 "goal": [{ 3.71/1.77 "clause": 1, 3.71/1.77 "scope": 2, 3.71/1.77 "term": "(',' (p (f T7) (f X7)) (p X7 (g X8)))" 3.71/1.77 }], 3.71/1.77 "kb": { 3.71/1.77 "nonunifying": [], 3.71/1.77 "intvars": {}, 3.71/1.77 "arithmetic": { 3.71/1.77 "type": "PlainIntegerRelationState", 3.71/1.77 "relations": [] 3.71/1.77 }, 3.71/1.77 "ground": ["T7"], 3.71/1.77 "free": [ 3.71/1.77 "X7", 3.71/1.77 "X8" 3.71/1.77 ], 3.71/1.77 "exprvars": [] 3.71/1.77 } 3.71/1.77 }, 3.71/1.77 "46": { 3.71/1.77 "goal": [], 3.71/1.77 "kb": { 3.71/1.77 "nonunifying": [], 3.71/1.77 "intvars": {}, 3.71/1.77 "arithmetic": { 3.71/1.77 "type": "PlainIntegerRelationState", 3.71/1.77 "relations": [] 3.71/1.77 }, 3.71/1.77 "ground": [], 3.71/1.77 "free": [], 3.71/1.77 "exprvars": [] 3.71/1.77 } 3.71/1.77 }, 3.71/1.77 "36": { 3.71/1.77 "goal": [{ 3.71/1.77 "clause": -1, 3.71/1.77 "scope": -1, 3.71/1.77 "term": "(p T21 (g X8))" 3.71/1.77 }], 3.71/1.77 "kb": { 3.71/1.77 "nonunifying": [], 3.71/1.77 "intvars": {}, 3.71/1.77 "arithmetic": { 3.71/1.77 "type": "PlainIntegerRelationState", 3.71/1.77 "relations": [] 3.71/1.77 }, 3.71/1.77 "ground": ["T21"], 3.71/1.77 "free": ["X8"], 3.71/1.77 "exprvars": [] 3.71/1.77 } 3.71/1.77 }, 3.71/1.77 "28": { 3.71/1.77 "goal": [{ 3.71/1.77 "clause": 1, 3.71/1.77 "scope": 1, 3.71/1.77 "term": "(p T4 T2)" 3.71/1.77 }], 3.71/1.77 "kb": { 3.71/1.77 "nonunifying": [], 3.71/1.77 "intvars": {}, 3.71/1.77 "arithmetic": { 3.71/1.77 "type": "PlainIntegerRelationState", 3.71/1.77 "relations": [] 3.71/1.77 }, 3.71/1.77 "ground": ["T4"], 3.71/1.77 "free": [], 3.71/1.77 "exprvars": [] 3.71/1.77 } 3.71/1.77 }, 3.71/1.77 "39": { 3.71/1.77 "goal": [], 3.71/1.77 "kb": { 3.71/1.77 "nonunifying": [], 3.71/1.77 "intvars": {}, 3.71/1.77 "arithmetic": { 3.71/1.77 "type": "PlainIntegerRelationState", 3.71/1.77 "relations": [] 3.71/1.77 }, 3.71/1.77 "ground": [], 3.71/1.77 "free": [], 3.71/1.77 "exprvars": [] 3.71/1.77 } 3.71/1.77 }, 3.71/1.77 "type": "Nodes", 3.71/1.77 "7": { 3.71/1.77 "goal": [{ 3.71/1.77 "clause": -1, 3.71/1.77 "scope": -1, 3.71/1.77 "term": "(p T1 T2)" 3.71/1.77 }], 3.71/1.77 "kb": { 3.71/1.77 "nonunifying": [], 3.71/1.77 "intvars": {}, 3.71/1.77 "arithmetic": { 3.71/1.77 "type": "PlainIntegerRelationState", 3.71/1.77 "relations": [] 3.71/1.77 }, 3.71/1.77 "ground": ["T1"], 3.71/1.77 "free": [], 3.71/1.77 "exprvars": [] 3.71/1.77 } 3.71/1.77 }, 3.71/1.77 "8": { 3.71/1.77 "goal": [ 3.71/1.77 { 3.71/1.77 "clause": 0, 3.71/1.77 "scope": 1, 3.71/1.77 "term": "(p T1 T2)" 3.71/1.77 }, 3.71/1.77 { 3.71/1.77 "clause": 1, 3.71/1.77 "scope": 1, 3.71/1.77 "term": "(p T1 T2)" 3.71/1.77 } 3.71/1.77 ], 3.71/1.77 "kb": { 3.71/1.77 "nonunifying": [], 3.71/1.77 "intvars": {}, 3.71/1.77 "arithmetic": { 3.71/1.77 "type": "PlainIntegerRelationState", 3.71/1.77 "relations": [] 3.71/1.77 }, 3.71/1.77 "ground": ["T1"], 3.71/1.77 "free": [], 3.71/1.77 "exprvars": [] 3.71/1.77 } 3.71/1.77 }, 3.71/1.77 "40": { 3.71/1.77 "goal": [{ 3.71/1.77 "clause": -1, 3.71/1.77 "scope": -1, 3.71/1.77 "term": "(',' (p (f T29) (f X26)) (p X26 (g X27)))" 3.71/1.77 }], 3.71/1.77 "kb": { 3.71/1.77 "nonunifying": [[ 3.71/1.77 "(p (f T29) T2)", 3.71/1.77 "(p X2 X2)" 3.71/1.77 ]], 3.71/1.77 "intvars": {}, 3.71/1.77 "arithmetic": { 3.71/1.77 "type": "PlainIntegerRelationState", 3.71/1.77 "relations": [] 3.71/1.77 }, 3.71/1.77 "ground": ["T29"], 3.71/1.77 "free": [ 3.71/1.77 "X2", 3.71/1.77 "X26", 3.71/1.77 "X27" 3.71/1.77 ], 3.71/1.77 "exprvars": [] 3.71/1.77 } 3.71/1.77 }, 3.71/1.77 "41": { 3.71/1.77 "goal": [], 3.71/1.77 "kb": { 3.71/1.77 "nonunifying": [], 3.71/1.77 "intvars": {}, 3.71/1.77 "arithmetic": { 3.71/1.77 "type": "PlainIntegerRelationState", 3.71/1.77 "relations": [] 3.71/1.77 }, 3.71/1.77 "ground": [], 3.71/1.77 "free": [], 3.71/1.77 "exprvars": [] 3.71/1.77 } 3.71/1.77 }, 3.71/1.77 "20": { 3.71/1.77 "goal": [ 3.71/1.77 { 3.71/1.77 "clause": -1, 3.71/1.77 "scope": -1, 3.71/1.77 "term": "(true)" 3.71/1.77 }, 3.71/1.77 { 3.71/1.77 "clause": 1, 3.71/1.77 "scope": 1, 3.71/1.77 "term": "(p T4 T2)" 3.71/1.77 } 3.71/1.77 ], 3.71/1.77 "kb": { 3.71/1.77 "nonunifying": [], 3.71/1.77 "intvars": {}, 3.71/1.77 "arithmetic": { 3.71/1.77 "type": "PlainIntegerRelationState", 3.71/1.77 "relations": [] 3.71/1.77 }, 3.71/1.77 "ground": ["T4"], 3.71/1.77 "free": [], 3.71/1.77 "exprvars": [] 3.71/1.77 } 3.71/1.77 }, 3.71/1.77 "31": { 3.71/1.77 "goal": [{ 3.71/1.77 "clause": -1, 3.71/1.77 "scope": -1, 3.71/1.77 "term": "(',' (p (f T7) (f X7)) (p X7 (g X8)))" 3.71/1.77 }], 3.71/1.77 "kb": { 3.71/1.77 "nonunifying": [], 3.71/1.77 "intvars": {}, 3.71/1.77 "arithmetic": { 3.71/1.77 "type": "PlainIntegerRelationState", 3.71/1.77 "relations": [] 3.71/1.77 }, 3.71/1.77 "ground": ["T7"], 3.71/1.77 "free": [ 3.71/1.77 "X7", 3.71/1.77 "X8" 3.71/1.77 ], 3.71/1.77 "exprvars": [] 3.71/1.77 } 3.71/1.77 }, 3.71/1.77 "42": { 3.71/1.77 "goal": [ 3.71/1.77 { 3.71/1.77 "clause": 0, 3.71/1.77 "scope": 3, 3.71/1.77 "term": "(',' (p (f T29) (f X26)) (p X26 (g X27)))" 3.71/1.77 }, 3.71/1.77 { 3.71/1.77 "clause": 1, 3.71/1.77 "scope": 3, 3.71/1.77 "term": "(',' (p (f T29) (f X26)) (p X26 (g X27)))" 3.71/1.77 } 3.71/1.77 ], 3.71/1.77 "kb": { 3.71/1.77 "nonunifying": [[ 3.71/1.77 "(p (f T29) T2)", 3.71/1.77 "(p X2 X2)" 3.71/1.77 ]], 3.71/1.77 "intvars": {}, 3.71/1.77 "arithmetic": { 3.71/1.77 "type": "PlainIntegerRelationState", 3.71/1.77 "relations": [] 3.71/1.77 }, 3.71/1.77 "ground": ["T29"], 3.71/1.77 "free": [ 3.71/1.77 "X2", 3.71/1.77 "X26", 3.71/1.77 "X27" 3.71/1.77 ], 3.71/1.77 "exprvars": [] 3.71/1.77 } 3.71/1.77 }, 3.71/1.77 "21": { 3.71/1.77 "goal": [{ 3.71/1.77 "clause": 1, 3.71/1.77 "scope": 1, 3.71/1.77 "term": "(p T1 T2)" 3.71/1.77 }], 3.71/1.77 "kb": { 3.71/1.77 "nonunifying": [[ 3.71/1.77 "(p T1 T2)", 3.71/1.77 "(p X2 X2)" 3.71/1.77 ]], 3.71/1.77 "intvars": {}, 3.71/1.77 "arithmetic": { 3.71/1.77 "type": "PlainIntegerRelationState", 3.71/1.77 "relations": [] 3.71/1.77 }, 3.71/1.77 "ground": ["T1"], 3.71/1.77 "free": ["X2"], 3.71/1.77 "exprvars": [] 3.71/1.77 } 3.71/1.77 }, 3.71/1.77 "32": { 3.71/1.77 "goal": [], 3.71/1.77 "kb": { 3.71/1.77 "nonunifying": [], 3.71/1.77 "intvars": {}, 3.71/1.77 "arithmetic": { 3.71/1.77 "type": "PlainIntegerRelationState", 3.71/1.77 "relations": [] 3.71/1.77 }, 3.71/1.77 "ground": [], 3.71/1.77 "free": [], 3.71/1.77 "exprvars": [] 3.71/1.77 } 3.71/1.77 }, 3.71/1.77 "43": { 3.71/1.77 "goal": [{ 3.71/1.77 "clause": 0, 3.71/1.77 "scope": 3, 3.71/1.77 "term": "(',' (p (f T29) (f X26)) (p X26 (g X27)))" 3.71/1.77 }], 3.71/1.77 "kb": { 3.71/1.77 "nonunifying": [[ 3.71/1.77 "(p (f T29) T2)", 3.71/1.77 "(p X2 X2)" 3.71/1.77 ]], 3.71/1.77 "intvars": {}, 3.71/1.77 "arithmetic": { 3.71/1.77 "type": "PlainIntegerRelationState", 3.71/1.77 "relations": [] 3.71/1.77 }, 3.71/1.77 "ground": ["T29"], 3.71/1.77 "free": [ 3.71/1.77 "X2", 3.71/1.77 "X26", 3.71/1.77 "X27" 3.71/1.77 ], 3.71/1.77 "exprvars": [] 3.71/1.77 } 3.71/1.77 } 3.71/1.77 }, 3.71/1.77 "edges": [ 3.71/1.77 { 3.71/1.77 "from": 7, 3.71/1.77 "to": 8, 3.71/1.77 "label": "CASE" 3.71/1.77 }, 3.71/1.77 { 3.71/1.77 "from": 8, 3.71/1.77 "to": 20, 3.71/1.77 "label": "EVAL with clause\np(X2, X2).\nand substitutionT1 -> T4,\nX2 -> T4,\nT2 -> T4" 3.71/1.77 }, 3.71/1.77 { 3.71/1.77 "from": 8, 3.71/1.77 "to": 21, 3.71/1.77 "label": "EVAL-BACKTRACK" 3.71/1.77 }, 3.71/1.77 { 3.71/1.77 "from": 20, 3.71/1.77 "to": 28, 3.71/1.77 "label": "SUCCESS" 3.71/1.77 }, 3.71/1.77 { 3.71/1.77 "from": 21, 3.71/1.77 "to": 40, 3.71/1.77 "label": "EVAL with clause\np(f(X24), g(X25)) :- ','(p(f(X24), f(X26)), p(X26, g(X27))).\nand substitutionX24 -> T29,\nT1 -> f(T29),\nX25 -> T30,\nT2 -> g(T30)" 3.71/1.77 }, 3.71/1.77 { 3.71/1.77 "from": 21, 3.71/1.77 "to": 41, 3.71/1.77 "label": "EVAL-BACKTRACK" 3.71/1.77 }, 3.71/1.77 { 3.71/1.77 "from": 28, 3.71/1.77 "to": 31, 3.71/1.77 "label": "EVAL with clause\np(f(X5), g(X6)) :- ','(p(f(X5), f(X7)), p(X7, g(X8))).\nand substitutionX5 -> T7,\nT4 -> f(T7),\nX6 -> T8,\nT2 -> g(T8)" 3.71/1.77 }, 3.71/1.77 { 3.71/1.77 "from": 28, 3.71/1.77 "to": 32, 3.71/1.77 "label": "EVAL-BACKTRACK" 3.71/1.77 }, 3.71/1.77 { 3.71/1.77 "from": 31, 3.71/1.77 "to": 33, 3.71/1.77 "label": "CASE" 3.71/1.77 }, 3.71/1.77 { 3.71/1.77 "from": 33, 3.71/1.77 "to": 34, 3.71/1.77 "label": "PARALLEL" 3.71/1.77 }, 3.71/1.77 { 3.71/1.77 "from": 33, 3.71/1.77 "to": 35, 3.71/1.77 "label": "PARALLEL" 3.71/1.77 }, 3.71/1.77 { 3.71/1.77 "from": 34, 3.71/1.77 "to": 36, 3.71/1.77 "label": "ONLY EVAL with clause\np(X17, X17).\nand substitutionT7 -> T21,\nX17 -> f(T21),\nX7 -> T21" 3.71/1.77 }, 3.71/1.77 { 3.71/1.77 "from": 35, 3.71/1.77 "to": 39, 3.71/1.77 "label": "BACKTRACK\nfor clause: p(f(X), g(Y)) :- ','(p(f(X), f(Z)), p(Z, g(W)))because of non-unification" 3.71/1.77 }, 3.71/1.77 { 3.71/1.77 "from": 36, 3.71/1.77 "to": 7, 3.71/1.77 "label": "INSTANCE with matching:\nT1 -> T21\nT2 -> g(X8)" 3.71/1.77 }, 3.71/1.77 { 3.71/1.77 "from": 40, 3.71/1.77 "to": 42, 3.71/1.77 "label": "CASE" 3.71/1.77 }, 3.71/1.77 { 3.71/1.77 "from": 42, 3.71/1.77 "to": 43, 3.71/1.77 "label": "PARALLEL" 3.71/1.77 }, 3.71/1.77 { 3.71/1.77 "from": 42, 3.71/1.77 "to": 44, 3.71/1.77 "label": "PARALLEL" 3.71/1.77 }, 3.71/1.77 { 3.71/1.77 "from": 43, 3.71/1.77 "to": 45, 3.71/1.77 "label": "ONLY EVAL with clause\np(X36, X36).\nand substitutionT29 -> T43,\nX36 -> f(T43),\nX26 -> T43" 3.71/1.77 }, 3.71/1.77 { 3.71/1.77 "from": 44, 3.71/1.77 "to": 46, 3.71/1.77 "label": "BACKTRACK\nfor clause: p(f(X), g(Y)) :- ','(p(f(X), f(Z)), p(Z, g(W)))because of non-unification" 3.71/1.77 }, 3.71/1.77 { 3.71/1.77 "from": 45, 3.71/1.77 "to": 7, 3.71/1.77 "label": "INSTANCE with matching:\nT1 -> T43\nT2 -> g(X27)" 3.71/1.77 } 3.71/1.77 ], 3.71/1.77 "type": "Graph" 3.71/1.77 } 3.71/1.77 } 3.71/1.77 3.71/1.77 ---------------------------------------- 3.71/1.77 3.71/1.77 (2) 3.71/1.77 Obligation: 3.71/1.77 Triples: 3.71/1.77 3.71/1.77 pA(f(X1), g(X2)) :- pA(X1, g(X3)). 3.71/1.77 pA(f(X1), g(X2)) :- pA(X1, g(X3)). 3.71/1.77 3.71/1.77 Clauses: 3.71/1.77 3.71/1.77 pcA(X1, X1). 3.71/1.77 pcA(f(X1), g(X2)) :- pcA(X1, g(X3)). 3.71/1.77 pcA(f(X1), g(X2)) :- pcA(X1, g(X3)). 3.71/1.77 3.71/1.77 Afs: 3.71/1.77 3.71/1.77 pA(x1, x2) = pA(x1) 3.71/1.77 3.71/1.77 3.71/1.77 ---------------------------------------- 3.71/1.77 3.71/1.77 (3) TriplesToPiDPProof (SOUND) 3.71/1.77 We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes: 3.71/1.77 3.71/1.77 pA_in_2: (b,f) (b,b) 3.71/1.77 3.71/1.77 Transforming TRIPLES into the following Term Rewriting System: 3.71/1.77 3.71/1.77 Pi DP problem: 3.71/1.77 The TRS P consists of the following rules: 3.71/1.77 3.71/1.77 PA_IN_GA(f(X1), g(X2)) -> U1_GA(X1, X2, pA_in_gg(X1, g(X3))) 3.71/1.77 PA_IN_GA(f(X1), g(X2)) -> PA_IN_GG(X1, g(X3)) 3.71/1.77 PA_IN_GG(f(X1), g(X2)) -> U1_GG(X1, X2, pA_in_gg(X1, g(X3))) 3.71/1.77 PA_IN_GG(f(X1), g(X2)) -> PA_IN_GG(X1, g(X3)) 3.71/1.77 3.71/1.77 R is empty. 3.71/1.77 The argument filtering Pi contains the following mapping: 3.71/1.77 f(x1) = f(x1) 3.71/1.77 3.71/1.77 pA_in_gg(x1, x2) = pA_in_gg(x1, x2) 3.71/1.77 3.71/1.77 g(x1) = g 3.71/1.77 3.71/1.77 PA_IN_GA(x1, x2) = PA_IN_GA(x1) 3.71/1.77 3.71/1.77 U1_GA(x1, x2, x3) = U1_GA(x1, x3) 3.71/1.77 3.71/1.77 PA_IN_GG(x1, x2) = PA_IN_GG(x1, x2) 3.71/1.77 3.71/1.77 U1_GG(x1, x2, x3) = U1_GG(x1, x3) 3.71/1.77 3.71/1.77 3.71/1.77 We have to consider all (P,R,Pi)-chains 3.71/1.77 3.71/1.77 3.71/1.77 Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES 3.71/1.77 3.71/1.77 3.71/1.77 3.71/1.77 ---------------------------------------- 3.71/1.77 3.71/1.77 (4) 3.71/1.77 Obligation: 3.71/1.77 Pi DP problem: 3.71/1.77 The TRS P consists of the following rules: 3.71/1.77 3.71/1.77 PA_IN_GA(f(X1), g(X2)) -> U1_GA(X1, X2, pA_in_gg(X1, g(X3))) 3.71/1.77 PA_IN_GA(f(X1), g(X2)) -> PA_IN_GG(X1, g(X3)) 3.71/1.77 PA_IN_GG(f(X1), g(X2)) -> U1_GG(X1, X2, pA_in_gg(X1, g(X3))) 3.71/1.77 PA_IN_GG(f(X1), g(X2)) -> PA_IN_GG(X1, g(X3)) 3.71/1.77 3.71/1.77 R is empty. 3.71/1.77 The argument filtering Pi contains the following mapping: 3.71/1.77 f(x1) = f(x1) 3.71/1.77 3.71/1.77 pA_in_gg(x1, x2) = pA_in_gg(x1, x2) 3.71/1.77 3.71/1.77 g(x1) = g 3.71/1.77 3.71/1.77 PA_IN_GA(x1, x2) = PA_IN_GA(x1) 3.71/1.77 3.71/1.77 U1_GA(x1, x2, x3) = U1_GA(x1, x3) 3.71/1.77 3.71/1.77 PA_IN_GG(x1, x2) = PA_IN_GG(x1, x2) 3.71/1.77 3.71/1.77 U1_GG(x1, x2, x3) = U1_GG(x1, x3) 3.71/1.77 3.71/1.77 3.71/1.77 We have to consider all (P,R,Pi)-chains 3.71/1.77 ---------------------------------------- 3.71/1.77 3.71/1.77 (5) DependencyGraphProof (EQUIVALENT) 3.71/1.77 The approximation of the Dependency Graph [LOPSTR] contains 1 SCC with 3 less nodes. 3.71/1.77 ---------------------------------------- 3.71/1.77 3.71/1.77 (6) 3.71/1.77 Obligation: 3.71/1.77 Pi DP problem: 3.71/1.77 The TRS P consists of the following rules: 3.71/1.77 3.71/1.77 PA_IN_GG(f(X1), g(X2)) -> PA_IN_GG(X1, g(X3)) 3.71/1.77 3.71/1.77 R is empty. 3.71/1.77 The argument filtering Pi contains the following mapping: 3.71/1.77 f(x1) = f(x1) 3.71/1.77 3.71/1.77 g(x1) = g 3.71/1.77 3.71/1.77 PA_IN_GG(x1, x2) = PA_IN_GG(x1, x2) 3.71/1.77 3.71/1.77 3.71/1.77 We have to consider all (P,R,Pi)-chains 3.71/1.77 ---------------------------------------- 3.71/1.77 3.71/1.77 (7) PiDPToQDPProof (SOUND) 3.71/1.77 Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. 3.71/1.77 ---------------------------------------- 3.71/1.77 3.71/1.77 (8) 3.71/1.77 Obligation: 3.71/1.77 Q DP problem: 3.71/1.77 The TRS P consists of the following rules: 3.71/1.77 3.71/1.77 PA_IN_GG(f(X1), g) -> PA_IN_GG(X1, g) 3.71/1.77 3.71/1.77 R is empty. 3.71/1.77 Q is empty. 3.71/1.77 We have to consider all (P,Q,R)-chains. 3.71/1.77 ---------------------------------------- 3.71/1.77 3.71/1.77 (9) QDPSizeChangeProof (EQUIVALENT) 3.71/1.77 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. 3.71/1.77 3.71/1.77 From the DPs we obtained the following set of size-change graphs: 3.71/1.77 *PA_IN_GG(f(X1), g) -> PA_IN_GG(X1, g) 3.71/1.77 The graph contains the following edges 1 > 1, 2 >= 2 3.71/1.77 3.71/1.77 3.71/1.77 ---------------------------------------- 3.71/1.77 3.71/1.77 (10) 3.71/1.77 YES 3.71/1.80 EOF