<?xml version="1.0"?>
<div class="add">

<b>set </b><font color="Maroon">pr</font> =  <a href="card_3.html#K4">product</a> <font color="Maroon">B</font>;<br/>
<b>set </b><font color="Maroon">ca</font> =  <a href="pralg_1.html#K20" target="_self">ComAr</a> <font color="Maroon">O</font>;<br/>
<b>let </b><font color="Maroon">f</font> be  non <a href="xboole_0.html#V1">empty</a> <a href="unialg_1.html#V1">homogeneous</a> <a href="unialg_1.html#V2">quasi_total</a> <a href="partfun1.html#NM1">PartFunc</a> of <span class="p1">(<span class="default"><a href="card_3.html#K4">product</a> <font color="Maroon">B</font></span>)</span> <a href="finseq_2.html#K3">*</a> , <a href="card_3.html#K4">product</a> <font color="Maroon">B</font>, <font color="Maroon">g</font> be  non <a href="xboole_0.html#V1">empty</a> <a href="unialg_1.html#V1">homogeneous</a> <a href="unialg_1.html#V2">quasi_total</a> <a href="partfun1.html#NM1">PartFunc</a> of <span class="p1">(<span class="default"><a href="card_3.html#K4">product</a> <font color="Maroon">B</font></span>)</span> <a href="finseq_2.html#K3">*</a> , <a href="card_3.html#K4">product</a> <font color="Maroon">B</font>;<br/>

<b>assume </b><b>that </b><br/><a NAME="E1:47_1_2"/><i><font color="Green">E75</font></i>: 
(  <a href="relat_1.html#K1">dom</a> <font color="Maroon">f</font> <a href="hidden.html#R1">=</a> <span class="p1">(<span class="default"><a href="pralg_1.html#K20" target="_self">ComAr</a> <font color="Maroon">O</font></span>)</span> <a href="finseq_2.html#K4">-tuples_on</a> <span class="p1">(<span class="default"><a href="card_3.html#K4">product</a> <font color="Maroon">B</font></span>)</span> &amp; ( for <font color="Olive">p</font> being   <a href="finseq_2.html#M2">Element</a> of <span class="p1">(<span class="default"><a href="card_3.html#K4">product</a> <font color="Maroon">B</font></span>)</span> <a href="finseq_2.html#K3">*</a>   st <font color="Olive">p</font> <a href="hidden.html#R2">in</a>  <a href="relat_1.html#K1">dom</a> <font color="Maroon">f</font> holds <br/>( (  <a href="finseq_1.html#K4">dom</a> <font color="Olive">p</font> <a href="hidden.html#R1">=</a>  <a href="xboole_0.html#K1">{}</a>  implies <font color="Maroon">f</font> <a href="funct_1.html#K1">.</a> <font color="Olive">p</font> <a href="hidden.html#R1">=</a> <font color="Maroon">O</font> <a href="pralg_1.html#K16" target="_self">..</a> <span class="p1">(<span class="default"><a href="pralg_1.html#K21" target="_self">EmptySeq</a> <font color="Maroon">B</font></span>)</span> ) &amp; (  <a href="finseq_1.html#K4">dom</a> <font color="Olive">p</font> <a href="hidden.html#NR2" target="_self">&lt;&gt;</a>  <a href="xboole_0.html#K1">{}</a>  implies for <font color="Olive">Z</font> being non <a href="xboole_0.html#V1">empty</a>  <a href="hidden.html#M1">set</a> <br/> for <font color="Olive">w</font> being   <a href="pboole.html#M1">ManySortedSet</a> of <span class="p1"><a href="zfmisc_1.html#K2">[:</a><span class="default"><font color="Maroon">J</font>,<font color="Olive">Z</font></span><a href="zfmisc_1.html#K2">:]</a></span>  st <font color="Olive">Z</font> <a href="hidden.html#R1">=</a>  <a href="finseq_1.html#K4">dom</a> <font color="Olive">p</font> &amp; <font color="Olive">w</font> <a href="hidden.html#R1">=</a>  <a href="pralg_1.html#K18" target="_self">~</a> <span class="p1">(<span class="default"><a href="pralg_1.html#K17" target="_self">uncurry</a> <font color="Olive">p</font></span>)</span> holds <br/><font color="Maroon">f</font> <a href="funct_1.html#K1">.</a> <font color="Olive">p</font> <a href="hidden.html#R1">=</a> <font color="Maroon">O</font> <a href="pralg_1.html#K16" target="_self">..</a> <span class="p1">(<span class="default"><a href="pralg_1.html#K19" target="_self">curry</a> <font color="Olive">w</font></span>)</span> ) ) ) )
 <b>and </b><br/><a NAME="E2:47_1_2"/><i><font color="Green">E76</font></i>: 
