MAYBE

Found an example we currently can't prove?
-> Consider contributing it to the benchmark set: https://mysolvertimesout.org/

proof of /hpcwork/ff862203/termcomp26/benchmarks/Sthkf.pl
# AProVE Commit ID: 23a904c96b029b0a549cde0d0d17dbccf967db59 jckassing 20260626 unpublished dirty


Left Termination of the query pattern

color_map(a,g)

w.r.t. the given Prolog program could not be shown:

(0) Prolog
(1) PrologToTRSTransformerProof [SOUND, 0 ms]
(2) QTRS
    (3) DependencyPairsProof [EQUIVALENT, 0 ms]
    (4) QDP
    (5) DependencyGraphProof [EQUIVALENT, 0 ms]
    (6) AND
        (7) QDP
            (8) UsableRulesProof [EQUIVALENT, 0 ms]
            (9) QDP
            (10) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (11) YES
        (12) QDP
            (13) NonTerminationLoopProof [COMPLETE, 0 ms]
            (14) NO
        (15) QDP
            (16) UsableRulesProof [EQUIVALENT, 0 ms]
            (17) QDP
            (18) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (19) YES
        (20) QDP
            (21) NonTerminationLoopProof [COMPLETE, 0 ms]
            (22) NO
(23) PrologToPiTRSProof [SOUND, 0 ms]
(24) PiTRS
    (25) DependencyPairsProof [EQUIVALENT, 0 ms]
    (26) PiDP
    (27) DependencyGraphProof [EQUIVALENT, 0 ms]
    (28) AND
        (29) PiDP
            (30) UsableRulesProof [EQUIVALENT, 0 ms]
            (31) PiDP
            (32) PiDPToQDPProof [SOUND, 0 ms]
            (33) QDP
            (34) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (35) YES
        (36) PiDP
            (37) UsableRulesProof [EQUIVALENT, 0 ms]
            (38) PiDP
            (39) PiDPToQDPProof [SOUND, 0 ms]
            (40) QDP
            (41) TransformationProof [SOUND, 0 ms]
            (42) QDP
            (43) TransformationProof [EQUIVALENT, 0 ms]
            (44) QDP
            (45) NonTerminationLoopProof [COMPLETE, 0 ms]
            (46) NO
        (47) PiDP
            (48) UsableRulesProof [EQUIVALENT, 0 ms]
            (49) PiDP
            (50) PiDPToQDPProof [SOUND, 0 ms]
            (51) QDP
            (52) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (53) YES
        (54) PiDP
            (55) UsableRulesProof [EQUIVALENT, 0 ms]
            (56) PiDP
            (57) PiDPToQDPProof [SOUND, 0 ms]
            (58) QDP
(59) PrologToPiTRSProof [SOUND, 0 ms]
(60) PiTRS
    (61) DependencyPairsProof [EQUIVALENT, 0 ms]
    (62) PiDP
    (63) DependencyGraphProof [EQUIVALENT, 0 ms]
    (64) AND
        (65) PiDP
            (66) UsableRulesProof [EQUIVALENT, 0 ms]
            (67) PiDP
            (68) PiDPToQDPProof [SOUND, 3 ms]
            (69) QDP
            (70) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (71) YES
        (72) PiDP
            (73) UsableRulesProof [EQUIVALENT, 0 ms]
            (74) PiDP
            (75) PiDPToQDPProof [SOUND, 0 ms]
            (76) QDP
            (77) TransformationProof [SOUND, 0 ms]
            (78) QDP
            (79) TransformationProof [EQUIVALENT, 0 ms]
            (80) QDP
            (81) NonTerminationLoopProof [COMPLETE, 0 ms]
            (82) NO
        (83) PiDP
            (84) UsableRulesProof [EQUIVALENT, 0 ms]
            (85) PiDP
            (86) PiDPToQDPProof [SOUND, 0 ms]
            (87) QDP
            (88) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (89) YES
        (90) PiDP
            (91) UsableRulesProof [EQUIVALENT, 0 ms]
            (92) PiDP
            (93) PiDPToQDPProof [SOUND, 0 ms]
            (94) QDP
(95) PrologToDTProblemTransformerProof [SOUND, 0 ms]
(96) TRIPLES
    (97) TriplesToPiDPProof [SOUND, 11 ms]
    (98) PiDP
    (99) DependencyGraphProof [EQUIVALENT, 0 ms]
    (100) AND
        (101) PiDP
            (102) UsableRulesProof [EQUIVALENT, 0 ms]
            (103) PiDP
            (104) PiDPToQDPProof [SOUND, 0 ms]
            (105) QDP
            (106) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (107) YES
        (108) PiDP
            (109) UsableRulesProof [EQUIVALENT, 0 ms]
            (110) PiDP
            (111) PiDPToQDPProof [SOUND, 0 ms]
            (112) QDP
            (113) TransformationProof [SOUND, 0 ms]
            (114) QDP
            (115) TransformationProof [EQUIVALENT, 0 ms]
            (116) QDP
            (117) NonTerminationLoopProof [COMPLETE, 0 ms]
            (118) NO
        (119) PiDP
            (120) UsableRulesProof [EQUIVALENT, 0 ms]
            (121) PiDP
            (122) PiDPToQDPProof [SOUND, 0 ms]
            (123) QDP
            (124) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (125) YES
        (126) PiDP
            (127) PiDPToQDPProof [SOUND, 0 ms]
            (128) QDP
(129) PrologToIRSwTTransformerProof [SOUND, 0 ms]
(130) AND
    (131) IRSwT
        (132) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms]
        (133) TRUE
    (134) IRSwT
        (135) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms]
        (136) TRUE
    (137) IRSwT
        (138) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms]
        (139) IRSwT
        (140) IntTRSCompressionProof [EQUIVALENT, 7 ms]
        (141) IRSwT
        (142) IRSFormatTransformerProof [EQUIVALENT, 0 ms]
        (143) IRSwT
        (144) IRSwTTerminationDigraphProof [EQUIVALENT, 3 ms]
        (145) IRSwT
        (146) IntTRSUnneededArgumentFilterProof [EQUIVALENT, 0 ms]
        (147) IRSwT
        (148) TempFilterProof [SOUND, 2 ms]
        (149) IRSwT
        (150) IRSwTToQDPProof [SOUND, 0 ms]
        (151) QDP
        (152) QDPSizeChangeProof [EQUIVALENT, 0 ms]
        (153) YES
    (154) IRSwT
        (155) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms]
        (156) IRSwT
        (157) IntTRSCompressionProof [EQUIVALENT, 11 ms]
        (158) IRSwT
        (159) IRSFormatTransformerProof [EQUIVALENT, 0 ms]
        (160) IRSwT
        (161) IRSwTTerminationDigraphProof [EQUIVALENT, 31 ms]
        (162) IRSwT
        (163) IntTRSUnneededArgumentFilterProof [EQUIVALENT, 0 ms]
        (164) IRSwT
        (165) IRSwTToIntTRSProof [SOUND, 15 ms]
        (166) IRSwT


----------------------------------------

(0)
Obligation:
Clauses:

color_map(.(Region, Regions), Colors) :- ','(color_region(Region, Colors), color_map(Regions, Colors)).
color_map([], Colors).
color_region(region(Name, Color, Neighbors), Colors) :- ','(select(Color, Colors, Colors1), members(Neighbors, Colors1)).
select(X, .(X, Xs), Xs).
select(X, .(Y, Ys), .(Y, Zs)) :- select(X, Ys, Zs).
members(.(X, Xs), Ys) :- ','(member(X, Ys), members(Xs, Ys)).
members([], Ys).
member(X, .(X, X1)).
member(X, .(X2, T)) :- member(X, T).
test_color(Name, Map) :- ','(map(Name, Map), ','(colors(Name, Colors), color_map(Map, Colors))).
map(test, .(region(a, A, .(B, .(C, .(D, [])))), .(region(b, B, .(A, .(C, .(E, [])))), .(region(c, C, .(A, .(B, .(D, .(E, .(F, [])))))), .(region(d, D, .(A, .(C, .(F, [])))), .(region(e, E, .(B, .(C, .(F, [])))), .(region(f, F, .(C, .(D, .(E, [])))), []))))))).
map(west_europe, .(region(portugal, P, .(E, [])), .(region(spain, E, .(F, .(P, []))), .(region(france, F, .(E, .(I, .(S, .(B, .(WG, .(L, []))))))), .(region(belgium, B, .(F, .(H, .(L, .(WG, []))))), .(region(holland, H, .(B, .(WG, []))), .(region(west_germany, WG, .(F, .(A, .(S, .(H, .(B, .(L, []))))))), .(region(luxembourg, L, .(F, .(B, .(WG, [])))), .(region(italy, I, .(F, .(A, .(S, [])))), .(region(switzerland, S, .(F, .(I, .(A, .(WG, []))))), .(region(austria, A, .(I, .(S, .(WG, [])))), []))))))))))).
colors(X, .(red, .(yellow, .(blue, .(white, []))))).


Query: color_map(a,g)
----------------------------------------

(1) PrologToTRSTransformerProof (SOUND)
Transformed Prolog program to TRS.

{
    "root": 1,
    "program": {
        "directives": [],
        "clauses": [
            [
                "(color_map (. Region Regions) Colors)",
                "(',' (color_region Region Colors) (color_map Regions Colors))"
            ],
            [
                "(color_map ([]) Colors)",
                null
            ],
            [
                "(color_region (region Name Color Neighbors) Colors)",
                "(',' (select Color Colors Colors1) (members Neighbors Colors1))"
            ],
            [
                "(select X (. X Xs) Xs)",
                null
            ],
            [
                "(select X (. Y Ys) (. Y Zs))",
                "(select X Ys Zs)"
            ],
            [
                "(members (. X Xs) Ys)",
                "(',' (member X Ys) (members Xs Ys))"
            ],
            [
                "(members ([]) Ys)",
                null
            ],
            [
                "(member X (. X X1))",
                null
            ],
            [
                "(member X (. X2 T))",
                "(member X T)"
            ],
            [
                "(test_color Name Map)",
                "(',' (map Name Map) (',' (colors Name Colors) (color_map Map Colors)))"
            ],
            [
                "(map (test) (. (region (a) A (. B (. C (. D ([]))))) (. (region (b) B (. A (. C (. E ([]))))) (. (region (c) C (. A (. B (. D (. E (. F ([]))))))) (. (region (d) D (. A (. C (. F ([]))))) (. (region (e) E (. B (. C (. F ([]))))) (. (region (f) F (. C (. D (. E ([]))))) ([]))))))))",
                null
            ],
            [
                "(map (west_europe) (. (region (portugal) P (. E ([]))) (. (region (spain) E (. F (. P ([])))) (. (region (france) F (. E (. I (. S (. B (. WG (. L ([])))))))) (. (region (belgium) B (. F (. H (. L (. WG ([])))))) (. (region (holland) H (. B (. WG ([])))) (. (region (west_germany) WG (. F (. A (. S (. H (. B (. L ([])))))))) (. (region (luxembourg) L (. F (. B (. WG ([]))))) (. (region (italy) I (. F (. A (. S ([]))))) (. (region (switzerland) S (. F (. I (. A (. WG ([])))))) (. (region (austria) A (. I (. S (. WG ([]))))) ([]))))))))))))",
                null
            ],
            [
                "(colors X (. (red) (. (yellow) (. (blue) (. (white) ([]))))))",
                null
            ]
        ]
    },
    "graph": {
        "nodes": {
            "24": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (color_region T18 T17) (color_map T19 T17))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T17"],
                    "free": [],
                    "exprvars": []
                }
            },
            "25": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "47": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "48": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "27": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(color_region T18 T17)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T17"],
                    "free": [],
                    "exprvars": []
                }
            },
            "49": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "28": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(color_map T24 T17)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T17"],
                    "free": [],
                    "exprvars": []
                }
            },
            "29": {
                "goal": [{
                    "clause": 2,
                    "scope": 2,
                    "term": "(color_region T18 T17)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T17"],
                    "free": [],
                    "exprvars": []
                }
            },
            "type": "Nodes",
            "130": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "112": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(member T95 T94)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T94"],
                    "free": [],
                    "exprvars": []
                }
            },
            "114": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(members T101 T94)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T94"],
                    "free": [],
                    "exprvars": []
                }
            },
            "117": {
                "goal": [
                    {
                        "clause": 7,
                        "scope": 5,
                        "term": "(member T95 T94)"
                    },
                    {
                        "clause": 8,
                        "scope": 5,
                        "term": "(member T95 T94)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T94"],
                    "free": [],
                    "exprvars": []
                }
            },
            "118": {
                "goal": [{
                    "clause": 7,
                    "scope": 5,
                    "term": "(member T95 T94)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T94"],
                    "free": [],
                    "exprvars": []
                }
            },
            "119": {
                "goal": [{
                    "clause": 8,
                    "scope": 5,
                    "term": "(member T95 T94)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T94"],
                    "free": [],
                    "exprvars": []
                }
            },
            "52": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(select T72 T71 X74)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T71"],
                    "free": ["X74"],
                    "exprvars": []
                }
            },
            "53": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "32": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (select T41 T40 X41) (members T42 X41))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T40"],
                    "free": ["X41"],
                    "exprvars": []
                }
            },
            "33": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "36": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(select T41 T40 X41)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T40"],
                    "free": ["X41"],
                    "exprvars": []
                }
            },
            "38": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(members T48 T47)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T47"],
                    "free": [],
                    "exprvars": []
                }
            },
            "120": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "121": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "1": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(color_map T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "122": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "2": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 1,
                        "term": "(color_map T1 T2)"
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(color_map T1 T2)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "123": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(member T125 T124)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T124"],
                    "free": [],
                    "exprvars": []
                }
            },
            "3": {
                "goal": [{
                    "clause": 0,
                    "scope": 1,
                    "term": "(color_map T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "124": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "4": {
                "goal": [{
                    "clause": 1,
                    "scope": 1,
                    "term": "(color_map T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "125": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "104": {
                "goal": [{
                    "clause": 5,
                    "scope": 4,
                    "term": "(members T48 T47)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T47"],
                    "free": [],
                    "exprvars": []
                }
            },
            "126": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "105": {
                "goal": [{
                    "clause": 6,
                    "scope": 4,
                    "term": "(members T48 T47)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T47"],
                    "free": [],
                    "exprvars": []
                }
            },
            "127": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "128": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "107": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (member T95 T94) (members T96 T94))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T94"],
                    "free": [],
                    "exprvars": []
                }
            },
            "129": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "108": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "41": {
                "goal": [
                    {
                        "clause": 3,
                        "scope": 3,
                        "term": "(select T41 T40 X41)"
                    },
                    {
                        "clause": 4,
                        "scope": 3,
                        "term": "(select T41 T40 X41)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T40"],
                    "free": ["X41"],
                    "exprvars": []
                }
            },
            "63": {
                "goal": [
                    {
                        "clause": 5,
                        "scope": 4,
                        "term": "(members T48 T47)"
                    },
                    {
                        "clause": 6,
                        "scope": 4,
                        "term": "(members T48 T47)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T47"],
                    "free": [],
                    "exprvars": []
                }
            },
            "42": {
                "goal": [{
                    "clause": 3,
                    "scope": 3,
                    "term": "(select T41 T40 X41)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T40"],
                    "free": ["X41"],
                    "exprvars": []
                }
            },
            "43": {
                "goal": [{
                    "clause": 4,
                    "scope": 3,
                    "term": "(select T41 T40 X41)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T40"],
                    "free": ["X41"],
                    "exprvars": []
                }
            }
        },
        "edges": [
            {
                "from": 1,
                "to": 2,
                "label": "CASE"
            },
            {
                "from": 2,
                "to": 3,
                "label": "PARALLEL"
            },
            {
                "from": 2,
                "to": 4,
                "label": "PARALLEL"
            },
            {
                "from": 3,
                "to": 24,
                "label": "EVAL with clause\ncolor_map(.(X15, X16), X17) :- ','(color_region(X15, X17), color_map(X16, X17)).\nand substitutionX15 -> T18,\nX16 -> T19,\nT1 -> .(T18, T19),\nT2 -> T17,\nX17 -> T17,\nT15 -> T18,\nT16 -> T19"
            },
            {
                "from": 3,
                "to": 25,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 4,
                "to": 128,
                "label": "EVAL with clause\ncolor_map([], X139).\nand substitutionT1 -> [],\nT2 -> T141,\nX139 -> T141"
            },
            {
                "from": 4,
                "to": 129,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 24,
                "to": 27,
                "label": "SPLIT 1"
            },
            {
                "from": 24,
                "to": 28,
                "label": "SPLIT 2\nnew knowledge:\nT17 is ground\nreplacements:T19 -> T24"
            },
            {
                "from": 27,
                "to": 29,
                "label": "CASE"
            },
            {
                "from": 28,
                "to": 1,
                "label": "INSTANCE with matching:\nT1 -> T24\nT2 -> T17"
            },
            {
                "from": 29,
                "to": 32,
                "label": "EVAL with clause\ncolor_region(region(X37, X38, X39), X40) :- ','(select(X38, X40, X41), members(X39, X41)).\nand substitutionX37 -> T37,\nX38 -> T41,\nX39 -> T42,\nT18 -> region(T37, T41, T42),\nT17 -> T40,\nX40 -> T40,\nT38 -> T41,\nT39 -> T42"
            },
            {
                "from": 29,
                "to": 33,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 32,
                "to": 36,
                "label": "SPLIT 1"
            },
            {
                "from": 32,
                "to": 38,
                "label": "SPLIT 2\nnew knowledge:\nT41 is ground\nT40 is ground\nT47 is ground\nreplacements:X41 -> T47,\nT42 -> T48"
            },
            {
                "from": 36,
                "to": 41,
                "label": "CASE"
            },
            {
                "from": 38,
                "to": 63,
                "label": "CASE"
            },
            {
                "from": 41,
                "to": 42,
                "label": "PARALLEL"
            },
            {
                "from": 41,
                "to": 43,
                "label": "PARALLEL"
            },
            {
                "from": 42,
                "to": 47,
                "label": "EVAL with clause\nselect(X58, .(X58, X59), X59).\nand substitutionT41 -> T61,\nX58 -> T61,\nX59 -> T62,\nT40 -> .(T61, T62),\nX41 -> T62"
            },
            {
                "from": 42,
                "to": 48,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 43,
                "to": 52,
                "label": "EVAL with clause\nselect(X70, .(X71, X72), .(X71, X73)) :- select(X70, X72, X73).\nand substitutionT41 -> T72,\nX70 -> T72,\nX71 -> T70,\nX72 -> T71,\nT40 -> .(T70, T71),\nX73 -> X74,\nX41 -> .(T70, X74),\nT69 -> T72"
            },
            {
                "from": 43,
                "to": 53,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 47,
                "to": 49,
                "label": "SUCCESS"
            },
            {
                "from": 52,
                "to": 36,
                "label": "INSTANCE with matching:\nT41 -> T72\nT40 -> T71\nX41 -> X74"
            },
            {
                "from": 63,
                "to": 104,
                "label": "PARALLEL"
            },
            {
                "from": 63,
                "to": 105,
                "label": "PARALLEL"
            },
            {
                "from": 104,
                "to": 107,
                "label": "EVAL with clause\nmembers(.(X94, X95), X96) :- ','(member(X94, X96), members(X95, X96)).\nand substitutionX94 -> T95,\nX95 -> T96,\nT48 -> .(T95, T96),\nT47 -> T94,\nX96 -> T94,\nT92 -> T95,\nT93 -> T96"
            },
            {
                "from": 104,
                "to": 108,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 105,
                "to": 125,
                "label": "EVAL with clause\nmembers([], X133).\nand substitutionT48 -> [],\nT47 -> T135,\nX133 -> T135"
            },
            {
                "from": 105,
                "to": 126,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 107,
                "to": 112,
                "label": "SPLIT 1"
            },
            {
                "from": 107,
                "to": 114,
                "label": "SPLIT 2\nnew knowledge:\nT95 is ground\nT94 is ground\nreplacements:T96 -> T101"
            },
            {
                "from": 112,
                "to": 117,
                "label": "CASE"
            },
            {
                "from": 114,
                "to": 38,
                "label": "INSTANCE with matching:\nT48 -> T101\nT47 -> T94"
            },
            {
                "from": 117,
                "to": 118,
                "label": "PARALLEL"
            },
            {
                "from": 117,
                "to": 119,
                "label": "PARALLEL"
            },
            {
                "from": 118,
                "to": 120,
                "label": "EVAL with clause\nmember(X113, .(X113, X114)).\nand substitutionT95 -> T114,\nX113 -> T114,\nX114 -> T115,\nT94 -> .(T114, T115)"
            },
            {
                "from": 118,
                "to": 121,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 119,
                "to": 123,
                "label": "EVAL with clause\nmember(X121, .(X122, X123)) :- member(X121, X123).\nand substitutionT95 -> T125,\nX121 -> T125,\nX122 -> T123,\nX123 -> T124,\nT94 -> .(T123, T124),\nT122 -> T125"
            },
            {
                "from": 119,
                "to": 124,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 120,
                "to": 122,
                "label": "SUCCESS"
            },
            {
                "from": 123,
                "to": 112,
                "label": "INSTANCE with matching:\nT95 -> T125\nT94 -> T124"
            },
            {
                "from": 125,
                "to": 127,
                "label": "SUCCESS"
            },
            {
                "from": 128,
                "to": 130,
                "label": "SUCCESS"
            }
        ],
        "type": "Graph"
    }
}

----------------------------------------

(2)
Obligation:
Q restricted rewrite system:
The TRS R consists of the following rules:

   f1_in(T17) -> U1(f24_in(T17), T17)
   U1(f24_out1, T17) -> f1_out1
   f1_in(T141) -> f1_out1
   f36_in(.(T61, T62)) -> f36_out1(T61, T62)
   f36_in(.(T70, T71)) -> U2(f36_in(T71), .(T70, T71))
   U2(f36_out1(T72, X74), .(T70, T71)) -> f36_out1(T72, .(T70, X74))
   f38_in(T94) -> U3(f107_in(T94), T94)
   U3(f107_out1(T95, T96), T94) -> f38_out1(.(T95, T96))
   f38_in(T135) -> f38_out1([])
   f112_in(.(T114, T115)) -> f112_out1(T114)
   f112_in(.(T123, T124)) -> U4(f112_in(T124), .(T123, T124))
   U4(f112_out1(T125), .(T123, T124)) -> f112_out1(T125)
   f27_in(T40) -> U5(f32_in(T40), T40)
   U5(f32_out1(T41, X41, T42), T40) -> f27_out1
   f24_in(T17) -> U6(f27_in(T17), T17)
   U6(f27_out1, T17) -> U7(f1_in(T17), T17)
   U7(f1_out1, T17) -> f24_out1
   f32_in(T40) -> U8(f36_in(T40), T40)
   U8(f36_out1(T41, T47), T40) -> U9(f38_in(T47), T40, T41, T47)
   U9(f38_out1(T48), T40, T41, T47) -> f32_out1(T41, T47, T48)
   f107_in(T94) -> U10(f112_in(T94), T94)
   U10(f112_out1(T95), T94) -> U11(f38_in(T94), T94, T95)
   U11(f38_out1(T101), T94, T95) -> f107_out1(T95, T101)

Q is empty.

----------------------------------------

(3) DependencyPairsProof (EQUIVALENT)
Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem.
----------------------------------------

(4)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F1_IN(T17) -> U1^1(f24_in(T17), T17)
   F1_IN(T17) -> F24_IN(T17)
   F36_IN(.(T70, T71)) -> U2^1(f36_in(T71), .(T70, T71))
   F36_IN(.(T70, T71)) -> F36_IN(T71)
   F38_IN(T94) -> U3^1(f107_in(T94), T94)
   F38_IN(T94) -> F107_IN(T94)
   F112_IN(.(T123, T124)) -> U4^1(f112_in(T124), .(T123, T124))
   F112_IN(.(T123, T124)) -> F112_IN(T124)
   F27_IN(T40) -> U5^1(f32_in(T40), T40)
   F27_IN(T40) -> F32_IN(T40)
   F24_IN(T17) -> U6^1(f27_in(T17), T17)
   F24_IN(T17) -> F27_IN(T17)
   U6^1(f27_out1, T17) -> U7^1(f1_in(T17), T17)
   U6^1(f27_out1, T17) -> F1_IN(T17)
   F32_IN(T40) -> U8^1(f36_in(T40), T40)
   F32_IN(T40) -> F36_IN(T40)
   U8^1(f36_out1(T41, T47), T40) -> U9^1(f38_in(T47), T40, T41, T47)
   U8^1(f36_out1(T41, T47), T40) -> F38_IN(T47)
   F107_IN(T94) -> U10^1(f112_in(T94), T94)
   F107_IN(T94) -> F112_IN(T94)
   U10^1(f112_out1(T95), T94) -> U11^1(f38_in(T94), T94, T95)
   U10^1(f112_out1(T95), T94) -> F38_IN(T94)

The TRS R consists of the following rules:

   f1_in(T17) -> U1(f24_in(T17), T17)
   U1(f24_out1, T17) -> f1_out1
   f1_in(T141) -> f1_out1
   f36_in(.(T61, T62)) -> f36_out1(T61, T62)
   f36_in(.(T70, T71)) -> U2(f36_in(T71), .(T70, T71))
   U2(f36_out1(T72, X74), .(T70, T71)) -> f36_out1(T72, .(T70, X74))
   f38_in(T94) -> U3(f107_in(T94), T94)
   U3(f107_out1(T95, T96), T94) -> f38_out1(.(T95, T96))
   f38_in(T135) -> f38_out1([])
   f112_in(.(T114, T115)) -> f112_out1(T114)
   f112_in(.(T123, T124)) -> U4(f112_in(T124), .(T123, T124))
   U4(f112_out1(T125), .(T123, T124)) -> f112_out1(T125)
   f27_in(T40) -> U5(f32_in(T40), T40)
   U5(f32_out1(T41, X41, T42), T40) -> f27_out1
   f24_in(T17) -> U6(f27_in(T17), T17)
   U6(f27_out1, T17) -> U7(f1_in(T17), T17)
   U7(f1_out1, T17) -> f24_out1
   f32_in(T40) -> U8(f36_in(T40), T40)
   U8(f36_out1(T41, T47), T40) -> U9(f38_in(T47), T40, T41, T47)
   U9(f38_out1(T48), T40, T41, T47) -> f32_out1(T41, T47, T48)
   f107_in(T94) -> U10(f112_in(T94), T94)
   U10(f112_out1(T95), T94) -> U11(f38_in(T94), T94, T95)
   U11(f38_out1(T101), T94, T95) -> f107_out1(T95, T101)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
----------------------------------------

(5) DependencyGraphProof (EQUIVALENT)
The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 4 SCCs with 14 less nodes.
----------------------------------------

(6)
Complex Obligation (AND)

----------------------------------------

(7)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F112_IN(.(T123, T124)) -> F112_IN(T124)

The TRS R consists of the following rules:

   f1_in(T17) -> U1(f24_in(T17), T17)
   U1(f24_out1, T17) -> f1_out1
   f1_in(T141) -> f1_out1
   f36_in(.(T61, T62)) -> f36_out1(T61, T62)
   f36_in(.(T70, T71)) -> U2(f36_in(T71), .(T70, T71))
   U2(f36_out1(T72, X74), .(T70, T71)) -> f36_out1(T72, .(T70, X74))
   f38_in(T94) -> U3(f107_in(T94), T94)
   U3(f107_out1(T95, T96), T94) -> f38_out1(.(T95, T96))
   f38_in(T135) -> f38_out1([])
   f112_in(.(T114, T115)) -> f112_out1(T114)
   f112_in(.(T123, T124)) -> U4(f112_in(T124), .(T123, T124))
   U4(f112_out1(T125), .(T123, T124)) -> f112_out1(T125)
   f27_in(T40) -> U5(f32_in(T40), T40)
   U5(f32_out1(T41, X41, T42), T40) -> f27_out1
   f24_in(T17) -> U6(f27_in(T17), T17)
   U6(f27_out1, T17) -> U7(f1_in(T17), T17)
   U7(f1_out1, T17) -> f24_out1
   f32_in(T40) -> U8(f36_in(T40), T40)
   U8(f36_out1(T41, T47), T40) -> U9(f38_in(T47), T40, T41, T47)
   U9(f38_out1(T48), T40, T41, T47) -> f32_out1(T41, T47, T48)
   f107_in(T94) -> U10(f112_in(T94), T94)
   U10(f112_out1(T95), T94) -> U11(f38_in(T94), T94, T95)
   U11(f38_out1(T101), T94, T95) -> f107_out1(T95, T101)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
----------------------------------------

(8) UsableRulesProof (EQUIVALENT)
We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R.
----------------------------------------

(9)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F112_IN(.(T123, T124)) -> F112_IN(T124)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
----------------------------------------

(10) 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:
*F112_IN(.(T123, T124)) -> F112_IN(T124)
The graph contains the following edges 1 > 1


----------------------------------------

(11)
YES

----------------------------------------

(12)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F38_IN(T94) -> F107_IN(T94)
   F107_IN(T94) -> U10^1(f112_in(T94), T94)
   U10^1(f112_out1(T95), T94) -> F38_IN(T94)

