(0) Obligation:

Clauses:

dis(or(B1, B2)) :- ','(con(B1), dis(B2)).
dis(B) :- con(B).
con(and(B1, B2)) :- ','(dis(B1), con(B2)).
con(B) :- bool(B).
bool(0).
bool(1).

Queries:

con(g).

(1) PrologToDTProblemTransformerProof (SOUND transformation)

Built DT problem from termination graph.

(2) Obligation:

Triples:

dis12(or(T32, T33)) :- con1(T32).
dis12(or(T32, T33)) :- ','(conc1(T32), dis12(T33)).
dis12(T44) :- con1(T44).
con1(and(or(T14, T15), T5)) :- con1(T14).
con1(and(or(T14, T15), T5)) :- ','(conc1(T14), dis12(T15)).
con1(and(or(T14, T15), T5)) :- ','(conc1(T14), ','(disc12(T15), con1(T5))).
con1(and(T57, T5)) :- con1(T57).
con1(and(T57, T5)) :- ','(conc1(T57), con1(T5)).

Clauses:

conc1(and(or(T14, T15), T5)) :- ','(conc1(T14), ','(disc12(T15), conc1(T5))).
conc1(and(T57, T5)) :- ','(conc1(T57), conc1(T5)).
conc1(0).
conc1(1).
disc12(or(T32, T33)) :- ','(conc1(T32), disc12(T33)).
disc12(T44) :- conc1(T44).

Afs:

con1(x1)  =  con1(x1)

(3) TriplesToPiDPProof (SOUND transformation)

We use the technique of [LOPSTR]. With regard to the inferred argument filtering the predicates were used in the following modes:
con1_in: (b)
conc1_in: (b)
disc12_in: (b)
dis12_in: (b)
Transforming TRIPLES into the following Term Rewriting System:
Pi DP problem:
The TRS P consists of the following rules:

CON1_IN_G(and(or(T14, T15), T5)) → U5_G(T14, T15, T5, con1_in_g(T14))
CON1_IN_G(and(or(T14, T15), T5)) → CON1_IN_G(T14)
CON1_IN_G(and(or(T14, T15), T5)) → U6_G(T14, T15, T5, conc1_in_g(T14))
U6_G(T14, T15, T5, conc1_out_g(T14)) → U7_G(T14, T15, T5, dis12_in_g(T15))
U6_G(T14, T15, T5, conc1_out_g(T14)) → DIS12_IN_G(T15)
DIS12_IN_G(or(T32, T33)) → U1_G(T32, T33, con1_in_g(T32))
DIS12_IN_G(or(T32, T33)) → CON1_IN_G(T32)
CON1_IN_G(and(T57, T5)) → U10_G(T57, T5, con1_in_g(T57))
CON1_IN_G(and(T57, T5)) → CON1_IN_G(T57)
CON1_IN_G(and(T57, T5)) → U11_G(T57, T5, conc1_in_g(T57))
U11_G(T57, T5, conc1_out_g(T57)) → U12_G(T57, T5, con1_in_g(T5))
U11_G(T57, T5, conc1_out_g(T57)) → CON1_IN_G(T5)
DIS12_IN_G(or(T32, T33)) → U2_G(T32, T33, conc1_in_g(T32))
U2_G(T32, T33, conc1_out_g(T32)) → U3_G(T32, T33, dis12_in_g(T33))
U2_G(T32, T33, conc1_out_g(T32)) → DIS12_IN_G(T33)
DIS12_IN_G(T44) → U4_G(T44, con1_in_g(T44))
DIS12_IN_G(T44) → CON1_IN_G(T44)
U6_G(T14, T15, T5, conc1_out_g(T14)) → U8_G(T14, T15, T5, disc12_in_g(T15))
U8_G(T14, T15, T5, disc12_out_g(T15)) → U9_G(T14, T15, T5, con1_in_g(T5))
U8_G(T14, T15, T5, disc12_out_g(T15)) → CON1_IN_G(T5)

The TRS R consists of the following rules:

