<?xml version="1.0"?>
<div>:: <span class="kw">deftheorem </span><span class="lab"><font color="Green" title="E45">Def10</font></span>   defines <a href="msafree4.html#K4" title="MSAFREE4:func.4">canonical_homomorphism</a> <a onclick="hs(this)" href="javascript:()">MSAFREE4:def 10 : <br/></a><span> for <font color="Olive" title="b1">S</font> being   non  <a href="struct_0.html#V2" title="STRUCT_0:attr.2">empty</a>   non  <a href="struct_0.html#V11" title="STRUCT_0:attr.11">void</a>   <a href="msualg_1.html#L1" title="MSUALG_1:struct.1">ManySortedSign</a> <br/>  for <font color="Olive" title="b2">X</font> being  <a href="relat_1.html#V2" title="RELAT_1:attr.2">V5</a>() <a href="struct_0.html#NM8" title="STRUCT_0:NM.8">ManySortedSet</a> of <font color="Olive" title="b1">S</font><br/>  for <font color="Olive" title="b3">A1</font> being  <font color="Olive">b<sub>2</sub></font>,<font color="Olive">b<sub>1</sub></font> <a href="msafree4.html#V5" title="MSAFREE4:attr.5">-terms</a>   <a href="msafree4.html#V6" title="MSAFREE4:attr.6">all_vars_including</a>   <a href="msualg_1.html#L3" title="MSUALG_1:struct.3">MSAlgebra</a> over <font color="Olive" title="b1">S</font><br/>  for <font color="Olive">b<sub>4</sub></font> being   <a href="msualg_3.html#NM1" title="MSUALG_3:NM.1">ManySortedFunction</a> of <span class="p1">(<span class="default"><a href="msafree3.html#K1" title="MSAFREE3:func.1">Free</a> (<font color="Olive" title="b1">S</font>,<font color="Olive" title="b2">X</font>)</span>)</span>,<font color="Olive" title="b3">A1</font> holds <br/> ( <font color="Olive">b<sub>4</sub></font> <a href="hidden.html#R1" title="HIDDEN:pred.1">=</a>  <a href="msafree4.html#K4" title="MSAFREE4:func.4">canonical_homomorphism</a> <font color="Olive" title="b3">A1</font> iff ( <font color="Olive">b<sub>4</sub></font> <a href="msualg_3.html#R1" title="MSUALG_3:pred.1">is_homomorphism</a>  <a href="msafree3.html#K1" title="MSAFREE3:func.1">Free</a> (<font color="Olive" title="b1">S</font>,<font color="Olive" title="b2">X</font>),<font color="Olive" title="b3">A1</font> &amp; (  for <font color="Olive" title="b5">G</font> being    <a href="msafree.html#M1" title="MSAFREE:mode.1">GeneratorSet</a> of  <a href="msafree3.html#K1" title="MSAFREE3:func.1">Free</a> (<font color="Olive" title="b1">S</font>,<font color="Olive" title="b2">X</font>)  st <font color="Olive" title="b5">G</font> <a href="pboole.html#R8" title="PBOOLE:pred.8">=</a>  <a href="msafree.html#K13" title="MSAFREE:func.13">FreeGen</a> <font color="Olive" title="b2">X</font> holds <br/> <a href="msualg_3.html#K2" title="MSUALG_3:func.2">id</a> <font color="Olive" title="b5">G</font> <a href="pboole.html#R8" title="PBOOLE:pred.8">=</a> <font color="Olive">b<sub>4</sub></font> <a href="msafree.html#K1" title="MSAFREE:func.1">||</a> <font color="Olive" title="b5">G</font> ) ) );<br/></span></div>