The TRS R consists of the following rules:

   f1_in(T17) -> U1(f24_in(T17), T17)
   U1(f24_out1, T17) -> f1_out1
   f1_in(T141) -> f1_out1
   f36_in(.(T61, T62)) -> f36_out1(T61, T62)
   f36_in(.(T70, T71)) -> U2(f36_in(T71), .(T70, T71))
   U2(f36_out1(T72, X74), .(T70, T71)) -> f36_out1(T72, .(T70, X74))
   f38_in(T94) -> U3(f107_in(T94), T94)
   U3(f107_out1(T95, T96), T94) -> f38_out1(.(T95, T96))
   f38_in(T135) -> f38_out1([])
   f112_in(.(T114, T115)) -> f112_out1(T114)
   f112_in(.(T123, T124)) -> U4(f112_in(T124), .(T123, T124))
   U4(f112_out1(T125), .(T123, T124)) -> f112_out1(T125)
   f27_in(T40) -> U5(f32_in(T40), T40)
   U5(f32_out1(T41, X41, T42), T40) -> f27_out1
   f24_in(T17) -> U6(f27_in(T17), T17)
   U6(f27_out1, T17) -> U7(f1_in(T17), T17)
   U7(f1_out1, T17) -> f24_out1
   f32_in(T40) -> U8(f36_in(T40), T40)
   U8(f36_out1(T41, T47), T40) -> U9(f38_in(T47), T40, T41, T47)
   U9(f38_out1(T48), T40, T41, T47) -> f32_out1(T41, T47, T48)
   f107_in(T94) -> U10(f112_in(T94), T94)
   U10(f112_out1(T95), T94) -> U11(f38_in(T94), T94, T95)
   U11(f38_out1(T101), T94, T95) -> f107_out1(T95, T101)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
----------------------------------------

(13) NonTerminationLoopProof (COMPLETE)
We used the non-termination processor [FROCOS05] to show that the DP problem is infinite.
Found a loop by narrowing to the left:

s = F107_IN(.(T114, T115)) evaluates to  t =F107_IN(.(T114, T115))

Thus s starts an infinite chain as s semiunifies with t with the following substitutions:
* Matcher: [ ]
* Semiunifier: [ ]

--------------------------------------------------------------------------------
Rewriting sequence

F107_IN(.(T114, T115)) -> U10^1(f112_in(.(T114, T115)), .(T114, T115))
with rule F107_IN(T94) -> U10^1(f112_in(T94), T94) at position [] and matcher [T94 / .(T114, T115)]

U10^1(f112_in(.(T114, T115)), .(T114, T115)) -> U10^1(f112_out1(T114), .(T114, T115))
with rule f112_in(.(T114', T115')) -> f112_out1(T114') at position [0] and matcher [T114' / T114, T115' / T115]

U10^1(f112_out1(T114), .(T114, T115)) -> F38_IN(.(T114, T115))
with rule U10^1(f112_out1(T95), T94') -> F38_IN(T94') at position [] and matcher [T95 / T114, T94' / .(T114, T115)]

F38_IN(.(T114, T115)) -> F107_IN(.(T114, T115))
with rule F38_IN(T94) -> F107_IN(T94)

Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence


All these steps are and every following step will be a correct step w.r.t to Q.




----------------------------------------

(14)
NO

----------------------------------------

(15)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F36_IN(.(T70, T71)) -> F36_IN(T71)

The TRS R consists of the following rules:

   f1_in(T17) -> U1(f24_in(T17), T17)
   U1(f24_out1, T17) -> f1_out1
   f1_in(T141) -> f1_out1
   f36_in(.(T61, T62)) -> f36_out1(T61, T62)
   f36_in(.(T70, T71)) -> U2(f36_in(T71), .(T70, T71))
   U2(f36_out1(T72, X74), .(T70, T71)) -> f36_out1(T72, .(T70, X74))
   f38_in(T94) -> U3(f107_in(T94), T94)
   U3(f107_out1(T95, T96), T94) -> f38_out1(.(T95, T96))
   f38_in(T135) -> f38_out1([])
   f112_in(.(T114, T115)) -> f112_out1(T114)
   f112_in(.(T123, T124)) -> U4(f112_in(T124), .(T123, T124))
   U4(f112_out1(T125), .(T123, T124)) -> f112_out1(T125)
   f27_in(T40) -> U5(f32_in(T40), T40)
   U5(f32_out1(T41, X41, T42), T40) -> f27_out1
   f24_in(T17) -> U6(f27_in(T17), T17)
   U6(f27_out1, T17) -> U7(f1_in(T17), T17)
   U7(f1_out1, T17) -> f24_out1
   f32_in(T40) -> U8(f36_in(T40), T40)
   U8(f36_out1(T41, T47), T40) -> U9(f38_in(T47), T40, T41, T47)
   U9(f38_out1(T48), T40, T41, T47) -> f32_out1(T41, T47, T48)
   f107_in(T94) -> U10(f112_in(T94), T94)
   U10(f112_out1(T95), T94) -> U11(f38_in(T94), T94, T95)
   U11(f38_out1(T101), T94, T95) -> f107_out1(T95, T101)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
----------------------------------------

(16) UsableRulesProof (EQUIVALENT)
We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R.
----------------------------------------

(17)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F36_IN(.(T70, T71)) -> F36_IN(T71)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
----------------------------------------

(18) 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:
*F36_IN(.(T70, T71)) -> F36_IN(T71)
The graph contains the following edges 1 > 1


----------------------------------------

(19)
YES

----------------------------------------

(20)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F1_IN(T17) -> F24_IN(T17)
   F24_IN(T17) -> U6^1(f27_in(T17), T17)
   U6^1(f27_out1, T17) -> F1_IN(T17)

The TRS R consists of the following rules:

   f1_in(T17) -> U1(f24_in(T17), T17)
   U1(f24_out1, T17) -> f1_out1
   f1_in(T141) -> f1_out1
   f36_in(.(T61, T62)) -> f36_out1(T61, T62)
   f36_in(.(T70, T71)) -> U2(f36_in(T71), .(T70, T71))
   U2(f36_out1(T72, X74), .(T70, T71)) -> f36_out1(T72, .(T70, X74))
   f38_in(T94) -> U3(f107_in(T94), T94)
   U3(f107_out1(T95, T96), T94) -> f38_out1(.(T95, T96))
   f38_in(T135) -> f38_out1([])
   f112_in(.(T114, T115)) -> f112_out1(T114)
   f112_in(.(T123, T124)) -> U4(f112_in(T124), .(T123, T124))
   U4(f112_out1(T125), .(T123, T124)) -> f112_out1(T125)
   f27_in(T40) -> U5(f32_in(T40), T40)
   U5(f32_out1(T41, X41, T42), T40) -> f27_out1
   f24_in(T17) -> U6(f27_in(T17), T17)
   U6(f27_out1, T17) -> U7(f1_in(T17), T17)
   U7(f1_out1, T17) -> f24_out1
   f32_in(T40) -> U8(f36_in(T40), T40)
   U8(f36_out1(T41, T47), T40) -> U9(f38_in(T47), T40, T41, T47)
   U9(f38_out1(T48), T40, T41, T47) -> f32_out1(T41, T47, T48)
   f107_in(T94) -> U10(f112_in(T94), T94)
   U10(f112_out1(T95), T94) -> U11(f38_in(T94), T94, T95)
   U11(f38_out1(T101), T94, T95) -> f107_out1(T95, T101)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
----------------------------------------

(21) NonTerminationLoopProof (COMPLETE)
We used the non-termination processor [FROCOS05] to show that the DP problem is infinite.
Found a loop by narrowing to the left:

s = F24_IN(.(T61, T62)) evaluates to  t =F24_IN(.(T61, T62))

Thus s starts an infinite chain as s semiunifies with t with the following substitutions:
* Matcher: [ ]
* Semiunifier: [ ]

--------------------------------------------------------------------------------
Rewriting sequence

F24_IN(.(T61, T62)) -> U6^1(f27_in(.(T61, T62)), .(T61, T62))
with rule F24_IN(T17) -> U6^1(f27_in(T17), T17) at position [] and matcher [T17 / .(T61, T62)]

U6^1(f27_in(.(T61, T62)), .(T61, T62)) -> U6^1(U5(f32_in(.(T61, T62)), .(T61, T62)), .(T61, T62))
with rule f27_in(T40') -> U5(f32_in(T40'), T40') at position [0] and matcher [T40' / .(T61, T62)]

U6^1(U5(f32_in(.(T61, T62)), .(T61, T62)), .(T61, T62)) -> U6^1(U5(U8(f36_in(.(T61, T62)), .(T61, T62)), .(T61, T62)), .(T61, T62))
with rule f32_in(T40') -> U8(f36_in(T40'), T40') at position [0,0] and matcher [T40' / .(T61, T62)]

U6^1(U5(U8(f36_in(.(T61, T62)), .(T61, T62)), .(T61, T62)), .(T61, T62)) -> U6^1(U5(U8(f36_out1(T61, T62), .(T61, T62)), .(T61, T62)), .(T61, T62))
with rule f36_in(.(T61', T62')) -> f36_out1(T61', T62') at position [0,0,0] and matcher [T61' / T61, T62' / T62]

U6^1(U5(U8(f36_out1(T61, T62), .(T61, T62)), .(T61, T62)), .(T61, T62)) -> U6^1(U5(U9(f38_in(T62), .(T61, T62), T61, T62), .(T61, T62)), .(T61, T62))
with rule U8(f36_out1(T41, T47'), T40'') -> U9(f38_in(T47'), T40'', T41, T47') at position [0,0] and matcher [T41 / T61, T47' / T62, T40'' / .(T61, T62)]

U6^1(U5(U9(f38_in(T62), .(T61, T62), T61, T62), .(T61, T62)), .(T61, T62)) -> U6^1(U5(U9(f38_out1([]), .(T61, T62), T61, T62), .(T61, T62)), .(T61, T62))
with rule f38_in(T135) -> f38_out1([]) at position [0,0,0] and matcher [T135 / T62]

U6^1(U5(U9(f38_out1([]), .(T61, T62), T61, T62), .(T61, T62)), .(T61, T62)) -> U6^1(U5(f32_out1(T61, T62, []), .(T61, T62)), .(T61, T62))
with rule U9(f38_out1(T48), T40', T41', T47) -> f32_out1(T41', T47, T48) at position [0,0] and matcher [T48 / [], T40' / .(T61, T62), T41' / T61, T47 / T62]

U6^1(U5(f32_out1(T61, T62, []), .(T61, T62)), .(T61, T62)) -> U6^1(f27_out1, .(T61, T62))
with rule U5(f32_out1(T41, X41, T42), T40) -> f27_out1 at position [0] and matcher [T41 / T61, X41 / T62, T42 / [], T40 / .(T61, T62)]

U6^1(f27_out1, .(T61, T62)) -> F1_IN(.(T61, T62))
with rule U6^1(f27_out1, T17') -> F1_IN(T17') at position [] and matcher [T17' / .(T61, T62)]

F1_IN(.(T61, T62)) -> F24_IN(.(T61, T62))
with rule F1_IN(T17) -> F24_IN(T17)

Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence


All these steps are and every following step will be a correct step w.r.t to Q.




----------------------------------------

(22)
NO

----------------------------------------

(23) PrologToPiTRSProof (SOUND)
We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes:

color_map_in_2: (f,b)

color_region_in_2: (f,b)

select_in_3: (f,b,f)

members_in_2: (f,b)

member_in_2: (f,b)

Transforming Prolog into the following Term Rewriting System:

Pi-finite rewrite system:
The TRS R consists of the following rules:

   color_map_in_ag(.(Region, Regions), Colors) -> U1_ag(Region, Regions, Colors, color_region_in_ag(Region, Colors))
   color_region_in_ag(region(Name, Color, Neighbors), Colors) -> U3_ag(Name, Color, Neighbors, Colors, select_in_aga(Color, Colors, Colors1))
   select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs)
   select_in_aga(X, .(Y, Ys), .(Y, Zs)) -> U5_aga(X, Y, Ys, Zs, select_in_aga(X, Ys, Zs))
   U5_aga(X, Y, Ys, Zs, select_out_aga(X, Ys, Zs)) -> select_out_aga(X, .(Y, Ys), .(Y, Zs))
   U3_ag(Name, Color, Neighbors, Colors, select_out_aga(Color, Colors, Colors1)) -> U4_ag(Name, Color, Neighbors, Colors, members_in_ag(Neighbors, Colors1))
   members_in_ag(.(X, Xs), Ys) -> U6_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(X, X1)) -> member_out_ag(X, .(X, X1))
   member_in_ag(X, .(X2, T)) -> U8_ag(X, X2, T, member_in_ag(X, T))
   U8_ag(X, X2, T, member_out_ag(X, T)) -> member_out_ag(X, .(X2, T))
   U6_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U7_ag(X, Xs, Ys, members_in_ag(Xs, Ys))
   members_in_ag([], Ys) -> members_out_ag([], Ys)
   U7_ag(X, Xs, Ys, members_out_ag(Xs, Ys)) -> members_out_ag(.(X, Xs), Ys)
   U4_ag(Name, Color, Neighbors, Colors, members_out_ag(Neighbors, Colors1)) -> color_region_out_ag(region(Name, Color, Neighbors), Colors)
   U1_ag(Region, Regions, Colors, color_region_out_ag(Region, Colors)) -> U2_ag(Region, Regions, Colors, color_map_in_ag(Regions, Colors))
   color_map_in_ag([], Colors) -> color_map_out_ag([], Colors)
   U2_ag(Region, Regions, Colors, color_map_out_ag(Regions, Colors)) -> color_map_out_ag(.(Region, Regions), Colors)

The argument filtering Pi contains the following mapping:
color_map_in_ag(x1, x2)  =  color_map_in_ag(x2)

U1_ag(x1, x2, x3, x4)  =  U1_ag(x3, x4)

color_region_in_ag(x1, x2)  =  color_region_in_ag(x2)

U3_ag(x1, x2, x3, x4, x5)  =  U3_ag(x5)

select_in_aga(x1, x2, x3)  =  select_in_aga(x2)

.(x1, x2)  =  .(x1, x2)

select_out_aga(x1, x2, x3)  =  select_out_aga(x1, x3)

U5_aga(x1, x2, x3, x4, x5)  =  U5_aga(x2, x5)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x2, x5)

members_in_ag(x1, x2)  =  members_in_ag(x2)

U6_ag(x1, x2, x3, x4)  =  U6_ag(x3, x4)

member_in_ag(x1, x2)  =  member_in_ag(x2)

member_out_ag(x1, x2)  =  member_out_ag(x1)

U8_ag(x1, x2, x3, x4)  =  U8_ag(x4)

U7_ag(x1, x2, x3, x4)  =  U7_ag(x1, x4)

members_out_ag(x1, x2)  =  members_out_ag(x1)

color_region_out_ag(x1, x2)  =  color_region_out_ag(x1)

region(x1, x2, x3)  =  region(x2, x3)

U2_ag(x1, x2, x3, x4)  =  U2_ag(x1, x4)

color_map_out_ag(x1, x2)  =  color_map_out_ag(x1)





Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog



----------------------------------------

(24)
Obligation:
Pi-finite rewrite system:
The TRS R consists of the following rules:

   color_map_in_ag(.(Region, Regions), Colors) -> U1_ag(Region, Regions, Colors, color_region_in_ag(Region, Colors))
   color_region_in_ag(region(Name, Color, Neighbors), Colors) -> U3_ag(Name, Color, Neighbors, Colors, select_in_aga(Color, Colors, Colors1))
   select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs)
   select_in_aga(X, .(Y, Ys), .(Y, Zs)) -> U5_aga(X, Y, Ys, Zs, select_in_aga(X, Ys, Zs))
   U5_aga(X, Y, Ys, Zs, select_out_aga(X, Ys, Zs)) -> select_out_aga(X, .(Y, Ys), .(Y, Zs))
   U3_ag(Name, Color, Neighbors, Colors, select_out_aga(Color, Colors, Colors1)) -> U4_ag(Name, Color, Neighbors, Colors, members_in_ag(Neighbors, Colors1))
   members_in_ag(.(X, Xs), Ys) -> U6_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(X, X1)) -> member_out_ag(X, .(X, X1))
   member_in_ag(X, .(X2, T)) -> U8_ag(X, X2, T, member_in_ag(X, T))
   U8_ag(X, X2, T, member_out_ag(X, T)) -> member_out_ag(X, .(X2, T))
   U6_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U7_ag(X, Xs, Ys, members_in_ag(Xs, Ys))
   members_in_ag([], Ys) -> members_out_ag([], Ys)
   U7_ag(X, Xs, Ys, members_out_ag(Xs, Ys)) -> members_out_ag(.(X, Xs), Ys)
   U4_ag(Name, Color, Neighbors, Colors, members_out_ag(Neighbors, Colors1)) -> color_region_out_ag(region(Name, Color, Neighbors), Colors)
   U1_ag(Region, Regions, Colors, color_region_out_ag(Region, Colors)) -> U2_ag(Region, Regions, Colors, color_map_in_ag(Regions, Colors))
   color_map_in_ag([], Colors) -> color_map_out_ag([], Colors)
   U2_ag(Region, Regions, Colors, color_map_out_ag(Regions, Colors)) -> color_map_out_ag(.(Region, Regions), Colors)

The argument filtering Pi contains the following mapping:
color_map_in_ag(x1, x2)  =  color_map_in_ag(x2)

U1_ag(x1, x2, x3, x4)  =  U1_ag(x3, x4)

color_region_in_ag(x1, x2)  =  color_region_in_ag(x2)

U3_ag(x1, x2, x3, x4, x5)  =  U3_ag(x5)

select_in_aga(x1, x2, x3)  =  select_in_aga(x2)

.(x1, x2)  =  .(x1, x2)

select_out_aga(x1, x2, x3)  =  select_out_aga(x1, x3)

U5_aga(x1, x2, x3, x4, x5)  =  U5_aga(x2, x5)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x2, x5)

members_in_ag(x1, x2)  =  members_in_ag(x2)

U6_ag(x1, x2, x3, x4)  =  U6_ag(x3, x4)

member_in_ag(x1, x2)  =  member_in_ag(x2)

member_out_ag(x1, x2)  =  member_out_ag(x1)

U8_ag(x1, x2, x3, x4)  =  U8_ag(x4)

U7_ag(x1, x2, x3, x4)  =  U7_ag(x1, x4)

members_out_ag(x1, x2)  =  members_out_ag(x1)

color_region_out_ag(x1, x2)  =  color_region_out_ag(x1)

region(x1, x2, x3)  =  region(x2, x3)

U2_ag(x1, x2, x3, x4)  =  U2_ag(x1, x4)

color_map_out_ag(x1, x2)  =  color_map_out_ag(x1)



----------------------------------------

(25) DependencyPairsProof (EQUIVALENT)
Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem:
Pi DP problem:
The TRS P consists of the following rules:

   COLOR_MAP_IN_AG(.(Region, Regions), Colors) -> U1_AG(Region, Regions, Colors, color_region_in_ag(Region, Colors))
   COLOR_MAP_IN_AG(.(Region, Regions), Colors) -> COLOR_REGION_IN_AG(Region, Colors)
   COLOR_REGION_IN_AG(region(Name, Color, Neighbors), Colors) -> U3_AG(Name, Color, Neighbors, Colors, select_in_aga(Color, Colors, Colors1))
   COLOR_REGION_IN_AG(region(Name, Color, Neighbors), Colors) -> SELECT_IN_AGA(Color, Colors, Colors1)
   SELECT_IN_AGA(X, .(Y, Ys), .(Y, Zs)) -> U5_AGA(X, Y, Ys, Zs, select_in_aga(X, Ys, Zs))
   SELECT_IN_AGA(X, .(Y, Ys), .(Y, Zs)) -> SELECT_IN_AGA(X, Ys, Zs)
   U3_AG(Name, Color, Neighbors, Colors, select_out_aga(Color, Colors, Colors1)) -> U4_AG(Name, Color, Neighbors, Colors, members_in_ag(Neighbors, Colors1))
   U3_AG(Name, Color, Neighbors, Colors, select_out_aga(Color, Colors, Colors1)) -> MEMBERS_IN_AG(Neighbors, Colors1)
   MEMBERS_IN_AG(.(X, Xs), Ys) -> U6_AG(X, Xs, Ys, member_in_ag(X, Ys))
   MEMBERS_IN_AG(.(X, Xs), Ys) -> MEMBER_IN_AG(X, Ys)
   MEMBER_IN_AG(X, .(X2, T)) -> U8_AG(X, X2, T, member_in_ag(X, T))
   MEMBER_IN_AG(X, .(X2, T)) -> MEMBER_IN_AG(X, T)
   U6_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> U7_AG(X, Xs, Ys, members_in_ag(Xs, Ys))
   U6_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> MEMBERS_IN_AG(Xs, Ys)
   U1_AG(Region, Regions, Colors, color_region_out_ag(Region, Colors)) -> U2_AG(Region, Regions, Colors, color_map_in_ag(Regions, Colors))
   U1_AG(Region, Regions, Colors, color_region_out_ag(Region, Colors)) -> COLOR_MAP_IN_AG(Regions, Colors)

The TRS R consists of the following rules:

   color_map_in_ag(.(Region, Regions), Colors) -> U1_ag(Region, Regions, Colors, color_region_in_ag(Region, Colors))
   color_region_in_ag(region(Name, Color, Neighbors), Colors) -> U3_ag(Name, Color, Neighbors, Colors, select_in_aga(Color, Colors, Colors1))
   select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs)
   select_in_aga(X, .(Y, Ys), .(Y, Zs)) -> U5_aga(X, Y, Ys, Zs, select_in_aga(X, Ys, Zs))
   U5_aga(X, Y, Ys, Zs, select_out_aga(X, Ys, Zs)) -> select_out_aga(X, .(Y, Ys), .(Y, Zs))
   U3_ag(Name, Color, Neighbors, Colors, select_out_aga(Color, Colors, Colors1)) -> U4_ag(Name, Color, Neighbors, Colors, members_in_ag(Neighbors, Colors1))
   members_in_ag(.(X, Xs), Ys) -> U6_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(X, X1)) -> member_out_ag(X, .(X, X1))
   member_in_ag(X, .(X2, T)) -> U8_ag(X, X2, T, member_in_ag(X, T))
   U8_ag(X, X2, T, member_out_ag(X, T)) -> member_out_ag(X, .(X2, T))
   U6_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U7_ag(X, Xs, Ys, members_in_ag(Xs, Ys))
   members_in_ag([], Ys) -> members_out_ag([], Ys)
   U7_ag(X, Xs, Ys, members_out_ag(Xs, Ys)) -> members_out_ag(.(X, Xs), Ys)
   U4_ag(Name, Color, Neighbors, Colors, members_out_ag(Neighbors, Colors1)) -> color_region_out_ag(region(Name, Color, Neighbors), Colors)
   U1_ag(Region, Regions, Colors, color_region_out_ag(Region, Colors)) -> U2_ag(Region, Regions, Colors, color_map_in_ag(Regions, Colors))
   color_map_in_ag([], Colors) -> color_map_out_ag([], Colors)
   U2_ag(Region, Regions, Colors, color_map_out_ag(Regions, Colors)) -> color_map_out_ag(.(Region, Regions), Colors)

The argument filtering Pi contains the following mapping:
color_map_in_ag(x1, x2)  =  color_map_in_ag(x2)

U1_ag(x1, x2, x3, x4)  =  U1_ag(x3, x4)

color_region_in_ag(x1, x2)  =  color_region_in_ag(x2)

U3_ag(x1, x2, x3, x4, x5)  =  U3_ag(x5)

select_in_aga(x1, x2, x3)  =  select_in_aga(x2)

.(x1, x2)  =  .(x1, x2)

select_out_aga(x1, x2, x3)  =  select_out_aga(x1, x3)

U5_aga(x1, x2, x3, x4, x5)  =  U5_aga(x2, x5)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x2, x5)

members_in_ag(x1, x2)  =  members_in_ag(x2)

U6_ag(x1, x2, x3, x4)  =  U6_ag(x3, x4)

member_in_ag(x1, x2)  =  member_in_ag(x2)

member_out_ag(x1, x2)  =  member_out_ag(x1)

U8_ag(x1, x2, x3, x4)  =  U8_ag(x4)

U7_ag(x1, x2, x3, x4)  =  U7_ag(x1, x4)

members_out_ag(x1, x2)  =  members_out_ag(x1)

color_region_out_ag(x1, x2)  =  color_region_out_ag(x1)

region(x1, x2, x3)  =  region(x2, x3)

U2_ag(x1, x2, x3, x4)  =  U2_ag(x1, x4)

color_map_out_ag(x1, x2)  =  color_map_out_ag(x1)

COLOR_MAP_IN_AG(x1, x2)  =  COLOR_MAP_IN_AG(x2)

U1_AG(x1, x2, x3, x4)  =  U1_AG(x3, x4)

COLOR_REGION_IN_AG(x1, x2)  =  COLOR_REGION_IN_AG(x2)

U3_AG(x1, x2, x3, x4, x5)  =  U3_AG(x5)

SELECT_IN_AGA(x1, x2, x3)  =  SELECT_IN_AGA(x2)

U5_AGA(x1, x2, x3, x4, x5)  =  U5_AGA(x2, x5)

U4_AG(x1, x2, x3, x4, x5)  =  U4_AG(x2, x5)

MEMBERS_IN_AG(x1, x2)  =  MEMBERS_IN_AG(x2)

U6_AG(x1, x2, x3, x4)  =  U6_AG(x3, x4)

MEMBER_IN_AG(x1, x2)  =  MEMBER_IN_AG(x2)

U8_AG(x1, x2, x3, x4)  =  U8_AG(x4)

U7_AG(x1, x2, x3, x4)  =  U7_AG(x1, x4)

U2_AG(x1, x2, x3, x4)  =  U2_AG(x1, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(26)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   COLOR_MAP_IN_AG(.(Region, Regions), Colors) -> U1_AG(Region, Regions, Colors, color_region_in_ag(Region, Colors))
   COLOR_MAP_IN_AG(.(Region, Regions), Colors) -> COLOR_REGION_IN_AG(Region, Colors)
   COLOR_REGION_IN_AG(region(Name, Color, Neighbors), Colors) -> U3_AG(Name, Color, Neighbors, Colors, select_in_aga(Color, Colors, Colors1))
   COLOR_REGION_IN_AG(region(Name, Color, Neighbors), Colors) -> SELECT_IN_AGA(Color, Colors, Colors1)
   SELECT_IN_AGA(X, .(Y, Ys), .(Y, Zs)) -> U5_AGA(X, Y, Ys, Zs, select_in_aga(X, Ys, Zs))
   SELECT_IN_AGA(X, .(Y, Ys), .(Y, Zs)) -> SELECT_IN_AGA(X, Ys, Zs)
   U3_AG(Name, Color, Neighbors, Colors, select_out_aga(Color, Colors, Colors1)) -> U4_AG(Name, Color, Neighbors, Colors, members_in_ag(Neighbors, Colors1))
   U3_AG(Name, Color, Neighbors, Colors, select_out_aga(Color, Colors, Colors1)) -> MEMBERS_IN_AG(Neighbors, Colors1)
   MEMBERS_IN_AG(.(X, Xs), Ys) -> U6_AG(X, Xs, Ys, member_in_ag(X, Ys))
   MEMBERS_IN_AG(.(X, Xs), Ys) -> MEMBER_IN_AG(X, Ys)
   MEMBER_IN_AG(X, .(X2, T)) -> U8_AG(X, X2, T, member_in_ag(X, T))
   MEMBER_IN_AG(X, .(X2, T)) -> MEMBER_IN_AG(X, T)
   U6_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> U7_AG(X, Xs, Ys, members_in_ag(Xs, Ys))
   U6_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> MEMBERS_IN_AG(Xs, Ys)
   U1_AG(Region, Regions, Colors, color_region_out_ag(Region, Colors)) -> U2_AG(Region, Regions, Colors, color_map_in_ag(Regions, Colors))
   U1_AG(Region, Regions, Colors, color_region_out_ag(Region, Colors)) -> COLOR_MAP_IN_AG(Regions, Colors)

The TRS R consists of the following rules:

   color_map_in_ag(.(Region, Regions), Colors) -> U1_ag(Region, Regions, Colors, color_region_in_ag(Region, Colors))
   color_region_in_ag(region(Name, Color, Neighbors), Colors) -> U3_ag(Name, Color, Neighbors, Colors, select_in_aga(Color, Colors, Colors1))
   select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs)
   select_in_aga(X, .(Y, Ys), .(Y, Zs)) -> U5_aga(X, Y, Ys, Zs, select_in_aga(X, Ys, Zs))
   U5_aga(X, Y, Ys, Zs, select_out_aga(X, Ys, Zs)) -> select_out_aga(X, .(Y, Ys), .(Y, Zs))
   U3_ag(Name, Color, Neighbors, Colors, select_out_aga(Color, Colors, Colors1)) -> U4_ag(Name, Color, Neighbors, Colors, members_in_ag(Neighbors, Colors1))
   members_in_ag(.(X, Xs), Ys) -> U6_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(X, X1)) -> member_out_ag(X, .(X, X1))
   member_in_ag(X, .(X2, T)) -> U8_ag(X, X2, T, member_in_ag(X, T))
   U8_ag(X, X2, T, member_out_ag(X, T)) -> member_out_ag(X, .(X2, T))
   U6_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U7_ag(X, Xs, Ys, members_in_ag(Xs, Ys))
   members_in_ag([], Ys) -> members_out_ag([], Ys)
   U7_ag(X, Xs, Ys, members_out_ag(Xs, Ys)) -> members_out_ag(.(X, Xs), Ys)
   U4_ag(Name, Color, Neighbors, Colors, members_out_ag(Neighbors, Colors1)) -> color_region_out_ag(region(Name, Color, Neighbors), Colors)
   U1_ag(Region, Regions, Colors, color_region_out_ag(Region, Colors)) -> U2_ag(Region, Regions, Colors, color_map_in_ag(Regions, Colors))
   color_map_in_ag([], Colors) -> color_map_out_ag([], Colors)
   U2_ag(Region, Regions, Colors, color_map_out_ag(Regions, Colors)) -> color_map_out_ag(.(Region, Regions), Colors)

The argument filtering Pi contains the following mapping:
color_map_in_ag(x1, x2)  =  color_map_in_ag(x2)

U1_ag(x1, x2, x3, x4)  =  U1_ag(x3, x4)

color_region_in_ag(x1, x2)  =  color_region_in_ag(x2)

U3_ag(x1, x2, x3, x4, x5)  =  U3_ag(x5)