conc1_in_g(and(or(T14, T15), T5)) → U14_g(T14, T15, T5, conc1_in_g(T14))
conc1_in_g(and(T57, T5)) → U17_g(T57, T5, conc1_in_g(T57))
conc1_in_g(0) → conc1_out_g(0)
conc1_in_g(1) → conc1_out_g(1)
U17_g(T57, T5, conc1_out_g(T57)) → U18_g(T57, T5, conc1_in_g(T5))
U18_g(T57, T5, conc1_out_g(T5)) → conc1_out_g(and(T57, T5))
U14_g(T14, T15, T5, conc1_out_g(T14)) → U15_g(T14, T15, T5, disc12_in_g(T15))
disc12_in_g(or(T32, T33)) → U19_g(T32, T33, conc1_in_g(T32))
U19_g(T32, T33, conc1_out_g(T32)) → U20_g(T32, T33, disc12_in_g(T33))
disc12_in_g(T44) → U21_g(T44, conc1_in_g(T44))
U21_g(T44, conc1_out_g(T44)) → disc12_out_g(T44)
U20_g(T32, T33, disc12_out_g(T33)) → disc12_out_g(or(T32, T33))
U15_g(T14, T15, T5, disc12_out_g(T15)) → U16_g(T14, T15, T5, conc1_in_g(T5))
U16_g(T14, T15, T5, conc1_out_g(T5)) → conc1_out_g(and(or(T14, T15), T5))

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

Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES

(4) Obligation:

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

CON1_IN_G(and(or(T14, T15), T5)) → U5_G(T14, T15, T5, con1_in_g(T14))
CON1_IN_G(and(or(T14, T15), T5)) → CON1_IN_G(T14)
CON1_IN_G(and(or(T14, T15), T5)) → U6_G(T14, T15, T5, conc1_in_g(T14))
U6_G(T14, T15, T5, conc1_out_g(T14)) → U7_G(T14, T15, T5, dis12_in_g(T15))
U6_G(T14, T15, T5, conc1_out_g(T14)) → DIS12_IN_G(T15)
DIS12_IN_G(or(T32, T33)) → U1_G(T32, T33, con1_in_g(T32))
DIS12_IN_G(or(T32, T33)) → CON1_IN_G(T32)
CON1_IN_G(and(T57, T5)) → U10_G(T57, T5, con1_in_g(T57))
CON1_IN_G(and(T57, T5)) → CON1_IN_G(T57)
CON1_IN_G(and(T57, T5)) → U11_G(T57, T5, conc1_in_g(T57))
U11_G(T57, T5, conc1_out_g(T57)) → U12_G(T57, T5, con1_in_g(T5))
U11_G(T57, T5, conc1_out_g(T57)) → CON1_IN_G(T5)
DIS12_IN_G(or(T32, T33)) → U2_G(T32, T33, conc1_in_g(T32))
U2_G(T32, T33, conc1_out_g(T32)) → U3_G(T32, T33, dis12_in_g(T33))
U2_G(T32, T33, conc1_out_g(T32)) → DIS12_IN_G(T33)
DIS12_IN_G(T44) → U4_G(T44, con1_in_g(T44))
DIS12_IN_G(T44) → CON1_IN_G(T44)
U6_G(T14, T15, T5, conc1_out_g(T14)) → U8_G(T14, T15, T5, disc12_in_g(T15))
U8_G(T14, T15, T5, disc12_out_g(T15)) → U9_G(T14, T15, T5, con1_in_g(T5))
U8_G(T14, T15, T5, disc12_out_g(T15)) → CON1_IN_G(T5)

The TRS R consists of the following rules:

conc1_in_g(and(or(T14, T15), T5)) → U14_g(T14, T15, T5, conc1_in_g(T14))
conc1_in_g(and(T57, T5)) → U17_g(T57, T5, conc1_in_g(T57))
conc1_in_g(0) → conc1_out_g(0)
conc1_in_g(1) → conc1_out_g(1)
U17_g(T57, T5, conc1_out_g(T57)) → U18_g(T57, T5, conc1_in_g(T5))
U18_g(T57, T5, conc1_out_g(T5)) → conc1_out_g(and(T57, T5))
U14_g(T14, T15, T5, conc1_out_g(T14)) → U15_g(T14, T15, T5, disc12_in_g(T15))
disc12_in_g(or(T32, T33)) → U19_g(T32, T33, conc1_in_g(T32))
U19_g(T32, T33, conc1_out_g(T32)) → U20_g(T32, T33, disc12_in_g(T33))
disc12_in_g(T44) → U21_g(T44, conc1_in_g(T44))
U21_g(T44, conc1_out_g(T44)) → disc12_out_g(T44)
U20_g(T32, T33, disc12_out_g(T33)) → disc12_out_g(or(T32, T33))
U15_g(T14, T15, T5, disc12_out_g(T15)) → U16_g(T14, T15, T5, conc1_in_g(T5))
U16_g(T14, T15, T5, conc1_out_g(T5)) → conc1_out_g(and(or(T14, T15), T5))

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

