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

Query: con(g)

(1) PrologToPiTRSViaGraphTransformerProof (SOUND transformation)

Transformed Prolog program to (Pi-)TRS.

(2) Obligation:

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

conA_in_g(and(or(T14, T15), T5)) → U1_g(T14, T15, T5, pB_in_ggg(T14, T15, T5))
pB_in_ggg(T14, T15, T5) → U5_ggg(T14, T15, T5, conA_in_g(T14))
conA_in_g(and(T57, T5)) → U2_g(T57, T5, pC_in_gg(T57, T5))
pC_in_gg(T57, T5) → U11_gg(T57, T5, conA_in_g(T57))
conA_in_g(0) → conA_out_g(0)
conA_in_g(1) → conA_out_g(1)
U11_gg(T57, T5, conA_out_g(T57)) → U12_gg(T57, T5, conA_in_g(T5))
U12_gg(T57, T5, conA_out_g(T5)) → pC_out_gg(T57, T5)
U2_g(T57, T5, pC_out_gg(T57, T5)) → conA_out_g(and(T57, T5))
U5_ggg(T14, T15, T5, conA_out_g(T14)) → U6_ggg(T14, T15, T5, pF_in_gg(T15, T5))
pF_in_gg(T15, T5) → U7_gg(T15, T5, disD_in_g(T15))
disD_in_g(or(T32, T33)) → U3_g(T32, T33, pE_in_gg(T32, T33))
pE_in_gg(T32, T33) → U9_gg(T32, T33, conA_in_g(T32))
U9_gg(T32, T33, conA_out_g(T32)) → U10_gg(T32, T33, disD_in_g(T33))
disD_in_g(T44) → U4_g(T44, conA_in_g(T44))
U4_g(T44, conA_out_g(T44)) → disD_out_g(T44)
U10_gg(T32, T33, disD_out_g(T33)) → pE_out_gg(T32, T33)
U3_g(T32, T33, pE_out_gg(T32, T33)) → disD_out_g(or(T32, T33))
U7_gg(T15, T5, disD_out_g(T15)) → U8_gg(T15, T5, conA_in_g(T5))
U8_gg(T15, T5, conA_out_g(T5)) → pF_out_gg(T15, T5)
U6_ggg(T14, T15, T5, pF_out_gg(T15, T5)) → pB_out_ggg(T14, T15, T5)
U1_g(T14, T15, T5, pB_out_ggg(T14, T15, T5)) → conA_out_g(and(or(T14, T15), T5))

Pi is empty.

(3) DependencyPairsProof (EQUIVALENT transformation)

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

CONA_IN_G(and(or(T14, T15), T5)) → U1_G(T14, T15, T5, pB_in_ggg(T14, T15, T5))
CONA_IN_G(and(or(T14, T15), T5)) → PB_IN_GGG(T14, T15, T5)
PB_IN_GGG(T14, T15, T5) → U5_GGG(T14, T15, T5, conA_in_g(T14))
PB_IN_GGG(T14, T15, T5) → CONA_IN_G(T14)
CONA_IN_G(and(T57, T5)) → U2_G(T57, T5, pC_in_gg(T57, T5))
CONA_IN_G(and(T57, T5)) → PC_IN_GG(T57, T5)
PC_IN_GG(T57, T5) → U11_GG(T57, T5, conA_in_g(T57))
PC_IN_GG(T57, T5) → CONA_IN_G(T57)
U11_GG(T57, T5, conA_out_g(T57)) → U12_GG(T57, T5, conA_in_g(T5))
U11_GG(T57, T5, conA_out_g(T57)) → CONA_IN_G(T5)
U5_GGG(T14, T15, T5, conA_out_g(T14)) → U6_GGG(T14, T15, T5, pF_in_gg(T15, T5))
U5_GGG(T14, T15, T5, conA_out_g(T14)) → PF_IN_GG(T15, T5)
PF_IN_GG(T15, T5) → U7_GG(T15, T5, disD_in_g(T15))
PF_IN_GG(T15, T5) → DISD_IN_G(T15)
DISD_IN_G(or(T32, T33)) → U3_G(T32, T33, pE_in_gg(T32, T33))
DISD_IN_G(or(T32, T33)) → PE_IN_GG(T32, T33)
PE_IN_GG(T32, T33) → U9_GG(T32, T33, conA_in_g(T32))
PE_IN_GG(T32, T33) → CONA_IN_G(T32)
U9_GG(T32, T33, conA_out_g(T32)) → U10_GG(T32, T33, disD_in_g(T33))
U9_GG(T32, T33, conA_out_g(T32)) → DISD_IN_G(T33)
DISD_IN_G(T44) → U4_G(T44, conA_in_g(T44))
DISD_IN_G(T44) → CONA_IN_G(T44)
U7_GG(T15, T5, disD_out_g(T15)) → U8_GG(T15, T5, conA_in_g(T5))
U7_GG(T15, T5, disD_out_g(T15)) → CONA_IN_G(T5)