select_in_aga(x1, x2, x3)  =  select_in_aga(x2)

.(x1, x2)  =  .(x1, x2)

select_out_aga(x1, x2, x3)  =  select_out_aga(x1, x3)

U5_aga(x1, x2, x3, x4, x5)  =  U5_aga(x2, x5)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x2, x5)

members_in_ag(x1, x2)  =  members_in_ag(x2)

U6_ag(x1, x2, x3, x4)  =  U6_ag(x3, x4)

member_in_ag(x1, x2)  =  member_in_ag(x2)

member_out_ag(x1, x2)  =  member_out_ag(x1)

U8_ag(x1, x2, x3, x4)  =  U8_ag(x4)

U7_ag(x1, x2, x3, x4)  =  U7_ag(x1, x4)

members_out_ag(x1, x2)  =  members_out_ag(x1)

color_region_out_ag(x1, x2)  =  color_region_out_ag(x1)

region(x1, x2, x3)  =  region(x2, x3)

U2_ag(x1, x2, x3, x4)  =  U2_ag(x1, x4)

color_map_out_ag(x1, x2)  =  color_map_out_ag(x1)

COLOR_MAP_IN_AG(x1, x2)  =  COLOR_MAP_IN_AG(x2)

U1_AG(x1, x2, x3, x4)  =  U1_AG(x3, x4)

COLOR_REGION_IN_AG(x1, x2)  =  COLOR_REGION_IN_AG(x2)

U3_AG(x1, x2, x3, x4, x5)  =  U3_AG(x5)

SELECT_IN_AGA(x1, x2, x3)  =  SELECT_IN_AGA(x2)

U5_AGA(x1, x2, x3, x4, x5)  =  U5_AGA(x2, x5)

U4_AG(x1, x2, x3, x4, x5)  =  U4_AG(x2, x5)

MEMBERS_IN_AG(x1, x2)  =  MEMBERS_IN_AG(x2)

U6_AG(x1, x2, x3, x4)  =  U6_AG(x3, x4)

MEMBER_IN_AG(x1, x2)  =  MEMBER_IN_AG(x2)

U8_AG(x1, x2, x3, x4)  =  U8_AG(x4)

U7_AG(x1, x2, x3, x4)  =  U7_AG(x1, x4)

U2_AG(x1, x2, x3, x4)  =  U2_AG(x1, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(27) DependencyGraphProof (EQUIVALENT)
The approximation of the Dependency Graph [LOPSTR] contains 4 SCCs with 10 less nodes.
----------------------------------------

(28)
Complex Obligation (AND)

----------------------------------------

(29)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   MEMBER_IN_AG(X, .(X2, T)) -> MEMBER_IN_AG(X, T)

The TRS R consists of the following rules:

   color_map_in_ag(.(Region, Regions), Colors) -> U1_ag(Region, Regions, Colors, color_region_in_ag(Region, Colors))
   color_region_in_ag(region(Name, Color, Neighbors), Colors) -> U3_ag(Name, Color, Neighbors, Colors, select_in_aga(Color, Colors, Colors1))
   select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs)
   select_in_aga(X, .(Y, Ys), .(Y, Zs)) -> U5_aga(X, Y, Ys, Zs, select_in_aga(X, Ys, Zs))
   U5_aga(X, Y, Ys, Zs, select_out_aga(X, Ys, Zs)) -> select_out_aga(X, .(Y, Ys), .(Y, Zs))
   U3_ag(Name, Color, Neighbors, Colors, select_out_aga(Color, Colors, Colors1)) -> U4_ag(Name, Color, Neighbors, Colors, members_in_ag(Neighbors, Colors1))
   members_in_ag(.(X, Xs), Ys) -> U6_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(X, X1)) -> member_out_ag(X, .(X, X1))
   member_in_ag(X, .(X2, T)) -> U8_ag(X, X2, T, member_in_ag(X, T))
   U8_ag(X, X2, T, member_out_ag(X, T)) -> member_out_ag(X, .(X2, T))
   U6_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U7_ag(X, Xs, Ys, members_in_ag(Xs, Ys))
   members_in_ag([], Ys) -> members_out_ag([], Ys)
   U7_ag(X, Xs, Ys, members_out_ag(Xs, Ys)) -> members_out_ag(.(X, Xs), Ys)
   U4_ag(Name, Color, Neighbors, Colors, members_out_ag(Neighbors, Colors1)) -> color_region_out_ag(region(Name, Color, Neighbors), Colors)
   U1_ag(Region, Regions, Colors, color_region_out_ag(Region, Colors)) -> U2_ag(Region, Regions, Colors, color_map_in_ag(Regions, Colors))
   color_map_in_ag([], Colors) -> color_map_out_ag([], Colors)
   U2_ag(Region, Regions, Colors, color_map_out_ag(Regions, Colors)) -> color_map_out_ag(.(Region, Regions), Colors)

The argument filtering Pi contains the following mapping:
color_map_in_ag(x1, x2)  =  color_map_in_ag(x2)

U1_ag(x1, x2, x3, x4)  =  U1_ag(x3, x4)

color_region_in_ag(x1, x2)  =  color_region_in_ag(x2)

U3_ag(x1, x2, x3, x4, x5)  =  U3_ag(x5)

select_in_aga(x1, x2, x3)  =  select_in_aga(x2)

.(x1, x2)  =  .(x1, x2)

select_out_aga(x1, x2, x3)  =  select_out_aga(x1, x3)

U5_aga(x1, x2, x3, x4, x5)  =  U5_aga(x2, x5)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x2, x5)

members_in_ag(x1, x2)  =  members_in_ag(x2)

U6_ag(x1, x2, x3, x4)  =  U6_ag(x3, x4)

member_in_ag(x1, x2)  =  member_in_ag(x2)

member_out_ag(x1, x2)  =  member_out_ag(x1)

U8_ag(x1, x2, x3, x4)  =  U8_ag(x4)

U7_ag(x1, x2, x3, x4)  =  U7_ag(x1, x4)

members_out_ag(x1, x2)  =  members_out_ag(x1)

color_region_out_ag(x1, x2)  =  color_region_out_ag(x1)

region(x1, x2, x3)  =  region(x2, x3)

U2_ag(x1, x2, x3, x4)  =  U2_ag(x1, x4)

color_map_out_ag(x1, x2)  =  color_map_out_ag(x1)

MEMBER_IN_AG(x1, x2)  =  MEMBER_IN_AG(x2)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(30) UsableRulesProof (EQUIVALENT)
For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.
----------------------------------------

(31)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   MEMBER_IN_AG(X, .(X2, T)) -> MEMBER_IN_AG(X, T)

R is empty.
The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)

MEMBER_IN_AG(x1, x2)  =  MEMBER_IN_AG(x2)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(32) PiDPToQDPProof (SOUND)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
----------------------------------------

(33)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   MEMBER_IN_AG(.(X2, T)) -> MEMBER_IN_AG(T)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.
----------------------------------------

(34) 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:
*MEMBER_IN_AG(.(X2, T)) -> MEMBER_IN_AG(T)
The graph contains the following edges 1 > 1


----------------------------------------

(35)
YES

----------------------------------------

(36)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   U6_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> MEMBERS_IN_AG(Xs, Ys)
   MEMBERS_IN_AG(.(X, Xs), Ys) -> U6_AG(X, Xs, Ys, member_in_ag(X, Ys))

The TRS R consists of the following rules:

   color_map_in_ag(.(Region, Regions), Colors) -> U1_ag(Region, Regions, Colors, color_region_in_ag(Region, Colors))
   color_region_in_ag(region(Name, Color, Neighbors), Colors) -> U3_ag(Name, Color, Neighbors, Colors, select_in_aga(Color, Colors, Colors1))
   select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs)
   select_in_aga(X, .(Y, Ys), .(Y, Zs)) -> U5_aga(X, Y, Ys, Zs, select_in_aga(X, Ys, Zs))
   U5_aga(X, Y, Ys, Zs, select_out_aga(X, Ys, Zs)) -> select_out_aga(X, .(Y, Ys), .(Y, Zs))
   U3_ag(Name, Color, Neighbors, Colors, select_out_aga(Color, Colors, Colors1)) -> U4_ag(Name, Color, Neighbors, Colors, members_in_ag(Neighbors, Colors1))
   members_in_ag(.(X, Xs), Ys) -> U6_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(X, X1)) -> member_out_ag(X, .(X, X1))
   member_in_ag(X, .(X2, T)) -> U8_ag(X, X2, T, member_in_ag(X, T))
   U8_ag(X, X2, T, member_out_ag(X, T)) -> member_out_ag(X, .(X2, T))
   U6_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U7_ag(X, Xs, Ys, members_in_ag(Xs, Ys))
   members_in_ag([], Ys) -> members_out_ag([], Ys)
   U7_ag(X, Xs, Ys, members_out_ag(Xs, Ys)) -> members_out_ag(.(X, Xs), Ys)
   U4_ag(Name, Color, Neighbors, Colors, members_out_ag(Neighbors, Colors1)) -> color_region_out_ag(region(Name, Color, Neighbors), Colors)
   U1_ag(Region, Regions, Colors, color_region_out_ag(Region, Colors)) -> U2_ag(Region, Regions, Colors, color_map_in_ag(Regions, Colors))
   color_map_in_ag([], Colors) -> color_map_out_ag([], Colors)
   U2_ag(Region, Regions, Colors, color_map_out_ag(Regions, Colors)) -> color_map_out_ag(.(Region, Regions), Colors)

The argument filtering Pi contains the following mapping:
color_map_in_ag(x1, x2)  =  color_map_in_ag(x2)

U1_ag(x1, x2, x3, x4)  =  U1_ag(x3, x4)

color_region_in_ag(x1, x2)  =  color_region_in_ag(x2)

U3_ag(x1, x2, x3, x4, x5)  =  U3_ag(x5)

select_in_aga(x1, x2, x3)  =  select_in_aga(x2)

.(x1, x2)  =  .(x1, x2)

select_out_aga(x1, x2, x3)  =  select_out_aga(x1, x3)

U5_aga(x1, x2, x3, x4, x5)  =  U5_aga(x2, x5)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x2, x5)

members_in_ag(x1, x2)  =  members_in_ag(x2)

U6_ag(x1, x2, x3, x4)  =  U6_ag(x3, x4)

member_in_ag(x1, x2)  =  member_in_ag(x2)

member_out_ag(x1, x2)  =  member_out_ag(x1)

U8_ag(x1, x2, x3, x4)  =  U8_ag(x4)

U7_ag(x1, x2, x3, x4)  =  U7_ag(x1, x4)

members_out_ag(x1, x2)  =  members_out_ag(x1)

color_region_out_ag(x1, x2)  =  color_region_out_ag(x1)

region(x1, x2, x3)  =  region(x2, x3)

U2_ag(x1, x2, x3, x4)  =  U2_ag(x1, x4)

color_map_out_ag(x1, x2)  =  color_map_out_ag(x1)

MEMBERS_IN_AG(x1, x2)  =  MEMBERS_IN_AG(x2)

U6_AG(x1, x2, x3, x4)  =  U6_AG(x3, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(37) UsableRulesProof (EQUIVALENT)
For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.
----------------------------------------

(38)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   U6_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> MEMBERS_IN_AG(Xs, Ys)
   MEMBERS_IN_AG(.(X, Xs), Ys) -> U6_AG(X, Xs, Ys, member_in_ag(X, Ys))

The TRS R consists of the following rules:

   member_in_ag(X, .(X, X1)) -> member_out_ag(X, .(X, X1))
   member_in_ag(X, .(X2, T)) -> U8_ag(X, X2, T, member_in_ag(X, T))
   U8_ag(X, X2, T, member_out_ag(X, T)) -> member_out_ag(X, .(X2, T))

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)

member_in_ag(x1, x2)  =  member_in_ag(x2)

member_out_ag(x1, x2)  =  member_out_ag(x1)

U8_ag(x1, x2, x3, x4)  =  U8_ag(x4)

MEMBERS_IN_AG(x1, x2)  =  MEMBERS_IN_AG(x2)

U6_AG(x1, x2, x3, x4)  =  U6_AG(x3, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(39) PiDPToQDPProof (SOUND)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
----------------------------------------

(40)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   U6_AG(Ys, member_out_ag(X)) -> MEMBERS_IN_AG(Ys)
   MEMBERS_IN_AG(Ys) -> U6_AG(Ys, member_in_ag(Ys))

The TRS R consists of the following rules:

   member_in_ag(.(X, X1)) -> member_out_ag(X)
   member_in_ag(.(X2, T)) -> U8_ag(member_in_ag(T))
   U8_ag(member_out_ag(X)) -> member_out_ag(X)

The set Q consists of the following terms:

   member_in_ag(x0)
   U8_ag(x0)

We have to consider all (P,Q,R)-chains.
----------------------------------------

(41) TransformationProof (SOUND)
By narrowing [LPAR04] the rule MEMBERS_IN_AG(Ys) -> U6_AG(Ys, member_in_ag(Ys)) at position [1] we obtained the following new rules [LPAR04]:

   (MEMBERS_IN_AG(.(x0, x1)) -> U6_AG(.(x0, x1), member_out_ag(x0)),MEMBERS_IN_AG(.(x0, x1)) -> U6_AG(.(x0, x1), member_out_ag(x0)))
   (MEMBERS_IN_AG(.(x0, x1)) -> U6_AG(.(x0, x1), U8_ag(member_in_ag(x1))),MEMBERS_IN_AG(.(x0, x1)) -> U6_AG(.(x0, x1), U8_ag(member_in_ag(x1))))


----------------------------------------

(42)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   U6_AG(Ys, member_out_ag(X)) -> MEMBERS_IN_AG(Ys)
   MEMBERS_IN_AG(.(x0, x1)) -> U6_AG(.(x0, x1), member_out_ag(x0))
   MEMBERS_IN_AG(.(x0, x1)) -> U6_AG(.(x0, x1), U8_ag(member_in_ag(x1)))

The TRS R consists of the following rules:

   member_in_ag(.(X, X1)) -> member_out_ag(X)
   member_in_ag(.(X2, T)) -> U8_ag(member_in_ag(T))
   U8_ag(member_out_ag(X)) -> member_out_ag(X)

The set Q consists of the following terms:

   member_in_ag(x0)
   U8_ag(x0)

We have to consider all (P,Q,R)-chains.
----------------------------------------

(43) TransformationProof (EQUIVALENT)
By instantiating [LPAR04] the rule U6_AG(Ys, member_out_ag(X)) -> MEMBERS_IN_AG(Ys) we obtained the following new rules [LPAR04]:

   (U6_AG(.(z0, z1), member_out_ag(z0)) -> MEMBERS_IN_AG(.(z0, z1)),U6_AG(.(z0, z1), member_out_ag(z0)) -> MEMBERS_IN_AG(.(z0, z1)))
   (U6_AG(.(z0, z1), member_out_ag(x1)) -> MEMBERS_IN_AG(.(z0, z1)),U6_AG(.(z0, z1), member_out_ag(x1)) -> MEMBERS_IN_AG(.(z0, z1)))


----------------------------------------

(44)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   MEMBERS_IN_AG(.(x0, x1)) -> U6_AG(.(x0, x1), member_out_ag(x0))
   MEMBERS_IN_AG(.(x0, x1)) -> U6_AG(.(x0, x1), U8_ag(member_in_ag(x1)))
   U6_AG(.(z0, z1), member_out_ag(z0)) -> MEMBERS_IN_AG(.(z0, z1))
   U6_AG(.(z0, z1), member_out_ag(x1)) -> MEMBERS_IN_AG(.(z0, z1))

The TRS R consists of the following rules:

   member_in_ag(.(X, X1)) -> member_out_ag(X)
   member_in_ag(.(X2, T)) -> U8_ag(member_in_ag(T))
   U8_ag(member_out_ag(X)) -> member_out_ag(X)

The set Q consists of the following terms:

   member_in_ag(x0)
   U8_ag(x0)

We have to consider all (P,Q,R)-chains.
----------------------------------------

(45) NonTerminationLoopProof (COMPLETE)
We used the non-termination processor [FROCOS05] to show that the DP problem is infinite.
Found a loop by narrowing to the left:

s = U6_AG(.(z0, z1), member_out_ag(z0)) evaluates to  t =U6_AG(.(z0, z1), member_out_ag(z0))

Thus s starts an infinite chain as s semiunifies with t with the following substitutions:
* Matcher: [ ]
* Semiunifier: [ ]

--------------------------------------------------------------------------------
Rewriting sequence

U6_AG(.(z0, z1), member_out_ag(z0)) -> MEMBERS_IN_AG(.(z0, z1))
with rule U6_AG(.(z0', z1'), member_out_ag(z0')) -> MEMBERS_IN_AG(.(z0', z1')) at position [] and matcher [z0' / z0, z1' / z1]

MEMBERS_IN_AG(.(z0, z1)) -> U6_AG(.(z0, z1), member_out_ag(z0))
with rule MEMBERS_IN_AG(.(x0, x1)) -> U6_AG(.(x0, x1), member_out_ag(x0))

Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence


All these steps are and every following step will be a correct step w.r.t to Q.




----------------------------------------

(46)
NO

----------------------------------------

(47)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   SELECT_IN_AGA(X, .(Y, Ys), .(Y, Zs)) -> SELECT_IN_AGA(X, Ys, Zs)

The TRS R consists of the following rules:

   color_map_in_ag(.(Region, Regions), Colors) -> U1_ag(Region, Regions, Colors, color_region_in_ag(Region, Colors))
   color_region_in_ag(region(Name, Color, Neighbors), Colors) -> U3_ag(Name, Color, Neighbors, Colors, select_in_aga(Color, Colors, Colors1))
   select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs)
   select_in_aga(X, .(Y, Ys), .(Y, Zs)) -> U5_aga(X, Y, Ys, Zs, select_in_aga(X, Ys, Zs))
   U5_aga(X, Y, Ys, Zs, select_out_aga(X, Ys, Zs)) -> select_out_aga(X, .(Y, Ys), .(Y, Zs))
   U3_ag(Name, Color, Neighbors, Colors, select_out_aga(Color, Colors, Colors1)) -> U4_ag(Name, Color, Neighbors, Colors, members_in_ag(Neighbors, Colors1))
   members_in_ag(.(X, Xs), Ys) -> U6_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(X, X1)) -> member_out_ag(X, .(X, X1))
   member_in_ag(X, .(X2, T)) -> U8_ag(X, X2, T, member_in_ag(X, T))
   U8_ag(X, X2, T, member_out_ag(X, T)) -> member_out_ag(X, .(X2, T))
   U6_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U7_ag(X, Xs, Ys, members_in_ag(Xs, Ys))
   members_in_ag([], Ys) -> members_out_ag([], Ys)
   U7_ag(X, Xs, Ys, members_out_ag(Xs, Ys)) -> members_out_ag(.(X, Xs), Ys)
   U4_ag(Name, Color, Neighbors, Colors, members_out_ag(Neighbors, Colors1)) -> color_region_out_ag(region(Name, Color, Neighbors), Colors)
   U1_ag(Region, Regions, Colors, color_region_out_ag(Region, Colors)) -> U2_ag(Region, Regions, Colors, color_map_in_ag(Regions, Colors))
   color_map_in_ag([], Colors) -> color_map_out_ag([], Colors)
   U2_ag(Region, Regions, Colors, color_map_out_ag(Regions, Colors)) -> color_map_out_ag(.(Region, Regions), Colors)

The argument filtering Pi contains the following mapping:
color_map_in_ag(x1, x2)  =  color_map_in_ag(x2)

U1_ag(x1, x2, x3, x4)  =  U1_ag(x3, x4)

color_region_in_ag(x1, x2)  =  color_region_in_ag(x2)

U3_ag(x1, x2, x3, x4, x5)  =  U3_ag(x5)

select_in_aga(x1, x2, x3)  =  select_in_aga(x2)

.(x1, x2)  =  .(x1, x2)

select_out_aga(x1, x2, x3)  =  select_out_aga(x1, x3)

U5_aga(x1, x2, x3, x4, x5)  =  U5_aga(x2, x5)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x2, x5)

members_in_ag(x1, x2)  =  members_in_ag(x2)

U6_ag(x1, x2, x3, x4)  =  U6_ag(x3, x4)

member_in_ag(x1, x2)  =  member_in_ag(x2)

member_out_ag(x1, x2)  =  member_out_ag(x1)

U8_ag(x1, x2, x3, x4)  =  U8_ag(x4)

U7_ag(x1, x2, x3, x4)  =  U7_ag(x1, x4)

members_out_ag(x1, x2)  =  members_out_ag(x1)

color_region_out_ag(x1, x2)  =  color_region_out_ag(x1)

region(x1, x2, x3)  =  region(x2, x3)

U2_ag(x1, x2, x3, x4)  =  U2_ag(x1, x4)

color_map_out_ag(x1, x2)  =  color_map_out_ag(x1)

SELECT_IN_AGA(x1, x2, x3)  =  SELECT_IN_AGA(x2)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(48) UsableRulesProof (EQUIVALENT)
For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.
----------------------------------------

(49)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   SELECT_IN_AGA(X, .(Y, Ys), .(Y, Zs)) -> SELECT_IN_AGA(X, Ys, Zs)

R is empty.
The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)

SELECT_IN_AGA(x1, x2, x3)  =  SELECT_IN_AGA(x2)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(50) PiDPToQDPProof (SOUND)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
----------------------------------------

(51)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   SELECT_IN_AGA(.(Y, Ys)) -> SELECT_IN_AGA(Ys)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.
----------------------------------------

(52) 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:
*SELECT_IN_AGA(.(Y, Ys)) -> SELECT_IN_AGA(Ys)
The graph contains the following edges 1 > 1


----------------------------------------

(53)
YES

----------------------------------------

(54)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   U1_AG(Region, Regions, Colors, color_region_out_ag(Region, Colors)) -> COLOR_MAP_IN_AG(Regions, Colors)
   COLOR_MAP_IN_AG(.(Region, Regions), Colors) -> U1_AG(Region, Regions, Colors, color_region_in_ag(Region, Colors))

The TRS R consists of the following rules:

   color_map_in_ag(.(Region, Regions), Colors) -> U1_ag(Region, Regions, Colors, color_region_in_ag(Region, Colors))
   color_region_in_ag(region(Name, Color, Neighbors), Colors) -> U3_ag(Name, Color, Neighbors, Colors, select_in_aga(Color, Colors, Colors1))
   select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs)
   select_in_aga(X, .(Y, Ys), .(Y, Zs)) -> U5_aga(X, Y, Ys, Zs, select_in_aga(X, Ys, Zs))
   U5_aga(X, Y, Ys, Zs, select_out_aga(X, Ys, Zs)) -> select_out_aga(X, .(Y, Ys), .(Y, Zs))
   U3_ag(Name, Color, Neighbors, Colors, select_out_aga(Color, Colors, Colors1)) -> U4_ag(Name, Color, Neighbors, Colors, members_in_ag(Neighbors, Colors1))
   members_in_ag(.(X, Xs), Ys) -> U6_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(X, X1)) -> member_out_ag(X, .(X, X1))
   member_in_ag(X, .(X2, T)) -> U8_ag(X, X2, T, member_in_ag(X, T))
   U8_ag(X, X2, T, member_out_ag(X, T)) -> member_out_ag(X, .(X2, T))
   U6_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U7_ag(X, Xs, Ys, members_in_ag(Xs, Ys))
   members_in_ag([], Ys) -> members_out_ag([], Ys)
   U7_ag(X, Xs, Ys, members_out_ag(Xs, Ys)) -> members_out_ag(.(X, Xs), Ys)
   U4_ag(Name, Color, Neighbors, Colors, members_out_ag(Neighbors, Colors1)) -> color_region_out_ag(region(Name, Color, Neighbors), Colors)
   U1_ag(Region, Regions, Colors, color_region_out_ag(Region, Colors)) -> U2_ag(Region, Regions, Colors, color_map_in_ag(Regions, Colors))
   color_map_in_ag([], Colors) -> color_map_out_ag([], Colors)
   U2_ag(Region, Regions, Colors, color_map_out_ag(Regions, Colors)) -> color_map_out_ag(.(Region, Regions), Colors)

The argument filtering Pi contains the following mapping:
color_map_in_ag(x1, x2)  =  color_map_in_ag(x2)

U1_ag(x1, x2, x3, x4)  =  U1_ag(x3, x4)

color_region_in_ag(x1, x2)  =  color_region_in_ag(x2)

U3_ag(x1, x2, x3, x4, x5)  =  U3_ag(x5)

select_in_aga(x1, x2, x3)  =  select_in_aga(x2)

.(x1, x2)  =  .(x1, x2)

select_out_aga(x1, x2, x3)  =  select_out_aga(x1, x3)

U5_aga(x1, x2, x3, x4, x5)  =  U5_aga(x2, x5)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x2, x5)

members_in_ag(x1, x2)  =  members_in_ag(x2)

U6_ag(x1, x2, x3, x4)  =  U6_ag(x3, x4)

member_in_ag(x1, x2)  =  member_in_ag(x2)

member_out_ag(x1, x2)  =  member_out_ag(x1)

U8_ag(x1, x2, x3, x4)  =  U8_ag(x4)

U7_ag(x1, x2, x3, x4)  =  U7_ag(x1, x4)

members_out_ag(x1, x2)  =  members_out_ag(x1)

color_region_out_ag(x1, x2)  =  color_region_out_ag(x1)

region(x1, x2, x3)  =  region(x2, x3)

U2_ag(x1, x2, x3, x4)  =  U2_ag(x1, x4)

color_map_out_ag(x1, x2)  =  color_map_out_ag(x1)

COLOR_MAP_IN_AG(x1, x2)  =  COLOR_MAP_IN_AG(x2)

U1_AG(x1, x2, x3, x4)  =  U1_AG(x3, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(55) UsableRulesProof (EQUIVALENT)
For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.
----------------------------------------

(56)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   U1_AG(Region, Regions, Colors, color_region_out_ag(Region, Colors)) -> COLOR_MAP_IN_AG(Regions, Colors)
   COLOR_MAP_IN_AG(.(Region, Regions), Colors) -> U1_AG(Region, Regions, Colors, color_region_in_ag(Region, Colors))

The TRS R consists of the following rules:

   color_region_in_ag(region(Name, Color, Neighbors), Colors) -> U3_ag(Name, Color, Neighbors, Colors, select_in_aga(Color, Colors, Colors1))
   U3_ag(Name, Color, Neighbors, Colors, select_out_aga(Color, Colors, Colors1)) -> U4_ag(Name, Color, Neighbors, Colors, members_in_ag(Neighbors, Colors1))
   select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs)
   select_in_aga(X, .(Y, Ys), .(Y, Zs)) -> U5_aga(X, Y, Ys, Zs, select_in_aga(X, Ys, Zs))
   U4_ag(Name, Color, Neighbors, Colors, members_out_ag(Neighbors, Colors1)) -> color_region_out_ag(region(Name, Color, Neighbors), Colors)
   U5_aga(X, Y, Ys, Zs, select_out_aga(X, Ys, Zs)) -> select_out_aga(X, .(Y, Ys), .(Y, Zs))
   members_in_ag(.(X, Xs), Ys) -> U6_ag(X, Xs, Ys, member_in_ag(X, Ys))
   members_in_ag([], Ys) -> members_out_ag([], Ys)
   U6_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U7_ag(X, Xs, Ys, members_in_ag(Xs, Ys))
   member_in_ag(X, .(X, X1)) -> member_out_ag(X, .(X, X1))
   member_in_ag(X, .(X2, T)) -> U8_ag(X, X2, T, member_in_ag(X, T))
   U7_ag(X, Xs, Ys, members_out_ag(Xs, Ys)) -> members_out_ag(.(X, Xs), Ys)
   U8_ag(X, X2, T, member_out_ag(X, T)) -> member_out_ag(X, .(X2, T))

The argument filtering Pi contains the following mapping:
color_region_in_ag(x1, x2)  =  color_region_in_ag(x2)

U3_ag(x1, x2, x3, x4, x5)  =  U3_ag(x5)

select_in_aga(x1, x2, x3)  =  select_in_aga(x2)

.(x1, x2)  =  .(x1, x2)

select_out_aga(x1, x2, x3)  =  select_out_aga(x1, x3)

U5_aga(x1, x2, x3, x4, x5)  =  U5_aga(x2, x5)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x2, x5)

members_in_ag(x1, x2)  =  members_in_ag(x2)

U6_ag(x1, x2, x3, x4)  =  U6_ag(x3, x4)

member_in_ag(x1, x2)  =  member_in_ag(x2)

member_out_ag(x1, x2)  =  member_out_ag(x1)

U8_ag(x1, x2, x3, x4)  =  U8_ag(x4)

U7_ag(x1, x2, x3, x4)  =  U7_ag(x1, x4)

members_out_ag(x1, x2)  =  members_out_ag(x1)

color_region_out_ag(x1, x2)  =  color_region_out_ag(x1)

region(x1, x2, x3)  =  region(x2, x3)

COLOR_MAP_IN_AG(x1, x2)  =  COLOR_MAP_IN_AG(x2)

