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/xE3ju.pl
# AProVE Commit ID: 23a904c96b029b0a549cde0d0d17dbccf967db59 jckassing 20260626 unpublished dirty


Left Termination of the query pattern

subset(a,g)

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

(0) Prolog
(1) PrologToPiTRSProof [SOUND, 0 ms]
(2) PiTRS
    (3) DependencyPairsProof [EQUIVALENT, 0 ms]
    (4) PiDP
    (5) DependencyGraphProof [EQUIVALENT, 0 ms]
    (6) AND
        (7) PiDP
            (8) UsableRulesProof [EQUIVALENT, 0 ms]
            (9) PiDP
            (10) PiDPToQDPProof [SOUND, 0 ms]
            (11) QDP
            (12) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (13) YES
        (14) PiDP
            (15) UsableRulesProof [EQUIVALENT, 0 ms]
            (16) PiDP
            (17) PiDPToQDPProof [SOUND, 0 ms]
            (18) QDP
            (19) TransformationProof [SOUND, 0 ms]
            (20) QDP
            (21) TransformationProof [EQUIVALENT, 0 ms]
            (22) QDP
(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) PrologToDTProblemTransformerProof [SOUND, 0 ms]
(46) TRIPLES
    (47) TriplesToPiDPProof [SOUND, 0 ms]
    (48) PiDP
    (49) DependencyGraphProof [EQUIVALENT, 0 ms]
    (50) AND
        (51) PiDP
            (52) UsableRulesProof [EQUIVALENT, 0 ms]
            (53) PiDP
            (54) PiDPToQDPProof [SOUND, 0 ms]
            (55) QDP
            (56) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (57) YES
        (58) PiDP
            (59) PiDPToQDPProof [SOUND, 0 ms]
            (60) QDP
            (61) TransformationProof [SOUND, 0 ms]
            (62) QDP
            (63) TransformationProof [EQUIVALENT, 0 ms]
            (64) QDP
(65) PrologToIRSwTTransformerProof [SOUND, 0 ms]
(66) AND
    (67) IRSwT
        (68) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms]
        (69) IRSwT
        (70) IntTRSCompressionProof [EQUIVALENT, 20 ms]
        (71) IRSwT
        (72) IRSFormatTransformerProof [EQUIVALENT, 0 ms]
        (73) IRSwT
        (74) IRSwTTerminationDigraphProof [EQUIVALENT, 0 ms]
        (75) IRSwT
        (76) IntTRSUnneededArgumentFilterProof [EQUIVALENT, 2 ms]
        (77) IRSwT
        (78) TempFilterProof [SOUND, 1 ms]
        (79) IRSwT
        (80) IRSwTToQDPProof [SOUND, 0 ms]
        (81) QDP
        (82) QDPSizeChangeProof [EQUIVALENT, 0 ms]
        (83) YES
    (84) IRSwT
        (85) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms]
        (86) IRSwT
        (87) IntTRSCompressionProof [EQUIVALENT, 5 ms]
        (88) IRSwT
        (89) IRSFormatTransformerProof [EQUIVALENT, 0 ms]
        (90) IRSwT
(91) PrologToTRSTransformerProof [SOUND, 0 ms]
(92) QTRS
    (93) DependencyPairsProof [EQUIVALENT, 0 ms]
    (94) QDP
    (95) DependencyGraphProof [EQUIVALENT, 0 ms]
    (96) AND
        (97) QDP
            (98) UsableRulesProof [EQUIVALENT, 0 ms]
            (99) QDP
            (100) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (101) YES
        (102) QDP
            (103) NonTerminationLoopProof [COMPLETE, 0 ms]
            (104) NO


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

(0)
Obligation:
Clauses:

member(X, .(Y, Xs)) :- member(X, Xs).
member(X, .(X, Xs)).
subset(.(X, Xs), Ys) :- ','(member(X, Ys), subset(Xs, Ys)).
subset([], Ys).


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

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

subset_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:

   subset_in_ag(.(X, Xs), Ys) -> U2_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(Y, Xs)) -> U1_ag(X, Y, Xs, member_in_ag(X, Xs))
   member_in_ag(X, .(X, Xs)) -> member_out_ag(X, .(X, Xs))
   U1_ag(X, Y, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(Y, Xs))
   U2_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U3_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
   subset_in_ag([], Ys) -> subset_out_ag([], Ys)
   U3_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys)

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

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

member_in_ag(x1, x2)  =  member_in_ag(x2)

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

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

member_out_ag(x1, x2)  =  member_out_ag(x1)

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

subset_out_ag(x1, x2)  =  subset_out_ag(x1)





Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog



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

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

   subset_in_ag(.(X, Xs), Ys) -> U2_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(Y, Xs)) -> U1_ag(X, Y, Xs, member_in_ag(X, Xs))
   member_in_ag(X, .(X, Xs)) -> member_out_ag(X, .(X, Xs))
   U1_ag(X, Y, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(Y, Xs))
   U2_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U3_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
   subset_in_ag([], Ys) -> subset_out_ag([], Ys)
   U3_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys)

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

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

member_in_ag(x1, x2)  =  member_in_ag(x2)

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

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

member_out_ag(x1, x2)  =  member_out_ag(x1)

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

subset_out_ag(x1, x2)  =  subset_out_ag(x1)



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

(3) 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:

   SUBSET_IN_AG(.(X, Xs), Ys) -> U2_AG(X, Xs, Ys, member_in_ag(X, Ys))
   SUBSET_IN_AG(.(X, Xs), Ys) -> MEMBER_IN_AG(X, Ys)
   MEMBER_IN_AG(X, .(Y, Xs)) -> U1_AG(X, Y, Xs, member_in_ag(X, Xs))
   MEMBER_IN_AG(X, .(Y, Xs)) -> MEMBER_IN_AG(X, Xs)
   U2_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> U3_AG(X, Xs, Ys, subset_in_ag(Xs, Ys))
   U2_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> SUBSET_IN_AG(Xs, Ys)

The TRS R consists of the following rules:

   subset_in_ag(.(X, Xs), Ys) -> U2_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(Y, Xs)) -> U1_ag(X, Y, Xs, member_in_ag(X, Xs))
   member_in_ag(X, .(X, Xs)) -> member_out_ag(X, .(X, Xs))
   U1_ag(X, Y, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(Y, Xs))
   U2_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U3_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
   subset_in_ag([], Ys) -> subset_out_ag([], Ys)
   U3_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys)

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

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

member_in_ag(x1, x2)  =  member_in_ag(x2)

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

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

member_out_ag(x1, x2)  =  member_out_ag(x1)

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

subset_out_ag(x1, x2)  =  subset_out_ag(x1)

SUBSET_IN_AG(x1, x2)  =  SUBSET_IN_AG(x2)

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

MEMBER_IN_AG(x1, x2)  =  MEMBER_IN_AG(x2)

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

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


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

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

   SUBSET_IN_AG(.(X, Xs), Ys) -> U2_AG(X, Xs, Ys, member_in_ag(X, Ys))
   SUBSET_IN_AG(.(X, Xs), Ys) -> MEMBER_IN_AG(X, Ys)
   MEMBER_IN_AG(X, .(Y, Xs)) -> U1_AG(X, Y, Xs, member_in_ag(X, Xs))
   MEMBER_IN_AG(X, .(Y, Xs)) -> MEMBER_IN_AG(X, Xs)
   U2_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> U3_AG(X, Xs, Ys, subset_in_ag(Xs, Ys))
   U2_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> SUBSET_IN_AG(Xs, Ys)

The TRS R consists of the following rules:

   subset_in_ag(.(X, Xs), Ys) -> U2_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(Y, Xs)) -> U1_ag(X, Y, Xs, member_in_ag(X, Xs))
   member_in_ag(X, .(X, Xs)) -> member_out_ag(X, .(X, Xs))
   U1_ag(X, Y, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(Y, Xs))
   U2_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U3_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
   subset_in_ag([], Ys) -> subset_out_ag([], Ys)
   U3_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys)

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

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

member_in_ag(x1, x2)  =  member_in_ag(x2)

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

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

member_out_ag(x1, x2)  =  member_out_ag(x1)

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

subset_out_ag(x1, x2)  =  subset_out_ag(x1)

SUBSET_IN_AG(x1, x2)  =  SUBSET_IN_AG(x2)

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

MEMBER_IN_AG(x1, x2)  =  MEMBER_IN_AG(x2)

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

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


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

(5) DependencyGraphProof (EQUIVALENT)
The approximation of the Dependency Graph [LOPSTR] contains 2 SCCs with 3 less nodes.
----------------------------------------

(6)
Complex Obligation (AND)

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

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

   MEMBER_IN_AG(X, .(Y, Xs)) -> MEMBER_IN_AG(X, Xs)

The TRS R consists of the following rules:

   subset_in_ag(.(X, Xs), Ys) -> U2_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(Y, Xs)) -> U1_ag(X, Y, Xs, member_in_ag(X, Xs))
   member_in_ag(X, .(X, Xs)) -> member_out_ag(X, .(X, Xs))
   U1_ag(X, Y, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(Y, Xs))
   U2_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U3_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
   subset_in_ag([], Ys) -> subset_out_ag([], Ys)
   U3_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys)

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

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

