/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 h(g) w.r.t. the given Prolog program could successfully be proven: (0) Prolog (1) PrologToDTProblemTransformerProof [SOUND, 72 ms] (2) TRIPLES (3) TriplesToPiDPProof [SOUND, 0 ms] (4) PiDP (5) DependencyGraphProof [EQUIVALENT, 0 ms] (6) AND (7) PiDP (8) UsableRulesProof [EQUIVALENT, 0 ms] (9) PiDP (10) PiDPToQDPProof [EQUIVALENT, 0 ms] (11) QDP (12) QDPSizeChangeProof [EQUIVALENT, 0 ms] (13) YES (14) PiDP (15) UsableRulesProof [EQUIVALENT, 0 ms] (16) PiDP (17) PiDPToQDPProof [EQUIVALENT, 0 ms] (18) QDP (19) QDPSizeChangeProof [EQUIVALENT, 0 ms] (20) YES ---------------------------------------- (0) Obligation: Clauses: h(X) :- ','(f(X), g(X)). f(c(0, X1)) :- !. f(c(X, Y)) :- ','(p(X, P), f(c(P, s(Y)))). g(c(X2, 0)) :- !. g(c(X, Y)) :- ','(p(Y, P), g(c(s(X), P))). p(0, 0). p(s(X), X). Query: h(g) ---------------------------------------- (1) PrologToDTProblemTransformerProof (SOUND) Built DT problem from termination graph DT10. { "root": 5, "program": { "directives": [], "clauses": [ [ "(h X)", "(',' (f X) (g X))" ], [ "(f (c (0) X1))", "(!)" ], [ "(f (c X Y))", "(',' (p X P) (f (c P (s Y))))" ], [ "(g (c X2 (0)))", "(!)" ], [ "(g (c X Y))", "(',' (p Y P) (g (c (s X) P)))" ], [ "(p (0) (0))", null ], [ "(p (s X) X)", null ] ] }, "graph": { "nodes": { "type": "Nodes", "194": { "goal": [{ "clause": -1, "scope": -1, "term": "(g (c (s (s (0))) T18))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T18"], "free": [], "exprvars": [] } }, "350": { "goal": [ { "clause": 3, "scope": 19, "term": "(g (c (s T55) T54))" }, { "clause": 4, "scope": 19, "term": "(g (c (s T55) T54))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T54", "T55" ], "free": [], "exprvars": [] } }, "197": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "230": { "goal": [ { "clause": -1, "scope": -1, "term": "(!_9)" }, { "clause": 4, "scope": 9, "term": "(g (c (s (s (s (0)))) (0)))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "351": { "goal": [ { "clause": -1, "scope": -1, "term": "(!_19)" }, { "clause": 4, "scope": 19, "term": "(g (c (s T59) (0)))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T59"], "free": [], "exprvars": [] } }, "231": { "goal": [{ "clause": 4, "scope": 9, "term": "(g (c (s (s (s (0)))) T24))" }], "kb": { "nonunifying": [[ "(g (c (s (s (s (0)))) T24))", "(g (c X62 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T24"], "free": ["X62"], "exprvars": [] } }, "352": { "goal": [{ "clause": 4, "scope": 19, "term": "(g (c (s T55) T54))" }], "kb": { "nonunifying": [[ "(g (c (s T55) T54))", "(g (c X148 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T54", "T55" ], "free": ["X148"], "exprvars": [] } }, "232": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "353": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "233": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "354": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "355": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (p T66 X157) (g (c (s (s T65)) X157)))" }], "kb": { "nonunifying": [[ "(g (c (s T65) T66))", "(g (c X148 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T65", "T66" ], "free": [ "X148", "X157" ], "exprvars": [] } }, "356": { "goal": [ { "clause": 5, "scope": 20, "term": "(',' (p T66 X157) (g (c (s (s T65)) X157)))" }, { "clause": 6, "scope": 20, "term": "(',' (p T66 X157) (g (c (s (s T65)) X157)))" } ], "kb": { "nonunifying": [[ "(g (c (s T65) T66))", "(g (c X148 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T65", "T66" ], "free": [ "X148", "X157" ], "exprvars": [] } }, "357": { "goal": [{ "clause": 6, "scope": 20, "term": "(',' (p T66 X157) (g (c (s (s T65)) X157)))" }], "kb": { "nonunifying": [[ "(g (c (s T65) T66))", "(g (c X148 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T65", "T66" ], "free": [ "X148", "X157" ], "exprvars": [] } }, "358": { "goal": [{ "clause": -1, "scope": -1, "term": "(g (c (s (s T65)) T70))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T65", "T70" ], "free": [], "exprvars": [] } }, "359": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "360": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (',' (p T76 X170) (f (c X170 (s T77)))) (g (c T76 T77)))" }], "kb": { "nonunifying": [[ "(f (c T76 T77))", "(f (c (0) X7))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T76", "T77" ], "free": [ "X7", "X170" ], "exprvars": [] } }, "361": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "362": { "goal": [ { "clause": 5, "scope": 21, "term": "(',' (',' (p T76 X170) (f (c X170 (s T77)))) (g (c T76 T77)))" }, { "clause": 6, "scope": 21, "term": "(',' (',' (p T76 X170) (f (c X170 (s T77)))) (g (c T76 T77)))" } ], "kb": { "nonunifying": [[ "(f (c T76 T77))", "(f (c (0) X7))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T76", "T77" ], "free": [ "X7", "X170" ], "exprvars": [] } }, "363": { "goal": [{ "clause": 6, "scope": 21, "term": "(',' (',' (p T76 X170) (f (c X170 (s T77)))) (g (c T76 T77)))" }], "kb": { "nonunifying": [[ "(f (c T76 T77))", "(f (c (0) X7))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T76", "T77" ], "free": [ "X7", "X170" ], "exprvars": [] } }, "364": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (f (c T81 (s T77))) (g (c (s T81) T77)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T77", "T81" ], "free": [], "exprvars": [] } }, "365": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "366": { "goal": [{ "clause": -1, "scope": -1, "term": "(f (c T81 (s T77)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T77", "T81" ], "free": [], "exprvars": [] } }, "367": { "goal": [{ "clause": -1, "scope": -1, "term": "(g (c (s T81) T77))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T77", "T81" ], "free": [], "exprvars": [] } }, "5": { "goal": [{ "clause": -1, "scope": -1, "term": "(h T1)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "368": { "goal": [ { "clause": 1, "scope": 22, "term": "(f (c T81 (s T77)))" }, { "clause": 2, "scope": 22, "term": "(f (c T81 (s T77)))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T77", "T81" ], "free": [], "exprvars": [] } }, "369": { "goal": [ { "clause": -1, "scope": -1, "term": "(!_22)" }, { "clause": 2, "scope": 22, "term": "(f (c (0) (s T86)))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T86"], "free": [], "exprvars": [] } }, "7": { "goal": [{ "clause": 0, "scope": 1, "term": "(h T1)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "408": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "370": { "goal": [{ "clause": 2, "scope": 22, "term": "(f (c T81 (s T77)))" }], "kb": { "nonunifying": [[ "(f (c T81 (s T77)))", "(f (c (0) X179))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T77", "T81" ], "free": ["X179"], "exprvars": [] } }, "371": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "372": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "373": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (p T92 X188) (f (c X188 (s (s T93)))))" }], "kb": { "nonunifying": [[ "(f (c T92 (s T93)))", "(f (c (0) X179))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T92", "T93" ], "free": [ "X179", "X188" ], "exprvars": [] } }, "374": { "goal": [ { "clause": 5, "scope": 23, "term": "(',' (p T92 X188) (f (c X188 (s (s T93)))))" }, { "clause": 6, "scope": 23, "term": "(',' (p T92 X188) (f (c X188 (s (s T93)))))" } ], "kb": { "nonunifying": [[ "(f (c T92 (s T93)))", "(f (c (0) X179))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T92", "T93" ], "free": [ "X179", "X188" ], "exprvars": [] } }, "375": { "goal": [{ "clause": 6, "scope": 23, "term": "(',' (p T92 X188) (f (c X188 (s (s T93)))))" }], "kb": { "nonunifying": [[ "(f (c T92 (s T93)))", "(f (c (0) X179))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T92", "T93" ], "free": [ "X179", "X188" ], "exprvars": [] } }, "376": { "goal": [{ "clause": -1, "scope": -1, "term": "(f (c T97 (s (s T93))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T93", "T97" ], "free": [], "exprvars": [] } }, "37": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (f T3) (g T3))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T3"], "free": [], "exprvars": [] } }, "38": { "goal": [ { "clause": 1, "scope": 2, "term": "(',' (f T3) (g T3))" }, { "clause": 2, "scope": 2, "term": "(',' (f T3) (g T3))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T3"], "free": [], "exprvars": [] } }, "39": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (!_2) (g (c (0) T6)))" }, { "clause": 2, "scope": 2, "term": "(',' (f (c (0) T6)) (g (c (0) T6)))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T6"], "free": [], "exprvars": [] } }, "265": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (p T27 X71) (g (c (s (s (s (s (0))))) X71)))" }], "kb": { "nonunifying": [[ "(g (c (s (s (s (0)))) T27))", "(g (c X62 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T27"], "free": [ "X62", "X71" ], "exprvars": [] } }, "300": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "301": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "302": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (p T33 X88) (g (c (s (s (s (s (s (0)))))) X88)))" }], "kb": { "nonunifying": [[ "(g (c (s (s (s (s (0))))) T33))", "(g (c X79 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T33"], "free": [ "X79", "X88" ], "exprvars": [] } }, "303": { "goal": [ { "clause": 5, "scope": 12, "term": "(',' (p T33 X88) (g (c (s (s (s (s (s (0)))))) X88)))" }, { "clause": 6, "scope": 12, "term": "(',' (p T33 X88) (g (c (s (s (s (s (s (0)))))) X88)))" } ], "kb": { "nonunifying": [[ "(g (c (s (s (s (s (0))))) T33))", "(g (c X79 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T33"], "free": [ "X79", "X88" ], "exprvars": [] } }, "304": { "goal": [{ "clause": 6, "scope": 12, "term": "(',' (p T33 X88) (g (c (s (s (s (s (s (0)))))) X88)))" }], "kb": { "nonunifying": [[ "(g (c (s (s (s (s (0))))) T33))", "(g (c X79 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T33"], "free": [ "X79", "X88" ], "exprvars": [] } }, "305": { "goal": [{ "clause": -1, "scope": -1, "term": "(g (c (s (s (s (s (s (0)))))) T36))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T36"], "free": [], "exprvars": [] } }, "306": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "307": { "goal": [ { "clause": 3, "scope": 13, "term": "(g (c (s (s (s (s (s (0)))))) T36))" }, { "clause": 4, "scope": 13, "term": "(g (c (s (s (s (s (s (0)))))) T36))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T36"], "free": [], "exprvars": [] } }, "308": { "goal": [ { "clause": -1, "scope": -1, "term": "(!_13)" }, { "clause": 4, "scope": 13, "term": "(g (c (s (s (s (s (s (0)))))) (0)))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "40": { "goal": [{ "clause": 2, "scope": 2, "term": "(',' (f T3) (g T3))" }], "kb": { "nonunifying": [[ "(f T3)", "(f (c (0) X7))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T3"], "free": ["X7"], "exprvars": [] } }, "309": { "goal": [{ "clause": 4, "scope": 13, "term": "(g (c (s (s (s (s (s (0)))))) T36))" }], "kb": { "nonunifying": [[ "(g (c (s (s (s (s (s (0)))))) T36))", "(g (c X96 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T36"], "free": ["X96"], "exprvars": [] } }, "41": { "goal": [{ "clause": -1, "scope": -1, "term": "(g (c (0) T6))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T6"], "free": [], "exprvars": [] } }, "44": { "goal": [ { "clause": 3, "scope": 3, "term": "(g (c (0) T6))" }, { "clause": 4, "scope": 3, "term": "(g (c (0) T6))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T6"], "free": [], "exprvars": [] } }, "48": { "goal": [ { "clause": -1, "scope": -1, "term": "(!_3)" }, { "clause": 4, "scope": 3, "term": "(g (c (0) (0)))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "276": { "goal": [ { "clause": 5, "scope": 10, "term": "(',' (p T27 X71) (g (c (s (s (s (s (0))))) X71)))" }, { "clause": 6, "scope": 10, "term": "(',' (p T27 X71) (g (c (s (s (s (s (0))))) X71)))" } ], "kb": { "nonunifying": [[ "(g (c (s (s (s (0)))) T27))", "(g (c X62 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T27"], "free": [ "X62", "X71" ], "exprvars": [] } }, "310": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "311": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "312": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (p T39 X105) (g (c (s (s (s (s (s (s (0))))))) X105)))" }], "kb": { "nonunifying": [[ "(g (c (s (s (s (s (s (0)))))) T39))", "(g (c X96 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T39"], "free": [ "X96", "X105" ], "exprvars": [] } }, "313": { "goal": [ { "clause": 5, "scope": 14, "term": "(',' (p T39 X105) (g (c (s (s (s (s (s (s (0))))))) X105)))" }, { "clause": 6, "scope": 14, "term": "(',' (p T39 X105) (g (c (s (s (s (s (s (s (0))))))) X105)))" } ], "kb": { "nonunifying": [[ "(g (c (s (s (s (s (s (0)))))) T39))", "(g (c X96 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T39"], "free": [ "X96", "X105" ], "exprvars": [] } }, "314": { "goal": [{ "clause": 6, "scope": 14, "term": "(',' (p T39 X105) (g (c (s (s (s (s (s (s (0))))))) X105)))" }], "kb": { "nonunifying": [[ "(g (c (s (s (s (s (s (0)))))) T39))", "(g (c X96 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T39"], "free": [ "X96", "X105" ], "exprvars": [] } }, "315": { "goal": [{ "clause": -1, "scope": -1, "term": "(g (c (s (s (s (s (s (s (0))))))) T42))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T42"], "free": [], "exprvars": [] } }, "316": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "317": { "goal": [ { "clause": 3, "scope": 15, "term": "(g (c (s (s (s (s (s (s (0))))))) T42))" }, { "clause": 4, "scope": 15, "term": "(g (c (s (s (s (s (s (s (0))))))) T42))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T42"], "free": [], "exprvars": [] } }, "318": { "goal": [ { "clause": -1, "scope": -1, "term": "(!_15)" }, { "clause": 4, "scope": 15, "term": "(g (c (s (s (s (s (s (s (0))))))) (0)))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "319": { "goal": [{ "clause": 4, "scope": 15, "term": "(g (c (s (s (s (s (s (s (0))))))) T42))" }], "kb": { "nonunifying": [[ "(g (c (s (s (s (s (s (s (0))))))) T42))", "(g (c X113 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T42"], "free": ["X113"], "exprvars": [] } }, "51": { "goal": [{ "clause": 4, "scope": 3, "term": "(g (c (0) T6))" }], "kb": { "nonunifying": [[ "(g (c (0) T6))", "(g (c X11 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T6"], "free": ["X11"], "exprvars": [] } }, "52": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "53": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "56": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (p T9 X20) (g (c (s (0)) X20)))" }], "kb": { "nonunifying": [[ "(g (c (0) T9))", "(g (c X11 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [ "X11", "X20" ], "exprvars": [] } }, "57": { "goal": [ { "clause": 5, "scope": 4, "term": "(',' (p T9 X20) (g (c (s (0)) X20)))" }, { "clause": 6, "scope": 4, "term": "(',' (p T9 X20) (g (c (s (0)) X20)))" } ], "kb": { "nonunifying": [[ "(g (c (0) T9))", "(g (c X11 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [ "X11", "X20" ], "exprvars": [] } }, "59": { "goal": [{ "clause": 6, "scope": 4, "term": "(',' (p T9 X20) (g (c (s (0)) X20)))" }], "kb": { "nonunifying": [[ "(g (c (0) T9))", "(g (c X11 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [ "X11", "X20" ], "exprvars": [] } }, "320": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "200": { "goal": [ { "clause": 3, "scope": 7, "term": "(g (c (s (s (0))) T18))" }, { "clause": 4, "scope": 7, "term": "(g (c (s (s (0))) T18))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T18"], "free": [], "exprvars": [] } }, "321": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "322": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (p T45 X122) (g (c (s (s (s (s (s (s (s (0)))))))) X122)))" }], "kb": { "nonunifying": [[ "(g (c (s (s (s (s (s (s (0))))))) T45))", "(g (c X113 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T45"], "free": [ "X113", "X122" ], "exprvars": [] } }, "323": { "goal": [ { "clause": 5, "scope": 16, "term": "(',' (p T45 X122) (g (c (s (s (s (s (s (s (s (0)))))))) X122)))" }, { "clause": 6, "scope": 16, "term": "(',' (p T45 X122) (g (c (s (s (s (s (s (s (s (0)))))))) X122)))" } ], "kb": { "nonunifying": [[ "(g (c (s (s (s (s (s (s (0))))))) T45))", "(g (c X113 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T45"], "free": [ "X113", "X122" ], "exprvars": [] } }, "324": { "goal": [{ "clause": 6, "scope": 16, "term": "(',' (p T45 X122) (g (c (s (s (s (s (s (s (s (0)))))))) X122)))" }], "kb": { "nonunifying": [[ "(g (c (s (s (s (s (s (s (0))))))) T45))", "(g (c X113 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T45"], "free": [ "X113", "X122" ], "exprvars": [] } }, "325": { "goal": [{ "clause": -1, "scope": -1, "term": "(g (c (s (s (s (s (s (s (s (0)))))))) T48))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T48"], "free": [], "exprvars": [] } }, "205": { "goal": [ { "clause": -1, "scope": -1, "term": "(!_7)" }, { "clause": 4, "scope": 7, "term": "(g (c (s (s (0))) (0)))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "326": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "206": { "goal": [{ "clause": 4, "scope": 7, "term": "(g (c (s (s (0))) T18))" }], "kb": { "nonunifying": [[ "(g (c (s (s (0))) T18))", "(g (c X45 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T18"], "free": ["X45"], "exprvars": [] } }, "327": { "goal": [ { "clause": 3, "scope": 17, "term": "(g (c (s (s (s (s (s (s (s (0)))))))) T48))" }, { "clause": 4, "scope": 17, "term": "(g (c (s (s (s (s (s (s (s (0)))))))) T48))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T48"], "free": [], "exprvars": [] } }, "328": { "goal": [ { "clause": -1, "scope": -1, "term": "(!_17)" }, { "clause": 4, "scope": 17, "term": "(g (c (s (s (s (s (s (s (s (0)))))))) (0)))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "208": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "329": { "goal": [{ "clause": 4, "scope": 17, "term": "(g (c (s (s (s (s (s (s (s (0)))))))) T48))" }], "kb": { "nonunifying": [[ "(g (c (s (s (s (s (s (s (s (0)))))))) T48))", "(g (c X130 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T48"], "free": ["X130"], "exprvars": [] } }, "61": { "goal": [{ "clause": -1, "scope": -1, "term": "(g (c (s (0)) T12))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T12"], "free": [], "exprvars": [] } }, "209": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "62": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "63": { "goal": [ { "clause": 3, "scope": 5, "term": "(g (c (s (0)) T12))" }, { "clause": 4, "scope": 5, "term": "(g (c (s (0)) T12))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T12"], "free": [], "exprvars": [] } }, "64": { "goal": [ { "clause": -1, "scope": -1, "term": "(!_5)" }, { "clause": 4, "scope": 5, "term": "(g (c (s (0)) (0)))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "68": { "goal": [{ "clause": 4, "scope": 5, "term": "(g (c (s (0)) T12))" }], "kb": { "nonunifying": [[ "(g (c (s (0)) T12))", "(g (c X28 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T12"], "free": ["X28"], "exprvars": [] } }, "69": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "294": { "goal": [{ "clause": 6, "scope": 10, "term": "(',' (p T27 X71) (g (c (s (s (s (s (0))))) X71)))" }], "kb": { "nonunifying": [[ "(g (c (s (s (s (0)))) T27))", "(g (c X62 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T27"], "free": [ "X62", "X71" ], "exprvars": [] } }, "295": { "goal": [{ "clause": -1, "scope": -1, "term": "(g (c (s (s (s (s (0))))) T30))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T30"], "free": [], "exprvars": [] } }, "296": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "297": { "goal": [ { "clause": 3, "scope": 11, "term": "(g (c (s (s (s (s (0))))) T30))" }, { "clause": 4, "scope": 11, "term": "(g (c (s (s (s (s (0))))) T30))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T30"], "free": [], "exprvars": [] } }, "330": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "298": { "goal": [ { "clause": -1, "scope": -1, "term": "(!_11)" }, { "clause": 4, "scope": 11, "term": "(g (c (s (s (s (s (0))))) (0)))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "331": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "299": { "goal": [{ "clause": 4, "scope": 11, "term": "(g (c (s (s (s (s (0))))) T30))" }], "kb": { "nonunifying": [[ "(g (c (s (s (s (s (0))))) T30))", "(g (c X79 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T30"], "free": ["X79"], "exprvars": [] } }, "332": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (p T51 X139) (g (c (s (s (s (s (s (s (s (s (0))))))))) X139)))" }], "kb": { "nonunifying": [[ "(g (c (s (s (s (s (s (s (s (0)))))))) T51))", "(g (c X130 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T51"], "free": [ "X130", "X139" ], "exprvars": [] } }, "333": { "goal": [ { "clause": 5, "scope": 18, "term": "(',' (p T51 X139) (g (c (s (s (s (s (s (s (s (s (0))))))))) X139)))" }, { "clause": 6, "scope": 18, "term": "(',' (p T51 X139) (g (c (s (s (s (s (s (s (s (s (0))))))))) X139)))" } ], "kb": { "nonunifying": [[ "(g (c (s (s (s (s (s (s (s (0)))))))) T51))", "(g (c X130 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T51"], "free": [ "X130", "X139" ], "exprvars": [] } }, "334": { "goal": [{ "clause": 6, "scope": 18, "term": "(',' (p T51 X139) (g (c (s (s (s (s (s (s (s (s (0))))))))) X139)))" }], "kb": { "nonunifying": [[ "(g (c (s (s (s (s (s (s (s (0)))))))) T51))", "(g (c X130 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T51"], "free": [ "X130", "X139" ], "exprvars": [] } }, "335": { "goal": [{ "clause": -1, "scope": -1, "term": "(g (c (s (s (s (s (s (s (s (s (0))))))))) T54))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T54"], "free": [], "exprvars": [] } }, "217": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (p T21 X54) (g (c (s (s (s (0)))) X54)))" }], "kb": { "nonunifying": [[ "(g (c (s (s (0))) T21))", "(g (c X45 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T21"], "free": [ "X45", "X54" ], "exprvars": [] } }, "70": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "219": { "goal": [ { "clause": 5, "scope": 8, "term": "(',' (p T21 X54) (g (c (s (s (s (0)))) X54)))" }, { "clause": 6, "scope": 8, "term": "(',' (p T21 X54) (g (c (s (s (s (0)))) X54)))" } ], "kb": { "nonunifying": [[ "(g (c (s (s (0))) T21))", "(g (c X45 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T21"], "free": [ "X45", "X54" ], "exprvars": [] } }, "183": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (p T15 X37) (g (c (s (s (0))) X37)))" }], "kb": { "nonunifying": [[ "(g (c (s (0)) T15))", "(g (c X28 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T15"], "free": [ "X28", "X37" ], "exprvars": [] } }, "187": { "goal": [ { "clause": 5, "scope": 6, "term": "(',' (p T15 X37) (g (c (s (s (0))) X37)))" }, { "clause": 6, "scope": 6, "term": "(',' (p T15 X37) (g (c (s (s (0))) X37)))" } ], "kb": { "nonunifying": [[ "(g (c (s (0)) T15))", "(g (c X28 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T15"], "free": [ "X28", "X37" ], "exprvars": [] } }, "189": { "goal": [{ "clause": 6, "scope": 6, "term": "(',' (p T15 X37) (g (c (s (s (0))) X37)))" }], "kb": { "nonunifying": [[ "(g (c (s (0)) T15))", "(g (c X28 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T15"], "free": [ "X28", "X37" ], "exprvars": [] } }, "222": { "goal": [{ "clause": 6, "scope": 8, "term": "(',' (p T21 X54) (g (c (s (s (s (0)))) X54)))" }], "kb": { "nonunifying": [[ "(g (c (s (s (0))) T21))", "(g (c X45 (0)))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T21"], "free": [ "X45", "X54" ], "exprvars": [] } }, "225": { "goal": [{ "clause": -1, "scope": -1, "term": "(g (c (s (s (s (0)))) T24))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T24"], "free": [], "exprvars": [] } }, "226": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "348": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "349": { "goal": [{ "clause": -1, "scope": -1, "term": "(g (c (s T55) T54))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T54", "T55" ], "free": [], "exprvars": [] } }, "229": { "goal": [ { "clause": 3, "scope": 9, "term": "(g (c (s (s (s (0)))) T24))" }, { "clause": 4, "scope": 9, "term": "(g (c (s (s (s (0)))) T24))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T24"], "free": [], "exprvars": [] } } }, "edges": [ { "from": 5, "to": 7, "label": "CASE" }, { "from": 7, "to": 37, "label": "ONLY EVAL with clause\nh(X4) :- ','(f(X4), g(X4)).\nand substitutionT1 -> T3,\nX4 -> T3" }, { "from": 37, "to": 38, "label": "CASE" }, { "from": 38, "to": 39, "label": "EVAL with clause\nf(c(0, X7)) :- !_2.\nand substitutionX7 -> T6,\nT3 -> c(0, T6)" }, { "from": 38, "to": 40, "label": "EVAL-BACKTRACK" }, { "from": 39, "to": 41, "label": "CUT" }, { "from": 40, "to": 360, "label": "EVAL with clause\nf(c(X168, X169)) :- ','(p(X168, X170), f(c(X170, s(X169)))).\nand substitutionX168 -> T76,\nX169 -> T77,\nT3 -> c(T76, T77)" }, { "from": 40, "to": 361, "label": "EVAL-BACKTRACK" }, { "from": 41, "to": 44, "label": "CASE" }, { "from": 44, "to": 48, "label": "EVAL with clause\ng(c(X11, 0)) :- !_3.\nand substitutionX11 -> 0,\nT6 -> 0" }, { "from": 44, "to": 51, "label": "EVAL-BACKTRACK" }, { "from": 48, "to": 52, "label": "CUT" }, { "from": 51, "to": 56, "label": "ONLY EVAL with clause\ng(c(X18, X19)) :- ','(p(X19, X20), g(c(s(X18), X20))).\nand substitutionX18 -> 0,\nT6 -> T9,\nX19 -> T9" }, { "from": 52, "to": 53, "label": "SUCCESS" }, { "from": 56, "to": 57, "label": "CASE" }, { "from": 57, "to": 59, "label": "BACKTRACK\nfor clause: p(0, 0)\nwith clash: (g(c(0, T9)), g(c(X11, 0)))" }, { "from": 59, "to": 61, "label": "EVAL with clause\np(s(X24), X24).\nand substitutionX24 -> T12,\nT9 -> s(T12),\nX20 -> T12" }, { "from": 59, "to": 62, "label": "EVAL-BACKTRACK" }, { "from": 61, "to": 63, "label": "CASE" }, { "from": 63, "to": 64, "label": "EVAL with clause\ng(c(X28, 0)) :- !_5.\nand substitutionX28 -> s(0),\nT12 -> 0" }, { "from": 63, "to": 68, "label": "EVAL-BACKTRACK" }, { "from": 64, "to": 69, "label": "CUT" }, { "from": 68, "to": 183, "label": "ONLY EVAL with clause\ng(c(X35, X36)) :- ','(p(X36, X37), g(c(s(X35), X37))).\nand substitutionX35 -> s(0),\nT12 -> T15,\nX36 -> T15" }, { "from": 69, "to": 70, "label": "SUCCESS" }, { "from": 183, "to": 187, "label": "CASE" }, { "from": 187, "to": 189, "label": "BACKTRACK\nfor clause: p(0, 0)\nwith clash: (g(c(s(0), T15)), g(c(X28, 0)))" }, { "from": 189, "to": 194, "label": "EVAL with clause\np(s(X41), X41).\nand substitutionX41 -> T18,\nT15 -> s(T18),\nX37 -> T18" }, { "from": 189, "to": 197, "label": "EVAL-BACKTRACK" }, { "from": 194, "to": 200, "label": "CASE" }, { "from": 200, "to": 205, "label": "EVAL with clause\ng(c(X45, 0)) :- !_7.\nand substitutionX45 -> s(s(0)),\nT18 -> 0" }, { "from": 200, "to": 206, "label": "EVAL-BACKTRACK" }, { "from": 205, "to": 208, "label": "CUT" }, { "from": 206, "to": 217, "label": "ONLY EVAL with clause\ng(c(X52, X53)) :- ','(p(X53, X54), g(c(s(X52), X54))).\nand substitutionX52 -> s(s(0)),\nT18 -> T21,\nX53 -> T21" }, { "from": 208, "to": 209, "label": "SUCCESS" }, { "from": 217, "to": 219, "label": "CASE" }, { "from": 219, "to": 222, "label": "BACKTRACK\nfor clause: p(0, 0)\nwith clash: (g(c(s(s(0)), T21)), g(c(X45, 0)))" }, { "from": 222, "to": 225, "label": "EVAL with clause\np(s(X58), X58).\nand substitutionX58 -> T24,\nT21 -> s(T24),\nX54 -> T24" }, { "from": 222, "to": 226, "label": "EVAL-BACKTRACK" }, { "from": 225, "to": 229, "label": "CASE" }, { "from": 229, "to": 230, "label": "EVAL with clause\ng(c(X62, 0)) :- !_9.\nand substitutionX62 -> s(s(s(0))),\nT24 -> 0" }, { "from": 229, "to": 231, "label": "EVAL-BACKTRACK" }, { "from": 230, "to": 232, "label": "CUT" }, { "from": 231, "to": 265, "label": "ONLY EVAL with clause\ng(c(X69, X70)) :- ','(p(X70, X71), g(c(s(X69), X71))).\nand substitutionX69 -> s(s(s(0))),\nT24 -> T27,\nX70 -> T27" }, { "from": 232, "to": 233, "label": "SUCCESS" }, { "from": 265, "to": 276, "label": "CASE" }, { "from": 276, "to": 294, "label": "BACKTRACK\nfor clause: p(0, 0)\nwith clash: (g(c(s(s(s(0))), T27)), g(c(X62, 0)))" }, { "from": 294, "to": 295, "label": "EVAL with clause\np(s(X75), X75).\nand substitutionX75 -> T30,\nT27 -> s(T30),\nX71 -> T30" }, { "from": 294, "to": 296, "label": "EVAL-BACKTRACK" }, { "from": 295, "to": 297, "label": "CASE" }, { "from": 297, "to": 298, "label": "EVAL with clause\ng(c(X79, 0)) :- !_11.\nand substitutionX79 -> s(s(s(s(0)))),\nT30 -> 0" }, { "from": 297, "to": 299, "label": "EVAL-BACKTRACK" }, { "from": 298, "to": 300, "label": "CUT" }, { "from": 299, "to": 302, "label": "ONLY EVAL with clause\ng(c(X86, X87)) :- ','(p(X87, X88), g(c(s(X86), X88))).\nand substitutionX86 -> s(s(s(s(0)))),\nT30 -> T33,\nX87 -> T33" }, { "from": 300, "to": 301, "label": "SUCCESS" }, { "from": 302, "to": 303, "label": "CASE" }, { "from": 303, "to": 304, "label": "BACKTRACK\nfor clause: p(0, 0)\nwith clash: (g(c(s(s(s(s(0)))), T33)), g(c(X79, 0)))" }, { "from": 304, "to": 305, "label": "EVAL with clause\np(s(X92), X92).\nand substitutionX92 -> T36,\nT33 -> s(T36),\nX88 -> T36" }, { "from": 304, "to": 306, "label": "EVAL-BACKTRACK" }, { "from": 305, "to": 307, "label": "CASE" }, { "from": 307, "to": 308, "label": "EVAL with clause\ng(c(X96, 0)) :- !_13.\nand substitutionX96 -> s(s(s(s(s(0))))),\nT36 -> 0" }, { "from": 307, "to": 309, "label": "EVAL-BACKTRACK" }, { "from": 308, "to": 310, "label": "CUT" }, { "from": 309, "to": 312, "label": "ONLY EVAL with clause\ng(c(X103, X104)) :- ','(p(X104, X105), g(c(s(X103), X105))).\nand substitutionX103 -> s(s(s(s(s(0))))),\nT36 -> T39,\nX104 -> T39" }, { "from": 310, "to": 311, "label": "SUCCESS" }, { "from": 312, "to": 313, "label": "CASE" }, { "from": 313, "to": 314, "label": "BACKTRACK\nfor clause: p(0, 0)\nwith clash: (g(c(s(s(s(s(s(0))))), T39)), g(c(X96, 0)))" }, { "from": 314, "to": 315, "label": "EVAL with clause\np(s(X109), X109).\nand substitutionX109 -> T42,\nT39 -> s(T42),\nX105 -> T42" }, { "from": 314, "to": 316, "label": "EVAL-BACKTRACK" }, { "from": 315, "to": 317, "label": "CASE" }, { "from": 317, "to": 318, "label": "EVAL with clause\ng(c(X113, 0)) :- !_15.\nand substitutionX113 -> s(s(s(s(s(s(0)))))),\nT42 -> 0" }, { "from": 317, "to": 319, "label": "EVAL-BACKTRACK" }, { "from": 318, "to": 320, "label": "CUT" }, { "from": 319, "to": 322, "label": "ONLY EVAL with clause\ng(c(X120, X121)) :- ','(p(X121, X122), g(c(s(X120), X122))).\nand substitutionX120 -> s(s(s(s(s(s(0)))))),\nT42 -> T45,\nX121 -> T45" }, { "from": 320, "to": 321, "label": "SUCCESS" }, { "from": 322, "to": 323, "label": "CASE" }, { "from": 323, "to": 324, "label": "BACKTRACK\nfor clause: p(0, 0)\nwith clash: (g(c(s(s(s(s(s(s(0)))))), T45)), g(c(X113, 0)))" }, { "from": 324, "to": 325, "label": "EVAL with clause\np(s(X126), X126).\nand substitutionX126 -> T48,\nT45 -> s(T48),\nX122 -> T48" }, { "from": 324, "to": 326, "label": "EVAL-BACKTRACK" }, { "from": 325, "to": 327, "label": "CASE" }, { "from": 327, "to": 328, "label": "EVAL with clause\ng(c(X130, 0)) :- !_17.\nand substitutionX130 -> s(s(s(s(s(s(s(0))))))),\nT48 -> 0" }, { "from": 327, "to": 329, "label": "EVAL-BACKTRACK" }, { "from": 328, "to": 330, "label": "CUT" }, { "from": 329, "to": 332, "label": "ONLY EVAL with clause\ng(c(X137, X138)) :- ','(p(X138, X139), g(c(s(X137), X139))).\nand substitutionX137 -> s(s(s(s(s(s(s(0))))))),\nT48 -> T51,\nX138 -> T51" }, { "from": 330, "to": 331, "label": "SUCCESS" }, { "from": 332, "to": 333, "label": "CASE" }, { "from": 333, "to": 334, "label": "BACKTRACK\nfor clause: p(0, 0)\nwith clash: (g(c(s(s(s(s(s(s(s(0))))))), T51)), g(c(X130, 0)))" }, { "from": 334, "to": 335, "label": "EVAL with clause\np(s(X143), X143).\nand substitutionX143 -> T54,\nT51 -> s(T54),\nX139 -> T54" }, { "from": 334, "to": 348, "label": "EVAL-BACKTRACK" }, { "from": 335, "to": 349, "label": "GENERALIZATION\nT55 <-- s(s(s(s(s(s(s(0)))))))\n\nNew Knowledge:\nT55 is ground" }, { "from": 349, "to": 350, "label": "CASE" }, { "from": 350, "to": 351, "label": "EVAL with clause\ng(c(X148, 0)) :- !_19.\nand substitutionT55 -> T59,\nX148 -> s(T59),\nT54 -> 0" }, { "from": 350, "to": 352, "label": "EVAL-BACKTRACK" }, { "from": 351, "to": 353, "label": "CUT" }, { "from": 352, "to": 355, "label": "ONLY EVAL with clause\ng(c(X155, X156)) :- ','(p(X156, X157), g(c(s(X155), X157))).\nand substitutionT55 -> T65,\nX155 -> s(T65),\nT54 -> T66,\nX156 -> T66" }, { "from": 353, "to": 354, "label": "SUCCESS" }, { "from": 355, "to": 356, "label": "CASE" }, { "from": 356, "to": 357, "label": "BACKTRACK\nfor clause: p(0, 0)\nwith clash: (g(c(s(T65), T66)), g(c(X148, 0)))" }, { "from": 357, "to": 358, "label": "EVAL with clause\np(s(X161), X161).\nand substitutionX161 -> T70,\nT66 -> s(T70),\nX157 -> T70" }, { "from": 357, "to": 359, "label": "EVAL-BACKTRACK" }, { "from": 358, "to": 349, "label": "INSTANCE with matching:\nT55 -> s(T65)\nT54 -> T70" }, { "from": 360, "to": 362, "label": "CASE" }, { "from": 362, "to": 363, "label": "BACKTRACK\nfor clause: p(0, 0)\nwith clash: (f(c(T76, T77)), f(c(0, X7)))" }, { "from": 363, "to": 364, "label": "EVAL with clause\np(s(X174), X174).\nand substitutionX174 -> T81,\nT76 -> s(T81),\nX170 -> T81" }, { "from": 363, "to": 365, "label": "EVAL-BACKTRACK" }, { "from": 364, "to": 366, "label": "SPLIT 1" }, { "from": 364, "to": 367, "label": "SPLIT 2\nnew knowledge:\nT81 is ground\nT77 is ground" }, { "from": 366, "to": 368, "label": "CASE" }, { "from": 367, "to": 349, "label": "INSTANCE with matching:\nT55 -> T81\nT54 -> T77" }, { "from": 368, "to": 369, "label": "EVAL with clause\nf(c(0, X179)) :- !_22.\nand substitutionT81 -> 0,\nT77 -> T86,\nX179 -> s(T86)" }, { "from": 368, "to": 370, "label": "EVAL-BACKTRACK" }, { "from": 369, "to": 371, "label": "CUT" }, { "from": 370, "to": 373, "label": "ONLY EVAL with clause\nf(c(X186, X187)) :- ','(p(X186, X188), f(c(X188, s(X187)))).\nand substitutionT81 -> T92,\nX186 -> T92,\nT77 -> T93,\nX187 -> s(T93)" }, { "from": 371, "to": 372, "label": "SUCCESS" }, { "from": 373, "to": 374, "label": "CASE" }, { "from": 374, "to": 375, "label": "BACKTRACK\nfor clause: p(0, 0)\nwith clash: (f(c(T92, s(T93))), f(c(0, X179)))" }, { "from": 375, "to": 376, "label": "EVAL with clause\np(s(X192), X192).\nand substitutionX192 -> T97,\nT92 -> s(T97),\nX188 -> T97" }, { "from": 375, "to": 408, "label": "EVAL-BACKTRACK" }, { "from": 376, "to": 366, "label": "INSTANCE with matching:\nT81 -> T97\nT77 -> s(T93)" } ], "type": "Graph" } } ---------------------------------------- (2) Obligation: Triples: gA(X1, s(X2)) :- gA(s(X1), X2). fB(s(X1), X2) :- fB(X1, s(X2)). hC(c(0, s(s(s(s(s(s(s(s(X1)))))))))) :- gA(s(s(s(s(s(s(s(0))))))), X1). hC(c(s(X1), X2)) :- fB(X1, X2). hC(c(s(X1), X2)) :- ','(fcB(X1, X2), gA(X1, X2)). Clauses: gcA(X1, 0). gcA(X1, s(X2)) :- gcA(s(X1), X2). fcB(0, X1). fcB(s(X1), X2) :- fcB(X1, s(X2)). Afs: hC(x1) = hC(x1) ---------------------------------------- (3) TriplesToPiDPProof (SOUND) We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes: hC_in_1: (b) gA_in_2: (b,b) fB_in_2: (b,b) fcB_in_2: (b,b) Transforming TRIPLES into the following Term Rewriting System: Pi DP problem: The TRS P consists of the following rules: HC_IN_G(c(0, s(s(s(s(s(s(s(s(X1)))))))))) -> U3_G(X1, gA_in_gg(s(s(s(s(s(s(s(0))))))), X1)) HC_IN_G(c(0, s(s(s(s(s(s(s(s(X1)))))))))) -> GA_IN_GG(s(s(s(s(s(s(s(0))))))), X1) GA_IN_GG(X1, s(X2)) -> U1_GG(X1, X2, gA_in_gg(s(X1), X2)) GA_IN_GG(X1, s(X2)) -> GA_IN_GG(s(X1), X2) HC_IN_G(c(s(X1), X2)) -> U4_G(X1, X2, fB_in_gg(X1, X2)) HC_IN_G(c(s(X1), X2)) -> FB_IN_GG(X1, X2) FB_IN_GG(s(X1), X2) -> U2_GG(X1, X2, fB_in_gg(X1, s(X2))) FB_IN_GG(s(X1), X2) -> FB_IN_GG(X1, s(X2)) HC_IN_G(c(s(X1), X2)) -> U5_G(X1, X2, fcB_in_gg(X1, X2)) U5_G(X1, X2, fcB_out_gg(X1, X2)) -> U6_G(X1, X2, gA_in_gg(X1, X2)) U5_G(X1, X2, fcB_out_gg(X1, X2)) -> GA_IN_GG(X1, X2) The TRS R consists of the following rules: fcB_in_gg(0, X1) -> fcB_out_gg(0, X1) fcB_in_gg(s(X1), X2) -> U9_gg(X1, X2, fcB_in_gg(X1, s(X2))) U9_gg(X1, X2, fcB_out_gg(X1, s(X2))) -> fcB_out_gg(s(X1), X2) Pi is empty. We have to consider all (P,R,Pi)-chains Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES ---------------------------------------- (4) Obligation: Pi DP problem: The TRS P consists of the following rules: HC_IN_G(c(0, s(s(s(s(s(s(s(s(X1)))))))))) -> U3_G(X1, gA_in_gg(s(s(s(s(s(s(s(0))))))), X1)) HC_IN_G(c(0, s(s(s(s(s(s(s(s(X1)))))))))) -> GA_IN_GG(s(s(s(s(s(s(s(0))))))), X1) GA_IN_GG(X1, s(X2)) -> U1_GG(X1, X2, gA_in_gg(s(X1), X2)) GA_IN_GG(X1, s(X2)) -> GA_IN_GG(s(X1), X2) HC_IN_G(c(s(X1), X2)) -> U4_G(X1, X2, fB_in_gg(X1, X2)) HC_IN_G(c(s(X1), X2)) -> FB_IN_GG(X1, X2) FB_IN_GG(s(X1), X2) -> U2_GG(X1, X2, fB_in_gg(X1, s(X2))) FB_IN_GG(s(X1), X2) -> FB_IN_GG(X1, s(X2)) HC_IN_G(c(s(X1), X2)) -> U5_G(X1, X2, fcB_in_gg(X1, X2)) U5_G(X1, X2, fcB_out_gg(X1, X2)) -> U6_G(X1, X2, gA_in_gg(X1, X2)) U5_G(X1, X2, fcB_out_gg(X1, X2)) -> GA_IN_GG(X1, X2) The TRS R consists of the following rules: fcB_in_gg(0, X1) -> fcB_out_gg(0, X1) fcB_in_gg(s(X1), X2) -> U9_gg(X1, X2, fcB_in_gg(X1, s(X2))) U9_gg(X1, X2, fcB_out_gg(X1, s(X2))) -> fcB_out_gg(s(X1), X2) Pi is empty. We have to consider all (P,R,Pi)-chains ---------------------------------------- (5) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 2 SCCs with 9 less nodes. ---------------------------------------- (6) Complex Obligation (AND) ---------------------------------------- (7) Obligation: Pi DP problem: The TRS P consists of the following rules: FB_IN_GG(s(X1), X2) -> FB_IN_GG(X1, s(X2)) The TRS R consists of the following rules: fcB_in_gg(0, X1) -> fcB_out_gg(0, X1) fcB_in_gg(s(X1), X2) -> U9_gg(X1, X2, fcB_in_gg(X1, s(X2))) U9_gg(X1, X2, fcB_out_gg(X1, s(X2))) -> fcB_out_gg(s(X1), X2) Pi is empty. We have to consider all (P,R,Pi)-chains ---------------------------------------- (8) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (9) Obligation: Pi DP problem: The TRS P consists of the following rules: FB_IN_GG(s(X1), X2) -> FB_IN_GG(X1, s(X2)) R is empty. Pi is empty. We have to consider all (P,R,Pi)-chains ---------------------------------------- (10) PiDPToQDPProof (EQUIVALENT) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (11) Obligation: Q DP problem: The TRS P consists of the following rules: FB_IN_GG(s(X1), X2) -> FB_IN_GG(X1, s(X2)) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (12) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *FB_IN_GG(s(X1), X2) -> FB_IN_GG(X1, s(X2)) The graph contains the following edges 1 > 1 ---------------------------------------- (13) YES ---------------------------------------- (14) Obligation: Pi DP problem: The TRS P consists of the following rules: GA_IN_GG(X1, s(X2)) -> GA_IN_GG(s(X1), X2) The TRS R consists of the following rules: fcB_in_gg(0, X1) -> fcB_out_gg(0, X1) fcB_in_gg(s(X1), X2) -> U9_gg(X1, X2, fcB_in_gg(X1, s(X2))) U9_gg(X1, X2, fcB_out_gg(X1, s(X2))) -> fcB_out_gg(s(X1), X2) Pi is empty. We have to consider all (P,R,Pi)-chains ---------------------------------------- (15) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (16) Obligation: Pi DP problem: The TRS P consists of the following rules: GA_IN_GG(X1, s(X2)) -> GA_IN_GG(s(X1), X2) R is empty. Pi is empty. We have to consider all (P,R,Pi)-chains ---------------------------------------- (17) PiDPToQDPProof (EQUIVALENT) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (18) Obligation: Q DP problem: The TRS P consists of the following rules: GA_IN_GG(X1, s(X2)) -> GA_IN_GG(s(X1), X2) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (19) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *GA_IN_GG(X1, s(X2)) -> GA_IN_GG(s(X1), X2) The graph contains the following edges 2 > 2 ---------------------------------------- (20) YES