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

<b>let </b><font color="Maroon" title="c1">G</font> be  non <a href="struct_0.html#V2" title="STRUCT_0:attr.2">empty</a>  <a href="algstr_0.html#L3" title="ALGSTR_0:struct.3">multMagma</a> ;<br/>

<b>thus </b><a NAME="E1:28"/>
( <font color="Maroon" title="c1">G</font> is <a href="monoid_0.html#V16" title="MONOID_0:attr.16">cancelable</a> implies for <font color="Olive" title="b1">a</font>, <font color="Olive" title="b2">b</font>, <font color="Olive" title="b3">c</font> being  <a href="struct_0.html#NM1" title="STRUCT_0:NM.1">Element</a> of <font color="Maroon" title="c1">G</font>  st ( <font color="Olive" title="b1">a</font> <a href="algstr_0.html#K6" title="ALGSTR_0:func.6">*</a> <font color="Olive" title="b2">b</font> <a href="hidden.html#R1" title="HIDDEN:pred.1">=</a> <font color="Olive" title="b1">a</font> <a href="algstr_0.html#K6" title="ALGSTR_0:func.6">*</a> <font color="Olive" title="b3">c</font> or <font color="Olive" title="b2">b</font> <a href="algstr_0.html#K6" title="ALGSTR_0:func.6">*</a> <font color="Olive" title="b1">a</font> <a href="hidden.html#R1" title="HIDDEN:pred.1">=</a> <font color="Olive" title="b3">c</font> <a href="algstr_0.html#K6" title="ALGSTR_0:func.6">*</a> <font color="Olive" title="b1">a</font> ) holds <br/><font color="Olive" title="b2">b</font> <a href="hidden.html#R1" title="HIDDEN:pred.1">=</a> <font color="Olive" title="b3">c</font> )
 <div><a class="txt" onclick="hs2(this)" href="javascript:()" title="28_1"><b>proof </b></a><div class="add">

<b>assume </b><a NAME="E1:28_1"/><i><font color="Green" title="E18">A1</font></i>: 
for <font color="Olive" title="b1">a</font>, <font color="Olive" title="b2">b</font>, <font color="Olive" title="b3">c</font> being  <a href="struct_0.html#NM1" title="STRUCT_0:NM.1">Element</a> of <font color="Maroon" title="c1">G</font>  st ( <font color="Maroon">H<sub>2</sub></font>(<font color="Maroon" title="c1">G</font>) <a href="binop_1.html#K4" title="BINOP_1:func.4">.</a> <font color="Olive" title="b1">a</font>,<font color="Olive" title="b2">b</font> <a href="hidden.html#R1" title="HIDDEN:pred.1">=</a> <font color="Maroon">H<sub>2</sub></font>(<font color="Maroon" title="c1">G</font>) <a href="binop_1.html#K4" title="BINOP_1:func.4">.</a> <font color="Olive" title="b1">a</font>,<font color="Olive" title="b3">c</font> or <font color="Maroon">H<sub>2</sub></font>(<font color="Maroon" title="c1">G</font>) <a href="binop_1.html#K4" title="BINOP_1:func.4">.</a> <font color="Olive" title="b2">b</font>,<font color="Olive" title="b1">a</font> <a href="hidden.html#R1" title="HIDDEN:pred.1">=</a> <font color="Maroon">H<sub>2</sub></font>(<font color="Maroon" title="c1">G</font>) <a href="binop_1.html#K4" title="BINOP_1:func.4">.</a> <font color="Olive" title="b3">c</font>,<font color="Olive" title="b1">a</font> ) holds <br/><font color="Olive" title="b2">b</font> <a href="hidden.html#R1" title="HIDDEN:pred.1">=</a> <font color="Olive" title="b3">c</font>
 ; <i><font color="Red">:: according to </font></i><a class="ref" href="monoid_0.html#D8" target="_self" title="MONOID_0:def.8">MONOID_0:def 8</a>,<a class="ref" href="monoid_0.html#D19" target="_self" title="MONOID_0:def.19">MONOID_0:def 19</a><br/>