member_in_ag(x1, x2)  =  member_in_ag(x2)

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

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

member_out_ag(x1, x2)  =  member_out_ag(x1)

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

subset_out_ag(x1, x2)  =  subset_out_ag(x1)

MEMBER_IN_AG(x1, x2)  =  MEMBER_IN_AG(x2)


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

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

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

   MEMBER_IN_AG(X, .(Y, Xs)) -> MEMBER_IN_AG(X, Xs)

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
----------------------------------------

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

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

   MEMBER_IN_AG(.(Y, Xs)) -> MEMBER_IN_AG(Xs)

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

(12) QDPSizeChangeProof (EQUIVALENT)
By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 

From the DPs we obtained the following set of size-change graphs:
*MEMBER_IN_AG(.(Y, Xs)) -> MEMBER_IN_AG(Xs)
The graph contains the following edges 1 > 1


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

(13)
YES

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

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

   U2_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> SUBSET_IN_AG(Xs, Ys)
   SUBSET_IN_AG(.(X, Xs), Ys) -> U2_AG(X, Xs, Ys, member_in_ag(X, Ys))

The TRS R consists of the following rules:

   subset_in_ag(.(X, Xs), Ys) -> U2_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(Y, Xs)) -> U1_ag(X, Y, Xs, member_in_ag(X, Xs))
   member_in_ag(X, .(X, Xs)) -> member_out_ag(X, .(X, Xs))
   U1_ag(X, Y, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(Y, Xs))
   U2_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U3_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
   subset_in_ag([], Ys) -> subset_out_ag([], Ys)
   U3_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys)

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

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

member_in_ag(x1, x2)  =  member_in_ag(x2)

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

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

member_out_ag(x1, x2)  =  member_out_ag(x1)

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

subset_out_ag(x1, x2)  =  subset_out_ag(x1)

SUBSET_IN_AG(x1, x2)  =  SUBSET_IN_AG(x2)

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


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

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

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

   U2_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> SUBSET_IN_AG(Xs, Ys)
   SUBSET_IN_AG(.(X, Xs), Ys) -> U2_AG(X, Xs, Ys, member_in_ag(X, Ys))

The TRS R consists of the following rules:

   member_in_ag(X, .(Y, Xs)) -> U1_ag(X, Y, Xs, member_in_ag(X, Xs))
   member_in_ag(X, .(X, Xs)) -> member_out_ag(X, .(X, Xs))
   U1_ag(X, Y, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(Y, Xs))

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

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

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

member_out_ag(x1, x2)  =  member_out_ag(x1)

SUBSET_IN_AG(x1, x2)  =  SUBSET_IN_AG(x2)

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


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

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

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

   U2_AG(Ys, member_out_ag(X)) -> SUBSET_IN_AG(Ys)
   SUBSET_IN_AG(Ys) -> U2_AG(Ys, member_in_ag(Ys))

The TRS R consists of the following rules:

   member_in_ag(.(Y, Xs)) -> U1_ag(member_in_ag(Xs))
   member_in_ag(.(X, Xs)) -> member_out_ag(X)
   U1_ag(member_out_ag(X)) -> member_out_ag(X)

The set Q consists of the following terms:

   member_in_ag(x0)
   U1_ag(x0)

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

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

   (SUBSET_IN_AG(.(x0, x1)) -> U2_AG(.(x0, x1), U1_ag(member_in_ag(x1))),SUBSET_IN_AG(.(x0, x1)) -> U2_AG(.(x0, x1), U1_ag(member_in_ag(x1))))
   (SUBSET_IN_AG(.(x0, x1)) -> U2_AG(.(x0, x1), member_out_ag(x0)),SUBSET_IN_AG(.(x0, x1)) -> U2_AG(.(x0, x1), member_out_ag(x0)))


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

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

   U2_AG(Ys, member_out_ag(X)) -> SUBSET_IN_AG(Ys)
   SUBSET_IN_AG(.(x0, x1)) -> U2_AG(.(x0, x1), U1_ag(member_in_ag(x1)))
   SUBSET_IN_AG(.(x0, x1)) -> U2_AG(.(x0, x1), member_out_ag(x0))

The TRS R consists of the following rules:

   member_in_ag(.(Y, Xs)) -> U1_ag(member_in_ag(Xs))
   member_in_ag(.(X, Xs)) -> member_out_ag(X)
   U1_ag(member_out_ag(X)) -> member_out_ag(X)

The set Q consists of the following terms:

   member_in_ag(x0)
   U1_ag(x0)

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

(21) TransformationProof (EQUIVALENT)
By instantiating [LPAR04] the rule U2_AG(Ys, member_out_ag(X)) -> SUBSET_IN_AG(Ys) we obtained the following new rules [LPAR04]:

   (U2_AG(.(z0, z1), member_out_ag(x1)) -> SUBSET_IN_AG(.(z0, z1)),U2_AG(.(z0, z1), member_out_ag(x1)) -> SUBSET_IN_AG(.(z0, z1)))
   (U2_AG(.(z0, z1), member_out_ag(z0)) -> SUBSET_IN_AG(.(z0, z1)),U2_AG(.(z0, z1), member_out_ag(z0)) -> SUBSET_IN_AG(.(z0, z1)))


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

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

   SUBSET_IN_AG(.(x0, x1)) -> U2_AG(.(x0, x1), U1_ag(member_in_ag(x1)))
   SUBSET_IN_AG(.(x0, x1)) -> U2_AG(.(x0, x1), member_out_ag(x0))
   U2_AG(.(z0, z1), member_out_ag(x1)) -> SUBSET_IN_AG(.(z0, z1))
   U2_AG(.(z0, z1), member_out_ag(z0)) -> SUBSET_IN_AG(.(z0, z1))

The TRS R consists of the following rules:

   member_in_ag(.(Y, Xs)) -> U1_ag(member_in_ag(Xs))
   member_in_ag(.(X, Xs)) -> member_out_ag(X)
   U1_ag(member_out_ag(X)) -> member_out_ag(X)

The set Q consists of the following terms:

   member_in_ag(x0)
   U1_ag(x0)

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

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

subset_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:

   subset_in_ag(.(X, Xs), Ys) -> U2_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(Y, Xs)) -> U1_ag(X, Y, Xs, member_in_ag(X, Xs))
   member_in_ag(X, .(X, Xs)) -> member_out_ag(X, .(X, Xs))
   U1_ag(X, Y, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(Y, Xs))
   U2_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U3_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
   subset_in_ag([], Ys) -> subset_out_ag([], Ys)
   U3_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys)

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

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

member_in_ag(x1, x2)  =  member_in_ag(x2)

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

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

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

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

subset_out_ag(x1, x2)  =  subset_out_ag(x1, x2)





Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog



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

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

   subset_in_ag(.(X, Xs), Ys) -> U2_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(Y, Xs)) -> U1_ag(X, Y, Xs, member_in_ag(X, Xs))
   member_in_ag(X, .(X, Xs)) -> member_out_ag(X, .(X, Xs))
   U1_ag(X, Y, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(Y, Xs))
   U2_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U3_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
   subset_in_ag([], Ys) -> subset_out_ag([], Ys)
   U3_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys)

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

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

member_in_ag(x1, x2)  =  member_in_ag(x2)

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

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

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

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

subset_out_ag(x1, x2)  =  subset_out_ag(x1, x2)



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

(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:

   SUBSET_IN_AG(.(X, Xs), Ys) -> U2_AG(X, Xs, Ys, member_in_ag(X, Ys))
   SUBSET_IN_AG(.(X, Xs), Ys) -> MEMBER_IN_AG(X, Ys)
   MEMBER_IN_AG(X, .(Y, Xs)) -> U1_AG(X, Y, Xs, member_in_ag(X, Xs))
   MEMBER_IN_AG(X, .(Y, Xs)) -> MEMBER_IN_AG(X, Xs)
   U2_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> U3_AG(X, Xs, Ys, subset_in_ag(Xs, Ys))
   U2_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> SUBSET_IN_AG(Xs, Ys)

The TRS R consists of the following rules:

   subset_in_ag(.(X, Xs), Ys) -> U2_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(Y, Xs)) -> U1_ag(X, Y, Xs, member_in_ag(X, Xs))
   member_in_ag(X, .(X, Xs)) -> member_out_ag(X, .(X, Xs))
   U1_ag(X, Y, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(Y, Xs))
   U2_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U3_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
   subset_in_ag([], Ys) -> subset_out_ag([], Ys)
   U3_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys)

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

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

member_in_ag(x1, x2)  =  member_in_ag(x2)

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

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

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

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

subset_out_ag(x1, x2)  =  subset_out_ag(x1, x2)

SUBSET_IN_AG(x1, x2)  =  SUBSET_IN_AG(x2)

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

