<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE PROOF SYSTEM "http://a3pat.ensiie.fr/pub/a3pat.dtd">
<PROOF><SIGNATURE><SYMBOLLIST><SYMBOL arity="2" unmarked=""><NAME>sel</NAME></SYMBOL><SYMBOL arity="1" unmarked="fst"><NAME>Marked_fst</NAME></SYMBOL><SYMBOL arity="0" unmarked=""><NAME>nil</NAME></SYMBOL><SYMBOL arity="4" unmarked="u"><NAME>Marked_u</NAME></SYMBOL><SYMBOL arity="1" unmarked=""><NAME>activate</NAME></SYMBOL><SYMBOL arity="2" unmarked="afterNth"><NAME>Marked_afterNth</NAME></SYMBOL><SYMBOL arity="1" unmarked=""><NAME>natsFrom</NAME></SYMBOL><SYMBOL arity="1" unmarked=""><NAME>tail</NAME></SYMBOL><SYMBOL arity="2" unmarked="splitAt"><NAME>Marked_splitAt</NAME></SYMBOL><SYMBOL arity="2" unmarked=""><NAME>pair</NAME></SYMBOL><SYMBOL arity="1" unmarked="head"><NAME>Marked_head</NAME></SYMBOL><SYMBOL arity="0" unmarked=""><NAME>0</NAME></SYMBOL><SYMBOL arity="1" unmarked="activate"><NAME>Marked_activate</NAME></SYMBOL><SYMBOL arity="1" unmarked=""><NAME>n__natsFrom</NAME></SYMBOL><SYMBOL arity="2" unmarked=""><NAME>afterNth</NAME></SYMBOL><SYMBOL arity="2" unmarked="take"><NAME>Marked_take</NAME></SYMBOL><SYMBOL arity="1" unmarked=""><NAME>snd</NAME></SYMBOL><SYMBOL arity="1" unmarked="tail"><NAME>Marked_tail</NAME></SYMBOL><SYMBOL arity="4" unmarked=""><NAME>u</NAME></SYMBOL><SYMBOL arity="1" unmarked="natsFrom"><NAME>Marked_natsFrom</NAME></SYMBOL><SYMBOL arity="1" unmarked=""><NAME>s</NAME></SYMBOL><SYMBOL arity="1" unmarked=""><NAME>head</NAME></SYMBOL><SYMBOL arity="1" unmarked="snd"><NAME>Marked_snd</NAME></SYMBOL><SYMBOL arity="1" unmarked=""><NAME>fst</NAME></SYMBOL><SYMBOL arity="2" unmarked="sel"><NAME>Marked_sel</NAME></SYMBOL><SYMBOL arity="2" unmarked=""><NAME>splitAt</NAME></SYMBOL><SYMBOL arity="2" unmarked=""><NAME>take</NAME></SYMBOL><SYMBOL arity="2" unmarked=""><NAME>cons</NAME></SYMBOL></SYMBOLLIST><VARLIST><VAR>ZS</VAR><VAR>X</VAR><VAR>YS</VAR><VAR>XS</VAR><VAR>N</VAR></VARLIST></SIGNATURE><PROPERTY criterion="dp" prop="sntrs"><SYSTEM><REWSYS><RULE><LHS>natsFrom(N)</LHS><RHS>cons(N,n__natsFrom(s(N)))</RHS></RULE><RULE><LHS>fst(pair(XS,YS))</LHS><RHS>XS</RHS></RULE><RULE><LHS>snd(pair(XS,YS))</LHS><RHS>YS</RHS></RULE><RULE><LHS>splitAt(0,XS)</LHS><RHS>pair(nil,XS)</RHS></RULE><RULE><LHS>splitAt(s(N),cons(X,XS))</LHS><RHS>u(splitAt(N,activate(XS)),N,X,activate(XS))</RHS></RULE><RULE><LHS>u(pair(YS,ZS),N,X,XS)</LHS><RHS>pair(cons(activate(X),YS),ZS)</RHS></RULE><RULE><LHS>head(cons(N,XS))</LHS><RHS>N</RHS></RULE><RULE><LHS>tail(cons(N,XS))</LHS><RHS>activate(XS)</RHS></RULE><RULE><LHS>sel(N,XS)</LHS><RHS>head(afterNth(N,XS))</RHS></RULE><RULE><LHS>take(N,XS)</LHS><RHS>fst(splitAt(N,XS))</RHS></RULE><RULE><LHS>afterNth(N,XS)</LHS><RHS>snd(splitAt(N,XS))</RHS></RULE><RULE><LHS>natsFrom(X)</LHS><RHS>n__natsFrom(X)</RHS></RULE><RULE><LHS>activate(n__natsFrom(X))</LHS><RHS>natsFrom(X)</RHS></RULE><RULE><LHS>activate(X)</LHS><RHS>X</RHS></RULE></REWSYS></SYSTEM><CRITERION/><PROPERTY criterion="weakgraph" prop="sndp"><SYSTEM><DPSYS><REWSYS><RULE><LHS>natsFrom(N)</LHS><RHS>cons(N,n__natsFrom(s(N)))</RHS></RULE><RULE><LHS>fst(pair(XS,YS))</LHS><RHS>XS</RHS></RULE><RULE><LHS>snd(pair(XS,YS))</LHS><RHS>YS</RHS></RULE><RULE><LHS>splitAt(0,XS)</LHS><RHS>pair(nil,XS)</RHS></RULE><RULE><LHS>splitAt(s(N),cons(X,XS))</LHS><RHS>u(splitAt(N,activate(XS)),N,X,activate(XS))</RHS></RULE><RULE><LHS>u(pair(YS,ZS),N,X,XS)</LHS><RHS>pair(cons(activate(X),YS),ZS)</RHS></RULE><RULE><LHS>head(cons(N,XS))</LHS><RHS>N</RHS></RULE><RULE><LHS>tail(cons(N,XS))</LHS><RHS>activate(XS)</RHS></RULE><RULE><LHS>sel(N,XS)</LHS><RHS>head(afterNth(N,XS))</RHS></RULE><RULE><LHS>take(N,XS)</LHS><RHS>fst(splitAt(N,XS))</RHS></RULE><RULE><LHS>afterNth(N,XS)</LHS><RHS>snd(splitAt(N,XS))</RHS></RULE><RULE><LHS>natsFrom(X)</LHS><RHS>n__natsFrom(X)</RHS></RULE><RULE><LHS>activate(n__natsFrom(X))</LHS><RHS>natsFrom(X)</RHS></RULE><RULE><LHS>activate(X)</LHS><RHS>X</RHS></RULE></REWSYS><DPLIST><DPRULE num="0"><LHS>Marked_splitAt(s(N),cons(X,XS))</LHS><RHS>Marked_u(splitAt(N,activate(XS)),N,X,activate(XS))</RHS></DPRULE><DPRULE num="1"><LHS>Marked_splitAt(s(N),cons(X,XS))</LHS><RHS>Marked_splitAt(N,activate(XS))</RHS></DPRULE><DPRULE num="2"><LHS>Marked_splitAt(s(N),cons(X,XS))</LHS><RHS>Marked_activate(XS)</RHS></DPRULE><DPRULE num="3"><LHS>Marked_splitAt(s(N),cons(X,XS))</LHS><RHS>Marked_activate(XS)</RHS></DPRULE><DPRULE num="4"><LHS>Marked_u(pair(YS,ZS),N,X,XS)</LHS><RHS>Marked_activate(X)</RHS></DPRULE><DPRULE num="5"><LHS>Marked_tail(cons(N,XS))</LHS><RHS>Marked_activate(XS)</RHS></DPRULE><DPRULE num="6"><LHS>Marked_sel(N,XS)</LHS><RHS>Marked_head(afterNth(N,XS))</RHS></DPRULE><DPRULE num="7"><LHS>Marked_sel(N,XS)</LHS><RHS>Marked_afterNth(N,XS)</RHS></DPRULE><DPRULE num="8"><LHS>Marked_take(N,XS)</LHS><RHS>Marked_fst(splitAt(N,XS))</RHS></DPRULE><DPRULE num="9"><LHS>Marked_take(N,XS)</LHS><RHS>Marked_splitAt(N,XS)</RHS></DPRULE><DPRULE num="10"><LHS>Marked_afterNth(N,XS)</LHS><RHS>Marked_snd(splitAt(N,XS))</RHS></DPRULE><DPRULE num="11"><LHS>Marked_afterNth(N,XS)</LHS><RHS>Marked_splitAt(N,XS)</RHS></DPRULE><DPRULE num="12"><LHS>Marked_activate(n__natsFrom(X))</LHS><RHS>Marked_natsFrom(X)</RHS></DPRULE></DPLIST></DPSYS></SYSTEM><CRITERION><DAG approx="simpl"><CCLIST><NONSCC num="0"><NODE ref="12"/></NONSCC><NONSCC num="1"><NODE ref="11"/></NONSCC><NONSCC num="2"><NODE ref="2"/></NONSCC><SCC num="3"><NODE ref="1"/></SCC><NONSCC num="4"><NODE ref="0"/></NONSCC><NONSCC num="5"><NODE ref="10"/></NONSCC><NONSCC num="6"><NODE ref="9"/></NONSCC><NONSCC num="7"><NODE ref="8"/></NONSCC><NONSCC num="8"><NODE ref="7"/></NONSCC><NONSCC num="9"><NODE ref="6"/></NONSCC><NONSCC num="10"><NODE ref="5"/></NONSCC><NONSCC num="11"><NODE ref="4"/></NONSCC></CCLIST><EDGE end="4" start="1"/><EDGE end="3" start="1"/><EDGE end="2" start="1"/><EDGE end="0" start="2"/><EDGE end="4" start="3"/><EDGE end="2" start="3"/><EDGE end="11" start="4"/><EDGE end="4" start="6"/><EDGE end="3" start="6"/><EDGE end="2" start="6"/><EDGE end="5" start="8"/><EDGE end="1" start="8"/><EDGE end="0" start="10"/><EDGE end="0" start="11"/></DAG></CRITERION><PROPERTY criterion="sterm" prop="sndp"><SYSTEM><DPSYS><REWSYS><RULE><LHS>natsFrom(N)</LHS><RHS>cons(N,n__natsFrom(s(N)))</RHS></RULE><RULE><LHS>fst(pair(XS,YS))</LHS><RHS>XS</RHS></RULE><RULE><LHS>snd(pair(XS,YS))</LHS><RHS>YS</RHS></RULE><RULE><LHS>splitAt(0,XS)</LHS><RHS>pair(nil,XS)</RHS></RULE><RULE><LHS>splitAt(s(N),cons(X,XS))</LHS><RHS>u(splitAt(N,activate(XS)),N,X,activate(XS))</RHS></RULE><RULE><LHS>u(pair(YS,ZS),N,X,XS)</LHS><RHS>pair(cons(activate(X),YS),ZS)</RHS></RULE><RULE><LHS>head(cons(N,XS))</LHS><RHS>N</RHS></RULE><RULE><LHS>tail(cons(N,XS))</LHS><RHS>activate(XS)</RHS></RULE><RULE><LHS>sel(N,XS)</LHS><RHS>head(afterNth(N,XS))</RHS></RULE><RULE><LHS>take(N,XS)</LHS><RHS>fst(splitAt(N,XS))</RHS></RULE><RULE><LHS>afterNth(N,XS)</LHS><RHS>snd(splitAt(N,XS))</RHS></RULE><RULE><LHS>natsFrom(X)</LHS><RHS>n__natsFrom(X)</RHS></RULE><RULE><LHS>activate(n__natsFrom(X))</LHS><RHS>natsFrom(X)</RHS></RULE><RULE><LHS>activate(X)</LHS><RHS>X</RHS></RULE></REWSYS><DPLIST><DPRULE num="0"><LHS>Marked_splitAt(s(N),cons(X,XS))</LHS><RHS>Marked_splitAt(N,activate(XS))</RHS></DPRULE></DPLIST></DPSYS></SYSTEM><PROJECTION><PROJ><SYMBOL><NAME>Marked_splitAt</NAME></SYMBOL><INT>1</INT></PROJ></PROJECTION><STRICTPAIRS><DPLIST><DPRULE num="0"><LHS>Marked_splitAt(s(N),cons(X,XS))</LHS><RHS>Marked_splitAt(N,activate(XS))</RHS></DPRULE></DPLIST></STRICTPAIRS><PROPERTY criterion="weakgraph" prop="sndp"><SYSTEM><DPSYS><REWSYS><RULE><LHS>natsFrom(N)</LHS><RHS>cons(N,n__natsFrom(s(N)))</RHS></RULE><RULE><LHS>fst(pair(XS,YS))</LHS><RHS>XS</RHS></RULE><RULE><LHS>snd(pair(XS,YS))</LHS><RHS>YS</RHS></RULE><RULE><LHS>splitAt(0,XS)</LHS><RHS>pair(nil,XS)</RHS></RULE><RULE><LHS>splitAt(s(N),cons(X,XS))</LHS><RHS>u(splitAt(N,activate(XS)),N,X,activate(XS))</RHS></RULE><RULE><LHS>u(pair(YS,ZS),N,X,XS)</LHS><RHS>pair(cons(activate(X),YS),ZS)</RHS></RULE><RULE><LHS>head(cons(N,XS))</LHS><RHS>N</RHS></RULE><RULE><LHS>tail(cons(N,XS))</LHS><RHS>activate(XS)</RHS></RULE><RULE><LHS>sel(N,XS)</LHS><RHS>head(afterNth(N,XS))</RHS></RULE><RULE><LHS>take(N,XS)</LHS><RHS>fst(splitAt(N,XS))</RHS></RULE><RULE><LHS>afterNth(N,XS)</LHS><RHS>snd(splitAt(N,XS))</RHS></RULE><RULE><LHS>natsFrom(X)</LHS><RHS>n__natsFrom(X)</RHS></RULE><RULE><LHS>activate(n__natsFrom(X))</LHS><RHS>natsFrom(X)</RHS></RULE><RULE><LHS>activate(X)</LHS><RHS>X</RHS></RULE></REWSYS><DPLIST/></DPSYS></SYSTEM><CRITERION><DAG approx="simpl"><CCLIST/></DAG></CRITERION></PROPERTY></PROPERTY></PROPERTY></PROPERTY></PROOF>