The TRS R consists of the following rules:

conA_in_g(and(or(T14, T15), T5)) → U1_g(T14, T15, T5, pB_in_ggg(T14, T15, T5))
pB_in_ggg(T14, T15, T5) → U5_ggg(T14, T15, T5, conA_in_g(T14))
conA_in_g(and(T57, T5)) → U2_g(T57, T5, pC_in_gg(T57, T5))
pC_in_gg(T57, T5) → U11_gg(T57, T5, conA_in_g(T57))
conA_in_g(0) → conA_out_g(0)
conA_in_g(1) → conA_out_g(1)
U11_gg(T57, T5, conA_out_g(T57)) → U12_gg(T57, T5, conA_in_g(T5))
U12_gg(T57, T5, conA_out_g(T5)) → pC_out_gg(T57, T5)
U2_g(T57, T5, pC_out_gg(T57, T5)) → conA_out_g(and(T57, T5))
U5_ggg(T14, T15, T5, conA_out_g(T14)) → U6_ggg(T14, T15, T5, pF_in_gg(T15, T5))
pF_in_gg(T15, T5) → U7_gg(T15, T5, disD_in_g(T15))
disD_in_g(or(T32, T33)) → U3_g(T32, T33, pE_in_gg(T32, T33))
pE_in_gg(T32, T33) → U9_gg(T32, T33, conA_in_g(T32))
U9_gg(T32, T33, conA_out_g(T32)) → U10_gg(T32, T33, disD_in_g(T33))
disD_in_g(T44) → U4_g(T44, conA_in_g(T44))
U4_g(T44, conA_out_g(T44)) → disD_out_g(T44)
U10_gg(T32, T33, disD_out_g(T33)) → pE_out_gg(T32, T33)
U3_g(T32, T33, pE_out_gg(T32, T33)) → disD_out_g(or(T32, T33))
U7_gg(T15, T5, disD_out_g(T15)) → U8_gg(T15, T5, conA_in_g(T5))
U8_gg(T15, T5, conA_out_g(T5)) → pF_out_gg(T15, T5)
U6_ggg(T14, T15, T5, pF_out_gg(T15, T5)) → pB_out_ggg(T14, T15, T5)
U1_g(T14, T15, T5, pB_out_ggg(T14, T15, T5)) → conA_out_g(and(or(T14, T15), T5))

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

(4) Obligation:

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

CONA_IN_G(and(or(T14, T15), T5)) → U1_G(T14, T15, T5, pB_in_ggg(T14, T15, T5))
CONA_IN_G(and(or(T14, T15), T5)) → PB_IN_GGG(T14, T15, T5)
PB_IN_GGG(T14, T15, T5) → U5_GGG(T14, T15, T5, conA_in_g(T14))
PB_IN_GGG(T14, T15, T5) → CONA_IN_G(T14)
CONA_IN_G(and(T57, T5)) → U2_G(T57, T5, pC_in_gg(T57, T5))
CONA_IN_G(and(T57, T5)) → PC_IN_GG(T57, T5)
PC_IN_GG(T57, T5) → U11_GG(T57, T5, conA_in_g(T57))
PC_IN_GG(T57, T5) → CONA_IN_G(T57)
U11_GG(T57, T5, conA_out_g(T57)) → U12_GG(T57, T5, conA_in_g(T5))
U11_GG(T57, T5, conA_out_g(T57)) → CONA_IN_G(T5)
U5_GGG(T14, T15, T5, conA_out_g(T14)) → U6_GGG(T14, T15, T5, pF_in_gg(T15, T5))
U5_GGG(T14, T15, T5, conA_out_g(T14)) → PF_IN_GG(T15, T5)
PF_IN_GG(T15, T5) → U7_GG(T15, T5, disD_in_g(T15))
PF_IN_GG(T15, T5) → DISD_IN_G(T15)
DISD_IN_G(or(T32, T33)) → U3_G(T32, T33, pE_in_gg(T32, T33))
DISD_IN_G(or(T32, T33)) → PE_IN_GG(T32, T33)
PE_IN_GG(T32, T33) → U9_GG(T32, T33, conA_in_g(T32))
PE_IN_GG(T32, T33) → CONA_IN_G(T32)
U9_GG(T32, T33, conA_out_g(T32)) → U10_GG(T32, T33, disD_in_g(T33))
U9_GG(T32, T33, conA_out_g(T32)) → DISD_IN_G(T33)
DISD_IN_G(T44) → U4_G(T44, conA_in_g(T44))
DISD_IN_G(T44) → CONA_IN_G(T44)
U7_GG(T15, T5, disD_out_g(T15)) → U8_GG(T15, T5, conA_in_g(T5))
U7_GG(T15, T5, disD_out_g(T15)) → CONA_IN_G(T5)

