YES

We show the termination of the TRS R:

  or(T(),T()) -> T()
  or(F(),T()) -> T()
  or(T(),F()) -> T()
  or(F(),F()) -> F()
  and(T(),B) -> B
  and(B,T()) -> B
  and(F(),B) -> F()
  and(B,F()) -> F()
  imp(T(),B) -> B
  imp(F(),B) -> T()
  not(T()) -> F()
  not(F()) -> T()
  if(T(),B1,B2) -> B1
  if(F(),B1,B2) -> B2
  eq(T(),T()) -> T()
  eq(F(),F()) -> T()
  eq(T(),F()) -> F()
  eq(F(),T()) -> F()
  eqt(nil(),undefined()) -> F()
  eqt(nil(),pid(N2)) -> F()
  eqt(nil(),int(N2)) -> F()
  eqt(nil(),cons(H2,T2)) -> F()
  eqt(nil(),tuple(H2,T2)) -> F()
  eqt(nil(),tuplenil(H2)) -> F()
  eqt(a(),nil()) -> F()
  eqt(a(),a()) -> T()
  eqt(a(),excl()) -> F()
  eqt(a(),false()) -> F()
  eqt(a(),lock()) -> F()
  eqt(a(),locker()) -> F()
  eqt(a(),mcrlrecord()) -> F()
  eqt(a(),ok()) -> F()
  eqt(a(),pending()) -> F()
  eqt(a(),release()) -> F()
  eqt(a(),request()) -> F()
  eqt(a(),resource()) -> F()
  eqt(a(),tag()) -> F()
  eqt(a(),true()) -> F()
  eqt(a(),undefined()) -> F()
  eqt(a(),pid(N2)) -> F()
  eqt(a(),int(N2)) -> F()
  eqt(a(),cons(H2,T2)) -> F()
  eqt(a(),tuple(H2,T2)) -> F()
  eqt(a(),tuplenil(H2)) -> F()
  eqt(excl(),nil()) -> F()
  eqt(excl(),a()) -> F()
  eqt(excl(),excl()) -> T()
  eqt(excl(),false()) -> F()
  eqt(excl(),lock()) -> F()
  eqt(excl(),locker()) -> F()
  eqt(excl(),mcrlrecord()) -> F()
  eqt(excl(),ok()) -> F()
  eqt(excl(),pending()) -> F()
  eqt(excl(),release()) -> F()
  eqt(excl(),request()) -> F()
  eqt(excl(),resource()) -> F()
  eqt(excl(),tag()) -> F()
  eqt(excl(),true()) -> F()
  eqt(excl(),undefined()) -> F()
  eqt(excl(),pid(N2)) -> F()
  eqt(excl(),eqt(false(),int(N2))) -> F()
  eqt(false(),cons(H2,T2)) -> F()
  eqt(false(),tuple(H2,T2)) -> F()
  eqt(false(),tuplenil(H2)) -> F()
  eqt(lock(),nil()) -> F()
  eqt(lock(),a()) -> F()
  eqt(lock(),excl()) -> F()
  eqt(lock(),false()) -> F()
  eqt(lock(),lock()) -> T()
  eqt(lock(),locker()) -> F()
  eqt(lock(),mcrlrecord()) -> F()
  eqt(lock(),ok()) -> F()
  eqt(lock(),pending()) -> F()
  eqt(lock(),release()) -> F()
  eqt(lock(),request()) -> F()
  eqt(lock(),resource()) -> F()
  eqt(lock(),tag()) -> F()
  eqt(lock(),true()) -> F()
  eqt(lock(),undefined()) -> F()
  eqt(lock(),pid(N2)) -> F()
  eqt(lock(),int(N2)) -> F()
  eqt(lock(),cons(H2,T2)) -> F()
  eqt(lock(),tuple(H2,T2)) -> F()
  eqt(lock(),tuplenil(H2)) -> F()
  eqt(locker(),nil()) -> F()
  eqt(locker(),a()) -> F()
  eqt(locker(),excl()) -> F()
  eqt(locker(),false()) -> F()
  eqt(locker(),lock()) -> F()
  eqt(locker(),locker()) -> T()
  eqt(locker(),mcrlrecord()) -> F()
  eqt(locker(),ok()) -> F()
  eqt(locker(),pending()) -> F()
  eqt(locker(),release()) -> F()
  eqt(locker(),request()) -> F()
  eqt(locker(),resource()) -> F()
  eqt(locker(),tag()) -> F()
  eqt(locker(),true()) -> F()
  eqt(locker(),undefined()) -> F()
  eqt(locker(),pid(N2)) -> F()
  eqt(locker(),int(N2)) -> F()
  eqt(locker(),cons(H2,T2)) -> F()
  eqt(locker(),tuple(H2,T2)) -> F()
  eqt(locker(),tuplenil(H2)) -> F()
  eqt(mcrlrecord(),nil()) -> F()
  eqt(mcrlrecord(),a()) -> F()
  eqt(mcrlrecord(),excl()) -> F()
  eqt(mcrlrecord(),false()) -> F()
  eqt(mcrlrecord(),lock()) -> F()
  eqt(mcrlrecord(),locker()) -> F()
  eqt(mcrlrecord(),mcrlrecord()) -> T()
  eqt(mcrlrecord(),ok()) -> F()
  eqt(mcrlrecord(),pending()) -> F()
  eqt(mcrlrecord(),release()) -> F()
  eqt(mcrlrecord(),request()) -> F()
  eqt(mcrlrecord(),resource()) -> F()
  eqt(ok(),resource()) -> F()
  eqt(ok(),tag()) -> F()
  eqt(ok(),true()) -> F()
  eqt(ok(),undefined()) -> F()
  eqt(ok(),pid(N2)) -> F()
  eqt(ok(),int(N2)) -> F()
  eqt(ok(),cons(H2,T2)) -> F()
  eqt(ok(),tuple(H2,T2)) -> F()
  eqt(ok(),tuplenil(H2)) -> F()
  eqt(pending(),nil()) -> F()
  eqt(pending(),a()) -> F()
  eqt(pending(),excl()) -> F()
  eqt(pending(),false()) -> F()
  eqt(pending(),lock()) -> F()
  eqt(pending(),locker()) -> F()
  eqt(pending(),mcrlrecord()) -> F()
  eqt(pending(),ok()) -> F()
  eqt(pending(),pending()) -> T()
  eqt(pending(),release()) -> F()
  eqt(pending(),request()) -> F()
  eqt(pending(),resource()) -> F()
  eqt(pending(),tag()) -> F()
  eqt(pending(),true()) -> F()
  eqt(pending(),undefined()) -> F()
  eqt(pending(),pid(N2)) -> F()
  eqt(pending(),int(N2)) -> F()
  eqt(pending(),cons(H2,T2)) -> F()
  eqt(pending(),tuple(H2,T2)) -> F()
  eqt(pending(),tuplenil(H2)) -> F()
  eqt(release(),nil()) -> F()
  eqt(release(),a()) -> F()
  eqt(release(),excl()) -> F()
  eqt(release(),false()) -> F()
  eqt(release(),lock()) -> F()
  eqt(release(),locker()) -> F()
  eqt(release(),mcrlrecord()) -> F()
  eqt(release(),ok()) -> F()
  eqt(request(),mcrlrecord()) -> F()
  eqt(request(),ok()) -> F()
  eqt(request(),pending()) -> F()
  eqt(request(),release()) -> F()
  eqt(request(),request()) -> T()
  eqt(request(),resource()) -> F()
  eqt(request(),tag()) -> F()
  eqt(request(),true()) -> F()
  eqt(request(),undefined()) -> F()
  eqt(request(),pid(N2)) -> F()
  eqt(request(),int(N2)) -> F()
  eqt(request(),cons(H2,T2)) -> F()
  eqt(request(),tuple(H2,T2)) -> F()
  eqt(request(),tuplenil(H2)) -> F()
  eqt(resource(),nil()) -> F()
  eqt(resource(),a()) -> F()
  eqt(resource(),excl()) -> F()
  eqt(resource(),false()) -> F()
  eqt(resource(),lock()) -> F()
  eqt(resource(),locker()) -> F()
  eqt(resource(),mcrlrecord()) -> F()
  eqt(resource(),ok()) -> F()
  eqt(resource(),pending()) -> F()
  eqt(resource(),release()) -> F()
  eqt(resource(),request()) -> F()
  eqt(resource(),resource()) -> T()
  eqt(resource(),tag()) -> F()
  eqt(resource(),true()) -> F()
  eqt(resource(),undefined()) -> F()
  eqt(resource(),pid(N2)) -> F()
  eqt(resource(),int(N2)) -> F()
  eqt(resource(),cons(H2,T2)) -> F()
  eqt(resource(),tuple(H2,T2)) -> F()
  eqt(resource(),tuplenil(H2)) -> F()
  eqt(tag(),nil()) -> F()
  eqt(tag(),a()) -> F()
  eqt(tag(),excl()) -> F()
  eqt(tag(),false()) -> F()
  eqt(tag(),lock()) -> F()
  eqt(tag(),locker()) -> F()
  eqt(tag(),mcrlrecord()) -> F()
  eqt(tag(),ok()) -> F()
  eqt(tag(),pending()) -> F()
  eqt(tag(),release()) -> F()
  eqt(tag(),request()) -> F()
  eqt(tag(),resource()) -> F()
  eqt(tag(),tag()) -> T()
  eqt(tag(),true()) -> F()
  eqt(tag(),undefined()) -> F()
  eqt(tag(),pid(N2)) -> F()
  eqt(tag(),int(N2)) -> F()
  eqt(tag(),cons(H2,T2)) -> F()
  eqt(tag(),tuple(H2,T2)) -> F()
  eqt(tag(),tuplenil(H2)) -> F()
  eqt(true(),nil()) -> F()
  eqt(true(),a()) -> F()
  eqt(true(),excl()) -> F()
  eqt(true(),false()) -> F()
  eqt(true(),lock()) -> F()
  eqt(true(),locker()) -> F()
  eqt(true(),mcrlrecord()) -> F()
  eqt(true(),ok()) -> F()
  eqt(true(),pending()) -> F()
  eqt(true(),release()) -> F()
  eqt(true(),request()) -> F()
  eqt(true(),resource()) -> F()
  eqt(true(),tag()) -> F()
  eqt(true(),true()) -> T()
  eqt(true(),undefined()) -> F()
  eqt(true(),pid(N2)) -> F()
  eqt(true(),int(N2)) -> F()
  eqt(true(),cons(H2,T2)) -> F()
  eqt(true(),tuple(H2,T2)) -> F()
  eqt(true(),tuplenil(H2)) -> F()
  eqt(undefined(),nil()) -> F()
  eqt(undefined(),a()) -> F()
  eqt(undefined(),tuplenil(H2)) -> F()
  eqt(pid(N1),nil()) -> F()
  eqt(pid(N1),a()) -> F()
  eqt(pid(N1),excl()) -> F()
  eqt(pid(N1),false()) -> F()
  eqt(pid(N1),lock()) -> F()
  eqt(pid(N1),locker()) -> F()
  eqt(pid(N1),mcrlrecord()) -> F()
  eqt(pid(N1),ok()) -> F()
  eqt(pid(N1),pending()) -> F()
  eqt(pid(N1),release()) -> F()
  eqt(pid(N1),request()) -> F()
  eqt(pid(N1),resource()) -> F()
  eqt(pid(N1),tag()) -> F()
  eqt(pid(N1),true()) -> F()
  eqt(pid(N1),undefined()) -> F()
  eqt(pid(N1),pid(N2)) -> eqt(N1,N2)
  eqt(pid(N1),int(N2)) -> F()
  eqt(pid(N1),cons(H2,T2)) -> F()
  eqt(pid(N1),tuple(H2,T2)) -> F()
  eqt(pid(N1),tuplenil(H2)) -> F()
  eqt(int(N1),nil()) -> F()
  eqt(int(N1),a()) -> F()
  eqt(int(N1),excl()) -> F()
  eqt(int(N1),false()) -> F()
  eqt(int(N1),lock()) -> F()
  eqt(int(N1),locker()) -> F()
  eqt(int(N1),mcrlrecord()) -> F()
  eqt(int(N1),ok()) -> F()
  eqt(int(N1),pending()) -> F()
  eqt(int(N1),release()) -> F()
  eqt(int(N1),request()) -> F()
  eqt(int(N1),resource()) -> F()
  eqt(int(N1),tag()) -> F()
  eqt(int(N1),true()) -> F()
  eqt(int(N1),undefined()) -> F()
  eqt(cons(H1,T1),resource()) -> F()
  eqt(cons(H1,T1),tag()) -> F()
  eqt(cons(H1,T1),true()) -> F()
  eqt(cons(H1,T1),undefined()) -> F()
  eqt(cons(H1,T1),pid(N2)) -> F()
  eqt(cons(H1,T1),int(N2)) -> F()
  eqt(cons(H1,T1),cons(H2,T2)) -> and(eqt(H1,H2),eqt(T1,T2))
  eqt(cons(H1,T1),tuple(H2,T2)) -> F()
  eqt(cons(H1,T1),tuplenil(H2)) -> F()
  eqt(tuple(H1,T1),nil()) -> F()
  eqt(tuple(H1,T1),a()) -> F()
  eqt(tuple(H1,T1),excl()) -> F()
  eqt(tuple(H1,T1),false()) -> F()
  eqt(tuple(H1,T1),lock()) -> F()
  eqt(tuple(H1,T1),locker()) -> F()
  eqt(tuple(H1,T1),mcrlrecord()) -> F()
  eqt(tuple(H1,T1),ok()) -> F()
  eqt(tuple(H1,T1),pending()) -> F()
  eqt(tuple(H1,T1),release()) -> F()
  eqt(tuple(H1,T1),request()) -> F()
  eqt(tuple(H1,T1),resource()) -> F()
  eqt(tuple(H1,T1),tag()) -> F()
  eqt(tuple(H1,T1),true()) -> F()
  eqt(tuple(H1,T1),undefined()) -> F()
  eqt(tuple(H1,T1),pid(N2)) -> F()
  eqt(tuple(H1,T1),int(N2)) -> F()
  eqt(tuple(H1,T1),cons(H2,T2)) -> F()
  eqt(tuple(H1,T1),tuple(H2,T2)) -> and(eqt(H1,H2),eqt(T1,T2))
  eqt(tuple(H1,T1),tuplenil(H2)) -> F()
  eqt(tuplenil(H1),nil()) -> F()
  eqt(tuplenil(H1),a()) -> F()
  eqt(tuplenil(H1),excl()) -> F()
  eqt(tuplenil(H1),false()) -> F()
  eqt(tuplenil(H1),lock()) -> F()
  eqt(tuplenil(H1),locker()) -> F()
  eqt(tuplenil(H1),mcrlrecord()) -> F()
  eqt(tuplenil(H1),ok()) -> F()
  eqt(tuplenil(H1),pending()) -> F()
  eqt(tuplenil(H1),release()) -> F()
  eqt(tuplenil(H1),request()) -> F()
  eqt(tuplenil(H1),resource()) -> F()
  eqt(tuplenil(H1),tag()) -> F()
  eqt(tuplenil(H1),true()) -> F()
  eqt(tuplenil(H1),undefined()) -> F()
  eqt(tuplenil(H1),pid(N2)) -> F()
  eqt(tuplenil(H1),int(N2)) -> F()
  eqt(tuplenil(H1),cons(H2,T2)) -> F()
  eqt(tuplenil(H1),tuple(H2,T2)) -> F()
  eqt(tuplenil(H1),tuplenil(H2)) -> eqt(H1,H2)
  element(int(s(|0|())),tuplenil(T1)) -> T1
  element(int(s(|0|())),tuple(T1,T2)) -> T1
  element(int(s(s(N1))),tuple(T1,T2)) -> element(int(s(N1)),T2)
  record_new(lock()) -> tuple(mcrlrecord(),tuple(lock(),tuple(undefined(),tuple(nil(),tuplenil(nil())))))
  record_extract(tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2))))),lock(),resource()) -> tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2)))))
  record_update(tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2))))),lock(),pending(),NewF) -> tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(NewF)))))
  record_updates(Record,Name,nil()) -> Record
  record_updates(Record,Name,cons(tuple(Field,tuplenil(NewF)),Fields)) -> record_updates(record_update(Record,Name,Field,NewF),Name,Fields)
  locker2_map_promote_pending(nil(),Pending) -> nil()
  locker2_map_promote_pending(cons(Lock,Locks),Pending) -> cons(locker2_promote_pending(Lock,Pending),locker2_map_promote_pending(Locks,Pending))
  locker2_map_claim_lock(nil(),Resources,Client) -> nil()
  locker2_map_claim_lock(cons(Lock,Locks),Resources,Client) -> cons(locker2_claim_lock(Lock,Resources,Client),locker2_map_claim_lock(Locks,Resources,Client))
  locker2_map_add_pending(nil(),Resources,Client) -> nil()
  locker2_promote_pending(Lock,Client) -> case0(Client,Lock,record_extract(Lock,lock(),pending()))
  case0(Client,Lock,cons(Client,Pendings)) -> record_updates(Lock,lock(),cons(tuple(excl(),tuplenil(Client)),cons(tuple(pending(),tuplenil(Pendings)),nil())))
  case0(Client,Lock,MCRLFree0) -> Lock
  locker2_remove_pending(Lock,Client) -> record_updates(Lock,lock(),cons(tuple(pending(),tuplenil(subtract(record_extract(Lock,lock(),pending()),cons(Client,nil())))),nil()))
  locker2_add_pending(Lock,Resources,Client) -> case1(Client,Resources,Lock,member(record_extract(Lock,lock(),resource()),Resources))
  case1(Client,Resources,Lock,true()) -> record_updates(Lock,lock(),cons(tuple(pending(),tuplenil(append(record_extract(Lock,lock(),pending()),cons(Client,nil())))),nil()))
  case1(Client,Resources,Lock,false()) -> Lock
  locker2_release_lock(Lock,Client) -> case2(Client,Lock,gen_modtageq(Client,record_extract(Lock,lock(),excl())))
  case2(Client,Lock,true()) -> record_updates(Lock,lock(),cons(tuple(excllock(),excl()),nil()))
  case4(Client,Lock,MCRLFree1) -> false()
  locker2_obtainables(nil(),Client) -> true()
  locker2_obtainables(cons(Lock,Locks),Client) -> case5(Client,Locks,Lock,member(Client,record_extract(Lock,lock(),pending())))
  case5(Client,Locks,Lock,true()) -> andt(locker2_obtainable(Lock,Client),locker2_obtainables(Locks,Client))
  case5(Client,Locks,Lock,false()) -> locker2_obtainables(Locks,Client)
  locker2_check_available(Resource,nil()) -> false()
  locker2_check_available(Resource,cons(Lock,Locks)) -> case6(Locks,Lock,Resource,equal(Resource,record_extract(Lock,lock(),resource())))
  case6(Locks,Lock,Resource,true()) -> andt(equal(record_extract(Lock,lock(),excl()),nil()),equal(record_extract(Lock,lock(),pending()),nil()))
  case6(Locks,Lock,Resource,false()) -> locker2_check_available(Resource,Locks)
  locker2_check_availables(nil(),Locks) -> true()
  locker2_check_availables(cons(Resource,Resources),Locks) -> andt(locker2_check_available(Resource,Locks),locker2_check_availables(Resources,Locks))
  locker2_adduniq(nil(),List) -> List
  append(cons(Head,Tail),List) -> cons(Head,append(Tail,List))
  subtract(List,nil()) -> List
  subtract(List,cons(Head,Tail)) -> subtract(delete(Head,List),Tail)
  delete(E,nil()) -> nil()
  delete(E,cons(Head,Tail)) -> case8(Tail,Head,E,equal(E,Head))
  case8(Tail,Head,E,true()) -> Tail
  case8(Tail,Head,E,false()) -> cons(Head,delete(E,Tail))
  gen_tag(Pid) -> tuple(Pid,tuplenil(tag()))
  gen_modtageq(Client1,Client2) -> equal(Client1,Client2)
  member(E,nil()) -> false()
  member(E,cons(Head,Tail)) -> case9(Tail,Head,E,equal(E,Head))
  case9(Tail,Head,E,true()) -> true()
  case9(Tail,Head,E,false()) -> member(E,Tail)
  eqs(empty(),empty()) -> T()
  eqs(empty(),stack(E2,S2)) -> F()
  eqs(stack(E1,S1),empty()) -> F()
  eqs(stack(E1,S1),stack(E2,S2)) -> and(eqt(E1,E2),eqs(S1,S2))
  pushs(E1,S1) -> stack(E1,S1)
  pops(stack(E1,S1)) -> S1
  tops(stack(E1,S1)) -> E1
  istops(E1,empty()) -> F()
  istops(E1,stack(E2,S1)) -> eqt(E1,E2)
  eqc(nocalls(),nocalls()) -> T()
  eqc(nocalls(),calls(E2,S2,CS2)) -> F()
  eqc(calls(E1,S1,CS1),nocalls()) -> F()
  eqc(calls(E1,S1,CS1),calls(E2,S2,CS2)) -> and(eqt(E1,E2),and(eqs(S1,S2),eqc(CS1,CS2)))
  push(E1,E2,nocalls()) -> calls(E1,stack(E2,empty()),nocalls())
  push(E1,E2,calls(E3,S1,CS1)) -> push1(E1,E2,E3,S1,CS1,eqt(E1,E3))
  push1(E1,E2,E3,S1,CS1,T()) -> calls(E3,pushs(E2,S1),CS1)

-- SCC decomposition.

Consider the dependency pair problem (P, R), where P consists of

p1: eqt#(pid(N1),pid(N2)) -> eqt#(N1,N2)
p2: eqt#(cons(H1,T1),cons(H2,T2)) -> and#(eqt(H1,H2),eqt(T1,T2))
p3: eqt#(cons(H1,T1),cons(H2,T2)) -> eqt#(H1,H2)
p4: eqt#(cons(H1,T1),cons(H2,T2)) -> eqt#(T1,T2)
p5: eqt#(tuple(H1,T1),tuple(H2,T2)) -> and#(eqt(H1,H2),eqt(T1,T2))
p6: eqt#(tuple(H1,T1),tuple(H2,T2)) -> eqt#(H1,H2)
p7: eqt#(tuple(H1,T1),tuple(H2,T2)) -> eqt#(T1,T2)
p8: eqt#(tuplenil(H1),tuplenil(H2)) -> eqt#(H1,H2)
p9: element#(int(s(s(N1))),tuple(T1,T2)) -> element#(int(s(N1)),T2)
p10: record_updates#(Record,Name,cons(tuple(Field,tuplenil(NewF)),Fields)) -> record_updates#(record_update(Record,Name,Field,NewF),Name,Fields)
p11: record_updates#(Record,Name,cons(tuple(Field,tuplenil(NewF)),Fields)) -> record_update#(Record,Name,Field,NewF)
p12: locker2_map_promote_pending#(cons(Lock,Locks),Pending) -> locker2_promote_pending#(Lock,Pending)
p13: locker2_map_promote_pending#(cons(Lock,Locks),Pending) -> locker2_map_promote_pending#(Locks,Pending)
p14: locker2_map_claim_lock#(cons(Lock,Locks),Resources,Client) -> locker2_map_claim_lock#(Locks,Resources,Client)
p15: locker2_promote_pending#(Lock,Client) -> case0#(Client,Lock,record_extract(Lock,lock(),pending()))
p16: locker2_promote_pending#(Lock,Client) -> record_extract#(Lock,lock(),pending())
p17: case0#(Client,Lock,cons(Client,Pendings)) -> record_updates#(Lock,lock(),cons(tuple(excl(),tuplenil(Client)),cons(tuple(pending(),tuplenil(Pendings)),nil())))
p18: locker2_remove_pending#(Lock,Client) -> record_updates#(Lock,lock(),cons(tuple(pending(),tuplenil(subtract(record_extract(Lock,lock(),pending()),cons(Client,nil())))),nil()))
p19: locker2_remove_pending#(Lock,Client) -> subtract#(record_extract(Lock,lock(),pending()),cons(Client,nil()))
p20: locker2_remove_pending#(Lock,Client) -> record_extract#(Lock,lock(),pending())
p21: locker2_add_pending#(Lock,Resources,Client) -> case1#(Client,Resources,Lock,member(record_extract(Lock,lock(),resource()),Resources))
p22: locker2_add_pending#(Lock,Resources,Client) -> member#(record_extract(Lock,lock(),resource()),Resources)
p23: locker2_add_pending#(Lock,Resources,Client) -> record_extract#(Lock,lock(),resource())
p24: case1#(Client,Resources,Lock,true()) -> record_updates#(Lock,lock(),cons(tuple(pending(),tuplenil(append(record_extract(Lock,lock(),pending()),cons(Client,nil())))),nil()))
p25: case1#(Client,Resources,Lock,true()) -> append#(record_extract(Lock,lock(),pending()),cons(Client,nil()))
p26: case1#(Client,Resources,Lock,true()) -> record_extract#(Lock,lock(),pending())
p27: locker2_release_lock#(Lock,Client) -> case2#(Client,Lock,gen_modtageq(Client,record_extract(Lock,lock(),excl())))
p28: locker2_release_lock#(Lock,Client) -> gen_modtageq#(Client,record_extract(Lock,lock(),excl()))
p29: locker2_release_lock#(Lock,Client) -> record_extract#(Lock,lock(),excl())
p30: case2#(Client,Lock,true()) -> record_updates#(Lock,lock(),cons(tuple(excllock(),excl()),nil()))
p31: locker2_obtainables#(cons(Lock,Locks),Client) -> case5#(Client,Locks,Lock,member(Client,record_extract(Lock,lock(),pending())))
p32: locker2_obtainables#(cons(Lock,Locks),Client) -> member#(Client,record_extract(Lock,lock(),pending()))
p33: locker2_obtainables#(cons(Lock,Locks),Client) -> record_extract#(Lock,lock(),pending())
p34: case5#(Client,Locks,Lock,true()) -> locker2_obtainables#(Locks,Client)
p35: case5#(Client,Locks,Lock,false()) -> locker2_obtainables#(Locks,Client)
p36: locker2_check_available#(Resource,cons(Lock,Locks)) -> case6#(Locks,Lock,Resource,equal(Resource,record_extract(Lock,lock(),resource())))
p37: locker2_check_available#(Resource,cons(Lock,Locks)) -> record_extract#(Lock,lock(),resource())
p38: case6#(Locks,Lock,Resource,true()) -> record_extract#(Lock,lock(),excl())
p39: case6#(Locks,Lock,Resource,true()) -> record_extract#(Lock,lock(),pending())
p40: case6#(Locks,Lock,Resource,false()) -> locker2_check_available#(Resource,Locks)
p41: locker2_check_availables#(cons(Resource,Resources),Locks) -> locker2_check_available#(Resource,Locks)
p42: locker2_check_availables#(cons(Resource,Resources),Locks) -> locker2_check_availables#(Resources,Locks)
p43: append#(cons(Head,Tail),List) -> append#(Tail,List)
p44: subtract#(List,cons(Head,Tail)) -> subtract#(delete(Head,List),Tail)
p45: subtract#(List,cons(Head,Tail)) -> delete#(Head,List)
p46: delete#(E,cons(Head,Tail)) -> case8#(Tail,Head,E,equal(E,Head))
p47: case8#(Tail,Head,E,false()) -> delete#(E,Tail)
p48: member#(E,cons(Head,Tail)) -> case9#(Tail,Head,E,equal(E,Head))
p49: case9#(Tail,Head,E,false()) -> member#(E,Tail)
p50: eqs#(stack(E1,S1),stack(E2,S2)) -> and#(eqt(E1,E2),eqs(S1,S2))
p51: eqs#(stack(E1,S1),stack(E2,S2)) -> eqt#(E1,E2)
p52: eqs#(stack(E1,S1),stack(E2,S2)) -> eqs#(S1,S2)
p53: istops#(E1,stack(E2,S1)) -> eqt#(E1,E2)
p54: eqc#(calls(E1,S1,CS1),calls(E2,S2,CS2)) -> and#(eqt(E1,E2),and(eqs(S1,S2),eqc(CS1,CS2)))
p55: eqc#(calls(E1,S1,CS1),calls(E2,S2,CS2)) -> eqt#(E1,E2)
p56: eqc#(calls(E1,S1,CS1),calls(E2,S2,CS2)) -> and#(eqs(S1,S2),eqc(CS1,CS2))
p57: eqc#(calls(E1,S1,CS1),calls(E2,S2,CS2)) -> eqs#(S1,S2)
p58: eqc#(calls(E1,S1,CS1),calls(E2,S2,CS2)) -> eqc#(CS1,CS2)
p59: push#(E1,E2,calls(E3,S1,CS1)) -> push1#(E1,E2,E3,S1,CS1,eqt(E1,E3))
p60: push#(E1,E2,calls(E3,S1,CS1)) -> eqt#(E1,E3)
p61: push1#(E1,E2,E3,S1,CS1,T()) -> pushs#(E2,S1)

and R consists of:

