/export/starexec/sandbox2/solver/bin/starexec_run_standard /export/starexec/sandbox2/benchmark/theBenchmark.pl /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox2/benchmark/theBenchmark.pl # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Left Termination of the query pattern test_fun(g,g) w.r.t. the given Prolog program could successfully be proven: (0) Prolog (1) PrologToDTProblemTransformerProof [SOUND, 48 ms] (2) TRIPLES (3) TPisEmptyProof [EQUIVALENT, 0 ms] (4) YES ---------------------------------------- (0) Obligation: Clauses: test_fun(X, Y) :- loop1(X, Y, 0). loop1(X, Y, C) :- ','(=:=(X, Y), ','(>(X, 0), loop2(X, Y, C))). loop1(X, Y, C) :- =\=(X, Y). loop1(X, Y, C) :- =<(X, 0). loop2(X, Y, C) :- ','(>(Y, 0), ','(is(X1, -(X, 1)), ','(is(Y1, -(Y, 1)), ','(is(C1, +(C, 1)), loop2(X1, Y1, C1))))). loop2(X, Y, C) :- ','(=<(Y, 0), loop1(X, Y, C)). Query: test_fun(g,g) ---------------------------------------- (1) PrologToDTProblemTransformerProof (SOUND) Built DT problem from termination graph DT10. { "root": 4, "program": { "directives": [], "clauses": [ [ "(test_fun X Y)", "(loop1 X Y (0))" ], [ "(loop1 X Y C)", "(',' (=:= X Y) (',' (> X (0)) (loop2 X Y C)))" ], [ "(loop1 X Y C)", "(=\\= X Y)" ], [ "(loop1 X Y C)", "(=< X (0))" ], [ "(loop2 X Y C)", "(',' (> Y (0)) (',' (is X1 (- X (1))) (',' (is Y1 (- Y (1))) (',' (is C1 (+ C (1))) (loop2 X1 Y1 C1)))))" ], [ "(loop2 X Y C)", "(',' (=< Y (0)) (loop1 X Y C))" ] ] }, "graph": { "nodes": { "3280": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X48 (- T27 (1))) (',' (is X49 (- T28 (1))) (',' (is X50 (+ (0) (1))) (loop2 X48 X49 X50))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T16", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T16", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T27", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T28", "T27" ], "free": [ "X48", "X49", "X50" ], "exprvars": [ "T28", "T16", "T27", "T15" ] } }, "3287": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (> T48 (0)) (',' (is X78 (- T47 (1))) (',' (is X79 (- T48 (1))) (',' (is X80 (+ T49 (1))) (loop2 X78 X79 X80)))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T16", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T16", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "name": "T29", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T27", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T30", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T28", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T31", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T16", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T16", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "name": "T16", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T16", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T27", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T27", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T28", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T28", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T27", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T47", "T48", "T49" ], "free": [ "X78", "X79", "X80" ], "exprvars": [ "T31", "T47", "T30", "T29", "T28", "T16", "T27", "T49", "T15", "T48" ] } }, "3286": { "goal": [{ "clause": 5, "scope": 4, "term": "(loop2 T29 T30 T31)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T16", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T16", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "name": "T29", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T27", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T30", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T28", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T31", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T27", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T31", "T30", "T29" ], "free": [], "exprvars": [ "T31", "T30", "T29", "T28", "T16", "T27", "T15" ] } }, "3285": { "goal": [{ "clause": 4, "scope": 4, "term": "(loop2 T29 T30 T31)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T16", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T16", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "name": "T29", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T27", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T30", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T28", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T31", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T27", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T31", "T30", "T29" ], "free": [], "exprvars": [ "T31", "T30", "T29", "T28", "T16", "T27", "T15" ] } }, "type": "Nodes", "3284": { "goal": [ { "clause": 4, "scope": 4, "term": "(loop2 T29 T30 T31)" }, { "clause": 5, "scope": 4, "term": "(loop2 T29 T30 T31)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T16", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T16", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "name": "T29", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T27", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T30", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T28", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T31", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T27", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T31", "T30", "T29" ], "free": [], "exprvars": [ "T31", "T30", "T29", "T28", "T16", "T27", "T15" ] } }, "3283": { "goal": [{ "clause": -1, "scope": -1, "term": "(loop2 T29 T30 T31)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T16", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T16", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "name": "T29", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T27", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T30", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T28", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T31", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T27", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T31", "T30", "T29", "T28", "T27" ], "free": [ "X48", "X49", "X50" ], "exprvars": [ "T31", "T30", "T29", "T28", "T16", "T27", "T15" ] } }, "3282": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X50 (+ (0) (1))) (loop2 T29 T30 X50))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T16", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T16", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "name": "T29", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T27", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T30", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T28", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T27", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T30", "T29", "T28", "T27" ], "free": [ "X48", "X49", "X50" ], "exprvars": [ "T30", "T29", "T28", "T16", "T27", "T15" ] } }, "3281": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X49 (- T28 (1))) (',' (is X50 (+ (0) (1))) (loop2 T29 X49 X50)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T16", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T16", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "name": "T29", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T27", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T27", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T29", "T28", "T27" ], "free": [ "X48", "X49", "X50" ], "exprvars": [ "T29", "T28", "T16", "T27", "T15" ] } }, "3377": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T79", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "<=" }] }, "ground": [], "free": [], "exprvars": ["T79"] } }, "10": { "goal": [ { "clause": 1, "scope": 2, "term": "(loop1 T5 T6 (0))" }, { "clause": 2, "scope": 2, "term": "(loop1 T5 T6 (0))" }, { "clause": 3, "scope": 2, "term": "(loop1 T5 T6 (0))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T5", "T6" ], "free": [], "exprvars": [] } }, "11": { "goal": [{ "clause": 1, "scope": 2, "term": "(loop1 T5 T6 (0))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T5", "T6" ], "free": [], "exprvars": [] } }, "12": { "goal": [ { "clause": 2, "scope": 2, "term": "(loop1 T5 T6 (0))" }, { "clause": 3, "scope": 2, "term": "(loop1 T5 T6 (0))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T5", "T6" ], "free": [], "exprvars": [] } }, "16": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (=:= T15 T16) (',' (> T15 (0)) (loop2 T15 T16 (0))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T15", "T16" ], "free": [], "exprvars": [] } }, "17": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3376": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T79", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": ">" }] }, "ground": ["T79"], "free": [], "exprvars": ["T79"] } }, "3375": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T79", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "<=" }] }, "ground": ["T79"], "free": [], "exprvars": ["T79"] } }, "3154": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (> T28 (0)) (',' (is X48 (- T27 (1))) (',' (is X49 (- T28 (1))) (',' (is X50 (+ (0) (1))) (loop2 X48 X49 X50)))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T16", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T16", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T27", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T27", "T28" ], "free": [ "X48", "X49", "X50" ], "exprvars": [ "T28", "T16", "T27", "T15" ] } }, "3297": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (=< T57 (0)) (loop1 T56 T57 T58))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T16", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T16", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "name": "T29", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T27", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T30", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T28", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T31", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T16", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T16", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "name": "T16", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T16", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T27", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T27", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T28", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T28", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T27", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T56", "T57", "T58" ], "free": [], "exprvars": [ "T31", "T58", "T30", "T57", "T29", "T56", "T28", "T16", "T27", "T15" ] } }, "3374": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3153": { "goal": [{ "clause": 5, "scope": 3, "term": "(loop2 T15 T16 (0))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T16", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T16", "T15" ], "free": [], "exprvars": [ "T16", "T15" ] } }, "3373": { "goal": [{ "clause": -1, "scope": -1, "term": "(=< T79 (0))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T79"], "free": [], "exprvars": [] } }, "3152": { "goal": [{ "clause": 4, "scope": 3, "term": "(loop2 T15 T16 (0))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T16", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T16", "T15" ], "free": [], "exprvars": [ "T16", "T15" ] } }, "3151": { "goal": [ { "clause": 4, "scope": 3, "term": "(loop2 T15 T16 (0))" }, { "clause": 5, "scope": 3, "term": "(loop2 T15 T16 (0))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T16", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T16", "T15" ], "free": [], "exprvars": [ "T16", "T15" ] } }, "3150": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T16", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": ">=" } ] }, "ground": [ "T16", "T15" ], "free": [], "exprvars": [ "T16", "T15" ] } }, "3306": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3305": { "goal": [{ "clause": -1, "scope": -1, "term": "(=\\= T73 T74)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T73", "T74" ], "free": [], "exprvars": [] } }, "3349": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T74", "type": "PlainIntegerVariable" }, "operation": "!=" }] }, "ground": [], "free": [], "exprvars": [ "T74", "T73" ] } }, "2798": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T16", "type": "PlainIntegerVariable" }, "operation": "!=" }] }, "ground": [ "T16", "T15" ], "free": [], "exprvars": [ "T16", "T15" ] } }, "3304": { "goal": [{ "clause": 3, "scope": 2, "term": "(loop1 T5 T6 (0))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T5", "T6" ], "free": [], "exprvars": [] } }, "3348": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T74", "type": "PlainIntegerVariable" }, "operation": "=" }] }, "ground": [ "T74", "T73" ], "free": [], "exprvars": [ "T74", "T73" ] } }, "4": { "goal": [{ "clause": -1, "scope": -1, "term": "(test_fun T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T2" ], "free": [], "exprvars": [] } }, "3149": { "goal": [{ "clause": -1, "scope": -1, "term": "(loop2 T15 T16 (0))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T16", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T16", "T15" ], "free": [], "exprvars": [ "T16", "T15" ] } }, "3303": { "goal": [{ "clause": 2, "scope": 2, "term": "(loop1 T5 T6 (0))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T5", "T6" ], "free": [], "exprvars": [] } }, "3347": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T74", "type": "PlainIntegerVariable" }, "operation": "!=" }] }, "ground": [ "T74", "T73" ], "free": [], "exprvars": [ "T74", "T73" ] } }, "2796": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (> T15 (0)) (loop2 T15 T16 (0)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T16", "type": "PlainIntegerVariable" }, "operation": "=" }] }, "ground": [ "T16", "T15" ], "free": [], "exprvars": [ "T16", "T15" ] } }, "3302": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T16", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "name": "T64", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T16", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T63", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T64", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": ">" } ] }, "ground": [ "T64", "T63" ], "free": [], "exprvars": [ "T64", "T63", "T16", "T15" ] } }, "6": { "goal": [{ "clause": 0, "scope": 1, "term": "(test_fun T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T2" ], "free": [], "exprvars": [] } }, "3300": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (=< T64 (0)) (loop1 T63 T64 (0)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T16", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "name": "T64", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T16", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T63", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T63", "T64" ], "free": [], "exprvars": [ "T64", "T63", "T16", "T15" ] } }, "8": { "goal": [{ "clause": -1, "scope": -1, "term": "(loop1 T5 T6 (0))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T5", "T6" ], "free": [], "exprvars": [] } } }, "edges": [ { "from": 4, "to": 6, "label": "CASE" }, { "from": 6, "to": 8, "label": "ONLY EVAL with clause\ntest_fun(X4, X5) :- loop1(X4, X5, 0).\nand substitutionT1 -> T5,\nX4 -> T5,\nT2 -> T6,\nX5 -> T6" }, { "from": 8, "to": 10, "label": "CASE" }, { "from": 10, "to": 11, "label": "PARALLEL" }, { "from": 10, "to": 12, "label": "PARALLEL" }, { "from": 11, "to": 16, "label": "ONLY EVAL with clause\nloop1(X18, X19, X20) :- ','(=:=(X18, X19), ','(>(X18, 0), loop2(X18, X19, X20))).\nand substitutionT5 -> T15,\nX18 -> T15,\nT6 -> T16,\nX19 -> T16,\nX20 -> 0" }, { "from": 12, "to": 3303, "label": "PARALLEL" }, { "from": 12, "to": 3304, "label": "PARALLEL" }, { "from": 16, "to": 17, "label": "IS ERROR" }, { "from": 16, "to": 2796, "label": "ARITHCOMP SUCCESS" }, { "from": 16, "to": 2798, "label": "ARITHCOMP FAIL" }, { "from": 2796, "to": 3149, "label": "ARITHCOMP SUCCESS" }, { "from": 2796, "to": 3150, "label": "ARITHCOMP FAIL" }, { "from": 3149, "to": 3151, "label": "CASE" }, { "from": 3151, "to": 3152, "label": "PARALLEL" }, { "from": 3151, "to": 3153, "label": "PARALLEL" }, { "from": 3152, "to": 3154, "label": "ONLY EVAL with clause\nloop2(X45, X46, X47) :- ','(>(X46, 0), ','(is(X48, -(X45, 1)), ','(is(X49, -(X46, 1)), ','(is(X50, +(X47, 1)), loop2(X48, X49, X50))))).\nand substitutionT15 -> T27,\nX45 -> T27,\nT16 -> T28,\nX46 -> T28,\nX47 -> 0" }, { "from": 3153, "to": 3300, "label": "ONLY EVAL with clause\nloop2(X96, X97, X98) :- ','(=<(X97, 0), loop1(X96, X97, X98)).\nand substitutionT15 -> T63,\nX96 -> T63,\nT16 -> T64,\nX97 -> T64,\nX98 -> 0" }, { "from": 3154, "to": 3280, "label": "ARITHCOMP SUCCESS" }, { "from": 3280, "to": 3281, "label": "\nX48 -> T29" }, { "from": 3281, "to": 3282, "label": "\nX49 -> T30" }, { "from": 3282, "to": 3283, "label": "\nX50 -> T31" }, { "from": 3283, "to": 3284, "label": "CASE" }, { "from": 3284, "to": 3285, "label": "PARALLEL" }, { "from": 3284, "to": 3286, "label": "PARALLEL" }, { "from": 3285, "to": 3287, "label": "ONLY EVAL with clause\nloop2(X75, X76, X77) :- ','(>(X76, 0), ','(is(X78, -(X75, 1)), ','(is(X79, -(X76, 1)), ','(is(X80, +(X77, 1)), loop2(X78, X79, X80))))).\nand substitutionT29 -> T47,\nX75 -> T47,\nT30 -> T48,\nX76 -> T48,\nT31 -> T49,\nX77 -> T49" }, { "from": 3286, "to": 3297, "label": "ONLY EVAL with clause\nloop2(X87, X88, X89) :- ','(=<(X88, 0), loop1(X87, X88, X89)).\nand substitutionT29 -> T56,\nX87 -> T56,\nT30 -> T57,\nX88 -> T57,\nT31 -> T58,\nX89 -> T58" }, { "from": 3300, "to": 3302, "label": "ARITHCOMP FAIL" }, { "from": 3303, "to": 3305, "label": "ONLY EVAL with clause\nloop1(X111, X112, X113) :- =\\=(X111, X112).\nand substitutionT5 -> T73,\nX111 -> T73,\nT6 -> T74,\nX112 -> T74,\nX113 -> 0" }, { "from": 3304, "to": 3373, "label": "ONLY EVAL with clause\nloop1(X120, X121, X122) :- =<(X120, 0).\nand substitutionT5 -> T79,\nX120 -> T79,\nT6 -> T80,\nX121 -> T80,\nX122 -> 0" }, { "from": 3305, "to": 3306, "label": "IS ERROR" }, { "from": 3305, "to": 3347, "label": "ARITHCOMP SUCCESS" }, { "from": 3305, "to": 3348, "label": "ARITHCOMP FAIL" }, { "from": 3347, "to": 3349, "label": "SUCCESS" }, { "from": 3373, "to": 3374, "label": "IS ERROR" }, { "from": 3373, "to": 3375, "label": "ARITHCOMP SUCCESS" }, { "from": 3373, "to": 3376, "label": "ARITHCOMP FAIL" }, { "from": 3375, "to": 3377, "label": "SUCCESS" } ], "type": "Graph" } } ---------------------------------------- (2) Obligation: Triples: Clauses: Afs: ---------------------------------------- (3) TPisEmptyProof (EQUIVALENT) There are no more dependency triples. Hence, the dependency triple problem trivially terminates. ---------------------------------------- (4) YES