MEMBER_IN_AG(x1, x2)  =  MEMBER_IN_AG(x2)

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

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


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

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

   SUBSET_IN_AG(.(X, Xs), Ys) -> U2_AG(X, Xs, Ys, member_in_ag(X, Ys))
   SUBSET_IN_AG(.(X, Xs), Ys) -> MEMBER_IN_AG(X, Ys)
   MEMBER_IN_AG(X, .(Y, Xs)) -> U1_AG(X, Y, Xs, member_in_ag(X, Xs))
   MEMBER_IN_AG(X, .(Y, Xs)) -> MEMBER_IN_AG(X, Xs)
   U2_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> U3_AG(X, Xs, Ys, subset_in_ag(Xs, Ys))
   U2_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> SUBSET_IN_AG(Xs, Ys)

The TRS R consists of the following rules:

   subset_in_ag(.(X, Xs), Ys) -> U2_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(Y, Xs)) -> U1_ag(X, Y, Xs, member_in_ag(X, Xs))
   member_in_ag(X, .(X, Xs)) -> member_out_ag(X, .(X, Xs))
   U1_ag(X, Y, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(Y, Xs))
   U2_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U3_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
   subset_in_ag([], Ys) -> subset_out_ag([], Ys)
   U3_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys)

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

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

member_in_ag(x1, x2)  =  member_in_ag(x2)

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

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

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

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

subset_out_ag(x1, x2)  =  subset_out_ag(x1, x2)

SUBSET_IN_AG(x1, x2)  =  SUBSET_IN_AG(x2)

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

MEMBER_IN_AG(x1, x2)  =  MEMBER_IN_AG(x2)

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

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


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

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

(28)
Complex Obligation (AND)

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

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

   MEMBER_IN_AG(X, .(Y, Xs)) -> MEMBER_IN_AG(X, Xs)

The TRS R consists of the following rules:

   subset_in_ag(.(X, Xs), Ys) -> U2_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(Y, Xs)) -> U1_ag(X, Y, Xs, member_in_ag(X, Xs))
   member_in_ag(X, .(X, Xs)) -> member_out_ag(X, .(X, Xs))
   U1_ag(X, Y, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(Y, Xs))
   U2_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U3_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
   subset_in_ag([], Ys) -> subset_out_ag([], Ys)
   U3_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys)

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

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

member_in_ag(x1, x2)  =  member_in_ag(x2)

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

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

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

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

subset_out_ag(x1, x2)  =  subset_out_ag(x1, x2)

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, .(Y, Xs)) -> MEMBER_IN_AG(X, Xs)

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(.(Y, Xs)) -> MEMBER_IN_AG(Xs)

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(.(Y, Xs)) -> MEMBER_IN_AG(Xs)
The graph contains the following edges 1 > 1


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

(35)
YES

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

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

   U2_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> SUBSET_IN_AG(Xs, Ys)
   SUBSET_IN_AG(.(X, Xs), Ys) -> U2_AG(X, Xs, Ys, member_in_ag(X, Ys))

The TRS R consists of the following rules:

   subset_in_ag(.(X, Xs), Ys) -> U2_ag(X, Xs, Ys, member_in_ag(X, Ys))
   member_in_ag(X, .(Y, Xs)) -> U1_ag(X, Y, Xs, member_in_ag(X, Xs))
   member_in_ag(X, .(X, Xs)) -> member_out_ag(X, .(X, Xs))
   U1_ag(X, Y, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(Y, Xs))
   U2_ag(X, Xs, Ys, member_out_ag(X, Ys)) -> U3_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
   subset_in_ag([], Ys) -> subset_out_ag([], Ys)
   U3_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) -> subset_out_ag(.(X, Xs), Ys)

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

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

member_in_ag(x1, x2)  =  member_in_ag(x2)

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

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

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

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

subset_out_ag(x1, x2)  =  subset_out_ag(x1, x2)

SUBSET_IN_AG(x1, x2)  =  SUBSET_IN_AG(x2)

U2_AG(x1, x2, x3, x4)  =  U2_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:

   U2_AG(X, Xs, Ys, member_out_ag(X, Ys)) -> SUBSET_IN_AG(Xs, Ys)
   SUBSET_IN_AG(.(X, Xs), Ys) -> U2_AG(X, Xs, Ys, member_in_ag(X, Ys))

The TRS R consists of the following rules:

   member_in_ag(X, .(Y, Xs)) -> U1_ag(X, Y, Xs, member_in_ag(X, Xs))
   member_in_ag(X, .(X, Xs)) -> member_out_ag(X, .(X, Xs))
   U1_ag(X, Y, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(Y, Xs))

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

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

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

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

SUBSET_IN_AG(x1, x2)  =  SUBSET_IN_AG(x2)

U2_AG(x1, x2, x3, x4)  =  U2_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:

   U2_AG(Ys, member_out_ag(X, Ys)) -> SUBSET_IN_AG(Ys)
   SUBSET_IN_AG(Ys) -> U2_AG(Ys, member_in_ag(Ys))

The TRS R consists of the following rules:

   member_in_ag(.(Y, Xs)) -> U1_ag(Y, Xs, member_in_ag(Xs))
   member_in_ag(.(X, Xs)) -> member_out_ag(X, .(X, Xs))
   U1_ag(Y, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(Y, Xs))

The set Q consists of the following terms:

   member_in_ag(x0)
   U1_ag(x0, x1, x2)

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

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

   (SUBSET_IN_AG(.(x0, x1)) -> U2_AG(.(x0, x1), U1_ag(x0, x1, member_in_ag(x1))),SUBSET_IN_AG(.(x0, x1)) -> U2_AG(.(x0, x1), U1_ag(x0, x1, member_in_ag(x1))))
   (SUBSET_IN_AG(.(x0, x1)) -> U2_AG(.(x0, x1), member_out_ag(x0, .(x0, x1))),SUBSET_IN_AG(.(x0, x1)) -> U2_AG(.(x0, x1), member_out_ag(x0, .(x0, x1))))


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

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

   U2_AG(Ys, member_out_ag(X, Ys)) -> SUBSET_IN_AG(Ys)
   SUBSET_IN_AG(.(x0, x1)) -> U2_AG(.(x0, x1), U1_ag(x0, x1, member_in_ag(x1)))
   SUBSET_IN_AG(.(x0, x1)) -> U2_AG(.(x0, x1), member_out_ag(x0, .(x0, x1)))

The TRS R consists of the following rules:

   member_in_ag(.(Y, Xs)) -> U1_ag(Y, Xs, member_in_ag(Xs))
   member_in_ag(.(X, Xs)) -> member_out_ag(X, .(X, Xs))
   U1_ag(Y, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(Y, Xs))

The set Q consists of the following terms:

   member_in_ag(x0)
   U1_ag(x0, x1, x2)

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

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

   (U2_AG(.(z0, z1), member_out_ag(x1, .(z0, z1))) -> SUBSET_IN_AG(.(z0, z1)),U2_AG(.(z0, z1), member_out_ag(x1, .(z0, z1))) -> SUBSET_IN_AG(.(z0, z1)))
   (U2_AG(.(z0, z1), member_out_ag(z0, .(z0, z1))) -> SUBSET_IN_AG(.(z0, z1)),U2_AG(.(z0, z1), member_out_ag(z0, .(z0, z1))) -> SUBSET_IN_AG(.(z0, z1)))


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

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

   SUBSET_IN_AG(.(x0, x1)) -> U2_AG(.(x0, x1), U1_ag(x0, x1, member_in_ag(x1)))
   SUBSET_IN_AG(.(x0, x1)) -> U2_AG(.(x0, x1), member_out_ag(x0, .(x0, x1)))
   U2_AG(.(z0, z1), member_out_ag(x1, .(z0, z1))) -> SUBSET_IN_AG(.(z0, z1))
   U2_AG(.(z0, z1), member_out_ag(z0, .(z0, z1))) -> SUBSET_IN_AG(.(z0, z1))

The TRS R consists of the following rules:

   member_in_ag(.(Y, Xs)) -> U1_ag(Y, Xs, member_in_ag(Xs))
   member_in_ag(.(X, Xs)) -> member_out_ag(X, .(X, Xs))
   U1_ag(Y, Xs, member_out_ag(X, Xs)) -> member_out_ag(X, .(Y, Xs))

The set Q consists of the following terms:

   member_in_ag(x0)
   U1_ag(x0, x1, x2)

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

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

