3.06/1.58 YES 3.06/1.59 proof of /export/starexec/sandbox/benchmark/theBenchmark.pl 3.06/1.59 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 3.06/1.59 3.06/1.59 3.06/1.59 Left Termination of the query pattern 3.06/1.59 3.06/1.59 q() 3.06/1.59 3.06/1.59 w.r.t. the given Prolog program could successfully be proven: 3.06/1.59 3.06/1.59 (0) Prolog 3.06/1.59 (1) PrologToIRSwTTransformerProof [SOUND, 0 ms] 3.06/1.59 (2) TRUE 3.06/1.59 3.06/1.59 3.06/1.59 ---------------------------------------- 3.06/1.59 3.06/1.59 (0) 3.06/1.59 Obligation: 3.06/1.59 Clauses: 3.06/1.59 3.06/1.59 q :- p(s(s(0))). 3.06/1.59 p(s(X)) :- p(X). 3.06/1.59 p(0). 3.06/1.59 p(s(s(s(0)))) :- p(s(s(s(0)))). 3.06/1.59 3.06/1.59 3.06/1.59 Query: q() 3.06/1.59 ---------------------------------------- 3.06/1.59 3.06/1.59 (1) PrologToIRSwTTransformerProof (SOUND) 3.06/1.59 Transformed Prolog program to IRSwT according to method in Master Thesis of A. Weinert 3.06/1.59 3.06/1.59 { 3.06/1.59 "root": 2, 3.06/1.59 "program": { 3.06/1.59 "directives": [], 3.06/1.59 "clauses": [ 3.06/1.59 [ 3.06/1.59 "(q)", 3.06/1.59 "(p (s (s (0))))" 3.06/1.59 ], 3.06/1.59 [ 3.06/1.59 "(p (s X))", 3.06/1.59 "(p X)" 3.06/1.59 ], 3.06/1.59 [ 3.06/1.59 "(p (0))", 3.06/1.59 null 3.06/1.59 ], 3.06/1.59 [ 3.06/1.59 "(p (s (s (s (0)))))", 3.06/1.59 "(p (s (s (s (0)))))" 3.06/1.59 ] 3.06/1.59 ] 3.06/1.59 }, 3.06/1.59 "graph": { 3.06/1.59 "nodes": { 3.06/1.59 "99": { 3.06/1.59 "goal": [ 3.06/1.59 { 3.06/1.59 "clause": 2, 3.06/1.59 "scope": 4, 3.06/1.59 "term": "(p (0))" 3.06/1.59 }, 3.06/1.59 { 3.06/1.59 "clause": 3, 3.06/1.59 "scope": 4, 3.06/1.59 "term": "(p (0))" 3.06/1.59 } 3.06/1.59 ], 3.06/1.59 "kb": { 3.06/1.59 "nonunifying": [], 3.06/1.59 "intvars": {}, 3.06/1.59 "arithmetic": { 3.06/1.59 "type": "PlainIntegerRelationState", 3.06/1.59 "relations": [] 3.06/1.59 }, 3.06/1.59 "ground": [], 3.06/1.59 "free": [], 3.06/1.59 "exprvars": [] 3.06/1.59 } 3.06/1.59 }, 3.06/1.59 "27": { 3.06/1.59 "goal": [{ 3.06/1.59 "clause": 0, 3.06/1.59 "scope": 1, 3.06/1.59 "term": "(q)" 3.06/1.59 }], 3.06/1.59 "kb": { 3.06/1.59 "nonunifying": [], 3.06/1.59 "intvars": {}, 3.06/1.59 "arithmetic": { 3.06/1.59 "type": "PlainIntegerRelationState", 3.06/1.59 "relations": [] 3.06/1.59 }, 3.06/1.59 "ground": [], 3.06/1.59 "free": [], 3.06/1.59 "exprvars": [] 3.06/1.59 } 3.06/1.59 }, 3.06/1.59 "28": { 3.06/1.59 "goal": [{ 3.06/1.59 "clause": -1, 3.06/1.59 "scope": -1, 3.06/1.59 "term": "(p (s (s (0))))" 3.06/1.59 }], 3.06/1.59 "kb": { 3.06/1.59 "nonunifying": [], 3.06/1.59 "intvars": {}, 3.06/1.59 "arithmetic": { 3.06/1.59 "type": "PlainIntegerRelationState", 3.06/1.59 "relations": [] 3.06/1.59 }, 3.06/1.59 "ground": [], 3.06/1.59 "free": [], 3.06/1.59 "exprvars": [] 3.06/1.59 } 3.06/1.59 }, 3.06/1.59 "type": "Nodes", 3.06/1.59 "110": { 3.06/1.59 "goal": [{ 3.06/1.59 "clause": 3, 3.06/1.59 "scope": 3, 3.06/1.59 "term": "(p (s (0)))" 3.06/1.59 }], 3.06/1.59 "kb": { 3.06/1.59 "nonunifying": [], 3.06/1.59 "intvars": {}, 3.06/1.59 "arithmetic": { 3.06/1.59 "type": "PlainIntegerRelationState", 3.06/1.59 "relations": [] 3.06/1.59 }, 3.06/1.59 "ground": [], 3.06/1.59 "free": [], 3.06/1.59 "exprvars": [] 3.06/1.59 } 3.06/1.59 }, 3.06/1.59 "2": { 3.06/1.59 "goal": [{ 3.06/1.59 "clause": -1, 3.06/1.59 "scope": -1, 3.06/1.59 "term": "(q)" 3.06/1.59 }], 3.06/1.59 "kb": { 3.06/1.59 "nonunifying": [], 3.06/1.59 "intvars": {}, 3.06/1.59 "arithmetic": { 3.06/1.59 "type": "PlainIntegerRelationState", 3.06/1.59 "relations": [] 3.06/1.59 }, 3.06/1.59 "ground": [], 3.06/1.59 "free": [], 3.06/1.59 "exprvars": [] 3.06/1.59 } 3.06/1.59 }, 3.06/1.59 "112": { 3.06/1.59 "goal": [], 3.06/1.59 "kb": { 3.06/1.59 "nonunifying": [], 3.06/1.59 "intvars": {}, 3.06/1.59 "arithmetic": { 3.06/1.59 "type": "PlainIntegerRelationState", 3.06/1.59 "relations": [] 3.06/1.59 }, 3.06/1.59 "ground": [], 3.06/1.59 "free": [], 3.06/1.59 "exprvars": [] 3.06/1.59 } 3.06/1.59 }, 3.06/1.59 "102": { 3.06/1.59 "goal": [{ 3.06/1.59 "clause": 2, 3.06/1.59 "scope": 4, 3.06/1.59 "term": "(p (0))" 3.06/1.59 }], 3.06/1.59 "kb": { 3.06/1.59 "nonunifying": [], 3.06/1.59 "intvars": {}, 3.06/1.59 "arithmetic": { 3.06/1.59 "type": "PlainIntegerRelationState", 3.06/1.59 "relations": [] 3.06/1.59 }, 3.06/1.59 "ground": [], 3.06/1.59 "free": [], 3.06/1.59 "exprvars": [] 3.06/1.59 } 3.06/1.59 }, 3.06/1.59 "103": { 3.06/1.59 "goal": [{ 3.06/1.59 "clause": 3, 3.06/1.59 "scope": 4, 3.06/1.59 "term": "(p (0))" 3.06/1.59 }], 3.06/1.59 "kb": { 3.06/1.59 "nonunifying": [], 3.06/1.59 "intvars": {}, 3.06/1.59 "arithmetic": { 3.06/1.59 "type": "PlainIntegerRelationState", 3.06/1.59 "relations": [] 3.06/1.59 }, 3.06/1.59 "ground": [], 3.06/1.59 "free": [], 3.06/1.59 "exprvars": [] 3.06/1.59 } 3.06/1.59 }, 3.06/1.59 "114": { 3.06/1.59 "goal": [{ 3.06/1.59 "clause": 3, 3.06/1.59 "scope": 2, 3.06/1.59 "term": "(p (s (s (0))))" 3.06/1.59 }], 3.06/1.59 "kb": { 3.06/1.59 "nonunifying": [], 3.06/1.59 "intvars": {}, 3.06/1.59 "arithmetic": { 3.06/1.59 "type": "PlainIntegerRelationState", 3.06/1.59 "relations": [] 3.06/1.59 }, 3.06/1.59 "ground": [], 3.06/1.59 "free": [], 3.06/1.59 "exprvars": [] 3.06/1.59 } 3.06/1.59 }, 3.06/1.59 "115": { 3.06/1.59 "goal": [], 3.06/1.59 "kb": { 3.06/1.59 "nonunifying": [], 3.06/1.59 "intvars": {}, 3.06/1.59 "arithmetic": { 3.06/1.59 "type": "PlainIntegerRelationState", 3.06/1.59 "relations": [] 3.06/1.59 }, 3.06/1.59 "ground": [], 3.06/1.59 "free": [], 3.06/1.59 "exprvars": [] 3.06/1.59 } 3.06/1.59 }, 3.06/1.59 "105": { 3.06/1.59 "goal": [{ 3.06/1.59 "clause": -1, 3.06/1.59 "scope": -1, 3.06/1.59 "term": "(true)" 3.06/1.59 }], 3.06/1.59 "kb": { 3.06/1.59 "nonunifying": [], 3.06/1.59 "intvars": {}, 3.06/1.59 "arithmetic": { 3.06/1.59 "type": "PlainIntegerRelationState", 3.06/1.59 "relations": [] 3.06/1.59 }, 3.06/1.59 "ground": [], 3.06/1.59 "free": [], 3.06/1.59 "exprvars": [] 3.06/1.59 } 3.06/1.59 }, 3.06/1.59 "106": { 3.06/1.59 "goal": [], 3.06/1.59 "kb": { 3.06/1.59 "nonunifying": [], 3.06/1.59 "intvars": {}, 3.06/1.59 "arithmetic": { 3.06/1.59 "type": "PlainIntegerRelationState", 3.06/1.59 "relations": [] 3.06/1.59 }, 3.06/1.59 "ground": [], 3.06/1.59 "free": [], 3.06/1.59 "exprvars": [] 3.06/1.59 } 3.06/1.59 }, 3.06/1.59 "91": { 3.06/1.59 "goal": [{ 3.06/1.59 "clause": 1, 3.06/1.59 "scope": 3, 3.06/1.59 "term": "(p (s (0)))" 3.06/1.59 }], 3.06/1.59 "kb": { 3.06/1.59 "nonunifying": [], 3.06/1.59 "intvars": {}, 3.06/1.59 "arithmetic": { 3.06/1.59 "type": "PlainIntegerRelationState", 3.06/1.59 "relations": [] 3.06/1.59 }, 3.06/1.59 "ground": [], 3.06/1.59 "free": [], 3.06/1.59 "exprvars": [] 3.06/1.59 } 3.06/1.59 }, 3.06/1.59 "81": { 3.06/1.59 "goal": [{ 3.06/1.59 "clause": -1, 3.06/1.59 "scope": -1, 3.06/1.59 "term": "(p (s (0)))" 3.06/1.59 }], 3.06/1.59 "kb": { 3.06/1.59 "nonunifying": [], 3.06/1.59 "intvars": {}, 3.06/1.59 "arithmetic": { 3.06/1.59 "type": "PlainIntegerRelationState", 3.06/1.59 "relations": [] 3.06/1.59 }, 3.06/1.59 "ground": [], 3.06/1.59 "free": [], 3.06/1.59 "exprvars": [] 3.06/1.59 } 3.06/1.59 }, 3.06/1.59 "92": { 3.06/1.59 "goal": [ 3.06/1.59 { 3.06/1.59 "clause": 2, 3.06/1.59 "scope": 3, 3.06/1.59 "term": "(p (s (0)))" 3.06/1.59 }, 3.06/1.59 { 3.06/1.59 "clause": 3, 3.06/1.59 "scope": 3, 3.06/1.59 "term": "(p (s (0)))" 3.06/1.59 } 3.06/1.59 ], 3.06/1.59 "kb": { 3.06/1.59 "nonunifying": [], 3.06/1.59 "intvars": {}, 3.06/1.59 "arithmetic": { 3.06/1.59 "type": "PlainIntegerRelationState", 3.06/1.59 "relations": [] 3.06/1.59 }, 3.06/1.59 "ground": [], 3.06/1.59 "free": [], 3.06/1.59 "exprvars": [] 3.06/1.59 } 3.06/1.59 }, 3.06/1.59 "108": { 3.06/1.59 "goal": [], 3.06/1.59 "kb": { 3.06/1.59 "nonunifying": [], 3.06/1.59 "intvars": {}, 3.06/1.59 "arithmetic": { 3.06/1.59 "type": "PlainIntegerRelationState", 3.06/1.59 "relations": [] 3.06/1.59 }, 3.06/1.59 "ground": [], 3.06/1.59 "free": [], 3.06/1.59 "exprvars": [] 3.06/1.59 } 3.06/1.59 }, 3.06/1.59 "95": { 3.06/1.59 "goal": [{ 3.06/1.59 "clause": -1, 3.06/1.59 "scope": -1, 3.06/1.59 "term": "(p (0))" 3.06/1.59 }], 3.06/1.59 "kb": { 3.06/1.59 "nonunifying": [], 3.06/1.59 "intvars": {}, 3.06/1.59 "arithmetic": { 3.06/1.59 "type": "PlainIntegerRelationState", 3.06/1.59 "relations": [] 3.06/1.59 }, 3.06/1.59 "ground": [], 3.06/1.59 "free": [], 3.06/1.59 "exprvars": [] 3.06/1.59 } 3.06/1.59 }, 3.06/1.59 "30": { 3.06/1.59 "goal": [ 3.06/1.59 { 3.06/1.59 "clause": 1, 3.06/1.59 "scope": 2, 3.06/1.59 "term": "(p (s (s (0))))" 3.06/1.59 }, 3.06/1.59 { 3.06/1.59 "clause": 2, 3.06/1.59 "scope": 2, 3.06/1.59 "term": "(p (s (s (0))))" 3.06/1.59 }, 3.06/1.59 { 3.06/1.59 "clause": 3, 3.06/1.59 "scope": 2, 3.06/1.59 "term": "(p (s (s (0))))" 3.06/1.59 } 3.06/1.59 ], 3.06/1.59 "kb": { 3.06/1.59 "nonunifying": [], 3.06/1.59 "intvars": {}, 3.06/1.59 "arithmetic": { 3.06/1.59 "type": "PlainIntegerRelationState", 3.06/1.59 "relations": [] 3.06/1.59 }, 3.06/1.59 "ground": [], 3.06/1.59 "free": [], 3.06/1.59 "exprvars": [] 3.06/1.59 } 3.06/1.59 }, 3.06/1.59 "64": { 3.06/1.59 "goal": [{ 3.06/1.59 "clause": 1, 3.06/1.59 "scope": 2, 3.06/1.59 "term": "(p (s (s (0))))" 3.06/1.59 }], 3.06/1.59 "kb": { 3.06/1.59 "nonunifying": [], 3.06/1.59 "intvars": {}, 3.06/1.59 "arithmetic": { 3.06/1.59 "type": "PlainIntegerRelationState", 3.06/1.59 "relations": [] 3.06/1.59 }, 3.06/1.59 "ground": [], 3.06/1.59 "free": [], 3.06/1.59 "exprvars": [] 3.06/1.59 } 3.06/1.59 }, 3.06/1.59 "86": { 3.06/1.59 "goal": [ 3.06/1.59 { 3.06/1.59 "clause": 1, 3.06/1.59 "scope": 3, 3.06/1.59 "term": "(p (s (0)))" 3.06/1.59 }, 3.06/1.59 { 3.06/1.59 "clause": 2, 3.06/1.59 "scope": 3, 3.06/1.59 "term": "(p (s (0)))" 3.06/1.59 }, 3.06/1.59 { 3.06/1.59 "clause": 3, 3.06/1.59 "scope": 3, 3.06/1.59 "term": "(p (s (0)))" 3.06/1.59 } 3.06/1.59 ], 3.06/1.59 "kb": { 3.06/1.59 "nonunifying": [], 3.06/1.59 "intvars": {}, 3.06/1.59 "arithmetic": { 3.06/1.59 "type": "PlainIntegerRelationState", 3.06/1.59 "relations": [] 3.06/1.59 }, 3.06/1.59 "ground": [], 3.06/1.59 "free": [], 3.06/1.59 "exprvars": [] 3.06/1.59 } 3.06/1.59 }, 3.06/1.59 "65": { 3.06/1.59 "goal": [ 3.06/1.59 { 3.06/1.59 "clause": 2, 3.06/1.59 "scope": 2, 3.06/1.59 "term": "(p (s (s (0))))" 3.06/1.59 }, 3.06/1.59 { 3.06/1.59 "clause": 3, 3.06/1.59 "scope": 2, 3.06/1.59 "term": "(p (s (s (0))))" 3.06/1.59 } 3.06/1.59 ], 3.06/1.59 "kb": { 3.06/1.59 "nonunifying": [], 3.06/1.59 "intvars": {}, 3.06/1.59 "arithmetic": { 3.06/1.59 "type": "PlainIntegerRelationState", 3.06/1.59 "relations": [] 3.06/1.59 }, 3.06/1.59 "ground": [], 3.06/1.59 "free": [], 3.06/1.59 "exprvars": [] 3.06/1.59 } 3.06/1.59 }, 3.06/1.59 "98": { 3.06/1.59 "goal": [ 3.06/1.59 { 3.06/1.59 "clause": 1, 3.06/1.59 "scope": 4, 3.06/1.59 "term": "(p (0))" 3.06/1.59 }, 3.06/1.59 { 3.06/1.59 "clause": 2, 3.06/1.59 "scope": 4, 3.06/1.59 "term": "(p (0))" 3.06/1.59 }, 3.06/1.59 { 3.06/1.59 "clause": 3, 3.06/1.59 "scope": 4, 3.06/1.59 "term": "(p (0))" 3.06/1.59 } 3.06/1.59 ], 3.06/1.59 "kb": { 3.06/1.59 "nonunifying": [], 3.06/1.59 "intvars": {}, 3.06/1.59 "arithmetic": { 3.06/1.59 "type": "PlainIntegerRelationState", 3.06/1.59 "relations": [] 3.06/1.59 }, 3.06/1.59 "ground": [], 3.06/1.59 "free": [], 3.06/1.59 "exprvars": [] 3.06/1.59 } 3.06/1.59 } 3.06/1.59 }, 3.06/1.59 "edges": [ 3.06/1.59 { 3.06/1.59 "from": 2, 3.06/1.59 "to": 27, 3.06/1.59 "label": "CASE" 3.06/1.59 }, 3.06/1.59 { 3.06/1.59 "from": 27, 3.06/1.59 "to": 28, 3.06/1.59 "label": "ONLY EVAL with clause\nq :- p(s(s(0))).\nand substitution" 3.06/1.59 }, 3.06/1.59 { 3.06/1.59 "from": 28, 3.06/1.59 "to": 30, 3.06/1.59 "label": "CASE" 3.06/1.59 }, 3.06/1.59 { 3.06/1.59 "from": 30, 3.06/1.59 "to": 64, 3.06/1.59 "label": "PARALLEL" 3.06/1.59 }, 3.06/1.59 { 3.06/1.59 "from": 30, 3.06/1.59 "to": 65, 3.06/1.59 "label": "PARALLEL" 3.06/1.59 }, 3.06/1.59 { 3.06/1.59 "from": 64, 3.06/1.59 "to": 81, 3.06/1.59 "label": "ONLY EVAL with clause\np(s(X9)) :- p(X9).\nand substitutionX9 -> s(0)" 3.06/1.59 }, 3.06/1.59 { 3.06/1.59 "from": 65, 3.06/1.59 "to": 114, 3.06/1.59 "label": "BACKTRACK\nfor clause: p(0)because of non-unification" 3.06/1.59 }, 3.06/1.59 { 3.06/1.59 "from": 81, 3.06/1.59 "to": 86, 3.06/1.59 "label": "CASE" 3.06/1.59 }, 3.06/1.59 { 3.06/1.59 "from": 86, 3.06/1.59 "to": 91, 3.06/1.59 "label": "PARALLEL" 3.06/1.59 }, 3.06/1.59 { 3.06/1.59 "from": 86, 3.06/1.59 "to": 92, 3.06/1.59 "label": "PARALLEL" 3.06/1.59 }, 3.06/1.59 { 3.06/1.59 "from": 91, 3.06/1.59 "to": 95, 3.06/1.59 "label": "ONLY EVAL with clause\np(s(X17)) :- p(X17).\nand substitutionX17 -> 0" 3.06/1.59 }, 3.06/1.59 { 3.06/1.59 "from": 92, 3.06/1.59 "to": 110, 3.06/1.59 "label": "BACKTRACK\nfor clause: p(0)because of non-unification" 3.06/1.59 }, 3.06/1.59 { 3.06/1.59 "from": 95, 3.06/1.59 "to": 98, 3.06/1.59 "label": "CASE" 3.06/1.59 }, 3.06/1.59 { 3.06/1.59 "from": 98, 3.06/1.59 "to": 99, 3.06/1.59 "label": "BACKTRACK\nfor clause: p(s(X)) :- p(X)because of non-unification" 3.06/1.59 }, 3.06/1.59 { 3.06/1.59 "from": 99, 3.06/1.59 "to": 102, 3.06/1.59 "label": "PARALLEL" 3.06/1.59 }, 3.06/1.59 { 3.06/1.59 "from": 99, 3.06/1.59 "to": 103, 3.06/1.59 "label": "PARALLEL" 3.06/1.59 }, 3.06/1.59 { 3.06/1.59 "from": 102, 3.06/1.59 "to": 105, 3.06/1.59 "label": "ONLY EVAL with clause\np(0).\nand substitution" 3.06/1.59 }, 3.06/1.59 { 3.06/1.59 "from": 103, 3.06/1.59 "to": 108, 3.06/1.59 "label": "BACKTRACK\nfor clause: p(s(s(s(0)))) :- p(s(s(s(0))))because of non-unification" 3.06/1.59 }, 3.06/1.59 { 3.06/1.59 "from": 105, 3.06/1.59 "to": 106, 3.06/1.59 "label": "SUCCESS" 3.06/1.59 }, 3.06/1.59 { 3.06/1.59 "from": 110, 3.06/1.59 "to": 112, 3.06/1.59 "label": "BACKTRACK\nfor clause: p(s(s(s(0)))) :- p(s(s(s(0))))because of non-unification" 3.06/1.59 }, 3.06/1.59 { 3.06/1.59 "from": 114, 3.06/1.59 "to": 115, 3.06/1.59 "label": "BACKTRACK\nfor clause: p(s(s(s(0)))) :- p(s(s(s(0))))because of non-unification" 3.06/1.59 } 3.06/1.59 ], 3.06/1.59 "type": "Graph" 3.06/1.59 } 3.06/1.59 } 3.06/1.59 3.06/1.59 ---------------------------------------- 3.06/1.59 3.06/1.59 (2) 3.06/1.59 TRUE 3.35/1.62 EOF