U1_AG(x1, x2, x3, x4)  =  U1_AG(x3, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(57) PiDPToQDPProof (SOUND)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
----------------------------------------

(58)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   U1_AG(Colors, color_region_out_ag(Region)) -> COLOR_MAP_IN_AG(Colors)
   COLOR_MAP_IN_AG(Colors) -> U1_AG(Colors, color_region_in_ag(Colors))

The TRS R consists of the following rules:

   color_region_in_ag(Colors) -> U3_ag(select_in_aga(Colors))
   U3_ag(select_out_aga(Color, Colors1)) -> U4_ag(Color, members_in_ag(Colors1))
   select_in_aga(.(X, Xs)) -> select_out_aga(X, Xs)
   select_in_aga(.(Y, Ys)) -> U5_aga(Y, select_in_aga(Ys))
   U4_ag(Color, members_out_ag(Neighbors)) -> color_region_out_ag(region(Color, Neighbors))
   U5_aga(Y, select_out_aga(X, Zs)) -> select_out_aga(X, .(Y, Zs))
   members_in_ag(Ys) -> U6_ag(Ys, member_in_ag(Ys))
   members_in_ag(Ys) -> members_out_ag([])
   U6_ag(Ys, member_out_ag(X)) -> U7_ag(X, members_in_ag(Ys))
   member_in_ag(.(X, X1)) -> member_out_ag(X)
   member_in_ag(.(X2, T)) -> U8_ag(member_in_ag(T))
   U7_ag(X, members_out_ag(Xs)) -> members_out_ag(.(X, Xs))
   U8_ag(member_out_ag(X)) -> member_out_ag(X)

The set Q consists of the following terms:

   color_region_in_ag(x0)
   U3_ag(x0)
   select_in_aga(x0)
   U4_ag(x0, x1)
   U5_aga(x0, x1)
   members_in_ag(x0)
   U6_ag(x0, x1)
   member_in_ag(x0)
   U7_ag(x0, x1)
   U8_ag(x0)

We have to consider all (P,Q,R)-chains.
----------------------------------------

(59) PrologToPiTRSProof (SOUND)
We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes:

color_map_in_2: (f,b)

color_region_in_2: (f,b)

select_in_3: (f,b,f)

members_in_2: (f,b)

member_in_2: (f,b)

Transforming Prolog into the following Term Rewriting System:

Pi-finite rewrite system:
The TRS R consists of the following rules:

   color_map_in_ag(.(Region, Regions), Colors) -> U1_ag(Region, Regions, Colors, color_region_in_ag(Region, Colors))
   color_region_in_ag(region(Name, Color, Neighbors), Colors) -> U3_ag(Name, Color, Neighbors, Colors, select_in_aga(Color, Colors, Colors1))
   select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs)
   select_in_aga(X, .(Y, Ys), .(Y, Zs)) -> U5_aga(X, Y, Ys, Zs, select_in_aga(X, Ys, Zs))
   U5_aga(X, Y, Ys, Zs, select_out_aga(X, Ys, Zs)) -> select_out_aga(X, .(Y, Ys), .(Y, Zs))
   U3_ag(Name, Color, Neighbors, Colors, select_out_aga(Color, Colors, Colors1)) -> U4_ag(Name, Color, Neighbors, Colors, members_in_ag(Neighbors, Colors1))
   members_in_ag(.(X, Xs), Ys) -> U6_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(X, X1)) -> member_out_ag(X, .(X, X1))
   member_in_ag(X, .(X2, T)) -> U8_ag(X, X2, T, member_in_ag(X, T))
   U8_ag(X, X2, T, member_out_ag(X, T)) -> member_out_ag(X, .(X2, T))
   U6_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U7_ag(X, Xs, Ys, members_in_ag(Xs, Ys))
   members_in_ag([], Ys) -> members_out_ag([], Ys)
   U7_ag(X, Xs, Ys, members_out_ag(Xs, Ys)) -> members_out_ag(.(X, Xs), Ys)
   U4_ag(Name, Color, Neighbors, Colors, members_out_ag(Neighbors, Colors1)) -> color_region_out_ag(region(Name, Color, Neighbors), Colors)
   U1_ag(Region, Regions, Colors, color_region_out_ag(Region, Colors)) -> U2_ag(Region, Regions, Colors, color_map_in_ag(Regions, Colors))
   color_map_in_ag([], Colors) -> color_map_out_ag([], Colors)
   U2_ag(Region, Regions, Colors, color_map_out_ag(Regions, Colors)) -> color_map_out_ag(.(Region, Regions), Colors)

The argument filtering Pi contains the following mapping:
color_map_in_ag(x1, x2)  =  color_map_in_ag(x2)

U1_ag(x1, x2, x3, x4)  =  U1_ag(x3, x4)

color_region_in_ag(x1, x2)  =  color_region_in_ag(x2)

U3_ag(x1, x2, x3, x4, x5)  =  U3_ag(x4, x5)

select_in_aga(x1, x2, x3)  =  select_in_aga(x2)

.(x1, x2)  =  .(x1, x2)

select_out_aga(x1, x2, x3)  =  select_out_aga(x1, x2, x3)

U5_aga(x1, x2, x3, x4, x5)  =  U5_aga(x2, x3, x5)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x2, x4, x5)

members_in_ag(x1, x2)  =  members_in_ag(x2)

U6_ag(x1, x2, x3, x4)  =  U6_ag(x3, x4)

member_in_ag(x1, x2)  =  member_in_ag(x2)

member_out_ag(x1, x2)  =  member_out_ag(x1, x2)

U8_ag(x1, x2, x3, x4)  =  U8_ag(x2, x3, x4)

U7_ag(x1, x2, x3, x4)  =  U7_ag(x1, x3, x4)

members_out_ag(x1, x2)  =  members_out_ag(x1, x2)

color_region_out_ag(x1, x2)  =  color_region_out_ag(x1, x2)

region(x1, x2, x3)  =  region(x2, x3)

U2_ag(x1, x2, x3, x4)  =  U2_ag(x1, x3, x4)

color_map_out_ag(x1, x2)  =  color_map_out_ag(x1, x2)





Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog



----------------------------------------

(60)
Obligation:
Pi-finite rewrite system:
The TRS R consists of the following rules:

   color_map_in_ag(.(Region, Regions), Colors) -> U1_ag(Region, Regions, Colors, color_region_in_ag(Region, Colors))
   color_region_in_ag(region(Name, Color, Neighbors), Colors) -> U3_ag(Name, Color, Neighbors, Colors, select_in_aga(Color, Colors, Colors1))
   select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs)
   select_in_aga(X, .(Y, Ys), .(Y, Zs)) -> U5_aga(X, Y, Ys, Zs, select_in_aga(X, Ys, Zs))
   U5_aga(X, Y, Ys, Zs, select_out_aga(X, Ys, Zs)) -> select_out_aga(X, .(Y, Ys), .(Y, Zs))
   U3_ag(Name, Color, Neighbors, Colors, select_out_aga(Color, Colors, Colors1)) -> U4_ag(Name, Color, Neighbors, Colors, members_in_ag(Neighbors, Colors1))
   members_in_ag(.(X, Xs), Ys) -> U6_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(X, X1)) -> member_out_ag(X, .(X, X1))
   member_in_ag(X, .(X2, T)) -> U8_ag(X, X2, T, member_in_ag(X, T))
   U8_ag(X, X2, T, member_out_ag(X, T)) -> member_out_ag(X, .(X2, T))
   U6_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U7_ag(X, Xs, Ys, members_in_ag(Xs, Ys))
   members_in_ag([], Ys) -> members_out_ag([], Ys)
   U7_ag(X, Xs, Ys, members_out_ag(Xs, Ys)) -> members_out_ag(.(X, Xs), Ys)
   U4_ag(Name, Color, Neighbors, Colors, members_out_ag(Neighbors, Colors1)) -> color_region_out_ag(region(Name, Color, Neighbors), Colors)
   U1_ag(Region, Regions, Colors, color_region_out_ag(Region, Colors)) -> U2_ag(Region, Regions, Colors, color_map_in_ag(Regions, Colors))
   color_map_in_ag([], Colors) -> color_map_out_ag([], Colors)
   U2_ag(Region, Regions, Colors, color_map_out_ag(Regions, Colors)) -> color_map_out_ag(.(Region, Regions), Colors)

The argument filtering Pi contains the following mapping:
color_map_in_ag(x1, x2)  =  color_map_in_ag(x2)

U1_ag(x1, x2, x3, x4)  =  U1_ag(x3, x4)

color_region_in_ag(x1, x2)  =  color_region_in_ag(x2)

U3_ag(x1, x2, x3, x4, x5)  =  U3_ag(x4, x5)

select_in_aga(x1, x2, x3)  =  select_in_aga(x2)

.(x1, x2)  =  .(x1, x2)

select_out_aga(x1, x2, x3)  =  select_out_aga(x1, x2, x3)

U5_aga(x1, x2, x3, x4, x5)  =  U5_aga(x2, x3, x5)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x2, x4, x5)

members_in_ag(x1, x2)  =  members_in_ag(x2)

U6_ag(x1, x2, x3, x4)  =  U6_ag(x3, x4)

member_in_ag(x1, x2)  =  member_in_ag(x2)

member_out_ag(x1, x2)  =  member_out_ag(x1, x2)

U8_ag(x1, x2, x3, x4)  =  U8_ag(x2, x3, x4)

U7_ag(x1, x2, x3, x4)  =  U7_ag(x1, x3, x4)

members_out_ag(x1, x2)  =  members_out_ag(x1, x2)

color_region_out_ag(x1, x2)  =  color_region_out_ag(x1, x2)

region(x1, x2, x3)  =  region(x2, x3)

U2_ag(x1, x2, x3, x4)  =  U2_ag(x1, x3, x4)

color_map_out_ag(x1, x2)  =  color_map_out_ag(x1, x2)



----------------------------------------

(61) DependencyPairsProof (EQUIVALENT)
Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem:
Pi DP problem:
The TRS P consists of the following rules:

   COLOR_MAP_IN_AG(.(Region, Regions), Colors) -> U1_AG(Region, Regions, Colors, color_region_in_ag(Region, Colors))
   COLOR_MAP_IN_AG(.(Region, Regions), Colors) -> COLOR_REGION_IN_AG(Region, Colors)
   COLOR_REGION_IN_AG(region(Name, Color, Neighbors), Colors) -> U3_AG(Name, Color, Neighbors, Colors, select_in_aga(Color, Colors, Colors1))
   COLOR_REGION_IN_AG(region(Name, Color, Neighbors), Colors) -> SELECT_IN_AGA(Color, Colors, Colors1)
   SELECT_IN_AGA(X, .(Y, Ys), .(Y, Zs)) -> U5_AGA(X, Y, Ys, Zs, select_in_aga(X, Ys, Zs))
   SELECT_IN_AGA(X, .(Y, Ys), .(Y, Zs)) -> SELECT_IN_AGA(X, Ys, Zs)
   U3_AG(Name, Color, Neighbors, Colors, select_out_aga(Color, Colors, Colors1)) -> U4_AG(Name, Color, Neighbors, Colors, members_in_ag(Neighbors, Colors1))
   U3_AG(Name, Color, Neighbors, Colors, select_out_aga(Color, Colors, Colors1)) -> MEMBERS_IN_AG(Neighbors, Colors1)
   MEMBERS_IN_AG(.(X, Xs), Ys) -> U6_AG(X, Xs, Ys, member_in_ag(X, Ys))
   MEMBERS_IN_AG(.(X, Xs), Ys) -> MEMBER_IN_AG(X, Ys)
   MEMBER_IN_AG(X, .(X2, T)) -> U8_AG(X, X2, T, member_in_ag(X, T))
   MEMBER_IN_AG(X, .(X2, T)) -> MEMBER_IN_AG(X, T)
   U6_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> U7_AG(X, Xs, Ys, members_in_ag(Xs, Ys))
   U6_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> MEMBERS_IN_AG(Xs, Ys)
   U1_AG(Region, Regions, Colors, color_region_out_ag(Region, Colors)) -> U2_AG(Region, Regions, Colors, color_map_in_ag(Regions, Colors))
   U1_AG(Region, Regions, Colors, color_region_out_ag(Region, Colors)) -> COLOR_MAP_IN_AG(Regions, Colors)

The TRS R consists of the following rules:

   color_map_in_ag(.(Region, Regions), Colors) -> U1_ag(Region, Regions, Colors, color_region_in_ag(Region, Colors))
   color_region_in_ag(region(Name, Color, Neighbors), Colors) -> U3_ag(Name, Color, Neighbors, Colors, select_in_aga(Color, Colors, Colors1))
   select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs)
   select_in_aga(X, .(Y, Ys), .(Y, Zs)) -> U5_aga(X, Y, Ys, Zs, select_in_aga(X, Ys, Zs))
   U5_aga(X, Y, Ys, Zs, select_out_aga(X, Ys, Zs)) -> select_out_aga(X, .(Y, Ys), .(Y, Zs))
   U3_ag(Name, Color, Neighbors, Colors, select_out_aga(Color, Colors, Colors1)) -> U4_ag(Name, Color, Neighbors, Colors, members_in_ag(Neighbors, Colors1))
   members_in_ag(.(X, Xs), Ys) -> U6_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(X, X1)) -> member_out_ag(X, .(X, X1))
   member_in_ag(X, .(X2, T)) -> U8_ag(X, X2, T, member_in_ag(X, T))
   U8_ag(X, X2, T, member_out_ag(X, T)) -> member_out_ag(X, .(X2, T))
   U6_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U7_ag(X, Xs, Ys, members_in_ag(Xs, Ys))
   members_in_ag([], Ys) -> members_out_ag([], Ys)
   U7_ag(X, Xs, Ys, members_out_ag(Xs, Ys)) -> members_out_ag(.(X, Xs), Ys)
   U4_ag(Name, Color, Neighbors, Colors, members_out_ag(Neighbors, Colors1)) -> color_region_out_ag(region(Name, Color, Neighbors), Colors)
   U1_ag(Region, Regions, Colors, color_region_out_ag(Region, Colors)) -> U2_ag(Region, Regions, Colors, color_map_in_ag(Regions, Colors))
   color_map_in_ag([], Colors) -> color_map_out_ag([], Colors)
   U2_ag(Region, Regions, Colors, color_map_out_ag(Regions, Colors)) -> color_map_out_ag(.(Region, Regions), Colors)

The argument filtering Pi contains the following mapping:
color_map_in_ag(x1, x2)  =  color_map_in_ag(x2)

U1_ag(x1, x2, x3, x4)  =  U1_ag(x3, x4)

color_region_in_ag(x1, x2)  =  color_region_in_ag(x2)

U3_ag(x1, x2, x3, x4, x5)  =  U3_ag(x4, x5)

select_in_aga(x1, x2, x3)  =  select_in_aga(x2)

.(x1, x2)  =  .(x1, x2)

select_out_aga(x1, x2, x3)  =  select_out_aga(x1, x2, x3)

U5_aga(x1, x2, x3, x4, x5)  =  U5_aga(x2, x3, x5)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x2, x4, x5)

members_in_ag(x1, x2)  =  members_in_ag(x2)

U6_ag(x1, x2, x3, x4)  =  U6_ag(x3, x4)

member_in_ag(x1, x2)  =  member_in_ag(x2)

member_out_ag(x1, x2)  =  member_out_ag(x1, x2)

U8_ag(x1, x2, x3, x4)  =  U8_ag(x2, x3, x4)

U7_ag(x1, x2, x3, x4)  =  U7_ag(x1, x3, x4)

members_out_ag(x1, x2)  =  members_out_ag(x1, x2)

color_region_out_ag(x1, x2)  =  color_region_out_ag(x1, x2)

region(x1, x2, x3)  =  region(x2, x3)

U2_ag(x1, x2, x3, x4)  =  U2_ag(x1, x3, x4)

color_map_out_ag(x1, x2)  =  color_map_out_ag(x1, x2)

COLOR_MAP_IN_AG(x1, x2)  =  COLOR_MAP_IN_AG(x2)

U1_AG(x1, x2, x3, x4)  =  U1_AG(x3, x4)

COLOR_REGION_IN_AG(x1, x2)  =  COLOR_REGION_IN_AG(x2)

U3_AG(x1, x2, x3, x4, x5)  =  U3_AG(x4, x5)

SELECT_IN_AGA(x1, x2, x3)  =  SELECT_IN_AGA(x2)

U5_AGA(x1, x2, x3, x4, x5)  =  U5_AGA(x2, x3, x5)

U4_AG(x1, x2, x3, x4, x5)  =  U4_AG(x2, x4, x5)

MEMBERS_IN_AG(x1, x2)  =  MEMBERS_IN_AG(x2)

U6_AG(x1, x2, x3, x4)  =  U6_AG(x3, x4)

MEMBER_IN_AG(x1, x2)  =  MEMBER_IN_AG(x2)

U8_AG(x1, x2, x3, x4)  =  U8_AG(x2, x3, x4)

U7_AG(x1, x2, x3, x4)  =  U7_AG(x1, x3, x4)

U2_AG(x1, x2, x3, x4)  =  U2_AG(x1, x3, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(62)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   COLOR_MAP_IN_AG(.(Region, Regions), Colors) -> U1_AG(Region, Regions, Colors, color_region_in_ag(Region, Colors))
   COLOR_MAP_IN_AG(.(Region, Regions), Colors) -> COLOR_REGION_IN_AG(Region, Colors)
   COLOR_REGION_IN_AG(region(Name, Color, Neighbors), Colors) -> U3_AG(Name, Color, Neighbors, Colors, select_in_aga(Color, Colors, Colors1))
   COLOR_REGION_IN_AG(region(Name, Color, Neighbors), Colors) -> SELECT_IN_AGA(Color, Colors, Colors1)
   SELECT_IN_AGA(X, .(Y, Ys), .(Y, Zs)) -> U5_AGA(X, Y, Ys, Zs, select_in_aga(X, Ys, Zs))
   SELECT_IN_AGA(X, .(Y, Ys), .(Y, Zs)) -> SELECT_IN_AGA(X, Ys, Zs)
   U3_AG(Name, Color, Neighbors, Colors, select_out_aga(Color, Colors, Colors1)) -> U4_AG(Name, Color, Neighbors, Colors, members_in_ag(Neighbors, Colors1))
   U3_AG(Name, Color, Neighbors, Colors, select_out_aga(Color, Colors, Colors1)) -> MEMBERS_IN_AG(Neighbors, Colors1)
   MEMBERS_IN_AG(.(X, Xs), Ys) -> U6_AG(X, Xs, Ys, member_in_ag(X, Ys))
   MEMBERS_IN_AG(.(X, Xs), Ys) -> MEMBER_IN_AG(X, Ys)
   MEMBER_IN_AG(X, .(X2, T)) -> U8_AG(X, X2, T, member_in_ag(X, T))
   MEMBER_IN_AG(X, .(X2, T)) -> MEMBER_IN_AG(X, T)
   U6_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> U7_AG(X, Xs, Ys, members_in_ag(Xs, Ys))
   U6_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> MEMBERS_IN_AG(Xs, Ys)
   U1_AG(Region, Regions, Colors, color_region_out_ag(Region, Colors)) -> U2_AG(Region, Regions, Colors, color_map_in_ag(Regions, Colors))
   U1_AG(Region, Regions, Colors, color_region_out_ag(Region, Colors)) -> COLOR_MAP_IN_AG(Regions, Colors)

The TRS R consists of the following rules:

   color_map_in_ag(.(Region, Regions), Colors) -> U1_ag(Region, Regions, Colors, color_region_in_ag(Region, Colors))
   color_region_in_ag(region(Name, Color, Neighbors), Colors) -> U3_ag(Name, Color, Neighbors, Colors, select_in_aga(Color, Colors, Colors1))
   select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs)
   select_in_aga(X, .(Y, Ys), .(Y, Zs)) -> U5_aga(X, Y, Ys, Zs, select_in_aga(X, Ys, Zs))
   U5_aga(X, Y, Ys, Zs, select_out_aga(X, Ys, Zs)) -> select_out_aga(X, .(Y, Ys), .(Y, Zs))
   U3_ag(Name, Color, Neighbors, Colors, select_out_aga(Color, Colors, Colors1)) -> U4_ag(Name, Color, Neighbors, Colors, members_in_ag(Neighbors, Colors1))
   members_in_ag(.(X, Xs), Ys) -> U6_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(X, X1)) -> member_out_ag(X, .(X, X1))
   member_in_ag(X, .(X2, T)) -> U8_ag(X, X2, T, member_in_ag(X, T))
   U8_ag(X, X2, T, member_out_ag(X, T)) -> member_out_ag(X, .(X2, T))
   U6_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U7_ag(X, Xs, Ys, members_in_ag(Xs, Ys))
   members_in_ag([], Ys) -> members_out_ag([], Ys)
   U7_ag(X, Xs, Ys, members_out_ag(Xs, Ys)) -> members_out_ag(.(X, Xs), Ys)
   U4_ag(Name, Color, Neighbors, Colors, members_out_ag(Neighbors, Colors1)) -> color_region_out_ag(region(Name, Color, Neighbors), Colors)
   U1_ag(Region, Regions, Colors, color_region_out_ag(Region, Colors)) -> U2_ag(Region, Regions, Colors, color_map_in_ag(Regions, Colors))
   color_map_in_ag([], Colors) -> color_map_out_ag([], Colors)
   U2_ag(Region, Regions, Colors, color_map_out_ag(Regions, Colors)) -> color_map_out_ag(.(Region, Regions), Colors)

The argument filtering Pi contains the following mapping:
color_map_in_ag(x1, x2)  =  color_map_in_ag(x2)

U1_ag(x1, x2, x3, x4)  =  U1_ag(x3, x4)

color_region_in_ag(x1, x2)  =  color_region_in_ag(x2)

U3_ag(x1, x2, x3, x4, x5)  =  U3_ag(x4, x5)

select_in_aga(x1, x2, x3)  =  select_in_aga(x2)

.(x1, x2)  =  .(x1, x2)

select_out_aga(x1, x2, x3)  =  select_out_aga(x1, x2, x3)

U5_aga(x1, x2, x3, x4, x5)  =  U5_aga(x2, x3, x5)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x2, x4, x5)

members_in_ag(x1, x2)  =  members_in_ag(x2)

U6_ag(x1, x2, x3, x4)  =  U6_ag(x3, x4)

member_in_ag(x1, x2)  =  member_in_ag(x2)

member_out_ag(x1, x2)  =  member_out_ag(x1, x2)

U8_ag(x1, x2, x3, x4)  =  U8_ag(x2, x3, x4)

U7_ag(x1, x2, x3, x4)  =  U7_ag(x1, x3, x4)

members_out_ag(x1, x2)  =  members_out_ag(x1, x2)

color_region_out_ag(x1, x2)  =  color_region_out_ag(x1, x2)

region(x1, x2, x3)  =  region(x2, x3)

U2_ag(x1, x2, x3, x4)  =  U2_ag(x1, x3, x4)

color_map_out_ag(x1, x2)  =  color_map_out_ag(x1, x2)

COLOR_MAP_IN_AG(x1, x2)  =  COLOR_MAP_IN_AG(x2)

U1_AG(x1, x2, x3, x4)  =  U1_AG(x3, x4)

COLOR_REGION_IN_AG(x1, x2)  =  COLOR_REGION_IN_AG(x2)

U3_AG(x1, x2, x3, x4, x5)  =  U3_AG(x4, x5)

SELECT_IN_AGA(x1, x2, x3)  =  SELECT_IN_AGA(x2)

U5_AGA(x1, x2, x3, x4, x5)  =  U5_AGA(x2, x3, x5)

U4_AG(x1, x2, x3, x4, x5)  =  U4_AG(x2, x4, x5)

MEMBERS_IN_AG(x1, x2)  =  MEMBERS_IN_AG(x2)

U6_AG(x1, x2, x3, x4)  =  U6_AG(x3, x4)

MEMBER_IN_AG(x1, x2)  =  MEMBER_IN_AG(x2)

U8_AG(x1, x2, x3, x4)  =  U8_AG(x2, x3, x4)

U7_AG(x1, x2, x3, x4)  =  U7_AG(x1, x3, x4)

U2_AG(x1, x2, x3, x4)  =  U2_AG(x1, x3, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(63) DependencyGraphProof (EQUIVALENT)
The approximation of the Dependency Graph [LOPSTR] contains 4 SCCs with 10 less nodes.
----------------------------------------

(64)
Complex Obligation (AND)

----------------------------------------

(65)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   MEMBER_IN_AG(X, .(X2, T)) -> MEMBER_IN_AG(X, T)

The TRS R consists of the following rules:

   color_map_in_ag(.(Region, Regions), Colors) -> U1_ag(Region, Regions, Colors, color_region_in_ag(Region, Colors))
   color_region_in_ag(region(Name, Color, Neighbors), Colors) -> U3_ag(Name, Color, Neighbors, Colors, select_in_aga(Color, Colors, Colors1))
   select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs)
   select_in_aga(X, .(Y, Ys), .(Y, Zs)) -> U5_aga(X, Y, Ys, Zs, select_in_aga(X, Ys, Zs))
   U5_aga(X, Y, Ys, Zs, select_out_aga(X, Ys, Zs)) -> select_out_aga(X, .(Y, Ys), .(Y, Zs))
   U3_ag(Name, Color, Neighbors, Colors, select_out_aga(Color, Colors, Colors1)) -> U4_ag(Name, Color, Neighbors, Colors, members_in_ag(Neighbors, Colors1))
   members_in_ag(.(X, Xs), Ys) -> U6_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(X, X1)) -> member_out_ag(X, .(X, X1))
   member_in_ag(X, .(X2, T)) -> U8_ag(X, X2, T, member_in_ag(X, T))
   U8_ag(X, X2, T, member_out_ag(X, T)) -> member_out_ag(X, .(X2, T))
   U6_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U7_ag(X, Xs, Ys, members_in_ag(Xs, Ys))
   members_in_ag([], Ys) -> members_out_ag([], Ys)
   U7_ag(X, Xs, Ys, members_out_ag(Xs, Ys)) -> members_out_ag(.(X, Xs), Ys)
   U4_ag(Name, Color, Neighbors, Colors, members_out_ag(Neighbors, Colors1)) -> color_region_out_ag(region(Name, Color, Neighbors), Colors)
   U1_ag(Region, Regions, Colors, color_region_out_ag(Region, Colors)) -> U2_ag(Region, Regions, Colors, color_map_in_ag(Regions, Colors))
   color_map_in_ag([], Colors) -> color_map_out_ag([], Colors)
   U2_ag(Region, Regions, Colors, color_map_out_ag(Regions, Colors)) -> color_map_out_ag(.(Region, Regions), Colors)

The argument filtering Pi contains the following mapping:
color_map_in_ag(x1, x2)  =  color_map_in_ag(x2)

U1_ag(x1, x2, x3, x4)  =  U1_ag(x3, x4)

color_region_in_ag(x1, x2)  =  color_region_in_ag(x2)

U3_ag(x1, x2, x3, x4, x5)  =  U3_ag(x4, x5)

select_in_aga(x1, x2, x3)  =  select_in_aga(x2)

.(x1, x2)  =  .(x1, x2)

select_out_aga(x1, x2, x3)  =  select_out_aga(x1, x2, x3)

U5_aga(x1, x2, x3, x4, x5)  =  U5_aga(x2, x3, x5)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x2, x4, x5)

members_in_ag(x1, x2)  =  members_in_ag(x2)

U6_ag(x1, x2, x3, x4)  =  U6_ag(x3, x4)

member_in_ag(x1, x2)  =  member_in_ag(x2)

member_out_ag(x1, x2)  =  member_out_ag(x1, x2)

U8_ag(x1, x2, x3, x4)  =  U8_ag(x2, x3, x4)

U7_ag(x1, x2, x3, x4)  =  U7_ag(x1, x3, x4)

members_out_ag(x1, x2)  =  members_out_ag(x1, x2)

color_region_out_ag(x1, x2)  =  color_region_out_ag(x1, x2)

region(x1, x2, x3)  =  region(x2, x3)

U2_ag(x1, x2, x3, x4)  =  U2_ag(x1, x3, x4)

color_map_out_ag(x1, x2)  =  color_map_out_ag(x1, x2)

MEMBER_IN_AG(x1, x2)  =  MEMBER_IN_AG(x2)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(66) UsableRulesProof (EQUIVALENT)
For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.
----------------------------------------

(67)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   MEMBER_IN_AG(X, .(X2, T)) -> MEMBER_IN_AG(X, T)

R is empty.
The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)

MEMBER_IN_AG(x1, x2)  =  MEMBER_IN_AG(x2)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(68) PiDPToQDPProof (SOUND)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
----------------------------------------

(69)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   MEMBER_IN_AG(.(X2, T)) -> MEMBER_IN_AG(T)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.
----------------------------------------

(70) 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:
*MEMBER_IN_AG(.(X2, T)) -> MEMBER_IN_AG(T)
The graph contains the following edges 1 > 1


----------------------------------------

(71)
YES

----------------------------------------

(72)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   U6_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> MEMBERS_IN_AG(Xs, Ys)
   MEMBERS_IN_AG(.(X, Xs), Ys) -> U6_AG(X, Xs, Ys, member_in_ag(X, Ys))

The TRS R consists of the following rules:

   color_map_in_ag(.(Region, Regions), Colors) -> U1_ag(Region, Regions, Colors, color_region_in_ag(Region, Colors))
   color_region_in_ag(region(Name, Color, Neighbors), Colors) -> U3_ag(Name, Color, Neighbors, Colors, select_in_aga(Color, Colors, Colors1))
   select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs)
   select_in_aga(X, .(Y, Ys), .(Y, Zs)) -> U5_aga(X, Y, Ys, Zs, select_in_aga(X, Ys, Zs))
   U5_aga(X, Y, Ys, Zs, select_out_aga(X, Ys, Zs)) -> select_out_aga(X, .(Y, Ys), .(Y, Zs))
   U3_ag(Name, Color, Neighbors, Colors, select_out_aga(Color, Colors, Colors1)) -> U4_ag(Name, Color, Neighbors, Colors, members_in_ag(Neighbors, Colors1))
   members_in_ag(.(X, Xs), Ys) -> U6_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(X, X1)) -> member_out_ag(X, .(X, X1))
   member_in_ag(X, .(X2, T)) -> U8_ag(X, X2, T, member_in_ag(X, T))
   U8_ag(X, X2, T, member_out_ag(X, T)) -> member_out_ag(X, .(X2, T))
   U6_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U7_ag(X, Xs, Ys, members_in_ag(Xs, Ys))
   members_in_ag([], Ys) -> members_out_ag([], Ys)
   U7_ag(X, Xs, Ys, members_out_ag(Xs, Ys)) -> members_out_ag(.(X, Xs), Ys)
   U4_ag(Name, Color, Neighbors, Colors, members_out_ag(Neighbors, Colors1)) -> color_region_out_ag(region(Name, Color, Neighbors), Colors)
   U1_ag(Region, Regions, Colors, color_region_out_ag(Region, Colors)) -> U2_ag(Region, Regions, Colors, color_map_in_ag(Regions, Colors))
   color_map_in_ag([], Colors) -> color_map_out_ag([], Colors)
   U2_ag(Region, Regions, Colors, color_map_out_ag(Regions, Colors)) -> color_map_out_ag(.(Region, Regions), Colors)