(5) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LOPSTR] contains 1 SCC with 8 less nodes.

(6) Obligation:

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

CON1_IN_G(and(or(T14, T15), T5)) → U6_G(T14, T15, T5, conc1_in_g(T14))
U6_G(T14, T15, T5, conc1_out_g(T14)) → DIS12_IN_G(T15)
DIS12_IN_G(or(T32, T33)) → CON1_IN_G(T32)
CON1_IN_G(and(or(T14, T15), T5)) → CON1_IN_G(T14)
CON1_IN_G(and(T57, T5)) → CON1_IN_G(T57)
CON1_IN_G(and(T57, T5)) → U11_G(T57, T5, conc1_in_g(T57))
U11_G(T57, T5, conc1_out_g(T57)) → CON1_IN_G(T5)
DIS12_IN_G(or(T32, T33)) → U2_G(T32, T33, conc1_in_g(T32))
U2_G(T32, T33, conc1_out_g(T32)) → DIS12_IN_G(T33)
DIS12_IN_G(T44) → CON1_IN_G(T44)
U6_G(T14, T15, T5, conc1_out_g(T14)) → U8_G(T14, T15, T5, disc12_in_g(T15))
U8_G(T14, T15, T5, disc12_out_g(T15)) → CON1_IN_G(T5)

The TRS R consists of the following rules:

conc1_in_g(and(or(T14, T15), T5)) → U14_g(T14, T15, T5, conc1_in_g(T14))
conc1_in_g(and(T57, T5)) → U17_g(T57, T5, conc1_in_g(T57))
conc1_in_g(0) → conc1_out_g(0)
conc1_in_g(1) → conc1_out_g(1)
U17_g(T57, T5, conc1_out_g(T57)) → U18_g(T57, T5, conc1_in_g(T5))
U18_g(T57, T5, conc1_out_g(T5)) → conc1_out_g(and(T57, T5))
U14_g(T14, T15, T5, conc1_out_g(T14)) → U15_g(T14, T15, T5, disc12_in_g(T15))
disc12_in_g(or(T32, T33)) → U19_g(T32, T33, conc1_in_g(T32))
U19_g(T32, T33, conc1_out_g(T32)) → U20_g(T32, T33, disc12_in_g(T33))
disc12_in_g(T44) → U21_g(T44, conc1_in_g(T44))
U21_g(T44, conc1_out_g(T44)) → disc12_out_g(T44)
U20_g(T32, T33, disc12_out_g(T33)) → disc12_out_g(or(T32, T33))
U15_g(T14, T15, T5, disc12_out_g(T15)) → U16_g(T14, T15, T5, conc1_in_g(T5))
U16_g(T14, T15, T5, conc1_out_g(T5)) → conc1_out_g(and(or(T14, T15), T5))

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

(7) PiDPToQDPProof (EQUIVALENT transformation)

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

(8) Obligation:

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

CON1_IN_G(and(or(T14, T15), T5)) → U6_G(T14, T15, T5, conc1_in_g(T14))
U6_G(T14, T15, T5, conc1_out_g(T14)) → DIS12_IN_G(T15)
DIS12_IN_G(or(T32, T33)) → CON1_IN_G(T32)
CON1_IN_G(and(or(T14, T15), T5)) → CON1_IN_G(T14)
CON1_IN_G(and(T57, T5)) → CON1_IN_G(T57)
CON1_IN_G(and(T57, T5)) → U11_G(T57, T5, conc1_in_g(T57))
U11_G(T57, T5, conc1_out_g(T57)) → CON1_IN_G(T5)
DIS12_IN_G(or(T32, T33)) → U2_G(T32, T33, conc1_in_g(T32))
U2_G(T32, T33, conc1_out_g(T32)) → DIS12_IN_G(T33)
DIS12_IN_G(T44) → CON1_IN_G(T44)
U6_G(T14, T15, T5, conc1_out_g(T14)) → U8_G(T14, T15, T5, disc12_in_g(T15))
U8_G(T14, T15, T5, disc12_out_g(T15)) → CON1_IN_G(T5)