(  <a href="relat_1.html#K1">dom</a> <font color="Maroon">g</font> <a href="hidden.html#R1">=</a> <span class="p1">(<span class="default"><a href="pralg_1.html#K20" target="_self">ComAr</a> <font color="Maroon">O</font></span>)</span> <a href="finseq_2.html#K4">-tuples_on</a> <span class="p1">(<span class="default"><a href="card_3.html#K4">product</a> <font color="Maroon">B</font></span>)</span> &amp; ( for <font color="Olive">p</font> being   <a href="finseq_2.html#M2">Element</a> of <span class="p1">(<span class="default"><a href="card_3.html#K4">product</a> <font color="Maroon">B</font></span>)</span> <a href="finseq_2.html#K3">*</a>   st <font color="Olive">p</font> <a href="hidden.html#R2">in</a>  <a href="relat_1.html#K1">dom</a> <font color="Maroon">g</font> holds <br/>( (  <a href="finseq_1.html#K4">dom</a> <font color="Olive">p</font> <a href="hidden.html#R1">=</a>  <a href="xboole_0.html#K1">{}</a>  implies <font color="Maroon">g</font> <a href="funct_1.html#K1">.</a> <font color="Olive">p</font> <a href="hidden.html#R1">=</a> <font color="Maroon">O</font> <a href="pralg_1.html#K16" target="_self">..</a> <span class="p1">(<span class="default"><a href="pralg_1.html#K21" target="_self">EmptySeq</a> <font color="Maroon">B</font></span>)</span> ) &amp; (  <a href="finseq_1.html#K4">dom</a> <font color="Olive">p</font> <a href="hidden.html#NR2" target="_self">&lt;&gt;</a>  <a href="xboole_0.html#K1">{}</a>  implies for <font color="Olive">Z</font> being non <a href="xboole_0.html#V1">empty</a>  <a href="hidden.html#M1">set</a> <br/> for <font color="Olive">w</font> being   <a href="pboole.html#M1">ManySortedSet</a> of <span class="p1"><a href="zfmisc_1.html#K2">[:</a><span class="default"><font color="Maroon">J</font>,<font color="Olive">Z</font></span><a href="zfmisc_1.html#K2">:]</a></span>  st <font color="Olive">Z</font> <a href="hidden.html#R1">=</a>  <a href="finseq_1.html#K4">dom</a> <font color="Olive">p</font> &amp; <font color="Olive">w</font> <a href="hidden.html#R1">=</a>  <a href="pralg_1.html#K18" target="_self">~</a> <span class="p1">(<span class="default"><a href="pralg_1.html#K17" target="_self">uncurry</a> <font color="Olive">p</font></span>)</span> holds <br/><font color="Maroon">g</font> <a href="funct_1.html#K1">.</a> <font color="Olive">p</font> <a href="hidden.html#R1">=</a> <font color="Maroon">O</font> <a href="pralg_1.html#K16" target="_self">..</a> <span class="p1">(<span class="default"><a href="pralg_1.html#K19" target="_self">curry</a> <font color="Olive">w</font></span>)</span> ) ) ) )
 ;<br/>

<a NAME="E3:47_1_2"/>
for <font color="Olive">x</font> being   <a href="hidden.html#M1">set</a>   st <font color="Olive">x</font> <a href="hidden.html#R2">in</a> <span class="p1">(<span class="default"><a href="pralg_1.html#K20" target="_self">ComAr</a> <font color="Maroon">O</font></span>)</span> <a href="finseq_2.html#K4">-tuples_on</a> <span class="p1">(<span class="default"><a href="card_3.html#K4">product</a> <font color="Maroon">B</font></span>)</span> holds <br/><font color="Maroon">f</font> <a href="funct_1.html#K1">.</a> <font color="Olive">x</font> <a href="hidden.html#R1">=</a> <font color="Maroon">g</font> <a href="funct_1.html#K1">.</a> <font color="Olive">x</font>
 