r1: or(T(),T()) -> T()
r2: or(F(),T()) -> T()
r3: or(T(),F()) -> T()
r4: or(F(),F()) -> F()
r5: and(T(),B) -> B
r6: and(B,T()) -> B
r7: and(F(),B) -> F()
r8: and(B,F()) -> F()
r9: imp(T(),B) -> B
r10: imp(F(),B) -> T()
r11: not(T()) -> F()
r12: not(F()) -> T()
r13: if(T(),B1,B2) -> B1
r14: if(F(),B1,B2) -> B2
r15: eq(T(),T()) -> T()
r16: eq(F(),F()) -> T()
r17: eq(T(),F()) -> F()
r18: eq(F(),T()) -> F()
r19: eqt(nil(),undefined()) -> F()
r20: eqt(nil(),pid(N2)) -> F()
r21: eqt(nil(),int(N2)) -> F()
r22: eqt(nil(),cons(H2,T2)) -> F()
r23: eqt(nil(),tuple(H2,T2)) -> F()
r24: eqt(nil(),tuplenil(H2)) -> F()
r25: eqt(a(),nil()) -> F()
r26: eqt(a(),a()) -> T()
r27: eqt(a(),excl()) -> F()
r28: eqt(a(),false()) -> F()
r29: eqt(a(),lock()) -> F()
r30: eqt(a(),locker()) -> F()
r31: eqt(a(),mcrlrecord()) -> F()
r32: eqt(a(),ok()) -> F()
r33: eqt(a(),pending()) -> F()
r34: eqt(a(),release()) -> F()
r35: eqt(a(),request()) -> F()
r36: eqt(a(),resource()) -> F()
r37: eqt(a(),tag()) -> F()
r38: eqt(a(),true()) -> F()
r39: eqt(a(),undefined()) -> F()
r40: eqt(a(),pid(N2)) -> F()
r41: eqt(a(),int(N2)) -> F()
r42: eqt(a(),cons(H2,T2)) -> F()
r43: eqt(a(),tuple(H2,T2)) -> F()
r44: eqt(a(),tuplenil(H2)) -> F()
r45: eqt(excl(),nil()) -> F()
r46: eqt(excl(),a()) -> F()
r47: eqt(excl(),excl()) -> T()
r48: eqt(excl(),false()) -> F()
r49: eqt(excl(),lock()) -> F()
r50: eqt(excl(),locker()) -> F()
r51: eqt(excl(),mcrlrecord()) -> F()
r52: eqt(excl(),ok()) -> F()
r53: eqt(excl(),pending()) -> F()
r54: eqt(excl(),release()) -> F()
r55: eqt(excl(),request()) -> F()
r56: eqt(excl(),resource()) -> F()
r57: eqt(excl(),tag()) -> F()
r58: eqt(excl(),true()) -> F()
r59: eqt(excl(),undefined()) -> F()
r60: eqt(excl(),pid(N2)) -> F()
r61: eqt(excl(),eqt(false(),int(N2))) -> F()
r62: eqt(false(),cons(H2,T2)) -> F()
r63: eqt(false(),tuple(H2,T2)) -> F()
r64: eqt(false(),tuplenil(H2)) -> F()
r65: eqt(lock(),nil()) -> F()
r66: eqt(lock(),a()) -> F()
r67: eqt(lock(),excl()) -> F()
r68: eqt(lock(),false()) -> F()
r69: eqt(lock(),lock()) -> T()
r70: eqt(lock(),locker()) -> F()
r71: eqt(lock(),mcrlrecord()) -> F()
r72: eqt(lock(),ok()) -> F()
r73: eqt(lock(),pending()) -> F()
r74: eqt(lock(),release()) -> F()
r75: eqt(lock(),request()) -> F()
r76: eqt(lock(),resource()) -> F()
r77: eqt(lock(),tag()) -> F()
r78: eqt(lock(),true()) -> F()
r79: eqt(lock(),undefined()) -> F()
r80: eqt(lock(),pid(N2)) -> F()
r81: eqt(lock(),int(N2)) -> F()
r82: eqt(lock(),cons(H2,T2)) -> F()
r83: eqt(lock(),tuple(H2,T2)) -> F()
r84: eqt(lock(),tuplenil(H2)) -> F()
r85: eqt(locker(),nil()) -> F()
r86: eqt(locker(),a()) -> F()
r87: eqt(locker(),excl()) -> F()
r88: eqt(locker(),false()) -> F()
r89: eqt(locker(),lock()) -> F()
r90: eqt(locker(),locker()) -> T()
r91: eqt(locker(),mcrlrecord()) -> F()
r92: eqt(locker(),ok()) -> F()
r93: eqt(locker(),pending()) -> F()
r94: eqt(locker(),release()) -> F()
r95: eqt(locker(),request()) -> F()
r96: eqt(locker(),resource()) -> F()
r97: eqt(locker(),tag()) -> F()
r98: eqt(locker(),true()) -> F()
r99: eqt(locker(),undefined()) -> F()
r100: eqt(locker(),pid(N2)) -> F()
r101: eqt(locker(),int(N2)) -> F()
r102: eqt(locker(),cons(H2,T2)) -> F()
r103: eqt(locker(),tuple(H2,T2)) -> F()
r104: eqt(locker(),tuplenil(H2)) -> F()
r105: eqt(mcrlrecord(),nil()) -> F()
r106: eqt(mcrlrecord(),a()) -> F()
r107: eqt(mcrlrecord(),excl()) -> F()
r108: eqt(mcrlrecord(),false()) -> F()
r109: eqt(mcrlrecord(),lock()) -> F()
r110: eqt(mcrlrecord(),locker()) -> F()
r111: eqt(mcrlrecord(),mcrlrecord()) -> T()
r112: eqt(mcrlrecord(),ok()) -> F()
r113: eqt(mcrlrecord(),pending()) -> F()
r114: eqt(mcrlrecord(),release()) -> F()
r115: eqt(mcrlrecord(),request()) -> F()
r116: eqt(mcrlrecord(),resource()) -> F()
r117: eqt(ok(),resource()) -> F()
r118: eqt(ok(),tag()) -> F()
r119: eqt(ok(),true()) -> F()
r120: eqt(ok(),undefined()) -> F()
r121: eqt(ok(),pid(N2)) -> F()
r122: eqt(ok(),int(N2)) -> F()
r123: eqt(ok(),cons(H2,T2)) -> F()
r124: eqt(ok(),tuple(H2,T2)) -> F()
r125: eqt(ok(),tuplenil(H2)) -> F()
r126: eqt(pending(),nil()) -> F()
r127: eqt(pending(),a()) -> F()
r128: eqt(pending(),excl()) -> F()
r129: eqt(pending(),false()) -> F()
r130: eqt(pending(),lock()) -> F()
r131: eqt(pending(),locker()) -> F()
r132: eqt(pending(),mcrlrecord()) -> F()
r133: eqt(pending(),ok()) -> F()
r134: eqt(pending(),pending()) -> T()
r135: eqt(pending(),release()) -> F()
r136: eqt(pending(),request()) -> F()
r137: eqt(pending(),resource()) -> F()
r138: eqt(pending(),tag()) -> F()
r139: eqt(pending(),true()) -> F()
r140: eqt(pending(),undefined()) -> F()
r141: eqt(pending(),pid(N2)) -> F()
r142: eqt(pending(),int(N2)) -> F()
r143: eqt(pending(),cons(H2,T2)) -> F()
r144: eqt(pending(),tuple(H2,T2)) -> F()
r145: eqt(pending(),tuplenil(H2)) -> F()
r146: eqt(release(),nil()) -> F()
r147: eqt(release(),a()) -> F()
r148: eqt(release(),excl()) -> F()
r149: eqt(release(),false()) -> F()
r150: eqt(release(),lock()) -> F()
r151: eqt(release(),locker()) -> F()
r152: eqt(release(),mcrlrecord()) -> F()
r153: eqt(release(),ok()) -> F()
r154: eqt(request(),mcrlrecord()) -> F()
r155: eqt(request(),ok()) -> F()
r156: eqt(request(),pending()) -> F()
r157: eqt(request(),release()) -> F()
r158: eqt(request(),request()) -> T()
r159: eqt(request(),resource()) -> F()
r160: eqt(request(),tag()) -> F()
r161: eqt(request(),true()) -> F()
r162: eqt(request(),undefined()) -> F()
r163: eqt(request(),pid(N2)) -> F()
r164: eqt(request(),int(N2)) -> F()
r165: eqt(request(),cons(H2,T2)) -> F()
r166: eqt(request(),tuple(H2,T2)) -> F()
r167: eqt(request(),tuplenil(H2)) -> F()
r168: eqt(resource(),nil()) -> F()
r169: eqt(resource(),a()) -> F()
r170: eqt(resource(),excl()) -> F()
r171: eqt(resource(),false()) -> F()
r172: eqt(resource(),lock()) -> F()
r173: eqt(resource(),locker()) -> F()
r174: eqt(resource(),mcrlrecord()) -> F()
r175: eqt(resource(),ok()) -> F()
r176: eqt(resource(),pending()) -> F()
r177: eqt(resource(),release()) -> F()
r178: eqt(resource(),request()) -> F()
r179: eqt(resource(),resource()) -> T()
r180: eqt(resource(),tag()) -> F()
r181: eqt(resource(),true()) -> F()
r182: eqt(resource(),undefined()) -> F()
r183: eqt(resource(),pid(N2)) -> F()
r184: eqt(resource(),int(N2)) -> F()
r185: eqt(resource(),cons(H2,T2)) -> F()
r186: eqt(resource(),tuple(H2,T2)) -> F()
r187: eqt(resource(),tuplenil(H2)) -> F()
r188: eqt(tag(),nil()) -> F()
r189: eqt(tag(),a()) -> F()
r190: eqt(tag(),excl()) -> F()
r191: eqt(tag(),false()) -> F()
r192: eqt(tag(),lock()) -> F()
r193: eqt(tag(),locker()) -> F()
r194: eqt(tag(),mcrlrecord()) -> F()
r195: eqt(tag(),ok()) -> F()
r196: eqt(tag(),pending()) -> F()
r197: eqt(tag(),release()) -> F()
r198: eqt(tag(),request()) -> F()
r199: eqt(tag(),resource()) -> F()
r200: eqt(tag(),tag()) -> T()
r201: eqt(tag(),true()) -> F()
r202: eqt(tag(),undefined()) -> F()
r203: eqt(tag(),pid(N2)) -> F()
r204: eqt(tag(),int(N2)) -> F()
r205: eqt(tag(),cons(H2,T2)) -> F()
r206: eqt(tag(),tuple(H2,T2)) -> F()
r207: eqt(tag(),tuplenil(H2)) -> F()
r208: eqt(true(),nil()) -> F()
r209: eqt(true(),a()) -> F()
r210: eqt(true(),excl()) -> F()
r211: eqt(true(),false()) -> F()
r212: eqt(true(),lock()) -> F()
r213: eqt(true(),locker()) -> F()
r214: eqt(true(),mcrlrecord()) -> F()
r215: eqt(true(),ok()) -> F()
r216: eqt(true(),pending()) -> F()
r217: eqt(true(),release()) -> F()
r218: eqt(true(),request()) -> F()
r219: eqt(true(),resource()) -> F()
r220: eqt(true(),tag()) -> F()
r221: eqt(true(),true()) -> T()
r222: eqt(true(),undefined()) -> F()
r223: eqt(true(),pid(N2)) -> F()
r224: eqt(true(),int(N2)) -> F()
r225: eqt(true(),cons(H2,T2)) -> F()
r226: eqt(true(),tuple(H2,T2)) -> F()
r227: eqt(true(),tuplenil(H2)) -> F()
r228: eqt(undefined(),nil()) -> F()
r229: eqt(undefined(),a()) -> F()
r230: eqt(undefined(),tuplenil(H2)) -> F()
r231: eqt(pid(N1),nil()) -> F()
r232: eqt(pid(N1),a()) -> F()
r233: eqt(pid(N1),excl()) -> F()
r234: eqt(pid(N1),false()) -> F()
r235: eqt(pid(N1),lock()) -> F()
r236: eqt(pid(N1),locker()) -> F()
r237: eqt(pid(N1),mcrlrecord()) -> F()
r238: eqt(pid(N1),ok()) -> F()
r239: eqt(pid(N1),pending()) -> F()
r240: eqt(pid(N1),release()) -> F()
r241: eqt(pid(N1),request()) -> F()
r242: eqt(pid(N1),resource()) -> F()
r243: eqt(pid(N1),tag()) -> F()
r244: eqt(pid(N1),true()) -> F()
r245: eqt(pid(N1),undefined()) -> F()
r246: eqt(pid(N1),pid(N2)) -> eqt(N1,N2)
r247: eqt(pid(N1),int(N2)) -> F()
r248: eqt(pid(N1),cons(H2,T2)) -> F()
r249: eqt(pid(N1),tuple(H2,T2)) -> F()
r250: eqt(pid(N1),tuplenil(H2)) -> F()
r251: eqt(int(N1),nil()) -> F()
r252: eqt(int(N1),a()) -> F()
r253: eqt(int(N1),excl()) -> F()
r254: eqt(int(N1),false()) -> F()
r255: eqt(int(N1),lock()) -> F()
r256: eqt(int(N1),locker()) -> F()
r257: eqt(int(N1),mcrlrecord()) -> F()
r258: eqt(int(N1),ok()) -> F()
r259: eqt(int(N1),pending()) -> F()
r260: eqt(int(N1),release()) -> F()
r261: eqt(int(N1),request()) -> F()
r262: eqt(int(N1),resource()) -> F()
r263: eqt(int(N1),tag()) -> F()
r264: eqt(int(N1),true()) -> F()
r265: eqt(int(N1),undefined()) -> F()
r266: eqt(cons(H1,T1),resource()) -> F()
r267: eqt(cons(H1,T1),tag()) -> F()
r268: eqt(cons(H1,T1),true()) -> F()
r269: eqt(cons(H1,T1),undefined()) -> F()
r270: eqt(cons(H1,T1),pid(N2)) -> F()
r271: eqt(cons(H1,T1),int(N2)) -> F()
r272: eqt(cons(H1,T1),cons(H2,T2)) -> and(eqt(H1,H2),eqt(T1,T2))
r273: eqt(cons(H1,T1),tuple(H2,T2)) -> F()
r274: eqt(cons(H1,T1),tuplenil(H2)) -> F()
r275: eqt(tuple(H1,T1),nil()) -> F()
r276: eqt(tuple(H1,T1),a()) -> F()
r277: eqt(tuple(H1,T1),excl()) -> F()
r278: eqt(tuple(H1,T1),false()) -> F()
r279: eqt(tuple(H1,T1),lock()) -> F()
r280: eqt(tuple(H1,T1),locker()) -> F()
r281: eqt(tuple(H1,T1),mcrlrecord()) -> F()
r282: eqt(tuple(H1,T1),ok()) -> F()
r283: eqt(tuple(H1,T1),pending()) -> F()
r284: eqt(tuple(H1,T1),release()) -> F()
r285: eqt(tuple(H1,T1),request()) -> F()
r286: eqt(tuple(H1,T1),resource()) -> F()
r287: eqt(tuple(H1,T1),tag()) -> F()
r288: eqt(tuple(H1,T1),true()) -> F()
r289: eqt(tuple(H1,T1),undefined()) -> F()
r290: eqt(tuple(H1,T1),pid(N2)) -> F()
r291: eqt(tuple(H1,T1),int(N2)) -> F()
r292: eqt(tuple(H1,T1),cons(H2,T2)) -> F()
r293: eqt(tuple(H1,T1),tuple(H2,T2)) -> and(eqt(H1,H2),eqt(T1,T2))
r294: eqt(tuple(H1,T1),tuplenil(H2)) -> F()
r295: eqt(tuplenil(H1),nil()) -> F()
r296: eqt(tuplenil(H1),a()) -> F()
r297: eqt(tuplenil(H1),excl()) -> F()
r298: eqt(tuplenil(H1),false()) -> F()
r299: eqt(tuplenil(H1),lock()) -> F()
r300: eqt(tuplenil(H1),locker()) -> F()
r301: eqt(tuplenil(H1),mcrlrecord()) -> F()
r302: eqt(tuplenil(H1),ok()) -> F()
r303: eqt(tuplenil(H1),pending()) -> F()
r304: eqt(tuplenil(H1),release()) -> F()
r305: eqt(tuplenil(H1),request()) -> F()
r306: eqt(tuplenil(H1),resource()) -> F()
r307: eqt(tuplenil(H1),tag()) -> F()
r308: eqt(tuplenil(H1),true()) -> F()
r309: eqt(tuplenil(H1),undefined()) -> F()
r310: eqt(tuplenil(H1),pid(N2)) -> F()
r311: eqt(tuplenil(H1),int(N2)) -> F()
r312: eqt(tuplenil(H1),cons(H2,T2)) -> F()
r313: eqt(tuplenil(H1),tuple(H2,T2)) -> F()
r314: eqt(tuplenil(H1),tuplenil(H2)) -> eqt(H1,H2)
r315: element(int(s(|0|())),tuplenil(T1)) -> T1
r316: element(int(s(|0|())),tuple(T1,T2)) -> T1
r317: element(int(s(s(N1))),tuple(T1,T2)) -> element(int(s(N1)),T2)
r318: record_new(lock()) -> tuple(mcrlrecord(),tuple(lock(),tuple(undefined(),tuple(nil(),tuplenil(nil())))))
r319: record_extract(tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2))))),lock(),resource()) -> tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2)))))
r320: record_update(tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2))))),lock(),pending(),NewF) -> tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(NewF)))))
r321: record_updates(Record,Name,nil()) -> Record
r322: record_updates(Record,Name,cons(tuple(Field,tuplenil(NewF)),Fields)) -> record_updates(record_update(Record,Name,Field,NewF),Name,Fields)
r323: locker2_map_promote_pending(nil(),Pending) -> nil()
r324: locker2_map_promote_pending(cons(Lock,Locks),Pending) -> cons(locker2_promote_pending(Lock,Pending),locker2_map_promote_pending(Locks,Pending))
r325: locker2_map_claim_lock(nil(),Resources,Client) -> nil()
r326: locker2_map_claim_lock(cons(Lock,Locks),Resources,Client) -> cons(locker2_claim_lock(Lock,Resources,Client),locker2_map_claim_lock(Locks,Resources,Client))
r327: locker2_map_add_pending(nil(),Resources,Client) -> nil()
r328: locker2_promote_pending(Lock,Client) -> case0(Client,Lock,record_extract(Lock,lock(),pending()))
r329: case0(Client,Lock,cons(Client,Pendings)) -> record_updates(Lock,lock(),cons(tuple(excl(),tuplenil(Client)),cons(tuple(pending(),tuplenil(Pendings)),nil())))
r330: case0(Client,Lock,MCRLFree0) -> Lock
r331: locker2_remove_pending(Lock,Client) -> record_updates(Lock,lock(),cons(tuple(pending(),tuplenil(subtract(record_extract(Lock,lock(),pending()),cons(Client,nil())))),nil()))
r332: locker2_add_pending(Lock,Resources,Client) -> case1(Client,Resources,Lock,member(record_extract(Lock,lock(),resource()),Resources))
r333: case1(Client,Resources,Lock,true()) -> record_updates(Lock,lock(),cons(tuple(pending(),tuplenil(append(record_extract(Lock,lock(),pending()),cons(Client,nil())))),nil()))
r334: case1(Client,Resources,Lock,false()) -> Lock
r335: locker2_release_lock(Lock,Client) -> case2(Client,Lock,gen_modtageq(Client,record_extract(Lock,lock(),excl())))
r336: case2(Client,Lock,true()) -> record_updates(Lock,lock(),cons(tuple(excllock(),excl()),nil()))
r337: case4(Client,Lock,MCRLFree1) -> false()
r338: locker2_obtainables(nil(),Client) -> true()
r339: locker2_obtainables(cons(Lock,Locks),Client) -> case5(Client,Locks,Lock,member(Client,record_extract(Lock,lock(),pending())))
r340: case5(Client,Locks,Lock,true()) -> andt(locker2_obtainable(Lock,Client),locker2_obtainables(Locks,Client))
r341: case5(Client,Locks,Lock,false()) -> locker2_obtainables(Locks,Client)
r342: locker2_check_available(Resource,nil()) -> false()
r343: locker2_check_available(Resource,cons(Lock,Locks)) -> case6(Locks,Lock,Resource,equal(Resource,record_extract(Lock,lock(),resource())))
r344: case6(Locks,Lock,Resource,true()) -> andt(equal(record_extract(Lock,lock(),excl()),nil()),equal(record_extract(Lock,lock(),pending()),nil()))
r345: case6(Locks,Lock,Resource,false()) -> locker2_check_available(Resource,Locks)
r346: locker2_check_availables(nil(),Locks) -> true()
r347: locker2_check_availables(cons(Resource,Resources),Locks) -> andt(locker2_check_available(Resource,Locks),locker2_check_availables(Resources,Locks))
r348: locker2_adduniq(nil(),List) -> List
r349: append(cons(Head,Tail),List) -> cons(Head,append(Tail,List))
r350: subtract(List,nil()) -> List
r351: subtract(List,cons(Head,Tail)) -> subtract(delete(Head,List),Tail)
r352: delete(E,nil()) -> nil()
r353: delete(E,cons(Head,Tail)) -> case8(Tail,Head,E,equal(E,Head))
r354: case8(Tail,Head,E,true()) -> Tail
r355: case8(Tail,Head,E,false()) -> cons(Head,delete(E,Tail))
r356: gen_tag(Pid) -> tuple(Pid,tuplenil(tag()))
r357: gen_modtageq(Client1,Client2) -> equal(Client1,Client2)
r358: member(E,nil()) -> false()
r359: member(E,cons(Head,Tail)) -> case9(Tail,Head,E,equal(E,Head))
r360: case9(Tail,Head,E,true()) -> true()
r361: case9(Tail,Head,E,false()) -> member(E,Tail)
r362: eqs(empty(),empty()) -> T()
r363: eqs(empty(),stack(E2,S2)) -> F()
r364: eqs(stack(E1,S1),empty()) -> F()
r365: eqs(stack(E1,S1),stack(E2,S2)) -> and(eqt(E1,E2),eqs(S1,S2))
r366: pushs(E1,S1) -> stack(E1,S1)
r367: pops(stack(E1,S1)) -> S1
r368: tops(stack(E1,S1)) -> E1
r369: istops(E1,empty()) -> F()
r370: istops(E1,stack(E2,S1)) -> eqt(E1,E2)
r371: eqc(nocalls(),nocalls()) -> T()
r372: eqc(nocalls(),calls(E2,S2,CS2)) -> F()
r373: eqc(calls(E1,S1,CS1),nocalls()) -> F()
r374: eqc(calls(E1,S1,CS1),calls(E2,S2,CS2)) -> and(eqt(E1,E2),and(eqs(S1,S2),eqc(CS1,CS2)))
r375: push(E1,E2,nocalls()) -> calls(E1,stack(E2,empty()),nocalls())
r376: push(E1,E2,calls(E3,S1,CS1)) -> push1(E1,E2,E3,S1,CS1,eqt(E1,E3))
r377: push1(E1,E2,E3,S1,CS1,T()) -> calls(E3,pushs(E2,S1),CS1)

The estimated dependency graph contains the following SCCs:

  {p58}
  {p52}
  {p1, p3, p4, p6, p7, p8}
  {p9}
  {p10}
  {p13}
  {p14}
  {p44}
  {p42}
  {p43}


-- Reduction pair.

Consider the dependency pair problem (P, R), where P consists of

p1: eqc#(calls(E1,S1,CS1),calls(E2,S2,CS2)) -> eqc#(CS1,CS2)

and R consists of:

r1: or(T(),T()) -> T()
r2: or(F(),T()) -> T()
r3: or(T(),F()) -> T()
r4: or(F(),F()) -> F()
r5: and(T(),B) -> B
r6: and(B,T()) -> B
r7: and(F(),B) -> F()
r8: and(B,F()) -> F()
r9: imp(T(),B) -> B
r10: imp(F(),B) -> T()
r11: not(T()) -> F()
r12: not(F()) -> T()
r13: if(T(),B1,B2) -> B1
r14: if(F(),B1,B2) -> B2
r15: eq(T(),T()) -> T()
r16: eq(F(),F()) -> T()
r17: eq(T(),F()) -> F()
r18: eq(F(),T()) -> F()
r19: eqt(nil(),undefined()) -> F()
r20: eqt(nil(),pid(N2)) -> F()
r21: eqt(nil(),int(N2)) -> F()
r22: eqt(nil(),cons(H2,T2)) -> F()
r23: eqt(nil(),tuple(H2,T2)) -> F()
r24: eqt(nil(),tuplenil(H2)) -> F()
r25: eqt(a(),nil()) -> F()
r26: eqt(a(),a()) -> T()
r27: eqt(a(),excl()) -> F()
r28: eqt(a(),false()) -> F()
r29: eqt(a(),lock()) -> F()
r30: eqt(a(),locker()) -> F()
r31: eqt(a(),mcrlrecord()) -> F()
r32: eqt(a(),ok()) -> F()
r33: eqt(a(),pending()) -> F()
r34: eqt(a(),release()) -> F()
r35: eqt(a(),request()) -> F()
r36: eqt(a(),resource()) -> F()
r37: eqt(a(),tag()) -> F()
r38: eqt(a(),true()) -> F()
r39: eqt(a(),undefined()) -> F()
r40: eqt(a(),pid(N2)) -> F()
r41: eqt(a(),int(N2)) -> F()
r42: eqt(a(),cons(H2,T2)) -> F()
r43: eqt(a(),tuple(H2,T2)) -> F()
r44: eqt(a(),tuplenil(H2)) -> F()
r45: eqt(excl(),nil()) -> F()
r46: eqt(excl(),a()) -> F()
r47: eqt(excl(),excl()) -> T()
r48: eqt(excl(),false()) -> F()
r49: eqt(excl(),lock()) -> F()
r50: eqt(excl(),locker()) -> F()
r51: eqt(excl(),mcrlrecord()) -> F()
r52: eqt(excl(),ok()) -> F()
r53: eqt(excl(),pending()) -> F()
r54: eqt(excl(),release()) -> F()
r55: eqt(excl(),request()) -> F()
r56: eqt(excl(),resource()) -> F()
r57: eqt(excl(),tag()) -> F()
r58: eqt(excl(),true()) -> F()
r59: eqt(excl(),undefined()) -> F()
r60: eqt(excl(),pid(N2)) -> F()
r61: eqt(excl(),eqt(false(),int(N2))) -> F()
r62: eqt(false(),cons(H2,T2)) -> F()
r63: eqt(false(),tuple(H2,T2)) -> F()
r64: eqt(false(),tuplenil(H2)) -> F()
r65: eqt(lock(),nil()) -> F()
r66: eqt(lock(),a()) -> F()
r67: eqt(lock(),excl()) -> F()
r68: eqt(lock(),false()) -> F()
r69: eqt(lock(),lock()) -> T()
r70: eqt(lock(),locker()) -> F()
r71: eqt(lock(),mcrlrecord()) -> F()
r72: eqt(lock(),ok()) -> F()
r73: eqt(lock(),pending()) -> F()
r74: eqt(lock(),release()) -> F()
r75: eqt(lock(),request()) -> F()
r76: eqt(lock(),resource()) -> F()
r77: eqt(lock(),tag()) -> F()
r78: eqt(lock(),true()) -> F()
r79: eqt(lock(),undefined()) -> F()
r80: eqt(lock(),pid(N2)) -> F()
r81: eqt(lock(),int(N2)) -> F()
r82: eqt(lock(),cons(H2,T2)) -> F()
r83: eqt(lock(),tuple(H2,T2)) -> F()
r84: eqt(lock(),tuplenil(H2)) -> F()
r85: eqt(locker(),nil()) -> F()
r86: eqt(locker(),a()) -> F()
r87: eqt(locker(),excl()) -> F()
r88: eqt(locker(),false()) -> F()
r89: eqt(locker(),lock()) -> F()
r90: eqt(locker(),locker()) -> T()
r91: eqt(locker(),mcrlrecord()) -> F()
r92: eqt(locker(),ok()) -> F()
r93: eqt(locker(),pending()) -> F()
r94: eqt(locker(),release()) -> F()
r95: eqt(locker(),request()) -> F()
r96: eqt(locker(),resource()) -> F()
r97: eqt(locker(),tag()) -> F()
r98: eqt(locker(),true()) -> F()
r99: eqt(locker(),undefined()) -> F()
r100: eqt(locker(),pid(N2)) -> F()
r101: eqt(locker(),int(N2)) -> F()
r102: eqt(locker(),cons(H2,T2)) -> F()
r103: eqt(locker(),tuple(H2,T2)) -> F()
r104: eqt(locker(),tuplenil(H2)) -> F()
r105: eqt(mcrlrecord(),nil()) -> F()
r106: eqt(mcrlrecord(),a()) -> F()
r107: eqt(mcrlrecord(),excl()) -> F()
r108: eqt(mcrlrecord(),false()) -> F()
r109: eqt(mcrlrecord(),lock()) -> F()
r110: eqt(mcrlrecord(),locker()) -> F()
r111: eqt(mcrlrecord(),mcrlrecord()) -> T()
r112: eqt(mcrlrecord(),ok()) -> F()
r113: eqt(mcrlrecord(),pending()) -> F()
r114: eqt(mcrlrecord(),release()) -> F()
r115: eqt(mcrlrecord(),request()) -> F()
r116: eqt(mcrlrecord(),resource()) -> F()
r117: eqt(ok(),resource()) -> F()
r118: eqt(ok(),tag()) -> F()
r119: eqt(ok(),true()) -> F()
r120: eqt(ok(),undefined()) -> F()
r121: eqt(ok(),pid(N2)) -> F()
r122: eqt(ok(),int(N2)) -> F()
r123: eqt(ok(),cons(H2,T2)) -> F()
r124: eqt(ok(),tuple(H2,T2)) -> F()
r125: eqt(ok(),tuplenil(H2)) -> F()
r126: eqt(pending(),nil()) -> F()
r127: eqt(pending(),a()) -> F()
r128: eqt(pending(),excl()) -> F()
r129: eqt(pending(),false()) -> F()
r130: eqt(pending(),lock()) -> F()
r131: eqt(pending(),locker()) -> F()
r132: eqt(pending(),mcrlrecord()) -> F()
r133: eqt(pending(),ok()) -> F()
r134: eqt(pending(),pending()) -> T()
r135: eqt(pending(),release()) -> F()
r136: eqt(pending(),request()) -> F()
r137: eqt(pending(),resource()) -> F()
r138: eqt(pending(),tag()) -> F()
r139: eqt(pending(),true()) -> F()
r140: eqt(pending(),undefined()) -> F()
r141: eqt(pending(),pid(N2)) -> F()
r142: eqt(pending(),int(N2)) -> F()
r143: eqt(pending(),cons(H2,T2)) -> F()
r144: eqt(pending(),tuple(H2,T2)) -> F()
r145: eqt(pending(),tuplenil(H2)) -> F()
r146: eqt(release(),nil()) -> F()
r147: eqt(release(),a()) -> F()
r148: eqt(release(),excl()) -> F()
r149: eqt(release(),false()) -> F()
r150: eqt(release(),lock()) -> F()
r151: eqt(release(),locker()) -> F()
r152: eqt(release(),mcrlrecord()) -> F()
r153: eqt(release(),ok()) -> F()
r154: eqt(request(),mcrlrecord()) -> F()
r155: eqt(request(),ok()) -> F()
r156: eqt(request(),pending()) -> F()
r157: eqt(request(),release()) -> F()
r158: eqt(request(),request()) -> T()
r159: eqt(request(),resource()) -> F()
r160: eqt(request(),tag()) -> F()
r161: eqt(request(),true()) -> F()
r162: eqt(request(),undefined()) -> F()
r163: eqt(request(),pid(N2)) -> F()
r164: eqt(request(),int(N2)) -> F()
r165: eqt(request(),cons(H2,T2)) -> F()
r166: eqt(request(),tuple(H2,T2)) -> F()
r167: eqt(request(),tuplenil(H2)) -> F()
r168: eqt(resource(),nil()) -> F()
r169: eqt(resource(),a()) -> F()
r170: eqt(resource(),excl()) -> F()
r171: eqt(resource(),false()) -> F()
r172: eqt(resource(),lock()) -> F()
r173: eqt(resource(),locker()) -> F()
r174: eqt(resource(),mcrlrecord()) -> F()
r175: eqt(resource(),ok()) -> F()
r176: eqt(resource(),pending()) -> F()
r177: eqt(resource(),release()) -> F()
r178: eqt(resource(),request()) -> F()
r179: eqt(resource(),resource()) -> T()
r180: eqt(resource(),tag()) -> F()
r181: eqt(resource(),true()) -> F()
r182: eqt(resource(),undefined()) -> F()
r183: eqt(resource(),pid(N2)) -> F()
r184: eqt(resource(),int(N2)) -> F()
r185: eqt(resource(),cons(H2,T2)) -> F()
r186: eqt(resource(),tuple(H2,T2)) -> F()
r187: eqt(resource(),tuplenil(H2)) -> F()
r188: eqt(tag(),nil()) -> F()
r189: eqt(tag(),a()) -> F()
r190: eqt(tag(),excl()) -> F()
r191: eqt(tag(),false()) -> F()
r192: eqt(tag(),lock()) -> F()
r193: eqt(tag(),locker()) -> F()
r194: eqt(tag(),mcrlrecord()) -> F()
r195: eqt(tag(),ok()) -> F()
r196: eqt(tag(),pending()) -> F()
r197: eqt(tag(),release()) -> F()
r198: eqt(tag(),request()) -> F()
r199: eqt(tag(),resource()) -> F()
r200: eqt(tag(),tag()) -> T()
r201: eqt(tag(),true()) -> F()
r202: eqt(tag(),undefined()) -> F()
r203: eqt(tag(),pid(N2)) -> F()
r204: eqt(tag(),int(N2)) -> F()
r205: eqt(tag(),cons(H2,T2)) -> F()
r206: eqt(tag(),tuple(H2,T2)) -> F()
r207: eqt(tag(),tuplenil(H2)) -> F()
r208: eqt(true(),nil()) -> F()
r209: eqt(true(),a()) -> F()
r210: eqt(true(),excl()) -> F()
r211: eqt(true(),false()) -> F()
r212: eqt(true(),lock()) -> F()
r213: eqt(true(),locker()) -> F()
r214: eqt(true(),mcrlrecord()) -> F()
r215: eqt(true(),ok()) -> F()
r216: eqt(true(),pending()) -> F()
r217: eqt(true(),release()) -> F()
r218: eqt(true(),request()) -> F()
r219: eqt(true(),resource()) -> F()
r220: eqt(true(),tag()) -> F()
r221: eqt(true(),true()) -> T()
r222: eqt(true(),undefined()) -> F()
r223: eqt(true(),pid(N2)) -> F()
r224: eqt(true(),int(N2)) -> F()
r225: eqt(true(),cons(H2,T2)) -> F()
r226: eqt(true(),tuple(H2,T2)) -> F()
r227: eqt(true(),tuplenil(H2)) -> F()
r228: eqt(undefined(),nil()) -> F()
r229: eqt(undefined(),a()) -> F()
r230: eqt(undefined(),tuplenil(H2)) -> F()
r231: eqt(pid(N1),nil()) -> F()
r232: eqt(pid(N1),a()) -> F()
r233: eqt(pid(N1),excl()) -> F()
r234: eqt(pid(N1),false()) -> F()
r235: eqt(pid(N1),lock()) -> F()
r236: eqt(pid(N1),locker()) -> F()
r237: eqt(pid(N1),mcrlrecord()) -> F()
r238: eqt(pid(N1),ok()) -> F()
r239: eqt(pid(N1),pending()) -> F()
r240: eqt(pid(N1),release()) -> F()
r241: eqt(pid(N1),request()) -> F()
r242: eqt(pid(N1),resource()) -> F()
r243: eqt(pid(N1),tag()) -> F()
r244: eqt(pid(N1),true()) -> F()
r245: eqt(pid(N1),undefined()) -> F()
r246: eqt(pid(N1),pid(N2)) -> eqt(N1,N2)
r247: eqt(pid(N1),int(N2)) -> F()
r248: eqt(pid(N1),cons(H2,T2)) -> F()
r249: eqt(pid(N1),tuple(H2,T2)) -> F()
r250: eqt(pid(N1),tuplenil(H2)) -> F()
r251: eqt(int(N1),nil()) -> F()
r252: eqt(int(N1),a()) -> F()
r253: eqt(int(N1),excl()) -> F()
r254: eqt(int(N1),false()) -> F()
r255: eqt(int(N1),lock()) -> F()
r256: eqt(int(N1),locker()) -> F()
r257: eqt(int(N1),mcrlrecord()) -> F()
r258: eqt(int(N1),ok()) -> F()
r259: eqt(int(N1),pending()) -> F()
r260: eqt(int(N1),release()) -> F()
r261: eqt(int(N1),request()) -> F()
r262: eqt(int(N1),resource()) -> F()
r263: eqt(int(N1),tag()) -> F()
r264: eqt(int(N1),true()) -> F()
r265: eqt(int(N1),undefined()) -> F()
r266: eqt(cons(H1,T1),resource()) -> F()
r267: eqt(cons(H1,T1),tag()) -> F()
r268: eqt(cons(H1,T1),true()) -> F()
r269: eqt(cons(H1,T1),undefined()) -> F()
r270: eqt(cons(H1,T1),pid(N2)) -> F()
r271: eqt(cons(H1,T1),int(N2)) -> F()
r272: eqt(cons(H1,T1),cons(H2,T2)) -> and(eqt(H1,H2),eqt(T1,T2))
r273: eqt(cons(H1,T1),tuple(H2,T2)) -> F()
r274: eqt(cons(H1,T1),tuplenil(H2)) -> F()
r275: eqt(tuple(H1,T1),nil()) -> F()
r276: eqt(tuple(H1,T1),a()) -> F()
r277: eqt(tuple(H1,T1),excl()) -> F()
r278: eqt(tuple(H1,T1),false()) -> F()
r279: eqt(tuple(H1,T1),lock()) -> F()
r280: eqt(tuple(H1,T1),locker()) -> F()
r281: eqt(tuple(H1,T1),mcrlrecord()) -> F()
r282: eqt(tuple(H1,T1),ok()) -> F()
r283: eqt(tuple(H1,T1),pending()) -> F()
r284: eqt(tuple(H1,T1),release()) -> F()
r285: eqt(tuple(H1,T1),request()) -> F()
r286: eqt(tuple(H1,T1),resource()) -> F()
r287: eqt(tuple(H1,T1),tag()) -> F()
r288: eqt(tuple(H1,T1),true()) -> F()
r289: eqt(tuple(H1,T1),undefined()) -> F()
r290: eqt(tuple(H1,T1),pid(N2)) -> F()
r291: eqt(tuple(H1,T1),int(N2)) -> F()
r292: eqt(tuple(H1,T1),cons(H2,T2)) -> F()
r293: eqt(tuple(H1,T1),tuple(H2,T2)) -> and(eqt(H1,H2),eqt(T1,T2))
r294: eqt(tuple(H1,T1),tuplenil(H2)) -> F()
r295: eqt(tuplenil(H1),nil()) -> F()
r296: eqt(tuplenil(H1),a()) -> F()
r297: eqt(tuplenil(H1),excl()) -> F()
r298: eqt(tuplenil(H1),false()) -> F()
r299: eqt(tuplenil(H1),lock()) -> F()
r300: eqt(tuplenil(H1),locker()) -> F()
r301: eqt(tuplenil(H1),mcrlrecord()) -> F()
r302: eqt(tuplenil(H1),ok()) -> F()
r303: eqt(tuplenil(H1),pending()) -> F()
r304: eqt(tuplenil(H1),release()) -> F()
r305: eqt(tuplenil(H1),request()) -> F()
r306: eqt(tuplenil(H1),resource()) -> F()
r307: eqt(tuplenil(H1),tag()) -> F()
r308: eqt(tuplenil(H1),true()) -> F()
r309: eqt(tuplenil(H1),undefined()) -> F()
r310: eqt(tuplenil(H1),pid(N2)) -> F()
r311: eqt(tuplenil(H1),int(N2)) -> F()
r312: eqt(tuplenil(H1),cons(H2,T2)) -> F()
r313: eqt(tuplenil(H1),tuple(H2,T2)) -> F()
r314: eqt(tuplenil(H1),tuplenil(H2)) -> eqt(H1,H2)
r315: element(int(s(|0|())),tuplenil(T1)) -> T1
r316: element(int(s(|0|())),tuple(T1,T2)) -> T1
r317: element(int(s(s(N1))),tuple(T1,T2)) -> element(int(s(N1)),T2)
r318: record_new(lock()) -> tuple(mcrlrecord(),tuple(lock(),tuple(undefined(),tuple(nil(),tuplenil(nil())))))
r319: record_extract(tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2))))),lock(),resource()) -> tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2)))))
r320: record_update(tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2))))),lock(),pending(),NewF) -> tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(NewF)))))
r321: record_updates(Record,Name,nil()) -> Record
r322: record_updates(Record,Name,cons(tuple(Field,tuplenil(NewF)),Fields)) -> record_updates(record_update(Record,Name,Field,NewF),Name,Fields)
r323: locker2_map_promote_pending(nil(),Pending) -> nil()
r324: locker2_map_promote_pending(cons(Lock,Locks),Pending) -> cons(locker2_promote_pending(Lock,Pending),locker2_map_promote_pending(Locks,Pending))
r325: locker2_map_claim_lock(nil(),Resources,Client) -> nil()
r326: locker2_map_claim_lock(cons(Lock,Locks),Resources,Client) -> cons(locker2_claim_lock(Lock,Resources,Client),locker2_map_claim_lock(Locks,Resources,Client))
r327: locker2_map_add_pending(nil(),Resources,Client) -> nil()
r328: locker2_promote_pending(Lock,Client) -> case0(Client,Lock,record_extract(Lock,lock(),pending()))
r329: case0(Client,Lock,cons(Client,Pendings)) -> record_updates(Lock,lock(),cons(tuple(excl(),tuplenil(Client)),cons(tuple(pending(),tuplenil(Pendings)),nil())))
r330: case0(Client,Lock,MCRLFree0) -> Lock
r331: locker2_remove_pending(Lock,Client) -> record_updates(Lock,lock(),cons(tuple(pending(),tuplenil(subtract(record_extract(Lock,lock(),pending()),cons(Client,nil())))),nil()))
r332: locker2_add_pending(Lock,Resources,Client) -> case1(Client,Resources,Lock,member(record_extract(Lock,lock(),resource()),Resources))
r333: case1(Client,Resources,Lock,true()) -> record_updates(Lock,lock(),cons(tuple(pending(),tuplenil(append(record_extract(Lock,lock(),pending()),cons(Client,nil())))),nil()))
r334: case1(Client,Resources,Lock,false()) -> Lock
r335: locker2_release_lock(Lock,Client) -> case2(Client,Lock,gen_modtageq(Client,record_extract(Lock,lock(),excl())))
r336: case2(Client,Lock,true()) -> record_updates(Lock,lock(),cons(tuple(excllock(),excl()),nil()))
r337: case4(Client,Lock,MCRLFree1) -> false()
r338: locker2_obtainables(nil(),Client) -> true()
r339: locker2_obtainables(cons(Lock,Locks),Client) -> case5(Client,Locks,Lock,member(Client,record_extract(Lock,lock(),pending())))
r340: case5(Client,Locks,Lock,true()) -> andt(locker2_obtainable(Lock,Client),locker2_obtainables(Locks,Client))
r341: case5(Client,Locks,Lock,false()) -> locker2_obtainables(Locks,Client)
r342: locker2_check_available(Resource,nil()) -> false()
r343: locker2_check_available(Resource,cons(Lock,Locks)) -> case6(Locks,Lock,Resource,equal(Resource,record_extract(Lock,lock(),resource())))
r344: case6(Locks,Lock,Resource,true()) -> andt(equal(record_extract(Lock,lock(),excl()),nil()),equal(record_extract(Lock,lock(),pending()),nil()))
r345: case6(Locks,Lock,Resource,false()) -> locker2_check_available(Resource,Locks)
r346: locker2_check_availables(nil(),Locks) -> true()
r347: locker2_check_availables(cons(Resource,Resources),Locks) -> andt(locker2_check_available(Resource,Locks),locker2_check_availables(Resources,Locks))
r348: locker2_adduniq(nil(),List) -> List
r349: append(cons(Head,Tail),List) -> cons(Head,append(Tail,List))
r350: subtract(List,nil()) -> List
r351: subtract(List,cons(Head,Tail)) -> subtract(delete(Head,List),Tail)
r352: delete(E,nil()) -> nil()
r353: delete(E,cons(Head,Tail)) -> case8(Tail,Head,E,equal(E,Head))
r354: case8(Tail,Head,E,true()) -> Tail
r355: case8(Tail,Head,E,false()) -> cons(Head,delete(E,Tail))
r356: gen_tag(Pid) -> tuple(Pid,tuplenil(tag()))
r357: gen_modtageq(Client1,Client2) -> equal(Client1,Client2)
r358: member(E,nil()) -> false()
r359: member(E,cons(Head,Tail)) -> case9(Tail,Head,E,equal(E,Head))
r360: case9(Tail,Head,E,true()) -> true()
r361: case9(Tail,Head,E,false()) -> member(E,Tail)
r362: eqs(empty(),empty()) -> T()
r363: eqs(empty(),stack(E2,S2)) -> F()
r364: eqs(stack(E1,S1),empty()) -> F()
r365: eqs(stack(E1,S1),stack(E2,S2)) -> and(eqt(E1,E2),eqs(S1,S2))
r366: pushs(E1,S1) -> stack(E1,S1)
r367: pops(stack(E1,S1)) -> S1
r368: tops(stack(E1,S1)) -> E1
r369: istops(E1,empty()) -> F()
r370: istops(E1,stack(E2,S1)) -> eqt(E1,E2)
r371: eqc(nocalls(),nocalls()) -> T()
r372: eqc(nocalls(),calls(E2,S2,CS2)) -> F()
r373: eqc(calls(E1,S1,CS1),nocalls()) -> F()
r374: eqc(calls(E1,S1,CS1),calls(E2,S2,CS2)) -> and(eqt(E1,E2),and(eqs(S1,S2),eqc(CS1,CS2)))
r375: push(E1,E2,nocalls()) -> calls(E1,stack(E2,empty()),nocalls())
r376: push(E1,E2,calls(E3,S1,CS1)) -> push1(E1,E2,E3,S1,CS1,eqt(E1,E3))
r377: push1(E1,E2,E3,S1,CS1,T()) -> calls(E3,pushs(E2,S1),CS1)

