3.21/1.61 YES 3.62/1.63 proof of /export/starexec/sandbox/benchmark/theBenchmark.pl 3.62/1.63 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 3.62/1.63 3.62/1.63 3.62/1.63 Left Termination of the query pattern 3.62/1.63 3.62/1.63 goal() 3.62/1.63 3.62/1.63 w.r.t. the given Prolog program could successfully be proven: 3.62/1.63 3.62/1.63 (0) Prolog 3.62/1.63 (1) PrologToIRSwTTransformerProof [SOUND, 38 ms] 3.62/1.63 (2) IRSwT 3.62/1.63 (3) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] 3.62/1.63 (4) TRUE 3.62/1.63 3.62/1.63 3.62/1.63 ---------------------------------------- 3.62/1.63 3.62/1.63 (0) 3.62/1.63 Obligation: 3.62/1.63 Clauses: 3.62/1.63 3.62/1.63 even(s(s(X))) :- even(X). 3.62/1.63 even(0). 3.62/1.63 lte(s(X), s(Y)) :- lte(X, Y). 3.62/1.63 lte(0, Y). 3.62/1.63 goal :- ','(lte(X, s(s(s(s(0))))), even(X)). 3.62/1.63 3.62/1.63 3.62/1.63 Query: goal() 3.62/1.63 ---------------------------------------- 3.62/1.63 3.62/1.63 (1) PrologToIRSwTTransformerProof (SOUND) 3.62/1.63 Transformed Prolog program to IRSwT according to method in Master Thesis of A. Weinert 3.62/1.63 3.62/1.63 { 3.62/1.63 "root": 1, 3.62/1.63 "program": { 3.62/1.63 "directives": [], 3.62/1.63 "clauses": [ 3.62/1.63 [ 3.62/1.63 "(even (s (s X)))", 3.62/1.63 "(even X)" 3.62/1.63 ], 3.62/1.63 [ 3.62/1.63 "(even (0))", 3.62/1.63 null 3.62/1.63 ], 3.62/1.63 [ 3.62/1.63 "(lte (s X) (s Y))", 3.62/1.63 "(lte X Y)" 3.62/1.63 ], 3.62/1.63 [ 3.62/1.63 "(lte (0) Y)", 3.62/1.63 null 3.62/1.63 ], 3.62/1.63 [ 3.62/1.63 "(goal)", 3.62/1.63 "(',' (lte X (s (s (s (s (0)))))) (even X))" 3.62/1.63 ] 3.62/1.63 ] 3.62/1.63 }, 3.62/1.63 "graph": { 3.62/1.63 "nodes": { 3.62/1.63 "88": { 3.62/1.63 "goal": [{ 3.62/1.63 "clause": -1, 3.62/1.63 "scope": -1, 3.62/1.63 "term": "(true)" 3.62/1.63 }], 3.62/1.63 "kb": { 3.62/1.63 "nonunifying": [], 3.62/1.63 "intvars": {}, 3.62/1.63 "arithmetic": { 3.62/1.63 "type": "PlainIntegerRelationState", 3.62/1.63 "relations": [] 3.62/1.63 }, 3.62/1.63 "ground": [], 3.62/1.63 "free": [], 3.62/1.63 "exprvars": [] 3.62/1.63 } 3.62/1.63 }, 3.62/1.63 "67": { 3.62/1.63 "goal": [{ 3.62/1.63 "clause": -1, 3.62/1.63 "scope": -1, 3.62/1.63 "term": "(lte X80 (s (0)))" 3.62/1.63 }], 3.62/1.63 "kb": { 3.62/1.63 "nonunifying": [], 3.62/1.63 "intvars": {}, 3.62/1.63 "arithmetic": { 3.62/1.63 "type": "PlainIntegerRelationState", 3.62/1.63 "relations": [] 3.62/1.63 }, 3.62/1.63 "ground": [], 3.62/1.63 "free": ["X80"], 3.62/1.63 "exprvars": [] 3.62/1.63 } 3.62/1.63 }, 3.62/1.63 "89": { 3.62/1.63 "goal": [], 3.62/1.63 "kb": { 3.62/1.63 "nonunifying": [], 3.62/1.63 "intvars": {}, 3.62/1.63 "arithmetic": { 3.62/1.63 "type": "PlainIntegerRelationState", 3.62/1.63 "relations": [] 3.62/1.63 }, 3.62/1.63 "ground": [], 3.62/1.63 "free": [], 3.62/1.63 "exprvars": [] 3.62/1.63 } 3.62/1.63 }, 3.62/1.63 "46": { 3.62/1.63 "goal": [{ 3.62/1.63 "clause": 2, 3.62/1.63 "scope": 2, 3.62/1.63 "term": "(lte X5 (s (s (s (s (0))))))" 3.62/1.63 }], 3.62/1.63 "kb": { 3.62/1.63 "nonunifying": [], 3.62/1.63 "intvars": {}, 3.62/1.63 "arithmetic": { 3.62/1.63 "type": "PlainIntegerRelationState", 3.62/1.63 "relations": [] 3.62/1.63 }, 3.62/1.63 "ground": [], 3.62/1.63 "free": ["X5"], 3.62/1.63 "exprvars": [] 3.62/1.63 } 3.62/1.63 }, 3.62/1.63 "47": { 3.62/1.63 "goal": [{ 3.62/1.63 "clause": 3, 3.62/1.63 "scope": 2, 3.62/1.63 "term": "(lte X5 (s (s (s (s (0))))))" 3.62/1.63 }], 3.62/1.63 "kb": { 3.62/1.63 "nonunifying": [], 3.62/1.63 "intvars": {}, 3.62/1.63 "arithmetic": { 3.62/1.63 "type": "PlainIntegerRelationState", 3.62/1.63 "relations": [] 3.62/1.63 }, 3.62/1.63 "ground": [], 3.62/1.63 "free": ["X5"], 3.62/1.63 "exprvars": [] 3.62/1.63 } 3.62/1.63 }, 3.62/1.63 "type": "Nodes", 3.62/1.63 "70": { 3.62/1.63 "goal": [ 3.62/1.63 { 3.62/1.63 "clause": 2, 3.62/1.63 "scope": 5, 3.62/1.63 "term": "(lte X80 (s (0)))" 3.62/1.63 }, 3.62/1.63 { 3.62/1.63 "clause": 3, 3.62/1.63 "scope": 5, 3.62/1.63 "term": "(lte X80 (s (0)))" 3.62/1.63 } 3.62/1.63 ], 3.62/1.63 "kb": { 3.62/1.63 "nonunifying": [], 3.62/1.63 "intvars": {}, 3.62/1.63 "arithmetic": { 3.62/1.63 "type": "PlainIntegerRelationState", 3.62/1.63 "relations": [] 3.62/1.63 }, 3.62/1.63 "ground": [], 3.62/1.63 "free": ["X80"], 3.62/1.63 "exprvars": [] 3.62/1.63 } 3.62/1.63 }, 3.62/1.63 "92": { 3.62/1.63 "goal": [{ 3.62/1.63 "clause": -1, 3.62/1.63 "scope": -1, 3.62/1.63 "term": "(true)" 3.62/1.63 }], 3.62/1.63 "kb": { 3.62/1.63 "nonunifying": [], 3.62/1.63 "intvars": {}, 3.62/1.63 "arithmetic": { 3.62/1.63 "type": "PlainIntegerRelationState", 3.62/1.63 "relations": [] 3.62/1.63 }, 3.62/1.63 "ground": [], 3.62/1.63 "free": [], 3.62/1.63 "exprvars": [] 3.62/1.63 } 3.62/1.63 }, 3.62/1.63 "93": { 3.62/1.63 "goal": [], 3.62/1.63 "kb": { 3.62/1.63 "nonunifying": [], 3.62/1.63 "intvars": {}, 3.62/1.63 "arithmetic": { 3.62/1.63 "type": "PlainIntegerRelationState", 3.62/1.63 "relations": [] 3.62/1.63 }, 3.62/1.63 "ground": [], 3.62/1.63 "free": [], 3.62/1.63 "exprvars": [] 3.62/1.63 } 3.62/1.63 }, 3.62/1.63 "50": { 3.62/1.63 "goal": [{ 3.62/1.63 "clause": -1, 3.62/1.63 "scope": -1, 3.62/1.63 "term": "(lte X32 (s (s (s (0)))))" 3.62/1.63 }], 3.62/1.63 "kb": { 3.62/1.63 "nonunifying": [], 3.62/1.63 "intvars": {}, 3.62/1.63 "arithmetic": { 3.62/1.63 "type": "PlainIntegerRelationState", 3.62/1.63 "relations": [] 3.62/1.63 }, 3.62/1.63 "ground": [], 3.62/1.63 "free": ["X32"], 3.62/1.63 "exprvars": [] 3.62/1.63 } 3.62/1.63 }, 3.62/1.63 "94": { 3.62/1.63 "goal": [{ 3.62/1.63 "clause": -1, 3.62/1.63 "scope": -1, 3.62/1.63 "term": "(true)" 3.62/1.63 }], 3.62/1.63 "kb": { 3.62/1.63 "nonunifying": [], 3.62/1.63 "intvars": {}, 3.62/1.63 "arithmetic": { 3.62/1.63 "type": "PlainIntegerRelationState", 3.62/1.63 "relations": [] 3.62/1.63 }, 3.62/1.63 "ground": [], 3.62/1.63 "free": [], 3.62/1.63 "exprvars": [] 3.62/1.63 } 3.62/1.63 }, 3.62/1.63 "73": { 3.62/1.63 "goal": [{ 3.62/1.63 "clause": 2, 3.62/1.63 "scope": 5, 3.62/1.63 "term": "(lte X80 (s (0)))" 3.62/1.63 }], 3.62/1.63 "kb": { 3.62/1.63 "nonunifying": [], 3.62/1.63 "intvars": {}, 3.62/1.63 "arithmetic": { 3.62/1.63 "type": "PlainIntegerRelationState", 3.62/1.63 "relations": [] 3.62/1.63 }, 3.62/1.63 "ground": [], 3.62/1.63 "free": ["X80"], 3.62/1.63 "exprvars": [] 3.62/1.63 } 3.62/1.63 }, 3.62/1.63 "95": { 3.62/1.63 "goal": [], 3.62/1.63 "kb": { 3.62/1.63 "nonunifying": [], 3.62/1.63 "intvars": {}, 3.62/1.63 "arithmetic": { 3.62/1.63 "type": "PlainIntegerRelationState", 3.62/1.63 "relations": [] 3.62/1.63 }, 3.62/1.63 "ground": [], 3.62/1.63 "free": [], 3.62/1.63 "exprvars": [] 3.62/1.63 } 3.62/1.63 }, 3.62/1.63 "74": { 3.62/1.63 "goal": [{ 3.62/1.63 "clause": 3, 3.62/1.63 "scope": 5, 3.62/1.63 "term": "(lte X80 (s (0)))" 3.62/1.63 }], 3.62/1.63 "kb": { 3.62/1.63 "nonunifying": [], 3.62/1.63 "intvars": {}, 3.62/1.63 "arithmetic": { 3.62/1.63 "type": "PlainIntegerRelationState", 3.62/1.63 "relations": [] 3.62/1.63 }, 3.62/1.63 "ground": [], 3.62/1.63 "free": ["X80"], 3.62/1.63 "exprvars": [] 3.62/1.63 } 3.62/1.63 }, 3.62/1.63 "96": { 3.62/1.63 "goal": [{ 3.62/1.63 "clause": -1, 3.62/1.63 "scope": -1, 3.62/1.63 "term": "(true)" 3.62/1.63 }], 3.62/1.63 "kb": { 3.62/1.63 "nonunifying": [], 3.62/1.63 "intvars": {}, 3.62/1.63 "arithmetic": { 3.62/1.63 "type": "PlainIntegerRelationState", 3.62/1.63 "relations": [] 3.62/1.63 }, 3.62/1.63 "ground": [], 3.62/1.63 "free": [], 3.62/1.63 "exprvars": [] 3.62/1.63 } 3.62/1.63 }, 3.62/1.63 "53": { 3.62/1.63 "goal": [ 3.62/1.63 { 3.62/1.63 "clause": 2, 3.62/1.63 "scope": 3, 3.62/1.63 "term": "(lte X32 (s (s (s (0)))))" 3.62/1.63 }, 3.62/1.63 { 3.62/1.63 "clause": 3, 3.62/1.63 "scope": 3, 3.62/1.63 "term": "(lte X32 (s (s (s (0)))))" 3.62/1.63 } 3.62/1.63 ], 3.62/1.63 "kb": { 3.62/1.63 "nonunifying": [], 3.62/1.63 "intvars": {}, 3.62/1.63 "arithmetic": { 3.62/1.63 "type": "PlainIntegerRelationState", 3.62/1.63 "relations": [] 3.62/1.63 }, 3.62/1.63 "ground": [], 3.62/1.63 "free": ["X32"], 3.62/1.63 "exprvars": [] 3.62/1.63 } 3.62/1.63 }, 3.62/1.63 "97": { 3.62/1.63 "goal": [], 3.62/1.63 "kb": { 3.62/1.63 "nonunifying": [], 3.62/1.63 "intvars": {}, 3.62/1.63 "arithmetic": { 3.62/1.63 "type": "PlainIntegerRelationState", 3.62/1.63 "relations": [] 3.62/1.63 }, 3.62/1.63 "ground": [], 3.62/1.63 "free": [], 3.62/1.63 "exprvars": [] 3.62/1.63 } 3.62/1.63 }, 3.62/1.63 "54": { 3.62/1.63 "goal": [{ 3.62/1.63 "clause": 2, 3.62/1.63 "scope": 3, 3.62/1.63 "term": "(lte X32 (s (s (s (0)))))" 3.62/1.63 }], 3.62/1.63 "kb": { 3.62/1.63 "nonunifying": [], 3.62/1.63 "intvars": {}, 3.62/1.63 "arithmetic": { 3.62/1.63 "type": "PlainIntegerRelationState", 3.62/1.63 "relations": [] 3.62/1.63 }, 3.62/1.63 "ground": [], 3.62/1.63 "free": ["X32"], 3.62/1.63 "exprvars": [] 3.62/1.63 } 3.62/1.63 }, 3.62/1.63 "98": { 3.62/1.63 "goal": [ 3.62/1.63 { 3.62/1.63 "clause": 0, 3.62/1.63 "scope": 7, 3.62/1.63 "term": "(even T1)" 3.62/1.63 }, 3.62/1.63 { 3.62/1.63 "clause": 1, 3.62/1.63 "scope": 7, 3.62/1.63 "term": "(even T1)" 3.62/1.63 } 3.62/1.63 ], 3.62/1.63 "kb": { 3.62/1.63 "nonunifying": [], 3.62/1.63 "intvars": {}, 3.62/1.63 "arithmetic": { 3.62/1.63 "type": "PlainIntegerRelationState", 3.62/1.63 "relations": [] 3.62/1.63 }, 3.62/1.63 "ground": ["T1"], 3.62/1.63 "free": [], 3.62/1.63 "exprvars": [] 3.62/1.63 } 3.62/1.63 }, 3.62/1.63 "55": { 3.62/1.63 "goal": [{ 3.62/1.63 "clause": 3, 3.62/1.63 "scope": 3, 3.62/1.63 "term": "(lte X32 (s (s (s (0)))))" 3.62/1.63 }], 3.62/1.63 "kb": { 3.62/1.63 "nonunifying": [], 3.62/1.63 "intvars": {}, 3.62/1.63 "arithmetic": { 3.62/1.63 "type": "PlainIntegerRelationState", 3.62/1.63 "relations": [] 3.62/1.63 }, 3.62/1.63 "ground": [], 3.62/1.63 "free": ["X32"], 3.62/1.63 "exprvars": [] 3.62/1.63 } 3.62/1.63 }, 3.62/1.63 "99": { 3.62/1.63 "goal": [{ 3.62/1.63 "clause": 0, 3.62/1.63 "scope": 7, 3.62/1.63 "term": "(even T1)" 3.62/1.63 }], 3.62/1.63 "kb": { 3.62/1.63 "nonunifying": [], 3.62/1.63 "intvars": {}, 3.62/1.63 "arithmetic": { 3.62/1.63 "type": "PlainIntegerRelationState", 3.62/1.63 "relations": [] 3.62/1.63 }, 3.62/1.63 "ground": ["T1"], 3.62/1.63 "free": [], 3.62/1.63 "exprvars": [] 3.62/1.63 } 3.62/1.63 }, 3.62/1.63 "78": { 3.62/1.63 "goal": [{ 3.62/1.63 "clause": -1, 3.62/1.63 "scope": -1, 3.62/1.63 "term": "(lte X104 (0))" 3.62/1.63 }], 3.62/1.63 "kb": { 3.62/1.63 "nonunifying": [], 3.62/1.63 "intvars": {}, 3.62/1.63 "arithmetic": { 3.62/1.63 "type": "PlainIntegerRelationState", 3.62/1.63 "relations": [] 3.62/1.63 }, 3.62/1.63 "ground": [], 3.62/1.63 "free": ["X104"], 3.62/1.63 "exprvars": [] 3.62/1.63 } 3.62/1.63 }, 3.62/1.63 "58": { 3.62/1.63 "goal": [{ 3.62/1.63 "clause": -1, 3.62/1.63 "scope": -1, 3.62/1.63 "term": "(lte X56 (s (s (0))))" 3.62/1.63 }], 3.62/1.63 "kb": { 3.62/1.63 "nonunifying": [], 3.62/1.63 "intvars": {}, 3.62/1.63 "arithmetic": { 3.62/1.63 "type": "PlainIntegerRelationState", 3.62/1.63 "relations": [] 3.62/1.63 }, 3.62/1.63 "ground": [], 3.62/1.63 "free": ["X56"], 3.62/1.63 "exprvars": [] 3.62/1.63 } 3.62/1.63 }, 3.62/1.63 "38": { 3.62/1.63 "goal": [{ 3.62/1.63 "clause": -1, 3.62/1.63 "scope": -1, 3.62/1.63 "term": "(lte X5 (s (s (s (s (0))))))" 3.62/1.64 }], 3.62/1.64 "kb": { 3.62/1.64 "nonunifying": [], 3.62/1.64 "intvars": {}, 3.62/1.64 "arithmetic": { 3.62/1.64 "type": "PlainIntegerRelationState", 3.62/1.64 "relations": [] 3.62/1.64 }, 3.62/1.64 "ground": [], 3.62/1.64 "free": ["X5"], 3.62/1.64 "exprvars": [] 3.62/1.64 } 3.62/1.64 }, 3.62/1.64 "39": { 3.62/1.64 "goal": [{ 3.62/1.64 "clause": -1, 3.62/1.64 "scope": -1, 3.62/1.64 "term": "(even T1)" 3.62/1.64 }], 3.62/1.64 "kb": { 3.62/1.64 "nonunifying": [], 3.62/1.64 "intvars": {}, 3.62/1.64 "arithmetic": { 3.62/1.64 "type": "PlainIntegerRelationState", 3.62/1.64 "relations": [] 3.62/1.64 }, 3.62/1.64 "ground": ["T1"], 3.62/1.64 "free": [], 3.62/1.64 "exprvars": [] 3.62/1.64 } 3.62/1.64 }, 3.62/1.64 "1": { 3.62/1.64 "goal": [{ 3.62/1.64 "clause": -1, 3.62/1.64 "scope": -1, 3.62/1.64 "term": "(goal)" 3.62/1.64 }], 3.62/1.64 "kb": { 3.62/1.64 "nonunifying": [], 3.62/1.64 "intvars": {}, 3.62/1.64 "arithmetic": { 3.62/1.64 "type": "PlainIntegerRelationState", 3.62/1.64 "relations": [] 3.62/1.64 }, 3.62/1.64 "ground": [], 3.62/1.64 "free": [], 3.62/1.64 "exprvars": [] 3.62/1.64 } 3.62/1.64 }, 3.62/1.64 "100": { 3.62/1.64 "goal": [{ 3.62/1.64 "clause": 1, 3.62/1.64 "scope": 7, 3.62/1.64 "term": "(even T1)" 3.62/1.64 }], 3.62/1.64 "kb": { 3.62/1.64 "nonunifying": [], 3.62/1.64 "intvars": {}, 3.62/1.64 "arithmetic": { 3.62/1.64 "type": "PlainIntegerRelationState", 3.62/1.64 "relations": [] 3.62/1.64 }, 3.62/1.64 "ground": ["T1"], 3.62/1.64 "free": [], 3.62/1.64 "exprvars": [] 3.62/1.64 } 3.62/1.64 }, 3.62/1.64 "101": { 3.62/1.64 "goal": [{ 3.62/1.64 "clause": -1, 3.62/1.64 "scope": -1, 3.62/1.64 "term": "(even T7)" 3.62/1.64 }], 3.62/1.64 "kb": { 3.62/1.64 "nonunifying": [], 3.62/1.64 "intvars": {}, 3.62/1.64 "arithmetic": { 3.62/1.64 "type": "PlainIntegerRelationState", 3.62/1.64 "relations": [] 3.62/1.64 }, 3.62/1.64 "ground": ["T7"], 3.62/1.64 "free": [], 3.62/1.64 "exprvars": [] 3.62/1.64 } 3.62/1.64 }, 3.62/1.64 "102": { 3.62/1.64 "goal": [], 3.62/1.64 "kb": { 3.62/1.64 "nonunifying": [], 3.62/1.64 "intvars": {}, 3.62/1.64 "arithmetic": { 3.62/1.64 "type": "PlainIntegerRelationState", 3.62/1.64 "relations": [] 3.62/1.64 }, 3.62/1.64 "ground": [], 3.62/1.64 "free": [], 3.62/1.64 "exprvars": [] 3.62/1.64 } 3.62/1.64 }, 3.62/1.64 "103": { 3.62/1.64 "goal": [{ 3.62/1.64 "clause": -1, 3.62/1.64 "scope": -1, 3.62/1.64 "term": "(true)" 3.62/1.64 }], 3.62/1.64 "kb": { 3.62/1.64 "nonunifying": [], 3.62/1.64 "intvars": {}, 3.62/1.64 "arithmetic": { 3.62/1.64 "type": "PlainIntegerRelationState", 3.62/1.64 "relations": [] 3.62/1.64 }, 3.62/1.64 "ground": [], 3.62/1.64 "free": [], 3.62/1.64 "exprvars": [] 3.62/1.64 } 3.62/1.64 }, 3.62/1.64 "104": { 3.62/1.64 "goal": [], 3.62/1.64 "kb": { 3.62/1.64 "nonunifying": [], 3.62/1.64 "intvars": {}, 3.62/1.64 "arithmetic": { 3.62/1.64 "type": "PlainIntegerRelationState", 3.62/1.64 "relations": [] 3.62/1.64 }, 3.62/1.64 "ground": [], 3.62/1.64 "free": [], 3.62/1.64 "exprvars": [] 3.62/1.64 } 3.62/1.64 }, 3.62/1.64 "105": { 3.62/1.64 "goal": [], 3.62/1.64 "kb": { 3.62/1.64 "nonunifying": [], 3.62/1.64 "intvars": {}, 3.62/1.64 "arithmetic": { 3.62/1.64 "type": "PlainIntegerRelationState", 3.62/1.64 "relations": [] 3.62/1.64 }, 3.62/1.64 "ground": [], 3.62/1.64 "free": [], 3.62/1.64 "exprvars": [] 3.62/1.64 } 3.62/1.64 }, 3.62/1.64 "8": { 3.62/1.64 "goal": [{ 3.62/1.64 "clause": 4, 3.62/1.64 "scope": 1, 3.62/1.64 "term": "(goal)" 3.62/1.64 }], 3.62/1.64 "kb": { 3.62/1.64 "nonunifying": [], 3.62/1.64 "intvars": {}, 3.62/1.64 "arithmetic": { 3.62/1.64 "type": "PlainIntegerRelationState", 3.62/1.64 "relations": [] 3.62/1.64 }, 3.62/1.64 "ground": [], 3.62/1.64 "free": [], 3.62/1.64 "exprvars": [] 3.62/1.64 } 3.62/1.64 }, 3.62/1.64 "9": { 3.62/1.64 "goal": [{ 3.62/1.64 "clause": -1, 3.62/1.64 "scope": -1, 3.62/1.64 "term": "(',' (lte X5 (s (s (s (s (0)))))) (even X5))" 3.62/1.64 }], 3.62/1.64 "kb": { 3.62/1.64 "nonunifying": [], 3.62/1.64 "intvars": {}, 3.62/1.64 "arithmetic": { 3.62/1.64 "type": "PlainIntegerRelationState", 3.62/1.64 "relations": [] 3.62/1.64 }, 3.62/1.64 "ground": [], 3.62/1.64 "free": ["X5"], 3.62/1.64 "exprvars": [] 3.62/1.64 } 3.62/1.64 }, 3.62/1.64 "81": { 3.62/1.64 "goal": [ 3.62/1.64 { 3.62/1.64 "clause": 2, 3.62/1.64 "scope": 6, 3.62/1.64 "term": "(lte X104 (0))" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "clause": 3, 3.62/1.64 "scope": 6, 3.62/1.64 "term": "(lte X104 (0))" 3.62/1.64 } 3.62/1.64 ], 3.62/1.64 "kb": { 3.62/1.64 "nonunifying": [], 3.62/1.64 "intvars": {}, 3.62/1.64 "arithmetic": { 3.62/1.64 "type": "PlainIntegerRelationState", 3.62/1.64 "relations": [] 3.62/1.64 }, 3.62/1.64 "ground": [], 3.62/1.64 "free": ["X104"], 3.62/1.64 "exprvars": [] 3.62/1.64 } 3.62/1.64 }, 3.62/1.64 "60": { 3.62/1.64 "goal": [ 3.62/1.64 { 3.62/1.64 "clause": 2, 3.62/1.64 "scope": 4, 3.62/1.64 "term": "(lte X56 (s (s (0))))" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "clause": 3, 3.62/1.64 "scope": 4, 3.62/1.64 "term": "(lte X56 (s (s (0))))" 3.62/1.64 } 3.62/1.64 ], 3.62/1.64 "kb": { 3.62/1.64 "nonunifying": [], 3.62/1.64 "intvars": {}, 3.62/1.64 "arithmetic": { 3.62/1.64 "type": "PlainIntegerRelationState", 3.62/1.64 "relations": [] 3.62/1.64 }, 3.62/1.64 "ground": [], 3.62/1.64 "free": ["X56"], 3.62/1.64 "exprvars": [] 3.62/1.64 } 3.62/1.64 }, 3.62/1.64 "82": { 3.62/1.64 "goal": [{ 3.62/1.64 "clause": 3, 3.62/1.64 "scope": 6, 3.62/1.64 "term": "(lte X104 (0))" 3.62/1.64 }], 3.62/1.64 "kb": { 3.62/1.64 "nonunifying": [], 3.62/1.64 "intvars": {}, 3.62/1.64 "arithmetic": { 3.62/1.64 "type": "PlainIntegerRelationState", 3.62/1.64 "relations": [] 3.62/1.64 }, 3.62/1.64 "ground": [], 3.62/1.64 "free": ["X104"], 3.62/1.64 "exprvars": [] 3.62/1.64 } 3.62/1.64 }, 3.62/1.64 "83": { 3.62/1.64 "goal": [{ 3.62/1.64 "clause": -1, 3.62/1.64 "scope": -1, 3.62/1.64 "term": "(true)" 3.62/1.64 }], 3.62/1.64 "kb": { 3.62/1.64 "nonunifying": [], 3.62/1.64 "intvars": {}, 3.62/1.64 "arithmetic": { 3.62/1.64 "type": "PlainIntegerRelationState", 3.62/1.64 "relations": [] 3.62/1.64 }, 3.62/1.64 "ground": [], 3.62/1.64 "free": [], 3.62/1.64 "exprvars": [] 3.62/1.64 } 3.62/1.64 }, 3.62/1.64 "40": { 3.62/1.64 "goal": [ 3.62/1.64 { 3.62/1.64 "clause": 2, 3.62/1.64 "scope": 2, 3.62/1.64 "term": "(lte X5 (s (s (s (s (0))))))" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "clause": 3, 3.62/1.64 "scope": 2, 3.62/1.64 "term": "(lte X5 (s (s (s (s (0))))))" 3.62/1.64 } 3.62/1.64 ], 3.62/1.64 "kb": { 3.62/1.64 "nonunifying": [], 3.62/1.64 "intvars": {}, 3.62/1.64 "arithmetic": { 3.62/1.64 "type": "PlainIntegerRelationState", 3.62/1.64 "relations": [] 3.62/1.64 }, 3.62/1.64 "ground": [], 3.62/1.64 "free": ["X5"], 3.62/1.64 "exprvars": [] 3.62/1.64 } 3.62/1.64 }, 3.62/1.64 "84": { 3.62/1.64 "goal": [], 3.62/1.64 "kb": { 3.62/1.64 "nonunifying": [], 3.62/1.64 "intvars": {}, 3.62/1.64 "arithmetic": { 3.62/1.64 "type": "PlainIntegerRelationState", 3.62/1.64 "relations": [] 3.62/1.64 }, 3.62/1.64 "ground": [], 3.62/1.64 "free": [], 3.62/1.64 "exprvars": [] 3.62/1.64 } 3.62/1.64 }, 3.62/1.64 "63": { 3.62/1.64 "goal": [{ 3.62/1.64 "clause": 2, 3.62/1.64 "scope": 4, 3.62/1.64 "term": "(lte X56 (s (s (0))))" 3.62/1.64 }], 3.62/1.64 "kb": { 3.62/1.64 "nonunifying": [], 3.62/1.64 "intvars": {}, 3.62/1.64 "arithmetic": { 3.62/1.64 "type": "PlainIntegerRelationState", 3.62/1.64 "relations": [] 3.62/1.64 }, 3.62/1.64 "ground": [], 3.62/1.64 "free": ["X56"], 3.62/1.64 "exprvars": [] 3.62/1.64 } 3.62/1.64 }, 3.62/1.64 "64": { 3.62/1.64 "goal": [{ 3.62/1.64 "clause": 3, 3.62/1.64 "scope": 4, 3.62/1.64 "term": "(lte X56 (s (s (0))))" 3.62/1.64 }], 3.62/1.64 "kb": { 3.62/1.64 "nonunifying": [], 3.62/1.64 "intvars": {}, 3.62/1.64 "arithmetic": { 3.62/1.64 "type": "PlainIntegerRelationState", 3.62/1.64 "relations": [] 3.62/1.64 }, 3.62/1.64 "ground": [], 3.62/1.64 "free": ["X56"], 3.62/1.64 "exprvars": [] 3.62/1.64 } 3.62/1.64 } 3.62/1.64 }, 3.62/1.64 "edges": [ 3.62/1.64 { 3.62/1.64 "from": 1, 3.62/1.64 "to": 8, 3.62/1.64 "label": "CASE" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 8, 3.62/1.64 "to": 9, 3.62/1.64 "label": "ONLY EVAL with clause\ngoal :- ','(lte(X5, s(s(s(s(0))))), even(X5)).\nand substitution" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 9, 3.62/1.64 "to": 38, 3.62/1.64 "label": "SPLIT 1" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 9, 3.62/1.64 "to": 39, 3.62/1.64 "label": "SPLIT 2\nnew knowledge:\nT1 is ground\nreplacements:X5 -> T1" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 38, 3.62/1.64 "to": 40, 3.62/1.64 "label": "CASE" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 39, 3.62/1.64 "to": 98, 3.62/1.64 "label": "CASE" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 40, 3.62/1.64 "to": 46, 3.62/1.64 "label": "PARALLEL" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 40, 3.62/1.64 "to": 47, 3.62/1.64 "label": "PARALLEL" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 46, 3.62/1.64 "to": 50, 3.62/1.64 "label": "ONLY EVAL with clause\nlte(s(X30), s(X31)) :- lte(X30, X31).\nand substitutionX30 -> X32,\nX5 -> s(X32),\nX31 -> s(s(s(0)))" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 47, 3.62/1.64 "to": 96, 3.62/1.64 "label": "ONLY EVAL with clause\nlte(0, X125).\nand substitutionX5 -> 0,\nX125 -> s(s(s(s(0))))" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 50, 3.62/1.64 "to": 53, 3.62/1.64 "label": "CASE" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 53, 3.62/1.64 "to": 54, 3.62/1.64 "label": "PARALLEL" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 53, 3.62/1.64 "to": 55, 3.62/1.64 "label": "PARALLEL" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 54, 3.62/1.64 "to": 58, 3.62/1.64 "label": "ONLY EVAL with clause\nlte(s(X54), s(X55)) :- lte(X54, X55).\nand substitutionX54 -> X56,\nX32 -> s(X56),\nX55 -> s(s(0))" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 55, 3.62/1.64 "to": 94, 3.62/1.64 "label": "ONLY EVAL with clause\nlte(0, X122).\nand substitutionX32 -> 0,\nX122 -> s(s(s(0)))" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 58, 3.62/1.64 "to": 60, 3.62/1.64 "label": "CASE" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 60, 3.62/1.64 "to": 63, 3.62/1.64 "label": "PARALLEL" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 60, 3.62/1.64 "to": 64, 3.62/1.64 "label": "PARALLEL" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 63, 3.62/1.64 "to": 67, 3.62/1.64 "label": "ONLY EVAL with clause\nlte(s(X78), s(X79)) :- lte(X78, X79).\nand substitutionX78 -> X80,\nX56 -> s(X80),\nX79 -> s(0)" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 64, 3.62/1.64 "to": 92, 3.62/1.64 "label": "ONLY EVAL with clause\nlte(0, X119).\nand substitutionX56 -> 0,\nX119 -> s(s(0))" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 67, 3.62/1.64 "to": 70, 3.62/1.64 "label": "CASE" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 70, 3.62/1.64 "to": 73, 3.62/1.64 "label": "PARALLEL" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 70, 3.62/1.64 "to": 74, 3.62/1.64 "label": "PARALLEL" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 73, 3.62/1.64 "to": 78, 3.62/1.64 "label": "ONLY EVAL with clause\nlte(s(X102), s(X103)) :- lte(X102, X103).\nand substitutionX102 -> X104,\nX80 -> s(X104),\nX103 -> 0" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 74, 3.62/1.64 "to": 88, 3.62/1.64 "label": "ONLY EVAL with clause\nlte(0, X116).\nand substitutionX80 -> 0,\nX116 -> s(0)" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 78, 3.62/1.64 "to": 81, 3.62/1.64 "label": "CASE" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 81, 3.62/1.64 "to": 82, 3.62/1.64 "label": "BACKTRACK\nfor clause: lte(s(X), s(Y)) :- lte(X, Y)because of non-unification" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 82, 3.62/1.64 "to": 83, 3.62/1.64 "label": "ONLY EVAL with clause\nlte(0, X113).\nand substitutionX104 -> 0,\nX113 -> 0" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 83, 3.62/1.64 "to": 84, 3.62/1.64 "label": "SUCCESS" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 88, 3.62/1.64 "to": 89, 3.62/1.64 "label": "SUCCESS" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 92, 3.62/1.64 "to": 93, 3.62/1.64 "label": "SUCCESS" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 94, 3.62/1.64 "to": 95, 3.62/1.64 "label": "SUCCESS" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 96, 3.62/1.64 "to": 97, 3.62/1.64 "label": "SUCCESS" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 98, 3.62/1.64 "to": 99, 3.62/1.64 "label": "PARALLEL" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 98, 3.62/1.64 "to": 100, 3.62/1.64 "label": "PARALLEL" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 99, 3.62/1.64 "to": 101, 3.62/1.64 "label": "EVAL with clause\neven(s(s(X131))) :- even(X131).\nand substitutionX131 -> T7,\nT1 -> s(s(T7))" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 99, 3.62/1.64 "to": 102, 3.62/1.64 "label": "EVAL-BACKTRACK" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 100, 3.62/1.64 "to": 103, 3.62/1.64 "label": "EVAL with clause\neven(0).\nand substitutionT1 -> 0" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 100, 3.62/1.64 "to": 104, 3.62/1.64 "label": "EVAL-BACKTRACK" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 101, 3.62/1.64 "to": 39, 3.62/1.64 "label": "INSTANCE with matching:\nT1 -> T7" 3.62/1.64 }, 3.62/1.64 { 3.62/1.64 "from": 103, 3.62/1.64 "to": 105, 3.62/1.64 "label": "SUCCESS" 3.62/1.64 } 3.62/1.64 ], 3.62/1.64 "type": "Graph" 3.62/1.64 } 3.62/1.64 } 3.62/1.64 3.62/1.64 ---------------------------------------- 3.62/1.64 3.62/1.64 (2) 3.62/1.64 Obligation: 3.62/1.64 Rules: 3.62/1.64 f98_in(T1) -> f100_in(T1) :|: TRUE 3.62/1.64 f98_in(x) -> f99_in(x) :|: TRUE 3.62/1.64 f100_out(x1) -> f98_out(x1) :|: TRUE 3.62/1.64 f99_out(x2) -> f98_out(x2) :|: TRUE 3.62/1.64 f101_in(T7) -> f39_in(T7) :|: TRUE 3.62/1.64 f39_out(x3) -> f101_out(x3) :|: TRUE 3.62/1.64 f101_out(x4) -> f99_out(s(s(x4))) :|: TRUE 3.62/1.64 f102_out -> f99_out(x5) :|: TRUE 3.62/1.64 f99_in(s(s(x6))) -> f101_in(x6) :|: TRUE 3.62/1.64 f99_in(x7) -> f102_in :|: TRUE 3.62/1.64 f98_out(x8) -> f39_out(x8) :|: TRUE 3.62/1.64 f39_in(x9) -> f98_in(x9) :|: TRUE 3.62/1.64 f1_in -> f8_in :|: TRUE 3.62/1.64 f8_out -> f1_out :|: TRUE 3.62/1.64 f8_in -> f9_in :|: TRUE 3.62/1.64 f9_out -> f8_out :|: TRUE 3.62/1.64 f38_out -> f39_in(x10) :|: TRUE 3.62/1.64 f9_in -> f38_in :|: TRUE 3.62/1.64 f39_out(x11) -> f9_out :|: TRUE 3.62/1.64 Start term: f1_in 3.62/1.64 3.62/1.64 ---------------------------------------- 3.62/1.64 3.62/1.64 (3) IRSwTSimpleDependencyGraphProof (EQUIVALENT) 3.62/1.64 Constructed simple dependency graph. 3.62/1.64 3.62/1.64 Simplified to the following IRSwTs: 3.62/1.64 3.62/1.64 3.62/1.64 ---------------------------------------- 3.62/1.64 3.62/1.64 (4) 3.62/1.64 TRUE 3.62/1.69 EOF