We restrict the rewrite rules to the following usable rules of the DP problem.
We restrict the innermost strategy to the following left hand sides.
are bounded w.r.t. the constant c.
The following constraints are generated for the pairs.
-
For the chain
we build the initial constraint
(if#(le(s(x0),s(x1),x2),s(x0),s(x1),x2)→*if#(second,x3,x4,x5)⟹if#(second,x3,x4,x5)≥c)
which is simplified as follows.
-
Applying Rule "Same Constructor" results in
(le(s(x0),s(x1),x2)→*second⟹s(x0)→*x3⟹s(x1)→*x4⟹x2→*x5⟹if#(second,x3,x4,x5)≥c)
-
Applying Rule "Variable in Equation" allows to substitute
x3 by s(x0) which results in
(le(s(x0),s(x1),x2)→*second⟹s(x1)→*x4⟹x2→*x5⟹if#(second,s(x0),x4,x5)≥c)
-
Applying Rule "Variable in Equation" allows to substitute
x4 by s(x1) which results in
(le(s(x0),s(x1),x2)→*second⟹x2→*x5⟹if#(second,s(x0),s(x1),x5)≥c)
-
Applying Rule "Variable in Equation" allows to substitute
x5 by x2 which results in
(le(s(x0),s(x1),x2)→*second⟹if#(second,s(x0),s(x1),x2)≥c)
-
Applying Rule "Introduce fresh variable" results in
(s(x1)→*x25⟹le(s(x0),x25,x2)→*second⟹if#(second,s(x0),s(x1),x2)≥c)
-
Applying Rule "Introduce fresh variable" results in
(s(x0)→*x24⟹s(x1)→*x25⟹le(x24,x25,x2)→*second⟹if#(second,s(x0),s(x1),x2)≥c)
-
Applying Rule "Induction" on le(x24,x25,x2)→*second results in the following 4 new constraints.
- (false→*second⟹if#(second,s(x0),s(x1),x26)≥c)
- Applying Rule "Different Constructors" allows to drop this constraint.
- (le(x30,x29,x28)→*second⟹s(x0)→*s(x30)⟹s(x1)→*s(x29)⟹∀x31
.
∀x32
.
(le(x30,x29,x28)→*second⟹s(x31)→*x30⟹s(x32)→*x29⟹if#(second,s(x31),s(x32),x28)≥c)⟹if#(second,s(x0),s(x1),s(x28))≥c)
-
Applying Rule "Same Constructor" results in
(le(x30,x29,x28)→*second⟹x0→*x30⟹s(x1)→*s(x29)⟹∀x31
.
∀x32
.
(le(x30,x29,x28)→*second⟹s(x31)→*x30⟹s(x32)→*x29⟹if#(second,s(x31),s(x32),x28)≥c)⟹if#(second,s(x0),s(x1),s(x28))≥c)
-
Applying Rule "Same Constructor" results in
(le(x30,x29,x28)→*second⟹x0→*x30⟹x1→*x29⟹∀x31
.
∀x32
.
(le(x30,x29,x28)→*second⟹s(x31)→*x30⟹s(x32)→*x29⟹if#(second,s(x31),s(x32),x28)≥c)⟹if#(second,s(x0),s(x1),s(x28))≥c)
-
Applying Rule "Variable in Equation" allows to substitute
x0 by x30 which results in
(le(x30,x29,x28)→*second⟹x1→*x29⟹∀x31
.
∀x32
.
(le(x30,x29,x28)→*second⟹s(x31)→*x30⟹s(x32)→*x29⟹if#(second,s(x31),s(x32),x28)≥c)⟹if#(second,s(x30),s(x1),s(x28))≥c)
-
Applying Rule "Variable in Equation" allows to substitute
x1 by x29 which results in
(le(x30,x29,x28)→*second⟹∀x31
.
∀x32
.
(le(x30,x29,x28)→*second⟹s(x31)→*x30⟹s(x32)→*x29⟹if#(second,s(x31),s(x32),x28)≥c)⟹if#(second,s(x30),s(x29),s(x28))≥c)
-
Applying Rule "Delete Conditions" results in
(le(x30,x29,x28)→*second⟹if#(second,s(x30),s(x29),s(x28))≥c)
-
Applying Rule "Induction" on le(x30,x29,x28)→*second results in the following 4 new constraints.
- (false→*second⟹if#(second,s(s(x38)),s(0),s(x37))≥c)
- Applying Rule "Different Constructors" allows to drop this constraint.
- (le(x41,x40,x39)→*second⟹(le(x41,x40,x39)→*second⟹if#(second,s(x41),s(x40),s(x39))≥c)⟹if#(second,s(s(x41)),s(s(x40)),s(s(x39)))≥c)
- (greater(x43,x42)→*second⟹if#(second,s(0),s(x43),s(x42))≥c)
- (false→*second⟹if#(second,s(s(x45)),s(s(x44)),s(0))≥c)
- Applying Rule "Different Constructors" allows to drop this constraint.
- (greater(x34,x33)→*second⟹s(x0)→*0⟹s(x1)→*x34⟹if#(second,s(x0),s(x1),x33)≥c)
- Applying Rule "Different Constructors" allows to drop this constraint.
- (false→*second⟹if#(second,s(x0),s(x1),0)≥c)
- Applying Rule "Different Constructors" allows to drop this constraint.
-
For the chain
we build the initial constraint
(if#(le(s(x6),x7,s(x8)),s(x6),x7,s(x8))→*if#(second,x9,x10,x11)⟹if#(second,x9,x10,x11)≥c)
which is simplified as follows.
-
Applying Rule "Same Constructor" results in
(le(s(x6),x7,s(x8))→*second⟹s(x6)→*x9⟹x7→*x10⟹s(x8)→*x11⟹if#(second,x9,x10,x11)≥c)
-
Applying Rule "Variable in Equation" allows to substitute
x9 by s(x6) which results in
(le(s(x6),x7,s(x8))→*second⟹x7→*x10⟹s(x8)→*x11⟹if#(second,s(x6),x10,x11)≥c)
-
Applying Rule "Variable in Equation" allows to substitute
x10 by x7 which results in
(le(s(x6),x7,s(x8))→*second⟹s(x8)→*x11⟹if#(second,s(x6),x7,x11)≥c)
-
Applying Rule "Variable in Equation" allows to substitute
x11 by s(x8) which results in
(le(s(x6),x7,s(x8))→*second⟹if#(second,s(x6),x7,s(x8))≥c)
-
Applying Rule "Introduce fresh variable" results in
(s(x8)→*x47⟹le(s(x6),x7,x47)→*second⟹if#(second,s(x6),x7,s(x8))≥c)
-
Applying Rule "Introduce fresh variable" results in
(s(x6)→*x46⟹s(x8)→*x47⟹le(x46,x7,x47)→*second⟹if#(second,s(x6),x7,s(x8))≥c)
-
Applying Rule "Induction" on le(x46,x7,x47)→*second results in the following 4 new constraints.
- (false→*second⟹if#(second,s(x6),0,s(x8))≥c)
- Applying Rule "Different Constructors" allows to drop this constraint.
- (le(x52,x51,x50)→*second⟹s(x6)→*s(x52)⟹s(x8)→*s(x50)⟹∀x53
.
∀x54
.
(le(x52,x51,x50)→*second⟹s(x53)→*x52⟹s(x54)→*x50⟹if#(second,s(x53),x51,s(x54))≥c)⟹if#(second,s(x6),s(x51),s(x8))≥c)
-
Applying Rule "Same Constructor" results in
(le(x52,x51,x50)→*second⟹x6→*x52⟹s(x8)→*s(x50)⟹∀x53
.
∀x54
.
(le(x52,x51,x50)→*second⟹s(x53)→*x52⟹s(x54)→*x50⟹if#(second,s(x53),x51,s(x54))≥c)⟹if#(second,s(x6),s(x51),s(x8))≥c)
-
Applying Rule "Same Constructor" results in
(le(x52,x51,x50)→*second⟹x6→*x52⟹x8→*x50⟹∀x53
.
∀x54
.
(le(x52,x51,x50)→*second⟹s(x53)→*x52⟹s(x54)→*x50⟹if#(second,s(x53),x51,s(x54))≥c)⟹if#(second,s(x6),s(x51),s(x8))≥c)
-
Applying Rule "Variable in Equation" allows to substitute
x6 by x52 which results in
(le(x52,x51,x50)→*second⟹x8→*x50⟹∀x53
.
∀x54
.
(le(x52,x51,x50)→*second⟹s(x53)→*x52⟹s(x54)→*x50⟹if#(second,s(x53),x51,s(x54))≥c)⟹if#(second,s(x52),s(x51),s(x8))≥c)
-
Applying Rule "Variable in Equation" allows to substitute
x8 by x50 which results in
(le(x52,x51,x50)→*second⟹∀x53
.
∀x54
.
(le(x52,x51,x50)→*second⟹s(x53)→*x52⟹s(x54)→*x50⟹if#(second,s(x53),x51,s(x54))≥c)⟹if#(second,s(x52),s(x51),s(x50))≥c)
-
Applying Rule "Delete Conditions" results in
(le(x52,x51,x50)→*second⟹if#(second,s(x52),s(x51),s(x50))≥c)
-
Applying Rule "Induction" on le(x52,x51,x50)→*second results in the following 4 new constraints.
- (false→*second⟹if#(second,s(s(x60)),s(0),s(x59))≥c)
- Applying Rule "Different Constructors" allows to drop this constraint.
- (le(x63,x62,x61)→*second⟹(le(x63,x62,x61)→*second⟹if#(second,s(x63),s(x62),s(x61))≥c)⟹if#(second,s(s(x63)),s(s(x62)),s(s(x61)))≥c)
- (greater(x65,x64)→*second⟹if#(second,s(0),s(x65),s(x64))≥c)
- (false→*second⟹if#(second,s(s(x67)),s(s(x66)),s(0))≥c)
- Applying Rule "Different Constructors" allows to drop this constraint.
- (greater(x56,x55)→*second⟹s(x6)→*0⟹s(x8)→*x55⟹if#(second,s(x6),x56,s(x8))≥c)
- Applying Rule "Different Constructors" allows to drop this constraint.
- (false→*second⟹if#(second,s(x6),s(x57),s(x8))≥c)
- Applying Rule "Different Constructors" allows to drop this constraint.
-
For the chain
we build the initial constraint
(if#(le(s(x12),s(x13),x14),s(x12),s(x13),x14)→*if#(first,x15,x16,x17)⟹if#(first,x15,x16,x17)≥c)
which is simplified as follows.
-
Applying Rule "Same Constructor" results in
(le(s(x12),s(x13),x14)→*first⟹s(x12)→*x15⟹s(x13)→*x16⟹x14→*x17⟹if#(first,x15,x16,x17)≥c)
-
Applying Rule "Variable in Equation" allows to substitute
x15 by s(x12) which results in
(le(s(x12),s(x13),x14)→*first⟹s(x13)→*x16⟹x14→*x17⟹if#(first,s(x12),x16,x17)≥c)
-
Applying Rule "Variable in Equation" allows to substitute
x16 by s(x13) which results in
(le(s(x12),s(x13),x14)→*first⟹x14→*x17⟹if#(first,s(x12),s(x13),x17)≥c)
-
Applying Rule "Variable in Equation" allows to substitute
x17 by x14 which results in
(le(s(x12),s(x13),x14)→*first⟹if#(first,s(x12),s(x13),x14)≥c)
-
Applying Rule "Introduce fresh variable" results in
(s(x13)→*x69⟹le(s(x12),x69,x14)→*first⟹if#(first,s(x12),s(x13),x14)≥c)
-
Applying Rule "Introduce fresh variable" results in
(s(x12)→*x68⟹s(x13)→*x69⟹le(x68,x69,x14)→*first⟹if#(first,s(x12),s(x13),x14)≥c)
-
Applying Rule "Induction" on le(x68,x69,x14)→*first results in the following 4 new constraints.
- (false→*first⟹if#(first,s(x12),s(x13),x70)≥c)
- Applying Rule "Different Constructors" allows to drop this constraint.
- (le(x74,x73,x72)→*first⟹s(x12)→*s(x74)⟹s(x13)→*s(x73)⟹∀x75
.
∀x76
.
(le(x74,x73,x72)→*first⟹s(x75)→*x74⟹s(x76)→*x73⟹if#(first,s(x75),s(x76),x72)≥c)⟹if#(first,s(x12),s(x13),s(x72))≥c)
-
Applying Rule "Same Constructor" results in
(le(x74,x73,x72)→*first⟹x12→*x74⟹s(x13)→*s(x73)⟹∀x75
.
∀x76
.
(le(x74,x73,x72)→*first⟹s(x75)→*x74⟹s(x76)→*x73⟹if#(first,s(x75),s(x76),x72)≥c)⟹if#(first,s(x12),s(x13),s(x72))≥c)
-
Applying Rule "Same Constructor" results in
(le(x74,x73,x72)→*first⟹x12→*x74⟹x13→*x73⟹∀x75
.
∀x76
.
(le(x74,x73,x72)→*first⟹s(x75)→*x74⟹s(x76)→*x73⟹if#(first,s(x75),s(x76),x72)≥c)⟹if#(first,s(x12),s(x13),s(x72))≥c)
-
Applying Rule "Variable in Equation" allows to substitute
x12 by x74 which results in
(le(x74,x73,x72)→*first⟹x13→*x73⟹∀x75
.
∀x76
.
(le(x74,x73,x72)→*first⟹s(x75)→*x74⟹s(x76)→*x73⟹if#(first,s(x75),s(x76),x72)≥c)⟹if#(first,s(x74),s(x13),s(x72))≥c)
-
Applying Rule "Variable in Equation" allows to substitute
x13 by x73 which results in
(le(x74,x73,x72)→*first⟹∀x75
.
∀x76
.
(le(x74,x73,x72)→*first⟹s(x75)→*x74⟹s(x76)→*x73⟹if#(first,s(x75),s(x76),x72)≥c)⟹if#(first,s(x74),s(x73),s(x72))≥c)
-
Applying Rule "Delete Conditions" results in
(le(x74,x73,x72)→*first⟹if#(first,s(x74),s(x73),s(x72))≥c)
-
Applying Rule "Induction" on le(x74,x73,x72)→*first results in the following 4 new constraints.
- (false→*first⟹if#(first,s(s(x82)),s(0),s(x81))≥c)
- Applying Rule "Different Constructors" allows to drop this constraint.
- (le(x85,x84,x83)→*first⟹(le(x85,x84,x83)→*first⟹if#(first,s(x85),s(x84),s(x83))≥c)⟹if#(first,s(s(x85)),s(s(x84)),s(s(x83)))≥c)
- (greater(x87,x86)→*first⟹if#(first,s(0),s(x87),s(x86))≥c)
- (false→*first⟹if#(first,s(s(x89)),s(s(x88)),s(0))≥c)
- Applying Rule "Different Constructors" allows to drop this constraint.
- (greater(x78,x77)→*first⟹s(x12)→*0⟹s(x13)→*x78⟹if#(first,s(x12),s(x13),x77)≥c)
- Applying Rule "Different Constructors" allows to drop this constraint.
- (false→*first⟹if#(first,s(x12),s(x13),0)≥c)
- Applying Rule "Different Constructors" allows to drop this constraint.
-
For the chain
we build the initial constraint
(if#(le(s(x18),x19,s(x20)),s(x18),x19,s(x20))→*if#(first,x21,x22,x23)⟹if#(first,x21,x22,x23)≥c)
which is simplified as follows.
-
Applying Rule "Same Constructor" results in
(le(s(x18),x19,s(x20))→*first⟹s(x18)→*x21⟹x19→*x22⟹s(x20)→*x23⟹if#(first,x21,x22,x23)≥c)
-
Applying Rule "Variable in Equation" allows to substitute
x21 by s(x18) which results in
(le(s(x18),x19,s(x20))→*first⟹x19→*x22⟹s(x20)→*x23⟹if#(first,s(x18),x22,x23)≥c)
-
Applying Rule "Variable in Equation" allows to substitute
x22 by x19 which results in
(le(s(x18),x19,s(x20))→*first⟹s(x20)→*x23⟹if#(first,s(x18),x19,x23)≥c)
-
Applying Rule "Variable in Equation" allows to substitute
x23 by s(x20) which results in
(le(s(x18),x19,s(x20))→*first⟹if#(first,s(x18),x19,s(x20))≥c)
-
Applying Rule "Introduce fresh variable" results in
(s(x20)→*x91⟹le(s(x18),x19,x91)→*first⟹if#(first,s(x18),x19,s(x20))≥c)
-
Applying Rule "Introduce fresh variable" results in
(s(x18)→*x90⟹s(x20)→*x91⟹le(x90,x19,x91)→*first⟹if#(first,s(x18),x19,s(x20))≥c)
-
Applying Rule "Induction" on le(x90,x19,x91)→*first results in the following 4 new constraints.
- (false→*first⟹if#(first,s(x18),0,s(x20))≥c)
- Applying Rule "Different Constructors" allows to drop this constraint.
- (le(x96,x95,x94)→*first⟹s(x18)→*s(x96)⟹s(x20)→*s(x94)⟹∀x97
.
∀x98
.
(le(x96,x95,x94)→*first⟹s(x97)→*x96⟹s(x98)→*x94⟹if#(first,s(x97),x95,s(x98))≥c)⟹if#(first,s(x18),s(x95),s(x20))≥c)
-
Applying Rule "Same Constructor" results in
(le(x96,x95,x94)→*first⟹x18→*x96⟹s(x20)→*s(x94)⟹∀x97
.
∀x98
.
(le(x96,x95,x94)→*first⟹s(x97)→*x96⟹s(x98)→*x94⟹if#(first,s(x97),x95,s(x98))≥c)⟹if#(first,s(x18),s(x95),s(x20))≥c)
-
Applying Rule "Same Constructor" results in
(le(x96,x95,x94)→*first⟹x18→*x96⟹x20→*x94⟹∀x97
.
∀x98
.
(le(x96,x95,x94)→*first⟹s(x97)→*x96⟹s(x98)→*x94⟹if#(first,s(x97),x95,s(x98))≥c)⟹if#(first,s(x18),s(x95),s(x20))≥c)
-
Applying Rule "Variable in Equation" allows to substitute
x18 by x96 which results in
(le(x96,x95,x94)→*first⟹x20→*x94⟹∀x97
.
∀x98
.
(le(x96,x95,x94)→*first⟹s(x97)→*x96⟹s(x98)→*x94⟹if#(first,s(x97),x95,s(x98))≥c)⟹if#(first,s(x96),s(x95),s(x20))≥c)
-
Applying Rule "Variable in Equation" allows to substitute
x20 by x94 which results in
(le(x96,x95,x94)→*first⟹∀x97
.
∀x98
.
(le(x96,x95,x94)→*first⟹s(x97)→*x96⟹s(x98)→*x94⟹if#(first,s(x97),x95,s(x98))≥c)⟹if#(first,s(x96),s(x95),s(x94))≥c)
-
Applying Rule "Delete Conditions" results in
(le(x96,x95,x94)→*first⟹if#(first,s(x96),s(x95),s(x94))≥c)
-
Applying Rule "Induction" on le(x96,x95,x94)→*first results in the following 4 new constraints.
- (false→*first⟹if#(first,s(s(x104)),s(0),s(x103))≥c)
- Applying Rule "Different Constructors" allows to drop this constraint.
- (le(x107,x106,x105)→*first⟹(le(x107,x106,x105)→*first⟹if#(first,s(x107),s(x106),s(x105))≥c)⟹if#(first,s(s(x107)),s(s(x106)),s(s(x105)))≥c)
- (greater(x109,x108)→*first⟹if#(first,s(0),s(x109),s(x108))≥c)
- (false→*first⟹if#(first,s(s(x111)),s(s(x110)),s(0))≥c)
- Applying Rule "Different Constructors" allows to drop this constraint.
- (greater(x100,x99)→*first⟹s(x18)→*0⟹s(x20)→*x99⟹if#(first,s(x18),x100,s(x20))≥c)
- Applying Rule "Different Constructors" allows to drop this constraint.
- (false→*first⟹if#(first,s(x18),s(x101),s(x20))≥c)
- Applying Rule "Different Constructors" allows to drop this constraint.
-
For the chain
we build the initial constraint
(if#(le(s(x0),s(x1),x2),s(x0),s(x1),x2)→*if#(second,x3,x4,x5)⟹if#(second,x3,x4,x5)≥if#(le(s(x3),s(x4),x5),s(x3),s(x4),x5))
which is simplified as follows.
-
Applying Rule "Same Constructor" results in
(le(s(x0),s(x1),x2)→*second⟹s(x0)→*x3⟹s(x1)→*x4⟹x2→*x5⟹if#(second,x3,x4,x5)≥if#(le(s(x3),s(x4),x5),s(x3),s(x4),x5))
-
Applying Rule "Variable in Equation" allows to substitute
x3 by s(x0) which results in
(le(s(x0),s(x1),x2)→*second⟹s(x1)→*x4⟹x2→*x5⟹if#(second,s(x0),x4,x5)≥if#(le(s(s(x0)),s(x4),x5),s(s(x0)),s(x4),x5))
-
Applying Rule "Variable in Equation" allows to substitute
x4 by s(x1) which results in
(le(s(x0),s(x1),x2)→*second⟹x2→*x5⟹if#(second,s(x0),s(x1),x5)≥if#(le(s(s(x0)),s(s(x1)),x5),s(s(x0)),s(s(x1)),x5))
-
Applying Rule "Variable in Equation" allows to substitute
x5 by x2 which results in
(le(s(x0),s(x1),x2)→*second⟹if#(second,s(x0),s(x1),x2)≥if#(le(s(s(x0)),s(s(x1)),x2),s(s(x0)),s(s(x1)),x2))
-
Applying Rule "Introduce fresh variable" results in
(s(x1)→*x25⟹le(s(x0),x25,x2)→*second⟹if#(second,s(x0),s(x1),x2)≥if#(le(s(s(x0)),s(s(x1)),x2),s(s(x0)),s(s(x1)),x2))
-
Applying Rule "Introduce fresh variable" results in
(s(x0)→*x24⟹s(x1)→*x25⟹le(x24,x25,x2)→*second⟹if#(second,s(x0),s(x1),x2)≥if#(le(s(s(x0)),s(s(x1)),x2),s(s(x0)),s(s(x1)),x2))
-
Applying Rule "Induction" on le(x24,x25,x2)→*second results in the following 4 new constraints.
- (false→*second⟹if#(second,s(x0),s(x1),x26)≥if#(le(s(s(x0)),s(s(x1)),x26),s(s(x0)),s(s(x1)),x26))
- Applying Rule "Different Constructors" allows to drop this constraint.
- (le(x30,x29,x28)→*second⟹s(x0)→*s(x30)⟹s(x1)→*s(x29)⟹∀x31
.
∀x32
.
(le(x30,x29,x28)→*second⟹s(x31)→*x30⟹s(x32)→*x29⟹if#(second,s(x31),s(x32),x28)≥if#(le(s(s(x31)),s(s(x32)),x28),s(s(x31)),s(s(x32)),x28))⟹if#(second,s(x0),s(x1),s(x28))≥if#(le(s(s(x0)),s(s(x1)),s(x28)),s(s(x0)),s(s(x1)),s(x28)))
-
Applying Rule "Same Constructor" results in
(le(x30,x29,x28)→*second⟹x0→*x30⟹s(x1)→*s(x29)⟹∀x31
.
∀x32
.
(le(x30,x29,x28)→*second⟹s(x31)→*x30⟹s(x32)→*x29⟹if#(second,s(x31),s(x32),x28)≥if#(le(s(s(x31)),s(s(x32)),x28),s(s(x31)),s(s(x32)),x28))⟹if#(second,s(x0),s(x1),s(x28))≥if#(le(s(s(x0)),s(s(x1)),s(x28)),s(s(x0)),s(s(x1)),s(x28)))
-
Applying Rule "Same Constructor" results in
(le(x30,x29,x28)→*second⟹x0→*x30⟹x1→*x29⟹∀x31
.
∀x32
.
(le(x30,x29,x28)→*second⟹s(x31)→*x30⟹s(x32)→*x29⟹if#(second,s(x31),s(x32),x28)≥if#(le(s(s(x31)),s(s(x32)),x28),s(s(x31)),s(s(x32)),x28))⟹if#(second,s(x0),s(x1),s(x28))≥if#(le(s(s(x0)),s(s(x1)),s(x28)),s(s(x0)),s(s(x1)),s(x28)))
-
Applying Rule "Variable in Equation" allows to substitute
x0 by x30 which results in
(le(x30,x29,x28)→*second⟹x1→*x29⟹∀x31
.
∀x32
.
(le(x30,x29,x28)→*second⟹s(x31)→*x30⟹s(x32)→*x29⟹if#(second,s(x31),s(x32),x28)≥if#(le(s(s(x31)),s(s(x32)),x28),s(s(x31)),s(s(x32)),x28))⟹if#(second,s(x30),s(x1),s(x28))≥if#(le(s(s(x30)),s(s(x1)),s(x28)),s(s(x30)),s(s(x1)),s(x28)))
-
Applying Rule "Variable in Equation" allows to substitute
x1 by x29 which results in
(le(x30,x29,x28)→*second⟹∀x31
.
∀x32
.
(le(x30,x29,x28)→*second⟹s(x31)→*x30⟹s(x32)→*x29⟹if#(second,s(x31),s(x32),x28)≥if#(le(s(s(x31)),s(s(x32)),x28),s(s(x31)),s(s(x32)),x28))⟹if#(second,s(x30),s(x29),s(x28))≥if#(le(s(s(x30)),s(s(x29)),s(x28)),s(s(x30)),s(s(x29)),s(x28)))
-
Applying Rule "Delete Conditions" results in
(le(x30,x29,x28)→*second⟹if#(second,s(x30),s(x29),s(x28))≥if#(le(s(s(x30)),s(s(x29)),s(x28)),s(s(x30)),s(s(x29)),s(x28)))
-
Applying Rule "Induction" on le(x30,x29,x28)→*second results in the following 4 new constraints.
- (false→*second⟹if#(second,s(s(x38)),s(0),s(x37))≥if#(le(s(s(s(x38))),s(s(0)),s(x37)),s(s(s(x38))),s(s(0)),s(x37)))
- Applying Rule "Different Constructors" allows to drop this constraint.
- (le(x41,x40,x39)→*second⟹(le(x41,x40,x39)→*second⟹if#(second,s(x41),s(x40),s(x39))≥if#(le(s(s(x41)),s(s(x40)),s(x39)),s(s(x41)),s(s(x40)),s(x39)))⟹if#(second,s(s(x41)),s(s(x40)),s(s(x39)))≥if#(le(s(s(s(x41))),s(s(s(x40))),s(s(x39))),s(s(s(x41))),s(s(s(x40))),s(s(x39))))
- (greater(x43,x42)→*second⟹if#(second,s(0),s(x43),s(x42))≥if#(le(s(s(0)),s(s(x43)),s(x42)),s(s(0)),s(s(x43)),s(x42)))
- (false→*second⟹if#(second,s(s(x45)),s(s(x44)),s(0))≥if#(le(s(s(s(x45))),s(s(s(x44))),s(0)),s(s(s(x45))),s(s(s(x44))),s(0)))
- Applying Rule "Different Constructors" allows to drop this constraint.
- (greater(x34,x33)→*second⟹s(x0)→*0⟹s(x1)→*x34⟹if#(second,s(x0),s(x1),x33)≥if#(le(s(s(x0)),s(s(x1)),x33),s(s(x0)),s(s(x1)),x33))
- Applying Rule "Different Constructors" allows to drop this constraint.
- (false→*second⟹if#(second,s(x0),s(x1),0)≥if#(le(s(s(x0)),s(s(x1)),0),s(s(x0)),s(s(x1)),0))
- Applying Rule "Different Constructors" allows to drop this constraint.
-
For the chain
we build the initial constraint
(if#(le(s(x6),x7,s(x8)),s(x6),x7,s(x8))→*if#(second,x9,x10,x11)⟹if#(second,x9,x10,x11)≥if#(le(s(x9),s(x10),x11),s(x9),s(x10),x11))
which is simplified as follows.
-
Applying Rule "Same Constructor" results in
(le(s(x6),x7,s(x8))→*second⟹s(x6)→*x9⟹x7→*x10⟹s(x8)→*x11⟹if#(second,x9,x10,x11)≥if#(le(s(x9),s(x10),x11),s(x9),s(x10),x11))
-
Applying Rule "Variable in Equation" allows to substitute
x9 by s(x6) which results in
(le(s(x6),x7,s(x8))→*second⟹x7→*x10⟹s(x8)→*x11⟹if#(second,s(x6),x10,x11)≥if#(le(s(s(x6)),s(x10),x11),s(s(x6)),s(x10),x11))
-
Applying Rule "Variable in Equation" allows to substitute
x10 by x7 which results in
(le(s(x6),x7,s(x8))→*second⟹s(x8)→*x11⟹if#(second,s(x6),x7,x11)≥if#(le(s(s(x6)),s(x7),x11),s(s(x6)),s(x7),x11))
-
Applying Rule "Variable in Equation" allows to substitute
x11 by s(x8) which results in
(le(s(x6),x7,s(x8))→*second⟹if#(second,s(x6),x7,s(x8))≥if#(le(s(s(x6)),s(x7),s(x8)),s(s(x6)),s(x7),s(x8)))
-
Applying Rule "Introduce fresh variable" results in
(s(x8)→*x47⟹le(s(x6),x7,x47)→*second⟹if#(second,s(x6),x7,s(x8))≥if#(le(s(s(x6)),s(x7),s(x8)),s(s(x6)),s(x7),s(x8)))
-
Applying Rule "Introduce fresh variable" results in
(s(x6)→*x46⟹s(x8)→*x47⟹le(x46,x7,x47)→*second⟹if#(second,s(x6),x7,s(x8))≥if#(le(s(s(x6)),s(x7),s(x8)),s(s(x6)),s(x7),s(x8)))
-
Applying Rule "Induction" on le(x46,x7,x47)→*second results in the following 4 new constraints.
- (false→*second⟹if#(second,s(x6),0,s(x8))≥if#(le(s(s(x6)),s(0),s(x8)),s(s(x6)),s(0),s(x8)))
- Applying Rule "Different Constructors" allows to drop this constraint.
- (le(x52,x51,x50)→*second⟹s(x6)→*s(x52)⟹s(x8)→*s(x50)⟹∀x53
.
∀x54
.
(le(x52,x51,x50)→*second⟹s(x53)→*x52⟹s(x54)→*x50⟹if#(second,s(x53),x51,s(x54))≥if#(le(s(s(x53)),s(x51),s(x54)),s(s(x53)),s(x51),s(x54)))⟹if#(second,s(x6),s(x51),s(x8))≥if#(le(s(s(x6)),s(s(x51)),s(x8)),s(s(x6)),s(s(x51)),s(x8)))
-
Applying Rule "Same Constructor" results in
(le(x52,x51,x50)→*second⟹x6→*x52⟹s(x8)→*s(x50)⟹∀x53
.
∀x54
.
(le(x52,x51,x50)→*second⟹s(x53)→*x52⟹s(x54)→*x50⟹if#(second,s(x53),x51,s(x54))≥if#(le(s(s(x53)),s(x51),s(x54)),s(s(x53)),s(x51),s(x54)))⟹if#(second,s(x6),s(x51),s(x8))≥if#(le(s(s(x6)),s(s(x51)),s(x8)),s(s(x6)),s(s(x51)),s(x8)))
-
Applying Rule "Same Constructor" results in
(le(x52,x51,x50)→*second⟹x6→*x52⟹x8→*x50⟹∀x53
.
∀x54
.
(le(x52,x51,x50)→*second⟹s(x53)→*x52⟹s(x54)→*x50⟹if#(second,s(x53),x51,s(x54))≥if#(le(s(s(x53)),s(x51),s(x54)),s(s(x53)),s(x51),s(x54)))⟹if#(second,s(x6),s(x51),s(x8))≥if#(le(s(s(x6)),s(s(x51)),s(x8)),s(s(x6)),s(s(x51)),s(x8)))
-
Applying Rule "Variable in Equation" allows to substitute
x6 by x52 which results in
(le(x52,x51,x50)→*second⟹x8→*x50⟹∀x53
.
∀x54
.
(le(x52,x51,x50)→*second⟹s(x53)→*x52⟹s(x54)→*x50⟹if#(second,s(x53),x51,s(x54))≥if#(le(s(s(x53)),s(x51),s(x54)),s(s(x53)),s(x51),s(x54)))⟹if#(second,s(x52),s(x51),s(x8))≥if#(le(s(s(x52)),s(s(x51)),s(x8)),s(s(x52)),s(s(x51)),s(x8)))
-
Applying Rule "Variable in Equation" allows to substitute
x8 by x50 which results in
(le(x52,x51,x50)→*second⟹∀x53
.
∀x54
.
(le(x52,x51,x50)→*second⟹s(x53)→*x52⟹s(x54)→*x50⟹if#(second,s(x53),x51,s(x54))≥if#(le(s(s(x53)),s(x51),s(x54)),s(s(x53)),s(x51),s(x54)))⟹if#(second,s(x52),s(x51),s(x50))≥if#(le(s(s(x52)),s(s(x51)),s(x50)),s(s(x52)),s(s(x51)),s(x50)))
-
Applying Rule "Delete Conditions" results in
(le(x52,x51,x50)→*second⟹if#(second,s(x52),s(x51),s(x50))≥if#(le(s(s(x52)),s(s(x51)),s(x50)),s(s(x52)),s(s(x51)),s(x50)))
-
Applying Rule "Induction" on le(x52,x51,x50)→*second results in the following 4 new constraints.
- (false→*second⟹if#(second,s(s(x60)),s(0),s(x59))≥if#(le(s(s(s(x60))),s(s(0)),s(x59)),s(s(s(x60))),s(s(0)),s(x59)))
- Applying Rule "Different Constructors" allows to drop this constraint.
- (le(x63,x62,x61)→*second⟹(le(x63,x62,x61)→*second⟹if#(second,s(x63),s(x62),s(x61))≥if#(le(s(s(x63)),s(s(x62)),s(x61)),s(s(x63)),s(s(x62)),s(x61)))⟹if#(second,s(s(x63)),s(s(x62)),s(s(x61)))≥if#(le(s(s(s(x63))),s(s(s(x62))),s(s(x61))),s(s(s(x63))),s(s(s(x62))),s(s(x61))))
- (greater(x65,x64)→*second⟹if#(second,s(0),s(x65),s(x64))≥if#(le(s(s(0)),s(s(x65)),s(x64)),s(s(0)),s(s(x65)),s(x64)))
- (false→*second⟹if#(second,s(s(x67)),s(s(x66)),s(0))≥if#(le(s(s(s(x67))),s(s(s(x66))),s(0)),s(s(s(x67))),s(s(s(x66))),s(0)))
- Applying Rule "Different Constructors" allows to drop this constraint.
- (greater(x56,x55)→*second⟹s(x6)→*0⟹s(x8)→*x55⟹if#(second,s(x6),x56,s(x8))≥if#(le(s(s(x6)),s(x56),s(x8)),s(s(x6)),s(x56),s(x8)))
- Applying Rule "Different Constructors" allows to drop this constraint.
- (false→*second⟹if#(second,s(x6),s(x57),s(x8))≥if#(le(s(s(x6)),s(s(x57)),s(x8)),s(s(x6)),s(s(x57)),s(x8)))
- Applying Rule "Different Constructors" allows to drop this constraint.
-
For the chain
we build the initial constraint
(if#(le(s(x12),s(x13),x14),s(x12),s(x13),x14)→*if#(first,x15,x16,x17)⟹if#(first,x15,x16,x17) > if#(le(s(x15),x16,s(x17)),s(x15),x16,s(x17)))
which is simplified as follows.
-
Applying Rule "Same Constructor" results in
(le(s(x12),s(x13),x14)→*first⟹s(x12)→*x15⟹s(x13)→*x16⟹x14→*x17⟹if#(first,x15,x16,x17) > if#(le(s(x15),x16,s(x17)),s(x15),x16,s(x17)))
-
Applying Rule "Variable in Equation" allows to substitute
x15 by s(x12) which results in
(le(s(x12),s(x13),x14)→*first⟹s(x13)→*x16⟹x14→*x17⟹if#(first,s(x12),x16,x17) > if#(le(s(s(x12)),x16,s(x17)),s(s(x12)),x16,s(x17)))
-
Applying Rule "Variable in Equation" allows to substitute
x16 by s(x13) which results in
(le(s(x12),s(x13),x14)→*first⟹x14→*x17⟹if#(first,s(x12),s(x13),x17) > if#(le(s(s(x12)),s(x13),s(x17)),s(s(x12)),s(x13),s(x17)))
-
Applying Rule "Variable in Equation" allows to substitute
x17 by x14 which results in
(le(s(x12),s(x13),x14)→*first⟹if#(first,s(x12),s(x13),x14) > if#(le(s(s(x12)),s(x13),s(x14)),s(s(x12)),s(x13),s(x14)))
-
Applying Rule "Introduce fresh variable" results in
(s(x13)→*x69⟹le(s(x12),x69,x14)→*first⟹if#(first,s(x12),s(x13),x14) > if#(le(s(s(x12)),s(x13),s(x14)),s(s(x12)),s(x13),s(x14)))
-
Applying Rule "Introduce fresh variable" results in
(s(x12)→*x68⟹s(x13)→*x69⟹le(x68,x69,x14)→*first⟹if#(first,s(x12),s(x13),x14) > if#(le(s(s(x12)),s(x13),s(x14)),s(s(x12)),s(x13),s(x14)))
-
Applying Rule "Induction" on le(x68,x69,x14)→*first results in the following 4 new constraints.
- (false→*first⟹if#(first,s(x12),s(x13),x70) > if#(le(s(s(x12)),s(x13),s(x70)),s(s(x12)),s(x13),s(x70)))
- Applying Rule "Different Constructors" allows to drop this constraint.
- (le(x74,x73,x72)→*first⟹s(x12)→*s(x74)⟹s(x13)→*s(x73)⟹∀x75
.
∀x76
.
(le(x74,x73,x72)→*first⟹s(x75)→*x74⟹s(x76)→*x73⟹if#(first,s(x75),s(x76),x72) > if#(le(s(s(x75)),s(x76),s(x72)),s(s(x75)),s(x76),s(x72)))⟹if#(first,s(x12),s(x13),s(x72)) > if#(le(s(s(x12)),s(x13),s(s(x72))),s(s(x12)),s(x13),s(s(x72))))
-
Applying Rule "Same Constructor" results in
(le(x74,x73,x72)→*first⟹x12→*x74⟹s(x13)→*s(x73)⟹∀x75
.
∀x76
.
(le(x74,x73,x72)→*first⟹s(x75)→*x74⟹s(x76)→*x73⟹if#(first,s(x75),s(x76),x72) > if#(le(s(s(x75)),s(x76),s(x72)),s(s(x75)),s(x76),s(x72)))⟹if#(first,s(x12),s(x13),s(x72)) > if#(le(s(s(x12)),s(x13),s(s(x72))),s(s(x12)),s(x13),s(s(x72))))
-
Applying Rule "Same Constructor" results in
(le(x74,x73,x72)→*first⟹x12→*x74⟹x13→*x73⟹∀x75
.
∀x76
.
(le(x74,x73,x72)→*first⟹s(x75)→*x74⟹s(x76)→*x73⟹if#(first,s(x75),s(x76),x72) > if#(le(s(s(x75)),s(x76),s(x72)),s(s(x75)),s(x76),s(x72)))⟹if#(first,s(x12),s(x13),s(x72)) > if#(le(s(s(x12)),s(x13),s(s(x72))),s(s(x12)),s(x13),s(s(x72))))
-
Applying Rule "Variable in Equation" allows to substitute
x12 by x74 which results in
(le(x74,x73,x72)→*first⟹x13→*x73⟹∀x75
.
∀x76
.
(le(x74,x73,x72)→*first⟹s(x75)→*x74⟹s(x76)→*x73⟹if#(first,s(x75),s(x76),x72) > if#(le(s(s(x75)),s(x76),s(x72)),s(s(x75)),s(x76),s(x72)))⟹if#(first,s(x74),s(x13),s(x72)) > if#(le(s(s(x74)),s(x13),s(s(x72))),s(s(x74)),s(x13),s(s(x72))))
-
Applying Rule "Variable in Equation" allows to substitute
x13 by x73 which results in
(le(x74,x73,x72)→*first⟹∀x75
.
∀x76
.
(le(x74,x73,x72)→*first⟹s(x75)→*x74⟹s(x76)→*x73⟹if#(first,s(x75),s(x76),x72) > if#(le(s(s(x75)),s(x76),s(x72)),s(s(x75)),s(x76),s(x72)))⟹if#(first,s(x74),s(x73),s(x72)) > if#(le(s(s(x74)),s(x73),s(s(x72))),s(s(x74)),s(x73),s(s(x72))))
-
Applying Rule "Delete Conditions" results in
(le(x74,x73,x72)→*first⟹if#(first,s(x74),s(x73),s(x72)) > if#(le(s(s(x74)),s(x73),s(s(x72))),s(s(x74)),s(x73),s(s(x72))))
-
Applying Rule "Induction" on le(x74,x73,x72)→*first results in the following 4 new constraints.
- (false→*first⟹if#(first,s(s(x82)),s(0),s(x81)) > if#(le(s(s(s(x82))),s(0),s(s(x81))),s(s(s(x82))),s(0),s(s(x81))))
- Applying Rule "Different Constructors" allows to drop this constraint.
- (le(x85,x84,x83)→*first⟹(le(x85,x84,x83)→*first⟹if#(first,s(x85),s(x84),s(x83)) > if#(le(s(s(x85)),s(x84),s(s(x83))),s(s(x85)),s(x84),s(s(x83))))⟹if#(first,s(s(x85)),s(s(x84)),s(s(x83))) > if#(le(s(s(s(x85))),s(s(x84)),s(s(s(x83)))),s(s(s(x85))),s(s(x84)),s(s(s(x83)))))
- (greater(x87,x86)→*first⟹if#(first,s(0),s(x87),s(x86)) > if#(le(s(s(0)),s(x87),s(s(x86))),s(s(0)),s(x87),s(s(x86))))
- (false→*first⟹if#(first,s(s(x89)),s(s(x88)),s(0)) > if#(le(s(s(s(x89))),s(s(x88)),s(s(0))),s(s(s(x89))),s(s(x88)),s(s(0))))
- Applying Rule "Different Constructors" allows to drop this constraint.
- (greater(x78,x77)→*first⟹s(x12)→*0⟹s(x13)→*x78⟹if#(first,s(x12),s(x13),x77) > if#(le(s(s(x12)),s(x13),s(x77)),s(s(x12)),s(x13),s(x77)))
- Applying Rule "Different Constructors" allows to drop this constraint.
- (false→*first⟹if#(first,s(x12),s(x13),0) > if#(le(s(s(x12)),s(x13),s(0)),s(s(x12)),s(x13),s(0)))
- Applying Rule "Different Constructors" allows to drop this constraint.
-
For the chain
we build the initial constraint
(if#(le(s(x18),x19,s(x20)),s(x18),x19,s(x20))→*if#(first,x21,x22,x23)⟹if#(first,x21,x22,x23) > if#(le(s(x21),x22,s(x23)),s(x21),x22,s(x23)))
which is simplified as follows.
-
Applying Rule "Same Constructor" results in
(le(s(x18),x19,s(x20))→*first⟹s(x18)→*x21⟹x19→*x22⟹s(x20)→*x23⟹if#(first,x21,x22,x23) > if#(le(s(x21),x22,s(x23)),s(x21),x22,s(x23)))
-
Applying Rule "Variable in Equation" allows to substitute
x21 by s(x18) which results in
(le(s(x18),x19,s(x20))→*first⟹x19→*x22⟹s(x20)→*x23⟹if#(first,s(x18),x22,x23) > if#(le(s(s(x18)),x22,s(x23)),s(s(x18)),x22,s(x23)))
-
Applying Rule "Variable in Equation" allows to substitute
x22 by x19 which results in
(le(s(x18),x19,s(x20))→*first⟹s(x20)→*x23⟹if#(first,s(x18),x19,x23) > if#(le(s(s(x18)),x19,s(x23)),s(s(x18)),x19,s(x23)))
-
Applying Rule "Variable in Equation" allows to substitute
x23 by s(x20) which results in
(le(s(x18),x19,s(x20))→*first⟹if#(first,s(x18),x19,s(x20)) > if#(le(s(s(x18)),x19,s(s(x20))),s(s(x18)),x19,s(s(x20))))
-
Applying Rule "Introduce fresh variable" results in
(s(x20)→*x91⟹le(s(x18),x19,x91)→*first⟹if#(first,s(x18),x19,s(x20)) > if#(le(s(s(x18)),x19,s(s(x20))),s(s(x18)),x19,s(s(x20))))
-
Applying Rule "Introduce fresh variable" results in
(s(x18)→*x90⟹s(x20)→*x91⟹le(x90,x19,x91)→*first⟹if#(first,s(x18),x19,s(x20)) > if#(le(s(s(x18)),x19,s(s(x20))),s(s(x18)),x19,s(s(x20))))
-
Applying Rule "Induction" on le(x90,x19,x91)→*first results in the following 4 new constraints.
- (false→*first⟹if#(first,s(x18),0,s(x20)) > if#(le(s(s(x18)),0,s(s(x20))),s(s(x18)),0,s(s(x20))))
- Applying Rule "Different Constructors" allows to drop this constraint.
- (le(x96,x95,x94)→*first⟹s(x18)→*s(x96)⟹s(x20)→*s(x94)⟹∀x97
.
∀x98
.
(le(x96,x95,x94)→*first⟹s(x97)→*x96⟹s(x98)→*x94⟹if#(first,s(x97),x95,s(x98)) > if#(le(s(s(x97)),x95,s(s(x98))),s(s(x97)),x95,s(s(x98))))⟹if#(first,s(x18),s(x95),s(x20)) > if#(le(s(s(x18)),s(x95),s(s(x20))),s(s(x18)),s(x95),s(s(x20))))
-
Applying Rule "Same Constructor" results in
(le(x96,x95,x94)→*first⟹x18→*x96⟹s(x20)→*s(x94)⟹∀x97
.
∀x98
.
(le(x96,x95,x94)→*first⟹s(x97)→*x96⟹s(x98)→*x94⟹if#(first,s(x97),x95,s(x98)) > if#(le(s(s(x97)),x95,s(s(x98))),s(s(x97)),x95,s(s(x98))))⟹if#(first,s(x18),s(x95),s(x20)) > if#(le(s(s(x18)),s(x95),s(s(x20))),s(s(x18)),s(x95),s(s(x20))))
-
Applying Rule "Same Constructor" results in
(le(x96,x95,x94)→*first⟹x18→*x96⟹x20→*x94⟹∀x97
.
∀x98
.
(le(x96,x95,x94)→*first⟹s(x97)→*x96⟹s(x98)→*x94⟹if#(first,s(x97),x95,s(x98)) > if#(le(s(s(x97)),x95,s(s(x98))),s(s(x97)),x95,s(s(x98))))⟹if#(first,s(x18),s(x95),s(x20)) > if#(le(s(s(x18)),s(x95),s(s(x20))),s(s(x18)),s(x95),s(s(x20))))
-
Applying Rule "Variable in Equation" allows to substitute
x18 by x96 which results in
(le(x96,x95,x94)→*first⟹x20→*x94⟹∀x97
.
∀x98
.
(le(x96,x95,x94)→*first⟹s(x97)→*x96⟹s(x98)→*x94⟹if#(first,s(x97),x95,s(x98)) > if#(le(s(s(x97)),x95,s(s(x98))),s(s(x97)),x95,s(s(x98))))⟹if#(first,s(x96),s(x95),s(x20)) > if#(le(s(s(x96)),s(x95),s(s(x20))),s(s(x96)),s(x95),s(s(x20))))
-
Applying Rule "Variable in Equation" allows to substitute
x20 by x94 which results in
(le(x96,x95,x94)→*first⟹∀x97
.
∀x98
.
(le(x96,x95,x94)→*first⟹s(x97)→*x96⟹s(x98)→*x94⟹if#(first,s(x97),x95,s(x98)) > if#(le(s(s(x97)),x95,s(s(x98))),s(s(x97)),x95,s(s(x98))))⟹if#(first,s(x96),s(x95),s(x94)) > if#(le(s(s(x96)),s(x95),s(s(x94))),s(s(x96)),s(x95),s(s(x94))))
-
Applying Rule "Delete Conditions" results in
(le(x96,x95,x94)→*first⟹if#(first,s(x96),s(x95),s(x94)) > if#(le(s(s(x96)),s(x95),s(s(x94))),s(s(x96)),s(x95),s(s(x94))))
-
Applying Rule "Induction" on le(x96,x95,x94)→*first results in the following 4 new constraints.
- (false→*first⟹if#(first,s(s(x104)),s(0),s(x103)) > if#(le(s(s(s(x104))),s(0),s(s(x103))),s(s(s(x104))),s(0),s(s(x103))))
- Applying Rule "Different Constructors" allows to drop this constraint.
- (le(x107,x106,x105)→*first⟹(le(x107,x106,x105)→*first⟹if#(first,s(x107),s(x106),s(x105)) > if#(le(s(s(x107)),s(x106),s(s(x105))),s(s(x107)),s(x106),s(s(x105))))⟹if#(first,s(s(x107)),s(s(x106)),s(s(x105))) > if#(le(s(s(s(x107))),s(s(x106)),s(s(s(x105)))),s(s(s(x107))),s(s(x106)),s(s(s(x105)))))
- (greater(x109,x108)→*first⟹if#(first,s(0),s(x109),s(x108)) > if#(le(s(s(0)),s(x109),s(s(x108))),s(s(0)),s(x109),s(s(x108))))
- (false→*first⟹if#(first,s(s(x111)),s(s(x110)),s(0)) > if#(le(s(s(s(x111))),s(s(x110)),s(s(0))),s(s(s(x111))),s(s(x110)),s(s(0))))
- Applying Rule "Different Constructors" allows to drop this constraint.
- (greater(x100,x99)→*first⟹s(x18)→*0⟹s(x20)→*x99⟹if#(first,s(x18),x100,s(x20)) > if#(le(s(s(x18)),x100,s(s(x20))),s(s(x18)),x100,s(s(x20))))
- Applying Rule "Different Constructors" allows to drop this constraint.
- (false→*first⟹if#(first,s(x18),s(x101),s(x20)) > if#(le(s(s(x18)),s(x101),s(s(x20))),s(s(x18)),s(x101),s(s(x20))))
- Applying Rule "Different Constructors" allows to drop this constraint.
We remove those pairs which are strictly decreasing and bounded.
are bounded w.r.t. the constant c.
The following constraints are generated for the pairs.
-
For the chain
we build the initial constraint
(if#(le(s(x0),s(x1),x2),s(x0),s(x1),x2)→*if#(second,x3,x4,x5)⟹if#(second,x3,x4,x5)≥c)
which is simplified as follows.
-
Applying Rule "Same Constructor" results in
(le(s(x0),s(x1),x2)→*second⟹s(x0)→*x3⟹s(x1)→*x4⟹x2→*x5⟹if#(second,x3,x4,x5)≥c)
-
Applying Rule "Variable in Equation" allows to substitute
x3 by s(x0) which results in
(le(s(x0),s(x1),x2)→*second⟹s(x1)→*x4⟹x2→*x5⟹if#(second,s(x0),x4,x5)≥c)
-
Applying Rule "Variable in Equation" allows to substitute
x4 by s(x1) which results in
(le(s(x0),s(x1),x2)→*second⟹x2→*x5⟹if#(second,s(x0),s(x1),x5)≥c)
-
Applying Rule "Variable in Equation" allows to substitute
x5 by x2 which results in
(le(s(x0),s(x1),x2)→*second⟹if#(second,s(x0),s(x1),x2)≥c)
-
Applying Rule "Introduce fresh variable" results in
(s(x1)→*x25⟹le(s(x0),x25,x2)→*second⟹if#(second,s(x0),s(x1),x2)≥c)
-
Applying Rule "Introduce fresh variable" results in
(s(x0)→*x24⟹s(x1)→*x25⟹le(x24,x25,x2)→*second⟹if#(second,s(x0),s(x1),x2)≥c)
-
Applying Rule "Induction" on le(x24,x25,x2)→*second results in the following 4 new constraints.
- (false→*second⟹if#(second,s(x0),s(x1),x26)≥c)
- Applying Rule "Different Constructors" allows to drop this constraint.
- (le(x30,x29,x28)→*second⟹s(x0)→*s(x30)⟹s(x1)→*s(x29)⟹∀x31
.
∀x32
.
(le(x30,x29,x28)→*second⟹s(x31)→*x30⟹s(x32)→*x29⟹if#(second,s(x31),s(x32),x28)≥c)⟹if#(second,s(x0),s(x1),s(x28))≥c)
-
Applying Rule "Same Constructor" results in
(le(x30,x29,x28)→*second⟹x0→*x30⟹s(x1)→*s(x29)⟹∀x31
.
∀x32
.
(le(x30,x29,x28)→*second⟹s(x31)→*x30⟹s(x32)→*x29⟹if#(second,s(x31),s(x32),x28)≥c)⟹if#(second,s(x0),s(x1),s(x28))≥c)
-
Applying Rule "Same Constructor" results in
(le(x30,x29,x28)→*second⟹x0→*x30⟹x1→*x29⟹∀x31
.
∀x32
.
(le(x30,x29,x28)→*second⟹s(x31)→*x30⟹s(x32)→*x29⟹if#(second,s(x31),s(x32),x28)≥c)⟹if#(second,s(x0),s(x1),s(x28))≥c)
-
Applying Rule "Variable in Equation" allows to substitute
x0 by x30 which results in
(le(x30,x29,x28)→*second⟹x1→*x29⟹∀x31
.
∀x32
.
(le(x30,x29,x28)→*second⟹s(x31)→*x30⟹s(x32)→*x29⟹if#(second,s(x31),s(x32),x28)≥c)⟹if#(second,s(x30),s(x1),s(x28))≥c)
-
Applying Rule "Variable in Equation" allows to substitute
x1 by x29 which results in
(le(x30,x29,x28)→*second⟹∀x31
.
∀x32
.
(le(x30,x29,x28)→*second⟹s(x31)→*x30⟹s(x32)→*x29⟹if#(second,s(x31),s(x32),x28)≥c)⟹if#(second,s(x30),s(x29),s(x28))≥c)
-
Applying Rule "Delete Conditions" results in
(le(x30,x29,x28)→*second⟹if#(second,s(x30),s(x29),s(x28))≥c)
-
Applying Rule "Induction" on le(x30,x29,x28)→*second results in the following 4 new constraints.
- (false→*second⟹if#(second,s(s(x38)),s(0),s(x37))≥c)
- Applying Rule "Different Constructors" allows to drop this constraint.
- (le(x41,x40,x39)→*second⟹(le(x41,x40,x39)→*second⟹if#(second,s(x41),s(x40),s(x39))≥c)⟹if#(second,s(s(x41)),s(s(x40)),s(s(x39)))≥c)
- (greater(x43,x42)→*second⟹if#(second,s(0),s(x43),s(x42))≥c)
- (false→*second⟹if#(second,s(s(x45)),s(s(x44)),s(0))≥c)
- Applying Rule "Different Constructors" allows to drop this constraint.
- (greater(x34,x33)→*second⟹s(x0)→*0⟹s(x1)→*x34⟹if#(second,s(x0),s(x1),x33)≥c)
- Applying Rule "Different Constructors" allows to drop this constraint.
- (false→*second⟹if#(second,s(x0),s(x1),0)≥c)
- Applying Rule "Different Constructors" allows to drop this constraint.
-
For the chain
we build the initial constraint
(if#(le(s(x6),x7,s(x8)),s(x6),x7,s(x8))→*if#(second,x9,x10,x11)⟹if#(second,x9,x10,x11)≥c)
which is simplified as follows.
-
Applying Rule "Same Constructor" results in
(le(s(x6),x7,s(x8))→*second⟹s(x6)→*x9⟹x7→*x10⟹s(x8)→*x11⟹if#(second,x9,x10,x11)≥c)
-
Applying Rule "Variable in Equation" allows to substitute
x9 by s(x6) which results in
(le(s(x6),x7,s(x8))→*second⟹x7→*x10⟹s(x8)→*x11⟹if#(second,s(x6),x10,x11)≥c)
-
Applying Rule "Variable in Equation" allows to substitute
x10 by x7 which results in
(le(s(x6),x7,s(x8))→*second⟹s(x8)→*x11⟹if#(second,s(x6),x7,x11)≥c)
-
Applying Rule "Variable in Equation" allows to substitute
x11 by s(x8) which results in
(le(s(x6),x7,s(x8))→*second⟹if#(second,s(x6),x7,s(x8))≥c)
-
Applying Rule "Introduce fresh variable" results in
(s(x8)→*x47⟹le(s(x6),x7,x47)→*second⟹if#(second,s(x6),x7,s(x8))≥c)
-
Applying Rule "Introduce fresh variable" results in
(s(x6)→*x46⟹s(x8)→*x47⟹le(x46,x7,x47)→*second⟹if#(second,s(x6),x7,s(x8))≥c)
-
Applying Rule "Induction" on le(x46,x7,x47)→*second results in the following 4 new constraints.
- (false→*second⟹if#(second,s(x6),0,s(x8))≥c)
- Applying Rule "Different Constructors" allows to drop this constraint.
- (le(x52,x51,x50)→*second⟹s(x6)→*s(x52)⟹s(x8)→*s(x50)⟹∀x53
.
∀x54
.
(le(x52,x51,x50)→*second⟹s(x53)→*x52⟹s(x54)→*x50⟹if#(second,s(x53),x51,s(x54))≥c)⟹if#(second,s(x6),s(x51),s(x8))≥c)
-
Applying Rule "Same Constructor" results in
(le(x52,x51,x50)→*second⟹x6→*x52⟹s(x8)→*s(x50)⟹∀x53
.
∀x54
.
(le(x52,x51,x50)→*second⟹s(x53)→*x52⟹s(x54)→*x50⟹if#(second,s(x53),x51,s(x54))≥c)⟹if#(second,s(x6),s(x51),s(x8))≥c)
-
Applying Rule "Same Constructor" results in
(le(x52,x51,x50)→*second⟹x6→*x52⟹x8→*x50⟹∀x53
.
∀x54
.
(le(x52,x51,x50)→*second⟹s(x53)→*x52⟹s(x54)→*x50⟹if#(second,s(x53),x51,s(x54))≥c)⟹if#(second,s(x6),s(x51),s(x8))≥c)
-
Applying Rule "Variable in Equation" allows to substitute
x6 by x52 which results in
(le(x52,x51,x50)→*second⟹x8→*x50⟹∀x53
.
∀x54
.
(le(x52,x51,x50)→*second⟹s(x53)→*x52⟹s(x54)→*x50⟹if#(second,s(x53),x51,s(x54))≥c)⟹if#(second,s(x52),s(x51),s(x8))≥c)
-
Applying Rule "Variable in Equation" allows to substitute
x8 by x50 which results in
(le(x52,x51,x50)→*second⟹∀x53
.
∀x54
.
(le(x52,x51,x50)→*second⟹s(x53)→*x52⟹s(x54)→*x50⟹if#(second,s(x53),x51,s(x54))≥c)⟹if#(second,s(x52),s(x51),s(x50))≥c)
-
Applying Rule "Delete Conditions" results in
(le(x52,x51,x50)→*second⟹if#(second,s(x52),s(x51),s(x50))≥c)
-
Applying Rule "Induction" on le(x52,x51,x50)→*second results in the following 4 new constraints.
- (false→*second⟹if#(second,s(s(x60)),s(0),s(x59))≥c)
- Applying Rule "Different Constructors" allows to drop this constraint.
- (le(x63,x62,x61)→*second⟹(le(x63,x62,x61)→*second⟹if#(second,s(x63),s(x62),s(x61))≥c)⟹if#(second,s(s(x63)),s(s(x62)),s(s(x61)))≥c)
- (greater(x65,x64)→*second⟹if#(second,s(0),s(x65),s(x64))≥c)
- (false→*second⟹if#(second,s(s(x67)),s(s(x66)),s(0))≥c)
- Applying Rule "Different Constructors" allows to drop this constraint.
- (greater(x56,x55)→*second⟹s(x6)→*0⟹s(x8)→*x55⟹if#(second,s(x6),x56,s(x8))≥c)
- Applying Rule "Different Constructors" allows to drop this constraint.
- (false→*second⟹if#(second,s(x6),s(x57),s(x8))≥c)
- Applying Rule "Different Constructors" allows to drop this constraint.
-
For the chain
we build the initial constraint
(if#(le(s(x0),s(x1),x2),s(x0),s(x1),x2)→*if#(second,x3,x4,x5)⟹if#(second,x3,x4,x5) > if#(le(s(x3),s(x4),x5),s(x3),s(x4),x5))
which is simplified as follows.
-
Applying Rule "Same Constructor" results in
(le(s(x0),s(x1),x2)→*second⟹s(x0)→*x3⟹s(x1)→*x4⟹x2→*x5⟹if#(second,x3,x4,x5) > if#(le(s(x3),s(x4),x5),s(x3),s(x4),x5))
-
Applying Rule "Variable in Equation" allows to substitute
x3 by s(x0) which results in
(le(s(x0),s(x1),x2)→*second⟹s(x1)→*x4⟹x2→*x5⟹if#(second,s(x0),x4,x5) > if#(le(s(s(x0)),s(x4),x5),s(s(x0)),s(x4),x5))
-
Applying Rule "Variable in Equation" allows to substitute
x4 by s(x1) which results in
(le(s(x0),s(x1),x2)→*second⟹x2→*x5⟹if#(second,s(x0),s(x1),x5) > if#(le(s(s(x0)),s(s(x1)),x5),s(s(x0)),s(s(x1)),x5))
-
Applying Rule "Variable in Equation" allows to substitute
x5 by x2 which results in
(le(s(x0),s(x1),x2)→*second⟹if#(second,s(x0),s(x1),x2) > if#(le(s(s(x0)),s(s(x1)),x2),s(s(x0)),s(s(x1)),x2))
-
Applying Rule "Introduce fresh variable" results in
(s(x1)→*x25⟹le(s(x0),x25,x2)→*second⟹if#(second,s(x0),s(x1),x2) > if#(le(s(s(x0)),s(s(x1)),x2),s(s(x0)),s(s(x1)),x2))
-
Applying Rule "Introduce fresh variable" results in
(s(x0)→*x24⟹s(x1)→*x25⟹le(x24,x25,x2)→*second⟹if#(second,s(x0),s(x1),x2) > if#(le(s(s(x0)),s(s(x1)),x2),s(s(x0)),s(s(x1)),x2))
-
Applying Rule "Induction" on le(x24,x25,x2)→*second results in the following 4 new constraints.
- (false→*second⟹if#(second,s(x0),s(x1),x26) > if#(le(s(s(x0)),s(s(x1)),x26),s(s(x0)),s(s(x1)),x26))
- Applying Rule "Different Constructors" allows to drop this constraint.
- (le(x30,x29,x28)→*second⟹s(x0)→*s(x30)⟹s(x1)→*s(x29)⟹∀x31
.
∀x32
.
(le(x30,x29,x28)→*second⟹s(x31)→*x30⟹s(x32)→*x29⟹if#(second,s(x31),s(x32),x28) > if#(le(s(s(x31)),s(s(x32)),x28),s(s(x31)),s(s(x32)),x28))⟹if#(second,s(x0),s(x1),s(x28)) > if#(le(s(s(x0)),s(s(x1)),s(x28)),s(s(x0)),s(s(x1)),s(x28)))
-
Applying Rule "Same Constructor" results in
(le(x30,x29,x28)→*second⟹x0→*x30⟹s(x1)→*s(x29)⟹∀x31
.
∀x32
.
(le(x30,x29,x28)→*second⟹s(x31)→*x30⟹s(x32)→*x29⟹if#(second,s(x31),s(x32),x28) > if#(le(s(s(x31)),s(s(x32)),x28),s(s(x31)),s(s(x32)),x28))⟹if#(second,s(x0),s(x1),s(x28)) > if#(le(s(s(x0)),s(s(x1)),s(x28)),s(s(x0)),s(s(x1)),s(x28)))
-
Applying Rule "Same Constructor" results in
(le(x30,x29,x28)→*second⟹x0→*x30⟹x1→*x29⟹∀x31
.
∀x32
.
(le(x30,x29,x28)→*second⟹s(x31)→*x30⟹s(x32)→*x29⟹if#(second,s(x31),s(x32),x28) > if#(le(s(s(x31)),s(s(x32)),x28),s(s(x31)),s(s(x32)),x28))⟹if#(second,s(x0),s(x1),s(x28)) > if#(le(s(s(x0)),s(s(x1)),s(x28)),s(s(x0)),s(s(x1)),s(x28)))
-
Applying Rule "Variable in Equation" allows to substitute
x0 by x30 which results in
(le(x30,x29,x28)→*second⟹x1→*x29⟹∀x31
.
∀x32
.
(le(x30,x29,x28)→*second⟹s(x31)→*x30⟹s(x32)→*x29⟹if#(second,s(x31),s(x32),x28) > if#(le(s(s(x31)),s(s(x32)),x28),s(s(x31)),s(s(x32)),x28))⟹if#(second,s(x30),s(x1),s(x28)) > if#(le(s(s(x30)),s(s(x1)),s(x28)),s(s(x30)),s(s(x1)),s(x28)))
-
Applying Rule "Variable in Equation" allows to substitute
x1 by x29 which results in
(le(x30,x29,x28)→*second⟹∀x31
.
∀x32
.
(le(x30,x29,x28)→*second⟹s(x31)→*x30⟹s(x32)→*x29⟹if#(second,s(x31),s(x32),x28) > if#(le(s(s(x31)),s(s(x32)),x28),s(s(x31)),s(s(x32)),x28))⟹if#(second,s(x30),s(x29),s(x28)) > if#(le(s(s(x30)),s(s(x29)),s(x28)),s(s(x30)),s(s(x29)),s(x28)))
-
Applying Rule "Delete Conditions" results in
(le(x30,x29,x28)→*second⟹if#(second,s(x30),s(x29),s(x28)) > if#(le(s(s(x30)),s(s(x29)),s(x28)),s(s(x30)),s(s(x29)),s(x28)))
-
Applying Rule "Induction" on le(x30,x29,x28)→*second results in the following 4 new constraints.
- (false→*second⟹if#(second,s(s(x38)),s(0),s(x37)) > if#(le(s(s(s(x38))),s(s(0)),s(x37)),s(s(s(x38))),s(s(0)),s(x37)))
- Applying Rule "Different Constructors" allows to drop this constraint.
- (le(x41,x40,x39)→*second⟹(le(x41,x40,x39)→*second⟹if#(second,s(x41),s(x40),s(x39)) > if#(le(s(s(x41)),s(s(x40)),s(x39)),s(s(x41)),s(s(x40)),s(x39)))⟹if#(second,s(s(x41)),s(s(x40)),s(s(x39))) > if#(le(s(s(s(x41))),s(s(s(x40))),s(s(x39))),s(s(s(x41))),s(s(s(x40))),s(s(x39))))
- (greater(x43,x42)→*second⟹if#(second,s(0),s(x43),s(x42)) > if#(le(s(s(0)),s(s(x43)),s(x42)),s(s(0)),s(s(x43)),s(x42)))
- (false→*second⟹if#(second,s(s(x45)),s(s(x44)),s(0)) > if#(le(s(s(s(x45))),s(s(s(x44))),s(0)),s(s(s(x45))),s(s(s(x44))),s(0)))
- Applying Rule "Different Constructors" allows to drop this constraint.
- (greater(x34,x33)→*second⟹s(x0)→*0⟹s(x1)→*x34⟹if#(second,s(x0),s(x1),x33) > if#(le(s(s(x0)),s(s(x1)),x33),s(s(x0)),s(s(x1)),x33))
- Applying Rule "Different Constructors" allows to drop this constraint.
- (false→*second⟹if#(second,s(x0),s(x1),0) > if#(le(s(s(x0)),s(s(x1)),0),s(s(x0)),s(s(x1)),0))
- Applying Rule "Different Constructors" allows to drop this constraint.
-
For the chain
we build the initial constraint
(if#(le(s(x6),x7,s(x8)),s(x6),x7,s(x8))→*if#(second,x9,x10,x11)⟹if#(second,x9,x10,x11) > if#(le(s(x9),s(x10),x11),s(x9),s(x10),x11))
which is simplified as follows.
-
Applying Rule "Same Constructor" results in
(le(s(x6),x7,s(x8))→*second⟹s(x6)→*x9⟹x7→*x10⟹s(x8)→*x11⟹if#(second,x9,x10,x11) > if#(le(s(x9),s(x10),x11),s(x9),s(x10),x11))
-
Applying Rule "Variable in Equation" allows to substitute
x9 by s(x6) which results in
(le(s(x6),x7,s(x8))→*second⟹x7→*x10⟹s(x8)→*x11⟹if#(second,s(x6),x10,x11) > if#(le(s(s(x6)),s(x10),x11),s(s(x6)),s(x10),x11))
-
Applying Rule "Variable in Equation" allows to substitute
x10 by x7 which results in
(le(s(x6),x7,s(x8))→*second⟹s(x8)→*x11⟹if#(second,s(x6),x7,x11) > if#(le(s(s(x6)),s(x7),x11),s(s(x6)),s(x7),x11))
-
Applying Rule "Variable in Equation" allows to substitute
x11 by s(x8) which results in
(le(s(x6),x7,s(x8))→*second⟹if#(second,s(x6),x7,s(x8)) > if#(le(s(s(x6)),s(x7),s(x8)),s(s(x6)),s(x7),s(x8)))
-
Applying Rule "Introduce fresh variable" results in
(s(x8)→*x47⟹le(s(x6),x7,x47)→*second⟹if#(second,s(x6),x7,s(x8)) > if#(le(s(s(x6)),s(x7),s(x8)),s(s(x6)),s(x7),s(x8)))
-
Applying Rule "Introduce fresh variable" results in
(s(x6)→*x46⟹s(x8)→*x47⟹le(x46,x7,x47)→*second⟹if#(second,s(x6),x7,s(x8)) > if#(le(s(s(x6)),s(x7),s(x8)),s(s(x6)),s(x7),s(x8)))
-
Applying Rule "Induction" on le(x46,x7,x47)→*second results in the following 4 new constraints.
- (false→*second⟹if#(second,s(x6),0,s(x8)) > if#(le(s(s(x6)),s(0),s(x8)),s(s(x6)),s(0),s(x8)))
- Applying Rule "Different Constructors" allows to drop this constraint.
- (le(x52,x51,x50)→*second⟹s(x6)→*s(x52)⟹s(x8)→*s(x50)⟹∀x53
.
∀x54
.
(le(x52,x51,x50)→*second⟹s(x53)→*x52⟹s(x54)→*x50⟹if#(second,s(x53),x51,s(x54)) > if#(le(s(s(x53)),s(x51),s(x54)),s(s(x53)),s(x51),s(x54)))⟹if#(second,s(x6),s(x51),s(x8)) > if#(le(s(s(x6)),s(s(x51)),s(x8)),s(s(x6)),s(s(x51)),s(x8)))
-
Applying Rule "Same Constructor" results in
(le(x52,x51,x50)→*second⟹x6→*x52⟹s(x8)→*s(x50)⟹∀x53
.
∀x54
.
(le(x52,x51,x50)→*second⟹s(x53)→*x52⟹s(x54)→*x50⟹if#(second,s(x53),x51,s(x54)) > if#(le(s(s(x53)),s(x51),s(x54)),s(s(x53)),s(x51),s(x54)))⟹if#(second,s(x6),s(x51),s(x8)) > if#(le(s(s(x6)),s(s(x51)),s(x8)),s(s(x6)),s(s(x51)),s(x8)))
-
Applying Rule "Same Constructor" results in
(le(x52,x51,x50)→*second⟹x6→*x52⟹x8→*x50⟹∀x53
.
∀x54
.
(le(x52,x51,x50)→*second⟹s(x53)→*x52⟹s(x54)→*x50⟹if#(second,s(x53),x51,s(x54)) > if#(le(s(s(x53)),s(x51),s(x54)),s(s(x53)),s(x51),s(x54)))⟹if#(second,s(x6),s(x51),s(x8)) > if#(le(s(s(x6)),s(s(x51)),s(x8)),s(s(x6)),s(s(x51)),s(x8)))
-
Applying Rule "Variable in Equation" allows to substitute
x6 by x52 which results in
(le(x52,x51,x50)→*second⟹x8→*x50⟹∀x53
.
∀x54
.
(le(x52,x51,x50)→*second⟹s(x53)→*x52⟹s(x54)→*x50⟹if#(second,s(x53),x51,s(x54)) > if#(le(s(s(x53)),s(x51),s(x54)),s(s(x53)),s(x51),s(x54)))⟹if#(second,s(x52),s(x51),s(x8)) > if#(le(s(s(x52)),s(s(x51)),s(x8)),s(s(x52)),s(s(x51)),s(x8)))
-
Applying Rule "Variable in Equation" allows to substitute
x8 by x50 which results in
(le(x52,x51,x50)→*second⟹∀x53
.
∀x54
.
(le(x52,x51,x50)→*second⟹s(x53)→*x52⟹s(x54)→*x50⟹if#(second,s(x53),x51,s(x54)) > if#(le(s(s(x53)),s(x51),s(x54)),s(s(x53)),s(x51),s(x54)))⟹if#(second,s(x52),s(x51),s(x50)) > if#(le(s(s(x52)),s(s(x51)),s(x50)),s(s(x52)),s(s(x51)),s(x50)))
-
Applying Rule "Delete Conditions" results in
(le(x52,x51,x50)→*second⟹if#(second,s(x52),s(x51),s(x50)) > if#(le(s(s(x52)),s(s(x51)),s(x50)),s(s(x52)),s(s(x51)),s(x50)))
-
Applying Rule "Induction" on le(x52,x51,x50)→*second results in the following 4 new constraints.
- (false→*second⟹if#(second,s(s(x60)),s(0),s(x59)) > if#(le(s(s(s(x60))),s(s(0)),s(x59)),s(s(s(x60))),s(s(0)),s(x59)))
- Applying Rule "Different Constructors" allows to drop this constraint.
- (le(x63,x62,x61)→*second⟹(le(x63,x62,x61)→*second⟹if#(second,s(x63),s(x62),s(x61)) > if#(le(s(s(x63)),s(s(x62)),s(x61)),s(s(x63)),s(s(x62)),s(x61)))⟹if#(second,s(s(x63)),s(s(x62)),s(s(x61))) > if#(le(s(s(s(x63))),s(s(s(x62))),s(s(x61))),s(s(s(x63))),s(s(s(x62))),s(s(x61))))
- (greater(x65,x64)→*second⟹if#(second,s(0),s(x65),s(x64)) > if#(le(s(s(0)),s(s(x65)),s(x64)),s(s(0)),s(s(x65)),s(x64)))
- (false→*second⟹if#(second,s(s(x67)),s(s(x66)),s(0)) > if#(le(s(s(s(x67))),s(s(s(x66))),s(0)),s(s(s(x67))),s(s(s(x66))),s(0)))
- Applying Rule "Different Constructors" allows to drop this constraint.
- (greater(x56,x55)→*second⟹s(x6)→*0⟹s(x8)→*x55⟹if#(second,s(x6),x56,s(x8)) > if#(le(s(s(x6)),s(x56),s(x8)),s(s(x6)),s(x56),s(x8)))
- Applying Rule "Different Constructors" allows to drop this constraint.
- (false→*second⟹if#(second,s(x6),s(x57),s(x8)) > if#(le(s(s(x6)),s(s(x57)),s(x8)),s(s(x6)),s(s(x57)),s(x8)))
- Applying Rule "Different Constructors" allows to drop this constraint.
We remove those pairs which are strictly decreasing and bounded.
There are no pairs anymore.