The set of usable rules consists of

  (no rules)

Take the reduction pair:

  matrix interpretations:
  
    carrier: N^1
    order: standard order
    interpretations:
      eqc#_A(x1,x2) = x1 + x2
      calls_A(x1,x2,x3) = x3 + 1

The next rules are strictly ordered:

  p1

We remove them from the problem.  Then no dependency pair remains.

-- Reduction pair.

Consider the dependency pair problem (P, R), where P consists of

p1: eqs#(stack(E1,S1),stack(E2,S2)) -> eqs#(S1,S2)

and R consists of:

r1: or(T(),T()) -> T()
r2: or(F(),T()) -> T()
r3: or(T(),F()) -> T()
r4: or(F(),F()) -> F()
r5: and(T(),B) -> B
r6: and(B,T()) -> B
r7: and(F(),B) -> F()
r8: and(B,F()) -> F()
r9: imp(T(),B) -> B
r10: imp(F(),B) -> T()
r11: not(T()) -> F()
r12: not(F()) -> T()
r13: if(T(),B1,B2) -> B1
r14: if(F(),B1,B2) -> B2
r15: eq(T(),T()) -> T()
r16: eq(F(),F()) -> T()
r17: eq(T(),F()) -> F()
r18: eq(F(),T()) -> F()
r19: eqt(nil(),undefined()) -> F()
r20: eqt(nil(),pid(N2)) -> F()
r21: eqt(nil(),int(N2)) -> F()
r22: eqt(nil(),cons(H2,T2)) -> F()
r23: eqt(nil(),tuple(H2,T2)) -> F()
r24: eqt(nil(),tuplenil(H2)) -> F()
r25: eqt(a(),nil()) -> F()
r26: eqt(a(),a()) -> T()
r27: eqt(a(),excl()) -> F()
r28: eqt(a(),false()) -> F()
r29: eqt(a(),lock()) -> F()
r30: eqt(a(),locker()) -> F()
r31: eqt(a(),mcrlrecord()) -> F()
r32: eqt(a(),ok()) -> F()
r33: eqt(a(),pending()) -> F()
r34: eqt(a(),release()) -> F()
r35: eqt(a(),request()) -> F()
r36: eqt(a(),resource()) -> F()
r37: eqt(a(),tag()) -> F()
r38: eqt(a(),true()) -> F()
r39: eqt(a(),undefined()) -> F()
r40: eqt(a(),pid(N2)) -> F()
r41: eqt(a(),int(N2)) -> F()
r42: eqt(a(),cons(H2,T2)) -> F()
r43: eqt(a(),tuple(H2,T2)) -> F()
r44: eqt(a(),tuplenil(H2)) -> F()
r45: eqt(excl(),nil()) -> F()
r46: eqt(excl(),a()) -> F()
r47: eqt(excl(),excl()) -> T()
r48: eqt(excl(),false()) -> F()
r49: eqt(excl(),lock()) -> F()
r50: eqt(excl(),locker()) -> F()
r51: eqt(excl(),mcrlrecord()) -> F()
r52: eqt(excl(),ok()) -> F()
r53: eqt(excl(),pending()) -> F()
r54: eqt(excl(),release()) -> F()
r55: eqt(excl(),request()) -> F()
r56: eqt(excl(),resource()) -> F()
r57: eqt(excl(),tag()) -> F()
r58: eqt(excl(),true()) -> F()
r59: eqt(excl(),undefined()) -> F()
r60: eqt(excl(),pid(N2)) -> F()
r61: eqt(excl(),eqt(false(),int(N2))) -> F()
r62: eqt(false(),cons(H2,T2)) -> F()
r63: eqt(false(),tuple(H2,T2)) -> F()
r64: eqt(false(),tuplenil(H2)) -> F()
r65: eqt(lock(),nil()) -> F()
r66: eqt(lock(),a()) -> F()
r67: eqt(lock(),excl()) -> F()
r68: eqt(lock(),false()) -> F()
r69: eqt(lock(),lock()) -> T()
r70: eqt(lock(),locker()) -> F()
r71: eqt(lock(),mcrlrecord()) -> F()
r72: eqt(lock(),ok()) -> F()
r73: eqt(lock(),pending()) -> F()
r74: eqt(lock(),release()) -> F()
r75: eqt(lock(),request()) -> F()
r76: eqt(lock(),resource()) -> F()
r77: eqt(lock(),tag()) -> F()
r78: eqt(lock(),true()) -> F()
r79: eqt(lock(),undefined()) -> F()
r80: eqt(lock(),pid(N2)) -> F()
r81: eqt(lock(),int(N2)) -> F()
r82: eqt(lock(),cons(H2,T2)) -> F()
r83: eqt(lock(),tuple(H2,T2)) -> F()
r84: eqt(lock(),tuplenil(H2)) -> F()
r85: eqt(locker(),nil()) -> F()
r86: eqt(locker(),a()) -> F()
r87: eqt(locker(),excl()) -> F()
r88: eqt(locker(),false()) -> F()
r89: eqt(locker(),lock()) -> F()
r90: eqt(locker(),locker()) -> T()
r91: eqt(locker(),mcrlrecord()) -> F()
r92: eqt(locker(),ok()) -> F()
r93: eqt(locker(),pending()) -> F()
r94: eqt(locker(),release()) -> F()
r95: eqt(locker(),request()) -> F()
r96: eqt(locker(),resource()) -> F()
r97: eqt(locker(),tag()) -> F()
r98: eqt(locker(),true()) -> F()
r99: eqt(locker(),undefined()) -> F()
r100: eqt(locker(),pid(N2)) -> F()
r101: eqt(locker(),int(N2)) -> F()
r102: eqt(locker(),cons(H2,T2)) -> F()
r103: eqt(locker(),tuple(H2,T2)) -> F()
r104: eqt(locker(),tuplenil(H2)) -> F()
r105: eqt(mcrlrecord(),nil()) -> F()
r106: eqt(mcrlrecord(),a()) -> F()
r107: eqt(mcrlrecord(),excl()) -> F()
r108: eqt(mcrlrecord(),false()) -> F()
r109: eqt(mcrlrecord(),lock()) -> F()
r110: eqt(mcrlrecord(),locker()) -> F()
r111: eqt(mcrlrecord(),mcrlrecord()) -> T()
r112: eqt(mcrlrecord(),ok()) -> F()
r113: eqt(mcrlrecord(),pending()) -> F()
r114: eqt(mcrlrecord(),release()) -> F()
r115: eqt(mcrlrecord(),request()) -> F()
r116: eqt(mcrlrecord(),resource()) -> F()
r117: eqt(ok(),resource()) -> F()
r118: eqt(ok(),tag()) -> F()
r119: eqt(ok(),true()) -> F()
r120: eqt(ok(),undefined()) -> F()
r121: eqt(ok(),pid(N2)) -> F()
r122: eqt(ok(),int(N2)) -> F()
r123: eqt(ok(),cons(H2,T2)) -> F()
r124: eqt(ok(),tuple(H2,T2)) -> F()
r125: eqt(ok(),tuplenil(H2)) -> F()
r126: eqt(pending(),nil()) -> F()
r127: eqt(pending(),a()) -> F()
r128: eqt(pending(),excl()) -> F()
r129: eqt(pending(),false()) -> F()
r130: eqt(pending(),lock()) -> F()
r131: eqt(pending(),locker()) -> F()
r132: eqt(pending(),mcrlrecord()) -> F()
r133: eqt(pending(),ok()) -> F()
r134: eqt(pending(),pending()) -> T()
r135: eqt(pending(),release()) -> F()
r136: eqt(pending(),request()) -> F()
r137: eqt(pending(),resource()) -> F()
r138: eqt(pending(),tag()) -> F()
r139: eqt(pending(),true()) -> F()
r140: eqt(pending(),undefined()) -> F()
r141: eqt(pending(),pid(N2)) -> F()
r142: eqt(pending(),int(N2)) -> F()
r143: eqt(pending(),cons(H2,T2)) -> F()
r144: eqt(pending(),tuple(H2,T2)) -> F()
r145: eqt(pending(),tuplenil(H2)) -> F()
r146: eqt(release(),nil()) -> F()
r147: eqt(release(),a()) -> F()
r148: eqt(release(),excl()) -> F()
r149: eqt(release(),false()) -> F()
r150: eqt(release(),lock()) -> F()
r151: eqt(release(),locker()) -> F()
r152: eqt(release(),mcrlrecord()) -> F()
r153: eqt(release(),ok()) -> F()
r154: eqt(request(),mcrlrecord()) -> F()
r155: eqt(request(),ok()) -> F()
r156: eqt(request(),pending()) -> F()
r157: eqt(request(),release()) -> F()
r158: eqt(request(),request()) -> T()
r159: eqt(request(),resource()) -> F()
r160: eqt(request(),tag()) -> F()
r161: eqt(request(),true()) -> F()
r162: eqt(request(),undefined()) -> F()
r163: eqt(request(),pid(N2)) -> F()
r164: eqt(request(),int(N2)) -> F()
r165: eqt(request(),cons(H2,T2)) -> F()
r166: eqt(request(),tuple(H2,T2)) -> F()
r167: eqt(request(),tuplenil(H2)) -> F()
r168: eqt(resource(),nil()) -> F()
r169: eqt(resource(),a()) -> F()
r170: eqt(resource(),excl()) -> F()
r171: eqt(resource(),false()) -> F()
r172: eqt(resource(),lock()) -> F()
r173: eqt(resource(),locker()) -> F()
r174: eqt(resource(),mcrlrecord()) -> F()
r175: eqt(resource(),ok()) -> F()
r176: eqt(resource(),pending()) -> F()
r177: eqt(resource(),release()) -> F()
r178: eqt(resource(),request()) -> F()
r179: eqt(resource(),resource()) -> T()
r180: eqt(resource(),tag()) -> F()
r181: eqt(resource(),true()) -> F()
r182: eqt(resource(),undefined()) -> F()
r183: eqt(resource(),pid(N2)) -> F()
r184: eqt(resource(),int(N2)) -> F()
r185: eqt(resource(),cons(H2,T2)) -> F()
r186: eqt(resource(),tuple(H2,T2)) -> F()
r187: eqt(resource(),tuplenil(H2)) -> F()
r188: eqt(tag(),nil()) -> F()
r189: eqt(tag(),a()) -> F()
r190: eqt(tag(),excl()) -> F()
r191: eqt(tag(),false()) -> F()
r192: eqt(tag(),lock()) -> F()
r193: eqt(tag(),locker()) -> F()
r194: eqt(tag(),mcrlrecord()) -> F()
r195: eqt(tag(),ok()) -> F()
r196: eqt(tag(),pending()) -> F()
r197: eqt(tag(),release()) -> F()
r198: eqt(tag(),request()) -> F()
r199: eqt(tag(),resource()) -> F()
r200: eqt(tag(),tag()) -> T()
r201: eqt(tag(),true()) -> F()
r202: eqt(tag(),undefined()) -> F()
r203: eqt(tag(),pid(N2)) -> F()
r204: eqt(tag(),int(N2)) -> F()
r205: eqt(tag(),cons(H2,T2)) -> F()
r206: eqt(tag(),tuple(H2,T2)) -> F()
r207: eqt(tag(),tuplenil(H2)) -> F()
r208: eqt(true(),nil()) -> F()
r209: eqt(true(),a()) -> F()
r210: eqt(true(),excl()) -> F()
r211: eqt(true(),false()) -> F()
r212: eqt(true(),lock()) -> F()
r213: eqt(true(),locker()) -> F()
r214: eqt(true(),mcrlrecord()) -> F()
r215: eqt(true(),ok()) -> F()
r216: eqt(true(),pending()) -> F()
r217: eqt(true(),release()) -> F()
r218: eqt(true(),request()) -> F()
r219: eqt(true(),resource()) -> F()
r220: eqt(true(),tag()) -> F()
r221: eqt(true(),true()) -> T()
r222: eqt(true(),undefined()) -> F()
r223: eqt(true(),pid(N2)) -> F()
r224: eqt(true(),int(N2)) -> F()
r225: eqt(true(),cons(H2,T2)) -> F()
r226: eqt(true(),tuple(H2,T2)) -> F()
r227: eqt(true(),tuplenil(H2)) -> F()
r228: eqt(undefined(),nil()) -> F()
r229: eqt(undefined(),a()) -> F()
r230: eqt(undefined(),tuplenil(H2)) -> F()
r231: eqt(pid(N1),nil()) -> F()
r232: eqt(pid(N1),a()) -> F()
r233: eqt(pid(N1),excl()) -> F()
r234: eqt(pid(N1),false()) -> F()
r235: eqt(pid(N1),lock()) -> F()
r236: eqt(pid(N1),locker()) -> F()
r237: eqt(pid(N1),mcrlrecord()) -> F()
r238: eqt(pid(N1),ok()) -> F()
r239: eqt(pid(N1),pending()) -> F()
r240: eqt(pid(N1),release()) -> F()
r241: eqt(pid(N1),request()) -> F()
r242: eqt(pid(N1),resource()) -> F()
r243: eqt(pid(N1),tag()) -> F()
r244: eqt(pid(N1),true()) -> F()
r245: eqt(pid(N1),undefined()) -> F()
r246: eqt(pid(N1),pid(N2)) -> eqt(N1,N2)
r247: eqt(pid(N1),int(N2)) -> F()
r248: eqt(pid(N1),cons(H2,T2)) -> F()
r249: eqt(pid(N1),tuple(H2,T2)) -> F()
r250: eqt(pid(N1),tuplenil(H2)) -> F()
r251: eqt(int(N1),nil()) -> F()
r252: eqt(int(N1),a()) -> F()
r253: eqt(int(N1),excl()) -> F()
r254: eqt(int(N1),false()) -> F()
r255: eqt(int(N1),lock()) -> F()
r256: eqt(int(N1),locker()) -> F()
r257: eqt(int(N1),mcrlrecord()) -> F()
r258: eqt(int(N1),ok()) -> F()
r259: eqt(int(N1),pending()) -> F()
r260: eqt(int(N1),release()) -> F()
r261: eqt(int(N1),request()) -> F()
r262: eqt(int(N1),resource()) -> F()
r263: eqt(int(N1),tag()) -> F()
r264: eqt(int(N1),true()) -> F()
r265: eqt(int(N1),undefined()) -> F()
r266: eqt(cons(H1,T1),resource()) -> F()
r267: eqt(cons(H1,T1),tag()) -> F()
r268: eqt(cons(H1,T1),true()) -> F()
r269: eqt(cons(H1,T1),undefined()) -> F()
r270: eqt(cons(H1,T1),pid(N2)) -> F()
r271: eqt(cons(H1,T1),int(N2)) -> F()
r272: eqt(cons(H1,T1),cons(H2,T2)) -> and(eqt(H1,H2),eqt(T1,T2))
r273: eqt(cons(H1,T1),tuple(H2,T2)) -> F()
r274: eqt(cons(H1,T1),tuplenil(H2)) -> F()
r275: eqt(tuple(H1,T1),nil()) -> F()
r276: eqt(tuple(H1,T1),a()) -> F()
r277: eqt(tuple(H1,T1),excl()) -> F()
r278: eqt(tuple(H1,T1),false()) -> F()
r279: eqt(tuple(H1,T1),lock()) -> F()
r280: eqt(tuple(H1,T1),locker()) -> F()
r281: eqt(tuple(H1,T1),mcrlrecord()) -> F()
r282: eqt(tuple(H1,T1),ok()) -> F()
r283: eqt(tuple(H1,T1),pending()) -> F()
r284: eqt(tuple(H1,T1),release()) -> F()
r285: eqt(tuple(H1,T1),request()) -> F()
r286: eqt(tuple(H1,T1),resource()) -> F()
r287: eqt(tuple(H1,T1),tag()) -> F()
r288: eqt(tuple(H1,T1),true()) -> F()
r289: eqt(tuple(H1,T1),undefined()) -> F()
r290: eqt(tuple(H1,T1),pid(N2)) -> F()
r291: eqt(tuple(H1,T1),int(N2)) -> F()
r292: eqt(tuple(H1,T1),cons(H2,T2)) -> F()
r293: eqt(tuple(H1,T1),tuple(H2,T2)) -> and(eqt(H1,H2),eqt(T1,T2))
r294: eqt(tuple(H1,T1),tuplenil(H2)) -> F()
r295: eqt(tuplenil(H1),nil()) -> F()
r296: eqt(tuplenil(H1),a()) -> F()
r297: eqt(tuplenil(H1),excl()) -> F()
r298: eqt(tuplenil(H1),false()) -> F()
r299: eqt(tuplenil(H1),lock()) -> F()
r300: eqt(tuplenil(H1),locker()) -> F()
r301: eqt(tuplenil(H1),mcrlrecord()) -> F()
r302: eqt(tuplenil(H1),ok()) -> F()
r303: eqt(tuplenil(H1),pending()) -> F()
r304: eqt(tuplenil(H1),release()) -> F()
r305: eqt(tuplenil(H1),request()) -> F()
r306: eqt(tuplenil(H1),resource()) -> F()
r307: eqt(tuplenil(H1),tag()) -> F()
r308: eqt(tuplenil(H1),true()) -> F()
r309: eqt(tuplenil(H1),undefined()) -> F()
r310: eqt(tuplenil(H1),pid(N2)) -> F()
r311: eqt(tuplenil(H1),int(N2)) -> F()
r312: eqt(tuplenil(H1),cons(H2,T2)) -> F()
r313: eqt(tuplenil(H1),tuple(H2,T2)) -> F()
r314: eqt(tuplenil(H1),tuplenil(H2)) -> eqt(H1,H2)
r315: element(int(s(|0|())),tuplenil(T1)) -> T1
r316: element(int(s(|0|())),tuple(T1,T2)) -> T1
r317: element(int(s(s(N1))),tuple(T1,T2)) -> element(int(s(N1)),T2)
r318: record_new(lock()) -> tuple(mcrlrecord(),tuple(lock(),tuple(undefined(),tuple(nil(),tuplenil(nil())))))
r319: record_extract(tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2))))),lock(),resource()) -> tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2)))))
r320: record_update(tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2))))),lock(),pending(),NewF) -> tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(NewF)))))
r321: record_updates(Record,Name,nil()) -> Record
r322: record_updates(Record,Name,cons(tuple(Field,tuplenil(NewF)),Fields)) -> record_updates(record_update(Record,Name,Field,NewF),Name,Fields)
r323: locker2_map_promote_pending(nil(),Pending) -> nil()
r324: locker2_map_promote_pending(cons(Lock,Locks),Pending) -> cons(locker2_promote_pending(Lock,Pending),locker2_map_promote_pending(Locks,Pending))
r325: locker2_map_claim_lock(nil(),Resources,Client) -> nil()
r326: locker2_map_claim_lock(cons(Lock,Locks),Resources,Client) -> cons(locker2_claim_lock(Lock,Resources,Client),locker2_map_claim_lock(Locks,Resources,Client))
r327: locker2_map_add_pending(nil(),Resources,Client) -> nil()
r328: locker2_promote_pending(Lock,Client) -> case0(Client,Lock,record_extract(Lock,lock(),pending()))
r329: case0(Client,Lock,cons(Client,Pendings)) -> record_updates(Lock,lock(),cons(tuple(excl(),tuplenil(Client)),cons(tuple(pending(),tuplenil(Pendings)),nil())))
r330: case0(Client,Lock,MCRLFree0) -> Lock
r331: locker2_remove_pending(Lock,Client) -> record_updates(Lock,lock(),cons(tuple(pending(),tuplenil(subtract(record_extract(Lock,lock(),pending()),cons(Client,nil())))),nil()))
r332: locker2_add_pending(Lock,Resources,Client) -> case1(Client,Resources,Lock,member(record_extract(Lock,lock(),resource()),Resources))
r333: case1(Client,Resources,Lock,true()) -> record_updates(Lock,lock(),cons(tuple(pending(),tuplenil(append(record_extract(Lock,lock(),pending()),cons(Client,nil())))),nil()))
r334: case1(Client,Resources,Lock,false()) -> Lock
r335: locker2_release_lock(Lock,Client) -> case2(Client,Lock,gen_modtageq(Client,record_extract(Lock,lock(),excl())))
r336: case2(Client,Lock,true()) -> record_updates(Lock,lock(),cons(tuple(excllock(),excl()),nil()))
r337: case4(Client,Lock,MCRLFree1) -> false()
r338: locker2_obtainables(nil(),Client) -> true()
r339: locker2_obtainables(cons(Lock,Locks),Client) -> case5(Client,Locks,Lock,member(Client,record_extract(Lock,lock(),pending())))
r340: case5(Client,Locks,Lock,true()) -> andt(locker2_obtainable(Lock,Client),locker2_obtainables(Locks,Client))
r341: case5(Client,Locks,Lock,false()) -> locker2_obtainables(Locks,Client)
r342: locker2_check_available(Resource,nil()) -> false()
r343: locker2_check_available(Resource,cons(Lock,Locks)) -> case6(Locks,Lock,Resource,equal(Resource,record_extract(Lock,lock(),resource())))
r344: case6(Locks,Lock,Resource,true()) -> andt(equal(record_extract(Lock,lock(),excl()),nil()),equal(record_extract(Lock,lock(),pending()),nil()))
r345: case6(Locks,Lock,Resource,false()) -> locker2_check_available(Resource,Locks)
r346: locker2_check_availables(nil(),Locks) -> true()
r347: locker2_check_availables(cons(Resource,Resources),Locks) -> andt(locker2_check_available(Resource,Locks),locker2_check_availables(Resources,Locks))
r348: locker2_adduniq(nil(),List) -> List
r349: append(cons(Head,Tail),List) -> cons(Head,append(Tail,List))
r350: subtract(List,nil()) -> List
r351: subtract(List,cons(Head,Tail)) -> subtract(delete(Head,List),Tail)
r352: delete(E,nil()) -> nil()
r353: delete(E,cons(Head,Tail)) -> case8(Tail,Head,E,equal(E,Head))
r354: case8(Tail,Head,E,true()) -> Tail
r355: case8(Tail,Head,E,false()) -> cons(Head,delete(E,Tail))
r356: gen_tag(Pid) -> tuple(Pid,tuplenil(tag()))
r357: gen_modtageq(Client1,Client2) -> equal(Client1,Client2)
r358: member(E,nil()) -> false()
r359: member(E,cons(Head,Tail)) -> case9(Tail,Head,E,equal(E,Head))
r360: case9(Tail,Head,E,true()) -> true()
r361: case9(Tail,Head,E,false()) -> member(E,Tail)
r362: eqs(empty(),empty()) -> T()
r363: eqs(empty(),stack(E2,S2)) -> F()
r364: eqs(stack(E1,S1),empty()) -> F()
r365: eqs(stack(E1,S1),stack(E2,S2)) -> and(eqt(E1,E2),eqs(S1,S2))
r366: pushs(E1,S1) -> stack(E1,S1)
r367: pops(stack(E1,S1)) -> S1
r368: tops(stack(E1,S1)) -> E1
r369: istops(E1,empty()) -> F()
r370: istops(E1,stack(E2,S1)) -> eqt(E1,E2)
r371: eqc(nocalls(),nocalls()) -> T()
r372: eqc(nocalls(),calls(E2,S2,CS2)) -> F()
r373: eqc(calls(E1,S1,CS1),nocalls()) -> F()
r374: eqc(calls(E1,S1,CS1),calls(E2,S2,CS2)) -> and(eqt(E1,E2),and(eqs(S1,S2),eqc(CS1,CS2)))
r375: push(E1,E2,nocalls()) -> calls(E1,stack(E2,empty()),nocalls())
r376: push(E1,E2,calls(E3,S1,CS1)) -> push1(E1,E2,E3,S1,CS1,eqt(E1,E3))
r377: push1(E1,E2,E3,S1,CS1,T()) -> calls(E3,pushs(E2,S1),CS1)

The set of usable rules consists of

  (no rules)

Take the reduction pair:

  matrix interpretations:
  
    carrier: N^1
    order: standard order
    interpretations:
      eqs#_A(x1,x2) = x1
      stack_A(x1,x2) = x2 + 1

The next rules are strictly ordered:

  p1

We remove them from the problem.  Then no dependency pair remains.

-- Reduction pair.

Consider the dependency pair problem (P, R), where P consists of

p1: eqt#(pid(N1),pid(N2)) -> eqt#(N1,N2)
p2: eqt#(tuplenil(H1),tuplenil(H2)) -> eqt#(H1,H2)
p3: eqt#(tuple(H1,T1),tuple(H2,T2)) -> eqt#(T1,T2)
p4: eqt#(tuple(H1,T1),tuple(H2,T2)) -> eqt#(H1,H2)
p5: eqt#(cons(H1,T1),cons(H2,T2)) -> eqt#(T1,T2)
p6: eqt#(cons(H1,T1),cons(H2,T2)) -> eqt#(H1,H2)

and R consists of:

r1: or(T(),T()) -> T()
r2: or(F(),T()) -> T()
r3: or(T(),F()) -> T()
r4: or(F(),F()) -> F()
r5: and(T(),B) -> B
r6: and(B,T()) -> B
r7: and(F(),B) -> F()
r8: and(B,F()) -> F()
r9: imp(T(),B) -> B
r10: imp(F(),B) -> T()
r11: not(T()) -> F()
r12: not(F()) -> T()
r13: if(T(),B1,B2) -> B1
r14: if(F(),B1,B2) -> B2
r15: eq(T(),T()) -> T()
r16: eq(F(),F()) -> T()
r17: eq(T(),F()) -> F()
r18: eq(F(),T()) -> F()
r19: eqt(nil(),undefined()) -> F()
r20: eqt(nil(),pid(N2)) -> F()
r21: eqt(nil(),int(N2)) -> F()
r22: eqt(nil(),cons(H2,T2)) -> F()
r23: eqt(nil(),tuple(H2,T2)) -> F()
r24: eqt(nil(),tuplenil(H2)) -> F()
r25: eqt(a(),nil()) -> F()
r26: eqt(a(),a()) -> T()
r27: eqt(a(),excl()) -> F()
r28: eqt(a(),false()) -> F()
r29: eqt(a(),lock()) -> F()
r30: eqt(a(),locker()) -> F()
r31: eqt(a(),mcrlrecord()) -> F()
r32: eqt(a(),ok()) -> F()
r33: eqt(a(),pending()) -> F()
r34: eqt(a(),release()) -> F()
r35: eqt(a(),request()) -> F()
r36: eqt(a(),resource()) -> F()
r37: eqt(a(),tag()) -> F()
r38: eqt(a(),true()) -> F()
r39: eqt(a(),undefined()) -> F()
r40: eqt(a(),pid(N2)) -> F()
r41: eqt(a(),int(N2)) -> F()
r42: eqt(a(),cons(H2,T2)) -> F()
r43: eqt(a(),tuple(H2,T2)) -> F()
r44: eqt(a(),tuplenil(H2)) -> F()
r45: eqt(excl(),nil()) -> F()
r46: eqt(excl(),a()) -> F()
r47: eqt(excl(),excl()) -> T()
r48: eqt(excl(),false()) -> F()
r49: eqt(excl(),lock()) -> F()
r50: eqt(excl(),locker()) -> F()
r51: eqt(excl(),mcrlrecord()) -> F()
r52: eqt(excl(),ok()) -> F()
r53: eqt(excl(),pending()) -> F()
r54: eqt(excl(),release()) -> F()
r55: eqt(excl(),request()) -> F()
r56: eqt(excl(),resource()) -> F()
r57: eqt(excl(),tag()) -> F()
r58: eqt(excl(),true()) -> F()
r59: eqt(excl(),undefined()) -> F()
r60: eqt(excl(),pid(N2)) -> F()
r61: eqt(excl(),eqt(false(),int(N2))) -> F()
r62: eqt(false(),cons(H2,T2)) -> F()
r63: eqt(false(),tuple(H2,T2)) -> F()
r64: eqt(false(),tuplenil(H2)) -> F()
r65: eqt(lock(),nil()) -> F()
r66: eqt(lock(),a()) -> F()
r67: eqt(lock(),excl()) -> F()
r68: eqt(lock(),false()) -> F()
r69: eqt(lock(),lock()) -> T()
r70: eqt(lock(),locker()) -> F()
r71: eqt(lock(),mcrlrecord()) -> F()
r72: eqt(lock(),ok()) -> F()
r73: eqt(lock(),pending()) -> F()
r74: eqt(lock(),release()) -> F()
r75: eqt(lock(),request()) -> F()
r76: eqt(lock(),resource()) -> F()
r77: eqt(lock(),tag()) -> F()
r78: eqt(lock(),true()) -> F()
r79: eqt(lock(),undefined()) -> F()
r80: eqt(lock(),pid(N2)) -> F()
r81: eqt(lock(),int(N2)) -> F()
r82: eqt(lock(),cons(H2,T2)) -> F()
r83: eqt(lock(),tuple(H2,T2)) -> F()
r84: eqt(lock(),tuplenil(H2)) -> F()
r85: eqt(locker(),nil()) -> F()
r86: eqt(locker(),a()) -> F()
r87: eqt(locker(),excl()) -> F()
r88: eqt(locker(),false()) -> F()
r89: eqt(locker(),lock()) -> F()
r90: eqt(locker(),locker()) -> T()
r91: eqt(locker(),mcrlrecord()) -> F()
r92: eqt(locker(),ok()) -> F()
r93: eqt(locker(),pending()) -> F()
r94: eqt(locker(),release()) -> F()
r95: eqt(locker(),request()) -> F()
r96: eqt(locker(),resource()) -> F()
r97: eqt(locker(),tag()) -> F()
r98: eqt(locker(),true()) -> F()
r99: eqt(locker(),undefined()) -> F()
r100: eqt(locker(),pid(N2)) -> F()
r101: eqt(locker(),int(N2)) -> F()
r102: eqt(locker(),cons(H2,T2)) -> F()
r103: eqt(locker(),tuple(H2,T2)) -> F()
r104: eqt(locker(),tuplenil(H2)) -> F()
r105: eqt(mcrlrecord(),nil()) -> F()
r106: eqt(mcrlrecord(),a()) -> F()
r107: eqt(mcrlrecord(),excl()) -> F()
r108: eqt(mcrlrecord(),false()) -> F()
r109: eqt(mcrlrecord(),lock()) -> F()
r110: eqt(mcrlrecord(),locker()) -> F()
r111: eqt(mcrlrecord(),mcrlrecord()) -> T()
r112: eqt(mcrlrecord(),ok()) -> F()
r113: eqt(mcrlrecord(),pending()) -> F()
r114: eqt(mcrlrecord(),release()) -> F()
r115: eqt(mcrlrecord(),request()) -> F()
r116: eqt(mcrlrecord(),resource()) -> F()
r117: eqt(ok(),resource()) -> F()
r118: eqt(ok(),tag()) -> F()
r119: eqt(ok(),true()) -> F()
r120: eqt(ok(),undefined()) -> F()
r121: eqt(ok(),pid(N2)) -> F()
r122: eqt(ok(),int(N2)) -> F()
r123: eqt(ok(),cons(H2,T2)) -> F()
r124: eqt(ok(),tuple(H2,T2)) -> F()
r125: eqt(ok(),tuplenil(H2)) -> F()
r126: eqt(pending(),nil()) -> F()
r127: eqt(pending(),a()) -> F()
r128: eqt(pending(),excl()) -> F()
r129: eqt(pending(),false()) -> F()
r130: eqt(pending(),lock()) -> F()
r131: eqt(pending(),locker()) -> F()
r132: eqt(pending(),mcrlrecord()) -> F()
r133: eqt(pending(),ok()) -> F()
r134: eqt(pending(),pending()) -> T()
r135: eqt(pending(),release()) -> F()
r136: eqt(pending(),request()) -> F()
r137: eqt(pending(),resource()) -> F()
r138: eqt(pending(),tag()) -> F()
r139: eqt(pending(),true()) -> F()
r140: eqt(pending(),undefined()) -> F()
r141: eqt(pending(),pid(N2)) -> F()
r142: eqt(pending(),int(N2)) -> F()
r143: eqt(pending(),cons(H2,T2)) -> F()
r144: eqt(pending(),tuple(H2,T2)) -> F()
r145: eqt(pending(),tuplenil(H2)) -> F()
r146: eqt(release(),nil()) -> F()
r147: eqt(release(),a()) -> F()
r148: eqt(release(),excl()) -> F()
r149: eqt(release(),false()) -> F()
r150: eqt(release(),lock()) -> F()
r151: eqt(release(),locker()) -> F()
r152: eqt(release(),mcrlrecord()) -> F()
r153: eqt(release(),ok()) -> F()
r154: eqt(request(),mcrlrecord()) -> F()
r155: eqt(request(),ok()) -> F()
r156: eqt(request(),pending()) -> F()
r157: eqt(request(),release()) -> F()
r158: eqt(request(),request()) -> T()
r159: eqt(request(),resource()) -> F()
r160: eqt(request(),tag()) -> F()
r161: eqt(request(),true()) -> F()
r162: eqt(request(),undefined()) -> F()
r163: eqt(request(),pid(N2)) -> F()
r164: eqt(request(),int(N2)) -> F()
r165: eqt(request(),cons(H2,T2)) -> F()
r166: eqt(request(),tuple(H2,T2)) -> F()
r167: eqt(request(),tuplenil(H2)) -> F()
r168: eqt(resource(),nil()) -> F()
r169: eqt(resource(),a()) -> F()
r170: eqt(resource(),excl()) -> F()
r171: eqt(resource(),false()) -> F()
r172: eqt(resource(),lock()) -> F()
r173: eqt(resource(),locker()) -> F()
r174: eqt(resource(),mcrlrecord()) -> F()
r175: eqt(resource(),ok()) -> F()
r176: eqt(resource(),pending()) -> F()
r177: eqt(resource(),release()) -> F()
r178: eqt(resource(),request()) -> F()
r179: eqt(resource(),resource()) -> T()
r180: eqt(resource(),tag()) -> F()
r181: eqt(resource(),true()) -> F()
r182: eqt(resource(),undefined()) -> F()
r183: eqt(resource(),pid(N2)) -> F()
r184: eqt(resource(),int(N2)) -> F()
r185: eqt(resource(),cons(H2,T2)) -> F()
r186: eqt(resource(),tuple(H2,T2)) -> F()
r187: eqt(resource(),tuplenil(H2)) -> F()
r188: eqt(tag(),nil()) -> F()
r189: eqt(tag(),a()) -> F()
r190: eqt(tag(),excl()) -> F()
r191: eqt(tag(),false()) -> F()
r192: eqt(tag(),lock()) -> F()
r193: eqt(tag(),locker()) -> F()
r194: eqt(tag(),mcrlrecord()) -> F()
r195: eqt(tag(),ok()) -> F()
r196: eqt(tag(),pending()) -> F()
r197: eqt(tag(),release()) -> F()
r198: eqt(tag(),request()) -> F()
r199: eqt(tag(),resource()) -> F()
r200: eqt(tag(),tag()) -> T()
r201: eqt(tag(),true()) -> F()
r202: eqt(tag(),undefined()) -> F()
r203: eqt(tag(),pid(N2)) -> F()
r204: eqt(tag(),int(N2)) -> F()
r205: eqt(tag(),cons(H2,T2)) -> F()
r206: eqt(tag(),tuple(H2,T2)) -> F()
r207: eqt(tag(),tuplenil(H2)) -> F()
r208: eqt(true(),nil()) -> F()
r209: eqt(true(),a()) -> F()
r210: eqt(true(),excl()) -> F()
r211: eqt(true(),false()) -> F()
r212: eqt(true(),lock()) -> F()
r213: eqt(true(),locker()) -> F()
r214: eqt(true(),mcrlrecord()) -> F()
r215: eqt(true(),ok()) -> F()
r216: eqt(true(),pending()) -> F()
r217: eqt(true(),release()) -> F()
r218: eqt(true(),request()) -> F()
r219: eqt(true(),resource()) -> F()
r220: eqt(true(),tag()) -> F()
r221: eqt(true(),true()) -> T()
r222: eqt(true(),undefined()) -> F()
r223: eqt(true(),pid(N2)) -> F()
r224: eqt(true(),int(N2)) -> F()
r225: eqt(true(),cons(H2,T2)) -> F()
r226: eqt(true(),tuple(H2,T2)) -> F()
r227: eqt(true(),tuplenil(H2)) -> F()
r228: eqt(undefined(),nil()) -> F()
r229: eqt(undefined(),a()) -> F()
r230: eqt(undefined(),tuplenil(H2)) -> F()
r231: eqt(pid(N1),nil()) -> F()
r232: eqt(pid(N1),a()) -> F()
r233: eqt(pid(N1),excl()) -> F()
r234: eqt(pid(N1),false()) -> F()
r235: eqt(pid(N1),lock()) -> F()
r236: eqt(pid(N1),locker()) -> F()
r237: eqt(pid(N1),mcrlrecord()) -> F()
r238: eqt(pid(N1),ok()) -> F()
r239: eqt(pid(N1),pending()) -> F()
r240: eqt(pid(N1),release()) -> F()
r241: eqt(pid(N1),request()) -> F()
r242: eqt(pid(N1),resource()) -> F()
r243: eqt(pid(N1),tag()) -> F()
r244: eqt(pid(N1),true()) -> F()
r245: eqt(pid(N1),undefined()) -> F()
r246: eqt(pid(N1),pid(N2)) -> eqt(N1,N2)
r247: eqt(pid(N1),int(N2)) -> F()
r248: eqt(pid(N1),cons(H2,T2)) -> F()
r249: eqt(pid(N1),tuple(H2,T2)) -> F()
r250: eqt(pid(N1),tuplenil(H2)) -> F()
r251: eqt(int(N1),nil()) -> F()
r252: eqt(int(N1),a()) -> F()
r253: eqt(int(N1),excl()) -> F()
r254: eqt(int(N1),false()) -> F()
r255: eqt(int(N1),lock()) -> F()
r256: eqt(int(N1),locker()) -> F()
r257: eqt(int(N1),mcrlrecord()) -> F()
r258: eqt(int(N1),ok()) -> F()
r259: eqt(int(N1),pending()) -> F()
r260: eqt(int(N1),release()) -> F()
r261: eqt(int(N1),request()) -> F()
r262: eqt(int(N1),resource()) -> F()
r263: eqt(int(N1),tag()) -> F()
r264: eqt(int(N1),true()) -> F()
r265: eqt(int(N1),undefined()) -> F()
r266: eqt(cons(H1,T1),resource()) -> F()
r267: eqt(cons(H1,T1),tag()) -> F()
r268: eqt(cons(H1,T1),true()) -> F()
r269: eqt(cons(H1,T1),undefined()) -> F()
r270: eqt(cons(H1,T1),pid(N2)) -> F()
r271: eqt(cons(H1,T1),int(N2)) -> F()
r272: eqt(cons(H1,T1),cons(H2,T2)) -> and(eqt(H1,H2),eqt(T1,T2))
r273: eqt(cons(H1,T1),tuple(H2,T2)) -> F()
r274: eqt(cons(H1,T1),tuplenil(H2)) -> F()
r275: eqt(tuple(H1,T1),nil()) -> F()
r276: eqt(tuple(H1,T1),a()) -> F()
r277: eqt(tuple(H1,T1),excl()) -> F()
r278: eqt(tuple(H1,T1),false()) -> F()
r279: eqt(tuple(H1,T1),lock()) -> F()
r280: eqt(tuple(H1,T1),locker()) -> F()
r281: eqt(tuple(H1,T1),mcrlrecord()) -> F()
r282: eqt(tuple(H1,T1),ok()) -> F()
r283: eqt(tuple(H1,T1),pending()) -> F()
r284: eqt(tuple(H1,T1),release()) -> F()
r285: eqt(tuple(H1,T1),request()) -> F()
r286: eqt(tuple(H1,T1),resource()) -> F()
r287: eqt(tuple(H1,T1),tag()) -> F()
r288: eqt(tuple(H1,T1),true()) -> F()
r289: eqt(tuple(H1,T1),undefined()) -> F()
r290: eqt(tuple(H1,T1),pid(N2)) -> F()
r291: eqt(tuple(H1,T1),int(N2)) -> F()
r292: eqt(tuple(H1,T1),cons(H2,T2)) -> F()
r293: eqt(tuple(H1,T1),tuple(H2,T2)) -> and(eqt(H1,H2),eqt(T1,T2))
r294: eqt(tuple(H1,T1),tuplenil(H2)) -> F()
r295: eqt(tuplenil(H1),nil()) -> F()
r296: eqt(tuplenil(H1),a()) -> F()
r297: eqt(tuplenil(H1),excl()) -> F()
r298: eqt(tuplenil(H1),false()) -> F()
r299: eqt(tuplenil(H1),lock()) -> F()
r300: eqt(tuplenil(H1),locker()) -> F()
r301: eqt(tuplenil(H1),mcrlrecord()) -> F()
r302: eqt(tuplenil(H1),ok()) -> F()
r303: eqt(tuplenil(H1),pending()) -> F()
r304: eqt(tuplenil(H1),release()) -> F()
r305: eqt(tuplenil(H1),request()) -> F()
r306: eqt(tuplenil(H1),resource()) -> F()
r307: eqt(tuplenil(H1),tag()) -> F()
r308: eqt(tuplenil(H1),true()) -> F()
r309: eqt(tuplenil(H1),undefined()) -> F()
r310: eqt(tuplenil(H1),pid(N2)) -> F()
r311: eqt(tuplenil(H1),int(N2)) -> F()
r312: eqt(tuplenil(H1),cons(H2,T2)) -> F()
r313: eqt(tuplenil(H1),tuple(H2,T2)) -> F()
r314: eqt(tuplenil(H1),tuplenil(H2)) -> eqt(H1,H2)
r315: element(int(s(|0|())),tuplenil(T1)) -> T1
r316: element(int(s(|0|())),tuple(T1,T2)) -> T1
r317: element(int(s(s(N1))),tuple(T1,T2)) -> element(int(s(N1)),T2)
r318: record_new(lock()) -> tuple(mcrlrecord(),tuple(lock(),tuple(undefined(),tuple(nil(),tuplenil(nil())))))
r319: record_extract(tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2))))),lock(),resource()) -> tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2)))))
r320: record_update(tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2))))),lock(),pending(),NewF) -> tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(NewF)))))
r321: record_updates(Record,Name,nil()) -> Record
r322: record_updates(Record,Name,cons(tuple(Field,tuplenil(NewF)),Fields)) -> record_updates(record_update(Record,Name,Field,NewF),Name,Fields)
r323: locker2_map_promote_pending(nil(),Pending) -> nil()
r324: locker2_map_promote_pending(cons(Lock,Locks),Pending) -> cons(locker2_promote_pending(Lock,Pending),locker2_map_promote_pending(Locks,Pending))
r325: locker2_map_claim_lock(nil(),Resources,Client) -> nil()
r326: locker2_map_claim_lock(cons(Lock,Locks),Resources,Client) -> cons(locker2_claim_lock(Lock,Resources,Client),locker2_map_claim_lock(Locks,Resources,Client))
r327: locker2_map_add_pending(nil(),Resources,Client) -> nil()
r328: locker2_promote_pending(Lock,Client) -> case0(Client,Lock,record_extract(Lock,lock(),pending()))
r329: case0(Client,Lock,cons(Client,Pendings)) -> record_updates(Lock,lock(),cons(tuple(excl(),tuplenil(Client)),cons(tuple(pending(),tuplenil(Pendings)),nil())))
r330: case0(Client,Lock,MCRLFree0) -> Lock
r331: locker2_remove_pending(Lock,Client) -> record_updates(Lock,lock(),cons(tuple(pending(),tuplenil(subtract(record_extract(Lock,lock(),pending()),cons(Client,nil())))),nil()))
r332: locker2_add_pending(Lock,Resources,Client) -> case1(Client,Resources,Lock,member(record_extract(Lock,lock(),resource()),Resources))
r333: case1(Client,Resources,Lock,true()) -> record_updates(Lock,lock(),cons(tuple(pending(),tuplenil(append(record_extract(Lock,lock(),pending()),cons(Client,nil())))),nil()))
r334: case1(Client,Resources,Lock,false()) -> Lock
r335: locker2_release_lock(Lock,Client) -> case2(Client,Lock,gen_modtageq(Client,record_extract(Lock,lock(),excl())))
r336: case2(Client,Lock,true()) -> record_updates(Lock,lock(),cons(tuple(excllock(),excl()),nil()))
r337: case4(Client,Lock,MCRLFree1) -> false()
r338: locker2_obtainables(nil(),Client) -> true()
r339: locker2_obtainables(cons(Lock,Locks),Client) -> case5(Client,Locks,Lock,member(Client,record_extract(Lock,lock(),pending())))
r340: case5(Client,Locks,Lock,true()) -> andt(locker2_obtainable(Lock,Client),locker2_obtainables(Locks,Client))
r341: case5(Client,Locks,Lock,false()) -> locker2_obtainables(Locks,Client)
r342: locker2_check_available(Resource,nil()) -> false()
r343: locker2_check_available(Resource,cons(Lock,Locks)) -> case6(Locks,Lock,Resource,equal(Resource,record_extract(Lock,lock(),resource())))
r344: case6(Locks,Lock,Resource,true()) -> andt(equal(record_extract(Lock,lock(),excl()),nil()),equal(record_extract(Lock,lock(),pending()),nil()))
r345: case6(Locks,Lock,Resource,false()) -> locker2_check_available(Resource,Locks)
r346: locker2_check_availables(nil(),Locks) -> true()
r347: locker2_check_availables(cons(Resource,Resources),Locks) -> andt(locker2_check_available(Resource,Locks),locker2_check_availables(Resources,Locks))
r348: locker2_adduniq(nil(),List) -> List
r349: append(cons(Head,Tail),List) -> cons(Head,append(Tail,List))
r350: subtract(List,nil()) -> List
r351: subtract(List,cons(Head,Tail)) -> subtract(delete(Head,List),Tail)
r352: delete(E,nil()) -> nil()
r353: delete(E,cons(Head,Tail)) -> case8(Tail,Head,E,equal(E,Head))
r354: case8(Tail,Head,E,true()) -> Tail
r355: case8(Tail,Head,E,false()) -> cons(Head,delete(E,Tail))
r356: gen_tag(Pid) -> tuple(Pid,tuplenil(tag()))
r357: gen_modtageq(Client1,Client2) -> equal(Client1,Client2)
r358: member(E,nil()) -> false()
r359: member(E,cons(Head,Tail)) -> case9(Tail,Head,E,equal(E,Head))
r360: case9(Tail,Head,E,true()) -> true()
r361: case9(Tail,Head,E,false()) -> member(E,Tail)
r362: eqs(empty(),empty()) -> T()
r363: eqs(empty(),stack(E2,S2)) -> F()
r364: eqs(stack(E1,S1),empty()) -> F()
r365: eqs(stack(E1,S1),stack(E2,S2)) -> and(eqt(E1,E2),eqs(S1,S2))
r366: pushs(E1,S1) -> stack(E1,S1)
r367: pops(stack(E1,S1)) -> S1
r368: tops(stack(E1,S1)) -> E1
r369: istops(E1,empty()) -> F()
r370: istops(E1,stack(E2,S1)) -> eqt(E1,E2)
r371: eqc(nocalls(),nocalls()) -> T()
r372: eqc(nocalls(),calls(E2,S2,CS2)) -> F()
r373: eqc(calls(E1,S1,CS1),nocalls()) -> F()
r374: eqc(calls(E1,S1,CS1),calls(E2,S2,CS2)) -> and(eqt(E1,E2),and(eqs(S1,S2),eqc(CS1,CS2)))
r375: push(E1,E2,nocalls()) -> calls(E1,stack(E2,empty()),nocalls())
r376: push(E1,E2,calls(E3,S1,CS1)) -> push1(E1,E2,E3,S1,CS1,eqt(E1,E3))
r377: push1(E1,E2,E3,S1,CS1,T()) -> calls(E3,pushs(E2,S1),CS1)

The set of usable rules consists of

  (no rules)

Take the monotone reduction pair:

  matrix interpretations:
  
    carrier: N^1
    order: standard order
    interpretations:
      eqt#_A(x1,x2) = x1 + x2
      pid_A(x1) = x1 + 1
      tuplenil_A(x1) = x1 + 1
      tuple_A(x1,x2) = x1 + x2 + 1
      cons_A(x1,x2) = x1 + x2 + 1

The next rules are strictly ordered:

  p1, p2, p3, p4, p5, p6
  r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41, r42, r43, r44, r45, r46, r47, r48, r49, r50, r51, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125, r126, r127, r128, r129, r130, r131, r132, r133, r134, r135, r136, r137, r138, r139, r140, r141, r142, r143, r144, r145, r146, r147, r148, r149, r150, r151, r152, r153, r154, r155, r156, r157, r158, r159, r160, r161, r162, r163, r164, r165, r166, r167, r168, r169, r170, r171, r172, r173, r174, r175, r176, r177, r178, r179, r180, r181, r182, r183, r184, r185, r186, r187, r188, r189, r190, r191, r192, r193, r194, r195, r196, r197, r198, r199, r200, r201, r202, r203, r204, r205, r206, r207, r208, r209, r210, r211, r212, r213, r214, r215, r216, r217, r218, r219, r220, r221, r222, r223, r224, r225, r226, r227, r228, r229, r230, r231, r232, r233, r234, r235, r236, r237, r238, r239, r240, r241, r242, r243, r244, r245, r246, r247, r248, r249, r250, r251, r252, r253, r254, r255, r256, r257, r258, r259, r260, r261, r262, r263, r264, r265, r266, r267, r268, r269, r270, r271, r272, r273, r274, r275, r276, r277, r278, r279, r280, r281, r282, r283, r284, r285, r286, r287, r288, r289, r290, r291, r292, r293, r294, r295, r296, r297, r298, r299, r300, r301, r302, r303, r304, r305, r306, r307, r308, r309, r310, r311, r312, r313, r314, r315, r316, r317, r318, r319, r320, r321, r322, r323, r324, r325, r326, r327, r328, r329, r330, r331, r332, r333, r334, r335, r336, r337, r338, r339, r340, r341, r342, r343, r344, r345, r346, r347, r348, r349, r350, r351, r352, r353, r354, r355, r356, r357, r358, r359, r360, r361, r362, r363, r364, r365, r366, r367, r368, r369, r370, r371, r372, r373, r374, r375, r376, r377

We remove them from the problem.  Then no dependency pair remains.

-- Reduction pair.

Consider the dependency pair problem (P, R), where P consists of

p1: element#(int(s(s(N1))),tuple(T1,T2)) -> element#(int(s(N1)),T2)

and R consists of:

r1: or(T(),T()) -> T()
r2: or(F(),T()) -> T()
r3: or(T(),F()) -> T()
r4: or(F(),F()) -> F()
r5: and(T(),B) -> B
r6: and(B,T()) -> B
r7: and(F(),B) -> F()
r8: and(B,F()) -> F()
r9: imp(T(),B) -> B
r10: imp(F(),B) -> T()
r11: not(T()) -> F()
r12: not(F()) -> T()
r13: if(T(),B1,B2) -> B1
r14: if(F(),B1,B2) -> B2
r15: eq(T(),T()) -> T()
r16: eq(F(),F()) -> T()
r17: eq(T(),F()) -> F()
r18: eq(F(),T()) -> F()
r19: eqt(nil(),undefined()) -> F()
r20: eqt(nil(),pid(N2)) -> F()
r21: eqt(nil(),int(N2)) -> F()
r22: eqt(nil(),cons(H2,T2)) -> F()
r23: eqt(nil(),tuple(H2,T2)) -> F()
r24: eqt(nil(),tuplenil(H2)) -> F()
r25: eqt(a(),nil()) -> F()
r26: eqt(a(),a()) -> T()
r27: eqt(a(),excl()) -> F()
r28: eqt(a(),false()) -> F()
r29: eqt(a(),lock()) -> F()
r30: eqt(a(),locker()) -> F()
r31: eqt(a(),mcrlrecord()) -> F()
r32: eqt(a(),ok()) -> F()
r33: eqt(a(),pending()) -> F()
r34: eqt(a(),release()) -> F()
r35: eqt(a(),request()) -> F()
r36: eqt(a(),resource()) -> F()
r37: eqt(a(),tag()) -> F()
r38: eqt(a(),true()) -> F()
r39: eqt(a(),undefined()) -> F()
r40: eqt(a(),pid(N2)) -> F()
r41: eqt(a(),int(N2)) -> F()
r42: eqt(a(),cons(H2,T2)) -> F()
r43: eqt(a(),tuple(H2,T2)) -> F()
r44: eqt(a(),tuplenil(H2)) -> F()
r45: eqt(excl(),nil()) -> F()
r46: eqt(excl(),a()) -> F()
r47: eqt(excl(),excl()) -> T()
r48: eqt(excl(),false()) -> F()
r49: eqt(excl(),lock()) -> F()
r50: eqt(excl(),locker()) -> F()
r51: eqt(excl(),mcrlrecord()) -> F()
r52: eqt(excl(),ok()) -> F()
r53: eqt(excl(),pending()) -> F()
r54: eqt(excl(),release()) -> F()
r55: eqt(excl(),request()) -> F()
r56: eqt(excl(),resource()) -> F()
r57: eqt(excl(),tag()) -> F()
r58: eqt(excl(),true()) -> F()
r59: eqt(excl(),undefined()) -> F()
r60: eqt(excl(),pid(N2)) -> F()
r61: eqt(excl(),eqt(false(),int(N2))) -> F()
r62: eqt(false(),cons(H2,T2)) -> F()
r63: eqt(false(),tuple(H2,T2)) -> F()
r64: eqt(false(),tuplenil(H2)) -> F()
r65: eqt(lock(),nil()) -> F()
r66: eqt(lock(),a()) -> F()
r67: eqt(lock(),excl()) -> F()
r68: eqt(lock(),false()) -> F()
r69: eqt(lock(),lock()) -> T()
r70: eqt(lock(),locker()) -> F()
r71: eqt(lock(),mcrlrecord()) -> F()
r72: eqt(lock(),ok()) -> F()
r73: eqt(lock(),pending()) -> F()
r74: eqt(lock(),release()) -> F()
r75: eqt(lock(),request()) -> F()
r76: eqt(lock(),resource()) -> F()
r77: eqt(lock(),tag()) -> F()
r78: eqt(lock(),true()) -> F()
r79: eqt(lock(),undefined()) -> F()
r80: eqt(lock(),pid(N2)) -> F()
r81: eqt(lock(),int(N2)) -> F()
r82: eqt(lock(),cons(H2,T2)) -> F()
r83: eqt(lock(),tuple(H2,T2)) -> F()
r84: eqt(lock(),tuplenil(H2)) -> F()
r85: eqt(locker(),nil()) -> F()
r86: eqt(locker(),a()) -> F()
r87: eqt(locker(),excl()) -> F()
r88: eqt(locker(),false()) -> F()
r89: eqt(locker(),lock()) -> F()
r90: eqt(locker(),locker()) -> T()
r91: eqt(locker(),mcrlrecord()) -> F()
r92: eqt(locker(),ok()) -> F()
r93: eqt(locker(),pending()) -> F()
r94: eqt(locker(),release()) -> F()
r95: eqt(locker(),request()) -> F()
r96: eqt(locker(),resource()) -> F()
r97: eqt(locker(),tag()) -> F()
r98: eqt(locker(),true()) -> F()
r99: eqt(locker(),undefined()) -> F()
r100: eqt(locker(),pid(N2)) -> F()
r101: eqt(locker(),int(N2)) -> F()
r102: eqt(locker(),cons(H2,T2)) -> F()
r103: eqt(locker(),tuple(H2,T2)) -> F()
r104: eqt(locker(),tuplenil(H2)) -> F()
r105: eqt(mcrlrecord(),nil()) -> F()
r106: eqt(mcrlrecord(),a()) -> F()
r107: eqt(mcrlrecord(),excl()) -> F()
r108: eqt(mcrlrecord(),false()) -> F()
r109: eqt(mcrlrecord(),lock()) -> F()
r110: eqt(mcrlrecord(),locker()) -> F()
r111: eqt(mcrlrecord(),mcrlrecord()) -> T()
r112: eqt(mcrlrecord(),ok()) -> F()
r113: eqt(mcrlrecord(),pending()) -> F()
r114: eqt(mcrlrecord(),release()) -> F()
r115: eqt(mcrlrecord(),request()) -> F()
r116: eqt(mcrlrecord(),resource()) -> F()
r117: eqt(ok(),resource()) -> F()
r118: eqt(ok(),tag()) -> F()
r119: eqt(ok(),true()) -> F()
r120: eqt(ok(),undefined()) -> F()
r121: eqt(ok(),pid(N2)) -> F()
r122: eqt(ok(),int(N2)) -> F()
r123: eqt(ok(),cons(H2,T2)) -> F()
r124: eqt(ok(),tuple(H2,T2)) -> F()
r125: eqt(ok(),tuplenil(H2)) -> F()
r126: eqt(pending(),nil()) -> F()
r127: eqt(pending(),a()) -> F()
r128: eqt(pending(),excl()) -> F()
r129: eqt(pending(),false()) -> F()
r130: eqt(pending(),lock()) -> F()
r131: eqt(pending(),locker()) -> F()
r132: eqt(pending(),mcrlrecord()) -> F()
r133: eqt(pending(),ok()) -> F()
r134: eqt(pending(),pending()) -> T()
r135: eqt(pending(),release()) -> F()
r136: eqt(pending(),request()) -> F()
r137: eqt(pending(),resource()) -> F()
r138: eqt(pending(),tag()) -> F()
r139: eqt(pending(),true()) -> F()
r140: eqt(pending(),undefined()) -> F()
r141: eqt(pending(),pid(N2)) -> F()
r142: eqt(pending(),int(N2)) -> F()
r143: eqt(pending(),cons(H2,T2)) -> F()
r144: eqt(pending(),tuple(H2,T2)) -> F()
r145: eqt(pending(),tuplenil(H2)) -> F()
r146: eqt(release(),nil()) -> F()
r147: eqt(release(),a()) -> F()
r148: eqt(release(),excl()) -> F()
r149: eqt(release(),false()) -> F()
r150: eqt(release(),lock()) -> F()
r151: eqt(release(),locker()) -> F()
r152: eqt(release(),mcrlrecord()) -> F()
r153: eqt(release(),ok()) -> F()
r154: eqt(request(),mcrlrecord()) -> F()
r155: eqt(request(),ok()) -> F()
r156: eqt(request(),pending()) -> F()
r157: eqt(request(),release()) -> F()
r158: eqt(request(),request()) -> T()
r159: eqt(request(),resource()) -> F()
r160: eqt(request(),tag()) -> F()
r161: eqt(request(),true()) -> F()
r162: eqt(request(),undefined()) -> F()
r163: eqt(request(),pid(N2)) -> F()
r164: eqt(request(),int(N2)) -> F()
r165: eqt(request(),cons(H2,T2)) -> F()
r166: eqt(request(),tuple(H2,T2)) -> F()
r167: eqt(request(),tuplenil(H2)) -> F()
r168: eqt(resource(),nil()) -> F()
r169: eqt(resource(),a()) -> F()
r170: eqt(resource(),excl()) -> F()
r171: eqt(resource(),false()) -> F()
r172: eqt(resource(),lock()) -> F()
r173: eqt(resource(),locker()) -> F()
r174: eqt(resource(),mcrlrecord()) -> F()
r175: eqt(resource(),ok()) -> F()
r176: eqt(resource(),pending()) -> F()
r177: eqt(resource(),release()) -> F()
r178: eqt(resource(),request()) -> F()
r179: eqt(resource(),resource()) -> T()
r180: eqt(resource(),tag()) -> F()
r181: eqt(resource(),true()) -> F()
r182: eqt(resource(),undefined()) -> F()
r183: eqt(resource(),pid(N2)) -> F()
r184: eqt(resource(),int(N2)) -> F()
r185: eqt(resource(),cons(H2,T2)) -> F()
r186: eqt(resource(),tuple(H2,T2)) -> F()
r187: eqt(resource(),tuplenil(H2)) -> F()
r188: eqt(tag(),nil()) -> F()
r189: eqt(tag(),a()) -> F()
r190: eqt(tag(),excl()) -> F()
r191: eqt(tag(),false()) -> F()
r192: eqt(tag(),lock()) -> F()
r193: eqt(tag(),locker()) -> F()
r194: eqt(tag(),mcrlrecord()) -> F()
r195: eqt(tag(),ok()) -> F()
r196: eqt(tag(),pending()) -> F()
r197: eqt(tag(),release()) -> F()
r198: eqt(tag(),request()) -> F()
r199: eqt(tag(),resource()) -> F()
r200: eqt(tag(),tag()) -> T()
r201: eqt(tag(),true()) -> F()
r202: eqt(tag(),undefined()) -> F()
r203: eqt(tag(),pid(N2)) -> F()
r204: eqt(tag(),int(N2)) -> F()
r205: eqt(tag(),cons(H2,T2)) -> F()
r206: eqt(tag(),tuple(H2,T2)) -> F()
r207: eqt(tag(),tuplenil(H2)) -> F()
r208: eqt(true(),nil()) -> F()
r209: eqt(true(),a()) -> F()
r210: eqt(true(),excl()) -> F()
r211: eqt(true(),false()) -> F()
r212: eqt(true(),lock()) -> F()
r213: eqt(true(),locker()) -> F()
r214: eqt(true(),mcrlrecord()) -> F()
r215: eqt(true(),ok()) -> F()
r216: eqt(true(),pending()) -> F()
r217: eqt(true(),release()) -> F()
r218: eqt(true(),request()) -> F()
r219: eqt(true(),resource()) -> F()
r220: eqt(true(),tag()) -> F()
r221: eqt(true(),true()) -> T()
r222: eqt(true(),undefined()) -> F()
r223: eqt(true(),pid(N2)) -> F()
r224: eqt(true(),int(N2)) -> F()
r225: eqt(true(),cons(H2,T2)) -> F()
r226: eqt(true(),tuple(H2,T2)) -> F()
r227: eqt(true(),tuplenil(H2)) -> F()
r228: eqt(undefined(),nil()) -> F()
r229: eqt(undefined(),a()) -> F()
r230: eqt(undefined(),tuplenil(H2)) -> F()
r231: eqt(pid(N1),nil()) -> F()
r232: eqt(pid(N1),a()) -> F()
r233: eqt(pid(N1),excl()) -> F()
r234: eqt(pid(N1),false()) -> F()
r235: eqt(pid(N1),lock()) -> F()
r236: eqt(pid(N1),locker()) -> F()
r237: eqt(pid(N1),mcrlrecord()) -> F()
r238: eqt(pid(N1),ok()) -> F()
r239: eqt(pid(N1),pending()) -> F()
r240: eqt(pid(N1),release()) -> F()
r241: eqt(pid(N1),request()) -> F()
r242: eqt(pid(N1),resource()) -> F()
r243: eqt(pid(N1),tag()) -> F()
r244: eqt(pid(N1),true()) -> F()
r245: eqt(pid(N1),undefined()) -> F()
r246: eqt(pid(N1),pid(N2)) -> eqt(N1,N2)
r247: eqt(pid(N1),int(N2)) -> F()
r248: eqt(pid(N1),cons(H2,T2)) -> F()
r249: eqt(pid(N1),tuple(H2,T2)) -> F()
r250: eqt(pid(N1),tuplenil(H2)) -> F()
r251: eqt(int(N1),nil()) -> F()
r252: eqt(int(N1),a()) -> F()
r253: eqt(int(N1),excl()) -> F()
r254: eqt(int(N1),false()) -> F()
r255: eqt(int(N1),lock()) -> F()
r256: eqt(int(N1),locker()) -> F()
r257: eqt(int(N1),mcrlrecord()) -> F()
r258: eqt(int(N1),ok()) -> F()
r259: eqt(int(N1),pending()) -> F()
r260: eqt(int(N1),release()) -> F()
r261: eqt(int(N1),request()) -> F()
r262: eqt(int(N1),resource()) -> F()
r263: eqt(int(N1),tag()) -> F()
r264: eqt(int(N1),true()) -> F()
r265: eqt(int(N1),undefined()) -> F()
r266: eqt(cons(H1,T1),resource()) -> F()
r267: eqt(cons(H1,T1),tag()) -> F()
r268: eqt(cons(H1,T1),true()) -> F()
r269: eqt(cons(H1,T1),undefined()) -> F()
r270: eqt(cons(H1,T1),pid(N2)) -> F()
r271: eqt(cons(H1,T1),int(N2)) -> F()
r272: eqt(cons(H1,T1),cons(H2,T2)) -> and(eqt(H1,H2),eqt(T1,T2))
r273: eqt(cons(H1,T1),tuple(H2,T2)) -> F()
r274: eqt(cons(H1,T1),tuplenil(H2)) -> F()
r275: eqt(tuple(H1,T1),nil()) -> F()
r276: eqt(tuple(H1,T1),a()) -> F()
r277: eqt(tuple(H1,T1),excl()) -> F()
r278: eqt(tuple(H1,T1),false()) -> F()
r279: eqt(tuple(H1,T1),lock()) -> F()
r280: eqt(tuple(H1,T1),locker()) -> F()
r281: eqt(tuple(H1,T1),mcrlrecord()) -> F()
r282: eqt(tuple(H1,T1),ok()) -> F()
r283: eqt(tuple(H1,T1),pending()) -> F()
r284: eqt(tuple(H1,T1),release()) -> F()
r285: eqt(tuple(H1,T1),request()) -> F()
r286: eqt(tuple(H1,T1),resource()) -> F()
r287: eqt(tuple(H1,T1),tag()) -> F()
r288: eqt(tuple(H1,T1),true()) -> F()
r289: eqt(tuple(H1,T1),undefined()) -> F()
r290: eqt(tuple(H1,T1),pid(N2)) -> F()
r291: eqt(tuple(H1,T1),int(N2)) -> F()
r292: eqt(tuple(H1,T1),cons(H2,T2)) -> F()
r293: eqt(tuple(H1,T1),tuple(H2,T2)) -> and(eqt(H1,H2),eqt(T1,T2))
r294: eqt(tuple(H1,T1),tuplenil(H2)) -> F()
r295: eqt(tuplenil(H1),nil()) -> F()
r296: eqt(tuplenil(H1),a()) -> F()
r297: eqt(tuplenil(H1),excl()) -> F()
r298: eqt(tuplenil(H1),false()) -> F()
r299: eqt(tuplenil(H1),lock()) -> F()
r300: eqt(tuplenil(H1),locker()) -> F()
r301: eqt(tuplenil(H1),mcrlrecord()) -> F()
r302: eqt(tuplenil(H1),ok()) -> F()
r303: eqt(tuplenil(H1),pending()) -> F()
r304: eqt(tuplenil(H1),release()) -> F()
r305: eqt(tuplenil(H1),request()) -> F()
r306: eqt(tuplenil(H1),resource()) -> F()
r307: eqt(tuplenil(H1),tag()) -> F()
r308: eqt(tuplenil(H1),true()) -> F()
r309: eqt(tuplenil(H1),undefined()) -> F()
r310: eqt(tuplenil(H1),pid(N2)) -> F()
r311: eqt(tuplenil(H1),int(N2)) -> F()
r312: eqt(tuplenil(H1),cons(H2,T2)) -> F()
r313: eqt(tuplenil(H1),tuple(H2,T2)) -> F()
r314: eqt(tuplenil(H1),tuplenil(H2)) -> eqt(H1,H2)
r315: element(int(s(|0|())),tuplenil(T1)) -> T1
r316: element(int(s(|0|())),tuple(T1,T2)) -> T1
r317: element(int(s(s(N1))),tuple(T1,T2)) -> element(int(s(N1)),T2)
r318: record_new(lock()) -> tuple(mcrlrecord(),tuple(lock(),tuple(undefined(),tuple(nil(),tuplenil(nil())))))
r319: record_extract(tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2))))),lock(),resource()) -> tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2)))))
r320: record_update(tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2))))),lock(),pending(),NewF) -> tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(NewF)))))
r321: record_updates(Record,Name,nil()) -> Record
r322: record_updates(Record,Name,cons(tuple(Field,tuplenil(NewF)),Fields)) -> record_updates(record_update(Record,Name,Field,NewF),Name,Fields)
r323: locker2_map_promote_pending(nil(),Pending) -> nil()
r324: locker2_map_promote_pending(cons(Lock,Locks),Pending) -> cons(locker2_promote_pending(Lock,Pending),locker2_map_promote_pending(Locks,Pending))
r325: locker2_map_claim_lock(nil(),Resources,Client) -> nil()
r326: locker2_map_claim_lock(cons(Lock,Locks),Resources,Client) -> cons(locker2_claim_lock(Lock,Resources,Client),locker2_map_claim_lock(Locks,Resources,Client))
r327: locker2_map_add_pending(nil(),Resources,Client) -> nil()
r328: locker2_promote_pending(Lock,Client) -> case0(Client,Lock,record_extract(Lock,lock(),pending()))
r329: case0(Client,Lock,cons(Client,Pendings)) -> record_updates(Lock,lock(),cons(tuple(excl(),tuplenil(Client)),cons(tuple(pending(),tuplenil(Pendings)),nil())))
r330: case0(Client,Lock,MCRLFree0) -> Lock
r331: locker2_remove_pending(Lock,Client) -> record_updates(Lock,lock(),cons(tuple(pending(),tuplenil(subtract(record_extract(Lock,lock(),pending()),cons(Client,nil())))),nil()))
r332: locker2_add_pending(Lock,Resources,Client) -> case1(Client,Resources,Lock,member(record_extract(Lock,lock(),resource()),Resources))
r333: case1(Client,Resources,Lock,true()) -> record_updates(Lock,lock(),cons(tuple(pending(),tuplenil(append(record_extract(Lock,lock(),pending()),cons(Client,nil())))),nil()))
r334: case1(Client,Resources,Lock,false()) -> Lock
r335: locker2_release_lock(Lock,Client) -> case2(Client,Lock,gen_modtageq(Client,record_extract(Lock,lock(),excl())))
r336: case2(Client,Lock,true()) -> record_updates(Lock,lock(),cons(tuple(excllock(),excl()),nil()))
r337: case4(Client,Lock,MCRLFree1) -> false()
r338: locker2_obtainables(nil(),Client) -> true()
r339: locker2_obtainables(cons(Lock,Locks),Client) -> case5(Client,Locks,Lock,member(Client,record_extract(Lock,lock(),pending())))
r340: case5(Client,Locks,Lock,true()) -> andt(locker2_obtainable(Lock,Client),locker2_obtainables(Locks,Client))
r341: case5(Client,Locks,Lock,false()) -> locker2_obtainables(Locks,Client)
r342: locker2_check_available(Resource,nil()) -> false()
r343: locker2_check_available(Resource,cons(Lock,Locks)) -> case6(Locks,Lock,Resource,equal(Resource,record_extract(Lock,lock(),resource())))
r344: case6(Locks,Lock,Resource,true()) -> andt(equal(record_extract(Lock,lock(),excl()),nil()),equal(record_extract(Lock,lock(),pending()),nil()))
r345: case6(Locks,Lock,Resource,false()) -> locker2_check_available(Resource,Locks)
r346: locker2_check_availables(nil(),Locks) -> true()
r347: locker2_check_availables(cons(Resource,Resources),Locks) -> andt(locker2_check_available(Resource,Locks),locker2_check_availables(Resources,Locks))
r348: locker2_adduniq(nil(),List) -> List
r349: append(cons(Head,Tail),List) -> cons(Head,append(Tail,List))
r350: subtract(List,nil()) -> List
r351: subtract(List,cons(Head,Tail)) -> subtract(delete(Head,List),Tail)
r352: delete(E,nil()) -> nil()
r353: delete(E,cons(Head,Tail)) -> case8(Tail,Head,E,equal(E,Head))
r354: case8(Tail,Head,E,true()) -> Tail
r355: case8(Tail,Head,E,false()) -> cons(Head,delete(E,Tail))
r356: gen_tag(Pid) -> tuple(Pid,tuplenil(tag()))
r357: gen_modtageq(Client1,Client2) -> equal(Client1,Client2)
r358: member(E,nil()) -> false()
r359: member(E,cons(Head,Tail)) -> case9(Tail,Head,E,equal(E,Head))
r360: case9(Tail,Head,E,true()) -> true()
r361: case9(Tail,Head,E,false()) -> member(E,Tail)
r362: eqs(empty(),empty()) -> T()
r363: eqs(empty(),stack(E2,S2)) -> F()
r364: eqs(stack(E1,S1),empty()) -> F()
r365: eqs(stack(E1,S1),stack(E2,S2)) -> and(eqt(E1,E2),eqs(S1,S2))
r366: pushs(E1,S1) -> stack(E1,S1)
r367: pops(stack(E1,S1)) -> S1
r368: tops(stack(E1,S1)) -> E1
r369: istops(E1,empty()) -> F()
r370: istops(E1,stack(E2,S1)) -> eqt(E1,E2)
r371: eqc(nocalls(),nocalls()) -> T()
r372: eqc(nocalls(),calls(E2,S2,CS2)) -> F()
r373: eqc(calls(E1,S1,CS1),nocalls()) -> F()
r374: eqc(calls(E1,S1,CS1),calls(E2,S2,CS2)) -> and(eqt(E1,E2),and(eqs(S1,S2),eqc(CS1,CS2)))
r375: push(E1,E2,nocalls()) -> calls(E1,stack(E2,empty()),nocalls())
r376: push(E1,E2,calls(E3,S1,CS1)) -> push1(E1,E2,E3,S1,CS1,eqt(E1,E3))
r377: push1(E1,E2,E3,S1,CS1,T()) -> calls(E3,pushs(E2,S1),CS1)