The argument filtering Pi contains the following mapping:
color_map_in_ag(x1, x2)  =  color_map_in_ag(x2)

U1_ag(x1, x2, x3, x4)  =  U1_ag(x3, x4)

color_region_in_ag(x1, x2)  =  color_region_in_ag(x2)

U3_ag(x1, x2, x3, x4, x5)  =  U3_ag(x4, x5)

select_in_aga(x1, x2, x3)  =  select_in_aga(x2)

.(x1, x2)  =  .(x1, x2)

select_out_aga(x1, x2, x3)  =  select_out_aga(x1, x2, x3)

U5_aga(x1, x2, x3, x4, x5)  =  U5_aga(x2, x3, x5)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x2, x4, x5)

members_in_ag(x1, x2)  =  members_in_ag(x2)

U6_ag(x1, x2, x3, x4)  =  U6_ag(x3, x4)

member_in_ag(x1, x2)  =  member_in_ag(x2)

member_out_ag(x1, x2)  =  member_out_ag(x1, x2)

U8_ag(x1, x2, x3, x4)  =  U8_ag(x2, x3, x4)

U7_ag(x1, x2, x3, x4)  =  U7_ag(x1, x3, x4)

members_out_ag(x1, x2)  =  members_out_ag(x1, x2)

color_region_out_ag(x1, x2)  =  color_region_out_ag(x1, x2)

region(x1, x2, x3)  =  region(x2, x3)

U2_ag(x1, x2, x3, x4)  =  U2_ag(x1, x3, x4)

color_map_out_ag(x1, x2)  =  color_map_out_ag(x1, x2)

MEMBERS_IN_AG(x1, x2)  =  MEMBERS_IN_AG(x2)

U6_AG(x1, x2, x3, x4)  =  U6_AG(x3, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(73) UsableRulesProof (EQUIVALENT)
For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.
----------------------------------------

(74)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   U6_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> MEMBERS_IN_AG(Xs, Ys)
   MEMBERS_IN_AG(.(X, Xs), Ys) -> U6_AG(X, Xs, Ys, member_in_ag(X, Ys))

The TRS R consists of the following rules:

   member_in_ag(X, .(X, X1)) -> member_out_ag(X, .(X, X1))
   member_in_ag(X, .(X2, T)) -> U8_ag(X, X2, T, member_in_ag(X, T))
   U8_ag(X, X2, T, member_out_ag(X, T)) -> member_out_ag(X, .(X2, T))

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)

member_in_ag(x1, x2)  =  member_in_ag(x2)

member_out_ag(x1, x2)  =  member_out_ag(x1, x2)

U8_ag(x1, x2, x3, x4)  =  U8_ag(x2, x3, x4)

MEMBERS_IN_AG(x1, x2)  =  MEMBERS_IN_AG(x2)

U6_AG(x1, x2, x3, x4)  =  U6_AG(x3, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(75) PiDPToQDPProof (SOUND)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
----------------------------------------

(76)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   U6_AG(Ys, member_out_ag(X, Ys)) -> MEMBERS_IN_AG(Ys)
   MEMBERS_IN_AG(Ys) -> U6_AG(Ys, member_in_ag(Ys))

The TRS R consists of the following rules:

   member_in_ag(.(X, X1)) -> member_out_ag(X, .(X, X1))
   member_in_ag(.(X2, T)) -> U8_ag(X2, T, member_in_ag(T))
   U8_ag(X2, T, member_out_ag(X, T)) -> member_out_ag(X, .(X2, T))

The set Q consists of the following terms:

   member_in_ag(x0)
   U8_ag(x0, x1, x2)

We have to consider all (P,Q,R)-chains.
----------------------------------------

(77) TransformationProof (SOUND)
By narrowing [LPAR04] the rule MEMBERS_IN_AG(Ys) -> U6_AG(Ys, member_in_ag(Ys)) at position [1] we obtained the following new rules [LPAR04]:

   (MEMBERS_IN_AG(.(x0, x1)) -> U6_AG(.(x0, x1), member_out_ag(x0, .(x0, x1))),MEMBERS_IN_AG(.(x0, x1)) -> U6_AG(.(x0, x1), member_out_ag(x0, .(x0, x1))))
   (MEMBERS_IN_AG(.(x0, x1)) -> U6_AG(.(x0, x1), U8_ag(x0, x1, member_in_ag(x1))),MEMBERS_IN_AG(.(x0, x1)) -> U6_AG(.(x0, x1), U8_ag(x0, x1, member_in_ag(x1))))


----------------------------------------

(78)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   U6_AG(Ys, member_out_ag(X, Ys)) -> MEMBERS_IN_AG(Ys)
   MEMBERS_IN_AG(.(x0, x1)) -> U6_AG(.(x0, x1), member_out_ag(x0, .(x0, x1)))
   MEMBERS_IN_AG(.(x0, x1)) -> U6_AG(.(x0, x1), U8_ag(x0, x1, member_in_ag(x1)))

The TRS R consists of the following rules:

   member_in_ag(.(X, X1)) -> member_out_ag(X, .(X, X1))
   member_in_ag(.(X2, T)) -> U8_ag(X2, T, member_in_ag(T))
   U8_ag(X2, T, member_out_ag(X, T)) -> member_out_ag(X, .(X2, T))

The set Q consists of the following terms:

   member_in_ag(x0)
   U8_ag(x0, x1, x2)

We have to consider all (P,Q,R)-chains.
----------------------------------------

(79) TransformationProof (EQUIVALENT)
By instantiating [LPAR04] the rule U6_AG(Ys, member_out_ag(X, Ys)) -> MEMBERS_IN_AG(Ys) we obtained the following new rules [LPAR04]:

   (U6_AG(.(z0, z1), member_out_ag(z0, .(z0, z1))) -> MEMBERS_IN_AG(.(z0, z1)),U6_AG(.(z0, z1), member_out_ag(z0, .(z0, z1))) -> MEMBERS_IN_AG(.(z0, z1)))
   (U6_AG(.(z0, z1), member_out_ag(x1, .(z0, z1))) -> MEMBERS_IN_AG(.(z0, z1)),U6_AG(.(z0, z1), member_out_ag(x1, .(z0, z1))) -> MEMBERS_IN_AG(.(z0, z1)))


----------------------------------------

(80)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   MEMBERS_IN_AG(.(x0, x1)) -> U6_AG(.(x0, x1), member_out_ag(x0, .(x0, x1)))
   MEMBERS_IN_AG(.(x0, x1)) -> U6_AG(.(x0, x1), U8_ag(x0, x1, member_in_ag(x1)))
   U6_AG(.(z0, z1), member_out_ag(z0, .(z0, z1))) -> MEMBERS_IN_AG(.(z0, z1))
   U6_AG(.(z0, z1), member_out_ag(x1, .(z0, z1))) -> MEMBERS_IN_AG(.(z0, z1))

The TRS R consists of the following rules:

   member_in_ag(.(X, X1)) -> member_out_ag(X, .(X, X1))
   member_in_ag(.(X2, T)) -> U8_ag(X2, T, member_in_ag(T))
   U8_ag(X2, T, member_out_ag(X, T)) -> member_out_ag(X, .(X2, T))

The set Q consists of the following terms:

   member_in_ag(x0)
   U8_ag(x0, x1, x2)

We have to consider all (P,Q,R)-chains.
----------------------------------------

(81) NonTerminationLoopProof (COMPLETE)
We used the non-termination processor [FROCOS05] to show that the DP problem is infinite.
Found a loop by narrowing to the left:

s = U6_AG(.(z0, z1), member_out_ag(z0, .(z0, z1))) evaluates to  t =U6_AG(.(z0, z1), member_out_ag(z0, .(z0, z1)))

Thus s starts an infinite chain as s semiunifies with t with the following substitutions:
* Matcher: [ ]
* Semiunifier: [ ]

--------------------------------------------------------------------------------
Rewriting sequence

U6_AG(.(z0, z1), member_out_ag(z0, .(z0, z1))) -> MEMBERS_IN_AG(.(z0, z1))
with rule U6_AG(.(z0', z1'), member_out_ag(z0', .(z0', z1'))) -> MEMBERS_IN_AG(.(z0', z1')) at position [] and matcher [z0' / z0, z1' / z1]

MEMBERS_IN_AG(.(z0, z1)) -> U6_AG(.(z0, z1), member_out_ag(z0, .(z0, z1)))
with rule MEMBERS_IN_AG(.(x0, x1)) -> U6_AG(.(x0, x1), member_out_ag(x0, .(x0, x1)))

Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence


All these steps are and every following step will be a correct step w.r.t to Q.




----------------------------------------

(82)
NO

----------------------------------------

(83)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   SELECT_IN_AGA(X, .(Y, Ys), .(Y, Zs)) -> SELECT_IN_AGA(X, Ys, Zs)

The TRS R consists of the following rules:

   color_map_in_ag(.(Region, Regions), Colors) -> U1_ag(Region, Regions, Colors, color_region_in_ag(Region, Colors))
   color_region_in_ag(region(Name, Color, Neighbors), Colors) -> U3_ag(Name, Color, Neighbors, Colors, select_in_aga(Color, Colors, Colors1))
   select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs)
   select_in_aga(X, .(Y, Ys), .(Y, Zs)) -> U5_aga(X, Y, Ys, Zs, select_in_aga(X, Ys, Zs))
   U5_aga(X, Y, Ys, Zs, select_out_aga(X, Ys, Zs)) -> select_out_aga(X, .(Y, Ys), .(Y, Zs))
   U3_ag(Name, Color, Neighbors, Colors, select_out_aga(Color, Colors, Colors1)) -> U4_ag(Name, Color, Neighbors, Colors, members_in_ag(Neighbors, Colors1))
   members_in_ag(.(X, Xs), Ys) -> U6_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(X, X1)) -> member_out_ag(X, .(X, X1))
   member_in_ag(X, .(X2, T)) -> U8_ag(X, X2, T, member_in_ag(X, T))
   U8_ag(X, X2, T, member_out_ag(X, T)) -> member_out_ag(X, .(X2, T))
   U6_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U7_ag(X, Xs, Ys, members_in_ag(Xs, Ys))
   members_in_ag([], Ys) -> members_out_ag([], Ys)
   U7_ag(X, Xs, Ys, members_out_ag(Xs, Ys)) -> members_out_ag(.(X, Xs), Ys)
   U4_ag(Name, Color, Neighbors, Colors, members_out_ag(Neighbors, Colors1)) -> color_region_out_ag(region(Name, Color, Neighbors), Colors)
   U1_ag(Region, Regions, Colors, color_region_out_ag(Region, Colors)) -> U2_ag(Region, Regions, Colors, color_map_in_ag(Regions, Colors))
   color_map_in_ag([], Colors) -> color_map_out_ag([], Colors)
   U2_ag(Region, Regions, Colors, color_map_out_ag(Regions, Colors)) -> color_map_out_ag(.(Region, Regions), Colors)

The argument filtering Pi contains the following mapping:
color_map_in_ag(x1, x2)  =  color_map_in_ag(x2)

U1_ag(x1, x2, x3, x4)  =  U1_ag(x3, x4)

color_region_in_ag(x1, x2)  =  color_region_in_ag(x2)

U3_ag(x1, x2, x3, x4, x5)  =  U3_ag(x4, x5)

select_in_aga(x1, x2, x3)  =  select_in_aga(x2)

.(x1, x2)  =  .(x1, x2)

select_out_aga(x1, x2, x3)  =  select_out_aga(x1, x2, x3)

U5_aga(x1, x2, x3, x4, x5)  =  U5_aga(x2, x3, x5)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x2, x4, x5)

members_in_ag(x1, x2)  =  members_in_ag(x2)

U6_ag(x1, x2, x3, x4)  =  U6_ag(x3, x4)

member_in_ag(x1, x2)  =  member_in_ag(x2)

member_out_ag(x1, x2)  =  member_out_ag(x1, x2)

U8_ag(x1, x2, x3, x4)  =  U8_ag(x2, x3, x4)

U7_ag(x1, x2, x3, x4)  =  U7_ag(x1, x3, x4)

members_out_ag(x1, x2)  =  members_out_ag(x1, x2)

color_region_out_ag(x1, x2)  =  color_region_out_ag(x1, x2)

region(x1, x2, x3)  =  region(x2, x3)

U2_ag(x1, x2, x3, x4)  =  U2_ag(x1, x3, x4)

color_map_out_ag(x1, x2)  =  color_map_out_ag(x1, x2)

SELECT_IN_AGA(x1, x2, x3)  =  SELECT_IN_AGA(x2)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(84) UsableRulesProof (EQUIVALENT)
For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.
----------------------------------------

(85)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   SELECT_IN_AGA(X, .(Y, Ys), .(Y, Zs)) -> SELECT_IN_AGA(X, Ys, Zs)

R is empty.
The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)

SELECT_IN_AGA(x1, x2, x3)  =  SELECT_IN_AGA(x2)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(86) PiDPToQDPProof (SOUND)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
----------------------------------------

(87)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   SELECT_IN_AGA(.(Y, Ys)) -> SELECT_IN_AGA(Ys)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.
----------------------------------------

(88) 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:
*SELECT_IN_AGA(.(Y, Ys)) -> SELECT_IN_AGA(Ys)
The graph contains the following edges 1 > 1


----------------------------------------

(89)
YES

----------------------------------------

(90)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   U1_AG(Region, Regions, Colors, color_region_out_ag(Region, Colors)) -> COLOR_MAP_IN_AG(Regions, Colors)
   COLOR_MAP_IN_AG(.(Region, Regions), Colors) -> U1_AG(Region, Regions, Colors, color_region_in_ag(Region, Colors))

The TRS R consists of the following rules:

   color_map_in_ag(.(Region, Regions), Colors) -> U1_ag(Region, Regions, Colors, color_region_in_ag(Region, Colors))
   color_region_in_ag(region(Name, Color, Neighbors), Colors) -> U3_ag(Name, Color, Neighbors, Colors, select_in_aga(Color, Colors, Colors1))
   select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs)
   select_in_aga(X, .(Y, Ys), .(Y, Zs)) -> U5_aga(X, Y, Ys, Zs, select_in_aga(X, Ys, Zs))
   U5_aga(X, Y, Ys, Zs, select_out_aga(X, Ys, Zs)) -> select_out_aga(X, .(Y, Ys), .(Y, Zs))
   U3_ag(Name, Color, Neighbors, Colors, select_out_aga(Color, Colors, Colors1)) -> U4_ag(Name, Color, Neighbors, Colors, members_in_ag(Neighbors, Colors1))
   members_in_ag(.(X, Xs), Ys) -> U6_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(X, X1)) -> member_out_ag(X, .(X, X1))
   member_in_ag(X, .(X2, T)) -> U8_ag(X, X2, T, member_in_ag(X, T))
   U8_ag(X, X2, T, member_out_ag(X, T)) -> member_out_ag(X, .(X2, T))
   U6_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U7_ag(X, Xs, Ys, members_in_ag(Xs, Ys))
   members_in_ag([], Ys) -> members_out_ag([], Ys)
   U7_ag(X, Xs, Ys, members_out_ag(Xs, Ys)) -> members_out_ag(.(X, Xs), Ys)
   U4_ag(Name, Color, Neighbors, Colors, members_out_ag(Neighbors, Colors1)) -> color_region_out_ag(region(Name, Color, Neighbors), Colors)
   U1_ag(Region, Regions, Colors, color_region_out_ag(Region, Colors)) -> U2_ag(Region, Regions, Colors, color_map_in_ag(Regions, Colors))
   color_map_in_ag([], Colors) -> color_map_out_ag([], Colors)
   U2_ag(Region, Regions, Colors, color_map_out_ag(Regions, Colors)) -> color_map_out_ag(.(Region, Regions), Colors)

The argument filtering Pi contains the following mapping:
color_map_in_ag(x1, x2)  =  color_map_in_ag(x2)

U1_ag(x1, x2, x3, x4)  =  U1_ag(x3, x4)

color_region_in_ag(x1, x2)  =  color_region_in_ag(x2)

U3_ag(x1, x2, x3, x4, x5)  =  U3_ag(x4, x5)

select_in_aga(x1, x2, x3)  =  select_in_aga(x2)

.(x1, x2)  =  .(x1, x2)

select_out_aga(x1, x2, x3)  =  select_out_aga(x1, x2, x3)

U5_aga(x1, x2, x3, x4, x5)  =  U5_aga(x2, x3, x5)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x2, x4, x5)

members_in_ag(x1, x2)  =  members_in_ag(x2)

U6_ag(x1, x2, x3, x4)  =  U6_ag(x3, x4)

member_in_ag(x1, x2)  =  member_in_ag(x2)

member_out_ag(x1, x2)  =  member_out_ag(x1, x2)

U8_ag(x1, x2, x3, x4)  =  U8_ag(x2, x3, x4)

U7_ag(x1, x2, x3, x4)  =  U7_ag(x1, x3, x4)

members_out_ag(x1, x2)  =  members_out_ag(x1, x2)

color_region_out_ag(x1, x2)  =  color_region_out_ag(x1, x2)

region(x1, x2, x3)  =  region(x2, x3)

U2_ag(x1, x2, x3, x4)  =  U2_ag(x1, x3, x4)

color_map_out_ag(x1, x2)  =  color_map_out_ag(x1, x2)

COLOR_MAP_IN_AG(x1, x2)  =  COLOR_MAP_IN_AG(x2)

U1_AG(x1, x2, x3, x4)  =  U1_AG(x3, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(91) UsableRulesProof (EQUIVALENT)
For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.
----------------------------------------

(92)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   U1_AG(Region, Regions, Colors, color_region_out_ag(Region, Colors)) -> COLOR_MAP_IN_AG(Regions, Colors)
   COLOR_MAP_IN_AG(.(Region, Regions), Colors) -> U1_AG(Region, Regions, Colors, color_region_in_ag(Region, Colors))

The TRS R consists of the following rules:

   color_region_in_ag(region(Name, Color, Neighbors), Colors) -> U3_ag(Name, Color, Neighbors, Colors, select_in_aga(Color, Colors, Colors1))
   U3_ag(Name, Color, Neighbors, Colors, select_out_aga(Color, Colors, Colors1)) -> U4_ag(Name, Color, Neighbors, Colors, members_in_ag(Neighbors, Colors1))
   select_in_aga(X, .(X, Xs), Xs) -> select_out_aga(X, .(X, Xs), Xs)
   select_in_aga(X, .(Y, Ys), .(Y, Zs)) -> U5_aga(X, Y, Ys, Zs, select_in_aga(X, Ys, Zs))
   U4_ag(Name, Color, Neighbors, Colors, members_out_ag(Neighbors, Colors1)) -> color_region_out_ag(region(Name, Color, Neighbors), Colors)
   U5_aga(X, Y, Ys, Zs, select_out_aga(X, Ys, Zs)) -> select_out_aga(X, .(Y, Ys), .(Y, Zs))
   members_in_ag(.(X, Xs), Ys) -> U6_ag(X, Xs, Ys, member_in_ag(X, Ys))
   members_in_ag([], Ys) -> members_out_ag([], Ys)
   U6_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U7_ag(X, Xs, Ys, members_in_ag(Xs, Ys))
   member_in_ag(X, .(X, X1)) -> member_out_ag(X, .(X, X1))
   member_in_ag(X, .(X2, T)) -> U8_ag(X, X2, T, member_in_ag(X, T))
   U7_ag(X, Xs, Ys, members_out_ag(Xs, Ys)) -> members_out_ag(.(X, Xs), Ys)
   U8_ag(X, X2, T, member_out_ag(X, T)) -> member_out_ag(X, .(X2, T))

The argument filtering Pi contains the following mapping:
color_region_in_ag(x1, x2)  =  color_region_in_ag(x2)

U3_ag(x1, x2, x3, x4, x5)  =  U3_ag(x4, x5)

select_in_aga(x1, x2, x3)  =  select_in_aga(x2)

.(x1, x2)  =  .(x1, x2)

select_out_aga(x1, x2, x3)  =  select_out_aga(x1, x2, x3)

U5_aga(x1, x2, x3, x4, x5)  =  U5_aga(x2, x3, x5)

U4_ag(x1, x2, x3, x4, x5)  =  U4_ag(x2, x4, x5)

members_in_ag(x1, x2)  =  members_in_ag(x2)

U6_ag(x1, x2, x3, x4)  =  U6_ag(x3, x4)

member_in_ag(x1, x2)  =  member_in_ag(x2)

member_out_ag(x1, x2)  =  member_out_ag(x1, x2)

U8_ag(x1, x2, x3, x4)  =  U8_ag(x2, x3, x4)

U7_ag(x1, x2, x3, x4)  =  U7_ag(x1, x3, x4)

members_out_ag(x1, x2)  =  members_out_ag(x1, x2)

color_region_out_ag(x1, x2)  =  color_region_out_ag(x1, x2)

region(x1, x2, x3)  =  region(x2, x3)

COLOR_MAP_IN_AG(x1, x2)  =  COLOR_MAP_IN_AG(x2)

U1_AG(x1, x2, x3, x4)  =  U1_AG(x3, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(93) PiDPToQDPProof (SOUND)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
----------------------------------------

(94)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   U1_AG(Colors, color_region_out_ag(Region, Colors)) -> COLOR_MAP_IN_AG(Colors)
   COLOR_MAP_IN_AG(Colors) -> U1_AG(Colors, color_region_in_ag(Colors))

The TRS R consists of the following rules:

   color_region_in_ag(Colors) -> U3_ag(Colors, select_in_aga(Colors))
   U3_ag(Colors, select_out_aga(Color, Colors, Colors1)) -> U4_ag(Color, Colors, members_in_ag(Colors1))
   select_in_aga(.(X, Xs)) -> select_out_aga(X, .(X, Xs), Xs)
   select_in_aga(.(Y, Ys)) -> U5_aga(Y, Ys, select_in_aga(Ys))
   U4_ag(Color, Colors, members_out_ag(Neighbors, Colors1)) -> color_region_out_ag(region(Color, Neighbors), Colors)
   U5_aga(Y, Ys, select_out_aga(X, Ys, Zs)) -> select_out_aga(X, .(Y, Ys), .(Y, Zs))
   members_in_ag(Ys) -> U6_ag(Ys, member_in_ag(Ys))
   members_in_ag(Ys) -> members_out_ag([], Ys)
   U6_ag(Ys, member_out_ag(X, Ys)) -> U7_ag(X, Ys, members_in_ag(Ys))
   member_in_ag(.(X, X1)) -> member_out_ag(X, .(X, X1))
   member_in_ag(.(X2, T)) -> U8_ag(X2, T, member_in_ag(T))
   U7_ag(X, Ys, members_out_ag(Xs, Ys)) -> members_out_ag(.(X, Xs), Ys)
   U8_ag(X2, T, member_out_ag(X, T)) -> member_out_ag(X, .(X2, T))

The set Q consists of the following terms:

   color_region_in_ag(x0)
   U3_ag(x0, x1)
   select_in_aga(x0)
   U4_ag(x0, x1, x2)
   U5_aga(x0, x1, x2)
   members_in_ag(x0)
   U6_ag(x0, x1)
   member_in_ag(x0)
   U7_ag(x0, x1, x2)
   U8_ag(x0, x1, x2)

We have to consider all (P,Q,R)-chains.
----------------------------------------

(95) PrologToDTProblemTransformerProof (SOUND)
Built DT problem from termination graph DT10.

{
    "root": 5,
    "program": {
        "directives": [],
        "clauses": [
            [
                "(color_map (. Region Regions) Colors)",
                "(',' (color_region Region Colors) (color_map Regions Colors))"
            ],
            [
                "(color_map ([]) Colors)",
                null
            ],
            [
                "(color_region (region Name Color Neighbors) Colors)",
                "(',' (select Color Colors Colors1) (members Neighbors Colors1))"
            ],
            [
                "(select X (. X Xs) Xs)",
                null
            ],
            [
                "(select X (. Y Ys) (. Y Zs))",
                "(select X Ys Zs)"
            ],
            [
                "(members (. X Xs) Ys)",
                "(',' (member X Ys) (members Xs Ys))"
            ],
            [
                "(members ([]) Ys)",
                null
            ],
            [
                "(member X (. X X1))",
                null
            ],
            [
                "(member X (. X2 T))",
                "(member X T)"
            ],
            [
                "(test_color Name Map)",
                "(',' (map Name Map) (',' (colors Name Colors) (color_map Map Colors)))"
            ],
            [
                "(map (test) (. (region (a) A (. B (. C (. D ([]))))) (. (region (b) B (. A (. C (. E ([]))))) (. (region (c) C (. A (. B (. D (. E (. F ([]))))))) (. (region (d) D (. A (. C (. F ([]))))) (. (region (e) E (. B (. C (. F ([]))))) (. (region (f) F (. C (. D (. E ([]))))) ([]))))))))",
                null
            ],
            [
                "(map (west_europe) (. (region (portugal) P (. E ([]))) (. (region (spain) E (. F (. P ([])))) (. (region (france) F (. E (. I (. S (. B (. WG (. L ([])))))))) (. (region (belgium) B (. F (. H (. L (. WG ([])))))) (. (region (holland) H (. B (. WG ([])))) (. (region (west_germany) WG (. F (. A (. S (. H (. B (. L ([])))))))) (. (region (luxembourg) L (. F (. B (. WG ([]))))) (. (region (italy) I (. F (. A (. S ([]))))) (. (region (switzerland) S (. F (. I (. A (. WG ([])))))) (. (region (austria) A (. I (. S (. WG ([]))))) ([]))))))))))))",
                null
            ],
            [
                "(colors X (. (red) (. (yellow) (. (blue) (. (white) ([]))))))",
                null
            ]
        ]
    },
    "graph": {
        "nodes": {
            "66": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "88": {
                "goal": [{
                    "clause": 7,
                    "scope": 5,
                    "term": "(member T91 T90)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T90"],
                    "free": [],
                    "exprvars": []
                }
            },
            "89": {
                "goal": [{
                    "clause": 8,
                    "scope": 5,
                    "term": "(member T91 T90)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T90"],
                    "free": [],
                    "exprvars": []
                }
            },
            "type": "Nodes",
            "110": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "111": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "113": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "115": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "116": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "70": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(members T39 T38)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T38"],
                    "free": [],
                    "exprvars": []
                }
            },
            "71": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(color_map T72 T30)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T30"],
                    "free": [],
                    "exprvars": []
                }
            },
            "93": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "94": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "73": {
                "goal": [
                    {
                        "clause": 5,
                        "scope": 4,
                        "term": "(members T39 T38)"
                    },
                    {
                        "clause": 6,
                        "scope": 4,
                        "term": "(members T39 T38)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T38"],
                    "free": [],
                    "exprvars": []
                }
            },
            "95": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "10": {
                "goal": [{
                    "clause": 2,
                    "scope": 2,
                    "term": "(',' (color_region T9 T8) (color_map T10 T8))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T8"],
                    "free": [],
                    "exprvars": []
                }
            },
            "54": {
                "goal": [
                    {
                        "clause": 3,
                        "scope": 3,
                        "term": "(select T31 T30 X31)"
                    },
                    {
                        "clause": 4,
                        "scope": 3,
                        "term": "(select T31 T30 X31)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T30"],
                    "free": ["X31"],
                    "exprvars": []
                }
            },
            "76": {
                "goal": [{
                    "clause": 5,
                    "scope": 4,
                    "term": "(members T39 T38)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T38"],
                    "free": [],
                    "exprvars": []
                }
            },
            "11": {
                "goal": [
                    {
                        "clause": -1,
                        "scope": 2,
                        "term": null
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(color_map T1 T8)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T8"],
                    "free": [],
                    "exprvars": []
                }
            },
            "55": {
                "goal": [{
                    "clause": 3,
                    "scope": 3,
                    "term": "(select T31 T30 X31)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T30"],
                    "free": ["X31"],
                    "exprvars": []
                }
            },
            "77": {
                "goal": [{
                    "clause": 6,
                    "scope": 4,
                    "term": "(members T39 T38)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T38"],
                    "free": [],
                    "exprvars": []
                }
            },
            "99": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(member T121 T120)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T120"],
                    "free": [],
                    "exprvars": []
                }
            },
            "12": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (',' (select T31 T30 X31) (members T32 X31)) (color_map T33 T30))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T30"],
                    "free": ["X31"],
                    "exprvars": []
                }
            },
            "56": {
                "goal": [{
                    "clause": 4,
                    "scope": 3,
                    "term": "(select T31 T30 X31)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T30"],
                    "free": ["X31"],
                    "exprvars": []
                }
            },
            "13": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "14": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(select T31 T30 X31)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T30"],
                    "free": ["X31"],
                    "exprvars": []
                }
            },
            "58": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "15": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (members T39 T38) (color_map T40 T30))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T30",
                        "T38"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "59": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "100": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "101": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "102": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "103": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "5": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(color_map T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "6": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 1,
                        "term": "(color_map T1 T2)"
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(color_map T1 T2)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "7": {
                "goal": [
                    {
                        "clause": -1,
                        "scope": -1,
                        "term": "(',' (color_region T9 T8) (color_map T10 T8))"
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(color_map T1 T8)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T8"],
                    "free": [],
                    "exprvars": []
                }
            },
            "106": {
                "goal": [{
                    "clause": 1,
                    "scope": 1,
                    "term": "(color_map T1 T8)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T8"],
                    "free": [],
                    "exprvars": []
                }
            },
            "8": {
                "goal": [{
                    "clause": 1,
                    "scope": 1,
                    "term": "(color_map T1 T2)"
                }],
                "kb": {
                    "nonunifying": [[
                        "(color_map T1 T2)",
                        "(color_map (. X6 X7) X8)"
                    ]],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [
                        "X6",
                        "X7",
                        "X8"
                    ],
                    "exprvars": []
                }
            },
            "9": {
                "goal": [
                    {
                        "clause": 2,
                        "scope": 2,
                        "term": "(',' (color_region T9 T8) (color_map T10 T8))"
                    },
                    {
                        "clause": -1,
                        "scope": 2,
                        "term": null
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(color_map T1 T8)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T8"],
                    "free": [],
                    "exprvars": []
                }
            },
            "81": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (member T91 T90) (members T92 T90))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T90"],
                    "free": [],
                    "exprvars": []
                }
            },
            "82": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "109": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "61": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "85": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(member T91 T90)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T90"],
                    "free": [],
                    "exprvars": []
                }
            },
            "64": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(select T64 T63 X64)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T63"],
                    "free": ["X64"],
                    "exprvars": []
                }
            },
            "86": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(members T97 T90)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T90"],
                    "free": [],
                    "exprvars": []
                }
            },
            "87": {
                "goal": [
                    {
                        "clause": 7,
                        "scope": 5,
                        "term": "(member T91 T90)"
                    },
                    {
                        "clause": 8,
                        "scope": 5,
                        "term": "(member T91 T90)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T90"],
                    "free": [],
                    "exprvars": []
                }
            }
        },
        "edges": [
            {
                "from": 5,
                "to": 6,
                "label": "CASE"
            },
            {
                "from": 6,
                "to": 7,
                "label": "EVAL with clause\ncolor_map(.(X6, X7), X8) :- ','(color_region(X6, X8), color_map(X7, X8)).\nand substitutionX6 -> T9,\nX7 -> T10,\nT1 -> .(T9, T10),\nT2 -> T8,\nX8 -> T8,\nT6 -> T9,\nT7 -> T10"
            },
            {
                "from": 6,
                "to": 8,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 7,
                "to": 9,
                "label": "CASE"
            },
            {
                "from": 8,
                "to": 113,
                "label": "EVAL with clause\ncolor_map([], X134).\nand substitutionT1 -> [],\nT2 -> T139,\nX134 -> T139"
            },
            {
                "from": 8,
                "to": 115,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 9,
                "to": 10,
                "label": "PARALLEL"
            },
            {
                "from": 9,
                "to": 11,
                "label": "PARALLEL"
            },
            {
                "from": 10,
                "to": 12,
                "label": "EVAL with clause\ncolor_region(region(X27, X28, X29), X30) :- ','(select(X28, X30, X31), members(X29, X31)).\nand substitutionX27 -> T27,\nX28 -> T31,\nX29 -> T32,\nT9 -> region(T27, T31, T32),\nT8 -> T30,\nX30 -> T30,\nT28 -> T31,\nT29 -> T32,\nT10 -> T33"
            },
            {
                "from": 10,
                "to": 13,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 11,
                "to": 106,
                "label": "FAILURE"
            },
            {
                "from": 12,
                "to": 14,
                "label": "SPLIT 1"
            },
            {
                "from": 12,
                "to": 15,
                "label": "SPLIT 2\nnew knowledge:\nT31 is ground\nT30 is ground\nT38 is ground\nreplacements:X31 -> T38,\nT32 -> T39,\nT33 -> T40"
            },
            {
                "from": 14,
                "to": 54,
                "label": "CASE"
            },
            {
                "from": 15,
                "to": 70,
                "label": "SPLIT 1"
            },
            {
                "from": 15,
                "to": 71,
                "label": "SPLIT 2\nnew knowledge:\nT39 is ground\nT38 is ground\nreplacements:T40 -> T72"
            },
            {
                "from": 54,
                "to": 55,
                "label": "PARALLEL"
            },
            {
                "from": 54,
                "to": 56,
                "label": "PARALLEL"
            },
            {
                "from": 55,
                "to": 58,
                "label": "EVAL with clause\nselect(X48, .(X48, X49), X49).\nand substitutionT31 -> T53,\nX48 -> T53,\nX49 -> T54,\nT30 -> .(T53, T54),\nX31 -> T54"
            },
            {
                "from": 55,
                "to": 59,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 56,
                "to": 64,
                "label": "EVAL with clause\nselect(X60, .(X61, X62), .(X61, X63)) :- select(X60, X62, X63).\nand substitutionT31 -> T64,\nX60 -> T64,\nX61 -> T62,\nX62 -> T63,\nT30 -> .(T62, T63),\nX63 -> X64,\nX31 -> .(T62, X64),\nT61 -> T64"
            },
            {
                "from": 56,
                "to": 66,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 58,
                "to": 61,
                "label": "SUCCESS"
            },
            {
                "from": 64,
                "to": 14,
                "label": "INSTANCE with matching:\nT31 -> T64\nT30 -> T63\nX31 -> X64"
            },
            {
                "from": 70,
                "to": 73,
                "label": "CASE"
            },
            {
                "from": 71,
                "to": 5,
                "label": "INSTANCE with matching:\nT1 -> T72\nT2 -> T30"
            },
            {
                "from": 73,
                "to": 76,
                "label": "PARALLEL"
            },
            {
                "from": 73,
                "to": 77,
                "label": "PARALLEL"
            },
            {
                "from": 76,
                "to": 81,
                "label": "EVAL with clause\nmembers(.(X87, X88), X89) :- ','(member(X87, X89), members(X88, X89)).\nand substitutionX87 -> T91,\nX88 -> T92,\nT39 -> .(T91, T92),\nT38 -> T90,\nX89 -> T90,\nT88 -> T91,\nT89 -> T92"
            },
            {
                "from": 76,
                "to": 82,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 77,
                "to": 101,
                "label": "EVAL with clause\nmembers([], X126).\nand substitutionT39 -> [],\nT38 -> T131,\nX126 -> T131"
            },
            {
                "from": 77,
                "to": 102,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 81,
                "to": 85,
                "label": "SPLIT 1"
            },
            {
                "from": 81,
                "to": 86,
                "label": "SPLIT 2\nnew knowledge:\nT91 is ground\nT90 is ground\nreplacements:T92 -> T97"
            },
            {
                "from": 85,
                "to": 87,
                "label": "CASE"
            },
            {
                "from": 86,
                "to": 70,
                "label": "INSTANCE with matching:\nT39 -> T97\nT38 -> T90"
            },
            {
                "from": 87,
                "to": 88,
                "label": "PARALLEL"
            },
            {
                "from": 87,
                "to": 89,
                "label": "PARALLEL"
            },
            {
                "from": 88,
                "to": 93,
                "label": "EVAL with clause\nmember(X106, .(X106, X107)).\nand substitutionT91 -> T110,\nX106 -> T110,\nX107 -> T111,\nT90 -> .(T110, T111)"
            },
            {
                "from": 88,
                "to": 94,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 89,
                "to": 99,
                "label": "EVAL with clause\nmember(X114, .(X115, X116)) :- member(X114, X116).\nand substitutionT91 -> T121,\nX114 -> T121,\nX115 -> T119,\nX116 -> T120,\nT90 -> .(T119, T120),\nT118 -> T121"
            },
            {
                "from": 89,
                "to": 100,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 93,
                "to": 95,
                "label": "SUCCESS"
            },
            {
                "from": 99,
                "to": 85,
                "label": "INSTANCE with matching:\nT91 -> T121\nT90 -> T120"
            },
            {
                "from": 101,
                "to": 103,
                "label": "SUCCESS"
            },
            {
                "from": 106,
                "to": 109,
                "label": "EVAL with clause\ncolor_map([], X132).\nand substitutionT1 -> [],\nT8 -> T137,\nX132 -> T137"
            },
            {
                "from": 106,
                "to": 110,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 109,
                "to": 111,
                "label": "SUCCESS"
            },
            {
                "from": 113,
                "to": 116,
                "label": "SUCCESS"
            }
        ],
        "type": "Graph"
    }
}