{
    "root": 4,
    "program": {
        "directives": [],
        "clauses": [
            [
                "(member X (. Y Xs))",
                "(member X Xs)"
            ],
            [
                "(member X (. X Xs))",
                null
            ],
            [
                "(subset (. X Xs) Ys)",
                "(',' (member X Ys) (subset Xs Ys))"
            ],
            [
                "(subset ([]) Ys)",
                null
            ]
        ]
    },
    "graph": {
        "nodes": {
            "29": {
                "goal": [
                    {
                        "clause": -1,
                        "scope": -1,
                        "term": "(',' (member T9 T8) (subset T10 T8))"
                    },
                    {
                        "clause": 3,
                        "scope": 1,
                        "term": "(subset T1 T8)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T8"],
                    "free": [],
                    "exprvars": []
                }
            },
            "190": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "191": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "170": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "192": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "171": {
                "goal": [{
                    "clause": 1,
                    "scope": 2,
                    "term": "(',' (member T9 T8) (subset T10 T8))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T8"],
                    "free": [],
                    "exprvars": []
                }
            },
            "193": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "type": "Nodes",
            "172": {
                "goal": [
                    {
                        "clause": -1,
                        "scope": 2,
                        "term": null
                    },
                    {
                        "clause": 3,
                        "scope": 1,
                        "term": "(subset T1 T8)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T8"],
                    "free": [],
                    "exprvars": []
                }
            },
            "194": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "30": {
                "goal": [{
                    "clause": 3,
                    "scope": 1,
                    "term": "(subset T1 T2)"
                }],
                "kb": {
                    "nonunifying": [[
                        "(subset T1 T2)",
                        "(subset (. X4 X5) X6)"
                    ]],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [
                        "X4",
                        "X5",
                        "X6"
                    ],
                    "exprvars": []
                }
            },
            "31": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 2,
                        "term": "(',' (member T9 T8) (subset T10 T8))"
                    },
                    {
                        "clause": 1,
                        "scope": 2,
                        "term": "(',' (member T9 T8) (subset T10 T8))"
                    },
                    {
                        "clause": -1,
                        "scope": 2,
                        "term": null
                    },
                    {
                        "clause": 3,
                        "scope": 1,
                        "term": "(subset T1 T8)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T8"],
                    "free": [],
                    "exprvars": []
                }
            },
            "97": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 3,
                        "term": "(member T26 T25)"
                    },
                    {
                        "clause": 1,
                        "scope": 3,
                        "term": "(member T26 T25)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T25"],
                    "free": [],
                    "exprvars": []
                }
            },
            "34": {
                "goal": [{
                    "clause": 0,
                    "scope": 2,
                    "term": "(',' (member T9 T8) (subset T10 T8))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T8"],
                    "free": [],
                    "exprvars": []
                }
            },
            "35": {
                "goal": [
                    {
                        "clause": 1,
                        "scope": 2,
                        "term": "(',' (member T9 T8) (subset T10 T8))"
                    },
                    {
                        "clause": -1,
                        "scope": 2,
                        "term": null
                    },
                    {
                        "clause": 3,
                        "scope": 1,
                        "term": "(subset T1 T8)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T8"],
                    "free": [],
                    "exprvars": []
                }
            },
            "181": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(subset T74 (. T72 T73))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T72",
                        "T73"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "183": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "186": {
                "goal": [{
                    "clause": 3,
                    "scope": 1,
                    "term": "(subset T1 T8)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T8"],
                    "free": [],
                    "exprvars": []
                }
            },
            "189": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "168": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "4": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(subset T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "169": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "104": {
                "goal": [{
                    "clause": 0,
                    "scope": 3,
                    "term": "(member T26 T25)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T25"],
                    "free": [],
                    "exprvars": []
                }
            },
            "6": {
                "goal": [
                    {
                        "clause": 2,
                        "scope": 1,
                        "term": "(subset T1 T2)"
                    },
                    {
                        "clause": 3,
                        "scope": 1,
                        "term": "(subset T1 T2)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "105": {
                "goal": [{
                    "clause": 1,
                    "scope": 3,
                    "term": "(member T26 T25)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T25"],
                    "free": [],
                    "exprvars": []
                }
            },
            "108": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(member T50 T49)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T49"],
                    "free": [],
                    "exprvars": []
                }
            },
            "82": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (member T26 T25) (subset T27 (. T24 T25)))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T24",
                        "T25"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "109": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "83": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "86": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(member T26 T25)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T25"],
                    "free": [],
                    "exprvars": []
                }
            },
            "87": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(subset T31 (. T24 T25))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T24",
                        "T25"
                    ],
                    "free": [],
                    "exprvars": []
                }
            }
        },
        "edges": [
            {
                "from": 4,
                "to": 6,
                "label": "CASE"
            },
            {
                "from": 6,
                "to": 29,
                "label": "EVAL with clause\nsubset(.(X4, X5), X6) :- ','(member(X4, X6), subset(X5, X6)).\nand substitutionX4 -> T9,\nX5 -> T10,\nT1 -> .(T9, T10),\nT2 -> T8,\nX6 -> T8,\nT6 -> T9,\nT7 -> T10"
            },
            {
                "from": 6,
                "to": 30,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 29,
                "to": 31,
                "label": "CASE"
            },
            {
                "from": 30,
                "to": 192,
                "label": "EVAL with clause\nsubset([], X72).\nand substitutionT1 -> [],\nT2 -> T83,\nX72 -> T83"
            },
            {
                "from": 30,
                "to": 193,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 31,
                "to": 34,
                "label": "PARALLEL"
            },
            {
                "from": 31,
                "to": 35,
                "label": "PARALLEL"
            },
            {
                "from": 34,
                "to": 82,
                "label": "EVAL with clause\nmember(X19, .(X20, X21)) :- member(X19, X21).\nand substitutionT9 -> T26,\nX19 -> T26,\nX20 -> T24,\nX21 -> T25,\nT8 -> .(T24, T25),\nT23 -> T26,\nT10 -> T27"
            },
            {
                "from": 34,
                "to": 83,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 35,
                "to": 171,
                "label": "PARALLEL"
            },
            {
                "from": 35,
                "to": 172,
                "label": "PARALLEL"
            },
            {
                "from": 82,
                "to": 86,
                "label": "SPLIT 1"
            },
            {
                "from": 82,
                "to": 87,
                "label": "SPLIT 2\nnew knowledge:\nT26 is ground\nT25 is ground\nreplacements:T27 -> T31"
            },
            {
                "from": 86,
                "to": 97,
                "label": "CASE"
            },
            {
                "from": 87,
                "to": 4,
                "label": "INSTANCE with matching:\nT1 -> T31\nT2 -> .(T24, T25)"
            },
            {
                "from": 97,
                "to": 104,
                "label": "PARALLEL"
            },
            {
                "from": 97,
                "to": 105,
                "label": "PARALLEL"
            },
            {
                "from": 104,
                "to": 108,
                "label": "EVAL with clause\nmember(X40, .(X41, X42)) :- member(X40, X42).\nand substitutionT26 -> T50,\nX40 -> T50,\nX41 -> T48,\nX42 -> T49,\nT25 -> .(T48, T49),\nT47 -> T50"
            },
            {
                "from": 104,
                "to": 109,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 105,
                "to": 168,
                "label": "EVAL with clause\nmember(X50, .(X50, X51)).\nand substitutionT26 -> T58,\nX50 -> T58,\nX51 -> T59,\nT25 -> .(T58, T59)"
            },
            {
                "from": 105,
                "to": 169,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 108,
                "to": 86,
                "label": "INSTANCE with matching:\nT26 -> T50\nT25 -> T49"
            },
            {
                "from": 168,
                "to": 170,
                "label": "SUCCESS"
            },
            {
                "from": 171,
                "to": 181,
                "label": "EVAL with clause\nmember(X63, .(X63, X64)).\nand substitutionT9 -> T72,\nX63 -> T72,\nX64 -> T73,\nT8 -> .(T72, T73),\nT10 -> T74"
            },
            {
                "from": 171,
                "to": 183,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 172,
                "to": 186,
                "label": "FAILURE"
            },
            {
                "from": 181,
                "to": 4,
                "label": "INSTANCE with matching:\nT1 -> T74\nT2 -> .(T72, T73)"
            },
            {
                "from": 186,
                "to": 189,
                "label": "EVAL with clause\nsubset([], X70).\nand substitutionT1 -> [],\nT8 -> T81,\nX70 -> T81"
            },
            {
                "from": 186,
                "to": 190,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 189,
                "to": 191,
                "label": "SUCCESS"
            },
            {
                "from": 192,
                "to": 194,
                "label": "SUCCESS"
            }
        ],
        "type": "Graph"
    }
}

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

(46)
Obligation:
Triples:

memberB(X1, .(X2, X3)) :- memberB(X1, X3).
subsetA(.(X1, X2), .(X3, X4)) :- memberB(X1, X4).
subsetA(.(X1, X2), .(X3, X4)) :- ','(membercB(X1, X4), subsetA(X2, .(X3, X4))).
subsetA(.(X1, X2), .(X1, X3)) :- subsetA(X2, .(X1, X3)).

Clauses:

subsetcA(.(X1, X2), .(X3, X4)) :- ','(membercB(X1, X4), subsetcA(X2, .(X3, X4))).
subsetcA(.(X1, X2), .(X1, X3)) :- subsetcA(X2, .(X1, X3)).
subsetcA([], X1).
subsetcA([], X1).
membercB(X1, .(X2, X3)) :- membercB(X1, X3).
membercB(X1, .(X1, X2)).

Afs:

subsetA(x1, x2)  =  subsetA(x2)


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

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

subsetA_in_2: (f,b)

memberB_in_2: (f,b)

membercB_in_2: (f,b)