The set of usable rules consists of

  (no rules)

Take the reduction pair:

  matrix interpretations:
  
    carrier: N^1
    order: standard order
    interpretations:
      element#_A(x1,x2) = x1
      int_A(x1) = x1
      s_A(x1) = x1 + 1
      tuple_A(x1,x2) = x2

The next rules are strictly ordered:

  p1

We remove them from the problem.  Then no dependency pair remains.

-- Reduction pair.

Consider the dependency pair problem (P, R), where P consists of

p1: record_updates#(Record,Name,cons(tuple(Field,tuplenil(NewF)),Fields)) -> record_updates#(record_update(Record,Name,Field,NewF),Name,Fields)

and R consists of:

r1: or(T(),T()) -> T()
r2: or(F(),T()) -> T()
r3: or(T(),F()) -> T()
r4: or(F(),F()) -> F()
r5: and(T(),B) -> B
r6: and(B,T()) -> B
r7: and(F(),B) -> F()
r8: and(B,F()) -> F()
r9: imp(T(),B) -> B
r10: imp(F(),B) -> T()
r11: not(T()) -> F()
r12: not(F()) -> T()
r13: if(T(),B1,B2) -> B1
r14: if(F(),B1,B2) -> B2
r15: eq(T(),T()) -> T()
r16: eq(F(),F()) -> T()
r17: eq(T(),F()) -> F()
r18: eq(F(),T()) -> F()
r19: eqt(nil(),undefined()) -> F()
r20: eqt(nil(),pid(N2)) -> F()
r21: eqt(nil(),int(N2)) -> F()
r22: eqt(nil(),cons(H2,T2)) -> F()
r23: eqt(nil(),tuple(H2,T2)) -> F()
r24: eqt(nil(),tuplenil(H2)) -> F()
r25: eqt(a(),nil()) -> F()
r26: eqt(a(),a()) -> T()
r27: eqt(a(),excl()) -> F()
r28: eqt(a(),false()) -> F()
r29: eqt(a(),lock()) -> F()
r30: eqt(a(),locker()) -> F()
r31: eqt(a(),mcrlrecord()) -> F()
r32: eqt(a(),ok()) -> F()
r33: eqt(a(),pending()) -> F()
r34: eqt(a(),release()) -> F()
r35: eqt(a(),request()) -> F()
r36: eqt(a(),resource()) -> F()
r37: eqt(a(),tag()) -> F()
r38: eqt(a(),true()) -> F()
r39: eqt(a(),undefined()) -> F()
r40: eqt(a(),pid(N2)) -> F()
r41: eqt(a(),int(N2)) -> F()
r42: eqt(a(),cons(H2,T2)) -> F()
r43: eqt(a(),tuple(H2,T2)) -> F()
r44: eqt(a(),tuplenil(H2)) -> F()
r45: eqt(excl(),nil()) -> F()
r46: eqt(excl(),a()) -> F()
r47: eqt(excl(),excl()) -> T()
r48: eqt(excl(),false()) -> F()
r49: eqt(excl(),lock()) -> F()
r50: eqt(excl(),locker()) -> F()
r51: eqt(excl(),mcrlrecord()) -> F()
r52: eqt(excl(),ok()) -> F()
r53: eqt(excl(),pending()) -> F()
r54: eqt(excl(),release()) -> F()
r55: eqt(excl(),request()) -> F()
r56: eqt(excl(),resource()) -> F()
r57: eqt(excl(),tag()) -> F()
r58: eqt(excl(),true()) -> F()
r59: eqt(excl(),undefined()) -> F()
r60: eqt(excl(),pid(N2)) -> F()
r61: eqt(excl(),eqt(false(),int(N2))) -> F()
r62: eqt(false(),cons(H2,T2)) -> F()
r63: eqt(false(),tuple(H2,T2)) -> F()
r64: eqt(false(),tuplenil(H2)) -> F()
r65: eqt(lock(),nil()) -> F()
r66: eqt(lock(),a()) -> F()
r67: eqt(lock(),excl()) -> F()
r68: eqt(lock(),false()) -> F()
r69: eqt(lock(),lock()) -> T()
r70: eqt(lock(),locker()) -> F()
r71: eqt(lock(),mcrlrecord()) -> F()
r72: eqt(lock(),ok()) -> F()
r73: eqt(lock(),pending()) -> F()
r74: eqt(lock(),release()) -> F()
r75: eqt(lock(),request()) -> F()
r76: eqt(lock(),resource()) -> F()
r77: eqt(lock(),tag()) -> F()
r78: eqt(lock(),true()) -> F()
r79: eqt(lock(),undefined()) -> F()
r80: eqt(lock(),pid(N2)) -> F()
r81: eqt(lock(),int(N2)) -> F()
r82: eqt(lock(),cons(H2,T2)) -> F()
r83: eqt(lock(),tuple(H2,T2)) -> F()
r84: eqt(lock(),tuplenil(H2)) -> F()
r85: eqt(locker(),nil()) -> F()
r86: eqt(locker(),a()) -> F()
r87: eqt(locker(),excl()) -> F()
r88: eqt(locker(),false()) -> F()
r89: eqt(locker(),lock()) -> F()
r90: eqt(locker(),locker()) -> T()
r91: eqt(locker(),mcrlrecord()) -> F()
r92: eqt(locker(),ok()) -> F()
r93: eqt(locker(),pending()) -> F()
r94: eqt(locker(),release()) -> F()
r95: eqt(locker(),request()) -> F()
r96: eqt(locker(),resource()) -> F()
r97: eqt(locker(),tag()) -> F()
r98: eqt(locker(),true()) -> F()
r99: eqt(locker(),undefined()) -> F()
r100: eqt(locker(),pid(N2)) -> F()
r101: eqt(locker(),int(N2)) -> F()
r102: eqt(locker(),cons(H2,T2)) -> F()
r103: eqt(locker(),tuple(H2,T2)) -> F()
r104: eqt(locker(),tuplenil(H2)) -> F()
r105: eqt(mcrlrecord(),nil()) -> F()
r106: eqt(mcrlrecord(),a()) -> F()
r107: eqt(mcrlrecord(),excl()) -> F()
r108: eqt(mcrlrecord(),false()) -> F()
r109: eqt(mcrlrecord(),lock()) -> F()
r110: eqt(mcrlrecord(),locker()) -> F()
r111: eqt(mcrlrecord(),mcrlrecord()) -> T()
r112: eqt(mcrlrecord(),ok()) -> F()
r113: eqt(mcrlrecord(),pending()) -> F()
r114: eqt(mcrlrecord(),release()) -> F()
r115: eqt(mcrlrecord(),request()) -> F()
r116: eqt(mcrlrecord(),resource()) -> F()
r117: eqt(ok(),resource()) -> F()
r118: eqt(ok(),tag()) -> F()
r119: eqt(ok(),true()) -> F()
r120: eqt(ok(),undefined()) -> F()
r121: eqt(ok(),pid(N2)) -> F()
r122: eqt(ok(),int(N2)) -> F()
r123: eqt(ok(),cons(H2,T2)) -> F()
r124: eqt(ok(),tuple(H2,T2)) -> F()
r125: eqt(ok(),tuplenil(H2)) -> F()
r126: eqt(pending(),nil()) -> F()
r127: eqt(pending(),a()) -> F()
r128: eqt(pending(),excl()) -> F()
r129: eqt(pending(),false()) -> F()
r130: eqt(pending(),lock()) -> F()
r131: eqt(pending(),locker()) -> F()
r132: eqt(pending(),mcrlrecord()) -> F()
r133: eqt(pending(),ok()) -> F()
r134: eqt(pending(),pending()) -> T()
r135: eqt(pending(),release()) -> F()
r136: eqt(pending(),request()) -> F()
r137: eqt(pending(),resource()) -> F()
r138: eqt(pending(),tag()) -> F()
r139: eqt(pending(),true()) -> F()
r140: eqt(pending(),undefined()) -> F()
r141: eqt(pending(),pid(N2)) -> F()
r142: eqt(pending(),int(N2)) -> F()
r143: eqt(pending(),cons(H2,T2)) -> F()
r144: eqt(pending(),tuple(H2,T2)) -> F()
r145: eqt(pending(),tuplenil(H2)) -> F()
r146: eqt(release(),nil()) -> F()
r147: eqt(release(),a()) -> F()
r148: eqt(release(),excl()) -> F()
r149: eqt(release(),false()) -> F()
r150: eqt(release(),lock()) -> F()
r151: eqt(release(),locker()) -> F()
r152: eqt(release(),mcrlrecord()) -> F()
r153: eqt(release(),ok()) -> F()
r154: eqt(request(),mcrlrecord()) -> F()
r155: eqt(request(),ok()) -> F()
r156: eqt(request(),pending()) -> F()
r157: eqt(request(),release()) -> F()
r158: eqt(request(),request()) -> T()
r159: eqt(request(),resource()) -> F()
r160: eqt(request(),tag()) -> F()
r161: eqt(request(),true()) -> F()
r162: eqt(request(),undefined()) -> F()
r163: eqt(request(),pid(N2)) -> F()
r164: eqt(request(),int(N2)) -> F()
r165: eqt(request(),cons(H2,T2)) -> F()
r166: eqt(request(),tuple(H2,T2)) -> F()
r167: eqt(request(),tuplenil(H2)) -> F()
r168: eqt(resource(),nil()) -> F()
r169: eqt(resource(),a()) -> F()
r170: eqt(resource(),excl()) -> F()
r171: eqt(resource(),false()) -> F()
r172: eqt(resource(),lock()) -> F()
r173: eqt(resource(),locker()) -> F()
r174: eqt(resource(),mcrlrecord()) -> F()
r175: eqt(resource(),ok()) -> F()
r176: eqt(resource(),pending()) -> F()
r177: eqt(resource(),release()) -> F()
r178: eqt(resource(),request()) -> F()
r179: eqt(resource(),resource()) -> T()
r180: eqt(resource(),tag()) -> F()
r181: eqt(resource(),true()) -> F()
r182: eqt(resource(),undefined()) -> F()
r183: eqt(resource(),pid(N2)) -> F()
r184: eqt(resource(),int(N2)) -> F()
r185: eqt(resource(),cons(H2,T2)) -> F()
r186: eqt(resource(),tuple(H2,T2)) -> F()
r187: eqt(resource(),tuplenil(H2)) -> F()
r188: eqt(tag(),nil()) -> F()
r189: eqt(tag(),a()) -> F()
r190: eqt(tag(),excl()) -> F()
r191: eqt(tag(),false()) -> F()
r192: eqt(tag(),lock()) -> F()
r193: eqt(tag(),locker()) -> F()
r194: eqt(tag(),mcrlrecord()) -> F()
r195: eqt(tag(),ok()) -> F()
r196: eqt(tag(),pending()) -> F()
r197: eqt(tag(),release()) -> F()
r198: eqt(tag(),request()) -> F()
r199: eqt(tag(),resource()) -> F()
r200: eqt(tag(),tag()) -> T()
r201: eqt(tag(),true()) -> F()
r202: eqt(tag(),undefined()) -> F()
r203: eqt(tag(),pid(N2)) -> F()
r204: eqt(tag(),int(N2)) -> F()
r205: eqt(tag(),cons(H2,T2)) -> F()
r206: eqt(tag(),tuple(H2,T2)) -> F()
r207: eqt(tag(),tuplenil(H2)) -> F()
r208: eqt(true(),nil()) -> F()
r209: eqt(true(),a()) -> F()
r210: eqt(true(),excl()) -> F()
r211: eqt(true(),false()) -> F()
r212: eqt(true(),lock()) -> F()
r213: eqt(true(),locker()) -> F()
r214: eqt(true(),mcrlrecord()) -> F()
r215: eqt(true(),ok()) -> F()
r216: eqt(true(),pending()) -> F()
r217: eqt(true(),release()) -> F()
r218: eqt(true(),request()) -> F()
r219: eqt(true(),resource()) -> F()
r220: eqt(true(),tag()) -> F()
r221: eqt(true(),true()) -> T()
r222: eqt(true(),undefined()) -> F()
r223: eqt(true(),pid(N2)) -> F()
r224: eqt(true(),int(N2)) -> F()
r225: eqt(true(),cons(H2,T2)) -> F()
r226: eqt(true(),tuple(H2,T2)) -> F()
r227: eqt(true(),tuplenil(H2)) -> F()
r228: eqt(undefined(),nil()) -> F()
r229: eqt(undefined(),a()) -> F()
r230: eqt(undefined(),tuplenil(H2)) -> F()
r231: eqt(pid(N1),nil()) -> F()
r232: eqt(pid(N1),a()) -> F()
r233: eqt(pid(N1),excl()) -> F()
r234: eqt(pid(N1),false()) -> F()
r235: eqt(pid(N1),lock()) -> F()
r236: eqt(pid(N1),locker()) -> F()
r237: eqt(pid(N1),mcrlrecord()) -> F()
r238: eqt(pid(N1),ok()) -> F()
r239: eqt(pid(N1),pending()) -> F()
r240: eqt(pid(N1),release()) -> F()
r241: eqt(pid(N1),request()) -> F()
r242: eqt(pid(N1),resource()) -> F()
r243: eqt(pid(N1),tag()) -> F()
r244: eqt(pid(N1),true()) -> F()
r245: eqt(pid(N1),undefined()) -> F()
r246: eqt(pid(N1),pid(N2)) -> eqt(N1,N2)
r247: eqt(pid(N1),int(N2)) -> F()
r248: eqt(pid(N1),cons(H2,T2)) -> F()
r249: eqt(pid(N1),tuple(H2,T2)) -> F()
r250: eqt(pid(N1),tuplenil(H2)) -> F()
r251: eqt(int(N1),nil()) -> F()
r252: eqt(int(N1),a()) -> F()
r253: eqt(int(N1),excl()) -> F()
r254: eqt(int(N1),false()) -> F()
r255: eqt(int(N1),lock()) -> F()
r256: eqt(int(N1),locker()) -> F()
r257: eqt(int(N1),mcrlrecord()) -> F()
r258: eqt(int(N1),ok()) -> F()
r259: eqt(int(N1),pending()) -> F()
r260: eqt(int(N1),release()) -> F()
r261: eqt(int(N1),request()) -> F()
r262: eqt(int(N1),resource()) -> F()
r263: eqt(int(N1),tag()) -> F()
r264: eqt(int(N1),true()) -> F()
r265: eqt(int(N1),undefined()) -> F()
r266: eqt(cons(H1,T1),resource()) -> F()
r267: eqt(cons(H1,T1),tag()) -> F()
r268: eqt(cons(H1,T1),true()) -> F()
r269: eqt(cons(H1,T1),undefined()) -> F()
r270: eqt(cons(H1,T1),pid(N2)) -> F()
r271: eqt(cons(H1,T1),int(N2)) -> F()
r272: eqt(cons(H1,T1),cons(H2,T2)) -> and(eqt(H1,H2),eqt(T1,T2))
r273: eqt(cons(H1,T1),tuple(H2,T2)) -> F()
r274: eqt(cons(H1,T1),tuplenil(H2)) -> F()
r275: eqt(tuple(H1,T1),nil()) -> F()
r276: eqt(tuple(H1,T1),a()) -> F()
r277: eqt(tuple(H1,T1),excl()) -> F()
r278: eqt(tuple(H1,T1),false()) -> F()
r279: eqt(tuple(H1,T1),lock()) -> F()
r280: eqt(tuple(H1,T1),locker()) -> F()
r281: eqt(tuple(H1,T1),mcrlrecord()) -> F()
r282: eqt(tuple(H1,T1),ok()) -> F()
r283: eqt(tuple(H1,T1),pending()) -> F()
r284: eqt(tuple(H1,T1),release()) -> F()
r285: eqt(tuple(H1,T1),request()) -> F()
r286: eqt(tuple(H1,T1),resource()) -> F()
r287: eqt(tuple(H1,T1),tag()) -> F()
r288: eqt(tuple(H1,T1),true()) -> F()
r289: eqt(tuple(H1,T1),undefined()) -> F()
r290: eqt(tuple(H1,T1),pid(N2)) -> F()
r291: eqt(tuple(H1,T1),int(N2)) -> F()
r292: eqt(tuple(H1,T1),cons(H2,T2)) -> F()
r293: eqt(tuple(H1,T1),tuple(H2,T2)) -> and(eqt(H1,H2),eqt(T1,T2))
r294: eqt(tuple(H1,T1),tuplenil(H2)) -> F()
r295: eqt(tuplenil(H1),nil()) -> F()
r296: eqt(tuplenil(H1),a()) -> F()
r297: eqt(tuplenil(H1),excl()) -> F()
r298: eqt(tuplenil(H1),false()) -> F()
r299: eqt(tuplenil(H1),lock()) -> F()
r300: eqt(tuplenil(H1),locker()) -> F()
r301: eqt(tuplenil(H1),mcrlrecord()) -> F()
r302: eqt(tuplenil(H1),ok()) -> F()
r303: eqt(tuplenil(H1),pending()) -> F()
r304: eqt(tuplenil(H1),release()) -> F()
r305: eqt(tuplenil(H1),request()) -> F()
r306: eqt(tuplenil(H1),resource()) -> F()
r307: eqt(tuplenil(H1),tag()) -> F()
r308: eqt(tuplenil(H1),true()) -> F()
r309: eqt(tuplenil(H1),undefined()) -> F()
r310: eqt(tuplenil(H1),pid(N2)) -> F()
r311: eqt(tuplenil(H1),int(N2)) -> F()
r312: eqt(tuplenil(H1),cons(H2,T2)) -> F()
r313: eqt(tuplenil(H1),tuple(H2,T2)) -> F()
r314: eqt(tuplenil(H1),tuplenil(H2)) -> eqt(H1,H2)
r315: element(int(s(|0|())),tuplenil(T1)) -> T1
r316: element(int(s(|0|())),tuple(T1,T2)) -> T1
r317: element(int(s(s(N1))),tuple(T1,T2)) -> element(int(s(N1)),T2)
r318: record_new(lock()) -> tuple(mcrlrecord(),tuple(lock(),tuple(undefined(),tuple(nil(),tuplenil(nil())))))
r319: record_extract(tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2))))),lock(),resource()) -> tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2)))))
r320: record_update(tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2))))),lock(),pending(),NewF) -> tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(NewF)))))
r321: record_updates(Record,Name,nil()) -> Record
r322: record_updates(Record,Name,cons(tuple(Field,tuplenil(NewF)),Fields)) -> record_updates(record_update(Record,Name,Field,NewF),Name,Fields)
r323: locker2_map_promote_pending(nil(),Pending) -> nil()
r324: locker2_map_promote_pending(cons(Lock,Locks),Pending) -> cons(locker2_promote_pending(Lock,Pending),locker2_map_promote_pending(Locks,Pending))
r325: locker2_map_claim_lock(nil(),Resources,Client) -> nil()
r326: locker2_map_claim_lock(cons(Lock,Locks),Resources,Client) -> cons(locker2_claim_lock(Lock,Resources,Client),locker2_map_claim_lock(Locks,Resources,Client))
r327: locker2_map_add_pending(nil(),Resources,Client) -> nil()
r328: locker2_promote_pending(Lock,Client) -> case0(Client,Lock,record_extract(Lock,lock(),pending()))
r329: case0(Client,Lock,cons(Client,Pendings)) -> record_updates(Lock,lock(),cons(tuple(excl(),tuplenil(Client)),cons(tuple(pending(),tuplenil(Pendings)),nil())))
r330: case0(Client,Lock,MCRLFree0) -> Lock
r331: locker2_remove_pending(Lock,Client) -> record_updates(Lock,lock(),cons(tuple(pending(),tuplenil(subtract(record_extract(Lock,lock(),pending()),cons(Client,nil())))),nil()))
r332: locker2_add_pending(Lock,Resources,Client) -> case1(Client,Resources,Lock,member(record_extract(Lock,lock(),resource()),Resources))
r333: case1(Client,Resources,Lock,true()) -> record_updates(Lock,lock(),cons(tuple(pending(),tuplenil(append(record_extract(Lock,lock(),pending()),cons(Client,nil())))),nil()))
r334: case1(Client,Resources,Lock,false()) -> Lock
r335: locker2_release_lock(Lock,Client) -> case2(Client,Lock,gen_modtageq(Client,record_extract(Lock,lock(),excl())))
r336: case2(Client,Lock,true()) -> record_updates(Lock,lock(),cons(tuple(excllock(),excl()),nil()))
r337: case4(Client,Lock,MCRLFree1) -> false()
r338: locker2_obtainables(nil(),Client) -> true()
r339: locker2_obtainables(cons(Lock,Locks),Client) -> case5(Client,Locks,Lock,member(Client,record_extract(Lock,lock(),pending())))
r340: case5(Client,Locks,Lock,true()) -> andt(locker2_obtainable(Lock,Client),locker2_obtainables(Locks,Client))
r341: case5(Client,Locks,Lock,false()) -> locker2_obtainables(Locks,Client)
r342: locker2_check_available(Resource,nil()) -> false()
r343: locker2_check_available(Resource,cons(Lock,Locks)) -> case6(Locks,Lock,Resource,equal(Resource,record_extract(Lock,lock(),resource())))
r344: case6(Locks,Lock,Resource,true()) -> andt(equal(record_extract(Lock,lock(),excl()),nil()),equal(record_extract(Lock,lock(),pending()),nil()))
r345: case6(Locks,Lock,Resource,false()) -> locker2_check_available(Resource,Locks)
r346: locker2_check_availables(nil(),Locks) -> true()
r347: locker2_check_availables(cons(Resource,Resources),Locks) -> andt(locker2_check_available(Resource,Locks),locker2_check_availables(Resources,Locks))
r348: locker2_adduniq(nil(),List) -> List
r349: append(cons(Head,Tail),List) -> cons(Head,append(Tail,List))
r350: subtract(List,nil()) -> List
r351: subtract(List,cons(Head,Tail)) -> subtract(delete(Head,List),Tail)
r352: delete(E,nil()) -> nil()
r353: delete(E,cons(Head,Tail)) -> case8(Tail,Head,E,equal(E,Head))
r354: case8(Tail,Head,E,true()) -> Tail
r355: case8(Tail,Head,E,false()) -> cons(Head,delete(E,Tail))
r356: gen_tag(Pid) -> tuple(Pid,tuplenil(tag()))
r357: gen_modtageq(Client1,Client2) -> equal(Client1,Client2)
r358: member(E,nil()) -> false()
r359: member(E,cons(Head,Tail)) -> case9(Tail,Head,E,equal(E,Head))
r360: case9(Tail,Head,E,true()) -> true()
r361: case9(Tail,Head,E,false()) -> member(E,Tail)
r362: eqs(empty(),empty()) -> T()
r363: eqs(empty(),stack(E2,S2)) -> F()
r364: eqs(stack(E1,S1),empty()) -> F()
r365: eqs(stack(E1,S1),stack(E2,S2)) -> and(eqt(E1,E2),eqs(S1,S2))
r366: pushs(E1,S1) -> stack(E1,S1)
r367: pops(stack(E1,S1)) -> S1
r368: tops(stack(E1,S1)) -> E1
r369: istops(E1,empty()) -> F()
r370: istops(E1,stack(E2,S1)) -> eqt(E1,E2)
r371: eqc(nocalls(),nocalls()) -> T()
r372: eqc(nocalls(),calls(E2,S2,CS2)) -> F()
r373: eqc(calls(E1,S1,CS1),nocalls()) -> F()
r374: eqc(calls(E1,S1,CS1),calls(E2,S2,CS2)) -> and(eqt(E1,E2),and(eqs(S1,S2),eqc(CS1,CS2)))
r375: push(E1,E2,nocalls()) -> calls(E1,stack(E2,empty()),nocalls())
r376: push(E1,E2,calls(E3,S1,CS1)) -> push1(E1,E2,E3,S1,CS1,eqt(E1,E3))
r377: push1(E1,E2,E3,S1,CS1,T()) -> calls(E3,pushs(E2,S1),CS1)

The set of usable rules consists of

  r320

Take the reduction pair:

  matrix interpretations:
  
    carrier: N^1
    order: standard order
    interpretations:
      record_updates#_A(x1,x2,x3) = x3
      cons_A(x1,x2) = x1 + x2
      tuple_A(x1,x2) = x2
      tuplenil_A(x1) = x1 + 1
      record_update_A(x1,x2,x3,x4) = x4 + 1
      mcrlrecord_A() = 1
      lock_A() = 1
      pending_A() = 1

The next rules are strictly ordered:

  p1

We remove them from the problem.  Then no dependency pair remains.

-- Reduction pair.

Consider the dependency pair problem (P, R), where P consists of

p1: locker2_map_promote_pending#(cons(Lock,Locks),Pending) -> locker2_map_promote_pending#(Locks,Pending)

and R consists of:

r1: or(T(),T()) -> T()
r2: or(F(),T()) -> T()
r3: or(T(),F()) -> T()
r4: or(F(),F()) -> F()
r5: and(T(),B) -> B
r6: and(B,T()) -> B
r7: and(F(),B) -> F()
r8: and(B,F()) -> F()
r9: imp(T(),B) -> B
r10: imp(F(),B) -> T()
r11: not(T()) -> F()
r12: not(F()) -> T()
r13: if(T(),B1,B2) -> B1
r14: if(F(),B1,B2) -> B2
r15: eq(T(),T()) -> T()
r16: eq(F(),F()) -> T()
r17: eq(T(),F()) -> F()
r18: eq(F(),T()) -> F()
r19: eqt(nil(),undefined()) -> F()
r20: eqt(nil(),pid(N2)) -> F()
r21: eqt(nil(),int(N2)) -> F()
r22: eqt(nil(),cons(H2,T2)) -> F()
r23: eqt(nil(),tuple(H2,T2)) -> F()
r24: eqt(nil(),tuplenil(H2)) -> F()
r25: eqt(a(),nil()) -> F()
r26: eqt(a(),a()) -> T()
r27: eqt(a(),excl()) -> F()
r28: eqt(a(),false()) -> F()
r29: eqt(a(),lock()) -> F()
r30: eqt(a(),locker()) -> F()
r31: eqt(a(),mcrlrecord()) -> F()
r32: eqt(a(),ok()) -> F()
r33: eqt(a(),pending()) -> F()
r34: eqt(a(),release()) -> F()
r35: eqt(a(),request()) -> F()
r36: eqt(a(),resource()) -> F()
r37: eqt(a(),tag()) -> F()
r38: eqt(a(),true()) -> F()
r39: eqt(a(),undefined()) -> F()
r40: eqt(a(),pid(N2)) -> F()
r41: eqt(a(),int(N2)) -> F()
r42: eqt(a(),cons(H2,T2)) -> F()
r43: eqt(a(),tuple(H2,T2)) -> F()
r44: eqt(a(),tuplenil(H2)) -> F()
r45: eqt(excl(),nil()) -> F()
r46: eqt(excl(),a()) -> F()
r47: eqt(excl(),excl()) -> T()
r48: eqt(excl(),false()) -> F()
r49: eqt(excl(),lock()) -> F()
r50: eqt(excl(),locker()) -> F()
r51: eqt(excl(),mcrlrecord()) -> F()
r52: eqt(excl(),ok()) -> F()
r53: eqt(excl(),pending()) -> F()
r54: eqt(excl(),release()) -> F()
r55: eqt(excl(),request()) -> F()
r56: eqt(excl(),resource()) -> F()
r57: eqt(excl(),tag()) -> F()
r58: eqt(excl(),true()) -> F()
r59: eqt(excl(),undefined()) -> F()
r60: eqt(excl(),pid(N2)) -> F()
r61: eqt(excl(),eqt(false(),int(N2))) -> F()
r62: eqt(false(),cons(H2,T2)) -> F()
r63: eqt(false(),tuple(H2,T2)) -> F()
r64: eqt(false(),tuplenil(H2)) -> F()
r65: eqt(lock(),nil()) -> F()
r66: eqt(lock(),a()) -> F()
r67: eqt(lock(),excl()) -> F()
r68: eqt(lock(),false()) -> F()
r69: eqt(lock(),lock()) -> T()
r70: eqt(lock(),locker()) -> F()
r71: eqt(lock(),mcrlrecord()) -> F()
r72: eqt(lock(),ok()) -> F()
r73: eqt(lock(),pending()) -> F()
r74: eqt(lock(),release()) -> F()
r75: eqt(lock(),request()) -> F()
r76: eqt(lock(),resource()) -> F()
r77: eqt(lock(),tag()) -> F()
r78: eqt(lock(),true()) -> F()
r79: eqt(lock(),undefined()) -> F()
r80: eqt(lock(),pid(N2)) -> F()
r81: eqt(lock(),int(N2)) -> F()
r82: eqt(lock(),cons(H2,T2)) -> F()
r83: eqt(lock(),tuple(H2,T2)) -> F()
r84: eqt(lock(),tuplenil(H2)) -> F()
r85: eqt(locker(),nil()) -> F()
r86: eqt(locker(),a()) -> F()
r87: eqt(locker(),excl()) -> F()
r88: eqt(locker(),false()) -> F()
r89: eqt(locker(),lock()) -> F()
r90: eqt(locker(),locker()) -> T()
r91: eqt(locker(),mcrlrecord()) -> F()
r92: eqt(locker(),ok()) -> F()
r93: eqt(locker(),pending()) -> F()
r94: eqt(locker(),release()) -> F()
r95: eqt(locker(),request()) -> F()
r96: eqt(locker(),resource()) -> F()
r97: eqt(locker(),tag()) -> F()
r98: eqt(locker(),true()) -> F()
r99: eqt(locker(),undefined()) -> F()
r100: eqt(locker(),pid(N2)) -> F()
r101: eqt(locker(),int(N2)) -> F()
r102: eqt(locker(),cons(H2,T2)) -> F()
r103: eqt(locker(),tuple(H2,T2)) -> F()
r104: eqt(locker(),tuplenil(H2)) -> F()
r105: eqt(mcrlrecord(),nil()) -> F()
r106: eqt(mcrlrecord(),a()) -> F()
r107: eqt(mcrlrecord(),excl()) -> F()
r108: eqt(mcrlrecord(),false()) -> F()
r109: eqt(mcrlrecord(),lock()) -> F()
r110: eqt(mcrlrecord(),locker()) -> F()
r111: eqt(mcrlrecord(),mcrlrecord()) -> T()
r112: eqt(mcrlrecord(),ok()) -> F()
r113: eqt(mcrlrecord(),pending()) -> F()
r114: eqt(mcrlrecord(),release()) -> F()
r115: eqt(mcrlrecord(),request()) -> F()
r116: eqt(mcrlrecord(),resource()) -> F()
r117: eqt(ok(),resource()) -> F()
r118: eqt(ok(),tag()) -> F()
r119: eqt(ok(),true()) -> F()
r120: eqt(ok(),undefined()) -> F()
r121: eqt(ok(),pid(N2)) -> F()
r122: eqt(ok(),int(N2)) -> F()
r123: eqt(ok(),cons(H2,T2)) -> F()
r124: eqt(ok(),tuple(H2,T2)) -> F()
r125: eqt(ok(),tuplenil(H2)) -> F()
r126: eqt(pending(),nil()) -> F()
r127: eqt(pending(),a()) -> F()
r128: eqt(pending(),excl()) -> F()
r129: eqt(pending(),false()) -> F()
r130: eqt(pending(),lock()) -> F()
r131: eqt(pending(),locker()) -> F()
r132: eqt(pending(),mcrlrecord()) -> F()
r133: eqt(pending(),ok()) -> F()
r134: eqt(pending(),pending()) -> T()
r135: eqt(pending(),release()) -> F()
r136: eqt(pending(),request()) -> F()
r137: eqt(pending(),resource()) -> F()
r138: eqt(pending(),tag()) -> F()
r139: eqt(pending(),true()) -> F()
r140: eqt(pending(),undefined()) -> F()
r141: eqt(pending(),pid(N2)) -> F()
r142: eqt(pending(),int(N2)) -> F()
r143: eqt(pending(),cons(H2,T2)) -> F()
r144: eqt(pending(),tuple(H2,T2)) -> F()
r145: eqt(pending(),tuplenil(H2)) -> F()
r146: eqt(release(),nil()) -> F()
r147: eqt(release(),a()) -> F()
r148: eqt(release(),excl()) -> F()
r149: eqt(release(),false()) -> F()
r150: eqt(release(),lock()) -> F()
r151: eqt(release(),locker()) -> F()
r152: eqt(release(),mcrlrecord()) -> F()
r153: eqt(release(),ok()) -> F()
r154: eqt(request(),mcrlrecord()) -> F()
r155: eqt(request(),ok()) -> F()
r156: eqt(request(),pending()) -> F()
r157: eqt(request(),release()) -> F()
r158: eqt(request(),request()) -> T()
r159: eqt(request(),resource()) -> F()
r160: eqt(request(),tag()) -> F()
r161: eqt(request(),true()) -> F()
r162: eqt(request(),undefined()) -> F()
r163: eqt(request(),pid(N2)) -> F()
r164: eqt(request(),int(N2)) -> F()
r165: eqt(request(),cons(H2,T2)) -> F()
r166: eqt(request(),tuple(H2,T2)) -> F()
r167: eqt(request(),tuplenil(H2)) -> F()
r168: eqt(resource(),nil()) -> F()
r169: eqt(resource(),a()) -> F()
r170: eqt(resource(),excl()) -> F()
r171: eqt(resource(),false()) -> F()
r172: eqt(resource(),lock()) -> F()
r173: eqt(resource(),locker()) -> F()
r174: eqt(resource(),mcrlrecord()) -> F()
r175: eqt(resource(),ok()) -> F()
r176: eqt(resource(),pending()) -> F()
r177: eqt(resource(),release()) -> F()
r178: eqt(resource(),request()) -> F()
r179: eqt(resource(),resource()) -> T()
r180: eqt(resource(),tag()) -> F()
r181: eqt(resource(),true()) -> F()
r182: eqt(resource(),undefined()) -> F()
r183: eqt(resource(),pid(N2)) -> F()
r184: eqt(resource(),int(N2)) -> F()
r185: eqt(resource(),cons(H2,T2)) -> F()
r186: eqt(resource(),tuple(H2,T2)) -> F()
r187: eqt(resource(),tuplenil(H2)) -> F()
r188: eqt(tag(),nil()) -> F()
r189: eqt(tag(),a()) -> F()
r190: eqt(tag(),excl()) -> F()
r191: eqt(tag(),false()) -> F()
r192: eqt(tag(),lock()) -> F()
r193: eqt(tag(),locker()) -> F()
r194: eqt(tag(),mcrlrecord()) -> F()
r195: eqt(tag(),ok()) -> F()
r196: eqt(tag(),pending()) -> F()
r197: eqt(tag(),release()) -> F()
r198: eqt(tag(),request()) -> F()
r199: eqt(tag(),resource()) -> F()
r200: eqt(tag(),tag()) -> T()
r201: eqt(tag(),true()) -> F()
r202: eqt(tag(),undefined()) -> F()
r203: eqt(tag(),pid(N2)) -> F()
r204: eqt(tag(),int(N2)) -> F()
r205: eqt(tag(),cons(H2,T2)) -> F()
r206: eqt(tag(),tuple(H2,T2)) -> F()
r207: eqt(tag(),tuplenil(H2)) -> F()
r208: eqt(true(),nil()) -> F()
r209: eqt(true(),a()) -> F()
r210: eqt(true(),excl()) -> F()
r211: eqt(true(),false()) -> F()
r212: eqt(true(),lock()) -> F()
r213: eqt(true(),locker()) -> F()
r214: eqt(true(),mcrlrecord()) -> F()
r215: eqt(true(),ok()) -> F()
r216: eqt(true(),pending()) -> F()
r217: eqt(true(),release()) -> F()
r218: eqt(true(),request()) -> F()
r219: eqt(true(),resource()) -> F()
r220: eqt(true(),tag()) -> F()
r221: eqt(true(),true()) -> T()
r222: eqt(true(),undefined()) -> F()
r223: eqt(true(),pid(N2)) -> F()
r224: eqt(true(),int(N2)) -> F()
r225: eqt(true(),cons(H2,T2)) -> F()
r226: eqt(true(),tuple(H2,T2)) -> F()
r227: eqt(true(),tuplenil(H2)) -> F()
r228: eqt(undefined(),nil()) -> F()
r229: eqt(undefined(),a()) -> F()
r230: eqt(undefined(),tuplenil(H2)) -> F()
r231: eqt(pid(N1),nil()) -> F()
r232: eqt(pid(N1),a()) -> F()
r233: eqt(pid(N1),excl()) -> F()
r234: eqt(pid(N1),false()) -> F()
r235: eqt(pid(N1),lock()) -> F()
r236: eqt(pid(N1),locker()) -> F()
r237: eqt(pid(N1),mcrlrecord()) -> F()
r238: eqt(pid(N1),ok()) -> F()
r239: eqt(pid(N1),pending()) -> F()
r240: eqt(pid(N1),release()) -> F()
r241: eqt(pid(N1),request()) -> F()
r242: eqt(pid(N1),resource()) -> F()
r243: eqt(pid(N1),tag()) -> F()
r244: eqt(pid(N1),true()) -> F()
r245: eqt(pid(N1),undefined()) -> F()
r246: eqt(pid(N1),pid(N2)) -> eqt(N1,N2)
r247: eqt(pid(N1),int(N2)) -> F()
r248: eqt(pid(N1),cons(H2,T2)) -> F()
r249: eqt(pid(N1),tuple(H2,T2)) -> F()
r250: eqt(pid(N1),tuplenil(H2)) -> F()
r251: eqt(int(N1),nil()) -> F()
r252: eqt(int(N1),a()) -> F()
r253: eqt(int(N1),excl()) -> F()
r254: eqt(int(N1),false()) -> F()
r255: eqt(int(N1),lock()) -> F()
r256: eqt(int(N1),locker()) -> F()
r257: eqt(int(N1),mcrlrecord()) -> F()
r258: eqt(int(N1),ok()) -> F()
r259: eqt(int(N1),pending()) -> F()
r260: eqt(int(N1),release()) -> F()
r261: eqt(int(N1),request()) -> F()
r262: eqt(int(N1),resource()) -> F()
r263: eqt(int(N1),tag()) -> F()
r264: eqt(int(N1),true()) -> F()
r265: eqt(int(N1),undefined()) -> F()
r266: eqt(cons(H1,T1),resource()) -> F()
r267: eqt(cons(H1,T1),tag()) -> F()
r268: eqt(cons(H1,T1),true()) -> F()
r269: eqt(cons(H1,T1),undefined()) -> F()
r270: eqt(cons(H1,T1),pid(N2)) -> F()
r271: eqt(cons(H1,T1),int(N2)) -> F()
r272: eqt(cons(H1,T1),cons(H2,T2)) -> and(eqt(H1,H2),eqt(T1,T2))
r273: eqt(cons(H1,T1),tuple(H2,T2)) -> F()
r274: eqt(cons(H1,T1),tuplenil(H2)) -> F()
r275: eqt(tuple(H1,T1),nil()) -> F()
r276: eqt(tuple(H1,T1),a()) -> F()
r277: eqt(tuple(H1,T1),excl()) -> F()
r278: eqt(tuple(H1,T1),false()) -> F()
r279: eqt(tuple(H1,T1),lock()) -> F()
r280: eqt(tuple(H1,T1),locker()) -> F()
r281: eqt(tuple(H1,T1),mcrlrecord()) -> F()
r282: eqt(tuple(H1,T1),ok()) -> F()
r283: eqt(tuple(H1,T1),pending()) -> F()
r284: eqt(tuple(H1,T1),release()) -> F()
r285: eqt(tuple(H1,T1),request()) -> F()
r286: eqt(tuple(H1,T1),resource()) -> F()
r287: eqt(tuple(H1,T1),tag()) -> F()
r288: eqt(tuple(H1,T1),true()) -> F()
r289: eqt(tuple(H1,T1),undefined()) -> F()
r290: eqt(tuple(H1,T1),pid(N2)) -> F()
r291: eqt(tuple(H1,T1),int(N2)) -> F()
r292: eqt(tuple(H1,T1),cons(H2,T2)) -> F()
r293: eqt(tuple(H1,T1),tuple(H2,T2)) -> and(eqt(H1,H2),eqt(T1,T2))
r294: eqt(tuple(H1,T1),tuplenil(H2)) -> F()
r295: eqt(tuplenil(H1),nil()) -> F()
r296: eqt(tuplenil(H1),a()) -> F()
r297: eqt(tuplenil(H1),excl()) -> F()
r298: eqt(tuplenil(H1),false()) -> F()
r299: eqt(tuplenil(H1),lock()) -> F()
r300: eqt(tuplenil(H1),locker()) -> F()
r301: eqt(tuplenil(H1),mcrlrecord()) -> F()
r302: eqt(tuplenil(H1),ok()) -> F()
r303: eqt(tuplenil(H1),pending()) -> F()
r304: eqt(tuplenil(H1),release()) -> F()
r305: eqt(tuplenil(H1),request()) -> F()
r306: eqt(tuplenil(H1),resource()) -> F()
r307: eqt(tuplenil(H1),tag()) -> F()
r308: eqt(tuplenil(H1),true()) -> F()
r309: eqt(tuplenil(H1),undefined()) -> F()
r310: eqt(tuplenil(H1),pid(N2)) -> F()
r311: eqt(tuplenil(H1),int(N2)) -> F()
r312: eqt(tuplenil(H1),cons(H2,T2)) -> F()
r313: eqt(tuplenil(H1),tuple(H2,T2)) -> F()
r314: eqt(tuplenil(H1),tuplenil(H2)) -> eqt(H1,H2)
r315: element(int(s(|0|())),tuplenil(T1)) -> T1
r316: element(int(s(|0|())),tuple(T1,T2)) -> T1
r317: element(int(s(s(N1))),tuple(T1,T2)) -> element(int(s(N1)),T2)
r318: record_new(lock()) -> tuple(mcrlrecord(),tuple(lock(),tuple(undefined(),tuple(nil(),tuplenil(nil())))))
r319: record_extract(tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2))))),lock(),resource()) -> tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2)))))
r320: record_update(tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2))))),lock(),pending(),NewF) -> tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(NewF)))))
r321: record_updates(Record,Name,nil()) -> Record
r322: record_updates(Record,Name,cons(tuple(Field,tuplenil(NewF)),Fields)) -> record_updates(record_update(Record,Name,Field,NewF),Name,Fields)
r323: locker2_map_promote_pending(nil(),Pending) -> nil()
r324: locker2_map_promote_pending(cons(Lock,Locks),Pending) -> cons(locker2_promote_pending(Lock,Pending),locker2_map_promote_pending(Locks,Pending))
r325: locker2_map_claim_lock(nil(),Resources,Client) -> nil()
r326: locker2_map_claim_lock(cons(Lock,Locks),Resources,Client) -> cons(locker2_claim_lock(Lock,Resources,Client),locker2_map_claim_lock(Locks,Resources,Client))
r327: locker2_map_add_pending(nil(),Resources,Client) -> nil()
r328: locker2_promote_pending(Lock,Client) -> case0(Client,Lock,record_extract(Lock,lock(),pending()))
r329: case0(Client,Lock,cons(Client,Pendings)) -> record_updates(Lock,lock(),cons(tuple(excl(),tuplenil(Client)),cons(tuple(pending(),tuplenil(Pendings)),nil())))
r330: case0(Client,Lock,MCRLFree0) -> Lock
r331: locker2_remove_pending(Lock,Client) -> record_updates(Lock,lock(),cons(tuple(pending(),tuplenil(subtract(record_extract(Lock,lock(),pending()),cons(Client,nil())))),nil()))
r332: locker2_add_pending(Lock,Resources,Client) -> case1(Client,Resources,Lock,member(record_extract(Lock,lock(),resource()),Resources))
r333: case1(Client,Resources,Lock,true()) -> record_updates(Lock,lock(),cons(tuple(pending(),tuplenil(append(record_extract(Lock,lock(),pending()),cons(Client,nil())))),nil()))
r334: case1(Client,Resources,Lock,false()) -> Lock
r335: locker2_release_lock(Lock,Client) -> case2(Client,Lock,gen_modtageq(Client,record_extract(Lock,lock(),excl())))
r336: case2(Client,Lock,true()) -> record_updates(Lock,lock(),cons(tuple(excllock(),excl()),nil()))
r337: case4(Client,Lock,MCRLFree1) -> false()
r338: locker2_obtainables(nil(),Client) -> true()
r339: locker2_obtainables(cons(Lock,Locks),Client) -> case5(Client,Locks,Lock,member(Client,record_extract(Lock,lock(),pending())))
r340: case5(Client,Locks,Lock,true()) -> andt(locker2_obtainable(Lock,Client),locker2_obtainables(Locks,Client))
r341: case5(Client,Locks,Lock,false()) -> locker2_obtainables(Locks,Client)
r342: locker2_check_available(Resource,nil()) -> false()
r343: locker2_check_available(Resource,cons(Lock,Locks)) -> case6(Locks,Lock,Resource,equal(Resource,record_extract(Lock,lock(),resource())))
r344: case6(Locks,Lock,Resource,true()) -> andt(equal(record_extract(Lock,lock(),excl()),nil()),equal(record_extract(Lock,lock(),pending()),nil()))
r345: case6(Locks,Lock,Resource,false()) -> locker2_check_available(Resource,Locks)
r346: locker2_check_availables(nil(),Locks) -> true()
r347: locker2_check_availables(cons(Resource,Resources),Locks) -> andt(locker2_check_available(Resource,Locks),locker2_check_availables(Resources,Locks))
r348: locker2_adduniq(nil(),List) -> List
r349: append(cons(Head,Tail),List) -> cons(Head,append(Tail,List))
r350: subtract(List,nil()) -> List
r351: subtract(List,cons(Head,Tail)) -> subtract(delete(Head,List),Tail)
r352: delete(E,nil()) -> nil()
r353: delete(E,cons(Head,Tail)) -> case8(Tail,Head,E,equal(E,Head))
r354: case8(Tail,Head,E,true()) -> Tail
r355: case8(Tail,Head,E,false()) -> cons(Head,delete(E,Tail))
r356: gen_tag(Pid) -> tuple(Pid,tuplenil(tag()))
r357: gen_modtageq(Client1,Client2) -> equal(Client1,Client2)
r358: member(E,nil()) -> false()
r359: member(E,cons(Head,Tail)) -> case9(Tail,Head,E,equal(E,Head))
r360: case9(Tail,Head,E,true()) -> true()
r361: case9(Tail,Head,E,false()) -> member(E,Tail)
r362: eqs(empty(),empty()) -> T()
r363: eqs(empty(),stack(E2,S2)) -> F()
r364: eqs(stack(E1,S1),empty()) -> F()
r365: eqs(stack(E1,S1),stack(E2,S2)) -> and(eqt(E1,E2),eqs(S1,S2))
r366: pushs(E1,S1) -> stack(E1,S1)
r367: pops(stack(E1,S1)) -> S1
r368: tops(stack(E1,S1)) -> E1
r369: istops(E1,empty()) -> F()
r370: istops(E1,stack(E2,S1)) -> eqt(E1,E2)
r371: eqc(nocalls(),nocalls()) -> T()
r372: eqc(nocalls(),calls(E2,S2,CS2)) -> F()
r373: eqc(calls(E1,S1,CS1),nocalls()) -> F()
r374: eqc(calls(E1,S1,CS1),calls(E2,S2,CS2)) -> and(eqt(E1,E2),and(eqs(S1,S2),eqc(CS1,CS2)))
r375: push(E1,E2,nocalls()) -> calls(E1,stack(E2,empty()),nocalls())
r376: push(E1,E2,calls(E3,S1,CS1)) -> push1(E1,E2,E3,S1,CS1,eqt(E1,E3))
r377: push1(E1,E2,E3,S1,CS1,T()) -> calls(E3,pushs(E2,S1),CS1)

The set of usable rules consists of

  (no rules)

Take the reduction pair:

  matrix interpretations:
  
    carrier: N^1
    order: standard order
    interpretations:
      locker2_map_promote_pending#_A(x1,x2) = x1
      cons_A(x1,x2) = x2 + 1

The next rules are strictly ordered:

  p1

We remove them from the problem.  Then no dependency pair remains.

-- Reduction pair.

Consider the dependency pair problem (P, R), where P consists of

p1: locker2_map_claim_lock#(cons(Lock,Locks),Resources,Client) -> locker2_map_claim_lock#(Locks,Resources,Client)

and R consists of:

r1: or(T(),T()) -> T()
r2: or(F(),T()) -> T()
r3: or(T(),F()) -> T()
r4: or(F(),F()) -> F()
r5: and(T(),B) -> B
r6: and(B,T()) -> B
r7: and(F(),B) -> F()
r8: and(B,F()) -> F()
r9: imp(T(),B) -> B
r10: imp(F(),B) -> T()
r11: not(T()) -> F()
r12: not(F()) -> T()
r13: if(T(),B1,B2) -> B1
r14: if(F(),B1,B2) -> B2
r15: eq(T(),T()) -> T()
r16: eq(F(),F()) -> T()
r17: eq(T(),F()) -> F()
r18: eq(F(),T()) -> F()
r19: eqt(nil(),undefined()) -> F()
r20: eqt(nil(),pid(N2)) -> F()
r21: eqt(nil(),int(N2)) -> F()
r22: eqt(nil(),cons(H2,T2)) -> F()
r23: eqt(nil(),tuple(H2,T2)) -> F()
r24: eqt(nil(),tuplenil(H2)) -> F()
r25: eqt(a(),nil()) -> F()
r26: eqt(a(),a()) -> T()
r27: eqt(a(),excl()) -> F()
r28: eqt(a(),false()) -> F()
r29: eqt(a(),lock()) -> F()
r30: eqt(a(),locker()) -> F()
r31: eqt(a(),mcrlrecord()) -> F()
r32: eqt(a(),ok()) -> F()
r33: eqt(a(),pending()) -> F()
r34: eqt(a(),release()) -> F()
r35: eqt(a(),request()) -> F()
r36: eqt(a(),resource()) -> F()
r37: eqt(a(),tag()) -> F()
r38: eqt(a(),true()) -> F()
r39: eqt(a(),undefined()) -> F()
r40: eqt(a(),pid(N2)) -> F()
r41: eqt(a(),int(N2)) -> F()
r42: eqt(a(),cons(H2,T2)) -> F()
r43: eqt(a(),tuple(H2,T2)) -> F()
r44: eqt(a(),tuplenil(H2)) -> F()
r45: eqt(excl(),nil()) -> F()
r46: eqt(excl(),a()) -> F()
r47: eqt(excl(),excl()) -> T()
r48: eqt(excl(),false()) -> F()
r49: eqt(excl(),lock()) -> F()
r50: eqt(excl(),locker()) -> F()
r51: eqt(excl(),mcrlrecord()) -> F()
r52: eqt(excl(),ok()) -> F()
r53: eqt(excl(),pending()) -> F()
r54: eqt(excl(),release()) -> F()
r55: eqt(excl(),request()) -> F()
r56: eqt(excl(),resource()) -> F()
r57: eqt(excl(),tag()) -> F()
r58: eqt(excl(),true()) -> F()
r59: eqt(excl(),undefined()) -> F()
r60: eqt(excl(),pid(N2)) -> F()
r61: eqt(excl(),eqt(false(),int(N2))) -> F()
r62: eqt(false(),cons(H2,T2)) -> F()
r63: eqt(false(),tuple(H2,T2)) -> F()
r64: eqt(false(),tuplenil(H2)) -> F()
r65: eqt(lock(),nil()) -> F()
r66: eqt(lock(),a()) -> F()
r67: eqt(lock(),excl()) -> F()
r68: eqt(lock(),false()) -> F()
r69: eqt(lock(),lock()) -> T()
r70: eqt(lock(),locker()) -> F()
r71: eqt(lock(),mcrlrecord()) -> F()
r72: eqt(lock(),ok()) -> F()
r73: eqt(lock(),pending()) -> F()
r74: eqt(lock(),release()) -> F()
r75: eqt(lock(),request()) -> F()
r76: eqt(lock(),resource()) -> F()
r77: eqt(lock(),tag()) -> F()
r78: eqt(lock(),true()) -> F()
r79: eqt(lock(),undefined()) -> F()
r80: eqt(lock(),pid(N2)) -> F()
r81: eqt(lock(),int(N2)) -> F()
r82: eqt(lock(),cons(H2,T2)) -> F()
r83: eqt(lock(),tuple(H2,T2)) -> F()
r84: eqt(lock(),tuplenil(H2)) -> F()
r85: eqt(locker(),nil()) -> F()
r86: eqt(locker(),a()) -> F()
r87: eqt(locker(),excl()) -> F()
r88: eqt(locker(),false()) -> F()
r89: eqt(locker(),lock()) -> F()
r90: eqt(locker(),locker()) -> T()
r91: eqt(locker(),mcrlrecord()) -> F()
r92: eqt(locker(),ok()) -> F()
r93: eqt(locker(),pending()) -> F()
r94: eqt(locker(),release()) -> F()
r95: eqt(locker(),request()) -> F()
r96: eqt(locker(),resource()) -> F()
r97: eqt(locker(),tag()) -> F()
r98: eqt(locker(),true()) -> F()
r99: eqt(locker(),undefined()) -> F()
r100: eqt(locker(),pid(N2)) -> F()
r101: eqt(locker(),int(N2)) -> F()
r102: eqt(locker(),cons(H2,T2)) -> F()
r103: eqt(locker(),tuple(H2,T2)) -> F()
r104: eqt(locker(),tuplenil(H2)) -> F()
r105: eqt(mcrlrecord(),nil()) -> F()
r106: eqt(mcrlrecord(),a()) -> F()
r107: eqt(mcrlrecord(),excl()) -> F()
r108: eqt(mcrlrecord(),false()) -> F()
r109: eqt(mcrlrecord(),lock()) -> F()
r110: eqt(mcrlrecord(),locker()) -> F()
r111: eqt(mcrlrecord(),mcrlrecord()) -> T()
r112: eqt(mcrlrecord(),ok()) -> F()
r113: eqt(mcrlrecord(),pending()) -> F()
r114: eqt(mcrlrecord(),release()) -> F()
r115: eqt(mcrlrecord(),request()) -> F()
r116: eqt(mcrlrecord(),resource()) -> F()
r117: eqt(ok(),resource()) -> F()
r118: eqt(ok(),tag()) -> F()
r119: eqt(ok(),true()) -> F()
r120: eqt(ok(),undefined()) -> F()
r121: eqt(ok(),pid(N2)) -> F()
r122: eqt(ok(),int(N2)) -> F()
r123: eqt(ok(),cons(H2,T2)) -> F()
r124: eqt(ok(),tuple(H2,T2)) -> F()
r125: eqt(ok(),tuplenil(H2)) -> F()
r126: eqt(pending(),nil()) -> F()
r127: eqt(pending(),a()) -> F()
r128: eqt(pending(),excl()) -> F()
r129: eqt(pending(),false()) -> F()
r130: eqt(pending(),lock()) -> F()
r131: eqt(pending(),locker()) -> F()
r132: eqt(pending(),mcrlrecord()) -> F()
r133: eqt(pending(),ok()) -> F()
r134: eqt(pending(),pending()) -> T()
r135: eqt(pending(),release()) -> F()
r136: eqt(pending(),request()) -> F()
r137: eqt(pending(),resource()) -> F()
r138: eqt(pending(),tag()) -> F()
r139: eqt(pending(),true()) -> F()
r140: eqt(pending(),undefined()) -> F()
r141: eqt(pending(),pid(N2)) -> F()
r142: eqt(pending(),int(N2)) -> F()
r143: eqt(pending(),cons(H2,T2)) -> F()
r144: eqt(pending(),tuple(H2,T2)) -> F()
r145: eqt(pending(),tuplenil(H2)) -> F()
r146: eqt(release(),nil()) -> F()
r147: eqt(release(),a()) -> F()
r148: eqt(release(),excl()) -> F()
r149: eqt(release(),false()) -> F()
r150: eqt(release(),lock()) -> F()
r151: eqt(release(),locker()) -> F()
r152: eqt(release(),mcrlrecord()) -> F()
r153: eqt(release(),ok()) -> F()
r154: eqt(request(),mcrlrecord()) -> F()
r155: eqt(request(),ok()) -> F()
r156: eqt(request(),pending()) -> F()
r157: eqt(request(),release()) -> F()
r158: eqt(request(),request()) -> T()
r159: eqt(request(),resource()) -> F()
r160: eqt(request(),tag()) -> F()
r161: eqt(request(),true()) -> F()
r162: eqt(request(),undefined()) -> F()
r163: eqt(request(),pid(N2)) -> F()
r164: eqt(request(),int(N2)) -> F()
r165: eqt(request(),cons(H2,T2)) -> F()
r166: eqt(request(),tuple(H2,T2)) -> F()
r167: eqt(request(),tuplenil(H2)) -> F()
r168: eqt(resource(),nil()) -> F()
r169: eqt(resource(),a()) -> F()
r170: eqt(resource(),excl()) -> F()
r171: eqt(resource(),false()) -> F()
r172: eqt(resource(),lock()) -> F()
r173: eqt(resource(),locker()) -> F()
r174: eqt(resource(),mcrlrecord()) -> F()
r175: eqt(resource(),ok()) -> F()
r176: eqt(resource(),pending()) -> F()
r177: eqt(resource(),release()) -> F()
r178: eqt(resource(),request()) -> F()
r179: eqt(resource(),resource()) -> T()
r180: eqt(resource(),tag()) -> F()
r181: eqt(resource(),true()) -> F()
r182: eqt(resource(),undefined()) -> F()
r183: eqt(resource(),pid(N2)) -> F()
r184: eqt(resource(),int(N2)) -> F()
r185: eqt(resource(),cons(H2,T2)) -> F()
r186: eqt(resource(),tuple(H2,T2)) -> F()
r187: eqt(resource(),tuplenil(H2)) -> F()
r188: eqt(tag(),nil()) -> F()
r189: eqt(tag(),a()) -> F()
r190: eqt(tag(),excl()) -> F()
r191: eqt(tag(),false()) -> F()
r192: eqt(tag(),lock()) -> F()
r193: eqt(tag(),locker()) -> F()
r194: eqt(tag(),mcrlrecord()) -> F()
r195: eqt(tag(),ok()) -> F()
r196: eqt(tag(),pending()) -> F()
r197: eqt(tag(),release()) -> F()
r198: eqt(tag(),request()) -> F()
r199: eqt(tag(),resource()) -> F()
r200: eqt(tag(),tag()) -> T()
r201: eqt(tag(),true()) -> F()
r202: eqt(tag(),undefined()) -> F()
r203: eqt(tag(),pid(N2)) -> F()
r204: eqt(tag(),int(N2)) -> F()
r205: eqt(tag(),cons(H2,T2)) -> F()
r206: eqt(tag(),tuple(H2,T2)) -> F()
r207: eqt(tag(),tuplenil(H2)) -> F()
r208: eqt(true(),nil()) -> F()
r209: eqt(true(),a()) -> F()
r210: eqt(true(),excl()) -> F()
r211: eqt(true(),false()) -> F()
r212: eqt(true(),lock()) -> F()
r213: eqt(true(),locker()) -> F()
r214: eqt(true(),mcrlrecord()) -> F()
r215: eqt(true(),ok()) -> F()
r216: eqt(true(),pending()) -> F()
r217: eqt(true(),release()) -> F()
r218: eqt(true(),request()) -> F()
r219: eqt(true(),resource()) -> F()
r220: eqt(true(),tag()) -> F()
r221: eqt(true(),true()) -> T()
r222: eqt(true(),undefined()) -> F()
r223: eqt(true(),pid(N2)) -> F()
r224: eqt(true(),int(N2)) -> F()
r225: eqt(true(),cons(H2,T2)) -> F()
r226: eqt(true(),tuple(H2,T2)) -> F()
r227: eqt(true(),tuplenil(H2)) -> F()
r228: eqt(undefined(),nil()) -> F()
r229: eqt(undefined(),a()) -> F()
r230: eqt(undefined(),tuplenil(H2)) -> F()
r231: eqt(pid(N1),nil()) -> F()
r232: eqt(pid(N1),a()) -> F()
r233: eqt(pid(N1),excl()) -> F()
r234: eqt(pid(N1),false()) -> F()
r235: eqt(pid(N1),lock()) -> F()
r236: eqt(pid(N1),locker()) -> F()
r237: eqt(pid(N1),mcrlrecord()) -> F()
r238: eqt(pid(N1),ok()) -> F()
r239: eqt(pid(N1),pending()) -> F()
r240: eqt(pid(N1),release()) -> F()
r241: eqt(pid(N1),request()) -> F()
r242: eqt(pid(N1),resource()) -> F()
r243: eqt(pid(N1),tag()) -> F()
r244: eqt(pid(N1),true()) -> F()
r245: eqt(pid(N1),undefined()) -> F()
r246: eqt(pid(N1),pid(N2)) -> eqt(N1,N2)
r247: eqt(pid(N1),int(N2)) -> F()
r248: eqt(pid(N1),cons(H2,T2)) -> F()
r249: eqt(pid(N1),tuple(H2,T2)) -> F()
r250: eqt(pid(N1),tuplenil(H2)) -> F()
r251: eqt(int(N1),nil()) -> F()
r252: eqt(int(N1),a()) -> F()
r253: eqt(int(N1),excl()) -> F()
r254: eqt(int(N1),false()) -> F()
r255: eqt(int(N1),lock()) -> F()
r256: eqt(int(N1),locker()) -> F()
r257: eqt(int(N1),mcrlrecord()) -> F()
r258: eqt(int(N1),ok()) -> F()
r259: eqt(int(N1),pending()) -> F()
r260: eqt(int(N1),release()) -> F()
r261: eqt(int(N1),request()) -> F()
r262: eqt(int(N1),resource()) -> F()
r263: eqt(int(N1),tag()) -> F()
r264: eqt(int(N1),true()) -> F()
r265: eqt(int(N1),undefined()) -> F()
r266: eqt(cons(H1,T1),resource()) -> F()
r267: eqt(cons(H1,T1),tag()) -> F()
r268: eqt(cons(H1,T1),true()) -> F()
r269: eqt(cons(H1,T1),undefined()) -> F()
r270: eqt(cons(H1,T1),pid(N2)) -> F()
r271: eqt(cons(H1,T1),int(N2)) -> F()
r272: eqt(cons(H1,T1),cons(H2,T2)) -> and(eqt(H1,H2),eqt(T1,T2))
r273: eqt(cons(H1,T1),tuple(H2,T2)) -> F()
r274: eqt(cons(H1,T1),tuplenil(H2)) -> F()
r275: eqt(tuple(H1,T1),nil()) -> F()
r276: eqt(tuple(H1,T1),a()) -> F()
r277: eqt(tuple(H1,T1),excl()) -> F()
r278: eqt(tuple(H1,T1),false()) -> F()
r279: eqt(tuple(H1,T1),lock()) -> F()
r280: eqt(tuple(H1,T1),locker()) -> F()
r281: eqt(tuple(H1,T1),mcrlrecord()) -> F()
r282: eqt(tuple(H1,T1),ok()) -> F()
r283: eqt(tuple(H1,T1),pending()) -> F()
r284: eqt(tuple(H1,T1),release()) -> F()
r285: eqt(tuple(H1,T1),request()) -> F()
r286: eqt(tuple(H1,T1),resource()) -> F()
r287: eqt(tuple(H1,T1),tag()) -> F()
r288: eqt(tuple(H1,T1),true()) -> F()
r289: eqt(tuple(H1,T1),undefined()) -> F()
r290: eqt(tuple(H1,T1),pid(N2)) -> F()
r291: eqt(tuple(H1,T1),int(N2)) -> F()
r292: eqt(tuple(H1,T1),cons(H2,T2)) -> F()
r293: eqt(tuple(H1,T1),tuple(H2,T2)) -> and(eqt(H1,H2),eqt(T1,T2))
r294: eqt(tuple(H1,T1),tuplenil(H2)) -> F()
r295: eqt(tuplenil(H1),nil()) -> F()
r296: eqt(tuplenil(H1),a()) -> F()
r297: eqt(tuplenil(H1),excl()) -> F()
r298: eqt(tuplenil(H1),false()) -> F()
r299: eqt(tuplenil(H1),lock()) -> F()
r300: eqt(tuplenil(H1),locker()) -> F()
r301: eqt(tuplenil(H1),mcrlrecord()) -> F()
r302: eqt(tuplenil(H1),ok()) -> F()
r303: eqt(tuplenil(H1),pending()) -> F()
r304: eqt(tuplenil(H1),release()) -> F()
r305: eqt(tuplenil(H1),request()) -> F()
r306: eqt(tuplenil(H1),resource()) -> F()
r307: eqt(tuplenil(H1),tag()) -> F()
r308: eqt(tuplenil(H1),true()) -> F()
r309: eqt(tuplenil(H1),undefined()) -> F()
r310: eqt(tuplenil(H1),pid(N2)) -> F()
r311: eqt(tuplenil(H1),int(N2)) -> F()
r312: eqt(tuplenil(H1),cons(H2,T2)) -> F()
r313: eqt(tuplenil(H1),tuple(H2,T2)) -> F()
r314: eqt(tuplenil(H1),tuplenil(H2)) -> eqt(H1,H2)
r315: element(int(s(|0|())),tuplenil(T1)) -> T1
r316: element(int(s(|0|())),tuple(T1,T2)) -> T1
r317: element(int(s(s(N1))),tuple(T1,T2)) -> element(int(s(N1)),T2)
r318: record_new(lock()) -> tuple(mcrlrecord(),tuple(lock(),tuple(undefined(),tuple(nil(),tuplenil(nil())))))
r319: record_extract(tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2))))),lock(),resource()) -> tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2)))))
r320: record_update(tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2))))),lock(),pending(),NewF) -> tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(NewF)))))
r321: record_updates(Record,Name,nil()) -> Record
r322: record_updates(Record,Name,cons(tuple(Field,tuplenil(NewF)),Fields)) -> record_updates(record_update(Record,Name,Field,NewF),Name,Fields)
r323: locker2_map_promote_pending(nil(),Pending) -> nil()
r324: locker2_map_promote_pending(cons(Lock,Locks),Pending) -> cons(locker2_promote_pending(Lock,Pending),locker2_map_promote_pending(Locks,Pending))
r325: locker2_map_claim_lock(nil(),Resources,Client) -> nil()
r326: locker2_map_claim_lock(cons(Lock,Locks),Resources,Client) -> cons(locker2_claim_lock(Lock,Resources,Client),locker2_map_claim_lock(Locks,Resources,Client))
r327: locker2_map_add_pending(nil(),Resources,Client) -> nil()
r328: locker2_promote_pending(Lock,Client) -> case0(Client,Lock,record_extract(Lock,lock(),pending()))
r329: case0(Client,Lock,cons(Client,Pendings)) -> record_updates(Lock,lock(),cons(tuple(excl(),tuplenil(Client)),cons(tuple(pending(),tuplenil(Pendings)),nil())))
r330: case0(Client,Lock,MCRLFree0) -> Lock
r331: locker2_remove_pending(Lock,Client) -> record_updates(Lock,lock(),cons(tuple(pending(),tuplenil(subtract(record_extract(Lock,lock(),pending()),cons(Client,nil())))),nil()))
r332: locker2_add_pending(Lock,Resources,Client) -> case1(Client,Resources,Lock,member(record_extract(Lock,lock(),resource()),Resources))
r333: case1(Client,Resources,Lock,true()) -> record_updates(Lock,lock(),cons(tuple(pending(),tuplenil(append(record_extract(Lock,lock(),pending()),cons(Client,nil())))),nil()))
r334: case1(Client,Resources,Lock,false()) -> Lock
r335: locker2_release_lock(Lock,Client) -> case2(Client,Lock,gen_modtageq(Client,record_extract(Lock,lock(),excl())))
r336: case2(Client,Lock,true()) -> record_updates(Lock,lock(),cons(tuple(excllock(),excl()),nil()))
r337: case4(Client,Lock,MCRLFree1) -> false()
r338: locker2_obtainables(nil(),Client) -> true()
r339: locker2_obtainables(cons(Lock,Locks),Client) -> case5(Client,Locks,Lock,member(Client,record_extract(Lock,lock(),pending())))
r340: case5(Client,Locks,Lock,true()) -> andt(locker2_obtainable(Lock,Client),locker2_obtainables(Locks,Client))
r341: case5(Client,Locks,Lock,false()) -> locker2_obtainables(Locks,Client)
r342: locker2_check_available(Resource,nil()) -> false()
r343: locker2_check_available(Resource,cons(Lock,Locks)) -> case6(Locks,Lock,Resource,equal(Resource,record_extract(Lock,lock(),resource())))
r344: case6(Locks,Lock,Resource,true()) -> andt(equal(record_extract(Lock,lock(),excl()),nil()),equal(record_extract(Lock,lock(),pending()),nil()))
r345: case6(Locks,Lock,Resource,false()) -> locker2_check_available(Resource,Locks)
r346: locker2_check_availables(nil(),Locks) -> true()
r347: locker2_check_availables(cons(Resource,Resources),Locks) -> andt(locker2_check_available(Resource,Locks),locker2_check_availables(Resources,Locks))
r348: locker2_adduniq(nil(),List) -> List
r349: append(cons(Head,Tail),List) -> cons(Head,append(Tail,List))
r350: subtract(List,nil()) -> List
r351: subtract(List,cons(Head,Tail)) -> subtract(delete(Head,List),Tail)
r352: delete(E,nil()) -> nil()
r353: delete(E,cons(Head,Tail)) -> case8(Tail,Head,E,equal(E,Head))
r354: case8(Tail,Head,E,true()) -> Tail
r355: case8(Tail,Head,E,false()) -> cons(Head,delete(E,Tail))
r356: gen_tag(Pid) -> tuple(Pid,tuplenil(tag()))
r357: gen_modtageq(Client1,Client2) -> equal(Client1,Client2)
r358: member(E,nil()) -> false()
r359: member(E,cons(Head,Tail)) -> case9(Tail,Head,E,equal(E,Head))
r360: case9(Tail,Head,E,true()) -> true()
r361: case9(Tail,Head,E,false()) -> member(E,Tail)
r362: eqs(empty(),empty()) -> T()
r363: eqs(empty(),stack(E2,S2)) -> F()
r364: eqs(stack(E1,S1),empty()) -> F()
r365: eqs(stack(E1,S1),stack(E2,S2)) -> and(eqt(E1,E2),eqs(S1,S2))
r366: pushs(E1,S1) -> stack(E1,S1)
r367: pops(stack(E1,S1)) -> S1
r368: tops(stack(E1,S1)) -> E1
r369: istops(E1,empty()) -> F()
r370: istops(E1,stack(E2,S1)) -> eqt(E1,E2)
r371: eqc(nocalls(),nocalls()) -> T()
r372: eqc(nocalls(),calls(E2,S2,CS2)) -> F()
r373: eqc(calls(E1,S1,CS1),nocalls()) -> F()
r374: eqc(calls(E1,S1,CS1),calls(E2,S2,CS2)) -> and(eqt(E1,E2),and(eqs(S1,S2),eqc(CS1,CS2)))
r375: push(E1,E2,nocalls()) -> calls(E1,stack(E2,empty()),nocalls())
r376: push(E1,E2,calls(E3,S1,CS1)) -> push1(E1,E2,E3,S1,CS1,eqt(E1,E3))
r377: push1(E1,E2,E3,S1,CS1,T()) -> calls(E3,pushs(E2,S1),CS1)