The TRS R consists of the following rules:

conA_in_g(and(or(T14, T15), T5)) → U1_g(T14, T15, T5, pB_in_ggg(T14, T15, T5))
pB_in_ggg(T14, T15, T5) → U5_ggg(T14, T15, T5, conA_in_g(T14))
conA_in_g(and(T57, T5)) → U2_g(T57, T5, pC_in_gg(T57, T5))
pC_in_gg(T57, T5) → U11_gg(T57, T5, conA_in_g(T57))
conA_in_g(0) → conA_out_g(0)
conA_in_g(1) → conA_out_g(1)
U11_gg(T57, T5, conA_out_g(T57)) → U12_gg(T57, T5, conA_in_g(T5))
U12_gg(T57, T5, conA_out_g(T5)) → pC_out_gg(T57, T5)
U2_g(T57, T5, pC_out_gg(T57, T5)) → conA_out_g(and(T57, T5))
U5_ggg(T14, T15, T5, conA_out_g(T14)) → U6_ggg(T14, T15, T5, pF_in_gg(T15, T5))
pF_in_gg(T15, T5) → U7_gg(T15, T5, disD_in_g(T15))
disD_in_g(or(T32, T33)) → U3_g(T32, T33, pE_in_gg(T32, T33))
pE_in_gg(T32, T33) → U9_gg(T32, T33, conA_in_g(T32))
U9_gg(T32, T33, conA_out_g(T32)) → U10_gg(T32, T33, disD_in_g(T33))
disD_in_g(T44) → U4_g(T44, conA_in_g(T44))
U4_g(T44, conA_out_g(T44)) → disD_out_g(T44)
U10_gg(T32, T33, disD_out_g(T33)) → pE_out_gg(T32, T33)
U3_g(T32, T33, pE_out_gg(T32, T33)) → disD_out_g(or(T32, T33))
U7_gg(T15, T5, disD_out_g(T15)) → U8_gg(T15, T5, conA_in_g(T5))
U8_gg(T15, T5, conA_out_g(T5)) → pF_out_gg(T15, T5)
U6_ggg(T14, T15, T5, pF_out_gg(T15, T5)) → pB_out_ggg(T14, T15, T5)
U1_g(T14, T15, T5, pB_out_ggg(T14, T15, T5)) → conA_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:

CONA_IN_G(and(or(T14, T15), T5)) → PB_IN_GGG(T14, T15, T5)
PB_IN_GGG(T14, T15, T5) → U5_GGG(T14, T15, T5, conA_in_g(T14))
U5_GGG(T14, T15, T5, conA_out_g(T14)) → PF_IN_GG(T15, T5)
PF_IN_GG(T15, T5) → U7_GG(T15, T5, disD_in_g(T15))
U7_GG(T15, T5, disD_out_g(T15)) → CONA_IN_G(T5)
CONA_IN_G(and(T57, T5)) → PC_IN_GG(T57, T5)
PC_IN_GG(T57, T5) → U11_GG(T57, T5, conA_in_g(T57))
U11_GG(T57, T5, conA_out_g(T57)) → CONA_IN_G(T5)
PC_IN_GG(T57, T5) → CONA_IN_G(T57)
PF_IN_GG(T15, T5) → DISD_IN_G(T15)
DISD_IN_G(or(T32, T33)) → PE_IN_GG(T32, T33)
PE_IN_GG(T32, T33) → U9_GG(T32, T33, conA_in_g(T32))
U9_GG(T32, T33, conA_out_g(T32)) → DISD_IN_G(T33)
DISD_IN_G(T44) → CONA_IN_G(T44)
PE_IN_GG(T32, T33) → CONA_IN_G(T32)
PB_IN_GGG(T14, T15, T5) → CONA_IN_G(T14)

