<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE PROOF SYSTEM "http://a3pat.ensiie.fr/pub/a3pat.dtd">
<PROOF><SIGNATURE><SYMBOLLIST><SYMBOL arity="2" unmarked="or"><NAME>Marked_or</NAME></SYMBOL><SYMBOL arity="0" unmarked=""><NAME>empty</NAME></SYMBOL><SYMBOL arity="5" unmarked=""><NAME>if_reach_2</NAME></SYMBOL><SYMBOL arity="0" unmarked=""><NAME>false</NAME></SYMBOL><SYMBOL arity="4" unmarked="reach"><NAME>Marked_reach</NAME></SYMBOL><SYMBOL arity="2" unmarked=""><NAME>or</NAME></SYMBOL><SYMBOL arity="4" unmarked=""><NAME>reach</NAME></SYMBOL><SYMBOL arity="2" unmarked="eq"><NAME>Marked_eq</NAME></SYMBOL><SYMBOL arity="2" unmarked=""><NAME>eq</NAME></SYMBOL><SYMBOL arity="5" unmarked="if_reach_2"><NAME>Marked_if_reach_2</NAME></SYMBOL><SYMBOL arity="2" unmarked=""><NAME>union</NAME></SYMBOL><SYMBOL arity="5" unmarked=""><NAME>if_reach_1</NAME></SYMBOL><SYMBOL arity="0" unmarked=""><NAME>0</NAME></SYMBOL><SYMBOL arity="5" unmarked="if_reach_1"><NAME>Marked_if_reach_1</NAME></SYMBOL><SYMBOL arity="1" unmarked=""><NAME>s</NAME></SYMBOL><SYMBOL arity="3" unmarked=""><NAME>edge</NAME></SYMBOL><SYMBOL arity="2" unmarked="union"><NAME>Marked_union</NAME></SYMBOL><SYMBOL arity="0" unmarked=""><NAME>true</NAME></SYMBOL></SYMBOLLIST><VARLIST><VAR>y</VAR><VAR>x</VAR><VAR>v</VAR><VAR>u</VAR><VAR>i</VAR><VAR>h</VAR></VARLIST></SIGNATURE><PROPERTY criterion="dp" prop="sntrs"><SYSTEM><REWSYS><RULE><LHS>eq(0,0)</LHS><RHS>true</RHS></RULE><RULE><LHS>eq(0,s(x))</LHS><RHS>false</RHS></RULE><RULE><LHS>eq(s(x),0)</LHS><RHS>false</RHS></RULE><RULE><LHS>eq(s(x),s(y))</LHS><RHS>eq(x,y)</RHS></RULE><RULE><LHS>or(true,y)</LHS><RHS>true</RHS></RULE><RULE><LHS>or(false,y)</LHS><RHS>y</RHS></RULE><RULE><LHS>union(empty,h)</LHS><RHS>h</RHS></RULE><RULE><LHS>union(edge(x,y,i),h)</LHS><RHS>edge(x,y,union(i,h))</RHS></RULE><RULE><LHS>reach(x,y,empty,h)</LHS><RHS>false</RHS></RULE><RULE><LHS>reach(x,y,edge(u,v,i),h)</LHS><RHS>if_reach_1(eq(x,u),x,y,edge(u,v,i),h)</RHS></RULE><RULE><LHS>if_reach_1(true,x,y,edge(u,v,i),h)</LHS><RHS>if_reach_2(eq(y,v),x,y,edge(u,v,i),h)</RHS></RULE><RULE><LHS>if_reach_2(true,x,y,edge(u,v,i),h)</LHS><RHS>true</RHS></RULE><RULE><LHS>if_reach_2(false,x,y,edge(u,v,i),h)</LHS><RHS>or(reach(x,y,i,h),reach(v,y,union(i,h),empty))</RHS></RULE><RULE><LHS>if_reach_1(false,x,y,edge(u,v,i),h)</LHS><RHS>reach(x,y,i,edge(u,v,h))</RHS></RULE></REWSYS></SYSTEM><CRITERION/><PROPERTY criterion="weakgraph" prop="sndp"><SYSTEM><DPSYS><REWSYS><RULE><LHS>eq(0,0)</LHS><RHS>true</RHS></RULE><RULE><LHS>eq(0,s(x))</LHS><RHS>false</RHS></RULE><RULE><LHS>eq(s(x),0)</LHS><RHS>false</RHS></RULE><RULE><LHS>eq(s(x),s(y))</LHS><RHS>eq(x,y)</RHS></RULE><RULE><LHS>or(true,y)</LHS><RHS>true</RHS></RULE><RULE><LHS>or(false,y)</LHS><RHS>y</RHS></RULE><RULE><LHS>union(empty,h)</LHS><RHS>h</RHS></RULE><RULE><LHS>union(edge(x,y,i),h)</LHS><RHS>edge(x,y,union(i,h))</RHS></RULE><RULE><LHS>reach(x,y,empty,h)</LHS><RHS>false</RHS></RULE><RULE><LHS>reach(x,y,edge(u,v,i),h)</LHS><RHS>if_reach_1(eq(x,u),x,y,edge(u,v,i),h)</RHS></RULE><RULE><LHS>if_reach_1(true,x,y,edge(u,v,i),h)</LHS><RHS>if_reach_2(eq(y,v),x,y,edge(u,v,i),h)</RHS></RULE><RULE><LHS>if_reach_2(true,x,y,edge(u,v,i),h)</LHS><RHS>true</RHS></RULE><RULE><LHS>if_reach_2(false,x,y,edge(u,v,i),h)</LHS><RHS>or(reach(x,y,i,h),reach(v,y,union(i,h),empty))</RHS></RULE><RULE><LHS>if_reach_1(false,x,y,edge(u,v,i),h)</LHS><RHS>reach(x,y,i,edge(u,v,h))</RHS></RULE></REWSYS><DPLIST><DPRULE num="0"><LHS>Marked_eq(s(x),s(y))</LHS><RHS>Marked_eq(x,y)</RHS></DPRULE><DPRULE num="1"><LHS>Marked_union(edge(x,y,i),h)</LHS><RHS>Marked_union(i,h)</RHS></DPRULE><DPRULE num="2"><LHS>Marked_reach(x,y,edge(u,v,i),h)</LHS><RHS>Marked_if_reach_1(eq(x,u),x,y,edge(u,v,i),h)</RHS></DPRULE><DPRULE num="3"><LHS>Marked_reach(x,y,edge(u,v,i),h)</LHS><RHS>Marked_eq(x,u)</RHS></DPRULE><DPRULE num="4"><LHS>Marked_if_reach_1(true,x,y,edge(u,v,i),h)</LHS><RHS>Marked_if_reach_2(eq(y,v),x,y,edge(u,v,i),h)</RHS></DPRULE><DPRULE num="5"><LHS>Marked_if_reach_1(true,x,y,edge(u,v,i),h)</LHS><RHS>Marked_eq(y,v)</RHS></DPRULE><DPRULE num="6"><LHS>Marked_if_reach_2(false,x,y,edge(u,v,i),h)</LHS><RHS>Marked_or(reach(x,y,i,h),reach(v,y,union(i,h),empty))</RHS></DPRULE><DPRULE num="7"><LHS>Marked_if_reach_2(false,x,y,edge(u,v,i),h)</LHS><RHS>Marked_reach(x,y,i,h)</RHS></DPRULE><DPRULE num="8"><LHS>Marked_if_reach_2(false,x,y,edge(u,v,i),h)</LHS><RHS>Marked_reach(v,y,union(i,h),empty)</RHS></DPRULE><DPRULE num="9"><LHS>Marked_if_reach_2(false,x,y,edge(u,v,i),h)</LHS><RHS>Marked_union(i,h)</RHS></DPRULE><DPRULE num="10"><LHS>Marked_if_reach_1(false,x,y,edge(u,v,i),h)</LHS><RHS>Marked_reach(x,y,i,edge(u,v,h))</RHS></DPRULE></DPLIST></DPSYS></SYSTEM><CRITERION><DAG approx="simpl"><CCLIST><SCC num="0"><NODE ref="2"/><NODE ref="4"/><NODE ref="7"/><NODE ref="8"/><NODE ref="10"/></SCC><NONSCC num="1"><NODE ref="3"/></NONSCC><NONSCC num="2"><NODE ref="9"/></NONSCC><SCC num="3"><NODE ref="1"/></SCC><NONSCC num="4"><NODE ref="6"/></NONSCC><NONSCC num="5"><NODE ref="5"/></NONSCC><SCC num="6"><NODE ref="0"/></SCC></CCLIST><EDGE end="5" start="0"/><EDGE end="4" start="0"/><EDGE end="2" start="0"/><EDGE end="1" start="0"/><EDGE end="6" start="1"/><EDGE end="3" start="2"/><EDGE end="6" start="5"/></DAG></CRITERION><PROPERTY criterion="stronggraph" prop="sndp"><SYSTEM><DPSYS><REWSYS><RULE><LHS>eq(0,0)</LHS><RHS>true</RHS></RULE><RULE><LHS>eq(0,s(x))</LHS><RHS>false</RHS></RULE><RULE><LHS>eq(s(x),0)</LHS><RHS>false</RHS></RULE><RULE><LHS>eq(s(x),s(y))</LHS><RHS>eq(x,y)</RHS></RULE><RULE><LHS>or(true,y)</LHS><RHS>true</RHS></RULE><RULE><LHS>or(false,y)</LHS><RHS>y</RHS></RULE><RULE><LHS>union(empty,h)</LHS><RHS>h</RHS></RULE><RULE><LHS>union(edge(x,y,i),h)</LHS><RHS>edge(x,y,union(i,h))</RHS></RULE><RULE><LHS>reach(x,y,empty,h)</LHS><RHS>false</RHS></RULE><RULE><LHS>reach(x,y,edge(u,v,i),h)</LHS><RHS>if_reach_1(eq(x,u),x,y,edge(u,v,i),h)</RHS></RULE><RULE><LHS>if_reach_1(true,x,y,edge(u,v,i),h)</LHS><RHS>if_reach_2(eq(y,v),x,y,edge(u,v,i),h)</RHS></RULE><RULE><LHS>if_reach_2(true,x,y,edge(u,v,i),h)</LHS><RHS>true</RHS></RULE><RULE><LHS>if_reach_2(false,x,y,edge(u,v,i),h)</LHS><RHS>or(reach(x,y,i,h),reach(v,y,union(i,h),empty))</RHS></RULE><RULE><LHS>if_reach_1(false,x,y,edge(u,v,i),h)</LHS><RHS>reach(x,y,i,edge(u,v,h))</RHS></RULE></REWSYS><DPLIST><DPRULE num="0"><LHS>Marked_reach(x,y,edge(u,v,i),h)</LHS><RHS>Marked_if_reach_1(eq(x,u),x,y,edge(u,v,i),h)</RHS></DPRULE><DPRULE num="1"><LHS>Marked_if_reach_1(true,x,y,edge(u,v,i),h)</LHS><RHS>Marked_if_reach_2(eq(y,v),x,y,edge(u,v,i),h)</RHS></DPRULE><DPRULE num="2"><LHS>Marked_if_reach_2(false,x,y,edge(u,v,i),h)</LHS><RHS>Marked_reach(x,y,i,h)</RHS></DPRULE><DPRULE num="3"><LHS>Marked_if_reach_2(false,x,y,edge(u,v,i),h)</LHS><RHS>Marked_reach(v,y,union(i,h),empty)</RHS></DPRULE><DPRULE num="4"><LHS>Marked_if_reach_1(false,x,y,edge(u,v,i),h)</LHS><RHS>Marked_reach(x,y,i,edge(u,v,h))</RHS></DPRULE></DPLIST></DPSYS></SYSTEM><CRITERION><ORDERING type="poly"><POLYSYMB><SYMBOL><NAME>true</NAME></SYMBOL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>edge</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="2"/></MONOME></POLYNOMIAL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></SUMPOLY></POLYNOMIAL></SUMPOLY></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>s</NAME></SYMBOL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>3</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_if_reach_1</NAME></SYMBOL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>3</INT></COEF><ARG degree="1" num="2"/></MONOME></POLYNOMIAL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>2</INT></COEF><ARG degree="1" num="3"/></MONOME></POLYNOMIAL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>2</INT></COEF><ARG degree="1" num="4"/></MONOME></POLYNOMIAL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></SUMPOLY></POLYNOMIAL></SUMPOLY></POLYNOMIAL></SUMPOLY></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>0</NAME></SYMBOL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>if_reach_1</NAME></SYMBOL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>union</NAME></SYMBOL><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></POLYSYMB><POLYSYMB><SYMBOL><NAME>Marked_if_reach_2</NAME></SYMBOL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>3</INT></COEF><ARG degree="1" num="2"/></MONOME></POLYNOMIAL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>2</INT></COEF><ARG degree="1" num="3"/></MONOME></POLYNOMIAL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>2</INT></COEF><ARG degree="1" num="4"/></MONOME></POLYNOMIAL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></SUMPOLY></POLYNOMIAL></SUMPOLY></POLYNOMIAL></SUMPOLY></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>eq</NAME></SYMBOL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>reach</NAME></SYMBOL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>or</NAME></SYMBOL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>2</INT></COEF><ARG degree="1" num="1"/></MONOME></POLYNOMIAL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></SUMPOLY></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>Marked_reach</NAME></SYMBOL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>3</INT></COEF><ARG degree="1" num="1"/></MONOME></POLYNOMIAL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>2</INT></COEF><ARG degree="1" num="2"/></MONOME></POLYNOMIAL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>2</INT></COEF><ARG degree="1" num="3"/></MONOME></POLYNOMIAL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></SUMPOLY></POLYNOMIAL></SUMPOLY></POLYNOMIAL></SUMPOLY></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>false</NAME></SYMBOL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>if_reach_2</NAME></SYMBOL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>empty</NAME></SYMBOL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>2</INT></COEF></MONOME></POLYNOMIAL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></SUMPOLY></POLYNOMIAL></POLYSYMB></ORDERING><STRICTPAIRS><DPLIST><DPRULE num="0"><LHS>Marked_if_reach_2(false,x,y,edge(u,v,i),h)</LHS><RHS>Marked_reach(x,y,i,h)</RHS></DPRULE></DPLIST></STRICTPAIRS></CRITERION><PROPERTY criterion="weakgraph" prop="sndp"><SYSTEM><DPSYS><REWSYS><RULE><LHS>eq(0,0)</LHS><RHS>true</RHS></RULE><RULE><LHS>eq(0,s(x))</LHS><RHS>false</RHS></RULE><RULE><LHS>eq(s(x),0)</LHS><RHS>false</RHS></RULE><RULE><LHS>eq(s(x),s(y))</LHS><RHS>eq(x,y)</RHS></RULE><RULE><LHS>or(true,y)</LHS><RHS>true</RHS></RULE><RULE><LHS>or(false,y)</LHS><RHS>y</RHS></RULE><RULE><LHS>union(empty,h)</LHS><RHS>h</RHS></RULE><RULE><LHS>union(edge(x,y,i),h)</LHS><RHS>edge(x,y,union(i,h))</RHS></RULE><RULE><LHS>reach(x,y,empty,h)</LHS><RHS>false</RHS></RULE><RULE><LHS>reach(x,y,edge(u,v,i),h)</LHS><RHS>if_reach_1(eq(x,u),x,y,edge(u,v,i),h)</RHS></RULE><RULE><LHS>if_reach_1(true,x,y,edge(u,v,i),h)</LHS><RHS>if_reach_2(eq(y,v),x,y,edge(u,v,i),h)</RHS></RULE><RULE><LHS>if_reach_2(true,x,y,edge(u,v,i),h)</LHS><RHS>true</RHS></RULE><RULE><LHS>if_reach_2(false,x,y,edge(u,v,i),h)</LHS><RHS>or(reach(x,y,i,h),reach(v,y,union(i,h),empty))</RHS></RULE><RULE><LHS>if_reach_1(false,x,y,edge(u,v,i),h)</LHS><RHS>reach(x,y,i,edge(u,v,h))</RHS></RULE></REWSYS><DPLIST><DPRULE num="0"><LHS>Marked_reach(x,y,edge(u,v,i),h)</LHS><RHS>Marked_if_reach_1(eq(x,u),x,y,edge(u,v,i),h)</RHS></DPRULE><DPRULE num="1"><LHS>Marked_if_reach_1(true,x,y,edge(u,v,i),h)</LHS><RHS>Marked_if_reach_2(eq(y,v),x,y,edge(u,v,i),h)</RHS></DPRULE><DPRULE num="2"><LHS>Marked_if_reach_2(false,x,y,edge(u,v,i),h)</LHS><RHS>Marked_reach(v,y,union(i,h),empty)</RHS></DPRULE><DPRULE num="3"><LHS>Marked_if_reach_1(false,x,y,edge(u,v,i),h)</LHS><RHS>Marked_reach(x,y,i,edge(u,v,h))</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"/></SCC></CCLIST></DAG></CRITERION><PROPERTY criterion="stronggraph" prop="sndp"><SYSTEM><DPSYS><REWSYS><RULE><LHS>eq(0,0)</LHS><RHS>true</RHS></RULE><RULE><LHS>eq(0,s(x))</LHS><RHS>false</RHS></RULE><RULE><LHS>eq(s(x),0)</LHS><RHS>false</RHS></RULE><RULE><LHS>eq(s(x),s(y))</LHS><RHS>eq(x,y)</RHS></RULE><RULE><LHS>or(true,y)</LHS><RHS>true</RHS></RULE><RULE><LHS>or(false,y)</LHS><RHS>y</RHS></RULE><RULE><LHS>union(empty,h)</LHS><RHS>h</RHS></RULE><RULE><LHS>union(edge(x,y,i),h)</LHS><RHS>edge(x,y,union(i,h))</RHS></RULE><RULE><LHS>reach(x,y,empty,h)</LHS><RHS>false</RHS></RULE><RULE><LHS>reach(x,y,edge(u,v,i),h)</LHS><RHS>if_reach_1(eq(x,u),x,y,edge(u,v,i),h)</RHS></RULE><RULE><LHS>if_reach_1(true,x,y,edge(u,v,i),h)</LHS><RHS>if_reach_2(eq(y,v),x,y,edge(u,v,i),h)</RHS></RULE><RULE><LHS>if_reach_2(true,x,y,edge(u,v,i),h)</LHS><RHS>true</RHS></RULE><RULE><LHS>if_reach_2(false,x,y,edge(u,v,i),h)</LHS><RHS>or(reach(x,y,i,h),reach(v,y,union(i,h),empty))</RHS></RULE><RULE><LHS>if_reach_1(false,x,y,edge(u,v,i),h)</LHS><RHS>reach(x,y,i,edge(u,v,h))</RHS></RULE></REWSYS><DPLIST><DPRULE num="0"><LHS>Marked_reach(x,y,edge(u,v,i),h)</LHS><RHS>Marked_if_reach_1(eq(x,u),x,y,edge(u,v,i),h)</RHS></DPRULE><DPRULE num="1"><LHS>Marked_if_reach_1(true,x,y,edge(u,v,i),h)</LHS><RHS>Marked_if_reach_2(eq(y,v),x,y,edge(u,v,i),h)</RHS></DPRULE><DPRULE num="2"><LHS>Marked_if_reach_2(false,x,y,edge(u,v,i),h)</LHS><RHS>Marked_reach(v,y,union(i,h),empty)</RHS></DPRULE><DPRULE num="3"><LHS>Marked_if_reach_1(false,x,y,edge(u,v,i),h)</LHS><RHS>Marked_reach(x,y,i,edge(u,v,h))</RHS></DPRULE></DPLIST></DPSYS></SYSTEM><CRITERION><ORDERING type="poly"><POLYSYMB><SYMBOL><NAME>true</NAME></SYMBOL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>edge</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="2"/></MONOME></POLYNOMIAL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></SUMPOLY></POLYNOMIAL></SUMPOLY></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>s</NAME></SYMBOL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>3</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_if_reach_1</NAME></SYMBOL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>3</INT></COEF><ARG degree="1" num="2"/></MONOME></POLYNOMIAL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>2</INT></COEF><ARG degree="1" num="3"/></MONOME></POLYNOMIAL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>2</INT></COEF><ARG degree="1" num="4"/></MONOME></POLYNOMIAL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></SUMPOLY></POLYNOMIAL></SUMPOLY></POLYNOMIAL></SUMPOLY></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>0</NAME></SYMBOL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>if_reach_1</NAME></SYMBOL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>union</NAME></SYMBOL><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></POLYSYMB><POLYSYMB><SYMBOL><NAME>Marked_if_reach_2</NAME></SYMBOL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>3</INT></COEF><ARG degree="1" num="2"/></MONOME></POLYNOMIAL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>2</INT></COEF><ARG degree="1" num="3"/></MONOME></POLYNOMIAL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>2</INT></COEF><ARG degree="1" num="4"/></MONOME></POLYNOMIAL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></SUMPOLY></POLYNOMIAL></SUMPOLY></POLYNOMIAL></SUMPOLY></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>eq</NAME></SYMBOL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>reach</NAME></SYMBOL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>or</NAME></SYMBOL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>2</INT></COEF><ARG degree="1" num="1"/></MONOME></POLYNOMIAL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></SUMPOLY></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>Marked_reach</NAME></SYMBOL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>3</INT></COEF><ARG degree="1" num="1"/></MONOME></POLYNOMIAL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>2</INT></COEF><ARG degree="1" num="2"/></MONOME></POLYNOMIAL><POLYNOMIAL><SUMPOLY><POLYNOMIAL><MONOME><COEF><INT>2</INT></COEF><ARG degree="1" num="3"/></MONOME></POLYNOMIAL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></SUMPOLY></POLYNOMIAL></SUMPOLY></POLYNOMIAL></SUMPOLY></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>false</NAME></SYMBOL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>if_reach_2</NAME></SYMBOL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></POLYSYMB><POLYSYMB><SYMBOL><NAME>empty</NAME></SYMBOL><POLYNOMIAL><MONOME><COEF><INT>0</INT></COEF></MONOME></POLYNOMIAL></POLYSYMB></ORDERING><STRICTPAIRS><DPLIST><DPRULE num="0"><LHS>Marked_if_reach_2(false,x,y,edge(u,v,i),h)</LHS><RHS>Marked_reach(v,y,union(i,h),empty)</RHS></DPRULE></DPLIST></STRICTPAIRS></CRITERION><PROPERTY criterion="weakgraph" prop="sndp"><SYSTEM><DPSYS><REWSYS><RULE><LHS>eq(0,0)</LHS><RHS>true</RHS></RULE><RULE><LHS>eq(0,s(x))</LHS><RHS>false</RHS></RULE><RULE><LHS>eq(s(x),0)</LHS><RHS>false</RHS></RULE><RULE><LHS>eq(s(x),s(y))</LHS><RHS>eq(x,y)</RHS></RULE><RULE><LHS>or(true,y)</LHS><RHS>true</RHS></RULE><RULE><LHS>or(false,y)</LHS><RHS>y</RHS></RULE><RULE><LHS>union(empty,h)</LHS><RHS>h</RHS></RULE><RULE><LHS>union(edge(x,y,i),h)</LHS><RHS>edge(x,y,union(i,h))</RHS></RULE><RULE><LHS>reach(x,y,empty,h)</LHS><RHS>false</RHS></RULE><RULE><LHS>reach(x,y,edge(u,v,i),h)</LHS><RHS>if_reach_1(eq(x,u),x,y,edge(u,v,i),h)</RHS></RULE><RULE><LHS>if_reach_1(true,x,y,edge(u,v,i),h)</LHS><RHS>if_reach_2(eq(y,v),x,y,edge(u,v,i),h)</RHS></RULE><RULE><LHS>if_reach_2(true,x,y,edge(u,v,i),h)</LHS><RHS>true</RHS></RULE><RULE><LHS>if_reach_2(false,x,y,edge(u,v,i),h)</LHS><RHS>or(reach(x,y,i,h),reach(v,y,union(i,h),empty))</RHS></RULE><RULE><LHS>if_reach_1(false,x,y,edge(u,v,i),h)</LHS><RHS>reach(x,y,i,edge(u,v,h))</RHS></RULE></REWSYS><DPLIST><DPRULE num="0"><LHS>Marked_reach(x,y,edge(u,v,i),h)</LHS><RHS>Marked_if_reach_1(eq(x,u),x,y,edge(u,v,i),h)</RHS></DPRULE><DPRULE num="1"><LHS>Marked_if_reach_1(true,x,y,edge(u,v,i),h)</LHS><RHS>Marked_if_reach_2(eq(y,v),x,y,edge(u,v,i),h)</RHS></DPRULE><DPRULE num="2"><LHS>Marked_if_reach_1(false,x,y,edge(u,v,i),h)</LHS><RHS>Marked_reach(x,y,i,edge(u,v,h))</RHS></DPRULE></DPLIST></DPSYS></SYSTEM><CRITERION><DAG approx="simpl"><CCLIST><SCC num="0"><NODE ref="0"/><NODE ref="2"/></SCC><NONSCC num="1"><NODE ref="1"/></NONSCC></CCLIST><EDGE end="1" start="0"/></DAG></CRITERION><PROPERTY criterion="sterm" prop="sndp"><SYSTEM><DPSYS><REWSYS><RULE><LHS>eq(0,0)</LHS><RHS>true</RHS></RULE><RULE><LHS>eq(0,s(x))</LHS><RHS>false</RHS></RULE><RULE><LHS>eq(s(x),0)</LHS><RHS>false</RHS></RULE><RULE><LHS>eq(s(x),s(y))</LHS><RHS>eq(x,y)</RHS></RULE><RULE><LHS>or(true,y)</LHS><RHS>true</RHS></RULE><RULE><LHS>or(false,y)</LHS><RHS>y</RHS></RULE><RULE><LHS>union(empty,h)</LHS><RHS>h</RHS></RULE><RULE><LHS>union(edge(x,y,i),h)</LHS><RHS>edge(x,y,union(i,h))</RHS></RULE><RULE><LHS>reach(x,y,empty,h)</LHS><RHS>false</RHS></RULE><RULE><LHS>reach(x,y,edge(u,v,i),h)</LHS><RHS>if_reach_1(eq(x,u),x,y,edge(u,v,i),h)</RHS></RULE><RULE><LHS>if_reach_1(true,x,y,edge(u,v,i),h)</LHS><RHS>if_reach_2(eq(y,v),x,y,edge(u,v,i),h)</RHS></RULE><RULE><LHS>if_reach_2(true,x,y,edge(u,v,i),h)</LHS><RHS>true</RHS></RULE><RULE><LHS>if_reach_2(false,x,y,edge(u,v,i),h)</LHS><RHS>or(reach(x,y,i,h),reach(v,y,union(i,h),empty))</RHS></RULE><RULE><LHS>if_reach_1(false,x,y,edge(u,v,i),h)</LHS><RHS>reach(x,y,i,edge(u,v,h))</RHS></RULE></REWSYS><DPLIST><DPRULE num="0"><LHS>Marked_reach(x,y,edge(u,v,i),h)</LHS><RHS>Marked_if_reach_1(eq(x,u),x,y,edge(u,v,i),h)</RHS></DPRULE><DPRULE num="1"><LHS>Marked_if_reach_1(false,x,y,edge(u,v,i),h)</LHS><RHS>Marked_reach(x,y,i,edge(u,v,h))</RHS></DPRULE></DPLIST></DPSYS></SYSTEM><PROJECTION><PROJ><SYMBOL><NAME>Marked_if_reach_1</NAME></SYMBOL><INT>4</INT></PROJ><PROJ><SYMBOL><NAME>Marked_reach</NAME></SYMBOL><INT>3</INT></PROJ></PROJECTION><STRICTPAIRS><DPLIST><DPRULE num="0"><LHS>Marked_if_reach_1(false,x,y,edge(u,v,i),h)</LHS><RHS>Marked_reach(x,y,i,edge(u,v,h))</RHS></DPRULE></DPLIST></STRICTPAIRS><PROPERTY criterion="weakgraph" prop="sndp"><SYSTEM><DPSYS><REWSYS><RULE><LHS>eq(0,0)</LHS><RHS>true</RHS></RULE><RULE><LHS>eq(0,s(x))</LHS><RHS>false</RHS></RULE><RULE><LHS>eq(s(x),0)</LHS><RHS>false</RHS></RULE><RULE><LHS>eq(s(x),s(y))</LHS><RHS>eq(x,y)</RHS></RULE><RULE><LHS>or(true,y)</LHS><RHS>true</RHS></RULE><RULE><LHS>or(false,y)</LHS><RHS>y</RHS></RULE><RULE><LHS>union(empty,h)</LHS><RHS>h</RHS></RULE><RULE><LHS>union(edge(x,y,i),h)</LHS><RHS>edge(x,y,union(i,h))</RHS></RULE><RULE><LHS>reach(x,y,empty,h)</LHS><RHS>false</RHS></RULE><RULE><LHS>reach(x,y,edge(u,v,i),h)</LHS><RHS>if_reach_1(eq(x,u),x,y,edge(u,v,i),h)</RHS></RULE><RULE><LHS>if_reach_1(true,x,y,edge(u,v,i),h)</LHS><RHS>if_reach_2(eq(y,v),x,y,edge(u,v,i),h)</RHS></RULE><RULE><LHS>if_reach_2(true,x,y,edge(u,v,i),h)</LHS><RHS>true</RHS></RULE><RULE><LHS>if_reach_2(false,x,y,edge(u,v,i),h)</LHS><RHS>or(reach(x,y,i,h),reach(v,y,union(i,h),empty))</RHS></RULE><RULE><LHS>if_reach_1(false,x,y,edge(u,v,i),h)</LHS><RHS>reach(x,y,i,edge(u,v,h))</RHS></RULE></REWSYS><DPLIST><DPRULE num="0"><LHS>Marked_reach(x,y,edge(u,v,i),h)</LHS><RHS>Marked_if_reach_1(eq(x,u),x,y,edge(u,v,i),h)</RHS></DPRULE></DPLIST></DPSYS></SYSTEM><CRITERION><DAG approx="simpl"><CCLIST><NONSCC num="0"><NODE ref="0"/></NONSCC></CCLIST></DAG></CRITERION></PROPERTY></PROPERTY></PROPERTY></PROPERTY></PROPERTY></PROPERTY><PROPERTY criterion="sterm" prop="sndp"><SYSTEM><DPSYS><REWSYS><RULE><LHS>eq(0,0)</LHS><RHS>true</RHS></RULE><RULE><LHS>eq(0,s(x))</LHS><RHS>false</RHS></RULE><RULE><LHS>eq(s(x),0)</LHS><RHS>false</RHS></RULE><RULE><LHS>eq(s(x),s(y))</LHS><RHS>eq(x,y)</RHS></RULE><RULE><LHS>or(true,y)</LHS><RHS>true</RHS></RULE><RULE><LHS>or(false,y)</LHS><RHS>y</RHS></RULE><RULE><LHS>union(empty,h)</LHS><RHS>h</RHS></RULE><RULE><LHS>union(edge(x,y,i),h)</LHS><RHS>edge(x,y,union(i,h))</RHS></RULE><RULE><LHS>reach(x,y,empty,h)</LHS><RHS>false</RHS></RULE><RULE><LHS>reach(x,y,edge(u,v,i),h)</LHS><RHS>if_reach_1(eq(x,u),x,y,edge(u,v,i),h)</RHS></RULE><RULE><LHS>if_reach_1(true,x,y,edge(u,v,i),h)</LHS><RHS>if_reach_2(eq(y,v),x,y,edge(u,v,i),h)</RHS></RULE><RULE><LHS>if_reach_2(true,x,y,edge(u,v,i),h)</LHS><RHS>true</RHS></RULE><RULE><LHS>if_reach_2(false,x,y,edge(u,v,i),h)</LHS><RHS>or(reach(x,y,i,h),reach(v,y,union(i,h),empty))</RHS></RULE><RULE><LHS>if_reach_1(false,x,y,edge(u,v,i),h)</LHS><RHS>reach(x,y,i,edge(u,v,h))</RHS></RULE></REWSYS><DPLIST><DPRULE num="0"><LHS>Marked_union(edge(x,y,i),h)</LHS><RHS>Marked_union(i,h)</RHS></DPRULE></DPLIST></DPSYS></SYSTEM><PROJECTION><PROJ><SYMBOL><NAME>Marked_union</NAME></SYMBOL><INT>1</INT></PROJ></PROJECTION><STRICTPAIRS><DPLIST><DPRULE num="0"><LHS>Marked_union(edge(x,y,i),h)</LHS><RHS>Marked_union(i,h)</RHS></DPRULE></DPLIST></STRICTPAIRS><PROPERTY criterion="weakgraph" prop="sndp"><SYSTEM><DPSYS><REWSYS><RULE><LHS>eq(0,0)</LHS><RHS>true</RHS></RULE><RULE><LHS>eq(0,s(x))</LHS><RHS>false</RHS></RULE><RULE><LHS>eq(s(x),0)</LHS><RHS>false</RHS></RULE><RULE><LHS>eq(s(x),s(y))</LHS><RHS>eq(x,y)</RHS></RULE><RULE><LHS>or(true,y)</LHS><RHS>true</RHS></RULE><RULE><LHS>or(false,y)</LHS><RHS>y</RHS></RULE><RULE><LHS>union(empty,h)</LHS><RHS>h</RHS></RULE><RULE><LHS>union(edge(x,y,i),h)</LHS><RHS>edge(x,y,union(i,h))</RHS></RULE><RULE><LHS>reach(x,y,empty,h)</LHS><RHS>false</RHS></RULE><RULE><LHS>reach(x,y,edge(u,v,i),h)</LHS><RHS>if_reach_1(eq(x,u),x,y,edge(u,v,i),h)</RHS></RULE><RULE><LHS>if_reach_1(true,x,y,edge(u,v,i),h)</LHS><RHS>if_reach_2(eq(y,v),x,y,edge(u,v,i),h)</RHS></RULE><RULE><LHS>if_reach_2(true,x,y,edge(u,v,i),h)</LHS><RHS>true</RHS></RULE><RULE><LHS>if_reach_2(false,x,y,edge(u,v,i),h)</LHS><RHS>or(reach(x,y,i,h),reach(v,y,union(i,h),empty))</RHS></RULE><RULE><LHS>if_reach_1(false,x,y,edge(u,v,i),h)</LHS><RHS>reach(x,y,i,edge(u,v,h))</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>eq(0,0)</LHS><RHS>true</RHS></RULE><RULE><LHS>eq(0,s(x))</LHS><RHS>false</RHS></RULE><RULE><LHS>eq(s(x),0)</LHS><RHS>false</RHS></RULE><RULE><LHS>eq(s(x),s(y))</LHS><RHS>eq(x,y)</RHS></RULE><RULE><LHS>or(true,y)</LHS><RHS>true</RHS></RULE><RULE><LHS>or(false,y)</LHS><RHS>y</RHS></RULE><RULE><LHS>union(empty,h)</LHS><RHS>h</RHS></RULE><RULE><LHS>union(edge(x,y,i),h)</LHS><RHS>edge(x,y,union(i,h))</RHS></RULE><RULE><LHS>reach(x,y,empty,h)</LHS><RHS>false</RHS></RULE><RULE><LHS>reach(x,y,edge(u,v,i),h)</LHS><RHS>if_reach_1(eq(x,u),x,y,edge(u,v,i),h)</RHS></RULE><RULE><LHS>if_reach_1(true,x,y,edge(u,v,i),h)</LHS><RHS>if_reach_2(eq(y,v),x,y,edge(u,v,i),h)</RHS></RULE><RULE><LHS>if_reach_2(true,x,y,edge(u,v,i),h)</LHS><RHS>true</RHS></RULE><RULE><LHS>if_reach_2(false,x,y,edge(u,v,i),h)</LHS><RHS>or(reach(x,y,i,h),reach(v,y,union(i,h),empty))</RHS></RULE><RULE><LHS>if_reach_1(false,x,y,edge(u,v,i),h)</LHS><RHS>reach(x,y,i,edge(u,v,h))</RHS></RULE></REWSYS><DPLIST><DPRULE num="0"><LHS>Marked_eq(s(x),s(y))</LHS><RHS>Marked_eq(x,y)</RHS></DPRULE></DPLIST></DPSYS></SYSTEM><PROJECTION><PROJ><SYMBOL><NAME>Marked_eq</NAME></SYMBOL><INT>1</INT></PROJ></PROJECTION><STRICTPAIRS><DPLIST><DPRULE num="0"><LHS>Marked_eq(s(x),s(y))</LHS><RHS>Marked_eq(x,y)</RHS></DPRULE></DPLIST></STRICTPAIRS><PROPERTY criterion="weakgraph" prop="sndp"><SYSTEM><DPSYS><REWSYS><RULE><LHS>eq(0,0)</LHS><RHS>true</RHS></RULE><RULE><LHS>eq(0,s(x))</LHS><RHS>false</RHS></RULE><RULE><LHS>eq(s(x),0)</LHS><RHS>false</RHS></RULE><RULE><LHS>eq(s(x),s(y))</LHS><RHS>eq(x,y)</RHS></RULE><RULE><LHS>or(true,y)</LHS><RHS>true</RHS></RULE><RULE><LHS>or(false,y)</LHS><RHS>y</RHS></RULE><RULE><LHS>union(empty,h)</LHS><RHS>h</RHS></RULE><RULE><LHS>union(edge(x,y,i),h)</LHS><RHS>edge(x,y,union(i,h))</RHS></RULE><RULE><LHS>reach(x,y,empty,h)</LHS><RHS>false</RHS></RULE><RULE><LHS>reach(x,y,edge(u,v,i),h)</LHS><RHS>if_reach_1(eq(x,u),x,y,edge(u,v,i),h)</RHS></RULE><RULE><LHS>if_reach_1(true,x,y,edge(u,v,i),h)</LHS><RHS>if_reach_2(eq(y,v),x,y,edge(u,v,i),h)</RHS></RULE><RULE><LHS>if_reach_2(true,x,y,edge(u,v,i),h)</LHS><RHS>true</RHS></RULE><RULE><LHS>if_reach_2(false,x,y,edge(u,v,i),h)</LHS><RHS>or(reach(x,y,i,h),reach(v,y,union(i,h),empty))</RHS></RULE><RULE><LHS>if_reach_1(false,x,y,edge(u,v,i),h)</LHS><RHS>reach(x,y,i,edge(u,v,h))</RHS></RULE></REWSYS><DPLIST/></DPSYS></SYSTEM><CRITERION><DAG approx="simpl"><CCLIST/></DAG></CRITERION></PROPERTY></PROPERTY></PROPERTY></PROPERTY></PROOF>