The set of usable rules consists of

  (no rules)

Take the reduction pair:

  matrix interpretations:
  
    carrier: N^1
    order: standard order
    interpretations:
      locker2_map_claim_lock#_A(x1,x2,x3) = x1
      cons_A(x1,x2) = x2 + 1

The next rules are strictly ordered:

  p1

We remove them from the problem.  Then no dependency pair remains.

-- Reduction pair.

Consider the dependency pair problem (P, R), where P consists of

p1: subtract#(List,cons(Head,Tail)) -> subtract#(delete(Head,List),Tail)

and R consists of:

r1: or(T(),T()) -> T()
r2: or(F(),T()) -> T()
r3: or(T(),F()) -> T()
r4: or(F(),F()) -> F()
r5: and(T(),B) -> B
r6: and(B,T()) -> B
r7: and(F(),B) -> F()
r8: and(B,F()) -> F()
r9: imp(T(),B) -> B
r10: imp(F(),B) -> T()
r11: not(T()) -> F()
r12: not(F()) -> T()
r13: if(T(),B1,B2) -> B1
r14: if(F(),B1,B2) -> B2
r15: eq(T(),T()) -> T()
r16: eq(F(),F()) -> T()
r17: eq(T(),F()) -> F()
r18: eq(F(),T()) -> F()
r19: eqt(nil(),undefined()) -> F()
r20: eqt(nil(),pid(N2)) -> F()
r21: eqt(nil(),int(N2)) -> F()
r22: eqt(nil(),cons(H2,T2)) -> F()
r23: eqt(nil(),tuple(H2,T2)) -> F()
r24: eqt(nil(),tuplenil(H2)) -> F()
r25: eqt(a(),nil()) -> F()
r26: eqt(a(),a()) -> T()
r27: eqt(a(),excl()) -> F()
r28: eqt(a(),false()) -> F()
r29: eqt(a(),lock()) -> F()
r30: eqt(a(),locker()) -> F()
r31: eqt(a(),mcrlrecord()) -> F()
r32: eqt(a(),ok()) -> F()
r33: eqt(a(),pending()) -> F()
r34: eqt(a(),release()) -> F()
r35: eqt(a(),request()) -> F()
r36: eqt(a(),resource()) -> F()
r37: eqt(a(),tag()) -> F()
r38: eqt(a(),true()) -> F()
r39: eqt(a(),undefined()) -> F()
r40: eqt(a(),pid(N2)) -> F()
r41: eqt(a(),int(N2)) -> F()
r42: eqt(a(),cons(H2,T2)) -> F()
r43: eqt(a(),tuple(H2,T2)) -> F()
r44: eqt(a(),tuplenil(H2)) -> F()
r45: eqt(excl(),nil()) -> F()
r46: eqt(excl(),a()) -> F()
r47: eqt(excl(),excl()) -> T()
r48: eqt(excl(),false()) -> F()
r49: eqt(excl(),lock()) -> F()
r50: eqt(excl(),locker()) -> F()
r51: eqt(excl(),mcrlrecord()) -> F()
r52: eqt(excl(),ok()) -> F()
r53: eqt(excl(),pending()) -> F()
r54: eqt(excl(),release()) -> F()
r55: eqt(excl(),request()) -> F()
r56: eqt(excl(),resource()) -> F()
r57: eqt(excl(),tag()) -> F()
r58: eqt(excl(),true()) -> F()
r59: eqt(excl(),undefined()) -> F()
r60: eqt(excl(),pid(N2)) -> F()
r61: eqt(excl(),eqt(false(),int(N2))) -> F()
r62: eqt(false(),cons(H2,T2)) -> F()
r63: eqt(false(),tuple(H2,T2)) -> F()
r64: eqt(false(),tuplenil(H2)) -> F()
r65: eqt(lock(),nil()) -> F()
r66: eqt(lock(),a()) -> F()
r67: eqt(lock(),excl()) -> F()
r68: eqt(lock(),false()) -> F()
r69: eqt(lock(),lock()) -> T()
r70: eqt(lock(),locker()) -> F()
r71: eqt(lock(),mcrlrecord()) -> F()
r72: eqt(lock(),ok()) -> F()
r73: eqt(lock(),pending()) -> F()
r74: eqt(lock(),release()) -> F()
r75: eqt(lock(),request()) -> F()
r76: eqt(lock(),resource()) -> F()
r77: eqt(lock(),tag()) -> F()
r78: eqt(lock(),true()) -> F()
r79: eqt(lock(),undefined()) -> F()
r80: eqt(lock(),pid(N2)) -> F()
r81: eqt(lock(),int(N2)) -> F()
r82: eqt(lock(),cons(H2,T2)) -> F()
r83: eqt(lock(),tuple(H2,T2)) -> F()
r84: eqt(lock(),tuplenil(H2)) -> F()
r85: eqt(locker(),nil()) -> F()
r86: eqt(locker(),a()) -> F()
r87: eqt(locker(),excl()) -> F()
r88: eqt(locker(),false()) -> F()
r89: eqt(locker(),lock()) -> F()
r90: eqt(locker(),locker()) -> T()
r91: eqt(locker(),mcrlrecord()) -> F()
r92: eqt(locker(),ok()) -> F()
r93: eqt(locker(),pending()) -> F()
r94: eqt(locker(),release()) -> F()
r95: eqt(locker(),request()) -> F()
r96: eqt(locker(),resource()) -> F()
r97: eqt(locker(),tag()) -> F()
r98: eqt(locker(),true()) -> F()
r99: eqt(locker(),undefined()) -> F()
r100: eqt(locker(),pid(N2)) -> F()
r101: eqt(locker(),int(N2)) -> F()
r102: eqt(locker(),cons(H2,T2)) -> F()
r103: eqt(locker(),tuple(H2,T2)) -> F()
r104: eqt(locker(),tuplenil(H2)) -> F()
r105: eqt(mcrlrecord(),nil()) -> F()
r106: eqt(mcrlrecord(),a()) -> F()
r107: eqt(mcrlrecord(),excl()) -> F()
r108: eqt(mcrlrecord(),false()) -> F()
r109: eqt(mcrlrecord(),lock()) -> F()
r110: eqt(mcrlrecord(),locker()) -> F()
r111: eqt(mcrlrecord(),mcrlrecord()) -> T()
r112: eqt(mcrlrecord(),ok()) -> F()
r113: eqt(mcrlrecord(),pending()) -> F()
r114: eqt(mcrlrecord(),release()) -> F()
r115: eqt(mcrlrecord(),request()) -> F()
r116: eqt(mcrlrecord(),resource()) -> F()
r117: eqt(ok(),resource()) -> F()
r118: eqt(ok(),tag()) -> F()
r119: eqt(ok(),true()) -> F()
r120: eqt(ok(),undefined()) -> F()
r121: eqt(ok(),pid(N2)) -> F()
r122: eqt(ok(),int(N2)) -> F()
r123: eqt(ok(),cons(H2,T2)) -> F()
r124: eqt(ok(),tuple(H2,T2)) -> F()
r125: eqt(ok(),tuplenil(H2)) -> F()
r126: eqt(pending(),nil()) -> F()
r127: eqt(pending(),a()) -> F()
r128: eqt(pending(),excl()) -> F()
r129: eqt(pending(),false()) -> F()
r130: eqt(pending(),lock()) -> F()
r131: eqt(pending(),locker()) -> F()
r132: eqt(pending(),mcrlrecord()) -> F()
r133: eqt(pending(),ok()) -> F()
r134: eqt(pending(),pending()) -> T()
r135: eqt(pending(),release()) -> F()
r136: eqt(pending(),request()) -> F()
r137: eqt(pending(),resource()) -> F()
r138: eqt(pending(),tag()) -> F()
r139: eqt(pending(),true()) -> F()
r140: eqt(pending(),undefined()) -> F()
r141: eqt(pending(),pid(N2)) -> F()
r142: eqt(pending(),int(N2)) -> F()
r143: eqt(pending(),cons(H2,T2)) -> F()
r144: eqt(pending(),tuple(H2,T2)) -> F()
r145: eqt(pending(),tuplenil(H2)) -> F()
r146: eqt(release(),nil()) -> F()
r147: eqt(release(),a()) -> F()
r148: eqt(release(),excl()) -> F()
r149: eqt(release(),false()) -> F()
r150: eqt(release(),lock()) -> F()
r151: eqt(release(),locker()) -> F()
r152: eqt(release(),mcrlrecord()) -> F()
r153: eqt(release(),ok()) -> F()
r154: eqt(request(),mcrlrecord()) -> F()
r155: eqt(request(),ok()) -> F()
r156: eqt(request(),pending()) -> F()
r157: eqt(request(),release()) -> F()
r158: eqt(request(),request()) -> T()
r159: eqt(request(),resource()) -> F()
r160: eqt(request(),tag()) -> F()
r161: eqt(request(),true()) -> F()
r162: eqt(request(),undefined()) -> F()
r163: eqt(request(),pid(N2)) -> F()
r164: eqt(request(),int(N2)) -> F()
r165: eqt(request(),cons(H2,T2)) -> F()
r166: eqt(request(),tuple(H2,T2)) -> F()
r167: eqt(request(),tuplenil(H2)) -> F()
r168: eqt(resource(),nil()) -> F()
r169: eqt(resource(),a()) -> F()
r170: eqt(resource(),excl()) -> F()
r171: eqt(resource(),false()) -> F()
r172: eqt(resource(),lock()) -> F()
r173: eqt(resource(),locker()) -> F()
r174: eqt(resource(),mcrlrecord()) -> F()
r175: eqt(resource(),ok()) -> F()
r176: eqt(resource(),pending()) -> F()
r177: eqt(resource(),release()) -> F()
r178: eqt(resource(),request()) -> F()
r179: eqt(resource(),resource()) -> T()
r180: eqt(resource(),tag()) -> F()
r181: eqt(resource(),true()) -> F()
r182: eqt(resource(),undefined()) -> F()
r183: eqt(resource(),pid(N2)) -> F()
r184: eqt(resource(),int(N2)) -> F()
r185: eqt(resource(),cons(H2,T2)) -> F()
r186: eqt(resource(),tuple(H2,T2)) -> F()
r187: eqt(resource(),tuplenil(H2)) -> F()
r188: eqt(tag(),nil()) -> F()
r189: eqt(tag(),a()) -> F()
r190: eqt(tag(),excl()) -> F()
r191: eqt(tag(),false()) -> F()
r192: eqt(tag(),lock()) -> F()
r193: eqt(tag(),locker()) -> F()
r194: eqt(tag(),mcrlrecord()) -> F()
r195: eqt(tag(),ok()) -> F()
r196: eqt(tag(),pending()) -> F()
r197: eqt(tag(),release()) -> F()
r198: eqt(tag(),request()) -> F()
r199: eqt(tag(),resource()) -> F()
r200: eqt(tag(),tag()) -> T()
r201: eqt(tag(),true()) -> F()
r202: eqt(tag(),undefined()) -> F()
r203: eqt(tag(),pid(N2)) -> F()
r204: eqt(tag(),int(N2)) -> F()
r205: eqt(tag(),cons(H2,T2)) -> F()
r206: eqt(tag(),tuple(H2,T2)) -> F()
r207: eqt(tag(),tuplenil(H2)) -> F()
r208: eqt(true(),nil()) -> F()
r209: eqt(true(),a()) -> F()
r210: eqt(true(),excl()) -> F()
r211: eqt(true(),false()) -> F()
r212: eqt(true(),lock()) -> F()
r213: eqt(true(),locker()) -> F()
r214: eqt(true(),mcrlrecord()) -> F()
r215: eqt(true(),ok()) -> F()
r216: eqt(true(),pending()) -> F()
r217: eqt(true(),release()) -> F()
r218: eqt(true(),request()) -> F()
r219: eqt(true(),resource()) -> F()
r220: eqt(true(),tag()) -> F()
r221: eqt(true(),true()) -> T()
r222: eqt(true(),undefined()) -> F()
r223: eqt(true(),pid(N2)) -> F()
r224: eqt(true(),int(N2)) -> F()
r225: eqt(true(),cons(H2,T2)) -> F()
r226: eqt(true(),tuple(H2,T2)) -> F()
r227: eqt(true(),tuplenil(H2)) -> F()
r228: eqt(undefined(),nil()) -> F()
r229: eqt(undefined(),a()) -> F()
r230: eqt(undefined(),tuplenil(H2)) -> F()
r231: eqt(pid(N1),nil()) -> F()
r232: eqt(pid(N1),a()) -> F()
r233: eqt(pid(N1),excl()) -> F()
r234: eqt(pid(N1),false()) -> F()
r235: eqt(pid(N1),lock()) -> F()
r236: eqt(pid(N1),locker()) -> F()
r237: eqt(pid(N1),mcrlrecord()) -> F()
r238: eqt(pid(N1),ok()) -> F()
r239: eqt(pid(N1),pending()) -> F()
r240: eqt(pid(N1),release()) -> F()
r241: eqt(pid(N1),request()) -> F()
r242: eqt(pid(N1),resource()) -> F()
r243: eqt(pid(N1),tag()) -> F()
r244: eqt(pid(N1),true()) -> F()
r245: eqt(pid(N1),undefined()) -> F()
r246: eqt(pid(N1),pid(N2)) -> eqt(N1,N2)
r247: eqt(pid(N1),int(N2)) -> F()
r248: eqt(pid(N1),cons(H2,T2)) -> F()
r249: eqt(pid(N1),tuple(H2,T2)) -> F()
r250: eqt(pid(N1),tuplenil(H2)) -> F()
r251: eqt(int(N1),nil()) -> F()
r252: eqt(int(N1),a()) -> F()
r253: eqt(int(N1),excl()) -> F()
r254: eqt(int(N1),false()) -> F()
r255: eqt(int(N1),lock()) -> F()
r256: eqt(int(N1),locker()) -> F()
r257: eqt(int(N1),mcrlrecord()) -> F()
r258: eqt(int(N1),ok()) -> F()
r259: eqt(int(N1),pending()) -> F()
r260: eqt(int(N1),release()) -> F()
r261: eqt(int(N1),request()) -> F()
r262: eqt(int(N1),resource()) -> F()
r263: eqt(int(N1),tag()) -> F()
r264: eqt(int(N1),true()) -> F()
r265: eqt(int(N1),undefined()) -> F()
r266: eqt(cons(H1,T1),resource()) -> F()
r267: eqt(cons(H1,T1),tag()) -> F()
r268: eqt(cons(H1,T1),true()) -> F()
r269: eqt(cons(H1,T1),undefined()) -> F()
r270: eqt(cons(H1,T1),pid(N2)) -> F()
r271: eqt(cons(H1,T1),int(N2)) -> F()
r272: eqt(cons(H1,T1),cons(H2,T2)) -> and(eqt(H1,H2),eqt(T1,T2))
r273: eqt(cons(H1,T1),tuple(H2,T2)) -> F()
r274: eqt(cons(H1,T1),tuplenil(H2)) -> F()
r275: eqt(tuple(H1,T1),nil()) -> F()
r276: eqt(tuple(H1,T1),a()) -> F()
r277: eqt(tuple(H1,T1),excl()) -> F()
r278: eqt(tuple(H1,T1),false()) -> F()
r279: eqt(tuple(H1,T1),lock()) -> F()
r280: eqt(tuple(H1,T1),locker()) -> F()
r281: eqt(tuple(H1,T1),mcrlrecord()) -> F()
r282: eqt(tuple(H1,T1),ok()) -> F()
r283: eqt(tuple(H1,T1),pending()) -> F()
r284: eqt(tuple(H1,T1),release()) -> F()
r285: eqt(tuple(H1,T1),request()) -> F()
r286: eqt(tuple(H1,T1),resource()) -> F()
r287: eqt(tuple(H1,T1),tag()) -> F()
r288: eqt(tuple(H1,T1),true()) -> F()
r289: eqt(tuple(H1,T1),undefined()) -> F()
r290: eqt(tuple(H1,T1),pid(N2)) -> F()
r291: eqt(tuple(H1,T1),int(N2)) -> F()
r292: eqt(tuple(H1,T1),cons(H2,T2)) -> F()
r293: eqt(tuple(H1,T1),tuple(H2,T2)) -> and(eqt(H1,H2),eqt(T1,T2))
r294: eqt(tuple(H1,T1),tuplenil(H2)) -> F()
r295: eqt(tuplenil(H1),nil()) -> F()
r296: eqt(tuplenil(H1),a()) -> F()
r297: eqt(tuplenil(H1),excl()) -> F()
r298: eqt(tuplenil(H1),false()) -> F()
r299: eqt(tuplenil(H1),lock()) -> F()
r300: eqt(tuplenil(H1),locker()) -> F()
r301: eqt(tuplenil(H1),mcrlrecord()) -> F()
r302: eqt(tuplenil(H1),ok()) -> F()
r303: eqt(tuplenil(H1),pending()) -> F()
r304: eqt(tuplenil(H1),release()) -> F()
r305: eqt(tuplenil(H1),request()) -> F()
r306: eqt(tuplenil(H1),resource()) -> F()
r307: eqt(tuplenil(H1),tag()) -> F()
r308: eqt(tuplenil(H1),true()) -> F()
r309: eqt(tuplenil(H1),undefined()) -> F()
r310: eqt(tuplenil(H1),pid(N2)) -> F()
r311: eqt(tuplenil(H1),int(N2)) -> F()
r312: eqt(tuplenil(H1),cons(H2,T2)) -> F()
r313: eqt(tuplenil(H1),tuple(H2,T2)) -> F()
r314: eqt(tuplenil(H1),tuplenil(H2)) -> eqt(H1,H2)
r315: element(int(s(|0|())),tuplenil(T1)) -> T1
r316: element(int(s(|0|())),tuple(T1,T2)) -> T1
r317: element(int(s(s(N1))),tuple(T1,T2)) -> element(int(s(N1)),T2)
r318: record_new(lock()) -> tuple(mcrlrecord(),tuple(lock(),tuple(undefined(),tuple(nil(),tuplenil(nil())))))
r319: record_extract(tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2))))),lock(),resource()) -> tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2)))))
r320: record_update(tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2))))),lock(),pending(),NewF) -> tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(NewF)))))
r321: record_updates(Record,Name,nil()) -> Record
r322: record_updates(Record,Name,cons(tuple(Field,tuplenil(NewF)),Fields)) -> record_updates(record_update(Record,Name,Field,NewF),Name,Fields)
r323: locker2_map_promote_pending(nil(),Pending) -> nil()
r324: locker2_map_promote_pending(cons(Lock,Locks),Pending) -> cons(locker2_promote_pending(Lock,Pending),locker2_map_promote_pending(Locks,Pending))
r325: locker2_map_claim_lock(nil(),Resources,Client) -> nil()
r326: locker2_map_claim_lock(cons(Lock,Locks),Resources,Client) -> cons(locker2_claim_lock(Lock,Resources,Client),locker2_map_claim_lock(Locks,Resources,Client))
r327: locker2_map_add_pending(nil(),Resources,Client) -> nil()
r328: locker2_promote_pending(Lock,Client) -> case0(Client,Lock,record_extract(Lock,lock(),pending()))
r329: case0(Client,Lock,cons(Client,Pendings)) -> record_updates(Lock,lock(),cons(tuple(excl(),tuplenil(Client)),cons(tuple(pending(),tuplenil(Pendings)),nil())))
r330: case0(Client,Lock,MCRLFree0) -> Lock
r331: locker2_remove_pending(Lock,Client) -> record_updates(Lock,lock(),cons(tuple(pending(),tuplenil(subtract(record_extract(Lock,lock(),pending()),cons(Client,nil())))),nil()))
r332: locker2_add_pending(Lock,Resources,Client) -> case1(Client,Resources,Lock,member(record_extract(Lock,lock(),resource()),Resources))
r333: case1(Client,Resources,Lock,true()) -> record_updates(Lock,lock(),cons(tuple(pending(),tuplenil(append(record_extract(Lock,lock(),pending()),cons(Client,nil())))),nil()))
r334: case1(Client,Resources,Lock,false()) -> Lock
r335: locker2_release_lock(Lock,Client) -> case2(Client,Lock,gen_modtageq(Client,record_extract(Lock,lock(),excl())))
r336: case2(Client,Lock,true()) -> record_updates(Lock,lock(),cons(tuple(excllock(),excl()),nil()))
r337: case4(Client,Lock,MCRLFree1) -> false()
r338: locker2_obtainables(nil(),Client) -> true()
r339: locker2_obtainables(cons(Lock,Locks),Client) -> case5(Client,Locks,Lock,member(Client,record_extract(Lock,lock(),pending())))
r340: case5(Client,Locks,Lock,true()) -> andt(locker2_obtainable(Lock,Client),locker2_obtainables(Locks,Client))
r341: case5(Client,Locks,Lock,false()) -> locker2_obtainables(Locks,Client)
r342: locker2_check_available(Resource,nil()) -> false()
r343: locker2_check_available(Resource,cons(Lock,Locks)) -> case6(Locks,Lock,Resource,equal(Resource,record_extract(Lock,lock(),resource())))
r344: case6(Locks,Lock,Resource,true()) -> andt(equal(record_extract(Lock,lock(),excl()),nil()),equal(record_extract(Lock,lock(),pending()),nil()))
r345: case6(Locks,Lock,Resource,false()) -> locker2_check_available(Resource,Locks)
r346: locker2_check_availables(nil(),Locks) -> true()
r347: locker2_check_availables(cons(Resource,Resources),Locks) -> andt(locker2_check_available(Resource,Locks),locker2_check_availables(Resources,Locks))
r348: locker2_adduniq(nil(),List) -> List
r349: append(cons(Head,Tail),List) -> cons(Head,append(Tail,List))
r350: subtract(List,nil()) -> List
r351: subtract(List,cons(Head,Tail)) -> subtract(delete(Head,List),Tail)
r352: delete(E,nil()) -> nil()
r353: delete(E,cons(Head,Tail)) -> case8(Tail,Head,E,equal(E,Head))
r354: case8(Tail,Head,E,true()) -> Tail
r355: case8(Tail,Head,E,false()) -> cons(Head,delete(E,Tail))
r356: gen_tag(Pid) -> tuple(Pid,tuplenil(tag()))
r357: gen_modtageq(Client1,Client2) -> equal(Client1,Client2)
r358: member(E,nil()) -> false()
r359: member(E,cons(Head,Tail)) -> case9(Tail,Head,E,equal(E,Head))
r360: case9(Tail,Head,E,true()) -> true()
r361: case9(Tail,Head,E,false()) -> member(E,Tail)
r362: eqs(empty(),empty()) -> T()
r363: eqs(empty(),stack(E2,S2)) -> F()
r364: eqs(stack(E1,S1),empty()) -> F()
r365: eqs(stack(E1,S1),stack(E2,S2)) -> and(eqt(E1,E2),eqs(S1,S2))
r366: pushs(E1,S1) -> stack(E1,S1)
r367: pops(stack(E1,S1)) -> S1
r368: tops(stack(E1,S1)) -> E1
r369: istops(E1,empty()) -> F()
r370: istops(E1,stack(E2,S1)) -> eqt(E1,E2)
r371: eqc(nocalls(),nocalls()) -> T()
r372: eqc(nocalls(),calls(E2,S2,CS2)) -> F()
r373: eqc(calls(E1,S1,CS1),nocalls()) -> F()
r374: eqc(calls(E1,S1,CS1),calls(E2,S2,CS2)) -> and(eqt(E1,E2),and(eqs(S1,S2),eqc(CS1,CS2)))
r375: push(E1,E2,nocalls()) -> calls(E1,stack(E2,empty()),nocalls())
r376: push(E1,E2,calls(E3,S1,CS1)) -> push1(E1,E2,E3,S1,CS1,eqt(E1,E3))
r377: push1(E1,E2,E3,S1,CS1,T()) -> calls(E3,pushs(E2,S1),CS1)

The set of usable rules consists of

  r352, r353

Take the reduction pair:

  matrix interpretations:
  
    carrier: N^1
    order: standard order
    interpretations:
      subtract#_A(x1,x2) = x1 + x2
      cons_A(x1,x2) = x1 + x2 + 1
      delete_A(x1,x2) = x1 + x2
      nil_A() = 0
      case8_A(x1,x2,x3,x4) = x4
      equal_A(x1,x2) = x1 + x2

The next rules are strictly ordered:

  p1

We remove them from the problem.  Then no dependency pair remains.

-- Reduction pair.

Consider the dependency pair problem (P, R), where P consists of

p1: locker2_check_availables#(cons(Resource,Resources),Locks) -> locker2_check_availables#(Resources,Locks)

and R consists of:

r1: or(T(),T()) -> T()
r2: or(F(),T()) -> T()
r3: or(T(),F()) -> T()
r4: or(F(),F()) -> F()
r5: and(T(),B) -> B
r6: and(B,T()) -> B
r7: and(F(),B) -> F()
r8: and(B,F()) -> F()
r9: imp(T(),B) -> B
r10: imp(F(),B) -> T()
r11: not(T()) -> F()
r12: not(F()) -> T()
r13: if(T(),B1,B2) -> B1
r14: if(F(),B1,B2) -> B2
r15: eq(T(),T()) -> T()
r16: eq(F(),F()) -> T()
r17: eq(T(),F()) -> F()
r18: eq(F(),T()) -> F()
r19: eqt(nil(),undefined()) -> F()
r20: eqt(nil(),pid(N2)) -> F()
r21: eqt(nil(),int(N2)) -> F()
r22: eqt(nil(),cons(H2,T2)) -> F()
r23: eqt(nil(),tuple(H2,T2)) -> F()
r24: eqt(nil(),tuplenil(H2)) -> F()
r25: eqt(a(),nil()) -> F()
r26: eqt(a(),a()) -> T()
r27: eqt(a(),excl()) -> F()
r28: eqt(a(),false()) -> F()
r29: eqt(a(),lock()) -> F()
r30: eqt(a(),locker()) -> F()
r31: eqt(a(),mcrlrecord()) -> F()
r32: eqt(a(),ok()) -> F()
r33: eqt(a(),pending()) -> F()
r34: eqt(a(),release()) -> F()
r35: eqt(a(),request()) -> F()
r36: eqt(a(),resource()) -> F()
r37: eqt(a(),tag()) -> F()
r38: eqt(a(),true()) -> F()
r39: eqt(a(),undefined()) -> F()
r40: eqt(a(),pid(N2)) -> F()
r41: eqt(a(),int(N2)) -> F()
r42: eqt(a(),cons(H2,T2)) -> F()
r43: eqt(a(),tuple(H2,T2)) -> F()
r44: eqt(a(),tuplenil(H2)) -> F()
r45: eqt(excl(),nil()) -> F()
r46: eqt(excl(),a()) -> F()
r47: eqt(excl(),excl()) -> T()
r48: eqt(excl(),false()) -> F()
r49: eqt(excl(),lock()) -> F()
r50: eqt(excl(),locker()) -> F()
r51: eqt(excl(),mcrlrecord()) -> F()
r52: eqt(excl(),ok()) -> F()
r53: eqt(excl(),pending()) -> F()
r54: eqt(excl(),release()) -> F()
r55: eqt(excl(),request()) -> F()
r56: eqt(excl(),resource()) -> F()
r57: eqt(excl(),tag()) -> F()
r58: eqt(excl(),true()) -> F()
r59: eqt(excl(),undefined()) -> F()
r60: eqt(excl(),pid(N2)) -> F()
r61: eqt(excl(),eqt(false(),int(N2))) -> F()
r62: eqt(false(),cons(H2,T2)) -> F()
r63: eqt(false(),tuple(H2,T2)) -> F()
r64: eqt(false(),tuplenil(H2)) -> F()
r65: eqt(lock(),nil()) -> F()
r66: eqt(lock(),a()) -> F()
r67: eqt(lock(),excl()) -> F()
r68: eqt(lock(),false()) -> F()
r69: eqt(lock(),lock()) -> T()
r70: eqt(lock(),locker()) -> F()
r71: eqt(lock(),mcrlrecord()) -> F()
r72: eqt(lock(),ok()) -> F()
r73: eqt(lock(),pending()) -> F()
r74: eqt(lock(),release()) -> F()
r75: eqt(lock(),request()) -> F()
r76: eqt(lock(),resource()) -> F()
r77: eqt(lock(),tag()) -> F()
r78: eqt(lock(),true()) -> F()
r79: eqt(lock(),undefined()) -> F()
r80: eqt(lock(),pid(N2)) -> F()
r81: eqt(lock(),int(N2)) -> F()
r82: eqt(lock(),cons(H2,T2)) -> F()
r83: eqt(lock(),tuple(H2,T2)) -> F()
r84: eqt(lock(),tuplenil(H2)) -> F()
r85: eqt(locker(),nil()) -> F()
r86: eqt(locker(),a()) -> F()
r87: eqt(locker(),excl()) -> F()
r88: eqt(locker(),false()) -> F()
r89: eqt(locker(),lock()) -> F()
r90: eqt(locker(),locker()) -> T()
r91: eqt(locker(),mcrlrecord()) -> F()
r92: eqt(locker(),ok()) -> F()
r93: eqt(locker(),pending()) -> F()
r94: eqt(locker(),release()) -> F()
r95: eqt(locker(),request()) -> F()
r96: eqt(locker(),resource()) -> F()
r97: eqt(locker(),tag()) -> F()
r98: eqt(locker(),true()) -> F()
r99: eqt(locker(),undefined()) -> F()
r100: eqt(locker(),pid(N2)) -> F()
r101: eqt(locker(),int(N2)) -> F()
r102: eqt(locker(),cons(H2,T2)) -> F()
r103: eqt(locker(),tuple(H2,T2)) -> F()
r104: eqt(locker(),tuplenil(H2)) -> F()
r105: eqt(mcrlrecord(),nil()) -> F()
r106: eqt(mcrlrecord(),a()) -> F()
r107: eqt(mcrlrecord(),excl()) -> F()
r108: eqt(mcrlrecord(),false()) -> F()
r109: eqt(mcrlrecord(),lock()) -> F()
r110: eqt(mcrlrecord(),locker()) -> F()
r111: eqt(mcrlrecord(),mcrlrecord()) -> T()
r112: eqt(mcrlrecord(),ok()) -> F()
r113: eqt(mcrlrecord(),pending()) -> F()
r114: eqt(mcrlrecord(),release()) -> F()
r115: eqt(mcrlrecord(),request()) -> F()
r116: eqt(mcrlrecord(),resource()) -> F()
r117: eqt(ok(),resource()) -> F()
r118: eqt(ok(),tag()) -> F()
r119: eqt(ok(),true()) -> F()
r120: eqt(ok(),undefined()) -> F()
r121: eqt(ok(),pid(N2)) -> F()
r122: eqt(ok(),int(N2)) -> F()
r123: eqt(ok(),cons(H2,T2)) -> F()
r124: eqt(ok(),tuple(H2,T2)) -> F()
r125: eqt(ok(),tuplenil(H2)) -> F()
r126: eqt(pending(),nil()) -> F()
r127: eqt(pending(),a()) -> F()
r128: eqt(pending(),excl()) -> F()
r129: eqt(pending(),false()) -> F()
r130: eqt(pending(),lock()) -> F()
r131: eqt(pending(),locker()) -> F()
r132: eqt(pending(),mcrlrecord()) -> F()
r133: eqt(pending(),ok()) -> F()
r134: eqt(pending(),pending()) -> T()
r135: eqt(pending(),release()) -> F()
r136: eqt(pending(),request()) -> F()
r137: eqt(pending(),resource()) -> F()
r138: eqt(pending(),tag()) -> F()
r139: eqt(pending(),true()) -> F()
r140: eqt(pending(),undefined()) -> F()
r141: eqt(pending(),pid(N2)) -> F()
r142: eqt(pending(),int(N2)) -> F()
r143: eqt(pending(),cons(H2,T2)) -> F()
r144: eqt(pending(),tuple(H2,T2)) -> F()
r145: eqt(pending(),tuplenil(H2)) -> F()
r146: eqt(release(),nil()) -> F()
r147: eqt(release(),a()) -> F()
r148: eqt(release(),excl()) -> F()
r149: eqt(release(),false()) -> F()
r150: eqt(release(),lock()) -> F()
r151: eqt(release(),locker()) -> F()
r152: eqt(release(),mcrlrecord()) -> F()
r153: eqt(release(),ok()) -> F()
r154: eqt(request(),mcrlrecord()) -> F()
r155: eqt(request(),ok()) -> F()
r156: eqt(request(),pending()) -> F()
r157: eqt(request(),release()) -> F()
r158: eqt(request(),request()) -> T()
r159: eqt(request(),resource()) -> F()
r160: eqt(request(),tag()) -> F()
r161: eqt(request(),true()) -> F()
r162: eqt(request(),undefined()) -> F()
r163: eqt(request(),pid(N2)) -> F()
r164: eqt(request(),int(N2)) -> F()
r165: eqt(request(),cons(H2,T2)) -> F()
r166: eqt(request(),tuple(H2,T2)) -> F()
r167: eqt(request(),tuplenil(H2)) -> F()
r168: eqt(resource(),nil()) -> F()
r169: eqt(resource(),a()) -> F()
r170: eqt(resource(),excl()) -> F()
r171: eqt(resource(),false()) -> F()
r172: eqt(resource(),lock()) -> F()
r173: eqt(resource(),locker()) -> F()
r174: eqt(resource(),mcrlrecord()) -> F()
r175: eqt(resource(),ok()) -> F()
r176: eqt(resource(),pending()) -> F()
r177: eqt(resource(),release()) -> F()
r178: eqt(resource(),request()) -> F()
r179: eqt(resource(),resource()) -> T()
r180: eqt(resource(),tag()) -> F()
r181: eqt(resource(),true()) -> F()
r182: eqt(resource(),undefined()) -> F()
r183: eqt(resource(),pid(N2)) -> F()
r184: eqt(resource(),int(N2)) -> F()
r185: eqt(resource(),cons(H2,T2)) -> F()
r186: eqt(resource(),tuple(H2,T2)) -> F()
r187: eqt(resource(),tuplenil(H2)) -> F()
r188: eqt(tag(),nil()) -> F()
r189: eqt(tag(),a()) -> F()
r190: eqt(tag(),excl()) -> F()
r191: eqt(tag(),false()) -> F()
r192: eqt(tag(),lock()) -> F()
r193: eqt(tag(),locker()) -> F()
r194: eqt(tag(),mcrlrecord()) -> F()
r195: eqt(tag(),ok()) -> F()
r196: eqt(tag(),pending()) -> F()
r197: eqt(tag(),release()) -> F()
r198: eqt(tag(),request()) -> F()
r199: eqt(tag(),resource()) -> F()
r200: eqt(tag(),tag()) -> T()
r201: eqt(tag(),true()) -> F()
r202: eqt(tag(),undefined()) -> F()
r203: eqt(tag(),pid(N2)) -> F()
r204: eqt(tag(),int(N2)) -> F()
r205: eqt(tag(),cons(H2,T2)) -> F()
r206: eqt(tag(),tuple(H2,T2)) -> F()
r207: eqt(tag(),tuplenil(H2)) -> F()
r208: eqt(true(),nil()) -> F()
r209: eqt(true(),a()) -> F()
r210: eqt(true(),excl()) -> F()
r211: eqt(true(),false()) -> F()
r212: eqt(true(),lock()) -> F()
r213: eqt(true(),locker()) -> F()
r214: eqt(true(),mcrlrecord()) -> F()
r215: eqt(true(),ok()) -> F()
r216: eqt(true(),pending()) -> F()
r217: eqt(true(),release()) -> F()
r218: eqt(true(),request()) -> F()
r219: eqt(true(),resource()) -> F()
r220: eqt(true(),tag()) -> F()
r221: eqt(true(),true()) -> T()
r222: eqt(true(),undefined()) -> F()
r223: eqt(true(),pid(N2)) -> F()
r224: eqt(true(),int(N2)) -> F()
r225: eqt(true(),cons(H2,T2)) -> F()
r226: eqt(true(),tuple(H2,T2)) -> F()
r227: eqt(true(),tuplenil(H2)) -> F()
r228: eqt(undefined(),nil()) -> F()
r229: eqt(undefined(),a()) -> F()
r230: eqt(undefined(),tuplenil(H2)) -> F()
r231: eqt(pid(N1),nil()) -> F()
r232: eqt(pid(N1),a()) -> F()
r233: eqt(pid(N1),excl()) -> F()
r234: eqt(pid(N1),false()) -> F()
r235: eqt(pid(N1),lock()) -> F()
r236: eqt(pid(N1),locker()) -> F()
r237: eqt(pid(N1),mcrlrecord()) -> F()
r238: eqt(pid(N1),ok()) -> F()
r239: eqt(pid(N1),pending()) -> F()
r240: eqt(pid(N1),release()) -> F()
r241: eqt(pid(N1),request()) -> F()
r242: eqt(pid(N1),resource()) -> F()
r243: eqt(pid(N1),tag()) -> F()
r244: eqt(pid(N1),true()) -> F()
r245: eqt(pid(N1),undefined()) -> F()
r246: eqt(pid(N1),pid(N2)) -> eqt(N1,N2)
r247: eqt(pid(N1),int(N2)) -> F()
r248: eqt(pid(N1),cons(H2,T2)) -> F()
r249: eqt(pid(N1),tuple(H2,T2)) -> F()
r250: eqt(pid(N1),tuplenil(H2)) -> F()
r251: eqt(int(N1),nil()) -> F()
r252: eqt(int(N1),a()) -> F()
r253: eqt(int(N1),excl()) -> F()
r254: eqt(int(N1),false()) -> F()
r255: eqt(int(N1),lock()) -> F()
r256: eqt(int(N1),locker()) -> F()
r257: eqt(int(N1),mcrlrecord()) -> F()
r258: eqt(int(N1),ok()) -> F()
r259: eqt(int(N1),pending()) -> F()
r260: eqt(int(N1),release()) -> F()
r261: eqt(int(N1),request()) -> F()
r262: eqt(int(N1),resource()) -> F()
r263: eqt(int(N1),tag()) -> F()
r264: eqt(int(N1),true()) -> F()
r265: eqt(int(N1),undefined()) -> F()
r266: eqt(cons(H1,T1),resource()) -> F()
r267: eqt(cons(H1,T1),tag()) -> F()
r268: eqt(cons(H1,T1),true()) -> F()
r269: eqt(cons(H1,T1),undefined()) -> F()
r270: eqt(cons(H1,T1),pid(N2)) -> F()
r271: eqt(cons(H1,T1),int(N2)) -> F()
r272: eqt(cons(H1,T1),cons(H2,T2)) -> and(eqt(H1,H2),eqt(T1,T2))
r273: eqt(cons(H1,T1),tuple(H2,T2)) -> F()
r274: eqt(cons(H1,T1),tuplenil(H2)) -> F()
r275: eqt(tuple(H1,T1),nil()) -> F()
r276: eqt(tuple(H1,T1),a()) -> F()
r277: eqt(tuple(H1,T1),excl()) -> F()
r278: eqt(tuple(H1,T1),false()) -> F()
r279: eqt(tuple(H1,T1),lock()) -> F()
r280: eqt(tuple(H1,T1),locker()) -> F()
r281: eqt(tuple(H1,T1),mcrlrecord()) -> F()
r282: eqt(tuple(H1,T1),ok()) -> F()
r283: eqt(tuple(H1,T1),pending()) -> F()
r284: eqt(tuple(H1,T1),release()) -> F()
r285: eqt(tuple(H1,T1),request()) -> F()
r286: eqt(tuple(H1,T1),resource()) -> F()
r287: eqt(tuple(H1,T1),tag()) -> F()
r288: eqt(tuple(H1,T1),true()) -> F()
r289: eqt(tuple(H1,T1),undefined()) -> F()
r290: eqt(tuple(H1,T1),pid(N2)) -> F()
r291: eqt(tuple(H1,T1),int(N2)) -> F()
r292: eqt(tuple(H1,T1),cons(H2,T2)) -> F()
r293: eqt(tuple(H1,T1),tuple(H2,T2)) -> and(eqt(H1,H2),eqt(T1,T2))
r294: eqt(tuple(H1,T1),tuplenil(H2)) -> F()
r295: eqt(tuplenil(H1),nil()) -> F()
r296: eqt(tuplenil(H1),a()) -> F()
r297: eqt(tuplenil(H1),excl()) -> F()
r298: eqt(tuplenil(H1),false()) -> F()
r299: eqt(tuplenil(H1),lock()) -> F()
r300: eqt(tuplenil(H1),locker()) -> F()
r301: eqt(tuplenil(H1),mcrlrecord()) -> F()
r302: eqt(tuplenil(H1),ok()) -> F()
r303: eqt(tuplenil(H1),pending()) -> F()
r304: eqt(tuplenil(H1),release()) -> F()
r305: eqt(tuplenil(H1),request()) -> F()
r306: eqt(tuplenil(H1),resource()) -> F()
r307: eqt(tuplenil(H1),tag()) -> F()
r308: eqt(tuplenil(H1),true()) -> F()
r309: eqt(tuplenil(H1),undefined()) -> F()
r310: eqt(tuplenil(H1),pid(N2)) -> F()
r311: eqt(tuplenil(H1),int(N2)) -> F()
r312: eqt(tuplenil(H1),cons(H2,T2)) -> F()
r313: eqt(tuplenil(H1),tuple(H2,T2)) -> F()
r314: eqt(tuplenil(H1),tuplenil(H2)) -> eqt(H1,H2)
r315: element(int(s(|0|())),tuplenil(T1)) -> T1
r316: element(int(s(|0|())),tuple(T1,T2)) -> T1
r317: element(int(s(s(N1))),tuple(T1,T2)) -> element(int(s(N1)),T2)
r318: record_new(lock()) -> tuple(mcrlrecord(),tuple(lock(),tuple(undefined(),tuple(nil(),tuplenil(nil())))))
r319: record_extract(tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2))))),lock(),resource()) -> tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2)))))
r320: record_update(tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2))))),lock(),pending(),NewF) -> tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(NewF)))))
r321: record_updates(Record,Name,nil()) -> Record
r322: record_updates(Record,Name,cons(tuple(Field,tuplenil(NewF)),Fields)) -> record_updates(record_update(Record,Name,Field,NewF),Name,Fields)
r323: locker2_map_promote_pending(nil(),Pending) -> nil()
r324: locker2_map_promote_pending(cons(Lock,Locks),Pending) -> cons(locker2_promote_pending(Lock,Pending),locker2_map_promote_pending(Locks,Pending))
r325: locker2_map_claim_lock(nil(),Resources,Client) -> nil()
r326: locker2_map_claim_lock(cons(Lock,Locks),Resources,Client) -> cons(locker2_claim_lock(Lock,Resources,Client),locker2_map_claim_lock(Locks,Resources,Client))
r327: locker2_map_add_pending(nil(),Resources,Client) -> nil()
r328: locker2_promote_pending(Lock,Client) -> case0(Client,Lock,record_extract(Lock,lock(),pending()))
r329: case0(Client,Lock,cons(Client,Pendings)) -> record_updates(Lock,lock(),cons(tuple(excl(),tuplenil(Client)),cons(tuple(pending(),tuplenil(Pendings)),nil())))
r330: case0(Client,Lock,MCRLFree0) -> Lock
r331: locker2_remove_pending(Lock,Client) -> record_updates(Lock,lock(),cons(tuple(pending(),tuplenil(subtract(record_extract(Lock,lock(),pending()),cons(Client,nil())))),nil()))
r332: locker2_add_pending(Lock,Resources,Client) -> case1(Client,Resources,Lock,member(record_extract(Lock,lock(),resource()),Resources))
r333: case1(Client,Resources,Lock,true()) -> record_updates(Lock,lock(),cons(tuple(pending(),tuplenil(append(record_extract(Lock,lock(),pending()),cons(Client,nil())))),nil()))
r334: case1(Client,Resources,Lock,false()) -> Lock
r335: locker2_release_lock(Lock,Client) -> case2(Client,Lock,gen_modtageq(Client,record_extract(Lock,lock(),excl())))
r336: case2(Client,Lock,true()) -> record_updates(Lock,lock(),cons(tuple(excllock(),excl()),nil()))
r337: case4(Client,Lock,MCRLFree1) -> false()
r338: locker2_obtainables(nil(),Client) -> true()
r339: locker2_obtainables(cons(Lock,Locks),Client) -> case5(Client,Locks,Lock,member(Client,record_extract(Lock,lock(),pending())))
r340: case5(Client,Locks,Lock,true()) -> andt(locker2_obtainable(Lock,Client),locker2_obtainables(Locks,Client))
r341: case5(Client,Locks,Lock,false()) -> locker2_obtainables(Locks,Client)
r342: locker2_check_available(Resource,nil()) -> false()
r343: locker2_check_available(Resource,cons(Lock,Locks)) -> case6(Locks,Lock,Resource,equal(Resource,record_extract(Lock,lock(),resource())))
r344: case6(Locks,Lock,Resource,true()) -> andt(equal(record_extract(Lock,lock(),excl()),nil()),equal(record_extract(Lock,lock(),pending()),nil()))
r345: case6(Locks,Lock,Resource,false()) -> locker2_check_available(Resource,Locks)
r346: locker2_check_availables(nil(),Locks) -> true()
r347: locker2_check_availables(cons(Resource,Resources),Locks) -> andt(locker2_check_available(Resource,Locks),locker2_check_availables(Resources,Locks))
r348: locker2_adduniq(nil(),List) -> List
r349: append(cons(Head,Tail),List) -> cons(Head,append(Tail,List))
r350: subtract(List,nil()) -> List
r351: subtract(List,cons(Head,Tail)) -> subtract(delete(Head,List),Tail)
r352: delete(E,nil()) -> nil()
r353: delete(E,cons(Head,Tail)) -> case8(Tail,Head,E,equal(E,Head))
r354: case8(Tail,Head,E,true()) -> Tail
r355: case8(Tail,Head,E,false()) -> cons(Head,delete(E,Tail))
r356: gen_tag(Pid) -> tuple(Pid,tuplenil(tag()))
r357: gen_modtageq(Client1,Client2) -> equal(Client1,Client2)
r358: member(E,nil()) -> false()
r359: member(E,cons(Head,Tail)) -> case9(Tail,Head,E,equal(E,Head))
r360: case9(Tail,Head,E,true()) -> true()
r361: case9(Tail,Head,E,false()) -> member(E,Tail)
r362: eqs(empty(),empty()) -> T()
r363: eqs(empty(),stack(E2,S2)) -> F()
r364: eqs(stack(E1,S1),empty()) -> F()
r365: eqs(stack(E1,S1),stack(E2,S2)) -> and(eqt(E1,E2),eqs(S1,S2))
r366: pushs(E1,S1) -> stack(E1,S1)
r367: pops(stack(E1,S1)) -> S1
r368: tops(stack(E1,S1)) -> E1
r369: istops(E1,empty()) -> F()
r370: istops(E1,stack(E2,S1)) -> eqt(E1,E2)
r371: eqc(nocalls(),nocalls()) -> T()
r372: eqc(nocalls(),calls(E2,S2,CS2)) -> F()
r373: eqc(calls(E1,S1,CS1),nocalls()) -> F()
r374: eqc(calls(E1,S1,CS1),calls(E2,S2,CS2)) -> and(eqt(E1,E2),and(eqs(S1,S2),eqc(CS1,CS2)))
r375: push(E1,E2,nocalls()) -> calls(E1,stack(E2,empty()),nocalls())
r376: push(E1,E2,calls(E3,S1,CS1)) -> push1(E1,E2,E3,S1,CS1,eqt(E1,E3))
r377: push1(E1,E2,E3,S1,CS1,T()) -> calls(E3,pushs(E2,S1),CS1)

The set of usable rules consists of

  (no rules)

Take the reduction pair:

  matrix interpretations:
  
    carrier: N^1
    order: standard order
    interpretations:
      locker2_check_availables#_A(x1,x2) = x1
      cons_A(x1,x2) = x2 + 1

The next rules are strictly ordered:

  p1

We remove them from the problem.  Then no dependency pair remains.

-- Reduction pair.

Consider the dependency pair problem (P, R), where P consists of

p1: append#(cons(Head,Tail),List) -> append#(Tail,List)

and R consists of:

r1: or(T(),T()) -> T()
r2: or(F(),T()) -> T()
r3: or(T(),F()) -> T()
r4: or(F(),F()) -> F()
r5: and(T(),B) -> B
r6: and(B,T()) -> B
r7: and(F(),B) -> F()
r8: and(B,F()) -> F()
r9: imp(T(),B) -> B
r10: imp(F(),B) -> T()
r11: not(T()) -> F()
r12: not(F()) -> T()
r13: if(T(),B1,B2) -> B1
r14: if(F(),B1,B2) -> B2
r15: eq(T(),T()) -> T()
r16: eq(F(),F()) -> T()
r17: eq(T(),F()) -> F()
r18: eq(F(),T()) -> F()
r19: eqt(nil(),undefined()) -> F()
r20: eqt(nil(),pid(N2)) -> F()
r21: eqt(nil(),int(N2)) -> F()
r22: eqt(nil(),cons(H2,T2)) -> F()
r23: eqt(nil(),tuple(H2,T2)) -> F()
r24: eqt(nil(),tuplenil(H2)) -> F()
r25: eqt(a(),nil()) -> F()
r26: eqt(a(),a()) -> T()
r27: eqt(a(),excl()) -> F()
r28: eqt(a(),false()) -> F()
r29: eqt(a(),lock()) -> F()
r30: eqt(a(),locker()) -> F()
r31: eqt(a(),mcrlrecord()) -> F()
r32: eqt(a(),ok()) -> F()
r33: eqt(a(),pending()) -> F()
r34: eqt(a(),release()) -> F()
r35: eqt(a(),request()) -> F()
r36: eqt(a(),resource()) -> F()
r37: eqt(a(),tag()) -> F()
r38: eqt(a(),true()) -> F()
r39: eqt(a(),undefined()) -> F()
r40: eqt(a(),pid(N2)) -> F()
r41: eqt(a(),int(N2)) -> F()
r42: eqt(a(),cons(H2,T2)) -> F()
r43: eqt(a(),tuple(H2,T2)) -> F()
r44: eqt(a(),tuplenil(H2)) -> F()
r45: eqt(excl(),nil()) -> F()
r46: eqt(excl(),a()) -> F()
r47: eqt(excl(),excl()) -> T()
r48: eqt(excl(),false()) -> F()
r49: eqt(excl(),lock()) -> F()
r50: eqt(excl(),locker()) -> F()
r51: eqt(excl(),mcrlrecord()) -> F()
r52: eqt(excl(),ok()) -> F()
r53: eqt(excl(),pending()) -> F()
r54: eqt(excl(),release()) -> F()
r55: eqt(excl(),request()) -> F()
r56: eqt(excl(),resource()) -> F()
r57: eqt(excl(),tag()) -> F()
r58: eqt(excl(),true()) -> F()
r59: eqt(excl(),undefined()) -> F()
r60: eqt(excl(),pid(N2)) -> F()
r61: eqt(excl(),eqt(false(),int(N2))) -> F()
r62: eqt(false(),cons(H2,T2)) -> F()
r63: eqt(false(),tuple(H2,T2)) -> F()
r64: eqt(false(),tuplenil(H2)) -> F()
r65: eqt(lock(),nil()) -> F()
r66: eqt(lock(),a()) -> F()
r67: eqt(lock(),excl()) -> F()
r68: eqt(lock(),false()) -> F()
r69: eqt(lock(),lock()) -> T()
r70: eqt(lock(),locker()) -> F()
r71: eqt(lock(),mcrlrecord()) -> F()
r72: eqt(lock(),ok()) -> F()
r73: eqt(lock(),pending()) -> F()
r74: eqt(lock(),release()) -> F()
r75: eqt(lock(),request()) -> F()
r76: eqt(lock(),resource()) -> F()
r77: eqt(lock(),tag()) -> F()
r78: eqt(lock(),true()) -> F()
r79: eqt(lock(),undefined()) -> F()
r80: eqt(lock(),pid(N2)) -> F()
r81: eqt(lock(),int(N2)) -> F()
r82: eqt(lock(),cons(H2,T2)) -> F()
r83: eqt(lock(),tuple(H2,T2)) -> F()
r84: eqt(lock(),tuplenil(H2)) -> F()
r85: eqt(locker(),nil()) -> F()
r86: eqt(locker(),a()) -> F()
r87: eqt(locker(),excl()) -> F()
r88: eqt(locker(),false()) -> F()
r89: eqt(locker(),lock()) -> F()
r90: eqt(locker(),locker()) -> T()
r91: eqt(locker(),mcrlrecord()) -> F()
r92: eqt(locker(),ok()) -> F()
r93: eqt(locker(),pending()) -> F()
r94: eqt(locker(),release()) -> F()
r95: eqt(locker(),request()) -> F()
r96: eqt(locker(),resource()) -> F()
r97: eqt(locker(),tag()) -> F()
r98: eqt(locker(),true()) -> F()
r99: eqt(locker(),undefined()) -> F()
r100: eqt(locker(),pid(N2)) -> F()
r101: eqt(locker(),int(N2)) -> F()
r102: eqt(locker(),cons(H2,T2)) -> F()
r103: eqt(locker(),tuple(H2,T2)) -> F()
r104: eqt(locker(),tuplenil(H2)) -> F()
r105: eqt(mcrlrecord(),nil()) -> F()
r106: eqt(mcrlrecord(),a()) -> F()
r107: eqt(mcrlrecord(),excl()) -> F()
r108: eqt(mcrlrecord(),false()) -> F()
r109: eqt(mcrlrecord(),lock()) -> F()
r110: eqt(mcrlrecord(),locker()) -> F()
r111: eqt(mcrlrecord(),mcrlrecord()) -> T()
r112: eqt(mcrlrecord(),ok()) -> F()
r113: eqt(mcrlrecord(),pending()) -> F()
r114: eqt(mcrlrecord(),release()) -> F()
r115: eqt(mcrlrecord(),request()) -> F()
r116: eqt(mcrlrecord(),resource()) -> F()
r117: eqt(ok(),resource()) -> F()
r118: eqt(ok(),tag()) -> F()
r119: eqt(ok(),true()) -> F()
r120: eqt(ok(),undefined()) -> F()
r121: eqt(ok(),pid(N2)) -> F()
r122: eqt(ok(),int(N2)) -> F()
r123: eqt(ok(),cons(H2,T2)) -> F()
r124: eqt(ok(),tuple(H2,T2)) -> F()
r125: eqt(ok(),tuplenil(H2)) -> F()
r126: eqt(pending(),nil()) -> F()
r127: eqt(pending(),a()) -> F()
r128: eqt(pending(),excl()) -> F()
r129: eqt(pending(),false()) -> F()
r130: eqt(pending(),lock()) -> F()
r131: eqt(pending(),locker()) -> F()
r132: eqt(pending(),mcrlrecord()) -> F()
r133: eqt(pending(),ok()) -> F()
r134: eqt(pending(),pending()) -> T()
r135: eqt(pending(),release()) -> F()
r136: eqt(pending(),request()) -> F()
r137: eqt(pending(),resource()) -> F()
r138: eqt(pending(),tag()) -> F()
r139: eqt(pending(),true()) -> F()
r140: eqt(pending(),undefined()) -> F()
r141: eqt(pending(),pid(N2)) -> F()
r142: eqt(pending(),int(N2)) -> F()
r143: eqt(pending(),cons(H2,T2)) -> F()
r144: eqt(pending(),tuple(H2,T2)) -> F()
r145: eqt(pending(),tuplenil(H2)) -> F()
r146: eqt(release(),nil()) -> F()
r147: eqt(release(),a()) -> F()
r148: eqt(release(),excl()) -> F()
r149: eqt(release(),false()) -> F()
r150: eqt(release(),lock()) -> F()
r151: eqt(release(),locker()) -> F()
r152: eqt(release(),mcrlrecord()) -> F()
r153: eqt(release(),ok()) -> F()
r154: eqt(request(),mcrlrecord()) -> F()
r155: eqt(request(),ok()) -> F()
r156: eqt(request(),pending()) -> F()
r157: eqt(request(),release()) -> F()
r158: eqt(request(),request()) -> T()
r159: eqt(request(),resource()) -> F()
r160: eqt(request(),tag()) -> F()
r161: eqt(request(),true()) -> F()
r162: eqt(request(),undefined()) -> F()
r163: eqt(request(),pid(N2)) -> F()
r164: eqt(request(),int(N2)) -> F()
r165: eqt(request(),cons(H2,T2)) -> F()
r166: eqt(request(),tuple(H2,T2)) -> F()
r167: eqt(request(),tuplenil(H2)) -> F()
r168: eqt(resource(),nil()) -> F()
r169: eqt(resource(),a()) -> F()
r170: eqt(resource(),excl()) -> F()
r171: eqt(resource(),false()) -> F()
r172: eqt(resource(),lock()) -> F()
r173: eqt(resource(),locker()) -> F()
r174: eqt(resource(),mcrlrecord()) -> F()
r175: eqt(resource(),ok()) -> F()
r176: eqt(resource(),pending()) -> F()
r177: eqt(resource(),release()) -> F()
r178: eqt(resource(),request()) -> F()
r179: eqt(resource(),resource()) -> T()
r180: eqt(resource(),tag()) -> F()
r181: eqt(resource(),true()) -> F()
r182: eqt(resource(),undefined()) -> F()
r183: eqt(resource(),pid(N2)) -> F()
r184: eqt(resource(),int(N2)) -> F()
r185: eqt(resource(),cons(H2,T2)) -> F()
r186: eqt(resource(),tuple(H2,T2)) -> F()
r187: eqt(resource(),tuplenil(H2)) -> F()
r188: eqt(tag(),nil()) -> F()
r189: eqt(tag(),a()) -> F()
r190: eqt(tag(),excl()) -> F()
r191: eqt(tag(),false()) -> F()
r192: eqt(tag(),lock()) -> F()
r193: eqt(tag(),locker()) -> F()
r194: eqt(tag(),mcrlrecord()) -> F()
r195: eqt(tag(),ok()) -> F()
r196: eqt(tag(),pending()) -> F()
r197: eqt(tag(),release()) -> F()
r198: eqt(tag(),request()) -> F()
r199: eqt(tag(),resource()) -> F()
r200: eqt(tag(),tag()) -> T()
r201: eqt(tag(),true()) -> F()
r202: eqt(tag(),undefined()) -> F()
r203: eqt(tag(),pid(N2)) -> F()
r204: eqt(tag(),int(N2)) -> F()
r205: eqt(tag(),cons(H2,T2)) -> F()
r206: eqt(tag(),tuple(H2,T2)) -> F()
r207: eqt(tag(),tuplenil(H2)) -> F()
r208: eqt(true(),nil()) -> F()
r209: eqt(true(),a()) -> F()
r210: eqt(true(),excl()) -> F()
r211: eqt(true(),false()) -> F()
r212: eqt(true(),lock()) -> F()
r213: eqt(true(),locker()) -> F()
r214: eqt(true(),mcrlrecord()) -> F()
r215: eqt(true(),ok()) -> F()
r216: eqt(true(),pending()) -> F()
r217: eqt(true(),release()) -> F()
r218: eqt(true(),request()) -> F()
r219: eqt(true(),resource()) -> F()
r220: eqt(true(),tag()) -> F()
r221: eqt(true(),true()) -> T()
r222: eqt(true(),undefined()) -> F()
r223: eqt(true(),pid(N2)) -> F()
r224: eqt(true(),int(N2)) -> F()
r225: eqt(true(),cons(H2,T2)) -> F()
r226: eqt(true(),tuple(H2,T2)) -> F()
r227: eqt(true(),tuplenil(H2)) -> F()
r228: eqt(undefined(),nil()) -> F()
r229: eqt(undefined(),a()) -> F()
r230: eqt(undefined(),tuplenil(H2)) -> F()
r231: eqt(pid(N1),nil()) -> F()
r232: eqt(pid(N1),a()) -> F()
r233: eqt(pid(N1),excl()) -> F()
r234: eqt(pid(N1),false()) -> F()
r235: eqt(pid(N1),lock()) -> F()
r236: eqt(pid(N1),locker()) -> F()
r237: eqt(pid(N1),mcrlrecord()) -> F()
r238: eqt(pid(N1),ok()) -> F()
r239: eqt(pid(N1),pending()) -> F()
r240: eqt(pid(N1),release()) -> F()
r241: eqt(pid(N1),request()) -> F()
r242: eqt(pid(N1),resource()) -> F()
r243: eqt(pid(N1),tag()) -> F()
r244: eqt(pid(N1),true()) -> F()
r245: eqt(pid(N1),undefined()) -> F()
r246: eqt(pid(N1),pid(N2)) -> eqt(N1,N2)
r247: eqt(pid(N1),int(N2)) -> F()
r248: eqt(pid(N1),cons(H2,T2)) -> F()
r249: eqt(pid(N1),tuple(H2,T2)) -> F()
r250: eqt(pid(N1),tuplenil(H2)) -> F()
r251: eqt(int(N1),nil()) -> F()
r252: eqt(int(N1),a()) -> F()
r253: eqt(int(N1),excl()) -> F()
r254: eqt(int(N1),false()) -> F()
r255: eqt(int(N1),lock()) -> F()
r256: eqt(int(N1),locker()) -> F()
r257: eqt(int(N1),mcrlrecord()) -> F()
r258: eqt(int(N1),ok()) -> F()
r259: eqt(int(N1),pending()) -> F()
r260: eqt(int(N1),release()) -> F()
r261: eqt(int(N1),request()) -> F()
r262: eqt(int(N1),resource()) -> F()
r263: eqt(int(N1),tag()) -> F()
r264: eqt(int(N1),true()) -> F()
r265: eqt(int(N1),undefined()) -> F()
r266: eqt(cons(H1,T1),resource()) -> F()
r267: eqt(cons(H1,T1),tag()) -> F()
r268: eqt(cons(H1,T1),true()) -> F()
r269: eqt(cons(H1,T1),undefined()) -> F()
r270: eqt(cons(H1,T1),pid(N2)) -> F()
r271: eqt(cons(H1,T1),int(N2)) -> F()
r272: eqt(cons(H1,T1),cons(H2,T2)) -> and(eqt(H1,H2),eqt(T1,T2))
r273: eqt(cons(H1,T1),tuple(H2,T2)) -> F()
r274: eqt(cons(H1,T1),tuplenil(H2)) -> F()
r275: eqt(tuple(H1,T1),nil()) -> F()
r276: eqt(tuple(H1,T1),a()) -> F()
r277: eqt(tuple(H1,T1),excl()) -> F()
r278: eqt(tuple(H1,T1),false()) -> F()
r279: eqt(tuple(H1,T1),lock()) -> F()
r280: eqt(tuple(H1,T1),locker()) -> F()
r281: eqt(tuple(H1,T1),mcrlrecord()) -> F()
r282: eqt(tuple(H1,T1),ok()) -> F()
r283: eqt(tuple(H1,T1),pending()) -> F()
r284: eqt(tuple(H1,T1),release()) -> F()
r285: eqt(tuple(H1,T1),request()) -> F()
r286: eqt(tuple(H1,T1),resource()) -> F()
r287: eqt(tuple(H1,T1),tag()) -> F()
r288: eqt(tuple(H1,T1),true()) -> F()
r289: eqt(tuple(H1,T1),undefined()) -> F()
r290: eqt(tuple(H1,T1),pid(N2)) -> F()
r291: eqt(tuple(H1,T1),int(N2)) -> F()
r292: eqt(tuple(H1,T1),cons(H2,T2)) -> F()
r293: eqt(tuple(H1,T1),tuple(H2,T2)) -> and(eqt(H1,H2),eqt(T1,T2))
r294: eqt(tuple(H1,T1),tuplenil(H2)) -> F()
r295: eqt(tuplenil(H1),nil()) -> F()
r296: eqt(tuplenil(H1),a()) -> F()
r297: eqt(tuplenil(H1),excl()) -> F()
r298: eqt(tuplenil(H1),false()) -> F()
r299: eqt(tuplenil(H1),lock()) -> F()
r300: eqt(tuplenil(H1),locker()) -> F()
r301: eqt(tuplenil(H1),mcrlrecord()) -> F()
r302: eqt(tuplenil(H1),ok()) -> F()
r303: eqt(tuplenil(H1),pending()) -> F()
r304: eqt(tuplenil(H1),release()) -> F()
r305: eqt(tuplenil(H1),request()) -> F()
r306: eqt(tuplenil(H1),resource()) -> F()
r307: eqt(tuplenil(H1),tag()) -> F()
r308: eqt(tuplenil(H1),true()) -> F()
r309: eqt(tuplenil(H1),undefined()) -> F()
r310: eqt(tuplenil(H1),pid(N2)) -> F()
r311: eqt(tuplenil(H1),int(N2)) -> F()
r312: eqt(tuplenil(H1),cons(H2,T2)) -> F()
r313: eqt(tuplenil(H1),tuple(H2,T2)) -> F()
r314: eqt(tuplenil(H1),tuplenil(H2)) -> eqt(H1,H2)
r315: element(int(s(|0|())),tuplenil(T1)) -> T1
r316: element(int(s(|0|())),tuple(T1,T2)) -> T1
r317: element(int(s(s(N1))),tuple(T1,T2)) -> element(int(s(N1)),T2)
r318: record_new(lock()) -> tuple(mcrlrecord(),tuple(lock(),tuple(undefined(),tuple(nil(),tuplenil(nil())))))
r319: record_extract(tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2))))),lock(),resource()) -> tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2)))))
r320: record_update(tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(F2))))),lock(),pending(),NewF) -> tuple(mcrlrecord(),tuple(lock(),tuple(F0,tuple(F1,tuplenil(NewF)))))
r321: record_updates(Record,Name,nil()) -> Record
r322: record_updates(Record,Name,cons(tuple(Field,tuplenil(NewF)),Fields)) -> record_updates(record_update(Record,Name,Field,NewF),Name,Fields)
r323: locker2_map_promote_pending(nil(),Pending) -> nil()
r324: locker2_map_promote_pending(cons(Lock,Locks),Pending) -> cons(locker2_promote_pending(Lock,Pending),locker2_map_promote_pending(Locks,Pending))
r325: locker2_map_claim_lock(nil(),Resources,Client) -> nil()
r326: locker2_map_claim_lock(cons(Lock,Locks),Resources,Client) -> cons(locker2_claim_lock(Lock,Resources,Client),locker2_map_claim_lock(Locks,Resources,Client))
r327: locker2_map_add_pending(nil(),Resources,Client) -> nil()
r328: locker2_promote_pending(Lock,Client) -> case0(Client,Lock,record_extract(Lock,lock(),pending()))
r329: case0(Client,Lock,cons(Client,Pendings)) -> record_updates(Lock,lock(),cons(tuple(excl(),tuplenil(Client)),cons(tuple(pending(),tuplenil(Pendings)),nil())))
r330: case0(Client,Lock,MCRLFree0) -> Lock
r331: locker2_remove_pending(Lock,Client) -> record_updates(Lock,lock(),cons(tuple(pending(),tuplenil(subtract(record_extract(Lock,lock(),pending()),cons(Client,nil())))),nil()))
r332: locker2_add_pending(Lock,Resources,Client) -> case1(Client,Resources,Lock,member(record_extract(Lock,lock(),resource()),Resources))
r333: case1(Client,Resources,Lock,true()) -> record_updates(Lock,lock(),cons(tuple(pending(),tuplenil(append(record_extract(Lock,lock(),pending()),cons(Client,nil())))),nil()))
r334: case1(Client,Resources,Lock,false()) -> Lock
r335: locker2_release_lock(Lock,Client) -> case2(Client,Lock,gen_modtageq(Client,record_extract(Lock,lock(),excl())))
r336: case2(Client,Lock,true()) -> record_updates(Lock,lock(),cons(tuple(excllock(),excl()),nil()))
r337: case4(Client,Lock,MCRLFree1) -> false()
r338: locker2_obtainables(nil(),Client) -> true()
r339: locker2_obtainables(cons(Lock,Locks),Client) -> case5(Client,Locks,Lock,member(Client,record_extract(Lock,lock(),pending())))
r340: case5(Client,Locks,Lock,true()) -> andt(locker2_obtainable(Lock,Client),locker2_obtainables(Locks,Client))
r341: case5(Client,Locks,Lock,false()) -> locker2_obtainables(Locks,Client)
r342: locker2_check_available(Resource,nil()) -> false()
r343: locker2_check_available(Resource,cons(Lock,Locks)) -> case6(Locks,Lock,Resource,equal(Resource,record_extract(Lock,lock(),resource())))
r344: case6(Locks,Lock,Resource,true()) -> andt(equal(record_extract(Lock,lock(),excl()),nil()),equal(record_extract(Lock,lock(),pending()),nil()))
r345: case6(Locks,Lock,Resource,false()) -> locker2_check_available(Resource,Locks)
r346: locker2_check_availables(nil(),Locks) -> true()
r347: locker2_check_availables(cons(Resource,Resources),Locks) -> andt(locker2_check_available(Resource,Locks),locker2_check_availables(Resources,Locks))
r348: locker2_adduniq(nil(),List) -> List
r349: append(cons(Head,Tail),List) -> cons(Head,append(Tail,List))
r350: subtract(List,nil()) -> List
r351: subtract(List,cons(Head,Tail)) -> subtract(delete(Head,List),Tail)
r352: delete(E,nil()) -> nil()
r353: delete(E,cons(Head,Tail)) -> case8(Tail,Head,E,equal(E,Head))
r354: case8(Tail,Head,E,true()) -> Tail
r355: case8(Tail,Head,E,false()) -> cons(Head,delete(E,Tail))
r356: gen_tag(Pid) -> tuple(Pid,tuplenil(tag()))
r357: gen_modtageq(Client1,Client2) -> equal(Client1,Client2)
r358: member(E,nil()) -> false()
r359: member(E,cons(Head,Tail)) -> case9(Tail,Head,E,equal(E,Head))
r360: case9(Tail,Head,E,true()) -> true()
r361: case9(Tail,Head,E,false()) -> member(E,Tail)
r362: eqs(empty(),empty()) -> T()
r363: eqs(empty(),stack(E2,S2)) -> F()
r364: eqs(stack(E1,S1),empty()) -> F()
r365: eqs(stack(E1,S1),stack(E2,S2)) -> and(eqt(E1,E2),eqs(S1,S2))
r366: pushs(E1,S1) -> stack(E1,S1)
r367: pops(stack(E1,S1)) -> S1
r368: tops(stack(E1,S1)) -> E1
r369: istops(E1,empty()) -> F()
r370: istops(E1,stack(E2,S1)) -> eqt(E1,E2)
r371: eqc(nocalls(),nocalls()) -> T()
r372: eqc(nocalls(),calls(E2,S2,CS2)) -> F()
r373: eqc(calls(E1,S1,CS1),nocalls()) -> F()
r374: eqc(calls(E1,S1,CS1),calls(E2,S2,CS2)) -> and(eqt(E1,E2),and(eqs(S1,S2),eqc(CS1,CS2)))
r375: push(E1,E2,nocalls()) -> calls(E1,stack(E2,empty()),nocalls())
r376: push(E1,E2,calls(E3,S1,CS1)) -> push1(E1,E2,E3,S1,CS1,eqt(E1,E3))
r377: push1(E1,E2,E3,S1,CS1,T()) -> calls(E3,pushs(E2,S1),CS1)

The set of usable rules consists of

  (no rules)

Take the reduction pair:

  matrix interpretations:
  
    carrier: N^1
    order: standard order
    interpretations:
      append#_A(x1,x2) = x1
      cons_A(x1,x2) = x2 + 1

The next rules are strictly ordered:

  p1

We remove them from the problem.  Then no dependency pair remains.