MAYBE 0.27/0.30 MAYBE 0.27/0.30 0.27/0.30 Problem: 0.27/0.30 U101(tt(),V1,V2) -> U102(isNatural(activate(V1)),activate(V2)) 0.27/0.30 U102(tt(),V2) -> U103(isLNat(activate(V2))) 0.27/0.30 U103(tt()) -> tt() 0.27/0.30 U11(tt(),N,XS) -> snd(splitAt(activate(N),activate(XS))) 0.27/0.30 U111(tt(),V1) -> U112(isLNat(activate(V1))) 0.27/0.30 U112(tt()) -> tt() 0.27/0.30 U121(tt(),V1) -> U122(isNatural(activate(V1))) 0.27/0.30 U122(tt()) -> tt() 0.27/0.30 U131(tt(),V1,V2) -> U132(isNatural(activate(V1)),activate(V2)) 0.27/0.30 U132(tt(),V2) -> U133(isLNat(activate(V2))) 0.27/0.30 U133(tt()) -> tt() 0.27/0.30 U141(tt(),V1,V2) -> U142(isLNat(activate(V1)),activate(V2)) 0.27/0.30 U142(tt(),V2) -> U143(isLNat(activate(V2))) 0.27/0.30 U143(tt()) -> tt() 0.27/0.30 U151(tt(),V1,V2) -> U152(isNatural(activate(V1)),activate(V2)) 0.27/0.30 U152(tt(),V2) -> U153(isLNat(activate(V2))) 0.27/0.30 U153(tt()) -> tt() 0.27/0.30 U161(tt(),N) -> cons(activate(N),n__natsFrom(n__s(activate(N)))) 0.27/0.30 U171(tt(),N,XS) -> head(afterNth(activate(N),activate(XS))) 0.27/0.30 U181(tt(),Y) -> activate(Y) 0.27/0.30 U191(tt(),XS) -> pair(nil(),activate(XS)) 0.27/0.30 U201(tt(),N,X,XS) -> U202(splitAt(activate(N),activate(XS)),activate(X)) 0.27/0.30 U202(pair(YS,ZS),X) -> pair(cons(activate(X),YS),ZS) 0.27/0.30 U21(tt(),X) -> activate(X) 0.27/0.30 U211(tt(),XS) -> activate(XS) 0.27/0.30 U221(tt(),N,XS) -> fst(splitAt(activate(N),activate(XS))) 0.27/0.30 U31(tt(),N) -> activate(N) 0.27/0.30 U41(tt(),V1,V2) -> U42(isNatural(activate(V1)),activate(V2)) 0.27/0.30 U42(tt(),V2) -> U43(isLNat(activate(V2))) 0.27/0.30 U43(tt()) -> tt() 0.27/0.30 U51(tt(),V1,V2) -> U52(isNatural(activate(V1)),activate(V2)) 0.27/0.30 U52(tt(),V2) -> U53(isLNat(activate(V2))) 0.27/0.30 U53(tt()) -> tt() 0.27/0.30 U61(tt(),V1) -> U62(isPLNat(activate(V1))) 0.27/0.30 U62(tt()) -> tt() 0.27/0.30 U71(tt(),V1) -> U72(isNatural(activate(V1))) 0.27/0.30 U72(tt()) -> tt() 0.27/0.30 U81(tt(),V1) -> U82(isPLNat(activate(V1))) 0.27/0.30 U82(tt()) -> tt() 0.27/0.30 U91(tt(),V1) -> U92(isLNat(activate(V1))) 0.27/0.30 U92(tt()) -> tt() 0.27/0.30 afterNth(N,XS) -> 0.27/0.30 U11(and(and(isNatural(N),n__isNaturalKind(N)),n__and(n__isLNat(XS),n__isLNatKind(XS))),N,XS) 0.27/0.30 and(tt(),X) -> activate(X) 0.27/0.30 fst(pair(X,Y)) -> 0.27/0.30 U21(and(and(isLNat(X),n__isLNatKind(X)),n__and(n__isLNat(Y),n__isLNatKind(Y))),X) 0.27/0.30 head(cons(N,XS)) -> 0.27/0.30 U31(and(and(isNatural(N),n__isNaturalKind(N)),n__and(n__isLNat(activate(XS)), 0.27/0.30 n__isLNatKind(activate(XS)))), 0.27/0.30 N) 0.27/0.30 isLNat(n__nil()) -> tt() 0.27/0.30 isLNat(n__afterNth(V1,V2)) -> 0.27/0.30 U41(and(isNaturalKind(activate(V1)),n__isLNatKind(activate(V2))),activate(V1),activate(V2)) 0.27/0.30 isLNat(n__cons(V1,V2)) -> 0.27/0.30 U51(and(isNaturalKind(activate(V1)),n__isLNatKind(activate(V2))),activate(V1),activate(V2)) 0.27/0.30 isLNat(n__fst(V1)) -> U61(isPLNatKind(activate(V1)),activate(V1)) 0.27/0.30 isLNat(n__natsFrom(V1)) -> U71(isNaturalKind(activate(V1)),activate(V1)) 0.27/0.30 isLNat(n__snd(V1)) -> U81(isPLNatKind(activate(V1)),activate(V1)) 0.27/0.30 isLNat(n__tail(V1)) -> U91(isLNatKind(activate(V1)),activate(V1)) 0.27/0.30 isLNat(n__take(V1,V2)) -> 0.27/0.30 U101(and(isNaturalKind(activate(V1)),n__isLNatKind(activate(V2))),activate(V1),activate(V2)) 0.27/0.30 isLNatKind(n__nil()) -> tt() 0.27/0.30 isLNatKind(n__afterNth(V1,V2)) -> and(isNaturalKind(activate(V1)),n__isLNatKind(activate(V2))) 0.27/0.30 isLNatKind(n__cons(V1,V2)) -> and(isNaturalKind(activate(V1)),n__isLNatKind(activate(V2))) 0.27/0.30 isLNatKind(n__fst(V1)) -> isPLNatKind(activate(V1)) 0.27/0.30 isLNatKind(n__natsFrom(V1)) -> isNaturalKind(activate(V1)) 0.27/0.30 isLNatKind(n__snd(V1)) -> isPLNatKind(activate(V1)) 0.27/0.30 isLNatKind(n__tail(V1)) -> isLNatKind(activate(V1)) 0.27/0.30 isLNatKind(n__take(V1,V2)) -> and(isNaturalKind(activate(V1)),n__isLNatKind(activate(V2))) 0.27/0.30 isNatural(n__0()) -> tt() 0.27/0.30 isNatural(n__head(V1)) -> U111(isLNatKind(activate(V1)),activate(V1)) 0.27/0.30 isNatural(n__s(V1)) -> U121(isNaturalKind(activate(V1)),activate(V1)) 0.27/0.30 isNatural(n__sel(V1,V2)) -> 0.27/0.30 U131(and(isNaturalKind(activate(V1)),n__isLNatKind(activate(V2))),activate(V1),activate(V2)) 0.27/0.30 isNaturalKind(n__0()) -> tt() 0.27/0.30 isNaturalKind(n__head(V1)) -> isLNatKind(activate(V1)) 0.27/0.30 isNaturalKind(n__s(V1)) -> isNaturalKind(activate(V1)) 0.27/0.30 isNaturalKind(n__sel(V1,V2)) -> and(isNaturalKind(activate(V1)),n__isLNatKind(activate(V2))) 0.27/0.30 isPLNat(n__pair(V1,V2)) -> 0.27/0.30 U141(and(isLNatKind(activate(V1)),n__isLNatKind(activate(V2))),activate(V1),activate(V2)) 0.27/0.30 isPLNat(n__splitAt(V1,V2)) -> 0.27/0.30 U151(and(isNaturalKind(activate(V1)),n__isLNatKind(activate(V2))),activate(V1),activate(V2)) 0.27/0.30 isPLNatKind(n__pair(V1,V2)) -> and(isLNatKind(activate(V1)),n__isLNatKind(activate(V2))) 0.27/0.30 isPLNatKind(n__splitAt(V1,V2)) -> and(isNaturalKind(activate(V1)),n__isLNatKind(activate(V2))) 0.27/0.30 natsFrom(N) -> U161(and(isNatural(N),n__isNaturalKind(N)),N) 0.27/0.30 sel(N,XS) -> 0.27/0.30 U171(and(and(isNatural(N),n__isNaturalKind(N)),n__and(n__isLNat(XS),n__isLNatKind(XS))),N,XS) 0.27/0.30 snd(pair(X,Y)) -> 0.27/0.30 U181(and(and(isLNat(X),n__isLNatKind(X)),n__and(n__isLNat(Y),n__isLNatKind(Y))),Y) 0.27/0.30 splitAt(0(),XS) -> U191(and(isLNat(XS),n__isLNatKind(XS)),XS) 0.27/0.30 splitAt(s(N),cons(X,XS)) -> 0.27/0.30 U201(and(and(isNatural(N),n__isNaturalKind(N)),n__and(n__and(n__isNatural(X),n__isNaturalKind(X)), 0.27/0.30 n__and(n__isLNat(activate(XS)), 0.27/0.30 n__isLNatKind 0.27/0.30 (activate(XS))))), 0.27/0.30 N,X,activate(XS)) 0.27/0.30 tail(cons(N,XS)) -> 0.27/0.30 U211(and(and(isNatural(N),n__isNaturalKind(N)),n__and(n__isLNat(activate(XS)), 0.27/0.30 n__isLNatKind(activate(XS)))), 0.27/0.30 activate(XS)) 0.27/0.30 take(N,XS) -> 0.27/0.30 U221(and(and(isNatural(N),n__isNaturalKind(N)),n__and(n__isLNat(XS),n__isLNatKind(XS))),N,XS) 0.27/0.30 natsFrom(X) -> n__natsFrom(X) 0.27/0.30 s(X) -> n__s(X) 0.27/0.30 isNaturalKind(X) -> n__isNaturalKind(X) 0.27/0.30 and(X1,X2) -> n__and(X1,X2) 0.27/0.30 isLNat(X) -> n__isLNat(X) 0.27/0.30 isLNatKind(X) -> n__isLNatKind(X) 0.27/0.30 nil() -> n__nil() 0.27/0.30 afterNth(X1,X2) -> n__afterNth(X1,X2) 0.27/0.30 cons(X1,X2) -> n__cons(X1,X2) 0.27/0.30 fst(X) -> n__fst(X) 0.27/0.30 snd(X) -> n__snd(X) 0.27/0.30 tail(X) -> n__tail(X) 0.27/0.30 take(X1,X2) -> n__take(X1,X2) 0.27/0.30 0() -> n__0() 0.27/0.30 head(X) -> n__head(X) 0.27/0.30 sel(X1,X2) -> n__sel(X1,X2) 0.27/0.30 pair(X1,X2) -> n__pair(X1,X2) 0.27/0.30 splitAt(X1,X2) -> n__splitAt(X1,X2) 0.27/0.30 isNatural(X) -> n__isNatural(X) 0.27/0.30 activate(n__natsFrom(X)) -> natsFrom(activate(X)) 0.27/0.30 activate(n__s(X)) -> s(activate(X)) 0.27/0.30 activate(n__isNaturalKind(X)) -> isNaturalKind(X) 0.27/0.30 activate(n__and(X1,X2)) -> and(activate(X1),X2) 0.27/0.30 activate(n__isLNat(X)) -> isLNat(X) 0.27/0.30 activate(n__isLNatKind(X)) -> isLNatKind(X) 0.27/0.30 activate(n__nil()) -> nil() 0.27/0.30 activate(n__afterNth(X1,X2)) -> afterNth(activate(X1),activate(X2)) 0.27/0.30 activate(n__cons(X1,X2)) -> cons(activate(X1),X2) 0.27/0.30 activate(n__fst(X)) -> fst(activate(X)) 0.27/0.30 activate(n__snd(X)) -> snd(activate(X)) 0.27/0.30 activate(n__tail(X)) -> tail(activate(X)) 0.27/0.30 activate(n__take(X1,X2)) -> take(activate(X1),activate(X2)) 0.27/0.30 activate(n__0()) -> 0() 0.27/0.30 activate(n__head(X)) -> head(activate(X)) 0.27/0.30 activate(n__sel(X1,X2)) -> sel(activate(X1),activate(X2)) 0.27/0.30 activate(n__pair(X1,X2)) -> pair(activate(X1),activate(X2)) 0.27/0.30 activate(n__splitAt(X1,X2)) -> splitAt(activate(X1),activate(X2)) 0.27/0.30 activate(n__isNatural(X)) -> isNatural(X) 0.27/0.30 activate(X) -> X 0.27/0.30 0.27/0.30 Proof: 0.27/0.30 Open 0.27/0.31 EOF