<b>let </b><font color="Maroon" title="c2">a</font>, <font color="Maroon" title="c3">b</font>, <font color="Maroon" title="c4">c</font> be   <a href="struct_0.html#NM1" title="STRUCT_0:NM.1">Element</a> of <font color="Maroon" title="c1">G</font>;<br/>





<b>thus </b><a NAME="E2:28_1"/>
( ( <font color="Maroon" title="c2">a</font> <a href="algstr_0.html#K6" title="ALGSTR_0:func.6">*</a> <font color="Maroon" title="c3">b</font> <a href="hidden.html#R1" title="HIDDEN:pred.1">=</a> <font color="Maroon" title="c2">a</font> <a href="algstr_0.html#K6" title="ALGSTR_0:func.6">*</a> <font color="Maroon" title="c4">c</font> or <font color="Maroon" title="c3">b</font> <a href="algstr_0.html#K6" title="ALGSTR_0:func.6">*</a> <font color="Maroon" title="c2">a</font> <a href="hidden.html#R1" title="HIDDEN:pred.1">=</a> <font color="Maroon" title="c4">c</font> <a href="algstr_0.html#K6" title="ALGSTR_0:func.6">*</a> <font color="Maroon" title="c2">a</font> ) implies <font color="Maroon" title="c3">b</font> <a href="hidden.html#R1" title="HIDDEN:pred.1">=</a> <font color="Maroon" title="c4">c</font> )
 <b>by </b><i><a class="txt" href="monoid_0.html#E1:28_1"><i><font color="Green" title="E18">A1</font></i></a></i>;<br/>


</div><b>end;</b></div>

<b>assume </b><a NAME="E2:28"/><i><font color="Green" title="E18">A2</font></i>: 
for <font color="Olive" title="b1">a</font>, <font color="Olive" title="b2">b</font>, <font color="Olive" title="b3">c</font> being  <a href="struct_0.html#NM1" title="STRUCT_0:NM.1">Element</a> of <font color="Maroon" title="c1">G</font>  st ( <font color="Olive" title="b1">a</font> <a href="algstr_0.html#K6" title="ALGSTR_0:func.6">*</a> <font color="Olive" title="b2">b</font> <a href="hidden.html#R1" title="HIDDEN:pred.1">=</a> <font color="Olive" title="b1">a</font> <a href="algstr_0.html#K6" title="ALGSTR_0:func.6">*</a> <font color="Olive" title="b3">c</font> or <font color="Olive" title="b2">b</font> <a href="algstr_0.html#K6" title="ALGSTR_0:func.6">*</a> <font color="Olive" title="b1">a</font> <a href="hidden.html#R1" title="HIDDEN:pred.1">=</a> <font color="Olive" title="b3">c</font> <a href="algstr_0.html#K6" title="ALGSTR_0:func.6">*</a> <font color="Olive" title="b1">a</font> ) holds <br/><font color="Olive" title="b2">b</font> <a href="hidden.html#R1" title="HIDDEN:pred.1">=</a> <font color="Olive" title="b3">c</font>
 ;<br/>

<b>let </b><font color="Maroon" title="c2">a</font> be   <a href="struct_0.html#NM1" title="STRUCT_0:NM.1">Element</a> of <font color="Maroon" title="c1">G</font>; <i><font color="Red">:: according to </font></i><a class="ref" href="monoid_0.html#D8" target="_self" title="MONOID_0:def.8">MONOID_0:def 8</a>,<a class="ref" href="monoid_0.html#D19" target="_self" title="MONOID_0:def.19">MONOID_0:def 19</a><br/><b>let </b><font color="Maroon" title="c3">b</font>, <font color="Maroon" title="c4">c</font> be   <a href="struct_0.html#NM1" title="STRUCT_0:NM.1">Element</a> of <font color="Maroon" title="c1">G</font>;<br/>