<div><a class="txt" onclick="hs2(this)" href="javascript:()" title="47_1_2_1"><b>proof </b></a><div class="add">

<b>let </b><font color="Maroon">x</font> be    <a href="hidden.html#M1">set</a> ;<br/>

<b>assume </b><a NAME="E1:47_1_2_1"/><i><font color="Green">E77</font></i>: 
<font color="Maroon">x</font> <a href="hidden.html#R2">in</a> <span class="p1">(<span class="default"><a href="pralg_1.html#K20" target="_self">ComAr</a> <font color="Maroon">O</font></span>)</span> <a href="finseq_2.html#K4">-tuples_on</a> <span class="p1">(<span class="default"><a href="card_3.html#K4">product</a> <font color="Maroon">B</font></span>)</span>
 ;<br/>

<a NAME="E2:47_1_2_1"/><b>then </b>
<font color="Maroon">x</font> <a href="hidden.html#R2">in</a> <span class="p1">{<span class="default"> <font color="Olive">s</font> where <font color="Olive">s</font> is    <a href="finseq_2.html#M2">Element</a> of <span class="p1">(<span class="default"><a href="card_3.html#K4">product</a> <font color="Maroon">B</font></span>)</span> <a href="finseq_2.html#K3">*</a>  :  <a href="finseq_1.html#K3">len</a> <font color="Olive">s</font> <a href="hidden.html#R1">=</a>  <a href="pralg_1.html#K20" target="_self">ComAr</a> <font color="Maroon">O</font> </span>}</span> 
 
;<br/>
<b>then consider </b><font color="Maroon">s</font> being    <a href="finseq_2.html#M2">Element</a> of <span class="p1">(<span class="default"><a href="card_3.html#K4">product</a> <font color="Maroon">B</font></span>)</span> <a href="finseq_2.html#K3">*</a> <b> such that </b><br/><a NAME="E4:47_1_2_1"/><i><font color="Green">E78</font></i>: 
( <font color="Maroon">x</font> <a href="hidden.html#R1">=</a> <font color="Maroon">s</font> &amp;  <a href="finseq_1.html#K3">len</a> <font color="Maroon">s</font> <a href="hidden.html#R1">=</a>  <a href="pralg_1.html#K20" target="_self">ComAr</a> <font color="Maroon">O</font> )
 ;<br/>
<div><a class="txt" onclick="hs2(this)" href="javascript:()" title="47_1_2_1_1"><b>now </b></a><div class="add"><div><a class="txt" onclick="hsNdiv(this)" href="javascript:()" title="47_1_2_1_1_1"><b>per </b></a><a class="txt" onclick="hs(this)" href="javascript:()"><b>cases </b></a><span class="hide"><a NAME="E1:47_1_2_1_1_1"/>
(  <a href="finseq_1.html#K4">dom</a> <font color="Maroon">s</font> <a href="hidden.html#R1">=</a>  <a href="xboole_0.html#K1">{}</a>  or  <a href="finseq_1.html#K4">dom</a> <font color="Maroon">s</font> <a href="hidden.html#NR2" target="_self">&lt;&gt;</a>  <a href="xboole_0.html#K1">{}</a>  )
 </span>;<br/><div class="add"><div><a class="txt" onclick="hsNdiv(this)" href="javascript:()" title="47_1_2_1_1_1_1"><b>case </b></a><a NAME="E1:47_1_2_1_1_1_1"/>
 <a href="finseq_1.html#K4">dom</a> <font color="Maroon">s</font> <a href="hidden.html#R1">=</a>  <a href="xboole_0.html#K1">{}</a> 
 ;<br/><div class="add"><a NAME="E2:47_1_2_1_1_1_1"/><b>then </b>