----------------------------------------

(96)
Obligation:
Triples:

selectA(X1, .(X2, X3), .(X2, X4)) :- selectA(X1, X3, X4).
membersC(.(X1, X2), X3) :- memberD(X1, X3).
membersC(.(X1, X2), X3) :- ','(membercD(X1, X3), membersC(X2, X3)).
memberD(X1, .(X2, X3)) :- memberD(X1, X3).
color_mapB(.(region(X1, X2, X3), X4), X5) :- selectA(X2, X5, X6).
color_mapB(.(region(X1, X2, X3), X4), X5) :- ','(selectcA(X2, X5, X6), membersC(X3, X6)).
color_mapB(.(region(X1, X2, X3), X4), X5) :- ','(selectcA(X2, X5, X6), ','(memberscC(X3, X6), color_mapB(X4, X5))).

Clauses:

selectcA(X1, .(X1, X2), X2).
selectcA(X1, .(X2, X3), .(X2, X4)) :- selectcA(X1, X3, X4).
color_mapcB(.(region(X1, X2, X3), X4), X5) :- ','(selectcA(X2, X5, X6), ','(memberscC(X3, X6), color_mapcB(X4, X5))).
color_mapcB([], X1).
color_mapcB([], X1).
memberscC(.(X1, X2), X3) :- ','(membercD(X1, X3), memberscC(X2, X3)).
memberscC([], X1).
membercD(X1, .(X1, X2)).
membercD(X1, .(X2, X3)) :- membercD(X1, X3).

Afs:

color_mapB(x1, x2)  =  color_mapB(x2)


----------------------------------------

(97) TriplesToPiDPProof (SOUND)
We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes:

color_mapB_in_2: (f,b)

selectA_in_3: (f,b,f)

selectcA_in_3: (f,b,f)

membersC_in_2: (f,b)

memberD_in_2: (f,b)

membercD_in_2: (f,b)

memberscC_in_2: (f,b)

Transforming TRIPLES into the following Term Rewriting System:

Pi DP problem:
The TRS P consists of the following rules:

   COLOR_MAPB_IN_AG(.(region(X1, X2, X3), X4), X5) -> U6_AG(X1, X2, X3, X4, X5, selectA_in_aga(X2, X5, X6))
   COLOR_MAPB_IN_AG(.(region(X1, X2, X3), X4), X5) -> SELECTA_IN_AGA(X2, X5, X6)
   SELECTA_IN_AGA(X1, .(X2, X3), .(X2, X4)) -> U1_AGA(X1, X2, X3, X4, selectA_in_aga(X1, X3, X4))
   SELECTA_IN_AGA(X1, .(X2, X3), .(X2, X4)) -> SELECTA_IN_AGA(X1, X3, X4)
   COLOR_MAPB_IN_AG(.(region(X1, X2, X3), X4), X5) -> U7_AG(X1, X2, X3, X4, X5, selectcA_in_aga(X2, X5, X6))
   U7_AG(X1, X2, X3, X4, X5, selectcA_out_aga(X2, X5, X6)) -> U8_AG(X1, X2, X3, X4, X5, membersC_in_ag(X3, X6))
   U7_AG(X1, X2, X3, X4, X5, selectcA_out_aga(X2, X5, X6)) -> MEMBERSC_IN_AG(X3, X6)
   MEMBERSC_IN_AG(.(X1, X2), X3) -> U2_AG(X1, X2, X3, memberD_in_ag(X1, X3))
   MEMBERSC_IN_AG(.(X1, X2), X3) -> MEMBERD_IN_AG(X1, X3)
   MEMBERD_IN_AG(X1, .(X2, X3)) -> U5_AG(X1, X2, X3, memberD_in_ag(X1, X3))
   MEMBERD_IN_AG(X1, .(X2, X3)) -> MEMBERD_IN_AG(X1, X3)
   MEMBERSC_IN_AG(.(X1, X2), X3) -> U3_AG(X1, X2, X3, membercD_in_ag(X1, X3))
   U3_AG(X1, X2, X3, membercD_out_ag(X1, X3)) -> U4_AG(X1, X2, X3, membersC_in_ag(X2, X3))
   U3_AG(X1, X2, X3, membercD_out_ag(X1, X3)) -> MEMBERSC_IN_AG(X2, X3)
   U7_AG(X1, X2, X3, X4, X5, selectcA_out_aga(X2, X5, X6)) -> U9_AG(X1, X2, X3, X4, X5, memberscC_in_ag(X3, X6))
   U9_AG(X1, X2, X3, X4, X5, memberscC_out_ag(X3, X6)) -> U10_AG(X1, X2, X3, X4, X5, color_mapB_in_ag(X4, X5))
   U9_AG(X1, X2, X3, X4, X5, memberscC_out_ag(X3, X6)) -> COLOR_MAPB_IN_AG(X4, X5)

The TRS R consists of the following rules:

   selectcA_in_aga(X1, .(X1, X2), X2) -> selectcA_out_aga(X1, .(X1, X2), X2)
   selectcA_in_aga(X1, .(X2, X3), .(X2, X4)) -> U12_aga(X1, X2, X3, X4, selectcA_in_aga(X1, X3, X4))
   U12_aga(X1, X2, X3, X4, selectcA_out_aga(X1, X3, X4)) -> selectcA_out_aga(X1, .(X2, X3), .(X2, X4))
   membercD_in_ag(X1, .(X1, X2)) -> membercD_out_ag(X1, .(X1, X2))
   membercD_in_ag(X1, .(X2, X3)) -> U18_ag(X1, X2, X3, membercD_in_ag(X1, X3))
   U18_ag(X1, X2, X3, membercD_out_ag(X1, X3)) -> membercD_out_ag(X1, .(X2, X3))
   memberscC_in_ag(.(X1, X2), X3) -> U16_ag(X1, X2, X3, membercD_in_ag(X1, X3))
   U16_ag(X1, X2, X3, membercD_out_ag(X1, X3)) -> U17_ag(X1, X2, X3, memberscC_in_ag(X2, X3))
   memberscC_in_ag([], X1) -> memberscC_out_ag([], X1)
   U17_ag(X1, X2, X3, memberscC_out_ag(X2, X3)) -> memberscC_out_ag(.(X1, X2), X3)

The argument filtering Pi contains the following mapping:
color_mapB_in_ag(x1, x2)  =  color_mapB_in_ag(x2)

selectA_in_aga(x1, x2, x3)  =  selectA_in_aga(x2)

.(x1, x2)  =  .(x1, x2)

region(x1, x2, x3)  =  region(x2, x3)

selectcA_in_aga(x1, x2, x3)  =  selectcA_in_aga(x2)

selectcA_out_aga(x1, x2, x3)  =  selectcA_out_aga(x1, x2, x3)

U12_aga(x1, x2, x3, x4, x5)  =  U12_aga(x2, x3, x5)

membersC_in_ag(x1, x2)  =  membersC_in_ag(x2)

memberD_in_ag(x1, x2)  =  memberD_in_ag(x2)

membercD_in_ag(x1, x2)  =  membercD_in_ag(x2)

membercD_out_ag(x1, x2)  =  membercD_out_ag(x1, x2)

U18_ag(x1, x2, x3, x4)  =  U18_ag(x2, x3, x4)

memberscC_in_ag(x1, x2)  =  memberscC_in_ag(x2)

U16_ag(x1, x2, x3, x4)  =  U16_ag(x3, x4)

U17_ag(x1, x2, x3, x4)  =  U17_ag(x1, x3, x4)

memberscC_out_ag(x1, x2)  =  memberscC_out_ag(x1, x2)

COLOR_MAPB_IN_AG(x1, x2)  =  COLOR_MAPB_IN_AG(x2)

U6_AG(x1, x2, x3, x4, x5, x6)  =  U6_AG(x5, x6)

SELECTA_IN_AGA(x1, x2, x3)  =  SELECTA_IN_AGA(x2)

U1_AGA(x1, x2, x3, x4, x5)  =  U1_AGA(x2, x3, x5)

U7_AG(x1, x2, x3, x4, x5, x6)  =  U7_AG(x5, x6)

U8_AG(x1, x2, x3, x4, x5, x6)  =  U8_AG(x5, x6)

MEMBERSC_IN_AG(x1, x2)  =  MEMBERSC_IN_AG(x2)

U2_AG(x1, x2, x3, x4)  =  U2_AG(x3, x4)

MEMBERD_IN_AG(x1, x2)  =  MEMBERD_IN_AG(x2)

U5_AG(x1, x2, x3, x4)  =  U5_AG(x2, x3, x4)

U3_AG(x1, x2, x3, x4)  =  U3_AG(x3, x4)

U4_AG(x1, x2, x3, x4)  =  U4_AG(x3, x4)

U9_AG(x1, x2, x3, x4, x5, x6)  =  U9_AG(x5, x6)

U10_AG(x1, x2, x3, x4, x5, x6)  =  U10_AG(x5, x6)


We have to consider all (P,R,Pi)-chains


Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES



----------------------------------------

(98)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   COLOR_MAPB_IN_AG(.(region(X1, X2, X3), X4), X5) -> U6_AG(X1, X2, X3, X4, X5, selectA_in_aga(X2, X5, X6))
   COLOR_MAPB_IN_AG(.(region(X1, X2, X3), X4), X5) -> SELECTA_IN_AGA(X2, X5, X6)
   SELECTA_IN_AGA(X1, .(X2, X3), .(X2, X4)) -> U1_AGA(X1, X2, X3, X4, selectA_in_aga(X1, X3, X4))
   SELECTA_IN_AGA(X1, .(X2, X3), .(X2, X4)) -> SELECTA_IN_AGA(X1, X3, X4)
   COLOR_MAPB_IN_AG(.(region(X1, X2, X3), X4), X5) -> U7_AG(X1, X2, X3, X4, X5, selectcA_in_aga(X2, X5, X6))
   U7_AG(X1, X2, X3, X4, X5, selectcA_out_aga(X2, X5, X6)) -> U8_AG(X1, X2, X3, X4, X5, membersC_in_ag(X3, X6))
   U7_AG(X1, X2, X3, X4, X5, selectcA_out_aga(X2, X5, X6)) -> MEMBERSC_IN_AG(X3, X6)
   MEMBERSC_IN_AG(.(X1, X2), X3) -> U2_AG(X1, X2, X3, memberD_in_ag(X1, X3))
   MEMBERSC_IN_AG(.(X1, X2), X3) -> MEMBERD_IN_AG(X1, X3)
   MEMBERD_IN_AG(X1, .(X2, X3)) -> U5_AG(X1, X2, X3, memberD_in_ag(X1, X3))
   MEMBERD_IN_AG(X1, .(X2, X3)) -> MEMBERD_IN_AG(X1, X3)
   MEMBERSC_IN_AG(.(X1, X2), X3) -> U3_AG(X1, X2, X3, membercD_in_ag(X1, X3))
   U3_AG(X1, X2, X3, membercD_out_ag(X1, X3)) -> U4_AG(X1, X2, X3, membersC_in_ag(X2, X3))
   U3_AG(X1, X2, X3, membercD_out_ag(X1, X3)) -> MEMBERSC_IN_AG(X2, X3)
   U7_AG(X1, X2, X3, X4, X5, selectcA_out_aga(X2, X5, X6)) -> U9_AG(X1, X2, X3, X4, X5, memberscC_in_ag(X3, X6))
   U9_AG(X1, X2, X3, X4, X5, memberscC_out_ag(X3, X6)) -> U10_AG(X1, X2, X3, X4, X5, color_mapB_in_ag(X4, X5))
   U9_AG(X1, X2, X3, X4, X5, memberscC_out_ag(X3, X6)) -> COLOR_MAPB_IN_AG(X4, X5)

The TRS R consists of the following rules:

   selectcA_in_aga(X1, .(X1, X2), X2) -> selectcA_out_aga(X1, .(X1, X2), X2)
   selectcA_in_aga(X1, .(X2, X3), .(X2, X4)) -> U12_aga(X1, X2, X3, X4, selectcA_in_aga(X1, X3, X4))
   U12_aga(X1, X2, X3, X4, selectcA_out_aga(X1, X3, X4)) -> selectcA_out_aga(X1, .(X2, X3), .(X2, X4))
   membercD_in_ag(X1, .(X1, X2)) -> membercD_out_ag(X1, .(X1, X2))
   membercD_in_ag(X1, .(X2, X3)) -> U18_ag(X1, X2, X3, membercD_in_ag(X1, X3))
   U18_ag(X1, X2, X3, membercD_out_ag(X1, X3)) -> membercD_out_ag(X1, .(X2, X3))
   memberscC_in_ag(.(X1, X2), X3) -> U16_ag(X1, X2, X3, membercD_in_ag(X1, X3))
   U16_ag(X1, X2, X3, membercD_out_ag(X1, X3)) -> U17_ag(X1, X2, X3, memberscC_in_ag(X2, X3))
   memberscC_in_ag([], X1) -> memberscC_out_ag([], X1)
   U17_ag(X1, X2, X3, memberscC_out_ag(X2, X3)) -> memberscC_out_ag(.(X1, X2), X3)

The argument filtering Pi contains the following mapping:
color_mapB_in_ag(x1, x2)  =  color_mapB_in_ag(x2)

selectA_in_aga(x1, x2, x3)  =  selectA_in_aga(x2)

.(x1, x2)  =  .(x1, x2)

region(x1, x2, x3)  =  region(x2, x3)

selectcA_in_aga(x1, x2, x3)  =  selectcA_in_aga(x2)

selectcA_out_aga(x1, x2, x3)  =  selectcA_out_aga(x1, x2, x3)

U12_aga(x1, x2, x3, x4, x5)  =  U12_aga(x2, x3, x5)

membersC_in_ag(x1, x2)  =  membersC_in_ag(x2)

memberD_in_ag(x1, x2)  =  memberD_in_ag(x2)

membercD_in_ag(x1, x2)  =  membercD_in_ag(x2)

membercD_out_ag(x1, x2)  =  membercD_out_ag(x1, x2)

U18_ag(x1, x2, x3, x4)  =  U18_ag(x2, x3, x4)

memberscC_in_ag(x1, x2)  =  memberscC_in_ag(x2)

U16_ag(x1, x2, x3, x4)  =  U16_ag(x3, x4)

U17_ag(x1, x2, x3, x4)  =  U17_ag(x1, x3, x4)

memberscC_out_ag(x1, x2)  =  memberscC_out_ag(x1, x2)

COLOR_MAPB_IN_AG(x1, x2)  =  COLOR_MAPB_IN_AG(x2)

U6_AG(x1, x2, x3, x4, x5, x6)  =  U6_AG(x5, x6)

SELECTA_IN_AGA(x1, x2, x3)  =  SELECTA_IN_AGA(x2)

U1_AGA(x1, x2, x3, x4, x5)  =  U1_AGA(x2, x3, x5)

U7_AG(x1, x2, x3, x4, x5, x6)  =  U7_AG(x5, x6)

U8_AG(x1, x2, x3, x4, x5, x6)  =  U8_AG(x5, x6)

MEMBERSC_IN_AG(x1, x2)  =  MEMBERSC_IN_AG(x2)

U2_AG(x1, x2, x3, x4)  =  U2_AG(x3, x4)

MEMBERD_IN_AG(x1, x2)  =  MEMBERD_IN_AG(x2)

U5_AG(x1, x2, x3, x4)  =  U5_AG(x2, x3, x4)

U3_AG(x1, x2, x3, x4)  =  U3_AG(x3, x4)

U4_AG(x1, x2, x3, x4)  =  U4_AG(x3, x4)

U9_AG(x1, x2, x3, x4, x5, x6)  =  U9_AG(x5, x6)

U10_AG(x1, x2, x3, x4, x5, x6)  =  U10_AG(x5, x6)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(99) DependencyGraphProof (EQUIVALENT)
The approximation of the Dependency Graph [LOPSTR] contains 4 SCCs with 10 less nodes.
----------------------------------------

(100)
Complex Obligation (AND)

----------------------------------------

(101)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   MEMBERD_IN_AG(X1, .(X2, X3)) -> MEMBERD_IN_AG(X1, X3)

The TRS R consists of the following rules:

   selectcA_in_aga(X1, .(X1, X2), X2) -> selectcA_out_aga(X1, .(X1, X2), X2)
   selectcA_in_aga(X1, .(X2, X3), .(X2, X4)) -> U12_aga(X1, X2, X3, X4, selectcA_in_aga(X1, X3, X4))
   U12_aga(X1, X2, X3, X4, selectcA_out_aga(X1, X3, X4)) -> selectcA_out_aga(X1, .(X2, X3), .(X2, X4))
   membercD_in_ag(X1, .(X1, X2)) -> membercD_out_ag(X1, .(X1, X2))
   membercD_in_ag(X1, .(X2, X3)) -> U18_ag(X1, X2, X3, membercD_in_ag(X1, X3))
   U18_ag(X1, X2, X3, membercD_out_ag(X1, X3)) -> membercD_out_ag(X1, .(X2, X3))
   memberscC_in_ag(.(X1, X2), X3) -> U16_ag(X1, X2, X3, membercD_in_ag(X1, X3))
   U16_ag(X1, X2, X3, membercD_out_ag(X1, X3)) -> U17_ag(X1, X2, X3, memberscC_in_ag(X2, X3))
   memberscC_in_ag([], X1) -> memberscC_out_ag([], X1)
   U17_ag(X1, X2, X3, memberscC_out_ag(X2, X3)) -> memberscC_out_ag(.(X1, X2), X3)

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)

selectcA_in_aga(x1, x2, x3)  =  selectcA_in_aga(x2)

selectcA_out_aga(x1, x2, x3)  =  selectcA_out_aga(x1, x2, x3)

U12_aga(x1, x2, x3, x4, x5)  =  U12_aga(x2, x3, x5)

membercD_in_ag(x1, x2)  =  membercD_in_ag(x2)

membercD_out_ag(x1, x2)  =  membercD_out_ag(x1, x2)

U18_ag(x1, x2, x3, x4)  =  U18_ag(x2, x3, x4)

memberscC_in_ag(x1, x2)  =  memberscC_in_ag(x2)

U16_ag(x1, x2, x3, x4)  =  U16_ag(x3, x4)

U17_ag(x1, x2, x3, x4)  =  U17_ag(x1, x3, x4)

memberscC_out_ag(x1, x2)  =  memberscC_out_ag(x1, x2)

MEMBERD_IN_AG(x1, x2)  =  MEMBERD_IN_AG(x2)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(102) UsableRulesProof (EQUIVALENT)
For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.
----------------------------------------

(103)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   MEMBERD_IN_AG(X1, .(X2, X3)) -> MEMBERD_IN_AG(X1, X3)

R is empty.
The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)

MEMBERD_IN_AG(x1, x2)  =  MEMBERD_IN_AG(x2)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(104) PiDPToQDPProof (SOUND)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
----------------------------------------

(105)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   MEMBERD_IN_AG(.(X2, X3)) -> MEMBERD_IN_AG(X3)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.
----------------------------------------

(106) 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:
*MEMBERD_IN_AG(.(X2, X3)) -> MEMBERD_IN_AG(X3)
The graph contains the following edges 1 > 1


----------------------------------------

(107)
YES

----------------------------------------

(108)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   MEMBERSC_IN_AG(.(X1, X2), X3) -> U3_AG(X1, X2, X3, membercD_in_ag(X1, X3))
   U3_AG(X1, X2, X3, membercD_out_ag(X1, X3)) -> MEMBERSC_IN_AG(X2, X3)

The TRS R consists of the following rules:

   selectcA_in_aga(X1, .(X1, X2), X2) -> selectcA_out_aga(X1, .(X1, X2), X2)
   selectcA_in_aga(X1, .(X2, X3), .(X2, X4)) -> U12_aga(X1, X2, X3, X4, selectcA_in_aga(X1, X3, X4))
   U12_aga(X1, X2, X3, X4, selectcA_out_aga(X1, X3, X4)) -> selectcA_out_aga(X1, .(X2, X3), .(X2, X4))
   membercD_in_ag(X1, .(X1, X2)) -> membercD_out_ag(X1, .(X1, X2))
   membercD_in_ag(X1, .(X2, X3)) -> U18_ag(X1, X2, X3, membercD_in_ag(X1, X3))
   U18_ag(X1, X2, X3, membercD_out_ag(X1, X3)) -> membercD_out_ag(X1, .(X2, X3))
   memberscC_in_ag(.(X1, X2), X3) -> U16_ag(X1, X2, X3, membercD_in_ag(X1, X3))
   U16_ag(X1, X2, X3, membercD_out_ag(X1, X3)) -> U17_ag(X1, X2, X3, memberscC_in_ag(X2, X3))
   memberscC_in_ag([], X1) -> memberscC_out_ag([], X1)
   U17_ag(X1, X2, X3, memberscC_out_ag(X2, X3)) -> memberscC_out_ag(.(X1, X2), X3)

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)

selectcA_in_aga(x1, x2, x3)  =  selectcA_in_aga(x2)

selectcA_out_aga(x1, x2, x3)  =  selectcA_out_aga(x1, x2, x3)

U12_aga(x1, x2, x3, x4, x5)  =  U12_aga(x2, x3, x5)

membercD_in_ag(x1, x2)  =  membercD_in_ag(x2)

membercD_out_ag(x1, x2)  =  membercD_out_ag(x1, x2)

U18_ag(x1, x2, x3, x4)  =  U18_ag(x2, x3, x4)

memberscC_in_ag(x1, x2)  =  memberscC_in_ag(x2)

U16_ag(x1, x2, x3, x4)  =  U16_ag(x3, x4)

U17_ag(x1, x2, x3, x4)  =  U17_ag(x1, x3, x4)

memberscC_out_ag(x1, x2)  =  memberscC_out_ag(x1, x2)

MEMBERSC_IN_AG(x1, x2)  =  MEMBERSC_IN_AG(x2)