The TRS R consists of the following rules:

conc1_in_g(and(or(T14, T15), T5)) → U14_g(T14, T15, T5, conc1_in_g(T14))
conc1_in_g(and(T57, T5)) → U17_g(T57, T5, conc1_in_g(T57))
conc1_in_g(0) → conc1_out_g(0)
conc1_in_g(1) → conc1_out_g(1)
U17_g(T57, T5, conc1_out_g(T57)) → U18_g(T57, T5, conc1_in_g(T5))
U18_g(T57, T5, conc1_out_g(T5)) → conc1_out_g(and(T57, T5))
U14_g(T14, T15, T5, conc1_out_g(T14)) → U15_g(T14, T15, T5, disc12_in_g(T15))
disc12_in_g(or(T32, T33)) → U19_g(T32, T33, conc1_in_g(T32))
U19_g(T32, T33, conc1_out_g(T32)) → U20_g(T32, T33, disc12_in_g(T33))
disc12_in_g(T44) → U21_g(T44, conc1_in_g(T44))
U21_g(T44, conc1_out_g(T44)) → disc12_out_g(T44)
U20_g(T32, T33, disc12_out_g(T33)) → disc12_out_g(or(T32, T33))
U15_g(T14, T15, T5, disc12_out_g(T15)) → U16_g(T14, T15, T5, conc1_in_g(T5))
U16_g(T14, T15, T5, conc1_out_g(T5)) → conc1_out_g(and(or(T14, T15), T5))

The set Q consists of the following terms:

conc1_in_g(x0)
U17_g(x0, x1, x2)
U18_g(x0, x1, x2)
U14_g(x0, x1, x2, x3)
disc12_in_g(x0)
U19_g(x0, x1, x2)
U21_g(x0, x1)
U20_g(x0, x1, x2)
U15_g(x0, x1, x2, x3)
U16_g(x0, x1, x2, x3)

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

(9) QDPSizeChangeProof (EQUIVALENT transformation)

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:

  • DIS12_IN_G(or(T32, T33)) → U2_G(T32, T33, conc1_in_g(T32))
    The graph contains the following edges 1 > 1, 1 > 2

  • CON1_IN_G(and(or(T14, T15), T5)) → U6_G(T14, T15, T5, conc1_in_g(T14))
    The graph contains the following edges 1 > 1, 1 > 2, 1 > 3

  • U6_G(T14, T15, T5, conc1_out_g(T14)) → DIS12_IN_G(T15)
    The graph contains the following edges 2 >= 1

  • U6_G(T14, T15, T5, conc1_out_g(T14)) → U8_G(T14, T15, T5, disc12_in_g(T15))
    The graph contains the following edges 1 >= 1, 4 > 1, 2 >= 2, 3 >= 3

  • CON1_IN_G(and(T57, T5)) → U11_G(T57, T5, conc1_in_g(T57))
    The graph contains the following edges 1 > 1, 1 > 2

  • U2_G(T32, T33, conc1_out_g(T32)) → DIS12_IN_G(T33)
    The graph contains the following edges 2 >= 1

  • U11_G(T57, T5, conc1_out_g(T57)) → CON1_IN_G(T5)
    The graph contains the following edges 2 >= 1

  • U8_G(T14, T15, T5, disc12_out_g(T15)) → CON1_IN_G(T5)
    The graph contains the following edges 3 >= 1

  • DIS12_IN_G(or(T32, T33)) → CON1_IN_G(T32)
    The graph contains the following edges 1 > 1

  • DIS12_IN_G(T44) → CON1_IN_G(T44)
    The graph contains the following edges 1 >= 1

  • CON1_IN_G(and(or(T14, T15), T5)) → CON1_IN_G(T14)
    The graph contains the following edges 1 > 1

  • CON1_IN_G(and(T57, T5)) → CON1_IN_G(T57)
    The graph contains the following edges 1 > 1

(10) YES