( <font color="Maroon">f</font> <a href="funct_1.html#K1">.</a> <font color="Maroon">s</font> <a href="hidden.html#R1">=</a> <font color="Maroon">O</font> <a href="pralg_1.html#K16" target="_self">..</a> <span class="p1">(<span class="default"><a href="pralg_1.html#K21" target="_self">EmptySeq</a> <font color="Maroon">B</font></span>)</span> &amp; <font color="Maroon">g</font> <a href="funct_1.html#K1">.</a> <font color="Maroon">s</font> <a href="hidden.html#R1">=</a> <font color="Maroon">O</font> <a href="pralg_1.html#K16" target="_self">..</a> <span class="p1">(<span class="default"><a href="pralg_1.html#K21" target="_self">EmptySeq</a> <font color="Maroon">B</font></span>)</span> )
 <b>by </b><i>, , , </i>;<br/><b>hence </b><a NAME="E3:47_1_2_1_1_1_1"/>
<font color="Maroon">f</font> <a href="funct_1.html#K1">.</a> <font color="Maroon">x</font> <a href="hidden.html#R1">=</a> <font color="Maroon">g</font> <a href="funct_1.html#K1">.</a> <font color="Maroon">x</font>
 <b>by </b><i/>;<br/></div><b>end;</b></div><div><a class="txt" onclick="hsNdiv(this)" href="javascript:()" title="47_1_2_1_1_1_2"><b>case </b></a><a NAME="E1:47_1_2_1_1_1_2"/>
 <a href="finseq_1.html#K4">dom</a> <font color="Maroon">s</font> <a href="hidden.html#NR2" target="_self">&lt;&gt;</a>  <a href="xboole_0.html#K1">{}</a> 
 ;<br/><div class="add"><b>then reconsider </b><font color="Maroon">Z</font> =  <a href="finseq_1.html#K4">dom</a> <font color="Maroon">s</font> as  non <a href="xboole_0.html#V1">empty</a>  <a href="hidden.html#M1">set</a>  ;<br/><b>reconsider </b><font color="Maroon">w</font> =  <a href="pralg_1.html#K18" target="_self">~</a> <span class="p1">(<span class="default"><a href="pralg_1.html#K17" target="_self">uncurry</a> <font color="Maroon">s</font></span>)</span> as    <a href="pboole.html#M1">ManySortedSet</a> of <span class="p1"><a href="zfmisc_1.html#K2">[:</a><span class="default"><font color="Maroon">J</font>,<font color="Maroon">Z</font></span><a href="zfmisc_1.html#K2">:]</a></span> ;<br/><a NAME="E4:47_1_2_1_1_1_2"/>
( <font color="Maroon">f</font> <a href="funct_1.html#K1">.</a> <font color="Maroon">s</font> <a href="hidden.html#R1">=</a> <font color="Maroon">O</font> <a href="pralg_1.html#K16" target="_self">..</a> <span class="p1">(<span class="default"><a href="pralg_1.html#K19" target="_self">curry</a> <font color="Maroon">w</font></span>)</span> &amp; <font color="Maroon">g</font> <a href="funct_1.html#K1">.</a> <font color="Maroon">s</font> <a href="hidden.html#R1">=</a> <font color="Maroon">O</font> <a href="pralg_1.html#K16" target="_self">..</a> <span class="p1">(<span class="default"><a href="pralg_1.html#K19" target="_self">curry</a> <font color="Maroon">w</font></span>)</span> )
 <b>by </b><i>, , , </i>;<br/><b>hence </b><a NAME="E5:47_1_2_1_1_1_2"/>
<font color="Maroon">f</font> <a href="funct_1.html#K1">.</a> <font color="Maroon">x</font> <a href="hidden.html#R1">=</a> <font color="Maroon">g</font> <a href="funct_1.html#K1">.</a> <font color="Maroon">x</font>
 <b>by </b><i/>;<br/></div><b>end;</b></div></div><b>end;</b></div></div><b>end;</b></div>
<b>hence </b><a NAME="E6:47_1_2_1"/>
<font color="Maroon">f</font> <a href="funct_1.html#K1">.</a> <font color="Maroon">x</font> <a href="hidden.html#R1">=</a> <font color="Maroon">g</font> <a href="funct_1.html#K1">.</a> <font color="Maroon">x</font>
 ;<br/>


</div><b>end;</b></div>
<b>hence </b><a NAME="E4:47_1_2"/>
<font color="Maroon">f</font> <a href="hidden.html#R1">=</a> <font color="Maroon">g</font>
 <b>by </b><i>, , <a class="ref" href="funct_1.html#T9">FUNCT_1:9</a></i>;<br/>


</div>
