bsc-leon-vatthauer/public/Algebra.Properties.CommutativeSemigroup.html

124 lines
No EOL
71 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Algebra.Properties.CommutativeSemigroup</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Some theory for commutative semigroup</a>
<a id="147" class="Comment">------------------------------------------------------------------------</a>
<a id="221" class="Symbol">{-#</a> <a id="225" class="Keyword">OPTIONS</a> <a id="233" class="Pragma">--cubical-compatible</a> <a id="254" class="Pragma">--safe</a> <a id="261" class="Symbol">#-}</a>
<a id="266" class="Keyword">open</a> <a id="271" class="Keyword">import</a> <a id="278" href="Algebra.html" class="Module">Algebra</a> <a id="286" class="Keyword">using</a> <a id="292" class="Symbol">(</a><a id="293" href="Algebra.Bundles.html#2877" class="Record">CommutativeSemigroup</a><a id="313" class="Symbol">)</a>
<a id="316" class="Keyword">module</a> <a id="323" href="Algebra.Properties.CommutativeSemigroup.html" class="Module">Algebra.Properties.CommutativeSemigroup</a>
<a id="365" class="Symbol">{</a><a id="366" href="Algebra.Properties.CommutativeSemigroup.html#366" class="Bound">a</a> <a id="368" href="Algebra.Properties.CommutativeSemigroup.html#368" class="Bound"></a><a id="369" class="Symbol">}</a> <a id="371" class="Symbol">(</a><a id="372" href="Algebra.Properties.CommutativeSemigroup.html#372" class="Bound">CS</a> <a id="375" class="Symbol">:</a> <a id="377" href="Algebra.Bundles.html#2877" class="Record">CommutativeSemigroup</a> <a id="398" href="Algebra.Properties.CommutativeSemigroup.html#366" class="Bound">a</a> <a id="400" href="Algebra.Properties.CommutativeSemigroup.html#368" class="Bound"></a><a id="401" class="Symbol">)</a>
<a id="405" class="Keyword">where</a>
<a id="412" class="Keyword">open</a> <a id="417" href="Algebra.Bundles.html#2877" class="Module">CommutativeSemigroup</a> <a id="438" href="Algebra.Properties.CommutativeSemigroup.html#372" class="Bound">CS</a>
<a id="442" class="Keyword">open</a> <a id="447" class="Keyword">import</a> <a id="454" href="Relation.Binary.Reasoning.Setoid.html" class="Module">Relation.Binary.Reasoning.Setoid</a> <a id="487" href="Algebra.Structures.html#1294" class="Function">setoid</a>
<a id="495" class="Comment">------------------------------------------------------------------------------</a>
<a id="574" class="Comment">-- Re-export the contents of semigroup</a>
<a id="614" class="Keyword">open</a> <a id="619" class="Keyword">import</a> <a id="626" href="Algebra.Properties.Semigroup.html" class="Module">Algebra.Properties.Semigroup</a> <a id="655" href="Algebra.Bundles.html#3213" class="Function">semigroup</a> <a id="665" class="Keyword">public</a>
<a id="673" class="Comment">------------------------------------------------------------------------------</a>
<a id="752" class="Comment">-- Permutation laws for _∙_ for three factors.</a>
<a id="800" class="Comment">------------------------------------------------------------------------------</a>
<a id="879" class="Comment">-- Partitions (1,1).</a>
<a id="900" class="Comment">-- There are five nontrivial permutations.</a>
<a id="943" class="Comment">------------------------------------------------------------------------------</a>
<a id="x∙yz≈y∙xz"></a><a id="1023" href="Algebra.Properties.CommutativeSemigroup.html#1023" class="Function">x∙yz≈y∙xz</a> <a id="1033" class="Symbol">:</a> <a id="1036" class="Symbol"></a> <a id="1038" href="Algebra.Properties.CommutativeSemigroup.html#1038" class="Bound">x</a> <a id="1040" href="Algebra.Properties.CommutativeSemigroup.html#1040" class="Bound">y</a> <a id="1042" href="Algebra.Properties.CommutativeSemigroup.html#1042" class="Bound">z</a> <a id="1044" class="Symbol"></a> <a id="1046" href="Algebra.Properties.CommutativeSemigroup.html#1038" class="Bound">x</a> <a id="1048" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1050" class="Symbol">(</a><a id="1051" href="Algebra.Properties.CommutativeSemigroup.html#1040" class="Bound">y</a> <a id="1053" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1055" href="Algebra.Properties.CommutativeSemigroup.html#1042" class="Bound">z</a><a id="1056" class="Symbol">)</a> <a id="1058" href="Algebra.Bundles.html#3006" class="Field Operator"></a> <a id="1060" href="Algebra.Properties.CommutativeSemigroup.html#1040" class="Bound">y</a> <a id="1062" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1064" class="Symbol">(</a><a id="1065" href="Algebra.Properties.CommutativeSemigroup.html#1038" class="Bound">x</a> <a id="1067" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1069" href="Algebra.Properties.CommutativeSemigroup.html#1042" class="Bound">z</a><a id="1070" class="Symbol">)</a>
<a id="1072" href="Algebra.Properties.CommutativeSemigroup.html#1023" class="Function">x∙yz≈y∙xz</a> <a id="1082" href="Algebra.Properties.CommutativeSemigroup.html#1082" class="Bound">x</a> <a id="1084" href="Algebra.Properties.CommutativeSemigroup.html#1084" class="Bound">y</a> <a id="1086" href="Algebra.Properties.CommutativeSemigroup.html#1086" class="Bound">z</a> <a id="1088" class="Symbol">=</a> <a id="1090" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="1098" href="Algebra.Properties.CommutativeSemigroup.html#1082" class="Bound">x</a> <a id="1100" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1102" class="Symbol">(</a><a id="1103" href="Algebra.Properties.CommutativeSemigroup.html#1084" class="Bound">y</a> <a id="1105" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1107" href="Algebra.Properties.CommutativeSemigroup.html#1086" class="Bound">z</a><a id="1108" class="Symbol">)</a> <a id="1113" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="1116" href="Relation.Binary.Structures.html#1603" class="Function">sym</a> <a id="1120" class="Symbol">(</a><a id="1121" href="Algebra.Structures.html#1876" class="Function">assoc</a> <a id="1127" href="Algebra.Properties.CommutativeSemigroup.html#1082" class="Bound">x</a> <a id="1129" href="Algebra.Properties.CommutativeSemigroup.html#1084" class="Bound">y</a> <a id="1131" href="Algebra.Properties.CommutativeSemigroup.html#1086" class="Bound">z</a><a id="1132" class="Symbol">)</a> <a id="1134" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="1138" class="Symbol">(</a><a id="1139" href="Algebra.Properties.CommutativeSemigroup.html#1082" class="Bound">x</a> <a id="1141" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1143" href="Algebra.Properties.CommutativeSemigroup.html#1084" class="Bound">y</a><a id="1144" class="Symbol">)</a> <a id="1146" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1148" href="Algebra.Properties.CommutativeSemigroup.html#1086" class="Bound">z</a> <a id="1153" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="1156" href="Algebra.Structures.html#1430" class="Function">∙-congʳ</a> <a id="1164" class="Symbol">(</a><a id="1165" href="Algebra.Structures.html#2197" class="Function">comm</a> <a id="1170" href="Algebra.Properties.CommutativeSemigroup.html#1082" class="Bound">x</a> <a id="1172" href="Algebra.Properties.CommutativeSemigroup.html#1084" class="Bound">y</a><a id="1173" class="Symbol">)</a> <a id="1175" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="1179" class="Symbol">(</a><a id="1180" href="Algebra.Properties.CommutativeSemigroup.html#1084" class="Bound">y</a> <a id="1182" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1184" href="Algebra.Properties.CommutativeSemigroup.html#1082" class="Bound">x</a><a id="1185" class="Symbol">)</a> <a id="1187" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1189" href="Algebra.Properties.CommutativeSemigroup.html#1086" class="Bound">z</a> <a id="1194" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="1197" href="Algebra.Structures.html#1876" class="Function">assoc</a> <a id="1203" href="Algebra.Properties.CommutativeSemigroup.html#1084" class="Bound">y</a> <a id="1205" href="Algebra.Properties.CommutativeSemigroup.html#1082" class="Bound">x</a> <a id="1207" href="Algebra.Properties.CommutativeSemigroup.html#1086" class="Bound">z</a> <a id="1209" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="1213" href="Algebra.Properties.CommutativeSemigroup.html#1084" class="Bound">y</a> <a id="1215" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1217" class="Symbol">(</a><a id="1218" href="Algebra.Properties.CommutativeSemigroup.html#1082" class="Bound">x</a> <a id="1220" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1222" href="Algebra.Properties.CommutativeSemigroup.html#1086" class="Bound">z</a><a id="1223" class="Symbol">)</a> <a id="1228" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="x∙yz≈z∙yx"></a><a id="1231" href="Algebra.Properties.CommutativeSemigroup.html#1231" class="Function">x∙yz≈z∙yx</a> <a id="1241" class="Symbol">:</a> <a id="1244" class="Symbol"></a> <a id="1246" href="Algebra.Properties.CommutativeSemigroup.html#1246" class="Bound">x</a> <a id="1248" href="Algebra.Properties.CommutativeSemigroup.html#1248" class="Bound">y</a> <a id="1250" href="Algebra.Properties.CommutativeSemigroup.html#1250" class="Bound">z</a> <a id="1252" class="Symbol"></a> <a id="1254" href="Algebra.Properties.CommutativeSemigroup.html#1246" class="Bound">x</a> <a id="1256" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1258" class="Symbol">(</a><a id="1259" href="Algebra.Properties.CommutativeSemigroup.html#1248" class="Bound">y</a> <a id="1261" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1263" href="Algebra.Properties.CommutativeSemigroup.html#1250" class="Bound">z</a><a id="1264" class="Symbol">)</a> <a id="1266" href="Algebra.Bundles.html#3006" class="Field Operator"></a> <a id="1268" href="Algebra.Properties.CommutativeSemigroup.html#1250" class="Bound">z</a> <a id="1270" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1272" class="Symbol">(</a><a id="1273" href="Algebra.Properties.CommutativeSemigroup.html#1248" class="Bound">y</a> <a id="1275" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1277" href="Algebra.Properties.CommutativeSemigroup.html#1246" class="Bound">x</a><a id="1278" class="Symbol">)</a>
<a id="1280" href="Algebra.Properties.CommutativeSemigroup.html#1231" class="Function">x∙yz≈z∙yx</a> <a id="1290" href="Algebra.Properties.CommutativeSemigroup.html#1290" class="Bound">x</a> <a id="1292" href="Algebra.Properties.CommutativeSemigroup.html#1292" class="Bound">y</a> <a id="1294" href="Algebra.Properties.CommutativeSemigroup.html#1294" class="Bound">z</a> <a id="1296" class="Symbol">=</a> <a id="1298" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="1306" href="Algebra.Properties.CommutativeSemigroup.html#1290" class="Bound">x</a> <a id="1308" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1310" class="Symbol">(</a><a id="1311" href="Algebra.Properties.CommutativeSemigroup.html#1292" class="Bound">y</a> <a id="1313" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1315" href="Algebra.Properties.CommutativeSemigroup.html#1294" class="Bound">z</a><a id="1316" class="Symbol">)</a> <a id="1321" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="1324" href="Algebra.Structures.html#1369" class="Function">∙-congˡ</a> <a id="1332" class="Symbol">(</a><a id="1333" href="Algebra.Structures.html#2197" class="Function">comm</a> <a id="1338" href="Algebra.Properties.CommutativeSemigroup.html#1292" class="Bound">y</a> <a id="1340" href="Algebra.Properties.CommutativeSemigroup.html#1294" class="Bound">z</a><a id="1341" class="Symbol">)</a> <a id="1343" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="1347" href="Algebra.Properties.CommutativeSemigroup.html#1290" class="Bound">x</a> <a id="1349" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1351" class="Symbol">(</a><a id="1352" href="Algebra.Properties.CommutativeSemigroup.html#1294" class="Bound">z</a> <a id="1354" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1356" href="Algebra.Properties.CommutativeSemigroup.html#1292" class="Bound">y</a><a id="1357" class="Symbol">)</a> <a id="1362" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="1365" href="Algebra.Properties.CommutativeSemigroup.html#1023" class="Function">x∙yz≈y∙xz</a> <a id="1375" href="Algebra.Properties.CommutativeSemigroup.html#1290" class="Bound">x</a> <a id="1377" href="Algebra.Properties.CommutativeSemigroup.html#1294" class="Bound">z</a> <a id="1379" href="Algebra.Properties.CommutativeSemigroup.html#1292" class="Bound">y</a> <a id="1381" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="1385" href="Algebra.Properties.CommutativeSemigroup.html#1294" class="Bound">z</a> <a id="1387" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1389" class="Symbol">(</a><a id="1390" href="Algebra.Properties.CommutativeSemigroup.html#1290" class="Bound">x</a> <a id="1392" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1394" href="Algebra.Properties.CommutativeSemigroup.html#1292" class="Bound">y</a><a id="1395" class="Symbol">)</a> <a id="1400" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="1403" href="Algebra.Structures.html#1369" class="Function">∙-congˡ</a> <a id="1411" class="Symbol">(</a><a id="1412" href="Algebra.Structures.html#2197" class="Function">comm</a> <a id="1417" href="Algebra.Properties.CommutativeSemigroup.html#1290" class="Bound">x</a> <a id="1419" href="Algebra.Properties.CommutativeSemigroup.html#1292" class="Bound">y</a><a id="1420" class="Symbol">)</a> <a id="1422" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="1426" href="Algebra.Properties.CommutativeSemigroup.html#1294" class="Bound">z</a> <a id="1428" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1430" class="Symbol">(</a><a id="1431" href="Algebra.Properties.CommutativeSemigroup.html#1292" class="Bound">y</a> <a id="1433" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1435" href="Algebra.Properties.CommutativeSemigroup.html#1290" class="Bound">x</a><a id="1436" class="Symbol">)</a> <a id="1441" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="x∙yz≈x∙zy"></a><a id="1444" href="Algebra.Properties.CommutativeSemigroup.html#1444" class="Function">x∙yz≈x∙zy</a> <a id="1454" class="Symbol">:</a> <a id="1457" class="Symbol"></a> <a id="1459" href="Algebra.Properties.CommutativeSemigroup.html#1459" class="Bound">x</a> <a id="1461" href="Algebra.Properties.CommutativeSemigroup.html#1461" class="Bound">y</a> <a id="1463" href="Algebra.Properties.CommutativeSemigroup.html#1463" class="Bound">z</a> <a id="1465" class="Symbol"></a> <a id="1467" href="Algebra.Properties.CommutativeSemigroup.html#1459" class="Bound">x</a> <a id="1469" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1471" class="Symbol">(</a><a id="1472" href="Algebra.Properties.CommutativeSemigroup.html#1461" class="Bound">y</a> <a id="1474" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1476" href="Algebra.Properties.CommutativeSemigroup.html#1463" class="Bound">z</a><a id="1477" class="Symbol">)</a> <a id="1479" href="Algebra.Bundles.html#3006" class="Field Operator"></a> <a id="1481" href="Algebra.Properties.CommutativeSemigroup.html#1459" class="Bound">x</a> <a id="1483" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1485" class="Symbol">(</a><a id="1486" href="Algebra.Properties.CommutativeSemigroup.html#1463" class="Bound">z</a> <a id="1488" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1490" href="Algebra.Properties.CommutativeSemigroup.html#1461" class="Bound">y</a><a id="1491" class="Symbol">)</a>
<a id="1493" href="Algebra.Properties.CommutativeSemigroup.html#1444" class="Function">x∙yz≈x∙zy</a> <a id="1503" class="Symbol">_</a> <a id="1505" href="Algebra.Properties.CommutativeSemigroup.html#1505" class="Bound">y</a> <a id="1507" href="Algebra.Properties.CommutativeSemigroup.html#1507" class="Bound">z</a> <a id="1509" class="Symbol">=</a> <a id="1512" href="Algebra.Structures.html#1369" class="Function">∙-congˡ</a> <a id="1520" class="Symbol">(</a><a id="1521" href="Algebra.Structures.html#2197" class="Function">comm</a> <a id="1526" href="Algebra.Properties.CommutativeSemigroup.html#1505" class="Bound">y</a> <a id="1528" href="Algebra.Properties.CommutativeSemigroup.html#1507" class="Bound">z</a><a id="1529" class="Symbol">)</a>
<a id="x∙yz≈y∙zx"></a><a id="1532" href="Algebra.Properties.CommutativeSemigroup.html#1532" class="Function">x∙yz≈y∙zx</a> <a id="1542" class="Symbol">:</a> <a id="1545" class="Symbol"></a> <a id="1547" href="Algebra.Properties.CommutativeSemigroup.html#1547" class="Bound">x</a> <a id="1549" href="Algebra.Properties.CommutativeSemigroup.html#1549" class="Bound">y</a> <a id="1551" href="Algebra.Properties.CommutativeSemigroup.html#1551" class="Bound">z</a> <a id="1553" class="Symbol"></a> <a id="1555" href="Algebra.Properties.CommutativeSemigroup.html#1547" class="Bound">x</a> <a id="1557" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1559" class="Symbol">(</a><a id="1560" href="Algebra.Properties.CommutativeSemigroup.html#1549" class="Bound">y</a> <a id="1562" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1564" href="Algebra.Properties.CommutativeSemigroup.html#1551" class="Bound">z</a><a id="1565" class="Symbol">)</a> <a id="1567" href="Algebra.Bundles.html#3006" class="Field Operator"></a> <a id="1569" href="Algebra.Properties.CommutativeSemigroup.html#1549" class="Bound">y</a> <a id="1571" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1573" class="Symbol">(</a><a id="1574" href="Algebra.Properties.CommutativeSemigroup.html#1551" class="Bound">z</a> <a id="1576" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1578" href="Algebra.Properties.CommutativeSemigroup.html#1547" class="Bound">x</a><a id="1579" class="Symbol">)</a>
<a id="1581" href="Algebra.Properties.CommutativeSemigroup.html#1532" class="Function">x∙yz≈y∙zx</a> <a id="1591" href="Algebra.Properties.CommutativeSemigroup.html#1591" class="Bound">x</a> <a id="1593" href="Algebra.Properties.CommutativeSemigroup.html#1593" class="Bound">y</a> <a id="1595" href="Algebra.Properties.CommutativeSemigroup.html#1595" class="Bound">z</a> <a id="1597" class="Symbol">=</a> <a id="1599" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="1607" href="Algebra.Properties.CommutativeSemigroup.html#1591" class="Bound">x</a> <a id="1609" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1611" class="Symbol">(</a><a id="1612" href="Algebra.Properties.CommutativeSemigroup.html#1593" class="Bound">y</a> <a id="1614" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1616" href="Algebra.Properties.CommutativeSemigroup.html#1595" class="Bound">z</a><a id="1617" class="Symbol">)</a> <a id="1621" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="1624" href="Algebra.Structures.html#2197" class="Function">comm</a> <a id="1629" href="Algebra.Properties.CommutativeSemigroup.html#1591" class="Bound">x</a> <a id="1631" class="Symbol">_</a> <a id="1633" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="1637" class="Symbol">(</a><a id="1638" href="Algebra.Properties.CommutativeSemigroup.html#1593" class="Bound">y</a> <a id="1640" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1642" href="Algebra.Properties.CommutativeSemigroup.html#1595" class="Bound">z</a><a id="1643" class="Symbol">)</a> <a id="1645" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1647" href="Algebra.Properties.CommutativeSemigroup.html#1591" class="Bound">x</a> <a id="1651" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="1654" href="Algebra.Structures.html#1876" class="Function">assoc</a> <a id="1660" href="Algebra.Properties.CommutativeSemigroup.html#1593" class="Bound">y</a> <a id="1662" href="Algebra.Properties.CommutativeSemigroup.html#1595" class="Bound">z</a> <a id="1664" href="Algebra.Properties.CommutativeSemigroup.html#1591" class="Bound">x</a> <a id="1666" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="1670" href="Algebra.Properties.CommutativeSemigroup.html#1593" class="Bound">y</a> <a id="1672" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1674" class="Symbol">(</a><a id="1675" href="Algebra.Properties.CommutativeSemigroup.html#1595" class="Bound">z</a> <a id="1677" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1679" href="Algebra.Properties.CommutativeSemigroup.html#1591" class="Bound">x</a><a id="1680" class="Symbol">)</a> <a id="1684" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="x∙yz≈z∙xy"></a><a id="1687" href="Algebra.Properties.CommutativeSemigroup.html#1687" class="Function">x∙yz≈z∙xy</a> <a id="1697" class="Symbol">:</a> <a id="1700" class="Symbol"></a> <a id="1702" href="Algebra.Properties.CommutativeSemigroup.html#1702" class="Bound">x</a> <a id="1704" href="Algebra.Properties.CommutativeSemigroup.html#1704" class="Bound">y</a> <a id="1706" href="Algebra.Properties.CommutativeSemigroup.html#1706" class="Bound">z</a> <a id="1708" class="Symbol"></a> <a id="1710" href="Algebra.Properties.CommutativeSemigroup.html#1702" class="Bound">x</a> <a id="1712" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1714" class="Symbol">(</a><a id="1715" href="Algebra.Properties.CommutativeSemigroup.html#1704" class="Bound">y</a> <a id="1717" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1719" href="Algebra.Properties.CommutativeSemigroup.html#1706" class="Bound">z</a><a id="1720" class="Symbol">)</a> <a id="1722" href="Algebra.Bundles.html#3006" class="Field Operator"></a> <a id="1724" href="Algebra.Properties.CommutativeSemigroup.html#1706" class="Bound">z</a> <a id="1726" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1728" class="Symbol">(</a><a id="1729" href="Algebra.Properties.CommutativeSemigroup.html#1702" class="Bound">x</a> <a id="1731" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1733" href="Algebra.Properties.CommutativeSemigroup.html#1704" class="Bound">y</a><a id="1734" class="Symbol">)</a>
<a id="1736" href="Algebra.Properties.CommutativeSemigroup.html#1687" class="Function">x∙yz≈z∙xy</a> <a id="1746" href="Algebra.Properties.CommutativeSemigroup.html#1746" class="Bound">x</a> <a id="1748" href="Algebra.Properties.CommutativeSemigroup.html#1748" class="Bound">y</a> <a id="1750" href="Algebra.Properties.CommutativeSemigroup.html#1750" class="Bound">z</a> <a id="1752" class="Symbol">=</a> <a id="1754" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="1762" href="Algebra.Properties.CommutativeSemigroup.html#1746" class="Bound">x</a> <a id="1764" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1766" class="Symbol">(</a><a id="1767" href="Algebra.Properties.CommutativeSemigroup.html#1748" class="Bound">y</a> <a id="1769" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1771" href="Algebra.Properties.CommutativeSemigroup.html#1750" class="Bound">z</a><a id="1772" class="Symbol">)</a> <a id="1776" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="1779" href="Relation.Binary.Structures.html#1603" class="Function">sym</a> <a id="1783" class="Symbol">(</a><a id="1784" href="Algebra.Structures.html#1876" class="Function">assoc</a> <a id="1790" href="Algebra.Properties.CommutativeSemigroup.html#1746" class="Bound">x</a> <a id="1792" href="Algebra.Properties.CommutativeSemigroup.html#1748" class="Bound">y</a> <a id="1794" href="Algebra.Properties.CommutativeSemigroup.html#1750" class="Bound">z</a><a id="1795" class="Symbol">)</a> <a id="1797" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="1801" class="Symbol">(</a><a id="1802" href="Algebra.Properties.CommutativeSemigroup.html#1746" class="Bound">x</a> <a id="1804" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1806" href="Algebra.Properties.CommutativeSemigroup.html#1748" class="Bound">y</a><a id="1807" class="Symbol">)</a> <a id="1809" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1811" href="Algebra.Properties.CommutativeSemigroup.html#1750" class="Bound">z</a> <a id="1815" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="1818" href="Algebra.Structures.html#2197" class="Function">comm</a> <a id="1823" class="Symbol">_</a> <a id="1825" href="Algebra.Properties.CommutativeSemigroup.html#1750" class="Bound">z</a> <a id="1827" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="1831" href="Algebra.Properties.CommutativeSemigroup.html#1750" class="Bound">z</a> <a id="1833" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1835" class="Symbol">(</a><a id="1836" href="Algebra.Properties.CommutativeSemigroup.html#1746" class="Bound">x</a> <a id="1838" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="1840" href="Algebra.Properties.CommutativeSemigroup.html#1748" class="Bound">y</a><a id="1841" class="Symbol">)</a> <a id="1845" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="1848" class="Comment">------------------------------------------------------------------------------</a>
<a id="1927" class="Comment">-- Partitions (1,2).</a>
<a id="1948" class="Comment">-- These permutation laws are proved by composing the proofs for</a>
<a id="2013" class="Comment">-- partitions (1,1) with \p → trans p (sym (assoc _ _ _)).</a>
<a id="2073" class="Comment">------------------------------------------------------------------------------</a>
<a id="x∙yz≈yx∙z"></a><a id="2153" href="Algebra.Properties.CommutativeSemigroup.html#2153" class="Function">x∙yz≈yx∙z</a> <a id="2163" class="Symbol">:</a> <a id="2166" class="Symbol"></a> <a id="2168" href="Algebra.Properties.CommutativeSemigroup.html#2168" class="Bound">x</a> <a id="2170" href="Algebra.Properties.CommutativeSemigroup.html#2170" class="Bound">y</a> <a id="2172" href="Algebra.Properties.CommutativeSemigroup.html#2172" class="Bound">z</a> <a id="2174" class="Symbol"></a> <a id="2176" href="Algebra.Properties.CommutativeSemigroup.html#2168" class="Bound">x</a> <a id="2178" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="2180" class="Symbol">(</a><a id="2181" href="Algebra.Properties.CommutativeSemigroup.html#2170" class="Bound">y</a> <a id="2183" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="2185" href="Algebra.Properties.CommutativeSemigroup.html#2172" class="Bound">z</a><a id="2186" class="Symbol">)</a> <a id="2188" href="Algebra.Bundles.html#3006" class="Field Operator"></a> <a id="2190" class="Symbol">(</a><a id="2191" href="Algebra.Properties.CommutativeSemigroup.html#2170" class="Bound">y</a> <a id="2193" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="2195" href="Algebra.Properties.CommutativeSemigroup.html#2168" class="Bound">x</a><a id="2196" class="Symbol">)</a> <a id="2198" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="2200" href="Algebra.Properties.CommutativeSemigroup.html#2172" class="Bound">z</a>
<a id="2202" href="Algebra.Properties.CommutativeSemigroup.html#2153" class="Function">x∙yz≈yx∙z</a> <a id="2212" href="Algebra.Properties.CommutativeSemigroup.html#2212" class="Bound">x</a> <a id="2214" href="Algebra.Properties.CommutativeSemigroup.html#2214" class="Bound">y</a> <a id="2216" href="Algebra.Properties.CommutativeSemigroup.html#2216" class="Bound">z</a> <a id="2218" class="Symbol">=</a> <a id="2221" href="Relation.Binary.Structures.html#1629" class="Function">trans</a> <a id="2227" class="Symbol">(</a><a id="2228" href="Algebra.Properties.CommutativeSemigroup.html#1023" class="Function">x∙yz≈y∙xz</a> <a id="2238" href="Algebra.Properties.CommutativeSemigroup.html#2212" class="Bound">x</a> <a id="2240" href="Algebra.Properties.CommutativeSemigroup.html#2214" class="Bound">y</a> <a id="2242" href="Algebra.Properties.CommutativeSemigroup.html#2216" class="Bound">z</a><a id="2243" class="Symbol">)</a> <a id="2245" class="Symbol">(</a><a id="2246" href="Relation.Binary.Structures.html#1603" class="Function">sym</a> <a id="2250" class="Symbol">(</a><a id="2251" href="Algebra.Structures.html#1876" class="Function">assoc</a> <a id="2257" href="Algebra.Properties.CommutativeSemigroup.html#2214" class="Bound">y</a> <a id="2259" href="Algebra.Properties.CommutativeSemigroup.html#2212" class="Bound">x</a> <a id="2261" href="Algebra.Properties.CommutativeSemigroup.html#2216" class="Bound">z</a><a id="2262" class="Symbol">))</a>
<a id="x∙yz≈zy∙x"></a><a id="2266" href="Algebra.Properties.CommutativeSemigroup.html#2266" class="Function">x∙yz≈zy∙x</a> <a id="2276" class="Symbol">:</a> <a id="2279" class="Symbol"></a> <a id="2281" href="Algebra.Properties.CommutativeSemigroup.html#2281" class="Bound">x</a> <a id="2283" href="Algebra.Properties.CommutativeSemigroup.html#2283" class="Bound">y</a> <a id="2285" href="Algebra.Properties.CommutativeSemigroup.html#2285" class="Bound">z</a> <a id="2287" class="Symbol"></a> <a id="2289" href="Algebra.Properties.CommutativeSemigroup.html#2281" class="Bound">x</a> <a id="2291" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="2293" class="Symbol">(</a><a id="2294" href="Algebra.Properties.CommutativeSemigroup.html#2283" class="Bound">y</a> <a id="2296" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="2298" href="Algebra.Properties.CommutativeSemigroup.html#2285" class="Bound">z</a><a id="2299" class="Symbol">)</a> <a id="2301" href="Algebra.Bundles.html#3006" class="Field Operator"></a> <a id="2303" class="Symbol">(</a><a id="2304" href="Algebra.Properties.CommutativeSemigroup.html#2285" class="Bound">z</a> <a id="2306" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="2308" href="Algebra.Properties.CommutativeSemigroup.html#2283" class="Bound">y</a><a id="2309" class="Symbol">)</a> <a id="2311" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="2313" href="Algebra.Properties.CommutativeSemigroup.html#2281" class="Bound">x</a>
<a id="2315" href="Algebra.Properties.CommutativeSemigroup.html#2266" class="Function">x∙yz≈zy∙x</a> <a id="2325" href="Algebra.Properties.CommutativeSemigroup.html#2325" class="Bound">x</a> <a id="2327" href="Algebra.Properties.CommutativeSemigroup.html#2327" class="Bound">y</a> <a id="2329" href="Algebra.Properties.CommutativeSemigroup.html#2329" class="Bound">z</a> <a id="2331" class="Symbol">=</a> <a id="2334" href="Relation.Binary.Structures.html#1629" class="Function">trans</a> <a id="2340" class="Symbol">(</a><a id="2341" href="Algebra.Properties.CommutativeSemigroup.html#1231" class="Function">x∙yz≈z∙yx</a> <a id="2351" href="Algebra.Properties.CommutativeSemigroup.html#2325" class="Bound">x</a> <a id="2353" href="Algebra.Properties.CommutativeSemigroup.html#2327" class="Bound">y</a> <a id="2355" href="Algebra.Properties.CommutativeSemigroup.html#2329" class="Bound">z</a><a id="2356" class="Symbol">)</a> <a id="2358" class="Symbol">(</a><a id="2359" href="Relation.Binary.Structures.html#1603" class="Function">sym</a> <a id="2363" class="Symbol">(</a><a id="2364" href="Algebra.Structures.html#1876" class="Function">assoc</a> <a id="2370" href="Algebra.Properties.CommutativeSemigroup.html#2329" class="Bound">z</a> <a id="2372" href="Algebra.Properties.CommutativeSemigroup.html#2327" class="Bound">y</a> <a id="2374" href="Algebra.Properties.CommutativeSemigroup.html#2325" class="Bound">x</a><a id="2375" class="Symbol">))</a>
<a id="x∙yz≈xz∙y"></a><a id="2379" href="Algebra.Properties.CommutativeSemigroup.html#2379" class="Function">x∙yz≈xz∙y</a> <a id="2389" class="Symbol">:</a> <a id="2392" class="Symbol"></a> <a id="2394" href="Algebra.Properties.CommutativeSemigroup.html#2394" class="Bound">x</a> <a id="2396" href="Algebra.Properties.CommutativeSemigroup.html#2396" class="Bound">y</a> <a id="2398" href="Algebra.Properties.CommutativeSemigroup.html#2398" class="Bound">z</a> <a id="2400" class="Symbol"></a> <a id="2402" href="Algebra.Properties.CommutativeSemigroup.html#2394" class="Bound">x</a> <a id="2404" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="2406" class="Symbol">(</a><a id="2407" href="Algebra.Properties.CommutativeSemigroup.html#2396" class="Bound">y</a> <a id="2409" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="2411" href="Algebra.Properties.CommutativeSemigroup.html#2398" class="Bound">z</a><a id="2412" class="Symbol">)</a> <a id="2414" href="Algebra.Bundles.html#3006" class="Field Operator"></a> <a id="2416" class="Symbol">(</a><a id="2417" href="Algebra.Properties.CommutativeSemigroup.html#2394" class="Bound">x</a> <a id="2419" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="2421" href="Algebra.Properties.CommutativeSemigroup.html#2398" class="Bound">z</a><a id="2422" class="Symbol">)</a> <a id="2424" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="2426" href="Algebra.Properties.CommutativeSemigroup.html#2396" class="Bound">y</a>
<a id="2428" href="Algebra.Properties.CommutativeSemigroup.html#2379" class="Function">x∙yz≈xz∙y</a> <a id="2438" href="Algebra.Properties.CommutativeSemigroup.html#2438" class="Bound">x</a> <a id="2440" href="Algebra.Properties.CommutativeSemigroup.html#2440" class="Bound">y</a> <a id="2442" href="Algebra.Properties.CommutativeSemigroup.html#2442" class="Bound">z</a> <a id="2444" class="Symbol">=</a> <a id="2447" href="Relation.Binary.Structures.html#1629" class="Function">trans</a> <a id="2453" class="Symbol">(</a><a id="2454" href="Algebra.Properties.CommutativeSemigroup.html#1444" class="Function">x∙yz≈x∙zy</a> <a id="2464" href="Algebra.Properties.CommutativeSemigroup.html#2438" class="Bound">x</a> <a id="2466" href="Algebra.Properties.CommutativeSemigroup.html#2440" class="Bound">y</a> <a id="2468" href="Algebra.Properties.CommutativeSemigroup.html#2442" class="Bound">z</a><a id="2469" class="Symbol">)</a> <a id="2471" class="Symbol">(</a><a id="2472" href="Relation.Binary.Structures.html#1603" class="Function">sym</a> <a id="2476" class="Symbol">(</a><a id="2477" href="Algebra.Structures.html#1876" class="Function">assoc</a> <a id="2483" href="Algebra.Properties.CommutativeSemigroup.html#2438" class="Bound">x</a> <a id="2485" href="Algebra.Properties.CommutativeSemigroup.html#2442" class="Bound">z</a> <a id="2487" href="Algebra.Properties.CommutativeSemigroup.html#2440" class="Bound">y</a><a id="2488" class="Symbol">))</a>
<a id="x∙yz≈yz∙x"></a><a id="2492" href="Algebra.Properties.CommutativeSemigroup.html#2492" class="Function">x∙yz≈yz∙x</a> <a id="2502" class="Symbol">:</a> <a id="2505" class="Symbol"></a> <a id="2507" href="Algebra.Properties.CommutativeSemigroup.html#2507" class="Bound">x</a> <a id="2509" href="Algebra.Properties.CommutativeSemigroup.html#2509" class="Bound">y</a> <a id="2511" href="Algebra.Properties.CommutativeSemigroup.html#2511" class="Bound">z</a> <a id="2513" class="Symbol"></a> <a id="2515" href="Algebra.Properties.CommutativeSemigroup.html#2507" class="Bound">x</a> <a id="2517" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="2519" class="Symbol">(</a><a id="2520" href="Algebra.Properties.CommutativeSemigroup.html#2509" class="Bound">y</a> <a id="2522" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="2524" href="Algebra.Properties.CommutativeSemigroup.html#2511" class="Bound">z</a><a id="2525" class="Symbol">)</a> <a id="2527" href="Algebra.Bundles.html#3006" class="Field Operator"></a> <a id="2529" class="Symbol">(</a><a id="2530" href="Algebra.Properties.CommutativeSemigroup.html#2509" class="Bound">y</a> <a id="2532" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="2534" href="Algebra.Properties.CommutativeSemigroup.html#2511" class="Bound">z</a><a id="2535" class="Symbol">)</a> <a id="2537" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="2539" href="Algebra.Properties.CommutativeSemigroup.html#2507" class="Bound">x</a>
<a id="2541" href="Algebra.Properties.CommutativeSemigroup.html#2492" class="Function">x∙yz≈yz∙x</a> <a id="2551" href="Algebra.Properties.CommutativeSemigroup.html#2551" class="Bound">x</a> <a id="2553" href="Algebra.Properties.CommutativeSemigroup.html#2553" class="Bound">y</a> <a id="2555" href="Algebra.Properties.CommutativeSemigroup.html#2555" class="Bound">z</a> <a id="2557" class="Symbol">=</a> <a id="2560" href="Relation.Binary.Structures.html#1629" class="Function">trans</a> <a id="2566" class="Symbol">(</a><a id="2567" href="Algebra.Properties.CommutativeSemigroup.html#1532" class="Function">x∙yz≈y∙zx</a> <a id="2577" class="Symbol">_</a> <a id="2579" class="Symbol">_</a> <a id="2581" class="Symbol">_)</a> <a id="2584" class="Symbol">(</a><a id="2585" href="Relation.Binary.Structures.html#1603" class="Function">sym</a> <a id="2589" class="Symbol">(</a><a id="2590" href="Algebra.Structures.html#1876" class="Function">assoc</a> <a id="2596" href="Algebra.Properties.CommutativeSemigroup.html#2553" class="Bound">y</a> <a id="2598" href="Algebra.Properties.CommutativeSemigroup.html#2555" class="Bound">z</a> <a id="2600" href="Algebra.Properties.CommutativeSemigroup.html#2551" class="Bound">x</a><a id="2601" class="Symbol">))</a>
<a id="x∙yz≈zx∙y"></a><a id="2605" href="Algebra.Properties.CommutativeSemigroup.html#2605" class="Function">x∙yz≈zx∙y</a> <a id="2615" class="Symbol">:</a> <a id="2618" class="Symbol"></a> <a id="2620" href="Algebra.Properties.CommutativeSemigroup.html#2620" class="Bound">x</a> <a id="2622" href="Algebra.Properties.CommutativeSemigroup.html#2622" class="Bound">y</a> <a id="2624" href="Algebra.Properties.CommutativeSemigroup.html#2624" class="Bound">z</a> <a id="2626" class="Symbol"></a> <a id="2628" href="Algebra.Properties.CommutativeSemigroup.html#2620" class="Bound">x</a> <a id="2630" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="2632" class="Symbol">(</a><a id="2633" href="Algebra.Properties.CommutativeSemigroup.html#2622" class="Bound">y</a> <a id="2635" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="2637" href="Algebra.Properties.CommutativeSemigroup.html#2624" class="Bound">z</a><a id="2638" class="Symbol">)</a> <a id="2640" href="Algebra.Bundles.html#3006" class="Field Operator"></a> <a id="2642" class="Symbol">(</a><a id="2643" href="Algebra.Properties.CommutativeSemigroup.html#2624" class="Bound">z</a> <a id="2645" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="2647" href="Algebra.Properties.CommutativeSemigroup.html#2620" class="Bound">x</a><a id="2648" class="Symbol">)</a> <a id="2650" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="2652" href="Algebra.Properties.CommutativeSemigroup.html#2622" class="Bound">y</a>
<a id="2654" href="Algebra.Properties.CommutativeSemigroup.html#2605" class="Function">x∙yz≈zx∙y</a> <a id="2664" href="Algebra.Properties.CommutativeSemigroup.html#2664" class="Bound">x</a> <a id="2666" href="Algebra.Properties.CommutativeSemigroup.html#2666" class="Bound">y</a> <a id="2668" href="Algebra.Properties.CommutativeSemigroup.html#2668" class="Bound">z</a> <a id="2670" class="Symbol">=</a> <a id="2673" href="Relation.Binary.Structures.html#1629" class="Function">trans</a> <a id="2679" class="Symbol">(</a><a id="2680" href="Algebra.Properties.CommutativeSemigroup.html#1687" class="Function">x∙yz≈z∙xy</a> <a id="2690" href="Algebra.Properties.CommutativeSemigroup.html#2664" class="Bound">x</a> <a id="2692" href="Algebra.Properties.CommutativeSemigroup.html#2666" class="Bound">y</a> <a id="2694" href="Algebra.Properties.CommutativeSemigroup.html#2668" class="Bound">z</a><a id="2695" class="Symbol">)</a> <a id="2697" class="Symbol">(</a><a id="2698" href="Relation.Binary.Structures.html#1603" class="Function">sym</a> <a id="2702" class="Symbol">(</a><a id="2703" href="Algebra.Structures.html#1876" class="Function">assoc</a> <a id="2709" href="Algebra.Properties.CommutativeSemigroup.html#2668" class="Bound">z</a> <a id="2711" href="Algebra.Properties.CommutativeSemigroup.html#2664" class="Bound">x</a> <a id="2713" href="Algebra.Properties.CommutativeSemigroup.html#2666" class="Bound">y</a><a id="2714" class="Symbol">))</a>
<a id="2719" class="Comment">------------------------------------------------------------------------------</a>
<a id="2798" class="Comment">-- Partitions (2,1).</a>
<a id="2819" class="Comment">-- Their laws are proved by composing proofs for partitions (1,1) with</a>
<a id="2890" class="Comment">-- trans (assoc x y z).</a>
<a id="2914" class="Comment">------------------------------------------------------------------------------</a>
<a id="xy∙z≈y∙xz"></a><a id="2994" href="Algebra.Properties.CommutativeSemigroup.html#2994" class="Function">xy∙z≈y∙xz</a> <a id="3004" class="Symbol">:</a> <a id="3007" class="Symbol"></a> <a id="3009" href="Algebra.Properties.CommutativeSemigroup.html#3009" class="Bound">x</a> <a id="3011" href="Algebra.Properties.CommutativeSemigroup.html#3011" class="Bound">y</a> <a id="3013" href="Algebra.Properties.CommutativeSemigroup.html#3013" class="Bound">z</a> <a id="3015" class="Symbol"></a> <a id="3017" class="Symbol">(</a><a id="3018" href="Algebra.Properties.CommutativeSemigroup.html#3009" class="Bound">x</a> <a id="3020" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="3022" href="Algebra.Properties.CommutativeSemigroup.html#3011" class="Bound">y</a><a id="3023" class="Symbol">)</a> <a id="3025" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="3027" href="Algebra.Properties.CommutativeSemigroup.html#3013" class="Bound">z</a> <a id="3029" href="Algebra.Bundles.html#3006" class="Field Operator"></a> <a id="3031" href="Algebra.Properties.CommutativeSemigroup.html#3011" class="Bound">y</a> <a id="3033" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="3035" class="Symbol">(</a><a id="3036" href="Algebra.Properties.CommutativeSemigroup.html#3009" class="Bound">x</a> <a id="3038" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="3040" href="Algebra.Properties.CommutativeSemigroup.html#3013" class="Bound">z</a><a id="3041" class="Symbol">)</a>
<a id="3043" href="Algebra.Properties.CommutativeSemigroup.html#2994" class="Function">xy∙z≈y∙xz</a> <a id="3053" href="Algebra.Properties.CommutativeSemigroup.html#3053" class="Bound">x</a> <a id="3055" href="Algebra.Properties.CommutativeSemigroup.html#3055" class="Bound">y</a> <a id="3057" href="Algebra.Properties.CommutativeSemigroup.html#3057" class="Bound">z</a> <a id="3059" class="Symbol">=</a> <a id="3062" href="Relation.Binary.Structures.html#1629" class="Function">trans</a> <a id="3068" class="Symbol">(</a><a id="3069" href="Algebra.Structures.html#1876" class="Function">assoc</a> <a id="3075" href="Algebra.Properties.CommutativeSemigroup.html#3053" class="Bound">x</a> <a id="3077" href="Algebra.Properties.CommutativeSemigroup.html#3055" class="Bound">y</a> <a id="3079" href="Algebra.Properties.CommutativeSemigroup.html#3057" class="Bound">z</a><a id="3080" class="Symbol">)</a> <a id="3082" class="Symbol">(</a><a id="3083" href="Algebra.Properties.CommutativeSemigroup.html#1023" class="Function">x∙yz≈y∙xz</a> <a id="3093" href="Algebra.Properties.CommutativeSemigroup.html#3053" class="Bound">x</a> <a id="3095" href="Algebra.Properties.CommutativeSemigroup.html#3055" class="Bound">y</a> <a id="3097" href="Algebra.Properties.CommutativeSemigroup.html#3057" class="Bound">z</a><a id="3098" class="Symbol">)</a>
<a id="xy∙z≈z∙yx"></a><a id="3101" href="Algebra.Properties.CommutativeSemigroup.html#3101" class="Function">xy∙z≈z∙yx</a> <a id="3111" class="Symbol">:</a> <a id="3114" class="Symbol"></a> <a id="3116" href="Algebra.Properties.CommutativeSemigroup.html#3116" class="Bound">x</a> <a id="3118" href="Algebra.Properties.CommutativeSemigroup.html#3118" class="Bound">y</a> <a id="3120" href="Algebra.Properties.CommutativeSemigroup.html#3120" class="Bound">z</a> <a id="3122" class="Symbol"></a> <a id="3124" class="Symbol">(</a><a id="3125" href="Algebra.Properties.CommutativeSemigroup.html#3116" class="Bound">x</a> <a id="3127" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="3129" href="Algebra.Properties.CommutativeSemigroup.html#3118" class="Bound">y</a><a id="3130" class="Symbol">)</a> <a id="3132" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="3134" href="Algebra.Properties.CommutativeSemigroup.html#3120" class="Bound">z</a> <a id="3136" href="Algebra.Bundles.html#3006" class="Field Operator"></a> <a id="3138" href="Algebra.Properties.CommutativeSemigroup.html#3120" class="Bound">z</a> <a id="3140" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="3142" class="Symbol">(</a><a id="3143" href="Algebra.Properties.CommutativeSemigroup.html#3118" class="Bound">y</a> <a id="3145" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="3147" href="Algebra.Properties.CommutativeSemigroup.html#3116" class="Bound">x</a><a id="3148" class="Symbol">)</a>
<a id="3150" href="Algebra.Properties.CommutativeSemigroup.html#3101" class="Function">xy∙z≈z∙yx</a> <a id="3160" href="Algebra.Properties.CommutativeSemigroup.html#3160" class="Bound">x</a> <a id="3162" href="Algebra.Properties.CommutativeSemigroup.html#3162" class="Bound">y</a> <a id="3164" href="Algebra.Properties.CommutativeSemigroup.html#3164" class="Bound">z</a> <a id="3166" class="Symbol">=</a> <a id="3169" href="Relation.Binary.Structures.html#1629" class="Function">trans</a> <a id="3175" class="Symbol">(</a><a id="3176" href="Algebra.Structures.html#1876" class="Function">assoc</a> <a id="3182" href="Algebra.Properties.CommutativeSemigroup.html#3160" class="Bound">x</a> <a id="3184" href="Algebra.Properties.CommutativeSemigroup.html#3162" class="Bound">y</a> <a id="3186" href="Algebra.Properties.CommutativeSemigroup.html#3164" class="Bound">z</a><a id="3187" class="Symbol">)</a> <a id="3189" class="Symbol">(</a><a id="3190" href="Algebra.Properties.CommutativeSemigroup.html#1231" class="Function">x∙yz≈z∙yx</a> <a id="3200" href="Algebra.Properties.CommutativeSemigroup.html#3160" class="Bound">x</a> <a id="3202" href="Algebra.Properties.CommutativeSemigroup.html#3162" class="Bound">y</a> <a id="3204" href="Algebra.Properties.CommutativeSemigroup.html#3164" class="Bound">z</a><a id="3205" class="Symbol">)</a>
<a id="xy∙z≈x∙zy"></a><a id="3208" href="Algebra.Properties.CommutativeSemigroup.html#3208" class="Function">xy∙z≈x∙zy</a> <a id="3218" class="Symbol">:</a> <a id="3221" class="Symbol"></a> <a id="3223" href="Algebra.Properties.CommutativeSemigroup.html#3223" class="Bound">x</a> <a id="3225" href="Algebra.Properties.CommutativeSemigroup.html#3225" class="Bound">y</a> <a id="3227" href="Algebra.Properties.CommutativeSemigroup.html#3227" class="Bound">z</a> <a id="3229" class="Symbol"></a> <a id="3231" class="Symbol">(</a><a id="3232" href="Algebra.Properties.CommutativeSemigroup.html#3223" class="Bound">x</a> <a id="3234" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="3236" href="Algebra.Properties.CommutativeSemigroup.html#3225" class="Bound">y</a><a id="3237" class="Symbol">)</a> <a id="3239" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="3241" href="Algebra.Properties.CommutativeSemigroup.html#3227" class="Bound">z</a> <a id="3243" href="Algebra.Bundles.html#3006" class="Field Operator"></a> <a id="3245" href="Algebra.Properties.CommutativeSemigroup.html#3223" class="Bound">x</a> <a id="3247" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="3249" class="Symbol">(</a><a id="3250" href="Algebra.Properties.CommutativeSemigroup.html#3227" class="Bound">z</a> <a id="3252" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="3254" href="Algebra.Properties.CommutativeSemigroup.html#3225" class="Bound">y</a><a id="3255" class="Symbol">)</a>
<a id="3257" href="Algebra.Properties.CommutativeSemigroup.html#3208" class="Function">xy∙z≈x∙zy</a> <a id="3267" href="Algebra.Properties.CommutativeSemigroup.html#3267" class="Bound">x</a> <a id="3269" href="Algebra.Properties.CommutativeSemigroup.html#3269" class="Bound">y</a> <a id="3271" href="Algebra.Properties.CommutativeSemigroup.html#3271" class="Bound">z</a> <a id="3273" class="Symbol">=</a> <a id="3276" href="Relation.Binary.Structures.html#1629" class="Function">trans</a> <a id="3282" class="Symbol">(</a><a id="3283" href="Algebra.Structures.html#1876" class="Function">assoc</a> <a id="3289" href="Algebra.Properties.CommutativeSemigroup.html#3267" class="Bound">x</a> <a id="3291" href="Algebra.Properties.CommutativeSemigroup.html#3269" class="Bound">y</a> <a id="3293" href="Algebra.Properties.CommutativeSemigroup.html#3271" class="Bound">z</a><a id="3294" class="Symbol">)</a> <a id="3296" class="Symbol">(</a><a id="3297" href="Algebra.Properties.CommutativeSemigroup.html#1444" class="Function">x∙yz≈x∙zy</a> <a id="3307" href="Algebra.Properties.CommutativeSemigroup.html#3267" class="Bound">x</a> <a id="3309" href="Algebra.Properties.CommutativeSemigroup.html#3269" class="Bound">y</a> <a id="3311" href="Algebra.Properties.CommutativeSemigroup.html#3271" class="Bound">z</a><a id="3312" class="Symbol">)</a>
<a id="xy∙z≈y∙zx"></a><a id="3315" href="Algebra.Properties.CommutativeSemigroup.html#3315" class="Function">xy∙z≈y∙zx</a> <a id="3325" class="Symbol">:</a> <a id="3328" class="Symbol"></a> <a id="3330" href="Algebra.Properties.CommutativeSemigroup.html#3330" class="Bound">x</a> <a id="3332" href="Algebra.Properties.CommutativeSemigroup.html#3332" class="Bound">y</a> <a id="3334" href="Algebra.Properties.CommutativeSemigroup.html#3334" class="Bound">z</a> <a id="3336" class="Symbol"></a> <a id="3338" class="Symbol">(</a><a id="3339" href="Algebra.Properties.CommutativeSemigroup.html#3330" class="Bound">x</a> <a id="3341" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="3343" href="Algebra.Properties.CommutativeSemigroup.html#3332" class="Bound">y</a><a id="3344" class="Symbol">)</a> <a id="3346" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="3348" href="Algebra.Properties.CommutativeSemigroup.html#3334" class="Bound">z</a> <a id="3350" href="Algebra.Bundles.html#3006" class="Field Operator"></a> <a id="3352" href="Algebra.Properties.CommutativeSemigroup.html#3332" class="Bound">y</a> <a id="3354" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="3356" class="Symbol">(</a><a id="3357" href="Algebra.Properties.CommutativeSemigroup.html#3334" class="Bound">z</a> <a id="3359" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="3361" href="Algebra.Properties.CommutativeSemigroup.html#3330" class="Bound">x</a><a id="3362" class="Symbol">)</a>
<a id="3364" href="Algebra.Properties.CommutativeSemigroup.html#3315" class="Function">xy∙z≈y∙zx</a> <a id="3374" href="Algebra.Properties.CommutativeSemigroup.html#3374" class="Bound">x</a> <a id="3376" href="Algebra.Properties.CommutativeSemigroup.html#3376" class="Bound">y</a> <a id="3378" href="Algebra.Properties.CommutativeSemigroup.html#3378" class="Bound">z</a> <a id="3380" class="Symbol">=</a> <a id="3383" href="Relation.Binary.Structures.html#1629" class="Function">trans</a> <a id="3389" class="Symbol">(</a><a id="3390" href="Algebra.Structures.html#1876" class="Function">assoc</a> <a id="3396" href="Algebra.Properties.CommutativeSemigroup.html#3374" class="Bound">x</a> <a id="3398" href="Algebra.Properties.CommutativeSemigroup.html#3376" class="Bound">y</a> <a id="3400" href="Algebra.Properties.CommutativeSemigroup.html#3378" class="Bound">z</a><a id="3401" class="Symbol">)</a> <a id="3403" class="Symbol">(</a><a id="3404" href="Algebra.Properties.CommutativeSemigroup.html#1532" class="Function">x∙yz≈y∙zx</a> <a id="3414" href="Algebra.Properties.CommutativeSemigroup.html#3374" class="Bound">x</a> <a id="3416" href="Algebra.Properties.CommutativeSemigroup.html#3376" class="Bound">y</a> <a id="3418" href="Algebra.Properties.CommutativeSemigroup.html#3378" class="Bound">z</a><a id="3419" class="Symbol">)</a>
<a id="xy∙z≈z∙xy"></a><a id="3422" href="Algebra.Properties.CommutativeSemigroup.html#3422" class="Function">xy∙z≈z∙xy</a> <a id="3432" class="Symbol">:</a> <a id="3435" class="Symbol"></a> <a id="3437" href="Algebra.Properties.CommutativeSemigroup.html#3437" class="Bound">x</a> <a id="3439" href="Algebra.Properties.CommutativeSemigroup.html#3439" class="Bound">y</a> <a id="3441" href="Algebra.Properties.CommutativeSemigroup.html#3441" class="Bound">z</a> <a id="3443" class="Symbol"></a> <a id="3445" class="Symbol">(</a><a id="3446" href="Algebra.Properties.CommutativeSemigroup.html#3437" class="Bound">x</a> <a id="3448" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="3450" href="Algebra.Properties.CommutativeSemigroup.html#3439" class="Bound">y</a><a id="3451" class="Symbol">)</a> <a id="3453" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="3455" href="Algebra.Properties.CommutativeSemigroup.html#3441" class="Bound">z</a> <a id="3457" href="Algebra.Bundles.html#3006" class="Field Operator"></a> <a id="3459" href="Algebra.Properties.CommutativeSemigroup.html#3441" class="Bound">z</a> <a id="3461" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="3463" class="Symbol">(</a><a id="3464" href="Algebra.Properties.CommutativeSemigroup.html#3437" class="Bound">x</a> <a id="3466" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="3468" href="Algebra.Properties.CommutativeSemigroup.html#3439" class="Bound">y</a><a id="3469" class="Symbol">)</a>
<a id="3471" href="Algebra.Properties.CommutativeSemigroup.html#3422" class="Function">xy∙z≈z∙xy</a> <a id="3481" href="Algebra.Properties.CommutativeSemigroup.html#3481" class="Bound">x</a> <a id="3483" href="Algebra.Properties.CommutativeSemigroup.html#3483" class="Bound">y</a> <a id="3485" href="Algebra.Properties.CommutativeSemigroup.html#3485" class="Bound">z</a> <a id="3487" class="Symbol">=</a> <a id="3490" href="Relation.Binary.Structures.html#1629" class="Function">trans</a> <a id="3496" class="Symbol">(</a><a id="3497" href="Algebra.Structures.html#1876" class="Function">assoc</a> <a id="3503" href="Algebra.Properties.CommutativeSemigroup.html#3481" class="Bound">x</a> <a id="3505" href="Algebra.Properties.CommutativeSemigroup.html#3483" class="Bound">y</a> <a id="3507" href="Algebra.Properties.CommutativeSemigroup.html#3485" class="Bound">z</a><a id="3508" class="Symbol">)</a> <a id="3510" class="Symbol">(</a><a id="3511" href="Algebra.Properties.CommutativeSemigroup.html#1687" class="Function">x∙yz≈z∙xy</a> <a id="3521" href="Algebra.Properties.CommutativeSemigroup.html#3481" class="Bound">x</a> <a id="3523" href="Algebra.Properties.CommutativeSemigroup.html#3483" class="Bound">y</a> <a id="3525" href="Algebra.Properties.CommutativeSemigroup.html#3485" class="Bound">z</a><a id="3526" class="Symbol">)</a>
<a id="3529" class="Comment">------------------------------------------------------------------------------</a>
<a id="3608" class="Comment">-- Partitions (2,2).</a>
<a id="3629" class="Comment">-- These proofs are by composing with the proofs for (2,1).</a>
<a id="3689" class="Comment">------------------------------------------------------------------------------</a>
<a id="xy∙z≈yx∙z"></a><a id="3769" href="Algebra.Properties.CommutativeSemigroup.html#3769" class="Function">xy∙z≈yx∙z</a> <a id="3779" class="Symbol">:</a> <a id="3782" class="Symbol"></a> <a id="3784" href="Algebra.Properties.CommutativeSemigroup.html#3784" class="Bound">x</a> <a id="3786" href="Algebra.Properties.CommutativeSemigroup.html#3786" class="Bound">y</a> <a id="3788" href="Algebra.Properties.CommutativeSemigroup.html#3788" class="Bound">z</a> <a id="3790" class="Symbol"></a> <a id="3792" class="Symbol">(</a><a id="3793" href="Algebra.Properties.CommutativeSemigroup.html#3784" class="Bound">x</a> <a id="3795" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="3797" href="Algebra.Properties.CommutativeSemigroup.html#3786" class="Bound">y</a><a id="3798" class="Symbol">)</a> <a id="3800" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="3802" href="Algebra.Properties.CommutativeSemigroup.html#3788" class="Bound">z</a> <a id="3804" href="Algebra.Bundles.html#3006" class="Field Operator"></a> <a id="3806" class="Symbol">(</a><a id="3807" href="Algebra.Properties.CommutativeSemigroup.html#3786" class="Bound">y</a> <a id="3809" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="3811" href="Algebra.Properties.CommutativeSemigroup.html#3784" class="Bound">x</a><a id="3812" class="Symbol">)</a> <a id="3814" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="3816" href="Algebra.Properties.CommutativeSemigroup.html#3788" class="Bound">z</a>
<a id="3818" href="Algebra.Properties.CommutativeSemigroup.html#3769" class="Function">xy∙z≈yx∙z</a> <a id="3828" href="Algebra.Properties.CommutativeSemigroup.html#3828" class="Bound">x</a> <a id="3830" href="Algebra.Properties.CommutativeSemigroup.html#3830" class="Bound">y</a> <a id="3832" href="Algebra.Properties.CommutativeSemigroup.html#3832" class="Bound">z</a> <a id="3834" class="Symbol">=</a> <a id="3837" href="Relation.Binary.Structures.html#1629" class="Function">trans</a> <a id="3843" class="Symbol">(</a><a id="3844" href="Algebra.Properties.CommutativeSemigroup.html#2994" class="Function">xy∙z≈y∙xz</a> <a id="3854" class="Symbol">_</a> <a id="3856" class="Symbol">_</a> <a id="3858" class="Symbol">_)</a> <a id="3861" class="Symbol">(</a><a id="3862" href="Relation.Binary.Structures.html#1603" class="Function">sym</a> <a id="3866" class="Symbol">(</a><a id="3867" href="Algebra.Structures.html#1876" class="Function">assoc</a> <a id="3873" href="Algebra.Properties.CommutativeSemigroup.html#3830" class="Bound">y</a> <a id="3875" href="Algebra.Properties.CommutativeSemigroup.html#3828" class="Bound">x</a> <a id="3877" href="Algebra.Properties.CommutativeSemigroup.html#3832" class="Bound">z</a><a id="3878" class="Symbol">))</a>
<a id="xy∙z≈zy∙x"></a><a id="3882" href="Algebra.Properties.CommutativeSemigroup.html#3882" class="Function">xy∙z≈zy∙x</a> <a id="3892" class="Symbol">:</a> <a id="3895" class="Symbol"></a> <a id="3897" href="Algebra.Properties.CommutativeSemigroup.html#3897" class="Bound">x</a> <a id="3899" href="Algebra.Properties.CommutativeSemigroup.html#3899" class="Bound">y</a> <a id="3901" href="Algebra.Properties.CommutativeSemigroup.html#3901" class="Bound">z</a> <a id="3903" class="Symbol"></a> <a id="3905" class="Symbol">(</a><a id="3906" href="Algebra.Properties.CommutativeSemigroup.html#3897" class="Bound">x</a> <a id="3908" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="3910" href="Algebra.Properties.CommutativeSemigroup.html#3899" class="Bound">y</a><a id="3911" class="Symbol">)</a> <a id="3913" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="3915" href="Algebra.Properties.CommutativeSemigroup.html#3901" class="Bound">z</a> <a id="3917" href="Algebra.Bundles.html#3006" class="Field Operator"></a> <a id="3919" class="Symbol">(</a><a id="3920" href="Algebra.Properties.CommutativeSemigroup.html#3901" class="Bound">z</a> <a id="3922" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="3924" href="Algebra.Properties.CommutativeSemigroup.html#3899" class="Bound">y</a><a id="3925" class="Symbol">)</a> <a id="3927" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="3929" href="Algebra.Properties.CommutativeSemigroup.html#3897" class="Bound">x</a>
<a id="3931" href="Algebra.Properties.CommutativeSemigroup.html#3882" class="Function">xy∙z≈zy∙x</a> <a id="3941" href="Algebra.Properties.CommutativeSemigroup.html#3941" class="Bound">x</a> <a id="3943" href="Algebra.Properties.CommutativeSemigroup.html#3943" class="Bound">y</a> <a id="3945" href="Algebra.Properties.CommutativeSemigroup.html#3945" class="Bound">z</a> <a id="3947" class="Symbol">=</a> <a id="3950" href="Relation.Binary.Structures.html#1629" class="Function">trans</a> <a id="3956" class="Symbol">(</a><a id="3957" href="Algebra.Properties.CommutativeSemigroup.html#3101" class="Function">xy∙z≈z∙yx</a> <a id="3967" href="Algebra.Properties.CommutativeSemigroup.html#3941" class="Bound">x</a> <a id="3969" href="Algebra.Properties.CommutativeSemigroup.html#3943" class="Bound">y</a> <a id="3971" href="Algebra.Properties.CommutativeSemigroup.html#3945" class="Bound">z</a><a id="3972" class="Symbol">)</a> <a id="3974" class="Symbol">(</a><a id="3975" href="Relation.Binary.Structures.html#1603" class="Function">sym</a> <a id="3979" class="Symbol">(</a><a id="3980" href="Algebra.Structures.html#1876" class="Function">assoc</a> <a id="3986" href="Algebra.Properties.CommutativeSemigroup.html#3945" class="Bound">z</a> <a id="3988" href="Algebra.Properties.CommutativeSemigroup.html#3943" class="Bound">y</a> <a id="3990" href="Algebra.Properties.CommutativeSemigroup.html#3941" class="Bound">x</a><a id="3991" class="Symbol">))</a>
<a id="xy∙z≈xz∙y"></a><a id="3995" href="Algebra.Properties.CommutativeSemigroup.html#3995" class="Function">xy∙z≈xz∙y</a> <a id="4005" class="Symbol">:</a> <a id="4008" class="Symbol"></a> <a id="4010" href="Algebra.Properties.CommutativeSemigroup.html#4010" class="Bound">x</a> <a id="4012" href="Algebra.Properties.CommutativeSemigroup.html#4012" class="Bound">y</a> <a id="4014" href="Algebra.Properties.CommutativeSemigroup.html#4014" class="Bound">z</a> <a id="4016" class="Symbol"></a> <a id="4018" class="Symbol">(</a><a id="4019" href="Algebra.Properties.CommutativeSemigroup.html#4010" class="Bound">x</a> <a id="4021" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="4023" href="Algebra.Properties.CommutativeSemigroup.html#4012" class="Bound">y</a><a id="4024" class="Symbol">)</a> <a id="4026" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="4028" href="Algebra.Properties.CommutativeSemigroup.html#4014" class="Bound">z</a> <a id="4030" href="Algebra.Bundles.html#3006" class="Field Operator"></a> <a id="4032" class="Symbol">(</a><a id="4033" href="Algebra.Properties.CommutativeSemigroup.html#4010" class="Bound">x</a> <a id="4035" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="4037" href="Algebra.Properties.CommutativeSemigroup.html#4014" class="Bound">z</a><a id="4038" class="Symbol">)</a> <a id="4040" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="4042" href="Algebra.Properties.CommutativeSemigroup.html#4012" class="Bound">y</a>
<a id="4044" href="Algebra.Properties.CommutativeSemigroup.html#3995" class="Function">xy∙z≈xz∙y</a> <a id="4054" href="Algebra.Properties.CommutativeSemigroup.html#4054" class="Bound">x</a> <a id="4056" href="Algebra.Properties.CommutativeSemigroup.html#4056" class="Bound">y</a> <a id="4058" href="Algebra.Properties.CommutativeSemigroup.html#4058" class="Bound">z</a> <a id="4060" class="Symbol">=</a> <a id="4063" href="Relation.Binary.Structures.html#1629" class="Function">trans</a> <a id="4069" class="Symbol">(</a><a id="4070" href="Algebra.Properties.CommutativeSemigroup.html#3208" class="Function">xy∙z≈x∙zy</a> <a id="4080" href="Algebra.Properties.CommutativeSemigroup.html#4054" class="Bound">x</a> <a id="4082" href="Algebra.Properties.CommutativeSemigroup.html#4056" class="Bound">y</a> <a id="4084" href="Algebra.Properties.CommutativeSemigroup.html#4058" class="Bound">z</a><a id="4085" class="Symbol">)</a> <a id="4087" class="Symbol">(</a><a id="4088" href="Relation.Binary.Structures.html#1603" class="Function">sym</a> <a id="4092" class="Symbol">(</a><a id="4093" href="Algebra.Structures.html#1876" class="Function">assoc</a> <a id="4099" href="Algebra.Properties.CommutativeSemigroup.html#4054" class="Bound">x</a> <a id="4101" href="Algebra.Properties.CommutativeSemigroup.html#4058" class="Bound">z</a> <a id="4103" href="Algebra.Properties.CommutativeSemigroup.html#4056" class="Bound">y</a><a id="4104" class="Symbol">))</a>
<a id="xy∙z≈yz∙x"></a><a id="4108" href="Algebra.Properties.CommutativeSemigroup.html#4108" class="Function">xy∙z≈yz∙x</a> <a id="4118" class="Symbol">:</a> <a id="4121" class="Symbol"></a> <a id="4123" href="Algebra.Properties.CommutativeSemigroup.html#4123" class="Bound">x</a> <a id="4125" href="Algebra.Properties.CommutativeSemigroup.html#4125" class="Bound">y</a> <a id="4127" href="Algebra.Properties.CommutativeSemigroup.html#4127" class="Bound">z</a> <a id="4129" class="Symbol"></a> <a id="4131" class="Symbol">(</a><a id="4132" href="Algebra.Properties.CommutativeSemigroup.html#4123" class="Bound">x</a> <a id="4134" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="4136" href="Algebra.Properties.CommutativeSemigroup.html#4125" class="Bound">y</a><a id="4137" class="Symbol">)</a> <a id="4139" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="4141" href="Algebra.Properties.CommutativeSemigroup.html#4127" class="Bound">z</a> <a id="4143" href="Algebra.Bundles.html#3006" class="Field Operator"></a> <a id="4145" class="Symbol">(</a><a id="4146" href="Algebra.Properties.CommutativeSemigroup.html#4125" class="Bound">y</a> <a id="4148" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="4150" href="Algebra.Properties.CommutativeSemigroup.html#4127" class="Bound">z</a><a id="4151" class="Symbol">)</a> <a id="4153" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="4155" href="Algebra.Properties.CommutativeSemigroup.html#4123" class="Bound">x</a>
<a id="4157" href="Algebra.Properties.CommutativeSemigroup.html#4108" class="Function">xy∙z≈yz∙x</a> <a id="4167" href="Algebra.Properties.CommutativeSemigroup.html#4167" class="Bound">x</a> <a id="4169" href="Algebra.Properties.CommutativeSemigroup.html#4169" class="Bound">y</a> <a id="4171" href="Algebra.Properties.CommutativeSemigroup.html#4171" class="Bound">z</a> <a id="4173" class="Symbol">=</a> <a id="4176" href="Relation.Binary.Structures.html#1629" class="Function">trans</a> <a id="4182" class="Symbol">(</a><a id="4183" href="Algebra.Properties.CommutativeSemigroup.html#3315" class="Function">xy∙z≈y∙zx</a> <a id="4193" href="Algebra.Properties.CommutativeSemigroup.html#4167" class="Bound">x</a> <a id="4195" href="Algebra.Properties.CommutativeSemigroup.html#4169" class="Bound">y</a> <a id="4197" href="Algebra.Properties.CommutativeSemigroup.html#4171" class="Bound">z</a><a id="4198" class="Symbol">)</a> <a id="4200" class="Symbol">(</a><a id="4201" href="Relation.Binary.Structures.html#1603" class="Function">sym</a> <a id="4205" class="Symbol">(</a><a id="4206" href="Algebra.Structures.html#1876" class="Function">assoc</a> <a id="4212" href="Algebra.Properties.CommutativeSemigroup.html#4169" class="Bound">y</a> <a id="4214" href="Algebra.Properties.CommutativeSemigroup.html#4171" class="Bound">z</a> <a id="4216" href="Algebra.Properties.CommutativeSemigroup.html#4167" class="Bound">x</a><a id="4217" class="Symbol">))</a>
<a id="xy∙z≈zx∙y"></a><a id="4221" href="Algebra.Properties.CommutativeSemigroup.html#4221" class="Function">xy∙z≈zx∙y</a> <a id="4231" class="Symbol">:</a> <a id="4234" class="Symbol"></a> <a id="4236" href="Algebra.Properties.CommutativeSemigroup.html#4236" class="Bound">x</a> <a id="4238" href="Algebra.Properties.CommutativeSemigroup.html#4238" class="Bound">y</a> <a id="4240" href="Algebra.Properties.CommutativeSemigroup.html#4240" class="Bound">z</a> <a id="4242" class="Symbol"></a> <a id="4244" class="Symbol">(</a><a id="4245" href="Algebra.Properties.CommutativeSemigroup.html#4236" class="Bound">x</a> <a id="4247" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="4249" href="Algebra.Properties.CommutativeSemigroup.html#4238" class="Bound">y</a><a id="4250" class="Symbol">)</a> <a id="4252" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="4254" href="Algebra.Properties.CommutativeSemigroup.html#4240" class="Bound">z</a> <a id="4256" href="Algebra.Bundles.html#3006" class="Field Operator"></a> <a id="4258" class="Symbol">(</a><a id="4259" href="Algebra.Properties.CommutativeSemigroup.html#4240" class="Bound">z</a> <a id="4261" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="4263" href="Algebra.Properties.CommutativeSemigroup.html#4236" class="Bound">x</a><a id="4264" class="Symbol">)</a> <a id="4266" href="Algebra.Bundles.html#3050" class="Field Operator"></a> <a id="4268" href="Algebra.Properties.CommutativeSemigroup.html#4238" class="Bound">y</a>
<a id="4270" href="Algebra.Properties.CommutativeSemigroup.html#4221" class="Function">xy∙z≈zx∙y</a> <a id="4280" href="Algebra.Properties.CommutativeSemigroup.html#4280" class="Bound">x</a> <a id="4282" href="Algebra.Properties.CommutativeSemigroup.html#4282" class="Bound">y</a> <a id="4284" href="Algebra.Properties.CommutativeSemigroup.html#4284" class="Bound">z</a> <a id="4286" class="Symbol">=</a> <a id="4289" href="Relation.Binary.Structures.html#1629" class="Function">trans</a> <a id="4295" class="Symbol">(</a><a id="4296" href="Algebra.Properties.CommutativeSemigroup.html#3422" class="Function">xy∙z≈z∙xy</a> <a id="4306" href="Algebra.Properties.CommutativeSemigroup.html#4280" class="Bound">x</a> <a id="4308" href="Algebra.Properties.CommutativeSemigroup.html#4282" class="Bound">y</a> <a id="4310" href="Algebra.Properties.CommutativeSemigroup.html#4284" class="Bound">z</a><a id="4311" class="Symbol">)</a> <a id="4313" class="Symbol">(</a><a id="4314" href="Relation.Binary.Structures.html#1603" class="Function">sym</a> <a id="4318" class="Symbol">(</a><a id="4319" href="Algebra.Structures.html#1876" class="Function">assoc</a> <a id="4325" href="Algebra.Properties.CommutativeSemigroup.html#4284" class="Bound">z</a> <a id="4327" href="Algebra.Properties.CommutativeSemigroup.html#4280" class="Bound">x</a> <a id="4329" href="Algebra.Properties.CommutativeSemigroup.html#4282" class="Bound">y</a><a id="4330" class="Symbol">))</a>
</pre></body></html>