<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE PROOF SYSTEM "http://a3pat.ensiie.fr/pub/a3pat.dtd">
<PROOF><SIGNATURE><SYMBOLLIST><SYMBOL arity="1" unmarked="a__length"><NAME>Marked_a__length</NAME></SYMBOL><SYMBOL arity="1" unmarked=""><NAME>a__inf</NAME></SYMBOL><SYMBOL arity="1" unmarked=""><NAME>a__length</NAME></SYMBOL><SYMBOL arity="1" unmarked="mark"><NAME>Marked_mark</NAME></SYMBOL><SYMBOL arity="1" unmarked=""><NAME>s</NAME></SYMBOL><SYMBOL arity="1" unmarked=""><NAME>mark</NAME></SYMBOL><SYMBOL arity="2" unmarked=""><NAME>cons</NAME></SYMBOL><SYMBOL arity="2" unmarked=""><NAME>a__take</NAME></SYMBOL><SYMBOL arity="1" unmarked="a__inf"><NAME>Marked_a__inf</NAME></SYMBOL><SYMBOL arity="2" unmarked=""><NAME>a__eq</NAME></SYMBOL><SYMBOL arity="2" unmarked=""><NAME>eq</NAME></SYMBOL><SYMBOL arity="1" unmarked=""><NAME>inf</NAME></SYMBOL><SYMBOL arity="2" unmarked=""><NAME>take</NAME></SYMBOL><SYMBOL arity="2" unmarked="a__eq"><NAME>Marked_a__eq</NAME></SYMBOL><SYMBOL arity="0" unmarked=""><NAME>0</NAME></SYMBOL><SYMBOL arity="1" unmarked=""><NAME>length</NAME></SYMBOL><SYMBOL arity="0" unmarked=""><NAME>false</NAME></SYMBOL><SYMBOL arity="0" unmarked=""><NAME>nil</NAME></SYMBOL><SYMBOL arity="2" unmarked="a__take"><NAME>Marked_a__take</NAME></SYMBOL><SYMBOL arity="0" unmarked=""><NAME>true</NAME></SYMBOL></SYMBOLLIST><VARLIST><VAR>X2</VAR><VAR>X1</VAR><VAR>L</VAR><VAR>Y</VAR><VAR>X</VAR></VARLIST></SIGNATURE><PROPERTY criterion="dp" prop="sntrs"><SYSTEM><REWSYS><RULE><LHS>a__eq(0,0)</LHS><RHS>true</RHS></RULE><RULE><LHS>a__eq(s(X),s(Y))</LHS><RHS>a__eq(X,Y)</RHS></RULE><RULE><LHS>a__eq(X,Y)</LHS><RHS>false</RHS></RULE><RULE><LHS>a__inf(X)</LHS><RHS>cons(X,inf(s(X)))</RHS></RULE><RULE><LHS>a__take(0,X)</LHS><RHS>nil</RHS></RULE><RULE><LHS>a__take(s(X),cons(Y,L))</LHS><RHS>cons(Y,take(X,L))</RHS></RULE><RULE><LHS>a__length(nil)</LHS><RHS>0</RHS></RULE><RULE><LHS>a__length(cons(X,L))</LHS><RHS>s(length(L))</RHS></RULE><RULE><LHS>mark(eq(X1,X2))</LHS><RHS>a__eq(X1,X2)</RHS></RULE><RULE><LHS>mark(inf(X))</LHS><RHS>a__inf(mark(X))</RHS></RULE><RULE><LHS>mark(take(X1,X2))</LHS><RHS>a__take(mark(X1),mark(X2))</RHS></RULE><RULE><LHS>mark(length(X))</LHS><RHS>a__length(mark(X))</RHS></RULE><RULE><LHS>mark(0)</LHS><RHS>0</RHS></RULE><RULE><LHS>mark(true)</LHS><RHS>true</RHS></RULE><RULE><LHS>mark(s(X))</LHS><RHS>s(X)</RHS></RULE><RULE><LHS>mark(false)</LHS><RHS>false</RHS></RULE><RULE><LHS>mark(cons(X1,X2))</LHS><RHS>cons(X1,X2)</RHS></RULE><RULE><LHS>mark(nil)</LHS><RHS>nil</RHS></RULE><RULE><LHS>a__eq(X1,X2)</LHS><RHS>eq(X1,X2)</RHS></RULE><RULE><LHS>a__inf(X)</LHS><RHS>inf(X)</RHS></RULE><RULE><LHS>a__take(X1,X2)</LHS><RHS>take(X1,X2)</RHS></RULE><RULE><LHS>a__length(X)</LHS><RHS>length(X)</RHS></RULE></REWSYS></SYSTEM><CRITERION/><PROPERTY criterion="weakgraph" prop="sndp"><SYSTEM><DPSYS><REWSYS><RULE><LHS>a__eq(0,0)</LHS><RHS>true</RHS></RULE><RULE><LHS>a__eq(s(X),s(Y))</LHS><RHS>a__eq(X,Y)</RHS></RULE><RULE><LHS>a__eq(X,Y)</LHS><RHS>false</RHS></RULE><RULE><LHS>a__inf(X)</LHS><RHS>cons(X,inf(s(X)))</RHS></RULE><RULE><LHS>a__take(0,X)</LHS><RHS>nil</RHS></RULE><RULE><LHS>a__take(s(X),cons(Y,L))</LHS><RHS>cons(Y,take(X,L))</RHS></RULE><RULE><LHS>a__length(nil)</LHS><RHS>0</RHS></RULE><RULE><LHS>a__length(cons(X,L))</LHS><RHS>s(length(L))</RHS></RULE><RULE><LHS>mark(eq(X1,X2))</LHS><RHS>a__eq(X1,X2)</RHS></RULE><RULE><LHS>mark(inf(X))</LHS><RHS>a__inf(mark(X))</RHS></RULE><RULE><LHS>mark(take(X1,X2))</LHS><RHS>a__take(mark(X1),mark(X2))</RHS></RULE><RULE><LHS>mark(length(X))</LHS><RHS>a__length(mark(X))</RHS></RULE><RULE><LHS>mark(0)</LHS><RHS>0</RHS></RULE><RULE><LHS>mark(true)</LHS><RHS>true</RHS></RULE><RULE><LHS>mark(s(X))</LHS><RHS>s(X)</RHS></RULE><RULE><LHS>mark(false)</LHS><RHS>false</RHS></RULE><RULE><LHS>mark(cons(X1,X2))</LHS><RHS>cons(X1,X2)</RHS></RULE><RULE><LHS>mark(nil)</LHS><RHS>nil</RHS></RULE><RULE><LHS>a__eq(X1,X2)</LHS><RHS>eq(X1,X2)</RHS></RULE><RULE><LHS>a__inf(X)</LHS><RHS>inf(X)</RHS></RULE><RULE><LHS>a__take(X1,X2)</LHS><RHS>take(X1,X2)</RHS></RULE><RULE><LHS>a__length(X)</LHS><RHS>length(X)</RHS></RULE></REWSYS><DPLIST><DPRULE num="0"><LHS>Marked_a__eq(s(X),s(Y))</LHS><RHS>Marked_a__eq(X,Y)</RHS></DPRULE><DPRULE num="1"><LHS>Marked_mark(eq(X1,X2))</LHS><RHS>Marked_a__eq(X1,X2)</RHS></DPRULE><DPRULE num="2"><LHS>Marked_mark(inf(X))</LHS><RHS>Marked_a__inf(mark(X))</RHS></DPRULE><DPRULE num="3"><LHS>Marked_mark(inf(X))</LHS><RHS>Marked_mark(X)</RHS></DPRULE><DPRULE num="4"><LHS>Marked_mark(take(X1,X2))</LHS><RHS>Marked_a__take(mark(X1),mark(X2))</RHS></DPRULE><DPRULE num="5"><LHS>Marked_mark(take(X1,X2))</LHS><RHS>Marked_mark(X1)</RHS></DPRULE><DPRULE num="6"><LHS>Marked_mark(take(X1,X2))</LHS><RHS>Marked_mark(X2)</RHS></DPRULE><DPRULE num="7"><LHS>Marked_mark(length(X))</LHS><RHS>Marked_a__length(mark(X))</RHS></DPRULE><DPRULE num="8"><LHS>Marked_mark(length(X))</LHS><RHS>Marked_mark(X)</RHS></DPRULE></DPLIST></DPSYS></SYSTEM><CRITERION><DAG approx="simpl"><CCLIST><SCC num="0"><NODE ref="3"/><NODE ref="5"/><NODE ref="6"/><NODE ref="8"/></SCC><NONSCC num="1"><NODE ref="7"/></NONSCC><NONSCC num="2"><NODE ref="4"/></NONSCC><NONSCC num="3"><NODE ref="2"/></NONSCC><NONSCC num="4"><NODE ref="1"/></NONSCC><SCC num="5"><NODE ref="0"/></SCC></CCLIST><EDGE end="4" start="0"/><EDGE end="3" start="0"/><EDGE end="2" start="0"/><EDGE end="1" start="0"/><EDGE end="5" start="4"/></DAG></CRITERION><PROPERTY criterion="sterm" prop="sndp"><SYSTEM><DPSYS><REWSYS><RULE><LHS>a__eq(0,0)</LHS><RHS>true</RHS></RULE><RULE><LHS>a__eq(s(X),s(Y))</LHS><RHS>a__eq(X,Y)</RHS></RULE><RULE><LHS>a__eq(X,Y)</LHS><RHS>false</RHS></RULE><RULE><LHS>a__inf(X)</LHS><RHS>cons(X,inf(s(X)))</RHS></RULE><RULE><LHS>a__take(0,X)</LHS><RHS>nil</RHS></RULE><RULE><LHS>a__take(s(X),cons(Y,L))</LHS><RHS>cons(Y,take(X,L))</RHS></RULE><RULE><LHS>a__length(nil)</LHS><RHS>0</RHS></RULE><RULE><LHS>a__length(cons(X,L))</LHS><RHS>s(length(L))</RHS></RULE><RULE><LHS>mark(eq(X1,X2))</LHS><RHS>a__eq(X1,X2)</RHS></RULE><RULE><LHS>mark(inf(X))</LHS><RHS>a__inf(mark(X))</RHS></RULE><RULE><LHS>mark(take(X1,X2))</LHS><RHS>a__take(mark(X1),mark(X2))</RHS></RULE><RULE><LHS>mark(length(X))</LHS><RHS>a__length(mark(X))</RHS></RULE><RULE><LHS>mark(0)</LHS><RHS>0</RHS></RULE><RULE><LHS>mark(true)</LHS><RHS>true</RHS></RULE><RULE><LHS>mark(s(X))</LHS><RHS>s(X)</RHS></RULE><RULE><LHS>mark(false)</LHS><RHS>false</RHS></RULE><RULE><LHS>mark(cons(X1,X2))</LHS><RHS>cons(X1,X2)</RHS></RULE><RULE><LHS>mark(nil)</LHS><RHS>nil</RHS></RULE><RULE><LHS>a__eq(X1,X2)</LHS><RHS>eq(X1,X2)</RHS></RULE><RULE><LHS>a__inf(X)</LHS><RHS>inf(X)</RHS></RULE><RULE><LHS>a__take(X1,X2)</LHS><RHS>take(X1,X2)</RHS></RULE><RULE><LHS>a__length(X)</LHS><RHS>length(X)</RHS></RULE></REWSYS><DPLIST><DPRULE num="0"><LHS>Marked_mark(inf(X))</LHS><RHS>Marked_mark(X)</RHS></DPRULE><DPRULE num="1"><LHS>Marked_mark(take(X1,X2))</LHS><RHS>Marked_mark(X1)</RHS></DPRULE><DPRULE num="2"><LHS>Marked_mark(take(X1,X2))</LHS><RHS>Marked_mark(X2)</RHS></DPRULE><DPRULE num="3"><LHS>Marked_mark(length(X))</LHS><RHS>Marked_mark(X)</RHS></DPRULE></DPLIST></DPSYS></SYSTEM><PROJECTION><PROJ><SYMBOL><NAME>Marked_mark</NAME></SYMBOL><INT>1</INT></PROJ></PROJECTION><STRICTPAIRS><DPLIST><DPRULE num="0"><LHS>Marked_mark(length(X))</LHS><RHS>Marked_mark(X)</RHS></DPRULE><DPRULE num="1"><LHS>Marked_mark(take(X1,X2))</LHS><RHS>Marked_mark(X2)</RHS></DPRULE><DPRULE num="2"><LHS>Marked_mark(take(X1,X2))</LHS><RHS>Marked_mark(X1)</RHS></DPRULE><DPRULE num="3"><LHS>Marked_mark(inf(X))</LHS><RHS>Marked_mark(X)</RHS></DPRULE></DPLIST></STRICTPAIRS><PROPERTY criterion="weakgraph" prop="sndp"><SYSTEM><DPSYS><REWSYS><RULE><LHS>a__eq(0,0)</LHS><RHS>true</RHS></RULE><RULE><LHS>a__eq(s(X),s(Y))</LHS><RHS>a__eq(X,Y)</RHS></RULE><RULE><LHS>a__eq(X,Y)</LHS><RHS>false</RHS></RULE><RULE><LHS>a__inf(X)</LHS><RHS>cons(X,inf(s(X)))</RHS></RULE><RULE><LHS>a__take(0,X)</LHS><RHS>nil</RHS></RULE><RULE><LHS>a__take(s(X),cons(Y,L))</LHS><RHS>cons(Y,take(X,L))</RHS></RULE><RULE><LHS>a__length(nil)</LHS><RHS>0</RHS></RULE><RULE><LHS>a__length(cons(X,L))</LHS><RHS>s(length(L))</RHS></RULE><RULE><LHS>mark(eq(X1,X2))</LHS><RHS>a__eq(X1,X2)</RHS></RULE><RULE><LHS>mark(inf(X))</LHS><RHS>a__inf(mark(X))</RHS></RULE><RULE><LHS>mark(take(X1,X2))</LHS><RHS>a__take(mark(X1),mark(X2))</RHS></RULE><RULE><LHS>mark(length(X))</LHS><RHS>a__length(mark(X))</RHS></RULE><RULE><LHS>mark(0)</LHS><RHS>0</RHS></RULE><RULE><LHS>mark(true)</LHS><RHS>true</RHS></RULE><RULE><LHS>mark(s(X))</LHS><RHS>s(X)</RHS></RULE><RULE><LHS>mark(false)</LHS><RHS>false</RHS></RULE><RULE><LHS>mark(cons(X1,X2))</LHS><RHS>cons(X1,X2)</RHS></RULE><RULE><LHS>mark(nil)</LHS><RHS>nil</RHS></RULE><RULE><LHS>a__eq(X1,X2)</LHS><RHS>eq(X1,X2)</RHS></RULE><RULE><LHS>a__inf(X)</LHS><RHS>inf(X)</RHS></RULE><RULE><LHS>a__take(X1,X2)</LHS><RHS>take(X1,X2)</RHS></RULE><RULE><LHS>a__length(X)</LHS><RHS>length(X)</RHS></RULE></REWSYS><DPLIST/></DPSYS></SYSTEM><CRITERION><DAG approx="simpl"><CCLIST/></DAG></CRITERION></PROPERTY></PROPERTY><PROPERTY criterion="sterm" prop="sndp"><SYSTEM><DPSYS><REWSYS><RULE><LHS>a__eq(0,0)</LHS><RHS>true</RHS></RULE><RULE><LHS>a__eq(s(X),s(Y))</LHS><RHS>a__eq(X,Y)</RHS></RULE><RULE><LHS>a__eq(X,Y)</LHS><RHS>false</RHS></RULE><RULE><LHS>a__inf(X)</LHS><RHS>cons(X,inf(s(X)))</RHS></RULE><RULE><LHS>a__take(0,X)</LHS><RHS>nil</RHS></RULE><RULE><LHS>a__take(s(X),cons(Y,L))</LHS><RHS>cons(Y,take(X,L))</RHS></RULE><RULE><LHS>a__length(nil)</LHS><RHS>0</RHS></RULE><RULE><LHS>a__length(cons(X,L))</LHS><RHS>s(length(L))</RHS></RULE><RULE><LHS>mark(eq(X1,X2))</LHS><RHS>a__eq(X1,X2)</RHS></RULE><RULE><LHS>mark(inf(X))</LHS><RHS>a__inf(mark(X))</RHS></RULE><RULE><LHS>mark(take(X1,X2))</LHS><RHS>a__take(mark(X1),mark(X2))</RHS></RULE><RULE><LHS>mark(length(X))</LHS><RHS>a__length(mark(X))</RHS></RULE><RULE><LHS>mark(0)</LHS><RHS>0</RHS></RULE><RULE><LHS>mark(true)</LHS><RHS>true</RHS></RULE><RULE><LHS>mark(s(X))</LHS><RHS>s(X)</RHS></RULE><RULE><LHS>mark(false)</LHS><RHS>false</RHS></RULE><RULE><LHS>mark(cons(X1,X2))</LHS><RHS>cons(X1,X2)</RHS></RULE><RULE><LHS>mark(nil)</LHS><RHS>nil</RHS></RULE><RULE><LHS>a__eq(X1,X2)</LHS><RHS>eq(X1,X2)</RHS></RULE><RULE><LHS>a__inf(X)</LHS><RHS>inf(X)</RHS></RULE><RULE><LHS>a__take(X1,X2)</LHS><RHS>take(X1,X2)</RHS></RULE><RULE><LHS>a__length(X)</LHS><RHS>length(X)</RHS></RULE></REWSYS><DPLIST><DPRULE num="0"><LHS>Marked_a__eq(s(X),s(Y))</LHS><RHS>Marked_a__eq(X,Y)</RHS></DPRULE></DPLIST></DPSYS></SYSTEM><PROJECTION><PROJ><SYMBOL><NAME>Marked_a__eq</NAME></SYMBOL><INT>1</INT></PROJ></PROJECTION><STRICTPAIRS><DPLIST><DPRULE num="0"><LHS>Marked_a__eq(s(X),s(Y))</LHS><RHS>Marked_a__eq(X,Y)</RHS></DPRULE></DPLIST></STRICTPAIRS><PROPERTY criterion="weakgraph" prop="sndp"><SYSTEM><DPSYS><REWSYS><RULE><LHS>a__eq(0,0)</LHS><RHS>true</RHS></RULE><RULE><LHS>a__eq(s(X),s(Y))</LHS><RHS>a__eq(X,Y)</RHS></RULE><RULE><LHS>a__eq(X,Y)</LHS><RHS>false</RHS></RULE><RULE><LHS>a__inf(X)</LHS><RHS>cons(X,inf(s(X)))</RHS></RULE><RULE><LHS>a__take(0,X)</LHS><RHS>nil</RHS></RULE><RULE><LHS>a__take(s(X),cons(Y,L))</LHS><RHS>cons(Y,take(X,L))</RHS></RULE><RULE><LHS>a__length(nil)</LHS><RHS>0</RHS></RULE><RULE><LHS>a__length(cons(X,L))</LHS><RHS>s(length(L))</RHS></RULE><RULE><LHS>mark(eq(X1,X2))</LHS><RHS>a__eq(X1,X2)</RHS></RULE><RULE><LHS>mark(inf(X))</LHS><RHS>a__inf(mark(X))</RHS></RULE><RULE><LHS>mark(take(X1,X2))</LHS><RHS>a__take(mark(X1),mark(X2))</RHS></RULE><RULE><LHS>mark(length(X))</LHS><RHS>a__length(mark(X))</RHS></RULE><RULE><LHS>mark(0)</LHS><RHS>0</RHS></RULE><RULE><LHS>mark(true)</LHS><RHS>true</RHS></RULE><RULE><LHS>mark(s(X))</LHS><RHS>s(X)</RHS></RULE><RULE><LHS>mark(false)</LHS><RHS>false</RHS></RULE><RULE><LHS>mark(cons(X1,X2))</LHS><RHS>cons(X1,X2)</RHS></RULE><RULE><LHS>mark(nil)</LHS><RHS>nil</RHS></RULE><RULE><LHS>a__eq(X1,X2)</LHS><RHS>eq(X1,X2)</RHS></RULE><RULE><LHS>a__inf(X)</LHS><RHS>inf(X)</RHS></RULE><RULE><LHS>a__take(X1,X2)</LHS><RHS>take(X1,X2)</RHS></RULE><RULE><LHS>a__length(X)</LHS><RHS>length(X)</RHS></RULE></REWSYS><DPLIST/></DPSYS></SYSTEM><CRITERION><DAG approx="simpl"><CCLIST/></DAG></CRITERION></PROPERTY></PROPERTY></PROPERTY></PROPERTY></PROOF>
