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

<a NAME="E1:12_1_1"/>
 <a href="pralg_3.html#K1" title="PRALG_3:func.1">const</a> (<font color="Maroon" title="c3">o</font>,<span class="p1">(<span class="default"><a href="pralg_2.html#K14" title="PRALG_2:func.14">product</a> <font color="Maroon" title="c4">A</font></span>)</span>) is   <a href="funct_1.html#NM1" title="FUNCT_1:NM.1">Function</a>
 
<div><a class="txt" onmouseover="tooltip.show('hs2',this)" onmouseout="tooltip.hide()" onclick="hs2(this)" href="javascript:()" title="12_1_1_1"><span class="kw">proof </span></a><div class="add">

<div><a class="txt" onclick="hsNdiv(this)" href="javascript:()" title="12_1_1_1_1"><span class="kw">per </span></a><a class="txt" onmouseover="tooltip.show('hs',this)" onmouseout="tooltip.hide()" onclick="hs(this)" href="javascript:()"><span class="kw">cases </span></a><span class="hide"><a NAME="E1:12_1_1_1_1"/>
(  <a href="msualg_1.html#K1" title="MSUALG_1:func.1">the_arity_of</a> <font color="Maroon" title="c3">o</font> <a href="hidden.html#R1" title="HIDDEN:pred.1">=</a>  <a href="xboole_0.html#K1" title="XBOOLE_0:func.1">{}</a>  or  <a href="msualg_1.html#K1" title="MSUALG_1:func.1">the_arity_of</a> <font color="Maroon" title="c3">o</font> <a href="hidden.html#NR2" title="HIDDEN:NR.2">&lt;&gt;</a>  <a href="xboole_0.html#K1" title="XBOOLE_0:func.1">{}</a>  )
 </span>;<br/><div class="add"><div><a class="txt" onclick="hsNdiv(this)" href="javascript:()" title="12_1_1_1_1_1"><span class="kw">suppose </span></a><a NAME="E1:12_1_1_1_1_1"/>
 <a href="msualg_1.html#K1" title="MSUALG_1:func.1">the_arity_of</a> <font color="Maroon" title="c3">o</font> <a href="hidden.html#R1" title="HIDDEN:pred.1">=</a>  <a href="xboole_0.html#K1" title="XBOOLE_0:func.1">{}</a> 
 ; <a class="txt" onmouseover="tooltip.show('hs',this)" onmouseout="tooltip.hide()" onclick="hs(this)" href="javascript:()"><span class="comment"><font color="firebrick">::  thesis: </font></span></a><span class="hide">  <a href="pralg_3.html#K1" title="PRALG_3:func.1">const</a> (<font color="Maroon" title="c3">o</font>,<span class="p1">(<span class="default"><a href="pralg_2.html#K14" title="PRALG_2:func.14">product</a> <font color="Maroon" title="c4">A</font></span>)</span>) is   <a href="funct_1.html#NM1" title="FUNCT_1:NM.1">Function</a></span><br/><div class="add"><a NAME="E2:12_1_1_1_1_1"/><span class="kw">then </span>
 <a href="pralg_3.html#K1" title="PRALG_3:func.1">const</a> (<font color="Maroon" title="c3">o</font>,<span class="p1">(<span class="default"><a href="pralg_2.html#K14" title="PRALG_2:func.14">product</a> <font color="Maroon" title="c4">A</font></span>)</span>) <a href="tarski.html#R2" title="TARSKI:pred.2">in</a>  <a href="funct_2.html#K1" title="FUNCT_2:func.1">Funcs</a> (<font color="Maroon" title="c2">I</font>,<span class="p1">(<span class="default"><a href="tarski.html#K3" title="TARSKI:func.3">union</a> <span class="p2"> { <span class="default"> <span class="p3">(<span class="default"><a href="msualg_1.html#K4" title="MSUALG_1:func.4">Result</a> (<font color="Maroon" title="c3">o</font>,<span class="p4">(<span class="default"><font color="Maroon" title="c4">A</font> <a href="pralg_2.html#K5" title="PRALG_2:func.5">.</a> <font color="Olive" title="b1">i9</font></span>)</span>)</span>)</span> where <font color="Olive" title="b1">i9</font> is    <a href="subset_1.html#M1" title="SUBSET_1:mode.1">Element</a> of <font color="Maroon" title="c2">I</font> : verum </span> } </span> </span>)</span>)
 <span class="kw">by</span> <span class="lab"><a class="ref" href="pralg_3.html#T8" target="_self" onmouseover="rs('pralg_3/T8')" onmouseout="rh()">Th8</a></span>;<br/><a NAME="E3:12_1_1_1_1_1"/><span class="kw">then </span>
 ex <font color="Olive" title="b1">g</font> being   <a href="funct_1.html#NM1" title="FUNCT_1:NM.1">Function</a> st <br/>( <font color="Olive" title="b1">g</font> <a href="hidden.html#R1" title="HIDDEN:pred.1">=</a>  <a href="pralg_3.html#K1" title="PRALG_3:func.1">const</a> (<font color="Maroon" title="c3">o</font>,<span class="p1">(<span class="default"><a href="pralg_2.html#K14" title="PRALG_2:func.14">product</a> <font color="Maroon" title="c4">A</font></span>)</span>) &amp;  <a href="relat_1.html#NK1" title="RELAT_1:NK.1">dom</a> <font color="Olive" title="b1">g</font> <a href="hidden.html#R1" title="HIDDEN:pred.1">=</a> <font color="Maroon" title="c2">I</font> &amp;  <a href="xtuple_0.html#K10" title="XTUPLE_0:func.10">rng</a> <font color="Olive" title="b1">g</font> <a href="tarski.html#R1" title="TARSKI:pred.1">c=</a>  <a href="tarski.html#K3" title="TARSKI:func.3">union</a> <span class="p1"> { <span class="default"> <span class="p2">(<span class="default"><a href="msualg_1.html#K4" title="MSUALG_1:func.4">Result</a> (<font color="Maroon" title="c3">o</font>,<span class="p3">(<span class="default"><font color="Maroon" title="c4">A</font> <a href="pralg_2.html#K5" title="PRALG_2:func.5">.</a> <font color="Olive" title="b2">i9</font></span>)</span>)</span>)</span> where <font color="Olive" title="b2">i9</font> is    <a href="subset_1.html#M1" title="SUBSET_1:mode.1">Element</a> of <font color="Maroon" title="c2">I</font> : verum </span> } </span>  )
 <span class="kw">by</span> <span class="lab"><a class="ref" href="funct_2.html#D2" onmouseover="rs('funct_2/D2')" onmouseout="rh()">FUNCT_2:def 2</a></span>;<br/><span class="kw">hence </span><a NAME="E4:12_1_1_1_1_1"/>
 <a href="pralg_3.html#K1" title="PRALG_3:func.1">const</a> (<font color="Maroon" title="c3">o</font>,<span class="p1">(<span class="default"><a href="pralg_2.html#K14" title="PRALG_2:func.14">product</a> <font color="Maroon" title="c4">A</font></span>)</span>) is   <a href="funct_1.html#NM1" title="FUNCT_1:NM.1">Function</a>
 ; <a class="txt" onmouseover="tooltip.show('hs',this)" onmouseout="tooltip.hide()" onclick="hs(this)" href="javascript:()"><span class="comment"><font color="firebrick">::  thesis: </font></span></a><span class="hide"> verum</span><br/></div><span class="kw">end;</span></div><div><a class="txt" onclick="hsNdiv(this)" href="javascript:()" title="12_1_1_1_1_2"><span class="kw">suppose </span></a><a NAME="E1:12_1_1_1_1_2"/><span class="lab"><font color="Green" title="E8">A1</font></span>: 
 <a href="msualg_1.html#K1" title="MSUALG_1:func.1">the_arity_of</a> <font color="Maroon" title="c3">o</font> <a href="hidden.html#NR2" title="HIDDEN:NR.2">&lt;&gt;</a>  <a href="xboole_0.html#K1" title="XBOOLE_0:func.1">{}</a> 
 ; <a class="txt" onmouseover="tooltip.show('hs',this)" onmouseout="tooltip.hide()" onclick="hs(this)" href="javascript:()"><span class="comment"><font color="firebrick">::  thesis: </font></span></a><span class="hide">  <a href="pralg_3.html#K1" title="PRALG_3:func.1">const</a> (<font color="Maroon" title="c3">o</font>,<span class="p1">(<span class="default"><a href="pralg_2.html#K14" title="PRALG_2:func.14">product</a> <font color="Maroon" title="c4">A</font></span>)</span>) is   <a href="funct_1.html#NM1" title="FUNCT_1:NM.1">Function</a></span><br/><div class="add"><a NAME="E2:12_1_1_1_1_2"/>
 <a href="relset_1.html#K1" title="RELSET_1:func.1">dom</a> <span class="p1">(<span class="default"> the <a href="msualg_1.html#U3" title="MSUALG_1:sel.3">Sorts</a> of <span class="p2">(<span class="default"><a href="pralg_2.html#K14" title="PRALG_2:func.14">product</a> <font color="Maroon" title="c4">A</font></span>)</span> <a href="funct_1.html#NK3" title="FUNCT_1:NK.3">*</a> <span class="p2">(<span class="default"><a href="msualg_1.html#K1" title="MSUALG_1:func.1">the_arity_of</a> <font color="Maroon" title="c3">o</font></span>)</span></span>)</span> <a href="hidden.html#R1" title="HIDDEN:pred.1">=</a>  <a href="relset_1.html#K1" title="RELSET_1:func.1">dom</a> <span class="p1">(<span class="default"><a href="msualg_1.html#K1" title="MSUALG_1:func.1">the_arity_of</a> <font color="Maroon" title="c3">o</font></span>)</span>
 <span class="kw">by</span> <span class="lab"><a class="ref" href="pralg_2.html#T3" onmouseover="rs('pralg_2/T3')" onmouseout="rh()">PRALG_2:3</a></span>;<br/><a NAME="E3:12_1_1_1_1_2"/><span class="kw">then </span><span class="lab"><font color="Green" title="E9">A2</font></span>: 
 <a href="relset_1.html#K1" title="RELSET_1:func.1">dom</a> <span class="p1">(<span class="default"> the <a href="msualg_1.html#U3" title="MSUALG_1:sel.3">Sorts</a> of <span class="p2">(<span class="default"><a href="pralg_2.html#K14" title="PRALG_2:func.14">product</a> <font color="Maroon" title="c4">A</font></span>)</span> <a href="funct_1.html#NK3" title="FUNCT_1:NK.3">*</a> <span class="p2">(<span class="default"><a href="msualg_1.html#K1" title="MSUALG_1:func.1">the_arity_of</a> <font color="Maroon" title="c3">o</font></span>)</span></span>)</span> <a href="hidden.html#NR2" title="HIDDEN:NR.2">&lt;&gt;</a>  <a href="relat_1.html#NK1" title="RELAT_1:NK.1">dom</a> <a href="xboole_0.html#K1" title="XBOOLE_0:func.1">{}</a>
 <span class="kw">by</span> <span class="lab"><a class="txt" href="#E1:12_1_1_1_1_2"><span class="lab"><font color="Green" title="E8">A1</font></span></a></span>;<br/> <a href="relset_1.html#K1" title="RELSET_1:func.1">dom</a> <span class="p1">(<span class="default"><a href="msualg_1.html#K5" title="MSUALG_1:func.5">Den</a> (<font color="Maroon" title="c3">o</font>,<span class="p2">(<span class="default"><a href="pralg_2.html#K14" title="PRALG_2:func.14">product</a> <font color="Maroon" title="c4">A</font></span>)</span>)</span>)</span> = 
 <a href="msualg_1.html#K3" title="MSUALG_1:func.3">Args</a> (<font color="Maroon" title="c3">o</font>,<span class="p1">(<span class="default"><a href="pralg_2.html#K14" title="PRALG_2:func.14">product</a> <font color="Maroon" title="c4">A</font></span>)</span>)
