mirror of
https://git8.cs.fau.de/theses/bsc-leon-vatthauer.git
synced 2024-05-31 07:28:34 +02:00
83 lines
No EOL
18 KiB
HTML
83 lines
No EOL
18 KiB
HTML
<!DOCTYPE HTML>
|
|
<html><head><meta charset="utf-8"><title>Algebra.Construct.NaturalChoice.MaxOp</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">-- Properties of a max operator derived from a spec over a total</a>
|
|
<a id="171" class="Comment">-- preorder.</a>
|
|
<a id="184" class="Comment">------------------------------------------------------------------------</a>
|
|
|
|
<a id="258" class="Symbol">{-#</a> <a id="262" class="Keyword">OPTIONS</a> <a id="270" class="Pragma">--cubical-compatible</a> <a id="291" class="Pragma">--safe</a> <a id="298" class="Symbol">#-}</a>
|
|
|
|
<a id="303" class="Keyword">open</a> <a id="308" class="Keyword">import</a> <a id="315" href="Algebra.Core.html" class="Module">Algebra.Core</a>
|
|
<a id="328" class="Keyword">open</a> <a id="333" class="Keyword">import</a> <a id="340" href="Algebra.Construct.NaturalChoice.Base.html" class="Module">Algebra.Construct.NaturalChoice.Base</a>
|
|
<a id="377" class="Keyword">import</a> <a id="384" href="Algebra.Construct.NaturalChoice.MinOp.html" class="Module">Algebra.Construct.NaturalChoice.MinOp</a> <a id="422" class="Symbol">as</a> <a id="425" class="Module">MinOp</a>
|
|
<a id="431" class="Keyword">open</a> <a id="436" class="Keyword">import</a> <a id="443" href="Function.Base.html" class="Module">Function.Base</a> <a id="457" class="Keyword">using</a> <a id="463" class="Symbol">(</a><a id="464" href="Function.Base.html#1638" class="Function">flip</a><a id="468" class="Symbol">)</a>
|
|
<a id="470" class="Keyword">open</a> <a id="475" class="Keyword">import</a> <a id="482" href="Relation.Binary.Core.html" class="Module">Relation.Binary.Core</a> <a id="503" class="Keyword">using</a> <a id="509" class="Symbol">(</a><a id="510" href="Relation.Binary.Core.html#1577" class="Function Operator">_Preserves_⟶_</a><a id="523" class="Symbol">)</a>
|
|
<a id="525" class="Keyword">open</a> <a id="530" class="Keyword">import</a> <a id="537" href="Relation.Binary.Bundles.html" class="Module">Relation.Binary.Bundles</a> <a id="561" class="Keyword">using</a> <a id="567" class="Symbol">(</a><a id="568" href="Relation.Binary.Bundles.html#2842" class="Record">TotalPreorder</a><a id="581" class="Symbol">)</a>
|
|
<a id="583" class="Keyword">open</a> <a id="588" class="Keyword">import</a> <a id="595" href="Relation.Binary.Construct.Flip.EqAndOrd.html" class="Module">Relation.Binary.Construct.Flip.EqAndOrd</a> <a id="635" class="Keyword">using</a> <a id="641" class="Symbol">()</a>
|
|
<a id="646" class="Keyword">renaming</a> <a id="655" class="Symbol">(</a><a id="656" href="Relation.Binary.Construct.Flip.EqAndOrd.html#5603" class="Function">totalPreorder</a> <a id="670" class="Symbol">to</a> <a id="673" class="Function">flipOrder</a><a id="682" class="Symbol">)</a>
|
|
|
|
<a id="685" class="Keyword">module</a> <a id="692" href="Algebra.Construct.NaturalChoice.MaxOp.html" class="Module">Algebra.Construct.NaturalChoice.MaxOp</a>
|
|
<a id="732" class="Symbol">{</a><a id="733" href="Algebra.Construct.NaturalChoice.MaxOp.html#733" class="Bound">a</a> <a id="735" href="Algebra.Construct.NaturalChoice.MaxOp.html#735" class="Bound">ℓ₁</a> <a id="738" href="Algebra.Construct.NaturalChoice.MaxOp.html#738" class="Bound">ℓ₂</a><a id="740" class="Symbol">}</a> <a id="742" class="Symbol">{</a><a id="743" href="Algebra.Construct.NaturalChoice.MaxOp.html#743" class="Bound">O</a> <a id="745" class="Symbol">:</a> <a id="747" href="Relation.Binary.Bundles.html#2842" class="Record">TotalPreorder</a> <a id="761" href="Algebra.Construct.NaturalChoice.MaxOp.html#733" class="Bound">a</a> <a id="763" href="Algebra.Construct.NaturalChoice.MaxOp.html#735" class="Bound">ℓ₁</a> <a id="766" href="Algebra.Construct.NaturalChoice.MaxOp.html#738" class="Bound">ℓ₂</a><a id="768" class="Symbol">}</a> <a id="770" class="Symbol">(</a><a id="771" href="Algebra.Construct.NaturalChoice.MaxOp.html#771" class="Bound">maxOp</a> <a id="777" class="Symbol">:</a> <a id="779" href="Algebra.Construct.NaturalChoice.Base.html#1191" class="Record">MaxOperator</a> <a id="791" href="Algebra.Construct.NaturalChoice.MaxOp.html#743" class="Bound">O</a><a id="792" class="Symbol">)</a>
|
|
<a id="796" class="Keyword">where</a>
|
|
|
|
<a id="803" class="Keyword">open</a> <a id="808" href="Relation.Binary.Bundles.html#2842" class="Module">TotalPreorder</a> <a id="822" href="Algebra.Construct.NaturalChoice.MaxOp.html#743" class="Bound">O</a> <a id="824" class="Keyword">renaming</a> <a id="833" class="Symbol">(</a><a id="834" href="Relation.Binary.Bundles.html#2926" class="Field">Carrier</a> <a id="842" class="Symbol">to</a> <a id="845" class="Field">A</a><a id="846" class="Symbol">;</a> <a id="848" href="Relation.Binary.Bundles.html#3020" class="Field Operator">_≲_</a> <a id="852" class="Symbol">to</a> <a id="855" class="Field Operator">_≤_</a><a id="858" class="Symbol">)</a>
|
|
<a id="860" class="Keyword">open</a> <a id="865" href="Algebra.Construct.NaturalChoice.Base.html#1191" class="Module">MaxOperator</a> <a id="877" href="Algebra.Construct.NaturalChoice.MaxOp.html#771" class="Bound">maxOp</a>
|
|
|
|
<a id="884" class="Comment">-- Max is just min with a flipped order</a>
|
|
|
|
<a id="925" class="Keyword">private</a>
|
|
<a id="935" class="Keyword">module</a> <a id="Min"></a><a id="942" href="Algebra.Construct.NaturalChoice.MaxOp.html#942" class="Module">Min</a> <a id="946" class="Symbol">=</a> <a id="948" href="Algebra.Construct.NaturalChoice.MinOp.html" class="Module">MinOp</a> <a id="954" class="Symbol">(</a><a id="955" href="Algebra.Construct.NaturalChoice.Base.html#1660" class="Function">MaxOp⇒MinOp</a> <a id="967" href="Algebra.Construct.NaturalChoice.MaxOp.html#771" class="Bound">maxOp</a><a id="972" class="Symbol">)</a>
|
|
|
|
<a id="975" class="Keyword">open</a> <a id="980" href="Algebra.Construct.NaturalChoice.MaxOp.html#942" class="Module">Min</a> <a id="984" class="Keyword">public</a>
|
|
<a id="993" class="Keyword">using</a> <a id="999" class="Symbol">()</a>
|
|
<a id="1004" class="Keyword">renaming</a>
|
|
<a id="1015" class="Symbol">(</a> <a id="1017" href="Algebra.Construct.NaturalChoice.MinOp.html#2418" class="Function">⊓-cong</a> <a id="1030" class="Symbol">to</a> <a id="1034" class="Function">⊔-cong</a>
|
|
<a id="1043" class="Symbol">;</a> <a id="1045" href="Algebra.Construct.NaturalChoice.MinOp.html#2241" class="Function">⊓-congʳ</a> <a id="1058" class="Symbol">to</a> <a id="1062" class="Function">⊔-congʳ</a>
|
|
<a id="1072" class="Symbol">;</a> <a id="1074" href="Algebra.Construct.NaturalChoice.MinOp.html#1918" class="Function">⊓-congˡ</a> <a id="1087" class="Symbol">to</a> <a id="1091" class="Function">⊔-congˡ</a>
|
|
<a id="1101" class="Symbol">;</a> <a id="1103" href="Algebra.Construct.NaturalChoice.MinOp.html#3166" class="Function">⊓-idem</a> <a id="1116" class="Symbol">to</a> <a id="1120" class="Function">⊔-idem</a>
|
|
<a id="1129" class="Symbol">;</a> <a id="1131" href="Algebra.Construct.NaturalChoice.MinOp.html#3223" class="Function">⊓-sel</a> <a id="1144" class="Symbol">to</a> <a id="1148" class="Function">⊔-sel</a>
|
|
<a id="1156" class="Symbol">;</a> <a id="1158" href="Algebra.Construct.NaturalChoice.MinOp.html#2531" class="Function">⊓-assoc</a> <a id="1171" class="Symbol">to</a> <a id="1175" class="Function">⊔-assoc</a>
|
|
<a id="1185" class="Symbol">;</a> <a id="1187" href="Algebra.Construct.NaturalChoice.MinOp.html#1732" class="Function">⊓-comm</a> <a id="1200" class="Symbol">to</a> <a id="1204" class="Function">⊔-comm</a>
|
|
|
|
<a id="1214" class="Symbol">;</a> <a id="1216" href="Algebra.Construct.NaturalChoice.MinOp.html#3298" class="Function">⊓-identityˡ</a> <a id="1229" class="Symbol">to</a> <a id="1233" class="Function">⊔-identityˡ</a>
|
|
<a id="1247" class="Symbol">;</a> <a id="1249" href="Algebra.Construct.NaturalChoice.MinOp.html#3390" class="Function">⊓-identityʳ</a> <a id="1262" class="Symbol">to</a> <a id="1266" class="Function">⊔-identityʳ</a>
|
|
<a id="1280" class="Symbol">;</a> <a id="1282" href="Algebra.Construct.NaturalChoice.MinOp.html#3483" class="Function">⊓-identity</a> <a id="1295" class="Symbol">to</a> <a id="1299" class="Function">⊔-identity</a>
|
|
<a id="1312" class="Symbol">;</a> <a id="1314" href="Algebra.Construct.NaturalChoice.MinOp.html#3587" class="Function">⊓-zeroˡ</a> <a id="1327" class="Symbol">to</a> <a id="1331" class="Function">⊔-zeroˡ</a>
|
|
<a id="1341" class="Symbol">;</a> <a id="1343" href="Algebra.Construct.NaturalChoice.MinOp.html#3667" class="Function">⊓-zeroʳ</a> <a id="1356" class="Symbol">to</a> <a id="1360" class="Function">⊔-zeroʳ</a>
|
|
<a id="1370" class="Symbol">;</a> <a id="1372" href="Algebra.Construct.NaturalChoice.MinOp.html#3748" class="Function">⊓-zero</a> <a id="1385" class="Symbol">to</a> <a id="1389" class="Function">⊔-zero</a>
|
|
|
|
<a id="1399" class="Symbol">;</a> <a id="1401" href="Algebra.Construct.NaturalChoice.MinOp.html#3920" class="Function">⊓-isMagma</a> <a id="1427" class="Symbol">to</a> <a id="1431" class="Function">⊔-isMagma</a>
|
|
<a id="1443" class="Symbol">;</a> <a id="1445" href="Algebra.Construct.NaturalChoice.MinOp.html#4029" class="Function">⊓-isSemigroup</a> <a id="1471" class="Symbol">to</a> <a id="1475" class="Function">⊔-isSemigroup</a>
|
|
<a id="1491" class="Symbol">;</a> <a id="1493" href="Algebra.Construct.NaturalChoice.MinOp.html#4237" class="Function">⊓-isCommutativeSemigroup</a> <a id="1519" class="Symbol">to</a> <a id="1523" class="Function">⊔-isCommutativeSemigroup</a>
|
|
<a id="1550" class="Symbol">;</a> <a id="1552" href="Algebra.Construct.NaturalChoice.MinOp.html#4135" class="Function">⊓-isBand</a> <a id="1578" class="Symbol">to</a> <a id="1582" class="Function">⊔-isBand</a>
|
|
<a id="1593" class="Symbol">;</a> <a id="1595" href="Algebra.Construct.NaturalChoice.MinOp.html#4506" class="Function">⊓-isMonoid</a> <a id="1621" class="Symbol">to</a> <a id="1625" class="Function">⊔-isMonoid</a>
|
|
<a id="1638" class="Symbol">;</a> <a id="1640" href="Algebra.Construct.NaturalChoice.MinOp.html#4387" class="Function">⊓-isSelectiveMagma</a> <a id="1666" class="Symbol">to</a> <a id="1670" class="Function">⊔-isSelectiveMagma</a>
|
|
|
|
<a id="1692" class="Symbol">;</a> <a id="1694" href="Algebra.Construct.NaturalChoice.MinOp.html#4899" class="Function">⊓-magma</a> <a id="1720" class="Symbol">to</a> <a id="1724" class="Function">⊔-magma</a>
|
|
<a id="1734" class="Symbol">;</a> <a id="1736" href="Algebra.Construct.NaturalChoice.MinOp.html#4965" class="Function">⊓-semigroup</a> <a id="1762" class="Symbol">to</a> <a id="1766" class="Function">⊔-semigroup</a>
|
|
<a id="1780" class="Symbol">;</a> <a id="1782" href="Algebra.Construct.NaturalChoice.MinOp.html#5112" class="Function">⊓-commutativeSemigroup</a> <a id="1808" class="Symbol">to</a> <a id="1812" class="Function">⊔-commutativeSemigroup</a>
|
|
<a id="1837" class="Symbol">;</a> <a id="1839" href="Algebra.Construct.NaturalChoice.MinOp.html#5051" class="Function">⊓-band</a> <a id="1865" class="Symbol">to</a> <a id="1869" class="Function">⊔-band</a>
|
|
<a id="1878" class="Symbol">;</a> <a id="1880" href="Algebra.Construct.NaturalChoice.MinOp.html#5364" class="Function">⊓-monoid</a> <a id="1906" class="Symbol">to</a> <a id="1910" class="Function">⊔-monoid</a>
|
|
<a id="1921" class="Symbol">;</a> <a id="1923" href="Algebra.Construct.NaturalChoice.MinOp.html#5253" class="Function">⊓-selectiveMagma</a> <a id="1949" class="Symbol">to</a> <a id="1953" class="Function">⊔-selectiveMagma</a>
|
|
|
|
<a id="1973" class="Symbol">;</a> <a id="1975" href="Algebra.Construct.NaturalChoice.MinOp.html#5732" class="Function">x⊓y≈y⇒y≤x</a> <a id="1986" class="Symbol">to</a> <a id="1989" class="Function">x⊔y≈y⇒x≤y</a>
|
|
<a id="2001" class="Symbol">;</a> <a id="2003" href="Algebra.Construct.NaturalChoice.MinOp.html#5562" class="Function">x⊓y≈x⇒x≤y</a> <a id="2014" class="Symbol">to</a> <a id="2017" class="Function">x⊔y≈x⇒y≤x</a>
|
|
<a id="2029" class="Symbol">;</a> <a id="2031" href="Algebra.Construct.NaturalChoice.MinOp.html#1304" class="Function">x⊓y≤x</a> <a id="2042" class="Symbol">to</a> <a id="2045" class="Function">x≤x⊔y</a>
|
|
<a id="2053" class="Symbol">;</a> <a id="2055" href="Algebra.Construct.NaturalChoice.MinOp.html#1469" class="Function">x⊓y≤y</a> <a id="2066" class="Symbol">to</a> <a id="2069" class="Function">x≤y⊔x</a>
|
|
<a id="2077" class="Symbol">;</a> <a id="2079" href="Algebra.Construct.NaturalChoice.MinOp.html#6307" class="Function">x≤y⇒x⊓z≤y</a> <a id="2090" class="Symbol">to</a> <a id="2093" class="Function">x≤y⇒x≤y⊔z</a>
|
|
<a id="2105" class="Symbol">;</a> <a id="2107" href="Algebra.Construct.NaturalChoice.MinOp.html#6390" class="Function">x≤y⇒z⊓x≤y</a> <a id="2118" class="Symbol">to</a> <a id="2121" class="Function">x≤y⇒x≤z⊔y</a>
|
|
<a id="2133" class="Symbol">;</a> <a id="2135" href="Algebra.Construct.NaturalChoice.MinOp.html#6473" class="Function">x≤y⊓z⇒x≤y</a> <a id="2146" class="Symbol">to</a> <a id="2149" class="Function">x⊔y≤z⇒x≤z</a>
|
|
<a id="2161" class="Symbol">;</a> <a id="2163" href="Algebra.Construct.NaturalChoice.MinOp.html#6562" class="Function">x≤y⊓z⇒x≤z</a> <a id="2174" class="Symbol">to</a> <a id="2177" class="Function">x⊔y≤z⇒y≤z</a>
|
|
|
|
<a id="2190" class="Symbol">;</a> <a id="2192" href="Algebra.Construct.NaturalChoice.MinOp.html#7054" class="Function">⊓-glb</a> <a id="2211" class="Symbol">to</a> <a id="2215" class="Function">⊔-lub</a>
|
|
<a id="2223" class="Symbol">;</a> <a id="2225" href="Algebra.Construct.NaturalChoice.MinOp.html#7161" class="Function">⊓-triangulate</a> <a id="2244" class="Symbol">to</a> <a id="2248" class="Function">⊔-triangulate</a>
|
|
<a id="2264" class="Symbol">;</a> <a id="2266" href="Algebra.Construct.NaturalChoice.MinOp.html#6651" class="Function">⊓-mono-≤</a> <a id="2285" class="Symbol">to</a> <a id="2289" class="Function">⊔-mono-≤</a>
|
|
<a id="2300" class="Symbol">;</a> <a id="2302" href="Algebra.Construct.NaturalChoice.MinOp.html#6878" class="Function">⊓-monoˡ-≤</a> <a id="2321" class="Symbol">to</a> <a id="2325" class="Function">⊔-monoˡ-≤</a>
|
|
<a id="2337" class="Symbol">;</a> <a id="2339" href="Algebra.Construct.NaturalChoice.MinOp.html#6966" class="Function">⊓-monoʳ-≤</a> <a id="2358" class="Symbol">to</a> <a id="2362" class="Function">⊔-monoʳ-≤</a>
|
|
<a id="2374" class="Symbol">)</a>
|
|
|
|
<a id="mono-≤-distrib-⊔"></a><a id="2377" href="Algebra.Construct.NaturalChoice.MaxOp.html#2377" class="Function">mono-≤-distrib-⊔</a> <a id="2394" class="Symbol">:</a> <a id="2396" class="Symbol">∀</a> <a id="2398" class="Symbol">{</a><a id="2399" href="Algebra.Construct.NaturalChoice.MaxOp.html#2399" class="Bound">f</a><a id="2400" class="Symbol">}</a> <a id="2402" class="Symbol">→</a> <a id="2404" href="Algebra.Construct.NaturalChoice.MaxOp.html#2399" class="Bound">f</a> <a id="2406" href="Relation.Binary.Core.html#1577" class="Function Operator">Preserves</a> <a id="2416" href="Relation.Binary.Bundles.html#2954" class="Function Operator">_≈_</a> <a id="2420" href="Relation.Binary.Core.html#1577" class="Function Operator">⟶</a> <a id="2422" href="Relation.Binary.Bundles.html#2954" class="Function Operator">_≈_</a> <a id="2426" class="Symbol">→</a> <a id="2428" href="Algebra.Construct.NaturalChoice.MaxOp.html#2399" class="Bound">f</a> <a id="2430" href="Relation.Binary.Core.html#1577" class="Function Operator">Preserves</a> <a id="2440" href="Algebra.Construct.NaturalChoice.MaxOp.html#855" class="Function Operator">_≤_</a> <a id="2444" href="Relation.Binary.Core.html#1577" class="Function Operator">⟶</a> <a id="2446" href="Algebra.Construct.NaturalChoice.MaxOp.html#855" class="Function Operator">_≤_</a> <a id="2450" class="Symbol">→</a>
|
|
<a id="2471" class="Symbol">∀</a> <a id="2473" href="Algebra.Construct.NaturalChoice.MaxOp.html#2473" class="Bound">x</a> <a id="2475" href="Algebra.Construct.NaturalChoice.MaxOp.html#2475" class="Bound">y</a> <a id="2477" class="Symbol">→</a> <a id="2479" href="Algebra.Construct.NaturalChoice.MaxOp.html#2399" class="Bound">f</a> <a id="2481" class="Symbol">(</a><a id="2482" href="Algebra.Construct.NaturalChoice.MaxOp.html#2473" class="Bound">x</a> <a id="2484" href="Algebra.Construct.NaturalChoice.Base.html#1266" class="Field Operator">⊔</a> <a id="2486" href="Algebra.Construct.NaturalChoice.MaxOp.html#2475" class="Bound">y</a><a id="2487" class="Symbol">)</a> <a id="2489" href="Relation.Binary.Bundles.html#2954" class="Function Operator">≈</a> <a id="2491" href="Algebra.Construct.NaturalChoice.MaxOp.html#2399" class="Bound">f</a> <a id="2493" href="Algebra.Construct.NaturalChoice.MaxOp.html#2473" class="Bound">x</a> <a id="2495" href="Algebra.Construct.NaturalChoice.Base.html#1266" class="Field Operator">⊔</a> <a id="2497" href="Algebra.Construct.NaturalChoice.MaxOp.html#2399" class="Bound">f</a> <a id="2499" href="Algebra.Construct.NaturalChoice.MaxOp.html#2475" class="Bound">y</a>
|
|
<a id="2501" href="Algebra.Construct.NaturalChoice.MaxOp.html#2377" class="Function">mono-≤-distrib-⊔</a> <a id="2518" href="Algebra.Construct.NaturalChoice.MaxOp.html#2518" class="Bound">cong</a> <a id="2523" href="Algebra.Construct.NaturalChoice.MaxOp.html#2523" class="Bound">pres</a> <a id="2528" class="Symbol">=</a> <a id="2530" href="Algebra.Construct.NaturalChoice.MinOp.html#5882" class="Function">Min.mono-≤-distrib-⊓</a> <a id="2551" href="Algebra.Construct.NaturalChoice.MaxOp.html#2518" class="Bound">cong</a> <a id="2556" href="Algebra.Construct.NaturalChoice.MaxOp.html#2523" class="Bound">pres</a>
|
|
</pre></body></html> |