<a NAME="E3:28"/>
( <font color="Maroon" title="c2">a</font> <a href="algstr_0.html#K6" title="ALGSTR_0:func.6">*</a> <font color="Maroon" title="c3">b</font> <a href="hidden.html#R1" title="HIDDEN:pred.1">=</a> <font color="Maroon">H<sub>2</sub></font>(<font color="Maroon" title="c1">G</font>) <a href="binop_1.html#K4" title="BINOP_1:func.4">.</a> <font color="Maroon" title="c2">a</font>,<font color="Maroon" title="c3">b</font> &amp; <font color="Maroon" title="c2">a</font> <a href="algstr_0.html#K6" title="ALGSTR_0:func.6">*</a> <font color="Maroon" title="c4">c</font> <a href="hidden.html#R1" title="HIDDEN:pred.1">=</a> <font color="Maroon">H<sub>2</sub></font>(<font color="Maroon" title="c1">G</font>) <a href="binop_1.html#K4" title="BINOP_1:func.4">.</a> <font color="Maroon" title="c2">a</font>,<font color="Maroon" title="c4">c</font> &amp; <font color="Maroon" title="c3">b</font> <a href="algstr_0.html#K6" title="ALGSTR_0:func.6">*</a> <font color="Maroon" title="c2">a</font> <a href="hidden.html#R1" title="HIDDEN:pred.1">=</a> <font color="Maroon">H<sub>2</sub></font>(<font color="Maroon" title="c1">G</font>) <a href="binop_1.html#K4" title="BINOP_1:func.4">.</a> <font color="Maroon" title="c3">b</font>,<font color="Maroon" title="c2">a</font> &amp; <font color="Maroon" title="c4">c</font> <a href="algstr_0.html#K6" title="ALGSTR_0:func.6">*</a> <font color="Maroon" title="c2">a</font> <a href="hidden.html#R1" title="HIDDEN:pred.1">=</a> <font color="Maroon">H<sub>2</sub></font>(<font color="Maroon" title="c1">G</font>) <a href="binop_1.html#K4" title="BINOP_1:func.4">.</a> <font color="Maroon" title="c4">c</font>,<font color="Maroon" title="c2">a</font> )
 
;<br/>
<b>hence </b><a NAME="E4:28"/>
( ( the <a href="algstr_0.html#U2" title="ALGSTR_0:sel.2">multF</a> of <font color="Maroon" title="c1">G</font> <a href="binop_1.html#K4" title="BINOP_1:func.4">.</a> <font color="Maroon" title="c2">a</font>,<font color="Maroon" title="c3">b</font> <a href="hidden.html#R1" title="HIDDEN:pred.1">=</a> the <a href="algstr_0.html#U2" title="ALGSTR_0:sel.2">multF</a> of <font color="Maroon" title="c1">G</font> <a href="binop_1.html#K4" title="BINOP_1:func.4">.</a> <font color="Maroon" title="c2">a</font>,<font color="Maroon" title="c4">c</font> or the <a href="algstr_0.html#U2" title="ALGSTR_0:sel.2">multF</a> of <font color="Maroon" title="c1">G</font> <a href="binop_1.html#K4" title="BINOP_1:func.4">.</a> <font color="Maroon" title="c3">b</font>,<font color="Maroon" title="c2">a</font> <a href="hidden.html#R1" title="HIDDEN:pred.1">=</a> the <a href="algstr_0.html#U2" title="ALGSTR_0:sel.2">multF</a> of <font color="Maroon" title="c1">G</font> <a href="binop_1.html#K4" title="BINOP_1:func.4">.</a> <font color="Maroon" title="c4">c</font>,<font color="Maroon" title="c2">a</font> ) implies <font color="Maroon" title="c3">b</font> <a href="hidden.html#R1" title="HIDDEN:pred.1">=</a> <font color="Maroon" title="c4">c</font> )
 <b>by </b><i><a class="txt" href="monoid_0.html#E2:28"><i><font color="Green" title="E18">A2</font></i></a></i>;<br/>


</div>
