<?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__from"><NAME>Marked_a__from</NAME></SYMBOL><SYMBOL arity="1" unmarked=""><NAME>from</NAME></SYMBOL><SYMBOL arity="1" unmarked=""><NAME>a__len</NAME></SYMBOL><SYMBOL arity="2" unmarked=""><NAME>cons</NAME></SYMBOL><SYMBOL arity="1" unmarked="a__len"><NAME>Marked_a__len</NAME></SYMBOL><SYMBOL arity="2" unmarked=""><NAME>fst</NAME></SYMBOL><SYMBOL arity="2" unmarked=""><NAME>a__add</NAME></SYMBOL><SYMBOL arity="1" unmarked="mark"><NAME>Marked_mark</NAME></SYMBOL><SYMBOL arity="2" unmarked=""><NAME>a__fst</NAME></SYMBOL><SYMBOL arity="2" unmarked="a__add"><NAME>Marked_a__add</NAME></SYMBOL><SYMBOL arity="1" unmarked=""><NAME>s</NAME></SYMBOL><SYMBOL arity="2" unmarked=""><NAME>add</NAME></SYMBOL><SYMBOL arity="0" unmarked=""><NAME>0</NAME></SYMBOL><SYMBOL arity="1" unmarked=""><NAME>len</NAME></SYMBOL><SYMBOL arity="1" unmarked=""><NAME>mark</NAME></SYMBOL><SYMBOL arity="1" unmarked=""><NAME>a__from</NAME></SYMBOL><SYMBOL arity="2" unmarked="a__fst"><NAME>Marked_a__fst</NAME></SYMBOL><SYMBOL arity="0" unmarked=""><NAME>nil</NAME></SYMBOL></SYMBOLLIST><VARLIST><VAR>X2</VAR><VAR>X1</VAR><VAR>Z</VAR><VAR>Y</VAR><VAR>X</VAR></VARLIST></SIGNATURE><PROPERTY criterion="dp" prop="sntrs"><SYSTEM><REWSYS><RULE><LHS>a__fst(0,Z)</LHS><RHS>nil</RHS></RULE><RULE><LHS>a__fst(s(X),cons(Y,Z))</LHS><RHS>cons(mark(Y),fst(X,Z))</RHS></RULE><RULE><LHS>a__from(X)</LHS><RHS>cons(mark(X),from(s(X)))</RHS></RULE><RULE><LHS>a__add(0,X)</LHS><RHS>mark(X)</RHS></RULE><RULE><LHS>a__add(s(X),Y)</LHS><RHS>s(add(X,Y))</RHS></RULE><RULE><LHS>a__len(nil)</LHS><RHS>0</RHS></RULE><RULE><LHS>a__len(cons(X,Z))</LHS><RHS>s(len(Z))</RHS></RULE><RULE><LHS>mark(fst(X1,X2))</LHS><RHS>a__fst(mark(X1),mark(X2))</RHS></RULE><RULE><LHS>mark(from(X))</LHS><RHS>a__from(mark(X))</RHS></RULE><RULE><LHS>mark(add(X1,X2))</LHS><RHS>a__add(mark(X1),mark(X2))</RHS></RULE><RULE><LHS>mark(len(X))</LHS><RHS>a__len(mark(X))</RHS></RULE><RULE><LHS>mark(0)</LHS><RHS>0</RHS></RULE><RULE><LHS>mark(s(X))</LHS><RHS>s(X)</RHS></RULE><RULE><LHS>mark(nil)</LHS><RHS>nil</RHS></RULE><RULE><LHS>mark(cons(X1,X2))</LHS><RHS>cons(mark(X1),X2)</RHS></RULE><RULE><LHS>a__fst(X1,X2)</LHS><RHS>fst(X1,X2)</RHS></RULE><RULE><LHS>a__from(X)</LHS><RHS>from(X)</RHS></RULE><RULE><LHS>a__add(X1,X2)</LHS><RHS>add(X1,X2)</RHS></RULE><RULE><LHS>a__len(X)</LHS><RHS>len(X)</RHS></RULE></REWSYS></SYSTEM><CRITERION/><PROPERTY criterion="weakgraph" prop="sndp"><SYSTEM><DPSYS><REWSYS><RULE><LHS>a__fst(0,Z)</LHS><RHS>nil</RHS></RULE><RULE><LHS>a__fst(s(X),cons(Y,Z))</LHS><RHS>cons(mark(Y),fst(X,Z))</RHS></RULE><RULE><LHS>a__from(X)</LHS><RHS>cons(mark(X),from(s(X)))</RHS></RULE><RULE><LHS>a__add(0,X)</LHS><RHS>mark(X)</RHS></RULE><RULE><LHS>a__add(s(X),Y)</LHS><RHS>s(add(X,Y))</RHS></RULE><RULE><LHS>a__len(nil)</LHS><RHS>0</RHS></RULE><RULE><LHS>a__len(cons(X,Z))</LHS><RHS>s(len(Z))</RHS></RULE><RULE><LHS>mark(fst(X1,X2))</LHS><RHS>a__fst(mark(X1),mark(X2))</RHS></RULE><RULE><LHS>mark(from(X))</LHS><RHS>a__from(mark(X))</RHS></RULE><RULE><LHS>mark(add(X1,X2))</LHS><RHS>a__add(mark(X1),mark(X2))</RHS></RULE><RULE><LHS>mark(len(X))</LHS><RHS>a__len(mark(X))</RHS></RULE><RULE><LHS>mark(0)</LHS><RHS>0</RHS></RULE><RULE><LHS>mark(s(X))</LHS><RHS>s(X)</RHS></RULE><RULE><LHS>mark(nil)</LHS><RHS>nil</RHS></RULE><RULE><LHS>mark(cons(X1,X2))</LHS><RHS>cons(mark(X1),X2)</RHS></RULE><RULE><LHS>a__fst(X1,X2)</LHS><RHS>fst(X1,X2)</RHS></RULE><RULE><LHS>a__from(X)</LHS><RHS>from(X)</RHS></RULE><RULE><LHS>a__add(X1,X2)</LHS><RHS>add(X1,X2)</RHS></RULE><RULE><LHS>a__len(X)</LHS><RHS>len(X)</RHS></RULE></REWSYS><DPLIST><DPRULE num="0"><LHS>Marked_a__fst(s(X),cons(Y,Z))</LHS><RHS>Marked_mark(Y)</RHS></DPRULE><DPRULE num="1"><LHS>Marked_a__from(X)</LHS><RHS>Marked_mark(X)</RHS></DPRULE><DPRULE num="2"><LHS>Marked_a__add(0,X)</LHS><RHS>Marked_mark(X)</RHS></DPRULE><DPRULE num="3"><LHS>Marked_mark(fst(X1,X2))</LHS><RHS>Marked_a__fst(mark(X1),mark(X2))</RHS></DPRULE><DPRULE num="4"><LHS>Marked_mark(fst(X1,X2))</LHS><RHS>Marked_mark(X1)</RHS></DPRULE><DPRULE num="5"><LHS>Marked_mark(fst(X1,X2))</LHS><RHS>Marked_mark(X2)</RHS></DPRULE><DPRULE num="6"><LHS>Marked_mark(from(X))</LHS><RHS>Marked_a__from(mark(X))</RHS></DPRULE><DPRULE num="7"><LHS>Marked_mark(from(X))</LHS><RHS>Marked_mark(X)</RHS></DPRULE><DPRULE num="8"><LHS>Marked_mark(add(X1,X2))</LHS><RHS>Marked_a__add(mark(X1),mark(X2))</RHS></DPRULE><DPRULE num="9"><LHS>Marked_mark(add(X1,X2))</LHS><RHS>Marked_mark(X1)</RHS></DPRULE><DPRULE num="10"><LHS>Marked_mark(add(X1,X2))</LHS><RHS>Marked_mark(X2)</RHS></DPRULE><DPRULE num="11"><LHS>Marked_mark(len(X))</LHS><RHS>Marked_a__len(mark(X))</RHS></DPRULE><DPRULE num="12"><LHS>Marked_mark(len(X))</LHS><RHS>Marked_mark(X)</RHS></DPRULE><DPRULE num="13"><LHS>Marked_mark(cons(X1,X2))</LHS><RHS>Marked_mark(X1)</RHS></DPRULE></DPLIST></DPSYS></SYSTEM><CRITERION><DAG approx="simpl"><CCLIST><SCC num="0"><NODE ref="0"/><NODE ref="1"/><NODE ref="2"/><NODE ref="3"/><NODE ref="4"/><NODE ref="5"/><NODE ref="6"/><NODE ref="7"/><NODE ref="8"/><NODE ref="9"/><NODE ref="10"/><NODE ref="12"/><NODE ref="13"/></SCC><NONSCC num="1"><NODE ref="11"/></NONSCC></CCLIST><EDGE end="1" start="0"/></DAG></CRITERION><PROPERTY criterion="stronggraph" prop="sndp"><SYSTEM><DPSYS><REWSYS><RULE><LHS>a__fst(0,Z)</LHS><RHS>nil</RHS></RULE><RULE><LHS>a__fst(s(X),cons(Y,Z))</LHS><RHS>cons(mark(Y),fst(X,Z))</RHS></RULE><RULE><LHS>a__from(X)</LHS><RHS>cons(mark(X),from(s(X)))</RHS></RULE><RULE><LHS>a__add(0,X)</LHS><RHS>mark(X)</RHS></RULE><RULE><LHS>a__add(s(X),Y)</LHS><RHS>s(add(X,Y))</RHS></RULE><RULE><LHS>a__len(nil)</LHS><RHS>0</RHS></RULE><RULE><LHS>a__len(cons(X,Z))</LHS><RHS>s(len(Z))</RHS></RULE><RULE><LHS>mark(fst(X1,X2))</LHS><RHS>a__fst(mark(X1),mark(X2))</RHS></RULE><RULE><LHS>mark(from(X))</LHS><RHS>a__from(mark(X))</RHS></RULE><RULE><LHS>mark(add(X1,X2))</LHS><RHS>a__add(mark(X1),mark(X2))</RHS></RULE><RULE><LHS>mark(len(X))</LHS><RHS>a__len(mark(X))</RHS></RULE><RULE><LHS>mark(0)</LHS><RHS>0</RHS></RULE><RULE><LHS>mark(s(X))</LHS><RHS>s(X)</RHS></RULE><RULE><LHS>mark(nil)</LHS><RHS>nil</RHS></RULE><RULE><LHS>mark(cons(X1,X2))</LHS><RHS>cons(mark(X1),X2)</RHS></RULE><RULE><LHS>a__fst(X1,X2)</LHS><RHS>fst(X1,X2)</RHS></RULE><RULE><LHS>a__from(X)</LHS><RHS>from(X)</RHS></RULE><RULE><LHS>a__add(X1,X2)</LHS><RHS>add(X1,X2)</RHS></RULE><RULE><LHS>a__len(X)</LHS><RHS>len(X)</RHS></RULE></REWSYS><DPLIST><DPRULE num="0"><LHS>Marked_a__fst(s(X),cons(Y,Z))</LHS><RHS>Marked_mark(Y)</RHS></DPRULE><DPRULE num="1"><LHS>Marked_a__from(X)</LHS><RHS>Marked_mark(X)</RHS></DPRULE><DPRULE num="2"><LHS>Marked_a__add(0,X)</LHS><RHS>Marked_mark(X)</RHS></DPRULE><DPRULE num="3"><LHS>Marked_mark(fst(X1,X2))</LHS><RHS>Marked_a__fst(mark(X1),mark(X2))</RHS></DPRULE><DPRULE num="4"><LHS>Marked_mark(fst(X1,X2))</LHS><RHS>Marked_mark(X1)</RHS></DPRULE><DPRULE num="5"><LHS>Marked_mark(fst(X1,X2))</LHS><RHS>Marked_mark(X2)</RHS></DPRULE><DPRULE num="6"><LHS>Marked_mark(from(X))</LHS><RHS>Marked_a__from(mark(X))</RHS></DPRULE><DPRULE num="7"><LHS>Marked_mark(from(X))</LHS><RHS>Marked_mark(X)</RHS></DPRULE><DPRULE num="8"><LHS>Marked_mark(add(X1,X2))</LHS><RHS>Marked_a__add(mark(X1),mark(X2))</RHS></DPRULE><DPRULE num="9"><LHS>Marked_mark(add(X1,X2))</LHS><RHS>Marked_mark(X1)</RHS></DPRULE><DPRULE num="10"><LHS>Marked_mark(add(X1,X2))</LHS><RHS>Marked_mark(X2)</RHS></DPRULE><DPRULE num="11"><LHS>Marked_mark(len(X))</LHS><RHS>Marked_mark(X)</RHS></DPRULE><DPRULE num="12"><LHS>Marked_mark(cons(X1,X2))</LHS><RHS>Marked_mark(X1)</RHS></DPRULE></DPLIST></DPSYS></SYSTEM><CRITERION><ORDERING type="poly"><POLYSYMB><SYMBOL><NAME>nil</NAME></SYMBOL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>Marked_a__fst</NAME></SYMBOL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>3</INT></COEF></MONOME></POLYNOMIAL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>1</INT></COEF><ARG degree="1" num="0"/></MONOME></POLYNOMIAL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>1</INT></COEF><ARG degree="1" num="1"/></MONOME></POLYNOMIAL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></SUMPOLY></POLYNOMIAL></SUMPOLY></POLYNOMIAL></SUMPOLY></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>a__from</NAME></SYMBOL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>2</INT></COEF></MONOME></POLYNOMIAL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>2</INT></COEF><ARG degree="1" num="0"/></MONOME></POLYNOMIAL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></SUMPOLY></POLYNOMIAL></SUMPOLY></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>mark</NAME></SYMBOL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>1</INT></COEF><ARG degree="1" num="0"/></MONOME></POLYNOMIAL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></SUMPOLY></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>len</NAME></SYMBOL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>1</INT></COEF></MONOME></POLYNOMIAL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>2</INT></COEF><ARG degree="1" num="0"/></MONOME></POLYNOMIAL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></SUMPOLY></POLYNOMIAL></SUMPOLY></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>0</NAME></SYMBOL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>1</INT></COEF></MONOME></POLYNOMIAL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></SUMPOLY></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>add</NAME></SYMBOL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>2</INT></COEF></MONOME></POLYNOMIAL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>2</INT></COEF><ARG degree="1" num="0"/></MONOME></POLYNOMIAL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>1</INT></COEF><ARG degree="1" num="1"/></MONOME></POLYNOMIAL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></SUMPOLY></POLYNOMIAL></SUMPOLY></POLYNOMIAL></SUMPOLY></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>s</NAME></SYMBOL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>1</INT></COEF></MONOME></POLYNOMIAL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></SUMPOLY></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>Marked_a__add</NAME></SYMBOL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>3</INT></COEF></MONOME></POLYNOMIAL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>1</INT></COEF><ARG degree="1" num="0"/></MONOME></POLYNOMIAL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>1</INT></COEF><ARG degree="1" num="1"/></MONOME></POLYNOMIAL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></SUMPOLY></POLYNOMIAL></SUMPOLY></POLYNOMIAL></SUMPOLY></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>a__fst</NAME></SYMBOL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>2</INT></COEF></MONOME></POLYNOMIAL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>1</INT></COEF><ARG degree="1" num="0"/></MONOME></POLYNOMIAL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>1</INT></COEF><ARG degree="1" num="1"/></MONOME></POLYNOMIAL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></SUMPOLY></POLYNOMIAL></SUMPOLY></POLYNOMIAL></SUMPOLY></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>Marked_mark</NAME></SYMBOL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>2</INT></COEF></MONOME></POLYNOMIAL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>1</INT></COEF><ARG degree="1" num="0"/></MONOME></POLYNOMIAL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></SUMPOLY></POLYNOMIAL></SUMPOLY></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>a__add</NAME></SYMBOL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>2</INT></COEF></MONOME></POLYNOMIAL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>2</INT></COEF><ARG degree="1" num="0"/></MONOME></POLYNOMIAL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>1</INT></COEF><ARG degree="1" num="1"/></MONOME></POLYNOMIAL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></SUMPOLY></POLYNOMIAL></SUMPOLY></POLYNOMIAL></SUMPOLY></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>fst</NAME></SYMBOL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>2</INT></COEF></MONOME></POLYNOMIAL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>1</INT></COEF><ARG degree="1" num="0"/></MONOME></POLYNOMIAL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>1</INT></COEF><ARG degree="1" num="1"/></MONOME></POLYNOMIAL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></SUMPOLY></POLYNOMIAL></SUMPOLY></POLYNOMIAL></SUMPOLY></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>cons</NAME></SYMBOL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>2</INT></COEF><ARG degree="1" num="0"/></MONOME></POLYNOMIAL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></SUMPOLY></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>a__len</NAME></SYMBOL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>1</INT></COEF></MONOME></POLYNOMIAL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>2</INT></COEF><ARG degree="1" num="0"/></MONOME></POLYNOMIAL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></SUMPOLY></POLYNOMIAL></SUMPOLY></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>from</NAME></SYMBOL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>2</INT></COEF></MONOME></POLYNOMIAL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>2</INT></COEF><ARG degree="1" num="0"/></MONOME></POLYNOMIAL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></SUMPOLY></POLYNOMIAL></SUMPOLY></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>Marked_a__from</NAME></SYMBOL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>2</INT></COEF></MONOME></POLYNOMIAL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>1</INT></COEF><ARG degree="1" num="0"/></MONOME></POLYNOMIAL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></SUMPOLY></POLYNOMIAL></SUMPOLY></POLYNOMIAL></POLYSYMB></ORDERING><STRICTPAIRS><DPLIST><DPRULE num="0"><LHS>Marked_a__fst(s(X),cons(Y,Z))</LHS><RHS>Marked_mark(Y)</RHS></DPRULE><DPRULE num="1"><LHS>Marked_a__add(0,X)</LHS><RHS>Marked_mark(X)</RHS></DPRULE><DPRULE num="2"><LHS>Marked_mark(fst(X1,X2))</LHS><RHS>Marked_a__fst(mark(X1),mark(X2))</RHS></DPRULE><DPRULE num="3"><LHS>Marked_mark(fst(X1,X2))</LHS><RHS>Marked_mark(X1)</RHS></DPRULE><DPRULE num="4"><LHS>Marked_mark(fst(X1,X2))</LHS><RHS>Marked_mark(X2)</RHS></DPRULE><DPRULE num="5"><LHS>Marked_mark(from(X))</LHS><RHS>Marked_a__from(mark(X))</RHS></DPRULE><DPRULE num="6"><LHS>Marked_mark(from(X))</LHS><RHS>Marked_mark(X)</RHS></DPRULE><DPRULE num="7"><LHS>Marked_mark(add(X1,X2))</LHS><RHS>Marked_a__add(mark(X1),mark(X2))</RHS></DPRULE><DPRULE num="8"><LHS>Marked_mark(add(X1,X2))</LHS><RHS>Marked_mark(X1)</RHS></DPRULE><DPRULE num="9"><LHS>Marked_mark(add(X1,X2))</LHS><RHS>Marked_mark(X2)</RHS></DPRULE><DPRULE num="10"><LHS>Marked_mark(len(X))</LHS><RHS>Marked_mark(X)</RHS></DPRULE></DPLIST></STRICTPAIRS></CRITERION><PROPERTY criterion="weakgraph" prop="sndp"><SYSTEM><DPSYS><REWSYS><RULE><LHS>a__fst(0,Z)</LHS><RHS>nil</RHS></RULE><RULE><LHS>a__fst(s(X),cons(Y,Z))</LHS><RHS>cons(mark(Y),fst(X,Z))</RHS></RULE><RULE><LHS>a__from(X)</LHS><RHS>cons(mark(X),from(s(X)))</RHS></RULE><RULE><LHS>a__add(0,X)</LHS><RHS>mark(X)</RHS></RULE><RULE><LHS>a__add(s(X),Y)</LHS><RHS>s(add(X,Y))</RHS></RULE><RULE><LHS>a__len(nil)</LHS><RHS>0</RHS></RULE><RULE><LHS>a__len(cons(X,Z))</LHS><RHS>s(len(Z))</RHS></RULE><RULE><LHS>mark(fst(X1,X2))</LHS><RHS>a__fst(mark(X1),mark(X2))</RHS></RULE><RULE><LHS>mark(from(X))</LHS><RHS>a__from(mark(X))</RHS></RULE><RULE><LHS>mark(add(X1,X2))</LHS><RHS>a__add(mark(X1),mark(X2))</RHS></RULE><RULE><LHS>mark(len(X))</LHS><RHS>a__len(mark(X))</RHS></RULE><RULE><LHS>mark(0)</LHS><RHS>0</RHS></RULE><RULE><LHS>mark(s(X))</LHS><RHS>s(X)</RHS></RULE><RULE><LHS>mark(nil)</LHS><RHS>nil</RHS></RULE><RULE><LHS>mark(cons(X1,X2))</LHS><RHS>cons(mark(X1),X2)</RHS></RULE><RULE><LHS>a__fst(X1,X2)</LHS><RHS>fst(X1,X2)</RHS></RULE><RULE><LHS>a__from(X)</LHS><RHS>from(X)</RHS></RULE><RULE><LHS>a__add(X1,X2)</LHS><RHS>add(X1,X2)</RHS></RULE><RULE><LHS>a__len(X)</LHS><RHS>len(X)</RHS></RULE></REWSYS><DPLIST><DPRULE num="0"><LHS>Marked_a__from(X)</LHS><RHS>Marked_mark(X)</RHS></DPRULE><DPRULE num="1"><LHS>Marked_mark(cons(X1,X2))</LHS><RHS>Marked_mark(X1)</RHS></DPRULE></DPLIST></DPSYS></SYSTEM><CRITERION><DAG approx="simpl"><CCLIST><SCC num="0"><NODE ref="1"/></SCC><NONSCC num="1"><NODE ref="0"/></NONSCC></CCLIST><EDGE end="0" start="1"/></DAG></CRITERION><PROPERTY criterion="sterm" prop="sndp"><SYSTEM><DPSYS><REWSYS><RULE><LHS>a__fst(0,Z)</LHS><RHS>nil</RHS></RULE><RULE><LHS>a__fst(s(X),cons(Y,Z))</LHS><RHS>cons(mark(Y),fst(X,Z))</RHS></RULE><RULE><LHS>a__from(X)</LHS><RHS>cons(mark(X),from(s(X)))</RHS></RULE><RULE><LHS>a__add(0,X)</LHS><RHS>mark(X)</RHS></RULE><RULE><LHS>a__add(s(X),Y)</LHS><RHS>s(add(X,Y))</RHS></RULE><RULE><LHS>a__len(nil)</LHS><RHS>0</RHS></RULE><RULE><LHS>a__len(cons(X,Z))</LHS><RHS>s(len(Z))</RHS></RULE><RULE><LHS>mark(fst(X1,X2))</LHS><RHS>a__fst(mark(X1),mark(X2))</RHS></RULE><RULE><LHS>mark(from(X))</LHS><RHS>a__from(mark(X))</RHS></RULE><RULE><LHS>mark(add(X1,X2))</LHS><RHS>a__add(mark(X1),mark(X2))</RHS></RULE><RULE><LHS>mark(len(X))</LHS><RHS>a__len(mark(X))</RHS></RULE><RULE><LHS>mark(0)</LHS><RHS>0</RHS></RULE><RULE><LHS>mark(s(X))</LHS><RHS>s(X)</RHS></RULE><RULE><LHS>mark(nil)</LHS><RHS>nil</RHS></RULE><RULE><LHS>mark(cons(X1,X2))</LHS><RHS>cons(mark(X1),X2)</RHS></RULE><RULE><LHS>a__fst(X1,X2)</LHS><RHS>fst(X1,X2)</RHS></RULE><RULE><LHS>a__from(X)</LHS><RHS>from(X)</RHS></RULE><RULE><LHS>a__add(X1,X2)</LHS><RHS>add(X1,X2)</RHS></RULE><RULE><LHS>a__len(X)</LHS><RHS>len(X)</RHS></RULE></REWSYS><DPLIST><DPRULE num="0"><LHS>Marked_mark(cons(X1,X2))</LHS><RHS>Marked_mark(X1)</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(cons(X1,X2))</LHS><RHS>Marked_mark(X1)</RHS></DPRULE></DPLIST></STRICTPAIRS><PROPERTY criterion="weakgraph" prop="sndp"><SYSTEM><DPSYS><REWSYS><RULE><LHS>a__fst(0,Z)</LHS><RHS>nil</RHS></RULE><RULE><LHS>a__fst(s(X),cons(Y,Z))</LHS><RHS>cons(mark(Y),fst(X,Z))</RHS></RULE><RULE><LHS>a__from(X)</LHS><RHS>cons(mark(X),from(s(X)))</RHS></RULE><RULE><LHS>a__add(0,X)</LHS><RHS>mark(X)</RHS></RULE><RULE><LHS>a__add(s(X),Y)</LHS><RHS>s(add(X,Y))</RHS></RULE><RULE><LHS>a__len(nil)</LHS><RHS>0</RHS></RULE><RULE><LHS>a__len(cons(X,Z))</LHS><RHS>s(len(Z))</RHS></RULE><RULE><LHS>mark(fst(X1,X2))</LHS><RHS>a__fst(mark(X1),mark(X2))</RHS></RULE><RULE><LHS>mark(from(X))</LHS><RHS>a__from(mark(X))</RHS></RULE><RULE><LHS>mark(add(X1,X2))</LHS><RHS>a__add(mark(X1),mark(X2))</RHS></RULE><RULE><LHS>mark(len(X))</LHS><RHS>a__len(mark(X))</RHS></RULE><RULE><LHS>mark(0)</LHS><RHS>0</RHS></RULE><RULE><LHS>mark(s(X))</LHS><RHS>s(X)</RHS></RULE><RULE><LHS>mark(nil)</LHS><RHS>nil</RHS></RULE><RULE><LHS>mark(cons(X1,X2))</LHS><RHS>cons(mark(X1),X2)</RHS></RULE><RULE><LHS>a__fst(X1,X2)</LHS><RHS>fst(X1,X2)</RHS></RULE><RULE><LHS>a__from(X)</LHS><RHS>from(X)</RHS></RULE><RULE><LHS>a__add(X1,X2)</LHS><RHS>add(X1,X2)</RHS></RULE><RULE><LHS>a__len(X)</LHS><RHS>len(X)</RHS></RULE></REWSYS><DPLIST/></DPSYS></SYSTEM><CRITERION><DAG approx="simpl"><CCLIST/></DAG></CRITERION></PROPERTY></PROPERTY></PROPERTY></PROPERTY></PROPERTY></PROPERTY></PROOF>
