<?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>=</NAME></SYMBOL><SYMBOL arity="2" unmarked=""><NAME>min</NAME></SYMBOL><SYMBOL arity="3" unmarked=""><NAME>if</NAME></SYMBOL><SYMBOL arity="2" unmarked="min"><NAME>Marked_min</NAME></SYMBOL><SYMBOL arity="1" unmarked=""><NAME>msort</NAME></SYMBOL><SYMBOL arity="2" unmarked=""><NAME>&lt;=</NAME></SYMBOL><SYMBOL arity="1" unmarked="msort"><NAME>Marked_msort</NAME></SYMBOL><SYMBOL arity="2" unmarked=""><NAME>.</NAME></SYMBOL><SYMBOL arity="2" unmarked=""><NAME>del</NAME></SYMBOL><SYMBOL arity="2" unmarked="del"><NAME>Marked_del</NAME></SYMBOL><SYMBOL arity="0" unmarked=""><NAME>nil</NAME></SYMBOL></SYMBOLLIST><VARLIST><VAR>z</VAR><VAR>y</VAR><VAR>x</VAR></VARLIST></SIGNATURE><PROPERTY criterion="dp" prop="sntrs"><SYSTEM><REWSYS><RULE><LHS>msort(nil)</LHS><RHS>nil</RHS></RULE><RULE><LHS>msort(.(x,y))</LHS><RHS>.(min(x,y),msort(del(min(x,y),.(x,y))))</RHS></RULE><RULE><LHS>min(x,nil)</LHS><RHS>x</RHS></RULE><RULE><LHS>min(x,.(y,z))</LHS><RHS>if(&lt;=(x,y),min(x,z),min(y,z))</RHS></RULE><RULE><LHS>del(x,nil)</LHS><RHS>nil</RHS></RULE><RULE><LHS>del(x,.(y,z))</LHS><RHS>if(=(x,y),z,.(y,del(x,z)))</RHS></RULE></REWSYS></SYSTEM><CRITERION/><PROPERTY criterion="weakgraph" prop="sndp"><SYSTEM><DPSYS><REWSYS><RULE><LHS>msort(nil)</LHS><RHS>nil</RHS></RULE><RULE><LHS>msort(.(x,y))</LHS><RHS>.(min(x,y),msort(del(min(x,y),.(x,y))))</RHS></RULE><RULE><LHS>min(x,nil)</LHS><RHS>x</RHS></RULE><RULE><LHS>min(x,.(y,z))</LHS><RHS>if(&lt;=(x,y),min(x,z),min(y,z))</RHS></RULE><RULE><LHS>del(x,nil)</LHS><RHS>nil</RHS></RULE><RULE><LHS>del(x,.(y,z))</LHS><RHS>if(=(x,y),z,.(y,del(x,z)))</RHS></RULE></REWSYS><DPLIST><DPRULE num="0"><LHS>Marked_msort(.(x,y))</LHS><RHS>Marked_min(x,y)</RHS></DPRULE><DPRULE num="1"><LHS>Marked_msort(.(x,y))</LHS><RHS>Marked_msort(del(min(x,y),.(x,y)))</RHS></DPRULE><DPRULE num="2"><LHS>Marked_msort(.(x,y))</LHS><RHS>Marked_del(min(x,y),.(x,y))</RHS></DPRULE><DPRULE num="3"><LHS>Marked_msort(.(x,y))</LHS><RHS>Marked_min(x,y)</RHS></DPRULE><DPRULE num="4"><LHS>Marked_min(x,.(y,z))</LHS><RHS>Marked_min(x,z)</RHS></DPRULE><DPRULE num="5"><LHS>Marked_min(x,.(y,z))</LHS><RHS>Marked_min(y,z)</RHS></DPRULE><DPRULE num="6"><LHS>Marked_del(x,.(y,z))</LHS><RHS>Marked_del(x,z)</RHS></DPRULE></DPLIST></DPSYS></SYSTEM><CRITERION><DAG approx="simpl"><CCLIST><SCC num="0"><NODE ref="6"/></SCC><SCC num="1"><NODE ref="4"/><NODE ref="5"/></SCC><NONSCC num="2"><NODE ref="0"/></NONSCC><NONSCC num="3"><NODE ref="2"/></NONSCC><SCC num="4"><NODE ref="1"/></SCC></CCLIST><EDGE end="1" start="2"/><EDGE end="0" start="3"/><EDGE end="3" start="4"/><EDGE end="2" start="4"/></DAG></CRITERION><PROPERTY criterion="ordering" prop="sndp"><SYSTEM><DPSYS><REWSYS><RULE><LHS>msort(nil)</LHS><RHS>nil</RHS></RULE><RULE><LHS>msort(.(x,y))</LHS><RHS>.(min(x,y),msort(del(min(x,y),.(x,y))))</RHS></RULE><RULE><LHS>min(x,nil)</LHS><RHS>x</RHS></RULE><RULE><LHS>min(x,.(y,z))</LHS><RHS>if(&lt;=(x,y),min(x,z),min(y,z))</RHS></RULE><RULE><LHS>del(x,nil)</LHS><RHS>nil</RHS></RULE><RULE><LHS>del(x,.(y,z))</LHS><RHS>if(=(x,y),z,.(y,del(x,z)))</RHS></RULE></REWSYS><DPLIST><DPRULE num="0"><LHS>Marked_msort(.(x,y))</LHS><RHS>Marked_msort(del(min(x,y),.(x,y)))</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>del</NAME></SYMBOL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>.</NAME></SYMBOL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>3</INT></COEF></MONOME></POLYNOMIAL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></SUMPOLY></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>Marked_msort</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>&lt;=</NAME></SYMBOL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>msort</NAME></SYMBOL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>3</INT></COEF></MONOME></POLYNOMIAL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></SUMPOLY></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>if</NAME></SYMBOL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>min</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>=</NAME></SYMBOL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></POLYSYMB></ORDERING></CRITERION></PROPERTY><PROPERTY criterion="ordering" prop="sndp"><SYSTEM><DPSYS><REWSYS><RULE><LHS>msort(nil)</LHS><RHS>nil</RHS></RULE><RULE><LHS>msort(.(x,y))</LHS><RHS>.(min(x,y),msort(del(min(x,y),.(x,y))))</RHS></RULE><RULE><LHS>min(x,nil)</LHS><RHS>x</RHS></RULE><RULE><LHS>min(x,.(y,z))</LHS><RHS>if(&lt;=(x,y),min(x,z),min(y,z))</RHS></RULE><RULE><LHS>del(x,nil)</LHS><RHS>nil</RHS></RULE><RULE><LHS>del(x,.(y,z))</LHS><RHS>if(=(x,y),z,.(y,del(x,z)))</RHS></RULE></REWSYS><DPLIST><DPRULE num="0"><LHS>Marked_min(x,.(y,z))</LHS><RHS>Marked_min(x,z)</RHS></DPRULE><DPRULE num="1"><LHS>Marked_min(x,.(y,z))</LHS><RHS>Marked_min(y,z)</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>del</NAME></SYMBOL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>.</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="1"/></MONOME></POLYNOMIAL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></SUMPOLY></POLYNOMIAL></SUMPOLY></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>&lt;=</NAME></SYMBOL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>msort</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>Marked_min</NAME></SYMBOL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>3</INT></COEF><ARG degree="1" num="1"/></MONOME></POLYNOMIAL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></SUMPOLY></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>if</NAME></SYMBOL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>min</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>=</NAME></SYMBOL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></POLYSYMB></ORDERING></CRITERION></PROPERTY><PROPERTY criterion="ordering" prop="sndp"><SYSTEM><DPSYS><REWSYS><RULE><LHS>msort(nil)</LHS><RHS>nil</RHS></RULE><RULE><LHS>msort(.(x,y))</LHS><RHS>.(min(x,y),msort(del(min(x,y),.(x,y))))</RHS></RULE><RULE><LHS>min(x,nil)</LHS><RHS>x</RHS></RULE><RULE><LHS>min(x,.(y,z))</LHS><RHS>if(&lt;=(x,y),min(x,z),min(y,z))</RHS></RULE><RULE><LHS>del(x,nil)</LHS><RHS>nil</RHS></RULE><RULE><LHS>del(x,.(y,z))</LHS><RHS>if(=(x,y),z,.(y,del(x,z)))</RHS></RULE></REWSYS><DPLIST><DPRULE num="0"><LHS>Marked_del(x,.(y,z))</LHS><RHS>Marked_del(x,z)</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_del</NAME></SYMBOL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>3</INT></COEF><ARG degree="1" num="1"/></MONOME></POLYNOMIAL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></SUMPOLY></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>del</NAME></SYMBOL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>.</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>3</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>&lt;=</NAME></SYMBOL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>msort</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>if</NAME></SYMBOL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>min</NAME></SYMBOL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>1</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>=</NAME></SYMBOL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></POLYSYMB></ORDERING></CRITERION></PROPERTY></PROPERTY></PROPERTY></PROOF>
