MAYBE Problem: circ(cons(a,s),t) -> cons(msubst(a,t),circ(s,t)) circ(cons(lift(),s),cons(a,t)) -> cons(a,circ(s,t)) circ(cons(lift(),s),cons(lift(),t)) -> cons(lift(),circ(s,t)) circ(circ(s,t),u) -> circ(s,circ(t,u)) circ(s,id()) -> s circ(id(),s) -> s circ(cons(lift(),s),circ(cons(lift(),t),u)) -> circ(cons(lift(),circ(s,t)),u) subst(a,id()) -> a msubst(a,id()) -> a msubst(msubst(a,s),t) -> msubst(a,circ(s,t)) Proof: DP Processor: DPs: circ#(cons(a,s),t) -> circ#(s,t) circ#(cons(a,s),t) -> msubst#(a,t) circ#(cons(lift(),s),cons(a,t)) -> circ#(s,t) circ#(cons(lift(),s),cons(lift(),t)) -> circ#(s,t) circ#(circ(s,t),u) -> circ#(t,u) circ#(circ(s,t),u) -> circ#(s,circ(t,u)) circ#(cons(lift(),s),circ(cons(lift(),t),u)) -> circ#(s,t) circ#(cons(lift(),s),circ(cons(lift(),t),u)) -> circ#(cons(lift(),circ(s,t)),u) msubst#(msubst(a,s),t) -> circ#(s,t) msubst#(msubst(a,s),t) -> msubst#(a,circ(s,t)) TRS: circ(cons(a,s),t) -> cons(msubst(a,t),circ(s,t)) circ(cons(lift(),s),cons(a,t)) -> cons(a,circ(s,t)) circ(cons(lift(),s),cons(lift(),t)) -> cons(lift(),circ(s,t)) circ(circ(s,t),u) -> circ(s,circ(t,u)) circ(s,id()) -> s circ(id(),s) -> s circ(cons(lift(),s),circ(cons(lift(),t),u)) -> circ(cons(lift(),circ(s,t)),u) subst(a,id()) -> a msubst(a,id()) -> a msubst(msubst(a,s),t) -> msubst(a,circ(s,t)) Usable Rule Processor: DPs: circ#(cons(a,s),t) -> circ#(s,t) circ#(cons(a,s),t) -> msubst#(a,t) circ#(cons(lift(),s),cons(a,t)) -> circ#(s,t) circ#(cons(lift(),s),cons(lift(),t)) -> circ#(s,t) circ#(circ(s,t),u) -> circ#(t,u) circ#(circ(s,t),u) -> circ#(s,circ(t,u)) circ#(cons(lift(),s),circ(cons(lift(),t),u)) -> circ#(s,t) circ#(cons(lift(),s),circ(cons(lift(),t),u)) -> circ#(cons(lift(),circ(s,t)),u) msubst#(msubst(a,s),t) -> circ#(s,t) msubst#(msubst(a,s),t) -> msubst#(a,circ(s,t)) TRS: circ(cons(a,s),t) -> cons(msubst(a,t),circ(s,t)) circ(cons(lift(),s),cons(a,t)) -> cons(a,circ(s,t)) circ(cons(lift(),s),cons(lift(),t)) -> cons(lift(),circ(s,t)) circ(circ(s,t),u) -> circ(s,circ(t,u)) circ(s,id()) -> s circ(id(),s) -> s circ(cons(lift(),s),circ(cons(lift(),t),u)) -> circ(cons(lift(),circ(s,t)),u) msubst(a,id()) -> a msubst(msubst(a,s),t) -> msubst(a,circ(s,t)) Open