U3_AG(x1, x2, x3, x4)  =  U3_AG(x3, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(109) UsableRulesProof (EQUIVALENT)
For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.
----------------------------------------

(110)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   MEMBERSC_IN_AG(.(X1, X2), X3) -> U3_AG(X1, X2, X3, membercD_in_ag(X1, X3))
   U3_AG(X1, X2, X3, membercD_out_ag(X1, X3)) -> MEMBERSC_IN_AG(X2, X3)

The TRS R consists of the following rules:

   membercD_in_ag(X1, .(X1, X2)) -> membercD_out_ag(X1, .(X1, X2))
   membercD_in_ag(X1, .(X2, X3)) -> U18_ag(X1, X2, X3, membercD_in_ag(X1, X3))
   U18_ag(X1, X2, X3, membercD_out_ag(X1, X3)) -> membercD_out_ag(X1, .(X2, X3))

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)

membercD_in_ag(x1, x2)  =  membercD_in_ag(x2)

membercD_out_ag(x1, x2)  =  membercD_out_ag(x1, x2)

U18_ag(x1, x2, x3, x4)  =  U18_ag(x2, x3, x4)

MEMBERSC_IN_AG(x1, x2)  =  MEMBERSC_IN_AG(x2)

U3_AG(x1, x2, x3, x4)  =  U3_AG(x3, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(111) PiDPToQDPProof (SOUND)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
----------------------------------------

(112)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   MEMBERSC_IN_AG(X3) -> U3_AG(X3, membercD_in_ag(X3))
   U3_AG(X3, membercD_out_ag(X1, X3)) -> MEMBERSC_IN_AG(X3)

The TRS R consists of the following rules:

   membercD_in_ag(.(X1, X2)) -> membercD_out_ag(X1, .(X1, X2))
   membercD_in_ag(.(X2, X3)) -> U18_ag(X2, X3, membercD_in_ag(X3))
   U18_ag(X2, X3, membercD_out_ag(X1, X3)) -> membercD_out_ag(X1, .(X2, X3))

The set Q consists of the following terms:

   membercD_in_ag(x0)
   U18_ag(x0, x1, x2)

We have to consider all (P,Q,R)-chains.
----------------------------------------

(113) TransformationProof (SOUND)
By narrowing [LPAR04] the rule MEMBERSC_IN_AG(X3) -> U3_AG(X3, membercD_in_ag(X3)) at position [1] we obtained the following new rules [LPAR04]:

   (MEMBERSC_IN_AG(.(x0, x1)) -> U3_AG(.(x0, x1), membercD_out_ag(x0, .(x0, x1))),MEMBERSC_IN_AG(.(x0, x1)) -> U3_AG(.(x0, x1), membercD_out_ag(x0, .(x0, x1))))
   (MEMBERSC_IN_AG(.(x0, x1)) -> U3_AG(.(x0, x1), U18_ag(x0, x1, membercD_in_ag(x1))),MEMBERSC_IN_AG(.(x0, x1)) -> U3_AG(.(x0, x1), U18_ag(x0, x1, membercD_in_ag(x1))))


----------------------------------------

(114)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   U3_AG(X3, membercD_out_ag(X1, X3)) -> MEMBERSC_IN_AG(X3)
   MEMBERSC_IN_AG(.(x0, x1)) -> U3_AG(.(x0, x1), membercD_out_ag(x0, .(x0, x1)))
   MEMBERSC_IN_AG(.(x0, x1)) -> U3_AG(.(x0, x1), U18_ag(x0, x1, membercD_in_ag(x1)))

The TRS R consists of the following rules:

   membercD_in_ag(.(X1, X2)) -> membercD_out_ag(X1, .(X1, X2))
   membercD_in_ag(.(X2, X3)) -> U18_ag(X2, X3, membercD_in_ag(X3))
   U18_ag(X2, X3, membercD_out_ag(X1, X3)) -> membercD_out_ag(X1, .(X2, X3))

The set Q consists of the following terms:

   membercD_in_ag(x0)
   U18_ag(x0, x1, x2)

We have to consider all (P,Q,R)-chains.
----------------------------------------

(115) TransformationProof (EQUIVALENT)
By instantiating [LPAR04] the rule U3_AG(X3, membercD_out_ag(X1, X3)) -> MEMBERSC_IN_AG(X3) we obtained the following new rules [LPAR04]:

   (U3_AG(.(z0, z1), membercD_out_ag(z0, .(z0, z1))) -> MEMBERSC_IN_AG(.(z0, z1)),U3_AG(.(z0, z1), membercD_out_ag(z0, .(z0, z1))) -> MEMBERSC_IN_AG(.(z0, z1)))
   (U3_AG(.(z0, z1), membercD_out_ag(x1, .(z0, z1))) -> MEMBERSC_IN_AG(.(z0, z1)),U3_AG(.(z0, z1), membercD_out_ag(x1, .(z0, z1))) -> MEMBERSC_IN_AG(.(z0, z1)))


----------------------------------------

(116)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   MEMBERSC_IN_AG(.(x0, x1)) -> U3_AG(.(x0, x1), membercD_out_ag(x0, .(x0, x1)))
   MEMBERSC_IN_AG(.(x0, x1)) -> U3_AG(.(x0, x1), U18_ag(x0, x1, membercD_in_ag(x1)))
   U3_AG(.(z0, z1), membercD_out_ag(z0, .(z0, z1))) -> MEMBERSC_IN_AG(.(z0, z1))
   U3_AG(.(z0, z1), membercD_out_ag(x1, .(z0, z1))) -> MEMBERSC_IN_AG(.(z0, z1))

The TRS R consists of the following rules:

   membercD_in_ag(.(X1, X2)) -> membercD_out_ag(X1, .(X1, X2))
   membercD_in_ag(.(X2, X3)) -> U18_ag(X2, X3, membercD_in_ag(X3))
   U18_ag(X2, X3, membercD_out_ag(X1, X3)) -> membercD_out_ag(X1, .(X2, X3))

The set Q consists of the following terms:

   membercD_in_ag(x0)
   U18_ag(x0, x1, x2)

We have to consider all (P,Q,R)-chains.
----------------------------------------

(117) NonTerminationLoopProof (COMPLETE)
We used the non-termination processor [FROCOS05] to show that the DP problem is infinite.
Found a loop by narrowing to the left:

s = U3_AG(.(z0, z1), membercD_out_ag(z0, .(z0, z1))) evaluates to  t =U3_AG(.(z0, z1), membercD_out_ag(z0, .(z0, z1)))

Thus s starts an infinite chain as s semiunifies with t with the following substitutions:
* Matcher: [ ]
* Semiunifier: [ ]

--------------------------------------------------------------------------------
Rewriting sequence

U3_AG(.(z0, z1), membercD_out_ag(z0, .(z0, z1))) -> MEMBERSC_IN_AG(.(z0, z1))
with rule U3_AG(.(z0', z1'), membercD_out_ag(z0', .(z0', z1'))) -> MEMBERSC_IN_AG(.(z0', z1')) at position [] and matcher [z0' / z0, z1' / z1]

MEMBERSC_IN_AG(.(z0, z1)) -> U3_AG(.(z0, z1), membercD_out_ag(z0, .(z0, z1)))
with rule MEMBERSC_IN_AG(.(x0, x1)) -> U3_AG(.(x0, x1), membercD_out_ag(x0, .(x0, x1)))

Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence


All these steps are and every following step will be a correct step w.r.t to Q.




----------------------------------------

(118)
NO

----------------------------------------

(119)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   SELECTA_IN_AGA(X1, .(X2, X3), .(X2, X4)) -> SELECTA_IN_AGA(X1, X3, X4)

The TRS R consists of the following rules:

   selectcA_in_aga(X1, .(X1, X2), X2) -> selectcA_out_aga(X1, .(X1, X2), X2)
   selectcA_in_aga(X1, .(X2, X3), .(X2, X4)) -> U12_aga(X1, X2, X3, X4, selectcA_in_aga(X1, X3, X4))
   U12_aga(X1, X2, X3, X4, selectcA_out_aga(X1, X3, X4)) -> selectcA_out_aga(X1, .(X2, X3), .(X2, X4))
   membercD_in_ag(X1, .(X1, X2)) -> membercD_out_ag(X1, .(X1, X2))
   membercD_in_ag(X1, .(X2, X3)) -> U18_ag(X1, X2, X3, membercD_in_ag(X1, X3))
   U18_ag(X1, X2, X3, membercD_out_ag(X1, X3)) -> membercD_out_ag(X1, .(X2, X3))
   memberscC_in_ag(.(X1, X2), X3) -> U16_ag(X1, X2, X3, membercD_in_ag(X1, X3))
   U16_ag(X1, X2, X3, membercD_out_ag(X1, X3)) -> U17_ag(X1, X2, X3, memberscC_in_ag(X2, X3))
   memberscC_in_ag([], X1) -> memberscC_out_ag([], X1)
   U17_ag(X1, X2, X3, memberscC_out_ag(X2, X3)) -> memberscC_out_ag(.(X1, X2), X3)

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)

selectcA_in_aga(x1, x2, x3)  =  selectcA_in_aga(x2)

selectcA_out_aga(x1, x2, x3)  =  selectcA_out_aga(x1, x2, x3)

U12_aga(x1, x2, x3, x4, x5)  =  U12_aga(x2, x3, x5)

membercD_in_ag(x1, x2)  =  membercD_in_ag(x2)

membercD_out_ag(x1, x2)  =  membercD_out_ag(x1, x2)

U18_ag(x1, x2, x3, x4)  =  U18_ag(x2, x3, x4)

memberscC_in_ag(x1, x2)  =  memberscC_in_ag(x2)

U16_ag(x1, x2, x3, x4)  =  U16_ag(x3, x4)

U17_ag(x1, x2, x3, x4)  =  U17_ag(x1, x3, x4)

memberscC_out_ag(x1, x2)  =  memberscC_out_ag(x1, x2)

SELECTA_IN_AGA(x1, x2, x3)  =  SELECTA_IN_AGA(x2)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(120) UsableRulesProof (EQUIVALENT)
For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.
----------------------------------------

(121)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   SELECTA_IN_AGA(X1, .(X2, X3), .(X2, X4)) -> SELECTA_IN_AGA(X1, X3, X4)

R is empty.
The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)

SELECTA_IN_AGA(x1, x2, x3)  =  SELECTA_IN_AGA(x2)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(122) PiDPToQDPProof (SOUND)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
----------------------------------------

(123)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   SELECTA_IN_AGA(.(X2, X3)) -> SELECTA_IN_AGA(X3)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.
----------------------------------------

(124) 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:
*SELECTA_IN_AGA(.(X2, X3)) -> SELECTA_IN_AGA(X3)
The graph contains the following edges 1 > 1


----------------------------------------

(125)
YES

----------------------------------------

(126)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   COLOR_MAPB_IN_AG(.(region(X1, X2, X3), X4), X5) -> U7_AG(X1, X2, X3, X4, X5, selectcA_in_aga(X2, X5, X6))
   U7_AG(X1, X2, X3, X4, X5, selectcA_out_aga(X2, X5, X6)) -> U9_AG(X1, X2, X3, X4, X5, memberscC_in_ag(X3, X6))
   U9_AG(X1, X2, X3, X4, X5, memberscC_out_ag(X3, X6)) -> COLOR_MAPB_IN_AG(X4, X5)

The TRS R consists of the following rules:

   selectcA_in_aga(X1, .(X1, X2), X2) -> selectcA_out_aga(X1, .(X1, X2), X2)
   selectcA_in_aga(X1, .(X2, X3), .(X2, X4)) -> U12_aga(X1, X2, X3, X4, selectcA_in_aga(X1, X3, X4))
   U12_aga(X1, X2, X3, X4, selectcA_out_aga(X1, X3, X4)) -> selectcA_out_aga(X1, .(X2, X3), .(X2, X4))
   membercD_in_ag(X1, .(X1, X2)) -> membercD_out_ag(X1, .(X1, X2))
   membercD_in_ag(X1, .(X2, X3)) -> U18_ag(X1, X2, X3, membercD_in_ag(X1, X3))
   U18_ag(X1, X2, X3, membercD_out_ag(X1, X3)) -> membercD_out_ag(X1, .(X2, X3))
   memberscC_in_ag(.(X1, X2), X3) -> U16_ag(X1, X2, X3, membercD_in_ag(X1, X3))
   U16_ag(X1, X2, X3, membercD_out_ag(X1, X3)) -> U17_ag(X1, X2, X3, memberscC_in_ag(X2, X3))
   memberscC_in_ag([], X1) -> memberscC_out_ag([], X1)
   U17_ag(X1, X2, X3, memberscC_out_ag(X2, X3)) -> memberscC_out_ag(.(X1, X2), X3)

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)

region(x1, x2, x3)  =  region(x2, x3)

selectcA_in_aga(x1, x2, x3)  =  selectcA_in_aga(x2)

selectcA_out_aga(x1, x2, x3)  =  selectcA_out_aga(x1, x2, x3)

U12_aga(x1, x2, x3, x4, x5)  =  U12_aga(x2, x3, x5)

membercD_in_ag(x1, x2)  =  membercD_in_ag(x2)

membercD_out_ag(x1, x2)  =  membercD_out_ag(x1, x2)

U18_ag(x1, x2, x3, x4)  =  U18_ag(x2, x3, x4)

memberscC_in_ag(x1, x2)  =  memberscC_in_ag(x2)

U16_ag(x1, x2, x3, x4)  =  U16_ag(x3, x4)

U17_ag(x1, x2, x3, x4)  =  U17_ag(x1, x3, x4)

memberscC_out_ag(x1, x2)  =  memberscC_out_ag(x1, x2)

COLOR_MAPB_IN_AG(x1, x2)  =  COLOR_MAPB_IN_AG(x2)

U7_AG(x1, x2, x3, x4, x5, x6)  =  U7_AG(x5, x6)

U9_AG(x1, x2, x3, x4, x5, x6)  =  U9_AG(x5, x6)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(127) PiDPToQDPProof (SOUND)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
----------------------------------------

(128)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   COLOR_MAPB_IN_AG(X5) -> U7_AG(X5, selectcA_in_aga(X5))
   U7_AG(X5, selectcA_out_aga(X2, X5, X6)) -> U9_AG(X5, memberscC_in_ag(X6))
   U9_AG(X5, memberscC_out_ag(X3, X6)) -> COLOR_MAPB_IN_AG(X5)

The TRS R consists of the following rules:

   selectcA_in_aga(.(X1, X2)) -> selectcA_out_aga(X1, .(X1, X2), X2)
   selectcA_in_aga(.(X2, X3)) -> U12_aga(X2, X3, selectcA_in_aga(X3))
   U12_aga(X2, X3, selectcA_out_aga(X1, X3, X4)) -> selectcA_out_aga(X1, .(X2, X3), .(X2, X4))
   membercD_in_ag(.(X1, X2)) -> membercD_out_ag(X1, .(X1, X2))
   membercD_in_ag(.(X2, X3)) -> U18_ag(X2, X3, membercD_in_ag(X3))
   U18_ag(X2, X3, membercD_out_ag(X1, X3)) -> membercD_out_ag(X1, .(X2, X3))
   memberscC_in_ag(X3) -> U16_ag(X3, membercD_in_ag(X3))
   U16_ag(X3, membercD_out_ag(X1, X3)) -> U17_ag(X1, X3, memberscC_in_ag(X3))
   memberscC_in_ag(X1) -> memberscC_out_ag([], X1)
   U17_ag(X1, X3, memberscC_out_ag(X2, X3)) -> memberscC_out_ag(.(X1, X2), X3)

The set Q consists of the following terms:

   selectcA_in_aga(x0)
   U12_aga(x0, x1, x2)
   membercD_in_ag(x0)
   U18_ag(x0, x1, x2)
   memberscC_in_ag(x0)
   U16_ag(x0, x1)
   U17_ag(x0, x1, x2)

We have to consider all (P,Q,R)-chains.
----------------------------------------

(129) PrologToIRSwTTransformerProof (SOUND)
Transformed Prolog program to IRSwT according to method in Master Thesis of A. Weinert

{
    "root": 16,
    "program": {
        "directives": [],
        "clauses": [
            [
                "(color_map (. Region Regions) Colors)",
                "(',' (color_region Region Colors) (color_map Regions Colors))"
            ],
            [
                "(color_map ([]) Colors)",
                null
            ],
            [
                "(color_region (region Name Color Neighbors) Colors)",
                "(',' (select Color Colors Colors1) (members Neighbors Colors1))"
            ],
            [
                "(select X (. X Xs) Xs)",
                null
            ],
            [
                "(select X (. Y Ys) (. Y Zs))",
                "(select X Ys Zs)"
            ],
            [
                "(members (. X Xs) Ys)",
                "(',' (member X Ys) (members Xs Ys))"
            ],
            [
                "(members ([]) Ys)",
                null
            ],
            [
                "(member X (. X X1))",
                null
            ],
            [
                "(member X (. X2 T))",
                "(member X T)"
            ],
            [
                "(test_color Name Map)",
                "(',' (map Name Map) (',' (colors Name Colors) (color_map Map Colors)))"
            ],
            [
                "(map (test) (. (region (a) A (. B (. C (. D ([]))))) (. (region (b) B (. A (. C (. E ([]))))) (. (region (c) C (. A (. B (. D (. E (. F ([]))))))) (. (region (d) D (. A (. C (. F ([]))))) (. (region (e) E (. B (. C (. F ([]))))) (. (region (f) F (. C (. D (. E ([]))))) ([]))))))))",
                null
            ],
            [
                "(map (west_europe) (. (region (portugal) P (. E ([]))) (. (region (spain) E (. F (. P ([])))) (. (region (france) F (. E (. I (. S (. B (. WG (. L ([])))))))) (. (region (belgium) B (. F (. H (. L (. WG ([])))))) (. (region (holland) H (. B (. WG ([])))) (. (region (west_germany) WG (. F (. A (. S (. H (. B (. L ([])))))))) (. (region (luxembourg) L (. F (. B (. WG ([]))))) (. (region (italy) I (. F (. A (. S ([]))))) (. (region (switzerland) S (. F (. I (. A (. WG ([])))))) (. (region (austria) A (. I (. S (. WG ([]))))) ([]))))))))))))",
                null
            ],
            [
                "(colors X (. (red) (. (yellow) (. (blue) (. (white) ([]))))))",
                null
            ]
        ]
    },
    "graph": {
        "nodes": {
            "22": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(color_region T18 T17)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T17"],
                    "free": [],
                    "exprvars": []
                }
            },
            "44": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "23": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(color_map T24 T17)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T17"],
                    "free": [],
                    "exprvars": []
                }
            },
            "45": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "67": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "46": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "68": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(member T95 T94)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T94"],
                    "free": [],
                    "exprvars": []
                }
            },
            "69": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(members T101 T94)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T94"],
                    "free": [],
                    "exprvars": []
                }
            },
            "26": {
                "goal": [{
                    "clause": 2,
                    "scope": 2,
                    "term": "(color_region T18 T17)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T17"],
                    "free": [],
                    "exprvars": []
                }
            },
            "type": "Nodes",
            "90": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "91": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "92": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "50": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(select T72 T71 X74)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T71"],
                    "free": ["X74"],
                    "exprvars": []
                }
            },
            "72": {
                "goal": [
                    {
                        "clause": 7,
                        "scope": 5,
                        "term": "(member T95 T94)"
                    },
                    {
                        "clause": 8,
                        "scope": 5,
                        "term": "(member T95 T94)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T94"],
                    "free": [],
                    "exprvars": []
                }
            },
            "51": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "30": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (select T41 T40 X41) (members T42 X41))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T40"],
                    "free": ["X41"],
                    "exprvars": []
                }
            },
            "74": {
                "goal": [{
                    "clause": 7,
                    "scope": 5,
                    "term": "(member T95 T94)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T94"],
                    "free": [],
                    "exprvars": []
                }
            },
            "96": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "31": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "75": {
                "goal": [{
                    "clause": 8,
                    "scope": 5,
                    "term": "(member T95 T94)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T94"],
                    "free": [],
                    "exprvars": []
                }
            },
            "97": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "98": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "34": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(select T41 T40 X41)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T40"],
                    "free": ["X41"],
                    "exprvars": []
                }
            },
            "78": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "35": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(members T48 T47)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T47"],
                    "free": [],
                    "exprvars": []
                }
            },
            "57": {
                "goal": [
                    {
                        "clause": 5,
                        "scope": 4,
                        "term": "(members T48 T47)"
                    },
                    {
                        "clause": 6,
                        "scope": 4,
                        "term": "(members T48 T47)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T47"],
                    "free": [],
                    "exprvars": []
                }
            },
            "79": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "37": {
                "goal": [
                    {
                        "clause": 3,
                        "scope": 3,
                        "term": "(select T41 T40 X41)"
                    },
                    {
                        "clause": 4,
                        "scope": 3,
                        "term": "(select T41 T40 X41)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T40"],
                    "free": ["X41"],
                    "exprvars": []
                }
            },
            "16": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(color_map T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "17": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 1,
                        "term": "(color_map T1 T2)"
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(color_map T1 T2)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "39": {
                "goal": [{
                    "clause": 3,
                    "scope": 3,
                    "term": "(select T41 T40 X41)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T40"],
                    "free": ["X41"],
                    "exprvars": []
                }
            },
            "18": {
                "goal": [{
                    "clause": 0,
                    "scope": 1,
                    "term": "(color_map T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "19": {
                "goal": [{
                    "clause": 1,
                    "scope": 1,
                    "term": "(color_map T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "80": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "60": {
                "goal": [{
                    "clause": 5,
                    "scope": 4,
                    "term": "(members T48 T47)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T47"],
                    "free": [],
                    "exprvars": []
                }
            },
            "83": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(member T125 T124)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T124"],
                    "free": [],
                    "exprvars": []
                }
            },
            "40": {
                "goal": [{
                    "clause": 4,
                    "scope": 3,
                    "term": "(select T41 T40 X41)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T40"],
                    "free": ["X41"],
                    "exprvars": []
                }
            },
            "62": {
                "goal": [{
                    "clause": 6,
                    "scope": 4,
                    "term": "(members T48 T47)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T47"],
                    "free": [],
                    "exprvars": []
                }
            },
            "84": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "20": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (color_region T18 T17) (color_map T19 T17))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T17"],
                    "free": [],
                    "exprvars": []
                }
            },
            "21": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "65": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (member T95 T94) (members T96 T94))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T94"],
                    "free": [],
                    "exprvars": []
                }
            }
        },
        "edges": [
            {
                "from": 16,
                "to": 17,
                "label": "CASE"
            },
            {
                "from": 17,
                "to": 18,
                "label": "PARALLEL"
            },
            {
                "from": 17,
                "to": 19,
                "label": "PARALLEL"
            },
            {
                "from": 18,
                "to": 20,
                "label": "EVAL with clause\ncolor_map(.(X15, X16), X17) :- ','(color_region(X15, X17), color_map(X16, X17)).\nand substitutionX15 -> T18,\nX16 -> T19,\nT1 -> .(T18, T19),\nT2 -> T17,\nX17 -> T17,\nT15 -> T18,\nT16 -> T19"
            },
            {
                "from": 18,
                "to": 21,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 19,
                "to": 96,
                "label": "EVAL with clause\ncolor_map([], X139).\nand substitutionT1 -> [],\nT2 -> T141,\nX139 -> T141"
            },
            {
                "from": 19,
                "to": 97,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 20,
                "to": 22,
                "label": "SPLIT 1"
            },
            {
                "from": 20,
                "to": 23,
                "label": "SPLIT 2\nnew knowledge:\nT17 is ground\nreplacements:T19 -> T24"
            },
            {
                "from": 22,
                "to": 26,
                "label": "CASE"
            },
            {
                "from": 23,
                "to": 16,
                "label": "INSTANCE with matching:\nT1 -> T24\nT2 -> T17"
            },
            {
                "from": 26,
                "to": 30,
                "label": "EVAL with clause\ncolor_region(region(X37, X38, X39), X40) :- ','(select(X38, X40, X41), members(X39, X41)).\nand substitutionX37 -> T37,\nX38 -> T41,\nX39 -> T42,\nT18 -> region(T37, T41, T42),\nT17 -> T40,\nX40 -> T40,\nT38 -> T41,\nT39 -> T42"
            },
            {
                "from": 26,
                "to": 31,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 30,
                "to": 34,
                "label": "SPLIT 1"
            },
            {
                "from": 30,
                "to": 35,
                "label": "SPLIT 2\nnew knowledge:\nT41 is ground\nT40 is ground\nT47 is ground\nreplacements:X41 -> T47,\nT42 -> T48"
            },
            {
                "from": 34,
                "to": 37,
                "label": "CASE"
            },
            {
                "from": 35,
                "to": 57,
                "label": "CASE"
            },
            {
                "from": 37,
                "to": 39,
                "label": "PARALLEL"
            },
            {
                "from": 37,
                "to": 40,
                "label": "PARALLEL"
            },
            {
                "from": 39,
                "to": 44,
                "label": "EVAL with clause\nselect(X58, .(X58, X59), X59).\nand substitutionT41 -> T61,\nX58 -> T61,\nX59 -> T62,\nT40 -> .(T61, T62),\nX41 -> T62"
            },
            {
                "from": 39,
                "to": 45,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 40,
                "to": 50,
                "label": "EVAL with clause\nselect(X70, .(X71, X72), .(X71, X73)) :- select(X70, X72, X73).\nand substitutionT41 -> T72,\nX70 -> T72,\nX71 -> T70,\nX72 -> T71,\nT40 -> .(T70, T71),\nX73 -> X74,\nX41 -> .(T70, X74),\nT69 -> T72"
            },
            {
                "from": 40,
                "to": 51,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 44,
                "to": 46,
                "label": "SUCCESS"
            },
            {
                "from": 50,
                "to": 34,
                "label": "INSTANCE with matching:\nT41 -> T72\nT40 -> T71\nX41 -> X74"
            },
            {
                "from": 57,
                "to": 60,
                "label": "PARALLEL"
            },
            {
                "from": 57,
                "to": 62,
                "label": "PARALLEL"
            },
            {
                "from": 60,
                "to": 65,
                "label": "EVAL with clause\nmembers(.(X94, X95), X96) :- ','(member(X94, X96), members(X95, X96)).\nand substitutionX94 -> T95,\nX95 -> T96,\nT48 -> .(T95, T96),\nT47 -> T94,\nX96 -> T94,\nT92 -> T95,\nT93 -> T96"
            },
            {
                "from": 60,
                "to": 67,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 62,
                "to": 90,
                "label": "EVAL with clause\nmembers([], X133).\nand substitutionT48 -> [],\nT47 -> T135,\nX133 -> T135"
            },
            {
                "from": 62,
                "to": 91,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 65,
                "to": 68,
                "label": "SPLIT 1"
            },
            {
                "from": 65,
                "to": 69,
                "label": "SPLIT 2\nnew knowledge:\nT95 is ground\nT94 is ground\nreplacements:T96 -> T101"
            },
            {
                "from": 68,
                "to": 72,
                "label": "CASE"
            },
            {
                "from": 69,
                "to": 35,
                "label": "INSTANCE with matching:\nT48 -> T101\nT47 -> T94"
            },
            {
                "from": 72,
                "to": 74,
                "label": "PARALLEL"
            },
            {
                "from": 72,
                "to": 75,
                "label": "PARALLEL"
            },
            {
                "from": 74,
                "to": 78,
                "label": "EVAL with clause\nmember(X113, .(X113, X114)).\nand substitutionT95 -> T114,\nX113 -> T114,\nX114 -> T115,\nT94 -> .(T114, T115)"
            },
            {
                "from": 74,
                "to": 79,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 75,
                "to": 83,
                "label": "EVAL with clause\nmember(X121, .(X122, X123)) :- member(X121, X123).\nand substitutionT95 -> T125,\nX121 -> T125,\nX122 -> T123,\nX123 -> T124,\nT94 -> .(T123, T124),\nT122 -> T125"
            },
            {
                "from": 75,
                "to": 84,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 78,
                "to": 80,
                "label": "SUCCESS"
            },
            {
                "from": 83,
                "to": 68,
                "label": "INSTANCE with matching:\nT95 -> T125\nT94 -> T124"
            },
            {
                "from": 90,
                "to": 92,
                "label": "SUCCESS"
            },
            {
                "from": 96,
                "to": 98,
                "label": "SUCCESS"
            }
        ],
        "type": "Graph"
    }
}

----------------------------------------

(130)
Complex Obligation (AND)

----------------------------------------

(131)
Obligation:
Rules:
f72_out(T94) -> f68_out(T94) :|: TRUE
f68_in(x) -> f72_in(x) :|: TRUE
f74_out(x1) -> f72_out(x1) :|: TRUE
f72_in(x2) -> f75_in(x2) :|: TRUE
f75_out(x3) -> f72_out(x3) :|: TRUE
f72_in(x4) -> f74_in(x4) :|: TRUE
f75_in(.(T123, T124)) -> f83_in(T124) :|: TRUE
f84_out -> f75_out(x5) :|: TRUE
f83_out(x6) -> f75_out(.(x7, x6)) :|: TRUE
f75_in(x8) -> f84_in :|: TRUE
f83_in(x9) -> f68_in(x9) :|: TRUE
f68_out(x10) -> f83_out(x10) :|: TRUE
f16_in(T2) -> f17_in(T2) :|: TRUE
f17_out(x11) -> f16_out(x11) :|: TRUE
f18_out(x12) -> f17_out(x12) :|: TRUE
f17_in(x13) -> f19_in(x13) :|: TRUE
f17_in(x14) -> f18_in(x14) :|: TRUE
f19_out(x15) -> f17_out(x15) :|: TRUE
f20_out(T17) -> f18_out(T17) :|: TRUE
f18_in(x16) -> f21_in :|: TRUE
f21_out -> f18_out(x17) :|: TRUE
f18_in(x18) -> f20_in(x18) :|: TRUE
f23_out(x19) -> f20_out(x19) :|: TRUE
f22_out(x20) -> f23_in(x20) :|: TRUE
f20_in(x21) -> f22_in(x21) :|: TRUE
f22_in(x22) -> f26_in(x22) :|: TRUE
f26_out(x23) -> f22_out(x23) :|: TRUE
f26_in(T40) -> f30_in(T40) :|: TRUE
f30_out(x24) -> f26_out(x24) :|: TRUE
f26_in(x25) -> f31_in :|: TRUE
f31_out -> f26_out(x26) :|: TRUE
f35_out(x27) -> f30_out(x28) :|: TRUE
f34_out(x29) -> f35_in(x30) :|: TRUE
f30_in(x31) -> f34_in(x31) :|: TRUE
f35_in(T47) -> f57_in(T47) :|: TRUE
f57_out(x32) -> f35_out(x32) :|: TRUE
f57_in(x33) -> f62_in(x33) :|: TRUE
f60_out(x34) -> f57_out(x34) :|: TRUE
f62_out(x35) -> f57_out(x35) :|: TRUE
f57_in(x36) -> f60_in(x36) :|: TRUE
f60_in(x37) -> f65_in(x37) :|: TRUE
f65_out(x38) -> f60_out(x38) :|: TRUE
f60_in(x39) -> f67_in :|: TRUE
f67_out -> f60_out(x40) :|: TRUE
f69_out(x41) -> f65_out(x41) :|: TRUE
f65_in(x42) -> f68_in(x42) :|: TRUE
f68_out(x43) -> f69_in(x43) :|: TRUE
Start term: f16_in(T2)