<span class="kw">by</span> <span class="lab"><a class="ref" href="funct_2.html#D1" onmouseover="rs('funct_2/D1')" onmouseout="rh()">FUNCT_2:def 1</a></span>
<br/>.= 
 <a href="card_3.html#K4" title="CARD_3:func.4">product</a> <span class="p1">(<span class="default"> the <a href="msualg_1.html#U3" title="MSUALG_1:sel.3">Sorts</a> of <span class="p2">(<span class="default"><a href="pralg_2.html#K14" title="PRALG_2:func.14">product</a> <font color="Maroon" title="c4">A</font></span>)</span> <a href="funct_1.html#NK3" title="FUNCT_1:NK.3">*</a> <span class="p2">(<span class="default"><a href="msualg_1.html#K1" title="MSUALG_1:func.1">the_arity_of</a> <font color="Maroon" title="c3">o</font></span>)</span></span>)</span>
<span class="kw">by</span> <span class="lab"><a class="ref" href="pralg_2.html#T3" onmouseover="rs('pralg_2/T3')" onmouseout="rh()">PRALG_2:3</a></span>
;<br/><a NAME="E5:12_1_1_1_1_2"/><span class="kw">then </span>
 not  <a href="xboole_0.html#K1" title="XBOOLE_0:func.1">{}</a>  <a href="tarski.html#R2" title="TARSKI:pred.2">in</a>  <a href="relset_1.html#K1" title="RELSET_1:func.1">dom</a> <span class="p1">(<span class="default"><a href="msualg_1.html#K5" title="MSUALG_1:func.5">Den</a> (<font color="Maroon" title="c3">o</font>,<span class="p2">(<span class="default"><a href="pralg_2.html#K14" title="PRALG_2:func.14">product</a> <font color="Maroon" title="c4">A</font></span>)</span>)</span>)</span>
 <span class="kw">by</span> <span class="lab"><a class="txt" href="#E3:12_1_1_1_1_2"><span class="lab"><font color="Green" title="E9">A2</font></span></a>, <a class="ref" href="card_3.html#T9" onmouseover="rs('card_3/T9')" onmouseout="rh()">CARD_3:9</a></span>;<br/><span class="kw">hence </span><a NAME="E6:12_1_1_1_1_2"/>
 <a href="pralg_3.html#K1" title="PRALG_3:func.1">const</a> (<font color="Maroon" title="c3">o</font>,<span class="p1">(<span class="default"><a href="pralg_2.html#K14" title="PRALG_2:func.14">product</a> <font color="Maroon" title="c4">A</font></span>)</span>) is   <a href="funct_1.html#NM1" title="FUNCT_1:NM.1">Function</a>
 <span class="kw">by</span> <span class="lab"><a class="ref" href="funct_1.html#D2" onmouseover="rs('funct_1/D2')" onmouseout="rh()">FUNCT_1:def 2</a></span>; <a class="txt" onmouseover="tooltip.show('hs',this)" onmouseout="tooltip.hide()" onclick="hs(this)" href="javascript:()"><span class="comment"><font color="firebrick">::  thesis: </font></span></a><span class="hide"> verum</span><br/></div><span class="kw">end;</span></div></div><span class="kw">end;</span></div>

</div><span class="kw">end;</span></div>
<span class="kw">hence </span><a NAME="E2:12_1_1"/>
(  <a href="pralg_3.html#K1" title="PRALG_3:func.1">const</a> (<font color="Maroon" title="c3">o</font>,<span class="p1">(<span class="default"><a href="pralg_2.html#K14" title="PRALG_2:func.14">product</a> <font color="Maroon" title="c4">A</font></span>)</span>) is  <a href="relat_1.html#V1" title="RELAT_1:attr.1">Relation-like</a>  &amp;  <a href="pralg_3.html#K1" title="PRALG_3:func.1">const</a> (<font color="Maroon" title="c3">o</font>,<span class="p1">(<span class="default"><a href="pralg_2.html#K14" title="PRALG_2:func.14">product</a> <font color="Maroon" title="c4">A</font></span>)</span>) is  <a href="funct_1.html#V1" title="FUNCT_1:attr.1">Function-like</a>  )
 ; <a class="txt" onmouseover="tooltip.show('hs',this)" onmouseout="tooltip.hide()" onclick="hs(this)" href="javascript:()"><span class="comment"><font color="firebrick">::  thesis: </font></span></a><span class="hide"> verum</span><br/>


</div>