Transforming TRIPLES into the following Term Rewriting System:

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

   SUBSETA_IN_AG(.(X1, X2), .(X3, X4)) -> U2_AG(X1, X2, X3, X4, memberB_in_ag(X1, X4))
   SUBSETA_IN_AG(.(X1, X2), .(X3, X4)) -> MEMBERB_IN_AG(X1, X4)
   MEMBERB_IN_AG(X1, .(X2, X3)) -> U1_AG(X1, X2, X3, memberB_in_ag(X1, X3))
   MEMBERB_IN_AG(X1, .(X2, X3)) -> MEMBERB_IN_AG(X1, X3)
   SUBSETA_IN_AG(.(X1, X2), .(X3, X4)) -> U3_AG(X1, X2, X3, X4, membercB_in_ag(X1, X4))
   U3_AG(X1, X2, X3, X4, membercB_out_ag(X1, X4)) -> U4_AG(X1, X2, X3, X4, subsetA_in_ag(X2, .(X3, X4)))
   U3_AG(X1, X2, X3, X4, membercB_out_ag(X1, X4)) -> SUBSETA_IN_AG(X2, .(X3, X4))
   SUBSETA_IN_AG(.(X1, X2), .(X1, X3)) -> U5_AG(X1, X2, X3, subsetA_in_ag(X2, .(X1, X3)))
   SUBSETA_IN_AG(.(X1, X2), .(X1, X3)) -> SUBSETA_IN_AG(X2, .(X1, X3))

The TRS R consists of the following rules:

   membercB_in_ag(X1, .(X2, X3)) -> U10_ag(X1, X2, X3, membercB_in_ag(X1, X3))
   membercB_in_ag(X1, .(X1, X2)) -> membercB_out_ag(X1, .(X1, X2))
   U10_ag(X1, X2, X3, membercB_out_ag(X1, X3)) -> membercB_out_ag(X1, .(X2, X3))

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

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

memberB_in_ag(x1, x2)  =  memberB_in_ag(x2)

membercB_in_ag(x1, x2)  =  membercB_in_ag(x2)

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

membercB_out_ag(x1, x2)  =  membercB_out_ag(x1, x2)

SUBSETA_IN_AG(x1, x2)  =  SUBSETA_IN_AG(x2)

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

MEMBERB_IN_AG(x1, x2)  =  MEMBERB_IN_AG(x2)

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

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

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

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


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


Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES



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

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

   SUBSETA_IN_AG(.(X1, X2), .(X3, X4)) -> U2_AG(X1, X2, X3, X4, memberB_in_ag(X1, X4))
   SUBSETA_IN_AG(.(X1, X2), .(X3, X4)) -> MEMBERB_IN_AG(X1, X4)
   MEMBERB_IN_AG(X1, .(X2, X3)) -> U1_AG(X1, X2, X3, memberB_in_ag(X1, X3))
   MEMBERB_IN_AG(X1, .(X2, X3)) -> MEMBERB_IN_AG(X1, X3)
   SUBSETA_IN_AG(.(X1, X2), .(X3, X4)) -> U3_AG(X1, X2, X3, X4, membercB_in_ag(X1, X4))
   U3_AG(X1, X2, X3, X4, membercB_out_ag(X1, X4)) -> U4_AG(X1, X2, X3, X4, subsetA_in_ag(X2, .(X3, X4)))
   U3_AG(X1, X2, X3, X4, membercB_out_ag(X1, X4)) -> SUBSETA_IN_AG(X2, .(X3, X4))
   SUBSETA_IN_AG(.(X1, X2), .(X1, X3)) -> U5_AG(X1, X2, X3, subsetA_in_ag(X2, .(X1, X3)))
   SUBSETA_IN_AG(.(X1, X2), .(X1, X3)) -> SUBSETA_IN_AG(X2, .(X1, X3))

The TRS R consists of the following rules:

   membercB_in_ag(X1, .(X2, X3)) -> U10_ag(X1, X2, X3, membercB_in_ag(X1, X3))
   membercB_in_ag(X1, .(X1, X2)) -> membercB_out_ag(X1, .(X1, X2))
   U10_ag(X1, X2, X3, membercB_out_ag(X1, X3)) -> membercB_out_ag(X1, .(X2, X3))

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

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

memberB_in_ag(x1, x2)  =  memberB_in_ag(x2)

membercB_in_ag(x1, x2)  =  membercB_in_ag(x2)

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

membercB_out_ag(x1, x2)  =  membercB_out_ag(x1, x2)

SUBSETA_IN_AG(x1, x2)  =  SUBSETA_IN_AG(x2)

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

MEMBERB_IN_AG(x1, x2)  =  MEMBERB_IN_AG(x2)

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

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

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

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


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

(49) DependencyGraphProof (EQUIVALENT)
The approximation of the Dependency Graph [LOPSTR] contains 2 SCCs with 5 less nodes.
----------------------------------------

(50)
Complex Obligation (AND)

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

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

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

The TRS R consists of the following rules:

   membercB_in_ag(X1, .(X2, X3)) -> U10_ag(X1, X2, X3, membercB_in_ag(X1, X3))
   membercB_in_ag(X1, .(X1, X2)) -> membercB_out_ag(X1, .(X1, X2))
   U10_ag(X1, X2, X3, membercB_out_ag(X1, X3)) -> membercB_out_ag(X1, .(X2, X3))

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

membercB_in_ag(x1, x2)  =  membercB_in_ag(x2)

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

membercB_out_ag(x1, x2)  =  membercB_out_ag(x1, x2)

MEMBERB_IN_AG(x1, x2)  =  MEMBERB_IN_AG(x2)


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

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

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

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

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

MEMBERB_IN_AG(x1, x2)  =  MEMBERB_IN_AG(x2)


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

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

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

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

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

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


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

(57)
YES

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

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

   SUBSETA_IN_AG(.(X1, X2), .(X3, X4)) -> U3_AG(X1, X2, X3, X4, membercB_in_ag(X1, X4))
   U3_AG(X1, X2, X3, X4, membercB_out_ag(X1, X4)) -> SUBSETA_IN_AG(X2, .(X3, X4))
   SUBSETA_IN_AG(.(X1, X2), .(X1, X3)) -> SUBSETA_IN_AG(X2, .(X1, X3))

The TRS R consists of the following rules:

   membercB_in_ag(X1, .(X2, X3)) -> U10_ag(X1, X2, X3, membercB_in_ag(X1, X3))
   membercB_in_ag(X1, .(X1, X2)) -> membercB_out_ag(X1, .(X1, X2))
   U10_ag(X1, X2, X3, membercB_out_ag(X1, X3)) -> membercB_out_ag(X1, .(X2, X3))

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

membercB_in_ag(x1, x2)  =  membercB_in_ag(x2)

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

membercB_out_ag(x1, x2)  =  membercB_out_ag(x1, x2)

SUBSETA_IN_AG(x1, x2)  =  SUBSETA_IN_AG(x2)

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


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

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

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

   SUBSETA_IN_AG(.(X3, X4)) -> U3_AG(X3, X4, membercB_in_ag(X4))
   U3_AG(X3, X4, membercB_out_ag(X1, X4)) -> SUBSETA_IN_AG(.(X3, X4))
   SUBSETA_IN_AG(.(X1, X3)) -> SUBSETA_IN_AG(.(X1, X3))

The TRS R consists of the following rules:

   membercB_in_ag(.(X2, X3)) -> U10_ag(X2, X3, membercB_in_ag(X3))
   membercB_in_ag(.(X1, X2)) -> membercB_out_ag(X1, .(X1, X2))
   U10_ag(X2, X3, membercB_out_ag(X1, X3)) -> membercB_out_ag(X1, .(X2, X3))

The set Q consists of the following terms:

   membercB_in_ag(x0)
   U10_ag(x0, x1, x2)

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

(61) TransformationProof (SOUND)
By narrowing [LPAR04] the rule SUBSETA_IN_AG(.(X3, X4)) -> U3_AG(X3, X4, membercB_in_ag(X4)) at position [2] we obtained the following new rules [LPAR04]:

   (SUBSETA_IN_AG(.(y0, .(x0, x1))) -> U3_AG(y0, .(x0, x1), U10_ag(x0, x1, membercB_in_ag(x1))),SUBSETA_IN_AG(.(y0, .(x0, x1))) -> U3_AG(y0, .(x0, x1), U10_ag(x0, x1, membercB_in_ag(x1))))
   (SUBSETA_IN_AG(.(y0, .(x0, x1))) -> U3_AG(y0, .(x0, x1), membercB_out_ag(x0, .(x0, x1))),SUBSETA_IN_AG(.(y0, .(x0, x1))) -> U3_AG(y0, .(x0, x1), membercB_out_ag(x0, .(x0, x1))))


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

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

   U3_AG(X3, X4, membercB_out_ag(X1, X4)) -> SUBSETA_IN_AG(.(X3, X4))
   SUBSETA_IN_AG(.(X1, X3)) -> SUBSETA_IN_AG(.(X1, X3))
   SUBSETA_IN_AG(.(y0, .(x0, x1))) -> U3_AG(y0, .(x0, x1), U10_ag(x0, x1, membercB_in_ag(x1)))
   SUBSETA_IN_AG(.(y0, .(x0, x1))) -> U3_AG(y0, .(x0, x1), membercB_out_ag(x0, .(x0, x1)))

