YES(?,O(n^1)) 3.26/1.07 YES(?,O(n^1)) 3.26/1.09 3.26/1.09 Problem: 3.26/1.09 active(zeros()) -> mark(cons(0(),zeros())) 3.26/1.09 active(and(tt(),X)) -> mark(X) 3.26/1.09 active(length(nil())) -> mark(0()) 3.26/1.09 active(length(cons(N,L))) -> mark(s(length(L))) 3.26/1.09 active(take(0(),IL)) -> mark(nil()) 3.26/1.09 active(take(s(M),cons(N,IL))) -> mark(cons(N,take(M,IL))) 3.26/1.09 active(cons(X1,X2)) -> cons(active(X1),X2) 3.26/1.09 active(and(X1,X2)) -> and(active(X1),X2) 3.26/1.09 active(length(X)) -> length(active(X)) 3.26/1.09 active(s(X)) -> s(active(X)) 3.26/1.09 active(take(X1,X2)) -> take(active(X1),X2) 3.26/1.09 active(take(X1,X2)) -> take(X1,active(X2)) 3.26/1.09 cons(mark(X1),X2) -> mark(cons(X1,X2)) 3.26/1.09 and(mark(X1),X2) -> mark(and(X1,X2)) 3.26/1.09 length(mark(X)) -> mark(length(X)) 3.26/1.09 s(mark(X)) -> mark(s(X)) 3.26/1.09 take(mark(X1),X2) -> mark(take(X1,X2)) 3.26/1.09 take(X1,mark(X2)) -> mark(take(X1,X2)) 3.26/1.09 proper(zeros()) -> ok(zeros()) 3.26/1.09 proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) 3.26/1.09 proper(0()) -> ok(0()) 3.26/1.09 proper(and(X1,X2)) -> and(proper(X1),proper(X2)) 3.26/1.09 proper(tt()) -> ok(tt()) 3.26/1.09 proper(length(X)) -> length(proper(X)) 3.26/1.09 proper(nil()) -> ok(nil()) 3.26/1.09 proper(s(X)) -> s(proper(X)) 3.26/1.09 proper(take(X1,X2)) -> take(proper(X1),proper(X2)) 3.26/1.09 cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) 3.26/1.09 and(ok(X1),ok(X2)) -> ok(and(X1,X2)) 3.26/1.09 length(ok(X)) -> ok(length(X)) 3.26/1.09 s(ok(X)) -> ok(s(X)) 3.26/1.09 take(ok(X1),ok(X2)) -> ok(take(X1,X2)) 3.26/1.09 top(mark(X)) -> top(proper(X)) 3.26/1.09 top(ok(X)) -> top(active(X)) 3.26/1.09 3.26/1.09 Proof: 3.26/1.09 Bounds Processor: 3.26/1.09 bound: 5 3.26/1.09 enrichment: match 3.26/1.09 automaton: 3.26/1.09 final states: {14,13,12,11,10,9,8,7} 3.26/1.09 transitions: 3.26/1.09 active3(52) -> 46* 3.26/1.09 top1(32) -> 14* 3.26/1.09 nil3() -> 53* 3.26/1.09 active1(5) -> 32* 3.26/1.09 active1(2) -> 32* 3.26/1.09 active1(4) -> 32* 3.26/1.09 active1(6) -> 32* 3.26/1.09 active1(1) -> 32* 3.26/1.09 active1(3) -> 32* 3.26/1.09 tt3() -> 53* 3.26/1.09 proper1(5) -> 32* 3.26/1.09 proper1(2) -> 32* 3.26/1.09 proper1(4) -> 32* 3.26/1.09 proper1(6) -> 32* 3.26/1.09 proper1(1) -> 32* 3.26/1.09 proper1(3) -> 32* 3.26/1.09 03() -> 56* 3.26/1.09 ok1(25) -> 25,10 3.26/1.09 ok1(27) -> 27,11 3.26/1.09 ok1(29) -> 29,12 3.26/1.09 ok1(19) -> 32,13 3.26/1.09 ok1(21) -> 21,8 3.26/1.09 ok1(23) -> 23,9 3.26/1.09 ok1(18) -> 32,13 3.26/1.09 zeros3() -> 53* 3.26/1.09 take1(3,1) -> 29* 3.26/1.09 take1(3,3) -> 29* 3.26/1.09 take1(3,5) -> 29* 3.26/1.09 take1(4,2) -> 29* 3.26/1.09 take1(4,4) -> 29* 3.26/1.09 take1(4,6) -> 29* 3.26/1.09 take1(5,1) -> 29* 3.26/1.09 take1(5,3) -> 29* 3.26/1.09 take1(5,5) -> 29* 3.26/1.09 take1(6,2) -> 29* 3.26/1.09 take1(1,2) -> 29* 3.26/1.09 take1(6,4) -> 29* 3.26/1.09 take1(1,4) -> 29* 3.26/1.09 take1(6,6) -> 29* 3.26/1.09 take1(1,6) -> 29* 3.26/1.09 take1(2,1) -> 29* 3.26/1.09 take1(2,3) -> 29* 3.26/1.09 take1(2,5) -> 29* 3.26/1.09 take1(3,2) -> 29* 3.26/1.09 take1(3,4) -> 29* 3.26/1.09 take1(3,6) -> 29* 3.26/1.09 take1(4,1) -> 29* 3.26/1.09 take1(4,3) -> 29* 3.26/1.09 take1(4,5) -> 29* 3.26/1.09 take1(5,2) -> 29* 3.26/1.09 take1(5,4) -> 29* 3.26/1.09 take1(5,6) -> 29* 3.26/1.09 take1(6,1) -> 29* 3.26/1.09 take1(1,1) -> 29* 3.26/1.09 take1(6,3) -> 29* 3.26/1.09 take1(1,3) -> 29* 3.26/1.09 take1(6,5) -> 29* 3.26/1.09 take1(1,5) -> 29* 3.26/1.09 take1(2,2) -> 29* 3.26/1.09 take1(2,4) -> 29* 3.26/1.09 take1(2,6) -> 29* 3.26/1.09 ok4(59) -> 46* 3.26/1.09 s1(5) -> 27* 3.26/1.09 s1(2) -> 27* 3.26/1.09 s1(4) -> 27* 3.26/1.09 s1(6) -> 27* 3.26/1.09 s1(1) -> 27* 3.26/1.09 s1(3) -> 27* 3.26/1.09 cons4(56,53) -> 59* 3.26/1.09 cons4(58,38) -> 46* 3.26/1.09 length1(5) -> 25* 3.26/1.09 length1(2) -> 25* 3.26/1.09 length1(4) -> 25* 3.26/1.09 length1(6) -> 25* 3.26/1.09 length1(1) -> 25* 3.26/1.09 length1(3) -> 25* 3.26/1.09 active4(59) -> 62* 3.26/1.09 active4(39) -> 58* 3.26/1.09 and1(2,6) -> 23* 3.26/1.09 and1(3,1) -> 23* 3.26/1.09 and1(3,3) -> 23* 3.26/1.09 and1(3,5) -> 23* 3.26/1.09 and1(4,2) -> 23* 3.26/1.09 and1(4,4) -> 23* 3.26/1.09 and1(4,6) -> 23* 3.26/1.09 and1(5,1) -> 23* 3.26/1.09 and1(5,3) -> 23* 3.26/1.09 and1(5,5) -> 23* 3.26/1.09 and1(6,2) -> 23* 3.26/1.09 and1(1,2) -> 23* 3.26/1.09 and1(6,4) -> 23* 3.26/1.09 and1(1,4) -> 23* 3.26/1.09 and1(6,6) -> 23* 3.26/1.09 and1(1,6) -> 23* 3.26/1.09 and1(2,1) -> 23* 3.26/1.09 and1(2,3) -> 23* 3.26/1.09 and1(2,5) -> 23* 3.26/1.09 and1(3,2) -> 23* 3.26/1.09 and1(3,4) -> 23* 3.26/1.09 and1(3,6) -> 23* 3.26/1.09 and1(4,1) -> 23* 3.26/1.09 and1(4,3) -> 23* 3.26/1.09 and1(4,5) -> 23* 3.26/1.09 and1(5,2) -> 23* 3.26/1.09 and1(5,4) -> 23* 3.26/1.09 and1(5,6) -> 23* 3.26/1.09 and1(6,1) -> 23* 3.26/1.09 and1(1,1) -> 23* 3.26/1.09 and1(6,3) -> 23* 3.26/1.09 and1(1,3) -> 23* 3.26/1.09 and1(6,5) -> 23* 3.26/1.09 and1(1,5) -> 23* 3.26/1.09 and1(2,2) -> 23* 3.26/1.09 and1(2,4) -> 23* 3.26/1.09 top4(62) -> 14* 3.26/1.09 cons1(2,6) -> 21* 3.26/1.09 cons1(3,1) -> 21* 3.26/1.09 cons1(3,3) -> 21* 3.26/1.09 cons1(3,5) -> 21* 3.26/1.09 cons1(4,2) -> 21* 3.26/1.09 cons1(4,4) -> 21* 3.26/1.09 cons1(4,6) -> 21* 3.26/1.09 cons1(19,18) -> 20* 3.26/1.09 cons1(5,1) -> 21* 3.26/1.09 cons1(5,3) -> 21* 3.26/1.09 cons1(5,5) -> 21* 3.26/1.09 cons1(6,2) -> 21* 3.26/1.09 cons1(1,2) -> 21* 3.26/1.09 cons1(6,4) -> 21* 3.26/1.09 cons1(1,4) -> 21* 3.26/1.09 cons1(6,6) -> 21* 3.26/1.09 cons1(1,6) -> 21* 3.26/1.09 cons1(2,1) -> 21* 3.26/1.09 cons1(2,3) -> 21* 3.26/1.09 cons1(2,5) -> 21* 3.26/1.09 cons1(3,2) -> 21* 3.26/1.09 cons1(3,4) -> 21* 3.26/1.09 cons1(3,6) -> 21* 3.26/1.09 cons1(4,1) -> 21* 3.26/1.09 cons1(4,3) -> 21* 3.26/1.09 cons1(4,5) -> 21* 3.26/1.09 cons1(5,2) -> 21* 3.26/1.09 cons1(5,4) -> 21* 3.26/1.09 cons1(5,6) -> 21* 3.26/1.09 cons1(6,1) -> 21* 3.26/1.09 cons1(1,1) -> 21* 3.26/1.09 cons1(6,3) -> 21* 3.26/1.09 cons1(1,3) -> 21* 3.26/1.09 cons1(6,5) -> 21* 3.26/1.09 cons1(1,5) -> 21* 3.26/1.09 cons1(2,2) -> 21* 3.26/1.09 cons1(2,4) -> 21* 3.26/1.09 cons5(63,53) -> 62* 3.26/1.09 nil1() -> 18* 3.26/1.09 active5(56) -> 63* 3.26/1.09 tt1() -> 18* 3.26/1.09 01() -> 19* 3.26/1.09 zeros1() -> 18* 3.26/1.09 mark1(25) -> 25,10 3.26/1.09 mark1(20) -> 32,7 3.26/1.09 mark1(27) -> 27,11 3.26/1.09 mark1(29) -> 29,12 3.26/1.09 mark1(21) -> 21,8 3.26/1.09 mark1(23) -> 23,9 3.26/1.09 top2(33) -> 14* 3.26/1.09 active0(5) -> 7* 3.26/1.09 active0(2) -> 7* 3.26/1.09 active0(4) -> 7* 3.26/1.09 active0(6) -> 7* 3.26/1.09 active0(1) -> 7* 3.26/1.09 active0(3) -> 7* 3.26/1.09 active2(19) -> 33* 3.26/1.09 active2(18) -> 33* 3.26/1.09 zeros0() -> 1* 3.26/1.09 proper2(20) -> 33* 3.26/1.09 proper2(19) -> 42* 3.26/1.09 proper2(18) -> 41* 3.26/1.09 mark0(5) -> 2* 3.26/1.09 mark0(2) -> 2* 3.26/1.09 mark0(4) -> 2* 3.26/1.09 mark0(6) -> 2* 3.26/1.09 mark0(1) -> 2* 3.26/1.09 mark0(3) -> 2* 3.26/1.09 cons2(39,38) -> 40* 3.26/1.09 cons2(42,41) -> 33* 3.26/1.09 cons0(3,1) -> 8* 3.26/1.09 cons0(3,3) -> 8* 3.26/1.09 cons0(3,5) -> 8* 3.26/1.09 cons0(4,2) -> 8* 3.26/1.09 cons0(4,4) -> 8* 3.26/1.09 cons0(4,6) -> 8* 3.26/1.09 cons0(5,1) -> 8* 3.26/1.09 cons0(5,3) -> 8* 3.26/1.09 cons0(5,5) -> 8* 3.26/1.09 cons0(6,2) -> 8* 3.26/1.09 cons0(1,2) -> 8* 3.26/1.09 cons0(6,4) -> 8* 3.26/1.09 cons0(1,4) -> 8* 3.26/1.09 cons0(6,6) -> 8* 3.26/1.09 cons0(1,6) -> 8* 3.26/1.09 cons0(2,1) -> 8* 3.26/1.09 cons0(2,3) -> 8* 3.26/1.09 cons0(2,5) -> 8* 3.26/1.09 cons0(3,2) -> 8* 3.26/1.09 cons0(3,4) -> 8* 3.26/1.09 cons0(3,6) -> 8* 3.26/1.09 cons0(4,1) -> 8* 3.26/1.09 cons0(4,3) -> 8* 3.26/1.09 cons0(4,5) -> 8* 3.26/1.09 cons0(5,2) -> 8* 3.26/1.09 cons0(5,4) -> 8* 3.26/1.09 cons0(5,6) -> 8* 3.26/1.09 cons0(6,1) -> 8* 3.26/1.09 cons0(1,1) -> 8* 3.26/1.09 cons0(6,3) -> 8* 3.26/1.09 cons0(1,3) -> 8* 3.26/1.09 cons0(6,5) -> 8* 3.26/1.09 cons0(1,5) -> 8* 3.26/1.09 cons0(2,2) -> 8* 3.26/1.09 cons0(2,4) -> 8* 3.26/1.09 cons0(2,6) -> 8* 3.26/1.09 mark2(40) -> 33* 3.26/1.09 00() -> 3* 3.26/1.09 02() -> 39* 3.26/1.09 and0(3,1) -> 9* 3.26/1.09 and0(3,3) -> 9* 3.26/1.09 and0(3,5) -> 9* 3.26/1.09 and0(4,2) -> 9* 3.26/1.09 and0(4,4) -> 9* 3.26/1.09 and0(4,6) -> 9* 3.26/1.09 and0(5,1) -> 9* 3.26/1.09 and0(5,3) -> 9* 3.26/1.09 and0(5,5) -> 9* 3.26/1.09 and0(6,2) -> 9* 3.26/1.09 and0(1,2) -> 9* 3.26/1.09 and0(6,4) -> 9* 3.26/1.09 and0(1,4) -> 9* 3.26/1.09 and0(6,6) -> 9* 3.26/1.09 and0(1,6) -> 9* 3.26/1.09 and0(2,1) -> 9* 3.26/1.09 and0(2,3) -> 9* 3.26/1.09 and0(2,5) -> 9* 3.26/1.09 and0(3,2) -> 9* 3.26/1.09 and0(3,4) -> 9* 3.26/1.09 and0(3,6) -> 9* 3.26/1.09 and0(4,1) -> 9* 3.26/1.09 and0(4,3) -> 9* 3.26/1.09 and0(4,5) -> 9* 3.26/1.09 and0(5,2) -> 9* 3.26/1.09 and0(5,4) -> 9* 3.26/1.09 and0(5,6) -> 9* 3.26/1.09 and0(6,1) -> 9* 3.26/1.09 and0(1,1) -> 9* 3.26/1.09 and0(6,3) -> 9* 3.26/1.09 and0(1,3) -> 9* 3.26/1.09 and0(6,5) -> 9* 3.26/1.09 and0(1,5) -> 9* 3.26/1.09 and0(2,2) -> 9* 3.26/1.09 and0(2,4) -> 9* 3.26/1.09 and0(2,6) -> 9* 3.26/1.09 zeros2() -> 38* 3.26/1.09 tt0() -> 4* 3.26/1.09 top3(46) -> 14* 3.26/1.09 length0(5) -> 10* 3.26/1.09 length0(2) -> 10* 3.26/1.09 length0(4) -> 10* 3.26/1.09 length0(6) -> 10* 3.26/1.09 length0(1) -> 10* 3.26/1.09 length0(3) -> 10* 3.26/1.09 proper3(40) -> 46* 3.26/1.09 proper3(39) -> 48* 3.26/1.09 proper3(38) -> 47* 3.26/1.09 nil0() -> 5* 3.26/1.09 ok2(39) -> 42* 3.26/1.09 ok2(38) -> 41* 3.26/1.09 s0(5) -> 11* 3.26/1.09 s0(2) -> 11* 3.26/1.09 s0(4) -> 11* 3.26/1.09 s0(6) -> 11* 3.26/1.09 s0(1) -> 11* 3.26/1.09 s0(3) -> 11* 3.26/1.09 nil2() -> 38* 3.26/1.09 take0(3,1) -> 12* 3.26/1.09 take0(3,3) -> 12* 3.26/1.09 take0(3,5) -> 12* 3.26/1.09 take0(4,2) -> 12* 3.26/1.09 take0(4,4) -> 12* 3.26/1.09 take0(4,6) -> 12* 3.26/1.09 take0(5,1) -> 12* 3.26/1.09 take0(5,3) -> 12* 3.26/1.09 take0(5,5) -> 12* 3.26/1.09 take0(6,2) -> 12* 3.26/1.09 take0(1,2) -> 12* 3.26/1.09 take0(6,4) -> 12* 3.26/1.09 take0(1,4) -> 12* 3.26/1.09 take0(6,6) -> 12* 3.26/1.09 take0(1,6) -> 12* 3.26/1.09 take0(2,1) -> 12* 3.26/1.09 take0(2,3) -> 12* 3.26/1.09 take0(2,5) -> 12* 3.26/1.09 take0(3,2) -> 12* 3.26/1.09 take0(3,4) -> 12* 3.26/1.09 take0(3,6) -> 12* 3.26/1.09 take0(4,1) -> 12* 3.26/1.09 take0(4,3) -> 12* 3.26/1.09 take0(4,5) -> 12* 3.26/1.09 take0(5,2) -> 12* 3.26/1.09 take0(5,4) -> 12* 3.26/1.09 take0(5,6) -> 12* 3.26/1.09 take0(6,1) -> 12* 3.26/1.09 take0(1,1) -> 12* 3.26/1.09 take0(6,3) -> 12* 3.26/1.09 take0(1,3) -> 12* 3.26/1.09 take0(6,5) -> 12* 3.26/1.09 take0(1,5) -> 12* 3.26/1.09 take0(2,2) -> 12* 3.26/1.09 take0(2,4) -> 12* 3.26/1.09 take0(2,6) -> 12* 3.26/1.09 tt2() -> 38* 3.26/1.09 proper0(5) -> 13* 3.26/1.09 proper0(2) -> 13* 3.26/1.09 proper0(4) -> 13* 3.26/1.09 proper0(6) -> 13* 3.26/1.09 proper0(1) -> 13* 3.26/1.09 proper0(3) -> 13* 3.26/1.09 ok3(52) -> 33* 3.26/1.09 ok3(56) -> 48* 3.26/1.09 ok3(53) -> 47* 3.26/1.09 ok0(5) -> 6* 3.26/1.09 ok0(2) -> 6* 3.26/1.09 ok0(4) -> 6* 3.26/1.09 ok0(6) -> 6* 3.26/1.09 ok0(1) -> 6* 3.26/1.09 ok0(3) -> 6* 3.26/1.09 cons3(48,47) -> 46* 3.26/1.09 cons3(39,38) -> 52* 3.26/1.09 top0(5) -> 14* 3.26/1.09 top0(2) -> 14* 3.26/1.09 top0(4) -> 14* 3.26/1.09 top0(6) -> 14* 3.26/1.09 top0(1) -> 14* 3.26/1.09 top0(3) -> 14* 3.26/1.09 problem: 3.26/1.09 3.26/1.09 Qed 3.26/1.09 EOF