/export/starexec/sandbox/solver/bin/starexec_run_standard /export/starexec/sandbox/benchmark/theBenchmark.pl /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox/benchmark/theBenchmark.pl # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Left Termination of the query pattern test_fun(g,g,g) w.r.t. the given Prolog program could successfully be proven: (0) Prolog (1) PrologToDTProblemTransformerProof [SOUND, 80 ms] (2) TRIPLES (3) TPisEmptyProof [EQUIVALENT, 0 ms] (4) YES ---------------------------------------- (0) Obligation: Clauses: test_fun(X, Y, Z) :- loop(X, Y, Z, 0). loop(X, Y, Z, C) :- ','(>(X, Z), ','(>(Y, Z), ','(is(X1, -(X, 1)), ','(is(Y1, -(Y, 1)), ','(is(C1, +(C, 1)), loop(X1, Y1, Z, C1)))))). loop(X, Y, Z, C) :- =<(X, Z). loop(X, Y, Z, C) :- =<(Y, Z). Query: test_fun(g,g,g) ---------------------------------------- (1) PrologToDTProblemTransformerProof (SOUND) Built DT problem from termination graph DT10. { "root": 1, "program": { "directives": [], "clauses": [ [ "(test_fun X Y Z)", "(loop X Y Z (0))" ], [ "(loop X Y Z C)", "(',' (> X Z) (',' (> Y Z) (',' (is X1 (- X (1))) (',' (is Y1 (- Y (1))) (',' (is C1 (+ C (1))) (loop X1 Y1 Z C1))))))" ], [ "(loop X Y Z C)", "(=< X Z)" ], [ "(loop X Y Z C)", "(=< Y Z)" ] ] }, "graph": { "nodes": { "2070": { "goal": [{ "clause": -1, "scope": -1, "term": "(=< T68 T70)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T25", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T22", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T26", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T23", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T27", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T22", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T22", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T23", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T23", "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": { "name": "T24", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T22", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T24", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T23", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T22", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T22", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T23", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T23", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T68", "T70" ], "free": [], "exprvars": [ "T70", "T25", "T69", "T24", "T68", "T23", "T22", "T27", "T71", "T26" ] } }, "2771": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "2770": { "goal": [{ "clause": -1, "scope": -1, "term": "(=< T96 T98)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T96", "T98" ], "free": [], "exprvars": [] } }, "type": "Nodes", "2768": { "goal": [{ "clause": 2, "scope": 2, "term": "(loop T7 T8 T9 (0))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T7", "T8", "T9" ], "free": [], "exprvars": [] } }, "2789": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T106", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T107", "type": "PlainIntegerVariable" }, "operation": "<=" }] }, "ground": [], "free": [], "exprvars": [ "T106", "T107" ] } }, "2788": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T106", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T107", "type": "PlainIntegerVariable" }, "operation": ">" }] }, "ground": [ "T106", "T107" ], "free": [], "exprvars": [ "T106", "T107" ] } }, "2787": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T106", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T107", "type": "PlainIntegerVariable" }, "operation": "<=" }] }, "ground": [ "T106", "T107" ], "free": [], "exprvars": [ "T106", "T107" ] } }, "577": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X34 (- T22 (1))) (',' (is X35 (- T23 (1))) (',' (is X36 (+ (0) (1))) (loop X34 X35 T24 X36))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T24", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T22", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T24", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T23", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T24", "T23", "T22" ], "free": [ "X34", "X35", "X36" ], "exprvars": [ "T24", "T23", "T22" ] } }, "578": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T24", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T22", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T24", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T23", "type": "PlainIntegerVariable" }, "operation": ">=" } ] }, "ground": [ "T24", "T23", "T22" ], "free": [ "X34", "X35", "X36" ], "exprvars": [ "T24", "T23", "T22" ] } }, "2784": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "2783": { "goal": [{ "clause": -1, "scope": -1, "term": "(=< T106 T107)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T106", "T107" ], "free": [], "exprvars": [] } }, "613": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X35 (- T23 (1))) (',' (is X36 (+ (0) (1))) (loop T25 X35 T24 X36)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T25", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T22", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T24", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T22", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T24", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T23", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T25", "T24", "T23", "T22" ], "free": [ "X34", "X35", "X36" ], "exprvars": [ "T25", "T24", "T23", "T22" ] } }, "614": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X36 (+ (0) (1))) (loop T25 T26 T24 X36))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T25", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T22", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T26", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T23", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T24", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T22", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T24", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T23", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T25", "T24", "T23", "T22", "T26" ], "free": [ "X34", "X35", "X36" ], "exprvars": [ "T25", "T24", "T23", "T22", "T26" ] } }, "516": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (> T23 T24) (',' (is X34 (- T22 (1))) (',' (is X35 (- T23 (1))) (',' (is X36 (+ (0) (1))) (loop X34 X35 T24 X36)))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T24", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T22", "type": "PlainIntegerVariable" }, "operation": "<" }] }, "ground": [ "T24", "T23", "T22" ], "free": [ "X34", "X35", "X36" ], "exprvars": [ "T24", "T22" ] } }, "615": { "goal": [{ "clause": -1, "scope": -1, "term": "(loop T25 T26 T24 T27)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T25", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T22", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T26", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T23", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T27", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T24", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T22", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T24", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T23", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T25", "T24", "T23", "T22", "T27", "T26" ], "free": [ "X34", "X35", "X36" ], "exprvars": [ "T25", "T24", "T23", "T22", "T27", "T26" ] } }, "616": { "goal": [ { "clause": 1, "scope": 3, "term": "(loop T25 T26 T24 T27)" }, { "clause": 2, "scope": 3, "term": "(loop T25 T26 T24 T27)" }, { "clause": 3, "scope": 3, "term": "(loop T25 T26 T24 T27)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T25", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T22", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T26", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T23", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T27", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T24", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T22", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T24", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T23", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T25", "T24", "T27", "T26" ], "free": [], "exprvars": [ "T25", "T24", "T23", "T22", "T27", "T26" ] } }, "518": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T24", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T22", "type": "PlainIntegerVariable" }, "operation": ">=" }] }, "ground": [ "T24", "T23", "T22" ], "free": [ "X34", "X35", "X36" ], "exprvars": [ "T24", "T22" ] } }, "617": { "goal": [{ "clause": 1, "scope": 3, "term": "(loop T25 T26 T24 T27)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T25", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T22", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T26", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T23", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T27", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T24", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T22", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T24", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T23", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T25", "T24", "T27", "T26" ], "free": [], "exprvars": [ "T25", "T24", "T23", "T22", "T27", "T26" ] } }, "618": { "goal": [ { "clause": 2, "scope": 3, "term": "(loop T25 T26 T24 T27)" }, { "clause": 3, "scope": 3, "term": "(loop T25 T26 T24 T27)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T25", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T22", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T26", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T23", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T27", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T24", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T22", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T24", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T23", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T25", "T24", "T27", "T26" ], "free": [], "exprvars": [ "T25", "T24", "T23", "T22", "T27", "T26" ] } }, "2769": { "goal": [{ "clause": 3, "scope": 2, "term": "(loop T7 T8 T9 (0))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T7", "T8", "T9" ], "free": [], "exprvars": [] } }, "12": { "goal": [{ "clause": 1, "scope": 2, "term": "(loop T7 T8 T9 (0))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T7", "T8", "T9" ], "free": [], "exprvars": [] } }, "14": { "goal": [ { "clause": 2, "scope": 2, "term": "(loop T7 T8 T9 (0))" }, { "clause": 3, "scope": 2, "term": "(loop T7 T8 T9 (0))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T7", "T8", "T9" ], "free": [], "exprvars": [] } }, "19": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (> T22 T24) (',' (> T23 T24) (',' (is X34 (- T22 (1))) (',' (is X35 (- T23 (1))) (',' (is X36 (+ (0) (1))) (loop X34 X35 T24 X36))))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T22", "T23", "T24" ], "free": [ "X34", "X35", "X36" ], "exprvars": [] } }, "2661": { "goal": [{ "clause": -1, "scope": -1, "term": "(=< T81 T82)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T25", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T22", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T26", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T23", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T27", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T22", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T22", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T23", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T23", "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": { "name": "T24", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T22", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T24", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T23", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T22", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T22", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T23", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T23", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T81", "T82" ], "free": [], "exprvars": [ "T81", "T25", "T80", "T24", "T23", "T83", "T22", "T27", "T82", "T26" ] } }, "2782": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T96", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T98", "type": "PlainIntegerVariable" }, "operation": "<=" }] }, "ground": [], "free": [], "exprvars": [ "T96", "T98" ] } }, "2781": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T96", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T98", "type": "PlainIntegerVariable" }, "operation": ">" }] }, "ground": [ "T96", "T98" ], "free": [], "exprvars": [ "T96", "T98" ] } }, "2043": { "goal": [{ "clause": 3, "scope": 3, "term": "(loop T25 T26 T24 T27)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T25", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T22", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T26", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T23", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T27", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T24", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T22", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T24", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T23", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T25", "T24", "T27", "T26" ], "free": [], "exprvars": [ "T25", "T24", "T23", "T22", "T27", "T26" ] } }, "2780": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T96", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T98", "type": "PlainIntegerVariable" }, "operation": "<=" }] }, "ground": [ "T96", "T98" ], "free": [], "exprvars": [ "T96", "T98" ] } }, "2041": { "goal": [{ "clause": 2, "scope": 3, "term": "(loop T25 T26 T24 T27)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T25", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T22", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T26", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T23", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T27", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T24", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T22", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T24", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T23", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T25", "T24", "T27", "T26" ], "free": [], "exprvars": [ "T25", "T24", "T23", "T22", "T27", "T26" ] } }, "1": { "goal": [{ "clause": -1, "scope": -1, "term": "(test_fun T1 T2 T3)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T2", "T3" ], "free": [], "exprvars": [] } }, "4": { "goal": [{ "clause": 0, "scope": 1, "term": "(test_fun T1 T2 T3)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T2", "T3" ], "free": [], "exprvars": [] } }, "622": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (> T48 T50) (',' (> T49 T50) (',' (is X70 (- T48 (1))) (',' (is X71 (- T49 (1))) (',' (is X72 (+ T51 (1))) (loop X70 X71 T50 X72))))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T25", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T22", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T26", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T23", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T27", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T22", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T22", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T23", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T23", "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": { "name": "T24", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T22", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T24", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T23", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T22", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T22", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T23", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T23", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T48", "T49", "T50", "T51" ], "free": [ "X70", "X71", "X72" ], "exprvars": [ "T25", "T24", "T51", "T23", "T50", "T22", "T27", "T49", "T26", "T48" ] } }, "7": { "goal": [{ "clause": -1, "scope": -1, "term": "(loop T7 T8 T9 (0))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T7", "T8", "T9" ], "free": [], "exprvars": [] } }, "524": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "9": { "goal": [ { "clause": 1, "scope": 2, "term": "(loop T7 T8 T9 (0))" }, { "clause": 2, "scope": 2, "term": "(loop T7 T8 T9 (0))" }, { "clause": 3, "scope": 2, "term": "(loop T7 T8 T9 (0))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T7", "T8", "T9" ], "free": [], "exprvars": [] } }, "20": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } } }, "edges": [ { "from": 1, "to": 4, "label": "CASE" }, { "from": 4, "to": 7, "label": "ONLY EVAL with clause\ntest_fun(X5, X6, X7) :- loop(X5, X6, X7, 0).\nand substitutionT1 -> T7,\nX5 -> T7,\nT2 -> T8,\nX6 -> T8,\nT3 -> T9,\nX7 -> T9" }, { "from": 7, "to": 9, "label": "CASE" }, { "from": 9, "to": 12, "label": "PARALLEL" }, { "from": 9, "to": 14, "label": "PARALLEL" }, { "from": 12, "to": 19, "label": "ONLY EVAL with clause\nloop(X30, X31, X32, X33) :- ','(>(X30, X32), ','(>(X31, X32), ','(is(X34, -(X30, 1)), ','(is(X35, -(X31, 1)), ','(is(X36, +(X33, 1)), loop(X34, X35, X32, X36)))))).\nand substitutionT7 -> T22,\nX30 -> T22,\nT8 -> T23,\nX31 -> T23,\nT9 -> T24,\nX32 -> T24,\nX33 -> 0" }, { "from": 14, "to": 2768, "label": "PARALLEL" }, { "from": 14, "to": 2769, "label": "PARALLEL" }, { "from": 19, "to": 20, "label": "IS ERROR" }, { "from": 19, "to": 516, "label": "ARITHCOMP SUCCESS" }, { "from": 19, "to": 518, "label": "ARITHCOMP FAIL" }, { "from": 516, "to": 524, "label": "IS ERROR" }, { "from": 516, "to": 577, "label": "ARITHCOMP SUCCESS" }, { "from": 516, "to": 578, "label": "ARITHCOMP FAIL" }, { "from": 577, "to": 613, "label": "\nX34 -> T25" }, { "from": 613, "to": 614, "label": "\nX35 -> T26" }, { "from": 614, "to": 615, "label": "\nX36 -> T27" }, { "from": 615, "to": 616, "label": "CASE" }, { "from": 616, "to": 617, "label": "PARALLEL" }, { "from": 616, "to": 618, "label": "PARALLEL" }, { "from": 617, "to": 622, "label": "ONLY EVAL with clause\nloop(X66, X67, X68, X69) :- ','(>(X66, X68), ','(>(X67, X68), ','(is(X70, -(X66, 1)), ','(is(X71, -(X67, 1)), ','(is(X72, +(X69, 1)), loop(X70, X71, X68, X72)))))).\nand substitutionT25 -> T48,\nX66 -> T48,\nT26 -> T49,\nX67 -> T49,\nT24 -> T50,\nX68 -> T50,\nT27 -> T51,\nX69 -> T51" }, { "from": 618, "to": 2041, "label": "PARALLEL" }, { "from": 618, "to": 2043, "label": "PARALLEL" }, { "from": 2041, "to": 2070, "label": "ONLY EVAL with clause\nloop(X89, X90, X91, X92) :- =<(X89, X91).\nand substitutionT25 -> T68,\nX89 -> T68,\nT26 -> T69,\nX90 -> T69,\nT24 -> T70,\nX91 -> T70,\nT27 -> T71,\nX92 -> T71" }, { "from": 2043, "to": 2661, "label": "ONLY EVAL with clause\nloop(X101, X102, X103, X104) :- =<(X102, X103).\nand substitutionT25 -> T80,\nX101 -> T80,\nT26 -> T81,\nX102 -> T81,\nT24 -> T82,\nX103 -> T82,\nT27 -> T83,\nX104 -> T83" }, { "from": 2768, "to": 2770, "label": "ONLY EVAL with clause\nloop(X121, X122, X123, X124) :- =<(X121, X123).\nand substitutionT7 -> T96,\nX121 -> T96,\nT8 -> T97,\nX122 -> T97,\nT9 -> T98,\nX123 -> T98,\nX124 -> 0" }, { "from": 2769, "to": 2783, "label": "ONLY EVAL with clause\nloop(X133, X134, X135, X136) :- =<(X134, X135).\nand substitutionT7 -> T105,\nX133 -> T105,\nT8 -> T106,\nX134 -> T106,\nT9 -> T107,\nX135 -> T107,\nX136 -> 0" }, { "from": 2770, "to": 2771, "label": "IS ERROR" }, { "from": 2770, "to": 2780, "label": "ARITHCOMP SUCCESS" }, { "from": 2770, "to": 2781, "label": "ARITHCOMP FAIL" }, { "from": 2780, "to": 2782, "label": "SUCCESS" }, { "from": 2783, "to": 2784, "label": "IS ERROR" }, { "from": 2783, "to": 2787, "label": "ARITHCOMP SUCCESS" }, { "from": 2783, "to": 2788, "label": "ARITHCOMP FAIL" }, { "from": 2787, "to": 2789, "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