The TRS R consists of the following rules:

   membercB_in_ag(.(X2, X3)) -> U10_ag(X2, X3, membercB_in_ag(X3))
   membercB_in_ag(.(X1, X2)) -> membercB_out_ag(X1, .(X1, X2))
   U10_ag(X2, X3, membercB_out_ag(X1, X3)) -> membercB_out_ag(X1, .(X2, X3))

The set Q consists of the following terms:

   membercB_in_ag(x0)
   U10_ag(x0, x1, x2)

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

(63) TransformationProof (EQUIVALENT)
By instantiating [LPAR04] the rule U3_AG(X3, X4, membercB_out_ag(X1, X4)) -> SUBSETA_IN_AG(.(X3, X4)) we obtained the following new rules [LPAR04]:

   (U3_AG(z0, .(z1, z2), membercB_out_ag(x2, .(z1, z2))) -> SUBSETA_IN_AG(.(z0, .(z1, z2))),U3_AG(z0, .(z1, z2), membercB_out_ag(x2, .(z1, z2))) -> SUBSETA_IN_AG(.(z0, .(z1, z2))))
   (U3_AG(z0, .(z1, z2), membercB_out_ag(z1, .(z1, z2))) -> SUBSETA_IN_AG(.(z0, .(z1, z2))),U3_AG(z0, .(z1, z2), membercB_out_ag(z1, .(z1, z2))) -> SUBSETA_IN_AG(.(z0, .(z1, z2))))


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

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

   SUBSETA_IN_AG(.(X1, X3)) -> SUBSETA_IN_AG(.(X1, X3))
   SUBSETA_IN_AG(.(y0, .(x0, x1))) -> U3_AG(y0, .(x0, x1), U10_ag(x0, x1, membercB_in_ag(x1)))
   SUBSETA_IN_AG(.(y0, .(x0, x1))) -> U3_AG(y0, .(x0, x1), membercB_out_ag(x0, .(x0, x1)))
   U3_AG(z0, .(z1, z2), membercB_out_ag(x2, .(z1, z2))) -> SUBSETA_IN_AG(.(z0, .(z1, z2)))
   U3_AG(z0, .(z1, z2), membercB_out_ag(z1, .(z1, z2))) -> SUBSETA_IN_AG(.(z0, .(z1, z2)))

The TRS R consists of the following rules:

   membercB_in_ag(.(X2, X3)) -> U10_ag(X2, X3, membercB_in_ag(X3))
   membercB_in_ag(.(X1, X2)) -> membercB_out_ag(X1, .(X1, X2))
   U10_ag(X2, X3, membercB_out_ag(X1, X3)) -> membercB_out_ag(X1, .(X2, X3))

The set Q consists of the following terms:

   membercB_in_ag(x0)
   U10_ag(x0, x1, x2)

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

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

