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

dis(g).

(1) PrologToDTProblemTransformerProof (SOUND transformation)

Built DT problem from termination graph.

(2) Obligation:

Triples:

con12(and(T32, T33)) :- p17(T32, T33).
p17(T32, T33) :- dis1(T32).
p17(T32, T33) :- ','(disc1(T32), con12(T33)).
dis1(or(and(T14, T15), T5)) :- dis1(T14).
dis1(or(and(T14, T15), T5)) :- ','(disc1(T14), con12(T15)).
dis1(or(and(T14, T15), T5)) :- ','(disc1(T14), ','(conc12(T15), dis1(T5))).
dis1(or(0, T5)) :- dis1(T5).
dis1(or(1, T5)) :- dis1(T5).
dis1(or(T66, T67)) :- con12(or(T66, T67)).
dis1(and(T80, T81)) :- p17(T80, T81).

Clauses:

disc1(or(and(T14, T15), T5)) :- ','(disc1(T14), ','(conc12(T15), disc1(T5))).
disc1(or(0, T5)) :- disc1(T5).
disc1(or(1, T5)) :- disc1(T5).
disc1(or(T66, T67)) :- conc12(or(T66, T67)).
disc1(and(T80, T81)) :- qc17(T80, T81).
disc1(0).
disc1(1).
conc12(and(T32, T33)) :- qc17(T32, T33).
conc12(0).
conc12(1).
qc17(T32, T33) :- ','(disc1(T32), conc12(T33)).

Afs:

dis1(x1)  =  dis1(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:
dis1_in: (b)
disc1_in: (b)
conc12_in: (b)
qc17_in: (b,b)
con12_in: (b)
p17_in: (b,b)
Transforming TRIPLES into the following Term Rewriting System:
Pi DP problem:
The TRS P consists of the following rules:

DIS1_IN_G(or(and(T14, T15), T5)) → U5_G(T14, T15, T5, dis1_in_g(T14))
DIS1_IN_G(or(and(T14, T15), T5)) → DIS1_IN_G(T14)
DIS1_IN_G(or(and(T14, T15), T5)) → U6_G(T14, T15, T5, disc1_in_g(T14))
U6_G(T14, T15, T5, disc1_out_g(T14)) → U7_G(T14, T15, T5, con12_in_g(T15))
U6_G(T14, T15, T5, disc1_out_g(T14)) → CON12_IN_G(T15)
CON12_IN_G(and(T32, T33)) → U1_G(T32, T33, p17_in_gg(T32, T33))
CON12_IN_G(and(T32, T33)) → P17_IN_GG(T32, T33)
P17_IN_GG(T32, T33) → U2_GG(T32, T33, dis1_in_g(T32))
P17_IN_GG(T32, T33) → DIS1_IN_G(T32)
DIS1_IN_G(or(0, T5)) → U10_G(T5, dis1_in_g(T5))
DIS1_IN_G(or(0, T5)) → DIS1_IN_G(T5)
DIS1_IN_G(or(1, T5)) → U11_G(T5, dis1_in_g(T5))
DIS1_IN_G(or(1, T5)) → DIS1_IN_G(T5)
DIS1_IN_G(or(T66, T67)) → U12_G(T66, T67, con12_in_g(or(T66, T67)))
DIS1_IN_G(or(T66, T67)) → CON12_IN_G(or(T66, T67))
DIS1_IN_G(and(T80, T81)) → U13_G(T80, T81, p17_in_gg(T80, T81))
DIS1_IN_G(and(T80, T81)) → P17_IN_GG(T80, T81)
P17_IN_GG(T32, T33) → U3_GG(T32, T33, disc1_in_g(T32))
U3_GG(T32, T33, disc1_out_g(T32)) → U4_GG(T32, T33, con12_in_g(T33))
U3_GG(T32, T33, disc1_out_g(T32)) → CON12_IN_G(T33)
U6_G(T14, T15, T5, disc1_out_g(T14)) → U8_G(T14, T15, T5, conc12_in_g(T15))
U8_G(T14, T15, T5, conc12_out_g(T15)) → U9_G(T14, T15, T5, dis1_in_g(T5))
U8_G(T14, T15, T5, conc12_out_g(T15)) → DIS1_IN_G(T5)

The TRS R consists of the following rules:

disc1_in_g(or(and(T14, T15), T5)) → U15_g(T14, T15, T5, disc1_in_g(T14))
disc1_in_g(or(0, T5)) → U18_g(T5, disc1_in_g(T5))
disc1_in_g(or(1, T5)) → U19_g(T5, disc1_in_g(T5))
disc1_in_g(or(T66, T67)) → U20_g(T66, T67, conc12_in_g(or(T66, T67)))
conc12_in_g(and(T32, T33)) → U22_g(T32, T33, qc17_in_gg(T32, T33))
qc17_in_gg(T32, T33) → U23_gg(T32, T33, disc1_in_g(T32))
disc1_in_g(and(T80, T81)) → U21_g(T80, T81, qc17_in_gg(T80, T81))
U21_g(T80, T81, qc17_out_gg(T80, T81)) → disc1_out_g(and(T80, T81))
disc1_in_g(0) → disc1_out_g(0)
disc1_in_g(1) → disc1_out_g(1)
U23_gg(T32, T33, disc1_out_g(T32)) → U24_gg(T32, T33, conc12_in_g(T33))
conc12_in_g(0) → conc12_out_g(0)
conc12_in_g(1) → conc12_out_g(1)
U24_gg(T32, T33, conc12_out_g(T33)) → qc17_out_gg(T32, T33)
U22_g(T32, T33, qc17_out_gg(T32, T33)) → conc12_out_g(and(T32, T33))
U20_g(T66, T67, conc12_out_g(or(T66, T67))) → disc1_out_g(or(T66, T67))
U19_g(T5, disc1_out_g(T5)) → disc1_out_g(or(1, T5))
U18_g(T5, disc1_out_g(T5)) → disc1_out_g(or(0, T5))
U15_g(T14, T15, T5, disc1_out_g(T14)) → U16_g(T14, T15, T5, conc12_in_g(T15))
U16_g(T14, T15, T5, conc12_out_g(T15)) → U17_g(T14, T15, T5, disc1_in_g(T5))
U17_g(T14, T15, T5, disc1_out_g(T5)) → disc1_out_g(or(and(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:

DIS1_IN_G(or(and(T14, T15), T5)) → U5_G(T14, T15, T5, dis1_in_g(T14))
DIS1_IN_G(or(and(T14, T15), T5)) → DIS1_IN_G(T14)
DIS1_IN_G(or(and(T14, T15), T5)) → U6_G(T14, T15, T5, disc1_in_g(T14))
U6_G(T14, T15, T5, disc1_out_g(T14)) → U7_G(T14, T15, T5, con12_in_g(T15))
U6_G(T14, T15, T5, disc1_out_g(T14)) → CON12_IN_G(T15)
CON12_IN_G(and(T32, T33)) → U1_G(T32, T33, p17_in_gg(T32, T33))
CON12_IN_G(and(T32, T33)) → P17_IN_GG(T32, T33)
P17_IN_GG(T32, T33) → U2_GG(T32, T33, dis1_in_g(T32))
P17_IN_GG(T32, T33) → DIS1_IN_G(T32)
DIS1_IN_G(or(0, T5)) → U10_G(T5, dis1_in_g(T5))
DIS1_IN_G(or(0, T5)) → DIS1_IN_G(T5)
DIS1_IN_G(or(1, T5)) → U11_G(T5, dis1_in_g(T5))
DIS1_IN_G(or(1, T5)) → DIS1_IN_G(T5)
DIS1_IN_G(or(T66, T67)) → U12_G(T66, T67, con12_in_g(or(T66, T67)))
DIS1_IN_G(or(T66, T67)) → CON12_IN_G(or(T66, T67))
DIS1_IN_G(and(T80, T81)) → U13_G(T80, T81, p17_in_gg(T80, T81))
DIS1_IN_G(and(T80, T81)) → P17_IN_GG(T80, T81)
P17_IN_GG(T32, T33) → U3_GG(T32, T33, disc1_in_g(T32))
U3_GG(T32, T33, disc1_out_g(T32)) → U4_GG(T32, T33, con12_in_g(T33))
U3_GG(T32, T33, disc1_out_g(T32)) → CON12_IN_G(T33)
U6_G(T14, T15, T5, disc1_out_g(T14)) → U8_G(T14, T15, T5, conc12_in_g(T15))
U8_G(T14, T15, T5, conc12_out_g(T15)) → U9_G(T14, T15, T5, dis1_in_g(T5))
U8_G(T14, T15, T5, conc12_out_g(T15)) → DIS1_IN_G(T5)

The TRS R consists of the following rules:

disc1_in_g(or(and(T14, T15), T5)) → U15_g(T14, T15, T5, disc1_in_g(T14))
disc1_in_g(or(0, T5)) → U18_g(T5, disc1_in_g(T5))
disc1_in_g(or(1, T5)) → U19_g(T5, disc1_in_g(T5))
disc1_in_g(or(T66, T67)) → U20_g(T66, T67, conc12_in_g(or(T66, T67)))
conc12_in_g(and(T32, T33)) → U22_g(T32, T33, qc17_in_gg(T32, T33))
qc17_in_gg(T32, T33) → U23_gg(T32, T33, disc1_in_g(T32))
disc1_in_g(and(T80, T81)) → U21_g(T80, T81, qc17_in_gg(T80, T81))
U21_g(T80, T81, qc17_out_gg(T80, T81)) → disc1_out_g(and(T80, T81))
disc1_in_g(0) → disc1_out_g(0)
disc1_in_g(1) → disc1_out_g(1)
U23_gg(T32, T33, disc1_out_g(T32)) → U24_gg(T32, T33, conc12_in_g(T33))
conc12_in_g(0) → conc12_out_g(0)
conc12_in_g(1) → conc12_out_g(1)
U24_gg(T32, T33, conc12_out_g(T33)) → qc17_out_gg(T32, T33)
U22_g(T32, T33, qc17_out_gg(T32, T33)) → conc12_out_g(and(T32, T33))
U20_g(T66, T67, conc12_out_g(or(T66, T67))) → disc1_out_g(or(T66, T67))
U19_g(T5, disc1_out_g(T5)) → disc1_out_g(or(1, T5))
U18_g(T5, disc1_out_g(T5)) → disc1_out_g(or(0, T5))
U15_g(T14, T15, T5, disc1_out_g(T14)) → U16_g(T14, T15, T5, conc12_in_g(T15))
U16_g(T14, T15, T5, conc12_out_g(T15)) → U17_g(T14, T15, T5, disc1_in_g(T5))
U17_g(T14, T15, T5, disc1_out_g(T5)) → disc1_out_g(or(and(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 11 less nodes.

(6) Obligation:

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

DIS1_IN_G(or(and(T14, T15), T5)) → U6_G(T14, T15, T5, disc1_in_g(T14))
U6_G(T14, T15, T5, disc1_out_g(T14)) → CON12_IN_G(T15)
CON12_IN_G(and(T32, T33)) → P17_IN_GG(T32, T33)
P17_IN_GG(T32, T33) → DIS1_IN_G(T32)
DIS1_IN_G(or(and(T14, T15), T5)) → DIS1_IN_G(T14)
DIS1_IN_G(or(0, T5)) → DIS1_IN_G(T5)
DIS1_IN_G(or(1, T5)) → DIS1_IN_G(T5)
DIS1_IN_G(and(T80, T81)) → P17_IN_GG(T80, T81)
P17_IN_GG(T32, T33) → U3_GG(T32, T33, disc1_in_g(T32))
U3_GG(T32, T33, disc1_out_g(T32)) → CON12_IN_G(T33)
U6_G(T14, T15, T5, disc1_out_g(T14)) → U8_G(T14, T15, T5, conc12_in_g(T15))
U8_G(T14, T15, T5, conc12_out_g(T15)) → DIS1_IN_G(T5)

The TRS R consists of the following rules:

disc1_in_g(or(and(T14, T15), T5)) → U15_g(T14, T15, T5, disc1_in_g(T14))
disc1_in_g(or(0, T5)) → U18_g(T5, disc1_in_g(T5))
disc1_in_g(or(1, T5)) → U19_g(T5, disc1_in_g(T5))
disc1_in_g(or(T66, T67)) → U20_g(T66, T67, conc12_in_g(or(T66, T67)))
conc12_in_g(and(T32, T33)) → U22_g(T32, T33, qc17_in_gg(T32, T33))
qc17_in_gg(T32, T33) → U23_gg(T32, T33, disc1_in_g(T32))
disc1_in_g(and(T80, T81)) → U21_g(T80, T81, qc17_in_gg(T80, T81))
U21_g(T80, T81, qc17_out_gg(T80, T81)) → disc1_out_g(and(T80, T81))
disc1_in_g(0) → disc1_out_g(0)
disc1_in_g(1) → disc1_out_g(1)
U23_gg(T32, T33, disc1_out_g(T32)) → U24_gg(T32, T33, conc12_in_g(T33))
conc12_in_g(0) → conc12_out_g(0)
conc12_in_g(1) → conc12_out_g(1)
U24_gg(T32, T33, conc12_out_g(T33)) → qc17_out_gg(T32, T33)
U22_g(T32, T33, qc17_out_gg(T32, T33)) → conc12_out_g(and(T32, T33))
U20_g(T66, T67, conc12_out_g(or(T66, T67))) → disc1_out_g(or(T66, T67))
U19_g(T5, disc1_out_g(T5)) → disc1_out_g(or(1, T5))
U18_g(T5, disc1_out_g(T5)) → disc1_out_g(or(0, T5))
U15_g(T14, T15, T5, disc1_out_g(T14)) → U16_g(T14, T15, T5, conc12_in_g(T15))
U16_g(T14, T15, T5, conc12_out_g(T15)) → U17_g(T14, T15, T5, disc1_in_g(T5))
U17_g(T14, T15, T5, disc1_out_g(T5)) → disc1_out_g(or(and(T14, T15), T5))

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

(7) UsableRulesProof (EQUIVALENT transformation)

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

(8) Obligation:

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

DIS1_IN_G(or(and(T14, T15), T5)) → U6_G(T14, T15, T5, disc1_in_g(T14))
U6_G(T14, T15, T5, disc1_out_g(T14)) → CON12_IN_G(T15)
CON12_IN_G(and(T32, T33)) → P17_IN_GG(T32, T33)
P17_IN_GG(T32, T33) → DIS1_IN_G(T32)
DIS1_IN_G(or(and(T14, T15), T5)) → DIS1_IN_G(T14)
DIS1_IN_G(or(0, T5)) → DIS1_IN_G(T5)
DIS1_IN_G(or(1, T5)) → DIS1_IN_G(T5)
DIS1_IN_G(and(T80, T81)) → P17_IN_GG(T80, T81)
P17_IN_GG(T32, T33) → U3_GG(T32, T33, disc1_in_g(T32))
U3_GG(T32, T33, disc1_out_g(T32)) → CON12_IN_G(T33)
U6_G(T14, T15, T5, disc1_out_g(T14)) → U8_G(T14, T15, T5, conc12_in_g(T15))
U8_G(T14, T15, T5, conc12_out_g(T15)) → DIS1_IN_G(T5)

The TRS R consists of the following rules:

disc1_in_g(or(and(T14, T15), T5)) → U15_g(T14, T15, T5, disc1_in_g(T14))
disc1_in_g(or(0, T5)) → U18_g(T5, disc1_in_g(T5))
disc1_in_g(or(1, T5)) → U19_g(T5, disc1_in_g(T5))
disc1_in_g(or(T66, T67)) → U20_g(T66, T67, conc12_in_g(or(T66, T67)))
disc1_in_g(and(T80, T81)) → U21_g(T80, T81, qc17_in_gg(T80, T81))
disc1_in_g(0) → disc1_out_g(0)
disc1_in_g(1) → disc1_out_g(1)
conc12_in_g(and(T32, T33)) → U22_g(T32, T33, qc17_in_gg(T32, T33))
conc12_in_g(0) → conc12_out_g(0)
conc12_in_g(1) → conc12_out_g(1)
U15_g(T14, T15, T5, disc1_out_g(T14)) → U16_g(T14, T15, T5, conc12_in_g(T15))
U18_g(T5, disc1_out_g(T5)) → disc1_out_g(or(0, T5))
U19_g(T5, disc1_out_g(T5)) → disc1_out_g(or(1, T5))
U21_g(T80, T81, qc17_out_gg(T80, T81)) → disc1_out_g(and(T80, T81))
U22_g(T32, T33, qc17_out_gg(T32, T33)) → conc12_out_g(and(T32, T33))
U16_g(T14, T15, T5, conc12_out_g(T15)) → U17_g(T14, T15, T5, disc1_in_g(T5))
qc17_in_gg(T32, T33) → U23_gg(T32, T33, disc1_in_g(T32))
U17_g(T14, T15, T5, disc1_out_g(T5)) → disc1_out_g(or(and(T14, T15), T5))
U23_gg(T32, T33, disc1_out_g(T32)) → U24_gg(T32, T33, conc12_in_g(T33))
U24_gg(T32, T33, conc12_out_g(T33)) → qc17_out_gg(T32, T33)

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

(9) PiDPToQDPProof (EQUIVALENT transformation)

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

(10) Obligation:

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

DIS1_IN_G(or(and(T14, T15), T5)) → U6_G(T14, T15, T5, disc1_in_g(T14))
U6_G(T14, T15, T5, disc1_out_g(T14)) → CON12_IN_G(T15)
CON12_IN_G(and(T32, T33)) → P17_IN_GG(T32, T33)
P17_IN_GG(T32, T33) → DIS1_IN_G(T32)
DIS1_IN_G(or(and(T14, T15), T5)) → DIS1_IN_G(T14)
DIS1_IN_G(or(0, T5)) → DIS1_IN_G(T5)
DIS1_IN_G(or(1, T5)) → DIS1_IN_G(T5)
DIS1_IN_G(and(T80, T81)) → P17_IN_GG(T80, T81)
P17_IN_GG(T32, T33) → U3_GG(T32, T33, disc1_in_g(T32))
U3_GG(T32, T33, disc1_out_g(T32)) → CON12_IN_G(T33)
U6_G(T14, T15, T5, disc1_out_g(T14)) → U8_G(T14, T15, T5, conc12_in_g(T15))
U8_G(T14, T15, T5, conc12_out_g(T15)) → DIS1_IN_G(T5)

The TRS R consists of the following rules:

disc1_in_g(or(and(T14, T15), T5)) → U15_g(T14, T15, T5, disc1_in_g(T14))
disc1_in_g(or(0, T5)) → U18_g(T5, disc1_in_g(T5))
disc1_in_g(or(1, T5)) → U19_g(T5, disc1_in_g(T5))
disc1_in_g(or(T66, T67)) → U20_g(T66, T67, conc12_in_g(or(T66, T67)))
disc1_in_g(and(T80, T81)) → U21_g(T80, T81, qc17_in_gg(T80, T81))
disc1_in_g(0) → disc1_out_g(0)
disc1_in_g(1) → disc1_out_g(1)
conc12_in_g(and(T32, T33)) → U22_g(T32, T33, qc17_in_gg(T32, T33))
conc12_in_g(0) → conc12_out_g(0)
conc12_in_g(1) → conc12_out_g(1)
U15_g(T14, T15, T5, disc1_out_g(T14)) → U16_g(T14, T15, T5, conc12_in_g(T15))
U18_g(T5, disc1_out_g(T5)) → disc1_out_g(or(0, T5))
U19_g(T5, disc1_out_g(T5)) → disc1_out_g(or(1, T5))
U21_g(T80, T81, qc17_out_gg(T80, T81)) → disc1_out_g(and(T80, T81))
U22_g(T32, T33, qc17_out_gg(T32, T33)) → conc12_out_g(and(T32, T33))
U16_g(T14, T15, T5, conc12_out_g(T15)) → U17_g(T14, T15, T5, disc1_in_g(T5))
qc17_in_gg(T32, T33) → U23_gg(T32, T33, disc1_in_g(T32))
U17_g(T14, T15, T5, disc1_out_g(T5)) → disc1_out_g(or(and(T14, T15), T5))
U23_gg(T32, T33, disc1_out_g(T32)) → U24_gg(T32, T33, conc12_in_g(T33))
U24_gg(T32, T33, conc12_out_g(T33)) → qc17_out_gg(T32, T33)

The set Q consists of the following terms:

disc1_in_g(x0)
conc12_in_g(x0)
U15_g(x0, x1, x2, x3)
U18_g(x0, x1)
U19_g(x0, x1)
U21_g(x0, x1, x2)
U22_g(x0, x1, x2)
U16_g(x0, x1, x2, x3)
qc17_in_gg(x0, x1)
U17_g(x0, x1, x2, x3)
U23_gg(x0, x1, x2)
U24_gg(x0, x1, x2)

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

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

  • CON12_IN_G(and(T32, T33)) → P17_IN_GG(T32, T33)
    The graph contains the following edges 1 > 1, 1 > 2

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

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

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

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

  • P17_IN_GG(T32, T33) → U3_GG(T32, T33, disc1_in_g(T32))
    The graph contains the following edges 1 >= 1, 2 >= 2

  • U3_GG(T32, T33, disc1_out_g(T32)) → CON12_IN_G(T33)
    The graph contains the following edges 2 >= 1

  • DIS1_IN_G(and(T80, T81)) → P17_IN_GG(T80, T81)
    The graph contains the following edges 1 > 1, 1 > 2

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

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

  • DIS1_IN_G(or(0, T5)) → DIS1_IN_G(T5)
    The graph contains the following edges 1 > 1

  • DIS1_IN_G(or(1, T5)) → DIS1_IN_G(T5)
    The graph contains the following edges 1 > 1

(12) YES