The TRS R consists of the following rules:

conA_in_g(and(or(T14, T15), T5)) → U1_g(T14, T15, T5, pB_in_ggg(T14, T15, T5))
pB_in_ggg(T14, T15, T5) → U5_ggg(T14, T15, T5, conA_in_g(T14))
conA_in_g(and(T57, T5)) → U2_g(T57, T5, pC_in_gg(T57, T5))
pC_in_gg(T57, T5) → U11_gg(T57, T5, conA_in_g(T57))
conA_in_g(0) → conA_out_g(0)
conA_in_g(1) → conA_out_g(1)
U11_gg(T57, T5, conA_out_g(T57)) → U12_gg(T57, T5, conA_in_g(T5))
U12_gg(T57, T5, conA_out_g(T5)) → pC_out_gg(T57, T5)
U2_g(T57, T5, pC_out_gg(T57, T5)) → conA_out_g(and(T57, T5))
U5_ggg(T14, T15, T5, conA_out_g(T14)) → U6_ggg(T14, T15, T5, pF_in_gg(T15, T5))
pF_in_gg(T15, T5) → U7_gg(T15, T5, disD_in_g(T15))
disD_in_g(or(T32, T33)) → U3_g(T32, T33, pE_in_gg(T32, T33))
pE_in_gg(T32, T33) → U9_gg(T32, T33, conA_in_g(T32))
U9_gg(T32, T33, conA_out_g(T32)) → U10_gg(T32, T33, disD_in_g(T33))
disD_in_g(T44) → U4_g(T44, conA_in_g(T44))
U4_g(T44, conA_out_g(T44)) → disD_out_g(T44)
U10_gg(T32, T33, disD_out_g(T33)) → pE_out_gg(T32, T33)
U3_g(T32, T33, pE_out_gg(T32, T33)) → disD_out_g(or(T32, T33))
U7_gg(T15, T5, disD_out_g(T15)) → U8_gg(T15, T5, conA_in_g(T5))
U8_gg(T15, T5, conA_out_g(T5)) → pF_out_gg(T15, T5)
U6_ggg(T14, T15, T5, pF_out_gg(T15, T5)) → pB_out_ggg(T14, T15, T5)
U1_g(T14, T15, T5, pB_out_ggg(T14, T15, T5)) → conA_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:

CONA_IN_G(and(or(T14, T15), T5)) → PB_IN_GGG(T14, T15, T5)
PB_IN_GGG(T14, T15, T5) → U5_GGG(T14, T15, T5, conA_in_g(T14))
U5_GGG(T14, T15, T5, conA_out_g(T14)) → PF_IN_GG(T15, T5)
PF_IN_GG(T15, T5) → U7_GG(T15, T5, disD_in_g(T15))
U7_GG(T15, T5, disD_out_g(T15)) → CONA_IN_G(T5)
CONA_IN_G(and(T57, T5)) → PC_IN_GG(T57, T5)
PC_IN_GG(T57, T5) → U11_GG(T57, T5, conA_in_g(T57))
U11_GG(T57, T5, conA_out_g(T57)) → CONA_IN_G(T5)
PC_IN_GG(T57, T5) → CONA_IN_G(T57)
PF_IN_GG(T15, T5) → DISD_IN_G(T15)
DISD_IN_G(or(T32, T33)) → PE_IN_GG(T32, T33)
PE_IN_GG(T32, T33) → U9_GG(T32, T33, conA_in_g(T32))
U9_GG(T32, T33, conA_out_g(T32)) → DISD_IN_G(T33)
DISD_IN_G(T44) → CONA_IN_G(T44)
PE_IN_GG(T32, T33) → CONA_IN_G(T32)
PB_IN_GGG(T14, T15, T5) → CONA_IN_G(T14)

The TRS R consists of the following rules:

conA_in_g(and(or(T14, T15), T5)) → U1_g(T14, T15, T5, pB_in_ggg(T14, T15, T5))
pB_in_ggg(T14, T15, T5) → U5_ggg(T14, T15, T5, conA_in_g(T14))
conA_in_g(and(T57, T5)) → U2_g(T57, T5, pC_in_gg(T57, T5))
pC_in_gg(T57, T5) → U11_gg(T57, T5, conA_in_g(T57))
conA_in_g(0) → conA_out_g(0)
conA_in_g(1) → conA_out_g(1)
U11_gg(T57, T5, conA_out_g(T57)) → U12_gg(T57, T5, conA_in_g(T5))
U12_gg(T57, T5, conA_out_g(T5)) → pC_out_gg(T57, T5)
U2_g(T57, T5, pC_out_gg(T57, T5)) → conA_out_g(and(T57, T5))
U5_ggg(T14, T15, T5, conA_out_g(T14)) → U6_ggg(T14, T15, T5, pF_in_gg(T15, T5))
pF_in_gg(T15, T5) → U7_gg(T15, T5, disD_in_g(T15))
disD_in_g(or(T32, T33)) → U3_g(T32, T33, pE_in_gg(T32, T33))
pE_in_gg(T32, T33) → U9_gg(T32, T33, conA_in_g(T32))
U9_gg(T32, T33, conA_out_g(T32)) → U10_gg(T32, T33, disD_in_g(T33))
disD_in_g(T44) → U4_g(T44, conA_in_g(T44))
U4_g(T44, conA_out_g(T44)) → disD_out_g(T44)
U10_gg(T32, T33, disD_out_g(T33)) → pE_out_gg(T32, T33)
U3_g(T32, T33, pE_out_gg(T32, T33)) → disD_out_g(or(T32, T33))
U7_gg(T15, T5, disD_out_g(T15)) → U8_gg(T15, T5, conA_in_g(T5))
U8_gg(T15, T5, conA_out_g(T5)) → pF_out_gg(T15, T5)
U6_ggg(T14, T15, T5, pF_out_gg(T15, T5)) → pB_out_ggg(T14, T15, T5)
U1_g(T14, T15, T5, pB_out_ggg(T14, T15, T5)) → conA_out_g(and(or(T14, T15), T5))

The set Q consists of the following terms:

conA_in_g(x0)
pB_in_ggg(x0, x1, x2)
pC_in_gg(x0, x1)
U11_gg(x0, x1, x2)
U12_gg(x0, x1, x2)
U2_g(x0, x1, x2)
U5_ggg(x0, x1, x2, x3)
pF_in_gg(x0, x1)
disD_in_g(x0)
pE_in_gg(x0, x1)
U9_gg(x0, x1, x2)
U4_g(x0, x1)
U10_gg(x0, x1, x2)
U3_g(x0, x1, x2)
U7_gg(x0, x1, x2)
U8_gg(x0, x1, x2)
U6_ggg(x0, x1, x2, x3)
U1_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:

  • PB_IN_GGG(T14, T15, T5) → CONA_IN_G(T14)
    The graph contains the following edges 1 >= 1

  • PB_IN_GGG(T14, T15, T5) → U5_GGG(T14, T15, T5, conA_in_g(T14))
    The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3

  • U5_GGG(T14, T15, T5, conA_out_g(T14)) → PF_IN_GG(T15, T5)
    The graph contains the following edges 2 >= 1, 3 >= 2

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

  • U7_GG(T15, T5, disD_out_g(T15)) → CONA_IN_G(T5)
    The graph contains the following edges 2 >= 1

  • PF_IN_GG(T15, T5) → U7_GG(T15, T5, disD_in_g(T15))
    The graph contains the following edges 1 >= 1, 2 >= 2

  • PF_IN_GG(T15, T5) → DISD_IN_G(T15)
    The graph contains the following edges 1 >= 1

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

  • PC_IN_GG(T57, T5) → CONA_IN_G(T57)
    The graph contains the following edges 1 >= 1

  • PC_IN_GG(T57, T5) → U11_GG(T57, T5, conA_in_g(T57))
    The graph contains the following edges 1 >= 1, 2 >= 2

  • U11_GG(T57, T5, conA_out_g(T57)) → CONA_IN_G(T5)
    The graph contains the following edges 2 >= 1

  • DISD_IN_G(T44) → CONA_IN_G(T44)
    The graph contains the following edges 1 >= 1

  • PE_IN_GG(T32, T33) → CONA_IN_G(T32)
    The graph contains the following edges 1 >= 1

  • DISD_IN_G(or(T32, T33)) → PE_IN_GG(T32, T33)
    The graph contains the following edges 1 > 1, 1 > 2

  • PE_IN_GG(T32, T33) → U9_GG(T32, T33, conA_in_g(T32))
    The graph contains the following edges 1 >= 1, 2 >= 2

  • U9_GG(T32, T33, conA_out_g(T32)) → DISD_IN_G(T33)
    The graph contains the following edges 2 >= 1

(10) YES