{
    "root": 1,
    "program": {
        "directives": [],
        "clauses": [
            [
                "(member X (. Y Xs))",
                "(member X Xs)"
            ],
            [
                "(member X (. X Xs))",
                null
            ],
            [
                "(subset (. X Xs) Ys)",
                "(',' (member X Ys) (subset Xs Ys))"
            ],
            [
                "(subset ([]) Ys)",
                null
            ]
        ]
    },
    "graph": {
        "nodes": {
            "180": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(subset T23 T17)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T17"],
                    "free": [],
                    "exprvars": []
                }
            },
            "182": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 2,
                        "term": "(member T18 T17)"
                    },
                    {
                        "clause": 1,
                        "scope": 2,
                        "term": "(member T18 T17)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T17"],
                    "free": [],
                    "exprvars": []
                }
            },
            "type": "Nodes",
            "184": {
                "goal": [{
                    "clause": 0,
                    "scope": 2,
                    "term": "(member T18 T17)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T17"],
                    "free": [],
                    "exprvars": []
                }
            },
            "195": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "163": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (member T18 T17) (subset T19 T17))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T17"],
                    "free": [],
                    "exprvars": []
                }
            },
            "185": {
                "goal": [{
                    "clause": 1,
                    "scope": 2,
                    "term": "(member T18 T17)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T17"],
                    "free": [],
                    "exprvars": []
                }
            },
            "196": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "164": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "197": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "187": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(member T42 T41)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T41"],
                    "free": [],
                    "exprvars": []
                }
            },
            "198": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "1": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(subset T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "188": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "199": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "2": {
                "goal": [
                    {
                        "clause": 2,
                        "scope": 1,
                        "term": "(subset T1 T2)"
                    },
                    {
                        "clause": 3,
                        "scope": 1,
                        "term": "(subset T1 T2)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "200": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "179": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(member T18 T17)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T17"],
                    "free": [],
                    "exprvars": []
                }
            },
            "7": {
                "goal": [{
                    "clause": 2,
                    "scope": 1,
                    "term": "(subset T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "8": {
                "goal": [{
                    "clause": 3,
                    "scope": 1,
                    "term": "(subset T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            }
        },
        "edges": [
            {
                "from": 1,
                "to": 2,
                "label": "CASE"
            },
            {
                "from": 2,
                "to": 7,
                "label": "PARALLEL"
            },
            {
                "from": 2,
                "to": 8,
                "label": "PARALLEL"
            },
            {
                "from": 7,
                "to": 163,
                "label": "EVAL with clause\nsubset(.(X13, X14), X15) :- ','(member(X13, X15), subset(X14, X15)).\nand substitutionX13 -> T18,\nX14 -> T19,\nT1 -> .(T18, T19),\nT2 -> T17,\nX15 -> T17,\nT15 -> T18,\nT16 -> T19"
            },
            {
                "from": 7,
                "to": 164,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 8,
                "to": 198,
                "label": "EVAL with clause\nsubset([], X51).\nand substitutionT1 -> [],\nT2 -> T57,\nX51 -> T57"
            },
            {
                "from": 8,
                "to": 199,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 163,
                "to": 179,
                "label": "SPLIT 1"
            },
            {
                "from": 163,
                "to": 180,
                "label": "SPLIT 2\nnew knowledge:\nT18 is ground\nT17 is ground\nreplacements:T19 -> T23"
            },
            {
                "from": 179,
                "to": 182,
                "label": "CASE"
            },
            {
                "from": 180,
                "to": 1,
                "label": "INSTANCE with matching:\nT1 -> T23\nT2 -> T17"
            },
            {
                "from": 182,
                "to": 184,
                "label": "PARALLEL"
            },
            {
                "from": 182,
                "to": 185,
                "label": "PARALLEL"
            },
            {
                "from": 184,
                "to": 187,
                "label": "EVAL with clause\nmember(X34, .(X35, X36)) :- member(X34, X36).\nand substitutionT18 -> T42,\nX34 -> T42,\nX35 -> T40,\nX36 -> T41,\nT17 -> .(T40, T41),\nT39 -> T42"
            },
            {
                "from": 184,
                "to": 188,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 185,
                "to": 195,
                "label": "EVAL with clause\nmember(X44, .(X44, X45)).\nand substitutionT18 -> T50,\nX44 -> T50,\nX45 -> T51,\nT17 -> .(T50, T51)"
            },
            {
                "from": 185,
                "to": 196,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 187,
                "to": 179,
                "label": "INSTANCE with matching:\nT18 -> T42\nT17 -> T41"
            },
            {
                "from": 195,
                "to": 197,
                "label": "SUCCESS"
            },
            {
                "from": 198,
                "to": 200,
                "label": "SUCCESS"
            }
        ],
        "type": "Graph"
    }
}

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

(66)
Complex Obligation (AND)

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

(67)
Obligation:
Rules:
f179_in(T17) -> f182_in(T17) :|: TRUE
f182_out(x) -> f179_out(x) :|: TRUE
f182_in(x1) -> f184_in(x1) :|: TRUE
f184_out(x2) -> f182_out(x2) :|: TRUE
f185_out(x3) -> f182_out(x3) :|: TRUE
f182_in(x4) -> f185_in(x4) :|: TRUE
f179_out(T41) -> f187_out(T41) :|: TRUE
f187_in(x5) -> f179_in(x5) :|: TRUE
f188_out -> f184_out(x6) :|: TRUE
f184_in(.(x7, x8)) -> f187_in(x8) :|: TRUE
f184_in(x9) -> f188_in :|: TRUE
f187_out(x10) -> f184_out(.(x11, x10)) :|: TRUE
f2_out(T2) -> f1_out(T2) :|: TRUE
f1_in(x12) -> f2_in(x12) :|: TRUE
f2_in(x13) -> f8_in(x13) :|: TRUE
f8_out(x14) -> f2_out(x14) :|: TRUE
f7_out(x15) -> f2_out(x15) :|: TRUE
f2_in(x16) -> f7_in(x16) :|: TRUE
f163_out(x17) -> f7_out(x17) :|: TRUE
f7_in(x18) -> f163_in(x18) :|: TRUE
f164_out -> f7_out(x19) :|: TRUE
f7_in(x20) -> f164_in :|: TRUE
f179_out(x21) -> f180_in(x21) :|: TRUE
f180_out(x22) -> f163_out(x22) :|: TRUE
f163_in(x23) -> f179_in(x23) :|: TRUE
Start term: f1_in(T2)

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

(68) IRSwTSimpleDependencyGraphProof (EQUIVALENT)
Constructed simple dependency graph.

Simplified to the following IRSwTs:

intTRSProblem:
f179_in(T17) -> f182_in(T17) :|: TRUE
f182_in(x1) -> f184_in(x1) :|: TRUE
f187_in(x5) -> f179_in(x5) :|: TRUE
f184_in(.(x7, x8)) -> f187_in(x8) :|: TRUE


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

(69)
Obligation:
Rules:
f179_in(T17) -> f182_in(T17) :|: TRUE
f182_in(x1) -> f184_in(x1) :|: TRUE
f187_in(x5) -> f179_in(x5) :|: TRUE
f184_in(.(x7, x8)) -> f187_in(x8) :|: TRUE

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

(70) IntTRSCompressionProof (EQUIVALENT)
Compressed rules.
----------------------------------------

(71)
Obligation:
Rules:
f187_in(.(x7:0, x8:0)) -> f187_in(x8:0) :|: TRUE

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

(72) IRSFormatTransformerProof (EQUIVALENT)
Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %).
----------------------------------------

(73)
Obligation:
Rules:
f187_in(.(x7:0, x8:0)) -> f187_in(x8:0) :|: TRUE

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

(74) IRSwTTerminationDigraphProof (EQUIVALENT)
Constructed termination digraph!
Nodes:
(1) f187_in(.(x7:0, x8:0)) -> f187_in(x8:0) :|: TRUE

Arcs:
(1) -> (1)

This digraph is fully evaluated!
----------------------------------------

(75)
Obligation:

Termination digraph:
Nodes:
(1) f187_in(.(x7:0, x8:0)) -> f187_in(x8:0) :|: TRUE

Arcs:
(1) -> (1)

This digraph is fully evaluated!

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

(76) IntTRSUnneededArgumentFilterProof (EQUIVALENT)
Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements:

   .(x1, x2) -> .(x2)

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

(77)
Obligation:
Rules:
f187_in(.(x8:0)) -> f187_in(x8:0) :|: TRUE

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

(78) TempFilterProof (SOUND)
Used the following sort dictionary for filtering: 
f187_in(VARIABLE)
.(VARIABLE)
Removed predefined arithmetic.
----------------------------------------

(79)
Obligation:
Rules:
f187_in(.(x8:0)) -> f187_in(x8:0)

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

(80) IRSwTToQDPProof (SOUND)
Removed the integers and created a QDP-Problem.
----------------------------------------

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

   f187_in(.(x8:0)) -> f187_in(x8:0)

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

(82) 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:
*f187_in(.(x8:0)) -> f187_in(x8:0)
The graph contains the following edges 1 > 1


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

(83)
YES

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

(84)
Obligation:
Rules:
f1_out(T17) -> f180_out(T17) :|: TRUE
f180_in(x) -> f1_in(x) :|: TRUE
f2_out(T2) -> f1_out(T2) :|: TRUE
f1_in(x1) -> f2_in(x1) :|: TRUE
f179_out(x2) -> f180_in(x2) :|: TRUE
f180_out(x3) -> f163_out(x3) :|: TRUE
f163_in(x4) -> f179_in(x4) :|: TRUE
f196_out -> f185_out(x5) :|: TRUE
f185_in(x6) -> f196_in :|: TRUE
f185_in(.(T50, T51)) -> f195_in :|: TRUE
f195_out -> f185_out(.(x7, x8)) :|: TRUE
f163_out(x9) -> f7_out(x9) :|: TRUE
f7_in(x10) -> f163_in(x10) :|: TRUE
f164_out -> f7_out(x11) :|: TRUE
f7_in(x12) -> f164_in :|: TRUE
f179_in(x13) -> f182_in(x13) :|: TRUE
f182_out(x14) -> f179_out(x14) :|: TRUE
f2_in(x15) -> f8_in(x15) :|: TRUE
f8_out(x16) -> f2_out(x16) :|: TRUE
f7_out(x17) -> f2_out(x17) :|: TRUE
f2_in(x18) -> f7_in(x18) :|: TRUE
f182_in(x19) -> f184_in(x19) :|: TRUE
f184_out(x20) -> f182_out(x20) :|: TRUE
f185_out(x21) -> f182_out(x21) :|: TRUE
f182_in(x22) -> f185_in(x22) :|: TRUE
f195_in -> f195_out :|: TRUE
f179_out(T41) -> f187_out(T41) :|: TRUE
f187_in(x23) -> f179_in(x23) :|: TRUE
f188_out -> f184_out(x24) :|: TRUE
f184_in(.(x25, x26)) -> f187_in(x26) :|: TRUE
f184_in(x27) -> f188_in :|: TRUE
f187_out(x28) -> f184_out(.(x29, x28)) :|: TRUE
Start term: f1_in(T2)

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

(85) IRSwTSimpleDependencyGraphProof (EQUIVALENT)
Constructed simple dependency graph.

Simplified to the following IRSwTs:

intTRSProblem:
f180_in(x) -> f1_in(x) :|: TRUE
f1_in(x1) -> f2_in(x1) :|: TRUE
f179_out(x2) -> f180_in(x2) :|: TRUE
f163_in(x4) -> f179_in(x4) :|: TRUE
f185_in(.(T50, T51)) -> f195_in :|: TRUE
f195_out -> f185_out(.(x7, x8)) :|: TRUE
f7_in(x10) -> f163_in(x10) :|: TRUE
f179_in(x13) -> f182_in(x13) :|: TRUE
f182_out(x14) -> f179_out(x14) :|: TRUE
f2_in(x18) -> f7_in(x18) :|: TRUE
f182_in(x19) -> f184_in(x19) :|: TRUE
f184_out(x20) -> f182_out(x20) :|: TRUE
f185_out(x21) -> f182_out(x21) :|: TRUE
f182_in(x22) -> f185_in(x22) :|: TRUE
f195_in -> f195_out :|: TRUE
f179_out(T41) -> f187_out(T41) :|: TRUE
f187_in(x23) -> f179_in(x23) :|: TRUE
f184_in(.(x25, x26)) -> f187_in(x26) :|: TRUE
f187_out(x28) -> f184_out(.(x29, x28)) :|: TRUE


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

(86)
Obligation:
Rules:
f180_in(x) -> f1_in(x) :|: TRUE
f1_in(x1) -> f2_in(x1) :|: TRUE
f179_out(x2) -> f180_in(x2) :|: TRUE
f163_in(x4) -> f179_in(x4) :|: TRUE
f185_in(.(T50, T51)) -> f195_in :|: TRUE
f195_out -> f185_out(.(x7, x8)) :|: TRUE
f7_in(x10) -> f163_in(x10) :|: TRUE
f179_in(x13) -> f182_in(x13) :|: TRUE
f182_out(x14) -> f179_out(x14) :|: TRUE
f2_in(x18) -> f7_in(x18) :|: TRUE
f182_in(x19) -> f184_in(x19) :|: TRUE
f184_out(x20) -> f182_out(x20) :|: TRUE
f185_out(x21) -> f182_out(x21) :|: TRUE
f182_in(x22) -> f185_in(x22) :|: TRUE
f195_in -> f195_out :|: TRUE
f179_out(T41) -> f187_out(T41) :|: TRUE
f187_in(x23) -> f179_in(x23) :|: TRUE
f184_in(.(x25, x26)) -> f187_in(x26) :|: TRUE
f187_out(x28) -> f184_out(.(x29, x28)) :|: TRUE

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

(87) IntTRSCompressionProof (EQUIVALENT)
Compressed rules.
----------------------------------------

(88)
Obligation:
Rules:
f182_out(x14:0) -> f182_in(x14:0) :|: TRUE
f182_out(x) -> f182_out(.(x1, x)) :|: TRUE
f182_in(.(T50:0, T51:0)) -> f182_out(.(x7:0, x8:0)) :|: TRUE
f182_in(.(x25:0, x26:0)) -> f182_in(x26:0) :|: TRUE

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

(89) IRSFormatTransformerProof (EQUIVALENT)
Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %).
----------------------------------------

(90)
Obligation:
Rules:
f182_out(x14:0) -> f182_in(x14:0) :|: TRUE
f182_out(x) -> f182_out(.(x1, x)) :|: TRUE
f182_in(.(T50:0, T51:0)) -> f182_out(.(x7:0, x8:0)) :|: TRUE
f182_in(.(x25:0, x26:0)) -> f182_in(x26:0) :|: TRUE

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

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

{
    "root": 3,
    "program": {
        "directives": [],
        "clauses": [
            [
                "(member X (. Y Xs))",
                "(member X Xs)"
            ],
            [
                "(member X (. X Xs))",
                null
            ],
            [
                "(subset (. X Xs) Ys)",
                "(',' (member X Ys) (subset Xs Ys))"
            ],
            [
                "(subset ([]) Ys)",
                null
            ]
        ]
    },
    "graph": {
        "nodes": {
            "27": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (member T18 T17) (subset T19 T17))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T17"],
                    "free": [],
                    "exprvars": []
                }
            },
            "28": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "type": "Nodes",
            "165": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "166": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "167": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "3": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(subset T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "201": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "202": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "5": {
                "goal": [
                    {
                        "clause": 2,
                        "scope": 1,
                        "term": "(subset T1 T2)"
                    },
                    {
                        "clause": 3,
                        "scope": 1,
                        "term": "(subset T1 T2)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "203": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "106": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(member T42 T41)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T41"],
                    "free": [],
                    "exprvars": []
                }
            },
            "80": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(member T18 T17)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T17"],
                    "free": [],
                    "exprvars": []
                }
            },
            "107": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "9": {
                "goal": [{
                    "clause": 2,
                    "scope": 1,
                    "term": "(subset T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            },
            "81": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(subset T23 T17)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T17"],
                    "free": [],
                    "exprvars": []
                }
            },
            "94": {
                "goal": [{
                    "clause": 0,
                    "scope": 2,
                    "term": "(member T18 T17)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T17"],
                    "free": [],
                    "exprvars": []
                }
            },
            "95": {
                "goal": [{
                    "clause": 1,
                    "scope": 2,
                    "term": "(member T18 T17)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T17"],
                    "free": [],
                    "exprvars": []
                }
            },
            "85": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 2,
                        "term": "(member T18 T17)"
                    },
                    {
                        "clause": 1,
                        "scope": 2,
                        "term": "(member T18 T17)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T17"],
                    "free": [],
                    "exprvars": []
                }
            },
            "10": {
                "goal": [{
                    "clause": 3,
                    "scope": 1,
                    "term": "(subset T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T2"],
                    "free": [],
                    "exprvars": []
                }
            }
        },
        "edges": [
            {
                "from": 3,
                "to": 5,
                "label": "CASE"
            },
            {
                "from": 5,
                "to": 9,
                "label": "PARALLEL"
            },
            {
                "from": 5,
                "to": 10,
                "label": "PARALLEL"
            },
            {
                "from": 9,
                "to": 27,
                "label": "EVAL with clause\nsubset(.(X13, X14), X15) :- ','(member(X13, X15), subset(X14, X15)).\nand substitutionX13 -> T18,\nX14 -> T19,\nT1 -> .(T18, T19),\nT2 -> T17,\nX15 -> T17,\nT15 -> T18,\nT16 -> T19"
            },
            {
                "from": 9,
                "to": 28,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 10,
                "to": 201,
                "label": "EVAL with clause\nsubset([], X51).\nand substitutionT1 -> [],\nT2 -> T57,\nX51 -> T57"
            },
            {
                "from": 10,
                "to": 202,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 27,
                "to": 80,
                "label": "SPLIT 1"
            },
            {
                "from": 27,
                "to": 81,
                "label": "SPLIT 2\nnew knowledge:\nT18 is ground\nT17 is ground\nreplacements:T19 -> T23"
            },
            {
                "from": 80,
                "to": 85,
                "label": "CASE"
            },
            {
                "from": 81,
                "to": 3,
                "label": "INSTANCE with matching:\nT1 -> T23\nT2 -> T17"
            },
            {
                "from": 85,
                "to": 94,
                "label": "PARALLEL"
            },
            {
                "from": 85,
                "to": 95,
                "label": "PARALLEL"
            },
            {
                "from": 94,
                "to": 106,
                "label": "EVAL with clause\nmember(X34, .(X35, X36)) :- member(X34, X36).\nand substitutionT18 -> T42,\nX34 -> T42,\nX35 -> T40,\nX36 -> T41,\nT17 -> .(T40, T41),\nT39 -> T42"
            },
            {
                "from": 94,
                "to": 107,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 95,
                "to": 165,
                "label": "EVAL with clause\nmember(X44, .(X44, X45)).\nand substitutionT18 -> T50,\nX44 -> T50,\nX45 -> T51,\nT17 -> .(T50, T51)"
            },
            {
                "from": 95,
                "to": 166,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 106,
                "to": 80,
                "label": "INSTANCE with matching:\nT18 -> T42\nT17 -> T41"
            },
            {
                "from": 165,
                "to": 167,
                "label": "SUCCESS"
            },
            {
                "from": 201,
                "to": 203,
                "label": "SUCCESS"
            }
        ],
        "type": "Graph"
    }
}

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

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

   f3_in(T17) -> U1(f27_in(T17), T17)
   U1(f27_out1(T18, T19), T17) -> f3_out1(.(T18, T19))
   f3_in(T57) -> f3_out1([])
   f80_in(.(T40, T41)) -> U2(f80_in(T41), .(T40, T41))
   U2(f80_out1(T42), .(T40, T41)) -> f80_out1(T42)
   f80_in(.(T50, T51)) -> f80_out1(T50)
   f27_in(T17) -> U3(f80_in(T17), T17)
   U3(f80_out1(T18), T17) -> U4(f3_in(T17), T17, T18)
   U4(f3_out1(T23), T17, T18) -> f27_out1(T18, T23)