----------------------------------------

(132) IRSwTSimpleDependencyGraphProof (EQUIVALENT)
Constructed simple dependency graph.

Simplified to the following IRSwTs:


----------------------------------------

(133)
TRUE

----------------------------------------

(134)
Obligation:
Rules:
f35_out(T94) -> f69_out(T94) :|: TRUE
f69_in(x) -> f35_in(x) :|: TRUE
f35_in(T47) -> f57_in(T47) :|: TRUE
f57_out(x1) -> f35_out(x1) :|: TRUE
f69_out(x2) -> f65_out(x2) :|: TRUE
f65_in(x3) -> f68_in(x3) :|: TRUE
f68_out(x4) -> f69_in(x4) :|: TRUE
f74_out(x5) -> f72_out(x5) :|: TRUE
f72_in(x6) -> f75_in(x6) :|: TRUE
f75_out(x7) -> f72_out(x7) :|: TRUE
f72_in(x8) -> f74_in(x8) :|: TRUE
f75_in(.(T123, T124)) -> f83_in(T124) :|: TRUE
f84_out -> f75_out(x9) :|: TRUE
f83_out(x10) -> f75_out(.(x11, x10)) :|: TRUE
f75_in(x12) -> f84_in :|: TRUE
f83_in(x13) -> f68_in(x13) :|: TRUE
f68_out(x14) -> f83_out(x14) :|: TRUE
f72_out(x15) -> f68_out(x15) :|: TRUE
f68_in(x16) -> f72_in(x16) :|: TRUE
f57_in(x17) -> f62_in(x17) :|: TRUE
f60_out(x18) -> f57_out(x18) :|: TRUE
f62_out(x19) -> f57_out(x19) :|: TRUE
f57_in(x20) -> f60_in(x20) :|: TRUE
f60_in(x21) -> f65_in(x21) :|: TRUE
f65_out(x22) -> f60_out(x22) :|: TRUE
f60_in(x23) -> f67_in :|: TRUE
f67_out -> f60_out(x24) :|: TRUE
f74_in(.(T114, T115)) -> f78_in :|: TRUE
f79_out -> f74_out(x25) :|: TRUE
f74_in(x26) -> f79_in :|: TRUE
f78_out -> f74_out(.(x27, x28)) :|: TRUE
f78_in -> f78_out :|: TRUE
f16_in(T2) -> f17_in(T2) :|: TRUE
f17_out(x29) -> f16_out(x29) :|: TRUE
f18_out(x30) -> f17_out(x30) :|: TRUE
f17_in(x31) -> f19_in(x31) :|: TRUE
f17_in(x32) -> f18_in(x32) :|: TRUE
f19_out(x33) -> f17_out(x33) :|: TRUE
f20_out(T17) -> f18_out(T17) :|: TRUE
f18_in(x34) -> f21_in :|: TRUE
f21_out -> f18_out(x35) :|: TRUE
f18_in(x36) -> f20_in(x36) :|: TRUE
f23_out(x37) -> f20_out(x37) :|: TRUE
f22_out(x38) -> f23_in(x38) :|: TRUE
f20_in(x39) -> f22_in(x39) :|: TRUE
f22_in(x40) -> f26_in(x40) :|: TRUE
f26_out(x41) -> f22_out(x41) :|: TRUE
f26_in(T40) -> f30_in(T40) :|: TRUE
f30_out(x42) -> f26_out(x42) :|: TRUE
f26_in(x43) -> f31_in :|: TRUE
f31_out -> f26_out(x44) :|: TRUE
f35_out(x45) -> f30_out(x46) :|: TRUE
f34_out(x47) -> f35_in(x48) :|: TRUE
f30_in(x49) -> f34_in(x49) :|: TRUE
Start term: f16_in(T2)

----------------------------------------

(135) IRSwTSimpleDependencyGraphProof (EQUIVALENT)
Constructed simple dependency graph.

Simplified to the following IRSwTs:


----------------------------------------

(136)
TRUE

----------------------------------------

(137)
Obligation:
Rules:
f34_in(T40) -> f37_in(T40) :|: TRUE
f37_out(x) -> f34_out(x) :|: TRUE
f50_out(T71) -> f40_out(.(T70, T71)) :|: TRUE
f51_out -> f40_out(x1) :|: TRUE
f40_in(x2) -> f51_in :|: TRUE
f40_in(.(x3, x4)) -> f50_in(x4) :|: TRUE
f37_in(x5) -> f40_in(x5) :|: TRUE
f37_in(x6) -> f39_in(x6) :|: TRUE
f39_out(x7) -> f37_out(x7) :|: TRUE
f40_out(x8) -> f37_out(x8) :|: TRUE
f50_in(x9) -> f34_in(x9) :|: TRUE
f34_out(x10) -> f50_out(x10) :|: TRUE
f16_in(T2) -> f17_in(T2) :|: TRUE
f17_out(x11) -> f16_out(x11) :|: TRUE
f18_out(x12) -> f17_out(x12) :|: TRUE
f17_in(x13) -> f19_in(x13) :|: TRUE
f17_in(x14) -> f18_in(x14) :|: TRUE
f19_out(x15) -> f17_out(x15) :|: TRUE
f20_out(T17) -> f18_out(T17) :|: TRUE
f18_in(x16) -> f21_in :|: TRUE
f21_out -> f18_out(x17) :|: TRUE
f18_in(x18) -> f20_in(x18) :|: TRUE
f23_out(x19) -> f20_out(x19) :|: TRUE
f22_out(x20) -> f23_in(x20) :|: TRUE
f20_in(x21) -> f22_in(x21) :|: TRUE
f22_in(x22) -> f26_in(x22) :|: TRUE
f26_out(x23) -> f22_out(x23) :|: TRUE
f26_in(x24) -> f30_in(x24) :|: TRUE
f30_out(x25) -> f26_out(x25) :|: TRUE
f26_in(x26) -> f31_in :|: TRUE
f31_out -> f26_out(x27) :|: TRUE
f35_out(x28) -> f30_out(x29) :|: TRUE
f34_out(x30) -> f35_in(x31) :|: TRUE
f30_in(x32) -> f34_in(x32) :|: TRUE
Start term: f16_in(T2)

----------------------------------------

(138) IRSwTSimpleDependencyGraphProof (EQUIVALENT)
Constructed simple dependency graph.

Simplified to the following IRSwTs:

intTRSProblem:
f34_in(T40) -> f37_in(T40) :|: TRUE
f40_in(.(x3, x4)) -> f50_in(x4) :|: TRUE
f37_in(x5) -> f40_in(x5) :|: TRUE
f50_in(x9) -> f34_in(x9) :|: TRUE


----------------------------------------

(139)
Obligation:
Rules:
f34_in(T40) -> f37_in(T40) :|: TRUE
f40_in(.(x3, x4)) -> f50_in(x4) :|: TRUE
f37_in(x5) -> f40_in(x5) :|: TRUE
f50_in(x9) -> f34_in(x9) :|: TRUE

----------------------------------------

(140) IntTRSCompressionProof (EQUIVALENT)
Compressed rules.
----------------------------------------

(141)
Obligation:
Rules:
f34_in(.(x3:0, x4:0)) -> f34_in(x4:0) :|: TRUE

----------------------------------------

(142) IRSFormatTransformerProof (EQUIVALENT)
Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %).
----------------------------------------

(143)
Obligation:
Rules:
f34_in(.(x3:0, x4:0)) -> f34_in(x4:0) :|: TRUE

----------------------------------------

(144) IRSwTTerminationDigraphProof (EQUIVALENT)
Constructed termination digraph!
Nodes:
(1) f34_in(.(x3:0, x4:0)) -> f34_in(x4:0) :|: TRUE

Arcs:
(1) -> (1)

This digraph is fully evaluated!
----------------------------------------

(145)
Obligation:

Termination digraph:
Nodes:
(1) f34_in(.(x3:0, x4:0)) -> f34_in(x4:0) :|: TRUE

Arcs:
(1) -> (1)

This digraph is fully evaluated!

----------------------------------------

(146) IntTRSUnneededArgumentFilterProof (EQUIVALENT)
Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements:

   .(x1, x2) -> .(x2)

----------------------------------------

(147)
Obligation:
Rules:
f34_in(.(x4:0)) -> f34_in(x4:0) :|: TRUE

----------------------------------------

(148) TempFilterProof (SOUND)
Used the following sort dictionary for filtering: 
f34_in(VARIABLE)
.(VARIABLE)
Removed predefined arithmetic.
----------------------------------------

(149)
Obligation:
Rules:
f34_in(.(x4:0)) -> f34_in(x4:0)

----------------------------------------

(150) IRSwTToQDPProof (SOUND)
Removed the integers and created a QDP-Problem.
----------------------------------------

(151)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   f34_in(.(x4:0)) -> f34_in(x4:0)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.
----------------------------------------

(152) 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:
*f34_in(.(x4:0)) -> f34_in(x4:0)
The graph contains the following edges 1 > 1


----------------------------------------

(153)
YES

----------------------------------------

(154)
Obligation:
Rules:
f50_out(T71) -> f40_out(.(T70, T71)) :|: TRUE
f51_out -> f40_out(T40) :|: TRUE
f40_in(x) -> f51_in :|: TRUE
f40_in(.(x1, x2)) -> f50_in(x2) :|: TRUE
f37_in(x3) -> f40_in(x3) :|: TRUE
f37_in(x4) -> f39_in(x4) :|: TRUE
f39_out(x5) -> f37_out(x5) :|: TRUE
f40_out(x6) -> f37_out(x6) :|: TRUE
f35_out(T94) -> f69_out(T94) :|: TRUE
f69_in(x7) -> f35_in(x7) :|: TRUE
f23_out(T17) -> f20_out(T17) :|: TRUE
f22_out(x8) -> f23_in(x8) :|: TRUE
f20_in(x9) -> f22_in(x9) :|: TRUE
f69_out(x10) -> f65_out(x10) :|: TRUE
f65_in(x11) -> f68_in(x11) :|: TRUE
f68_out(x12) -> f69_in(x12) :|: TRUE
f74_out(x13) -> f72_out(x13) :|: TRUE
f72_in(x14) -> f75_in(x14) :|: TRUE
f75_out(x15) -> f72_out(x15) :|: TRUE
f72_in(x16) -> f74_in(x16) :|: TRUE
f72_out(x17) -> f68_out(x17) :|: TRUE
f68_in(x18) -> f72_in(x18) :|: TRUE
f22_in(x19) -> f26_in(x19) :|: TRUE
f26_out(x20) -> f22_out(x20) :|: TRUE
f57_in(T47) -> f62_in(T47) :|: TRUE
f60_out(x21) -> f57_out(x21) :|: TRUE
f62_out(x22) -> f57_out(x22) :|: TRUE
f57_in(x23) -> f60_in(x23) :|: TRUE
f74_in(.(T114, T115)) -> f78_in :|: TRUE
f79_out -> f74_out(x24) :|: TRUE
f74_in(x25) -> f79_in :|: TRUE
f78_out -> f74_out(.(x26, x27)) :|: TRUE
f50_in(x28) -> f34_in(x28) :|: TRUE
f34_out(x29) -> f50_out(x29) :|: TRUE
f90_in -> f90_out :|: TRUE
f20_out(x30) -> f18_out(x30) :|: TRUE
f18_in(T2) -> f21_in :|: TRUE
f21_out -> f18_out(x31) :|: TRUE
f18_in(x32) -> f20_in(x32) :|: TRUE
f23_in(x33) -> f16_in(x33) :|: TRUE
f16_out(x34) -> f23_out(x34) :|: TRUE
f34_in(x35) -> f37_in(x35) :|: TRUE
f37_out(x36) -> f34_out(x36) :|: TRUE
f16_in(x37) -> f17_in(x37) :|: TRUE
f17_out(x38) -> f16_out(x38) :|: TRUE
f39_in(.(T61, T62)) -> f44_in :|: TRUE
f39_in(x39) -> f45_in :|: TRUE
f44_out -> f39_out(.(x40, x41)) :|: TRUE
f45_out -> f39_out(x42) :|: TRUE
f44_in -> f44_out :|: TRUE
f35_in(x43) -> f57_in(x43) :|: TRUE
f57_out(x44) -> f35_out(x44) :|: TRUE
f26_in(x45) -> f30_in(x45) :|: TRUE
f30_out(x46) -> f26_out(x46) :|: TRUE
f26_in(x47) -> f31_in :|: TRUE
f31_out -> f26_out(x48) :|: TRUE
f62_in(T135) -> f90_in :|: TRUE
f91_out -> f62_out(x49) :|: TRUE
f62_in(x50) -> f91_in :|: TRUE
f90_out -> f62_out(x51) :|: TRUE
f75_in(.(T123, T124)) -> f83_in(T124) :|: TRUE
f84_out -> f75_out(x52) :|: TRUE
f83_out(x53) -> f75_out(.(x54, x53)) :|: TRUE
f75_in(x55) -> f84_in :|: TRUE
f83_in(x56) -> f68_in(x56) :|: TRUE
f68_out(x57) -> f83_out(x57) :|: TRUE
f35_out(x58) -> f30_out(x59) :|: TRUE
f34_out(x60) -> f35_in(x61) :|: TRUE
f30_in(x62) -> f34_in(x62) :|: TRUE
f60_in(x63) -> f65_in(x63) :|: TRUE
f65_out(x64) -> f60_out(x64) :|: TRUE
f60_in(x65) -> f67_in :|: TRUE
f67_out -> f60_out(x66) :|: TRUE
f78_in -> f78_out :|: TRUE
f18_out(x67) -> f17_out(x67) :|: TRUE
f17_in(x68) -> f19_in(x68) :|: TRUE
f17_in(x69) -> f18_in(x69) :|: TRUE
f19_out(x70) -> f17_out(x70) :|: TRUE
Start term: f16_in(T2)

----------------------------------------

(155) IRSwTSimpleDependencyGraphProof (EQUIVALENT)
Constructed simple dependency graph.

Simplified to the following IRSwTs:

intTRSProblem:
f50_out(T71) -> f40_out(.(T70, T71)) :|: TRUE
f40_in(.(x1, x2)) -> f50_in(x2) :|: TRUE
f37_in(x3) -> f40_in(x3) :|: TRUE
f37_in(x4) -> f39_in(x4) :|: TRUE
f39_out(x5) -> f37_out(x5) :|: TRUE
f40_out(x6) -> f37_out(x6) :|: TRUE
f35_out(T94) -> f69_out(T94) :|: TRUE
f69_in(x7) -> f35_in(x7) :|: TRUE
f22_out(x8) -> f23_in(x8) :|: TRUE
f20_in(x9) -> f22_in(x9) :|: TRUE
f69_out(x10) -> f65_out(x10) :|: TRUE
f65_in(x11) -> f68_in(x11) :|: TRUE
f68_out(x12) -> f69_in(x12) :|: TRUE
f74_out(x13) -> f72_out(x13) :|: TRUE
f72_in(x14) -> f75_in(x14) :|: TRUE
f75_out(x15) -> f72_out(x15) :|: TRUE
f72_in(x16) -> f74_in(x16) :|: TRUE
f72_out(x17) -> f68_out(x17) :|: TRUE
f68_in(x18) -> f72_in(x18) :|: TRUE
f22_in(x19) -> f26_in(x19) :|: TRUE
f26_out(x20) -> f22_out(x20) :|: TRUE
f57_in(T47) -> f62_in(T47) :|: TRUE
f60_out(x21) -> f57_out(x21) :|: TRUE
f62_out(x22) -> f57_out(x22) :|: TRUE
f57_in(x23) -> f60_in(x23) :|: TRUE
f74_in(.(T114, T115)) -> f78_in :|: TRUE
f78_out -> f74_out(.(x26, x27)) :|: TRUE
f50_in(x28) -> f34_in(x28) :|: TRUE
f34_out(x29) -> f50_out(x29) :|: TRUE
f90_in -> f90_out :|: TRUE
f18_in(x32) -> f20_in(x32) :|: TRUE
f23_in(x33) -> f16_in(x33) :|: TRUE
f34_in(x35) -> f37_in(x35) :|: TRUE
f37_out(x36) -> f34_out(x36) :|: TRUE
f16_in(x37) -> f17_in(x37) :|: TRUE
f39_in(.(T61, T62)) -> f44_in :|: TRUE
f44_out -> f39_out(.(x40, x41)) :|: TRUE
f44_in -> f44_out :|: TRUE
f35_in(x43) -> f57_in(x43) :|: TRUE
f57_out(x44) -> f35_out(x44) :|: TRUE
f26_in(x45) -> f30_in(x45) :|: TRUE
f30_out(x46) -> f26_out(x46) :|: TRUE
f62_in(T135) -> f90_in :|: TRUE
f90_out -> f62_out(x51) :|: TRUE
f75_in(.(T123, T124)) -> f83_in(T124) :|: TRUE
f83_out(x53) -> f75_out(.(x54, x53)) :|: TRUE
f83_in(x56) -> f68_in(x56) :|: TRUE
f68_out(x57) -> f83_out(x57) :|: TRUE
f35_out(x58) -> f30_out(x59) :|: TRUE
f34_out(x60) -> f35_in(x61) :|: TRUE
f30_in(x62) -> f34_in(x62) :|: TRUE
f60_in(x63) -> f65_in(x63) :|: TRUE
f65_out(x64) -> f60_out(x64) :|: TRUE
f78_in -> f78_out :|: TRUE
f17_in(x69) -> f18_in(x69) :|: TRUE


----------------------------------------

(156)
Obligation:
Rules:
f50_out(T71) -> f40_out(.(T70, T71)) :|: TRUE
f40_in(.(x1, x2)) -> f50_in(x2) :|: TRUE
f37_in(x3) -> f40_in(x3) :|: TRUE
f37_in(x4) -> f39_in(x4) :|: TRUE
f39_out(x5) -> f37_out(x5) :|: TRUE
f40_out(x6) -> f37_out(x6) :|: TRUE
f35_out(T94) -> f69_out(T94) :|: TRUE
f69_in(x7) -> f35_in(x7) :|: TRUE
f22_out(x8) -> f23_in(x8) :|: TRUE
f20_in(x9) -> f22_in(x9) :|: TRUE
f69_out(x10) -> f65_out(x10) :|: TRUE
f65_in(x11) -> f68_in(x11) :|: TRUE
f68_out(x12) -> f69_in(x12) :|: TRUE
f74_out(x13) -> f72_out(x13) :|: TRUE
f72_in(x14) -> f75_in(x14) :|: TRUE
f75_out(x15) -> f72_out(x15) :|: TRUE
f72_in(x16) -> f74_in(x16) :|: TRUE
f72_out(x17) -> f68_out(x17) :|: TRUE
f68_in(x18) -> f72_in(x18) :|: TRUE
f22_in(x19) -> f26_in(x19) :|: TRUE
f26_out(x20) -> f22_out(x20) :|: TRUE
f57_in(T47) -> f62_in(T47) :|: TRUE
f60_out(x21) -> f57_out(x21) :|: TRUE
f62_out(x22) -> f57_out(x22) :|: TRUE
f57_in(x23) -> f60_in(x23) :|: TRUE
f74_in(.(T114, T115)) -> f78_in :|: TRUE
f78_out -> f74_out(.(x26, x27)) :|: TRUE
f50_in(x28) -> f34_in(x28) :|: TRUE
f34_out(x29) -> f50_out(x29) :|: TRUE
f90_in -> f90_out :|: TRUE
f18_in(x32) -> f20_in(x32) :|: TRUE
f23_in(x33) -> f16_in(x33) :|: TRUE
f34_in(x35) -> f37_in(x35) :|: TRUE
f37_out(x36) -> f34_out(x36) :|: TRUE
f16_in(x37) -> f17_in(x37) :|: TRUE
f39_in(.(T61, T62)) -> f44_in :|: TRUE
f44_out -> f39_out(.(x40, x41)) :|: TRUE
f44_in -> f44_out :|: TRUE
f35_in(x43) -> f57_in(x43) :|: TRUE
f57_out(x44) -> f35_out(x44) :|: TRUE
f26_in(x45) -> f30_in(x45) :|: TRUE
f30_out(x46) -> f26_out(x46) :|: TRUE
f62_in(T135) -> f90_in :|: TRUE
f90_out -> f62_out(x51) :|: TRUE
f75_in(.(T123, T124)) -> f83_in(T124) :|: TRUE
f83_out(x53) -> f75_out(.(x54, x53)) :|: TRUE
f83_in(x56) -> f68_in(x56) :|: TRUE
f68_out(x57) -> f83_out(x57) :|: TRUE
f35_out(x58) -> f30_out(x59) :|: TRUE
f34_out(x60) -> f35_in(x61) :|: TRUE
f30_in(x62) -> f34_in(x62) :|: TRUE
f60_in(x63) -> f65_in(x63) :|: TRUE
f65_out(x64) -> f60_out(x64) :|: TRUE
f78_in -> f78_out :|: TRUE
f17_in(x69) -> f18_in(x69) :|: TRUE

----------------------------------------

(157) IntTRSCompressionProof (EQUIVALENT)
Compressed rules.
----------------------------------------

(158)
Obligation:
Rules:
f57_in(T47:0) -> f35_out(x51:0) :|: TRUE
f68_out(x57:0) -> f68_out(.(x54:0, x57:0)) :|: TRUE
f68_out(x12:0) -> f57_in(x12:0) :|: TRUE
f35_out(x58:0) -> f37_in(x59:0) :|: TRUE
f57_in(x23:0) -> f72_in(x23:0) :|: TRUE
f34_out(x29:0) -> f34_out(.(T70:0, x29:0)) :|: TRUE
f34_out(x60:0) -> f57_in(x61:0) :|: TRUE
f37_in(.(x1:0, x2:0)) -> f37_in(x2:0) :|: TRUE
f37_in(.(T61:0, T62:0)) -> f34_out(.(x40:0, x41:0)) :|: TRUE
f35_out(T94:0) -> f35_out(T94:0) :|: TRUE
f72_in(.(T123:0, T124:0)) -> f72_in(T124:0) :|: TRUE
f72_in(.(T114:0, T115:0)) -> f68_out(.(x26:0, x27:0)) :|: TRUE

----------------------------------------

(159) IRSFormatTransformerProof (EQUIVALENT)
Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %).
----------------------------------------

(160)
Obligation:
Rules:
f57_in(T47:0) -> f35_out(x51:0) :|: TRUE
f68_out(x57:0) -> f68_out(.(x54:0, x57:0)) :|: TRUE
f68_out(x12:0) -> f57_in(x12:0) :|: TRUE
f35_out(x58:0) -> f37_in(x59:0) :|: TRUE
f57_in(x23:0) -> f72_in(x23:0) :|: TRUE
f34_out(x29:0) -> f34_out(.(T70:0, x29:0)) :|: TRUE
f34_out(x60:0) -> f57_in(x61:0) :|: TRUE
f37_in(.(x1:0, x2:0)) -> f37_in(x2:0) :|: TRUE
f37_in(.(T61:0, T62:0)) -> f34_out(.(x40:0, x41:0)) :|: TRUE
f35_out(T94:0) -> f35_out(T94:0) :|: TRUE
f72_in(.(T123:0, T124:0)) -> f72_in(T124:0) :|: TRUE
f72_in(.(T114:0, T115:0)) -> f68_out(.(x26:0, x27:0)) :|: TRUE

----------------------------------------

(161) IRSwTTerminationDigraphProof (EQUIVALENT)
Constructed termination digraph!
Nodes:
(1) f57_in(T47:0) -> f35_out(x51:0) :|: TRUE
(2) f68_out(x57:0) -> f68_out(.(x54:0, x57:0)) :|: TRUE
(3) f68_out(x12:0) -> f57_in(x12:0) :|: TRUE
(4) f35_out(x58:0) -> f37_in(x59:0) :|: TRUE
(5) f57_in(x23:0) -> f72_in(x23:0) :|: TRUE
(6) f34_out(x29:0) -> f34_out(.(T70:0, x29:0)) :|: TRUE
(7) f34_out(x60:0) -> f57_in(x61:0) :|: TRUE
(8) f37_in(.(x1:0, x2:0)) -> f37_in(x2:0) :|: TRUE
(9) f37_in(.(T61:0, T62:0)) -> f34_out(.(x40:0, x41:0)) :|: TRUE
(10) f35_out(T94:0) -> f35_out(T94:0) :|: TRUE
(11) f72_in(.(T123:0, T124:0)) -> f72_in(T124:0) :|: TRUE
(12) f72_in(.(T114:0, T115:0)) -> f68_out(.(x26:0, x27:0)) :|: TRUE

Arcs:
(1) -> (4), (10)
(2) -> (2), (3)
(3) -> (1), (5)
(4) -> (8), (9)
(5) -> (11), (12)
(6) -> (6), (7)
(7) -> (1), (5)
(8) -> (8), (9)
(9) -> (6), (7)
(10) -> (4), (10)
(11) -> (11), (12)
(12) -> (2), (3)

This digraph is fully evaluated!
----------------------------------------

(162)
Obligation:

Termination digraph:
Nodes:
(1) f57_in(T47:0) -> f35_out(x51:0) :|: TRUE
(2) f68_out(x12:0) -> f57_in(x12:0) :|: TRUE
(3) f68_out(x57:0) -> f68_out(.(x54:0, x57:0)) :|: TRUE
(4) f72_in(.(T114:0, T115:0)) -> f68_out(.(x26:0, x27:0)) :|: TRUE
(5) f72_in(.(T123:0, T124:0)) -> f72_in(T124:0) :|: TRUE
(6) f57_in(x23:0) -> f72_in(x23:0) :|: TRUE
(7) f34_out(x60:0) -> f57_in(x61:0) :|: TRUE
(8) f34_out(x29:0) -> f34_out(.(T70:0, x29:0)) :|: TRUE
(9) f37_in(.(T61:0, T62:0)) -> f34_out(.(x40:0, x41:0)) :|: TRUE
(10) f37_in(.(x1:0, x2:0)) -> f37_in(x2:0) :|: TRUE
(11) f35_out(x58:0) -> f37_in(x59:0) :|: TRUE
(12) f35_out(T94:0) -> f35_out(T94:0) :|: TRUE

Arcs:
(1) -> (11), (12)
(2) -> (1), (6)
(3) -> (2), (3)
(4) -> (2), (3)
(5) -> (4), (5)
(6) -> (4), (5)
(7) -> (1), (6)
(8) -> (7), (8)
(9) -> (7), (8)
(10) -> (9), (10)
(11) -> (9), (10)
(12) -> (11), (12)

This digraph is fully evaluated!

----------------------------------------

(163) IntTRSUnneededArgumentFilterProof (EQUIVALENT)
Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements:

   .(x1, x2) -> .(x2)

----------------------------------------

(164)
Obligation:
Rules:
f57_in(T47:0) -> f35_out(x51:0) :|: TRUE
f68_out(x12:0) -> f57_in(x12:0) :|: TRUE
f68_out(x57:0) -> f68_out(.(x57:0)) :|: TRUE
f72_in(.(T115:0)) -> f68_out(.(x27:0)) :|: TRUE
f72_in(.(T124:0)) -> f72_in(T124:0) :|: TRUE
f57_in(x23:0) -> f72_in(x23:0) :|: TRUE
f34_out(x60:0) -> f57_in(x61:0) :|: TRUE
f34_out(x29:0) -> f34_out(.(x29:0)) :|: TRUE
f37_in(.(T62:0)) -> f34_out(.(x41:0)) :|: TRUE
f37_in(.(x2:0)) -> f37_in(x2:0) :|: TRUE
f35_out(x58:0) -> f37_in(x59:0) :|: TRUE
f35_out(T94:0) -> f35_out(T94:0) :|: TRUE

----------------------------------------

(165) IRSwTToIntTRSProof (SOUND)
Applied path-length measure to transform intTRS with terms to intTRS.
----------------------------------------

(166)
Obligation:
Rules:
f57_in(x) -> f35_out(x1) :|: TRUE
f68_out(x2) -> f57_in(x2) :|: TRUE
f68_out(x3) -> f68_out(.(x3)) :|: TRUE
f72_in(.(x4)) -> f68_out(.(x5)) :|: TRUE
f72_in(.(x6)) -> f72_in(x6) :|: TRUE
f57_in(x7) -> f72_in(x7) :|: TRUE
f34_out(x8) -> f57_in(x9) :|: TRUE
f34_out(x10) -> f34_out(.(x10)) :|: TRUE
f37_in(.(x11)) -> f34_out(.(x12)) :|: TRUE
f37_in(.(x13)) -> f37_in(x13) :|: TRUE
f35_out(x14) -> f37_in(x15) :|: TRUE
f35_out(x16) -> f35_out(x16) :|: TRUE
