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)
app1 > forall > true
app1 > forsome > false > true
app1 > and > true
app1 > or > false > true
cons > true
nil > false > true
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)
app1 > forsome > APP2 > true
app1 > false > true
app1 > or > true
app1 > forall > and > true
cons > APP2 > true
cons > and > true
nil > true
APP2: [1,2]
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)
app1 > APP2 > true
app1 > forall > true
app1 > and > true
app1 > false > true
app1 > forsome > or > true
cons > true
nil > true
APP2: [1,2]
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))