0 QTRS
↳1 Overlay + Local Confluence (⇔)
↳2 QTRS
↳3 DependencyPairsProof (⇔)
↳4 QDP
↳5 DependencyGraphProof (⇔)
↳6 QDP
↳7 QDPOrderProof (⇔)
↳8 QDP
↳9 DependencyGraphProof (⇔)
↳10 AND
↳11 QDP
↳12 QDPOrderProof (⇔)
↳13 QDP
↳14 PisEmptyProof (⇔)
↳15 TRUE
↳16 QDP
↳17 QDPOrderProof (⇔)
↳18 QDP
↳19 PisEmptyProof (⇔)
↳20 TRUE
app(app(and, true), true) → true
app(app(and, true), false) → false
app(app(and, false), true) → false
app(app(and, false), false) → false
app(app(or, true), true) → true
app(app(or, true), false) → true
app(app(or, false), true) → true
app(app(or, false), false) → false
app(app(forall, p), nil) → true
app(app(forall, p), app(app(cons, x), xs)) → app(app(and, app(p, x)), app(app(forall, p), xs))
app(app(forsome, p), nil) → false
app(app(forsome, p), app(app(cons, x), xs)) → app(app(or, app(p, x)), app(app(forsome, p), xs))
app(app(and, true), true) → true
app(app(and, true), false) → false
app(app(and, false), true) → false
app(app(and, false), false) → false
app(app(or, true), true) → true
app(app(or, true), false) → true
app(app(or, false), true) → true
app(app(or, false), false) → false
app(app(forall, p), nil) → true
app(app(forall, p), app(app(cons, x), xs)) → app(app(and, app(p, x)), app(app(forall, p), xs))
app(app(forsome, p), nil) → false
app(app(forsome, p), app(app(cons, x), xs)) → app(app(or, app(p, x)), app(app(forsome, p), xs))
app(app(and, true), true)
app(app(and, true), false)
app(app(and, false), true)
app(app(and, false), false)
app(app(or, true), true)
app(app(or, true), false)
app(app(or, false), true)
app(app(or, false), false)
app(app(forall, x0), nil)
app(app(forall, x0), app(app(cons, x1), x2))
app(app(forsome, x0), nil)
app(app(forsome, x0), app(app(cons, x1), x2))
APP(app(forall, p), app(app(cons, x), xs)) → APP(app(and, app(p, x)), app(app(forall, p), xs))
APP(app(forall, p), app(app(cons, x), xs)) → APP(and, app(p, x))
APP(app(forall, p), app(app(cons, x), xs)) → APP(p, x)
APP(app(forall, p), app(app(cons, x), xs)) → APP(app(forall, p), xs)
APP(app(forsome, p), app(app(cons, x), xs)) → APP(app(or, app(p, x)), app(app(forsome, p), xs))
APP(app(forsome, p), app(app(cons, x), xs)) → APP(or, app(p, x))
APP(app(forsome, p), app(app(cons, x), xs)) → APP(p, x)
APP(app(forsome, p), app(app(cons, x), xs)) → APP(app(forsome, p), xs)
app(app(and, true), true) → true
app(app(and, true), false) → false
app(app(and, false), true) → false
app(app(and, false), false) → false
app(app(or, true), true) → true
app(app(or, true), false) → true
app(app(or, false), true) → true
app(app(or, false), false) → false
app(app(forall, p), nil) → true
app(app(forall, p), app(app(cons, x), xs)) → app(app(and, app(p, x)), app(app(forall, p), xs))
app(app(forsome, p), nil) → false
app(app(forsome, p), app(app(cons, x), xs)) → app(app(or, app(p, x)), app(app(forsome, p), xs))
app(app(and, true), true)
app(app(and, true), false)
app(app(and, false), true)
app(app(and, false), false)
app(app(or, true), true)
app(app(or, true), false)
app(app(or, false), true)
app(app(or, false), false)
app(app(forall, x0), nil)
app(app(forall, x0), app(app(cons, x1), x2))
app(app(forsome, x0), nil)
app(app(forsome, x0), app(app(cons, x1), x2))
APP(app(forall, p), app(app(cons, x), xs)) → APP(app(forall, p), xs)
APP(app(forall, p), app(app(cons, x), xs)) → APP(p, x)
APP(app(forsome, p), app(app(cons, x), xs)) → APP(p, x)
APP(app(forsome, p), app(app(cons, x), xs)) → APP(app(forsome, p), xs)
app(app(and, true), true) → true
app(app(and, true), false) → false
app(app(and, false), true) → false
app(app(and, false), false) → false
app(app(or, true), true) → true
app(app(or, true), false) → true
app(app(or, false), true) → true
app(app(or, false), false) → false
app(app(forall, p), nil) → true
app(app(forall, p), app(app(cons, x), xs)) → app(app(and, app(p, x)), app(app(forall, p), xs))
app(app(forsome, p), nil) → false
app(app(forsome, p), app(app(cons, x), xs)) → app(app(or, app(p, x)), app(app(forsome, p), xs))
app(app(and, true), true)
app(app(and, true), false)
app(app(and, false), true)
app(app(and, false), false)
app(app(or, true), true)
app(app(or, true), false)
app(app(or, false), true)
app(app(or, false), false)
app(app(forall, x0), nil)
app(app(forall, x0), app(app(cons, x1), x2))
app(app(forsome, x0), nil)
app(app(forsome, x0), app(app(cons, x1), x2))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
APP(app(forall, p), app(app(cons, x), xs)) → APP(p, x)
APP(app(forsome, p), app(app(cons, x), xs)) → APP(p, x)
[forall, cons, forsome] > [app1, true] > false
and > [app1, true] > false
or > [app1, true] > false
app1: [1]
forall: []
cons: []
forsome: []
and: []
true: []
false: []
or: []
nil: []
app(app(and, true), true) → true
app(app(and, true), false) → false
app(app(and, false), true) → false
app(app(and, false), false) → false
app(app(or, true), true) → true
app(app(or, true), false) → true
app(app(or, false), true) → true
app(app(or, false), false) → false
app(app(forall, p), nil) → true
app(app(forall, p), app(app(cons, x), xs)) → app(app(and, app(p, x)), app(app(forall, p), xs))
app(app(forsome, p), nil) → false
app(app(forsome, p), app(app(cons, x), xs)) → app(app(or, app(p, x)), app(app(forsome, p), xs))
APP(app(forall, p), app(app(cons, x), xs)) → APP(app(forall, p), xs)
APP(app(forsome, p), app(app(cons, x), xs)) → APP(app(forsome, p), xs)
app(app(and, true), true) → true
app(app(and, true), false) → false
app(app(and, false), true) → false
app(app(and, false), false) → false
app(app(or, true), true) → true
app(app(or, true), false) → true
app(app(or, false), true) → true
app(app(or, false), false) → false
app(app(forall, p), nil) → true
app(app(forall, p), app(app(cons, x), xs)) → app(app(and, app(p, x)), app(app(forall, p), xs))
app(app(forsome, p), nil) → false
app(app(forsome, p), app(app(cons, x), xs)) → app(app(or, app(p, x)), app(app(forsome, p), xs))
app(app(and, true), true)
app(app(and, true), false)
app(app(and, false), true)
app(app(and, false), false)
app(app(or, true), true)
app(app(or, true), false)
app(app(or, false), true)
app(app(or, false), false)
app(app(forall, x0), nil)
app(app(forall, x0), app(app(cons, x1), x2))
app(app(forsome, x0), nil)
app(app(forsome, x0), app(app(cons, x1), x2))
APP(app(forsome, p), app(app(cons, x), xs)) → APP(app(forsome, p), xs)
app(app(and, true), true) → true
app(app(and, true), false) → false
app(app(and, false), true) → false
app(app(and, false), false) → false
app(app(or, true), true) → true
app(app(or, true), false) → true
app(app(or, false), true) → true
app(app(or, false), false) → false
app(app(forall, p), nil) → true
app(app(forall, p), app(app(cons, x), xs)) → app(app(and, app(p, x)), app(app(forall, p), xs))
app(app(forsome, p), nil) → false
app(app(forsome, p), app(app(cons, x), xs)) → app(app(or, app(p, x)), app(app(forsome, p), xs))
app(app(and, true), true)
app(app(and, true), false)
app(app(and, false), true)
app(app(and, false), false)
app(app(or, true), true)
app(app(or, true), false)
app(app(or, false), true)
app(app(or, false), false)
app(app(forall, x0), nil)
app(app(forall, x0), app(app(cons, x1), x2))
app(app(forsome, x0), nil)
app(app(forsome, x0), app(app(cons, x1), x2))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
APP(app(forsome, p), app(app(cons, x), xs)) → APP(app(forsome, p), xs)
forsome > app1 > [APP1, cons]
forsome > app1 > false > true
and > false > true
or > false > true
forall > app1 > [APP1, cons]
forall > app1 > false > true
APP1: [1]
app1: [1]
forsome: []
cons: []
and: []
true: []
false: []
or: []
forall: []
nil: []
app(app(and, true), true) → true
app(app(and, true), false) → false
app(app(and, false), true) → false
app(app(and, false), false) → false
app(app(or, true), true) → true
app(app(or, true), false) → true
app(app(or, false), true) → true
app(app(or, false), false) → false
app(app(forall, p), nil) → true
app(app(forall, p), app(app(cons, x), xs)) → app(app(and, app(p, x)), app(app(forall, p), xs))
app(app(forsome, p), nil) → false
app(app(forsome, p), app(app(cons, x), xs)) → app(app(or, app(p, x)), app(app(forsome, p), xs))
app(app(and, true), true) → true
app(app(and, true), false) → false
app(app(and, false), true) → false
app(app(and, false), false) → false
app(app(or, true), true) → true
app(app(or, true), false) → true
app(app(or, false), true) → true
app(app(or, false), false) → false
app(app(forall, p), nil) → true
app(app(forall, p), app(app(cons, x), xs)) → app(app(and, app(p, x)), app(app(forall, p), xs))
app(app(forsome, p), nil) → false
app(app(forsome, p), app(app(cons, x), xs)) → app(app(or, app(p, x)), app(app(forsome, p), xs))
app(app(and, true), true)
app(app(and, true), false)
app(app(and, false), true)
app(app(and, false), false)
app(app(or, true), true)
app(app(or, true), false)
app(app(or, false), true)
app(app(or, false), false)
app(app(forall, x0), nil)
app(app(forall, x0), app(app(cons, x1), x2))
app(app(forsome, x0), nil)
app(app(forsome, x0), app(app(cons, x1), x2))
APP(app(forall, p), app(app(cons, x), xs)) → APP(app(forall, p), xs)
app(app(and, true), true) → true
app(app(and, true), false) → false
app(app(and, false), true) → false
app(app(and, false), false) → false
app(app(or, true), true) → true
app(app(or, true), false) → true
app(app(or, false), true) → true
app(app(or, false), false) → false
app(app(forall, p), nil) → true
app(app(forall, p), app(app(cons, x), xs)) → app(app(and, app(p, x)), app(app(forall, p), xs))
app(app(forsome, p), nil) → false
app(app(forsome, p), app(app(cons, x), xs)) → app(app(or, app(p, x)), app(app(forsome, p), xs))
app(app(and, true), true)
app(app(and, true), false)
app(app(and, false), true)
app(app(and, false), false)
app(app(or, true), true)
app(app(or, true), false)
app(app(or, false), true)
app(app(or, false), false)
app(app(forall, x0), nil)
app(app(forall, x0), app(app(cons, x1), x2))
app(app(forsome, x0), nil)
app(app(forsome, x0), app(app(cons, x1), x2))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
APP(app(forall, p), app(app(cons, x), xs)) → APP(app(forall, p), xs)
[forall, cons, and] > app1 > false > [true, nil]
or > false > [true, nil]
forsome > app1 > false > [true, nil]
app1: [1]
forall: []
cons: []
and: []
true: []
false: []
or: []
nil: []
forsome: []
app(app(and, true), true) → true
app(app(and, true), false) → false
app(app(and, false), true) → false
app(app(and, false), false) → false
app(app(or, true), true) → true
app(app(or, true), false) → true
app(app(or, false), true) → true
app(app(or, false), false) → false
app(app(forall, p), nil) → true
app(app(forall, p), app(app(cons, x), xs)) → app(app(and, app(p, x)), app(app(forall, p), xs))
app(app(forsome, p), nil) → false
app(app(forsome, p), app(app(cons, x), xs)) → app(app(or, app(p, x)), app(app(forsome, p), xs))
app(app(and, true), true) → true
app(app(and, true), false) → false
app(app(and, false), true) → false
app(app(and, false), false) → false
app(app(or, true), true) → true
app(app(or, true), false) → true
app(app(or, false), true) → true
app(app(or, false), false) → false
app(app(forall, p), nil) → true
app(app(forall, p), app(app(cons, x), xs)) → app(app(and, app(p, x)), app(app(forall, p), xs))
app(app(forsome, p), nil) → false
app(app(forsome, p), app(app(cons, x), xs)) → app(app(or, app(p, x)), app(app(forsome, p), xs))
app(app(and, true), true)
app(app(and, true), false)
app(app(and, false), true)
app(app(and, false), false)
app(app(or, true), true)
app(app(or, true), false)
app(app(or, false), true)
app(app(or, false), false)
app(app(forall, x0), nil)
app(app(forall, x0), app(app(cons, x1), x2))
app(app(forsome, x0), nil)
app(app(forsome, x0), app(app(cons, x1), x2))