Q is empty.

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

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

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

   F3_IN(T17) -> U1^1(f27_in(T17), T17)
   F3_IN(T17) -> F27_IN(T17)
   F80_IN(.(T40, T41)) -> U2^1(f80_in(T41), .(T40, T41))
   F80_IN(.(T40, T41)) -> F80_IN(T41)
   F27_IN(T17) -> U3^1(f80_in(T17), T17)
   F27_IN(T17) -> F80_IN(T17)
   U3^1(f80_out1(T18), T17) -> U4^1(f3_in(T17), T17, T18)
   U3^1(f80_out1(T18), T17) -> F3_IN(T17)

The TRS R consists of the following rules:

   f3_in(T17) -> U1(f27_in(T17), T17)
   U1(f27_out1(T18, T19), T17) -> f3_out1(.(T18, T19))
   f3_in(T57) -> f3_out1([])
   f80_in(.(T40, T41)) -> U2(f80_in(T41), .(T40, T41))
   U2(f80_out1(T42), .(T40, T41)) -> f80_out1(T42)
   f80_in(.(T50, T51)) -> f80_out1(T50)
   f27_in(T17) -> U3(f80_in(T17), T17)
   U3(f80_out1(T18), T17) -> U4(f3_in(T17), T17, T18)
   U4(f3_out1(T23), T17, T18) -> f27_out1(T18, T23)

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

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

(96)
Complex Obligation (AND)

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

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

   F80_IN(.(T40, T41)) -> F80_IN(T41)

The TRS R consists of the following rules:

   f3_in(T17) -> U1(f27_in(T17), T17)
   U1(f27_out1(T18, T19), T17) -> f3_out1(.(T18, T19))
   f3_in(T57) -> f3_out1([])
   f80_in(.(T40, T41)) -> U2(f80_in(T41), .(T40, T41))
   U2(f80_out1(T42), .(T40, T41)) -> f80_out1(T42)
   f80_in(.(T50, T51)) -> f80_out1(T50)
   f27_in(T17) -> U3(f80_in(T17), T17)
   U3(f80_out1(T18), T17) -> U4(f3_in(T17), T17, T18)
   U4(f3_out1(T23), T17, T18) -> f27_out1(T18, T23)

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

(98) 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.
----------------------------------------

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

   F80_IN(.(T40, T41)) -> F80_IN(T41)

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

(100) 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:
*F80_IN(.(T40, T41)) -> F80_IN(T41)
The graph contains the following edges 1 > 1


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

(101)
YES

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

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

   F3_IN(T17) -> F27_IN(T17)
   F27_IN(T17) -> U3^1(f80_in(T17), T17)
   U3^1(f80_out1(T18), T17) -> F3_IN(T17)

The TRS R consists of the following rules:

   f3_in(T17) -> U1(f27_in(T17), T17)
   U1(f27_out1(T18, T19), T17) -> f3_out1(.(T18, T19))
   f3_in(T57) -> f3_out1([])
   f80_in(.(T40, T41)) -> U2(f80_in(T41), .(T40, T41))
   U2(f80_out1(T42), .(T40, T41)) -> f80_out1(T42)
   f80_in(.(T50, T51)) -> f80_out1(T50)
   f27_in(T17) -> U3(f80_in(T17), T17)
   U3(f80_out1(T18), T17) -> U4(f3_in(T17), T17, T18)
   U4(f3_out1(T23), T17, T18) -> f27_out1(T18, T23)

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

(103) 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 = F27_IN(.(T50, T51)) evaluates to  t =F27_IN(.(T50, T51))

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

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

F27_IN(.(T50, T51)) -> U3^1(f80_in(.(T50, T51)), .(T50, T51))
with rule F27_IN(T17) -> U3^1(f80_in(T17), T17) at position [] and matcher [T17 / .(T50, T51)]

U3^1(f80_in(.(T50, T51)), .(T50, T51)) -> U3^1(f80_out1(T50), .(T50, T51))
with rule f80_in(.(T50', T51')) -> f80_out1(T50') at position [0] and matcher [T50' / T50, T51' / T51]

U3^1(f80_out1(T50), .(T50, T51)) -> F3_IN(.(T50, T51))
with rule U3^1(f80_out1(T18), T17') -> F3_IN(T17') at position [] and matcher [T18 / T50, T17' / .(T50, T51)]

F3_IN(.(T50, T51)) -> F27_IN(.(T50, T51))
with rule F3_IN(T17) -> F27_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.




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

(104)
NO
