mirror of
https://git8.cs.fau.de/theses/bsc-leon-vatthauer.git
synced 2024-05-31 07:28:34 +02:00
83 lines
18 KiB
HTML
83 lines
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 order.</a>
|
||
|
<a id="178" class="Comment">------------------------------------------------------------------------</a>
|
||
|
|
||
|
<a id="252" class="Symbol">{-#</a> <a id="256" class="Keyword">OPTIONS</a> <a id="264" class="Pragma">--cubical-compatible</a> <a id="285" class="Pragma">--safe</a> <a id="292" class="Symbol">#-}</a>
|
||
|
|
||
|
<a id="297" class="Keyword">open</a> <a id="302" class="Keyword">import</a> <a id="309" href="Algebra.Core.html" class="Module">Algebra.Core</a>
|
||
|
<a id="322" class="Keyword">open</a> <a id="327" class="Keyword">import</a> <a id="334" href="Algebra.Construct.NaturalChoice.Base.html" class="Module">Algebra.Construct.NaturalChoice.Base</a>
|
||
|
<a id="371" class="Keyword">import</a> <a id="378" href="Algebra.Construct.NaturalChoice.MinOp.html" class="Module">Algebra.Construct.NaturalChoice.MinOp</a> <a id="416" class="Symbol">as</a> <a id="419" class="Module">MinOp</a>
|
||
|
<a id="425" class="Keyword">open</a> <a id="430" class="Keyword">import</a> <a id="437" href="Function.Base.html" class="Module">Function.Base</a> <a id="451" class="Keyword">using</a> <a id="457" class="Symbol">(</a><a id="458" href="Function.Base.html#1563" class="Function">flip</a><a id="462" class="Symbol">)</a>
|
||
|
<a id="464" class="Keyword">open</a> <a id="469" class="Keyword">import</a> <a id="476" href="Relation.Binary.html" class="Module">Relation.Binary</a>
|
||
|
<a id="492" class="Keyword">open</a> <a id="497" class="Keyword">import</a> <a id="504" href="Relation.Binary.Construct.Converse.html" class="Module">Relation.Binary.Construct.Converse</a> <a id="539" class="Keyword">using</a> <a id="545" class="Symbol">()</a>
|
||
|
<a id="550" class="Keyword">renaming</a> <a id="559" class="Symbol">(</a><a id="560" href="Relation.Binary.Construct.Converse.html#5145" class="Function">totalPreorder</a> <a id="574" class="Symbol">to</a> <a id="577" class="Function">flipOrder</a><a id="586" class="Symbol">)</a>
|
||
|
|
||
|
<a id="589" class="Keyword">module</a> <a id="596" href="Algebra.Construct.NaturalChoice.MaxOp.html" class="Module">Algebra.Construct.NaturalChoice.MaxOp</a>
|
||
|
<a id="636" class="Symbol">{</a><a id="637" href="Algebra.Construct.NaturalChoice.MaxOp.html#637" class="Bound">a</a> <a id="639" href="Algebra.Construct.NaturalChoice.MaxOp.html#639" class="Bound">ℓ₁</a> <a id="642" href="Algebra.Construct.NaturalChoice.MaxOp.html#642" class="Bound">ℓ₂</a><a id="644" class="Symbol">}</a> <a id="646" class="Symbol">{</a><a id="647" href="Algebra.Construct.NaturalChoice.MaxOp.html#647" class="Bound">O</a> <a id="649" class="Symbol">:</a> <a id="651" href="Relation.Binary.Bundles.html#2384" class="Record">TotalPreorder</a> <a id="665" href="Algebra.Construct.NaturalChoice.MaxOp.html#637" class="Bound">a</a> <a id="667" href="Algebra.Construct.NaturalChoice.MaxOp.html#639" class="Bound">ℓ₁</a> <a id="670" href="Algebra.Construct.NaturalChoice.MaxOp.html#642" class="Bound">ℓ₂</a><a id="672" class="Symbol">}</a> <a id="674" class="Symbol">(</a><a id="675" href="Algebra.Construct.NaturalChoice.MaxOp.html#675" class="Bound">maxOp</a> <a id="681" class="Symbol">:</a> <a id="683" href="Algebra.Construct.NaturalChoice.Base.html#1156" class="Record">MaxOperator</a> <a id="695" href="Algebra.Construct.NaturalChoice.MaxOp.html#647" class="Bound">O</a><a id="696" class="Symbol">)</a>
|
||
|
<a id="700" class="Keyword">where</a>
|
||
|
|
||
|
<a id="707" class="Keyword">open</a> <a id="712" href="Relation.Binary.Bundles.html#2384" class="Module">TotalPreorder</a> <a id="726" href="Algebra.Construct.NaturalChoice.MaxOp.html#647" class="Bound">O</a> <a id="728" class="Keyword">renaming</a> <a id="737" class="Symbol">(</a><a id="738" href="Relation.Binary.Bundles.html#2468" class="Field">Carrier</a> <a id="746" class="Symbol">to</a> <a id="749" class="Field">A</a><a id="750" class="Symbol">;</a> <a id="752" href="Relation.Binary.Bundles.html#2562" class="Field Operator">_≲_</a> <a id="756" class="Symbol">to</a> <a id="759" class="Field Operator">_≤_</a><a id="762" class="Symbol">)</a>
|
||
|
<a id="764" class="Keyword">open</a> <a id="769" href="Algebra.Construct.NaturalChoice.Base.html#1156" class="Module">MaxOperator</a> <a id="781" href="Algebra.Construct.NaturalChoice.MaxOp.html#675" class="Bound">maxOp</a>
|
||
|
|
||
|
<a id="788" class="Comment">-- Max is just min with a flipped order</a>
|
||
|
|
||
|
<a id="829" class="Keyword">private</a>
|
||
|
<a id="839" class="Keyword">module</a> <a id="Min"></a><a id="846" href="Algebra.Construct.NaturalChoice.MaxOp.html#846" class="Module">Min</a> <a id="850" class="Symbol">=</a> <a id="852" href="Algebra.Construct.NaturalChoice.MinOp.html" class="Module">MinOp</a> <a id="858" class="Symbol">(</a><a id="859" href="Algebra.Construct.NaturalChoice.Base.html#1625" class="Function">MaxOp⇒MinOp</a> <a id="871" href="Algebra.Construct.NaturalChoice.MaxOp.html#675" class="Bound">maxOp</a><a id="876" class="Symbol">)</a>
|
||
|
|
||
|
<a id="879" class="Keyword">open</a> <a id="884" href="Algebra.Construct.NaturalChoice.MaxOp.html#846" class="Module">Min</a> <a id="888" class="Keyword">public</a>
|
||
|
<a id="897" class="Keyword">using</a> <a id="903" class="Symbol">()</a>
|
||
|
<a id="908" class="Keyword">renaming</a>
|
||
|
<a id="919" class="Symbol">(</a> <a id="921" href="Algebra.Construct.NaturalChoice.MinOp.html#2242" class="Function">⊓-cong</a> <a id="934" class="Symbol">to</a> <a id="938" class="Function">⊔-cong</a>
|
||
|
<a id="947" class="Symbol">;</a> <a id="949" href="Algebra.Construct.NaturalChoice.MinOp.html#2064" class="Function">⊓-congʳ</a> <a id="962" class="Symbol">to</a> <a id="966" class="Function">⊔-congʳ</a>
|
||
|
<a id="976" class="Symbol">;</a> <a id="978" href="Algebra.Construct.NaturalChoice.MinOp.html#1739" class="Function">⊓-congˡ</a> <a id="991" class="Symbol">to</a> <a id="995" class="Function">⊔-congˡ</a>
|
||
|
<a id="1005" class="Symbol">;</a> <a id="1007" href="Algebra.Construct.NaturalChoice.MinOp.html#2994" class="Function">⊓-idem</a> <a id="1020" class="Symbol">to</a> <a id="1024" class="Function">⊔-idem</a>
|
||
|
<a id="1033" class="Symbol">;</a> <a id="1035" href="Algebra.Construct.NaturalChoice.MinOp.html#3051" class="Function">⊓-sel</a> <a id="1048" class="Symbol">to</a> <a id="1052" class="Function">⊔-sel</a>
|
||
|
<a id="1060" class="Symbol">;</a> <a id="1062" href="Algebra.Construct.NaturalChoice.MinOp.html#2355" class="Function">⊓-assoc</a> <a id="1075" class="Symbol">to</a> <a id="1079" class="Function">⊔-assoc</a>
|
||
|
<a id="1089" class="Symbol">;</a> <a id="1091" href="Algebra.Construct.NaturalChoice.MinOp.html#1553" class="Function">⊓-comm</a> <a id="1104" class="Symbol">to</a> <a id="1108" class="Function">⊔-comm</a>
|
||
|
|
||
|
<a id="1118" class="Symbol">;</a> <a id="1120" href="Algebra.Construct.NaturalChoice.MinOp.html#3126" class="Function">⊓-identityˡ</a> <a id="1133" class="Symbol">to</a> <a id="1137" class="Function">⊔-identityˡ</a>
|
||
|
<a id="1151" class="Symbol">;</a> <a id="1153" href="Algebra.Construct.NaturalChoice.MinOp.html#3218" class="Function">⊓-identityʳ</a> <a id="1166" class="Symbol">to</a> <a id="1170" class="Function">⊔-identityʳ</a>
|
||
|
<a id="1184" class="Symbol">;</a> <a id="1186" href="Algebra.Construct.NaturalChoice.MinOp.html#3311" class="Function">⊓-identity</a> <a id="1199" class="Symbol">to</a> <a id="1203" class="Function">⊔-identity</a>
|
||
|
<a id="1216" class="Symbol">;</a> <a id="1218" href="Algebra.Construct.NaturalChoice.MinOp.html#3415" class="Function">⊓-zeroˡ</a> <a id="1231" class="Symbol">to</a> <a id="1235" class="Function">⊔-zeroˡ</a>
|
||
|
<a id="1245" class="Symbol">;</a> <a id="1247" href="Algebra.Construct.NaturalChoice.MinOp.html#3495" class="Function">⊓-zeroʳ</a> <a id="1260" class="Symbol">to</a> <a id="1264" class="Function">⊔-zeroʳ</a>
|
||
|
<a id="1274" class="Symbol">;</a> <a id="1276" href="Algebra.Construct.NaturalChoice.MinOp.html#3576" class="Function">⊓-zero</a> <a id="1289" class="Symbol">to</a> <a id="1293" class="Function">⊔-zero</a>
|
||
|
|
||
|
<a id="1303" class="Symbol">;</a> <a id="1305" href="Algebra.Construct.NaturalChoice.MinOp.html#3748" class="Function">⊓-isMagma</a> <a id="1331" class="Symbol">to</a> <a id="1335" class="Function">⊔-isMagma</a>
|
||
|
<a id="1347" class="Symbol">;</a> <a id="1349" href="Algebra.Construct.NaturalChoice.MinOp.html#3857" class="Function">⊓-isSemigroup</a> <a id="1375" class="Symbol">to</a> <a id="1379" class="Function">⊔-isSemigroup</a>
|
||
|
<a id="1395" class="Symbol">;</a> <a id="1397" href="Algebra.Construct.NaturalChoice.MinOp.html#4065" class="Function">⊓-isCommutativeSemigroup</a> <a id="1423" class="Symbol">to</a> <a id="1427" class="Function">⊔-isCommutativeSemigroup</a>
|
||
|
<a id="1454" class="Symbol">;</a> <a id="1456" href="Algebra.Construct.NaturalChoice.MinOp.html#3963" class="Function">⊓-isBand</a> <a id="1482" class="Symbol">to</a> <a id="1486" class="Function">⊔-isBand</a>
|
||
|
<a id="1497" class="Symbol">;</a> <a id="1499" href="Algebra.Construct.NaturalChoice.MinOp.html#4215" class="Function">⊓-isSemilattice</a> <a id="1525" class="Symbol">to</a> <a id="1529" class="Function">⊔-isSemilattice</a>
|
||
|
<a id="1547" class="Symbol">;</a> <a id="1549" href="Algebra.Construct.NaturalChoice.MinOp.html#4442" class="Function">⊓-isMonoid</a> <a id="1575" class="Symbol">to</a> <a id="1579" class="Function">⊔-isMonoid</a>
|
||
|
<a id="1592" class="Symbol">;</a> <a id="1594" href="Algebra.Construct.NaturalChoice.MinOp.html#4323" class="Function">⊓-isSelectiveMagma</a> <a id="1620" class="Symbol">to</a> <a id="1624" class="Function">⊔-isSelectiveMagma</a>
|
||
|
|
||
|
<a id="1646" class="Symbol">;</a> <a id="1648" href="Algebra.Construct.NaturalChoice.MinOp.html#4835" class="Function">⊓-magma</a> <a id="1674" class="Symbol">to</a> <a id="1678" class="Function">⊔-magma</a>
|
||
|
<a id="1688" class="Symbol">;</a> <a id="1690" href="Algebra.Construct.NaturalChoice.MinOp.html#4901" class="Function">⊓-semigroup</a> <a id="1716" class="Symbol">to</a> <a id="1720" class="Function">⊔-semigroup</a>
|
||
|
<a id="1734" class="Symbol">;</a> <a id="1736" href="Algebra.Construct.NaturalChoice.MinOp.html#5048" class="Function">⊓-commutativeSemigroup</a> <a id="1762" class="Symbol">to</a> <a id="1766" class="Function">⊔-commutativeSemigroup</a>
|
||
|
<a id="1791" class="Symbol">;</a> <a id="1793" href="Algebra.Construct.NaturalChoice.MinOp.html#4987" class="Function">⊓-band</a> <a id="1819" class="Symbol">to</a> <a id="1823" class="Function">⊔-band</a>
|
||
|
<a id="1832" class="Symbol">;</a> <a id="1834" href="Algebra.Construct.NaturalChoice.MinOp.html#5189" class="Function">⊓-semilattice</a> <a id="1860" class="Symbol">to</a> <a id="1864" class="Function">⊔-semilattice</a>
|
||
|
<a id="1880" class="Symbol">;</a> <a id="1882" href="Algebra.Construct.NaturalChoice.MinOp.html#5396" class="Function">⊓-monoid</a> <a id="1908" class="Symbol">to</a> <a id="1912" class="Function">⊔-monoid</a>
|
||
|
<a id="1923" class="Symbol">;</a> <a id="1925" href="Algebra.Construct.NaturalChoice.MinOp.html#5285" class="Function">⊓-selectiveMagma</a> <a id="1951" class="Symbol">to</a> <a id="1955" class="Function">⊔-selectiveMagma</a>
|
||
|
|
||
|
<a id="1975" class="Symbol">;</a> <a id="1977" href="Algebra.Construct.NaturalChoice.MinOp.html#5764" class="Function">x⊓y≈y⇒y≤x</a> <a id="1988" class="Symbol">to</a> <a id="1991" class="Function">x⊔y≈y⇒x≤y</a>
|
||
|
<a id="2003" class="Symbol">;</a> <a id="2005" href="Algebra.Construct.NaturalChoice.MinOp.html#5594" class="Function">x⊓y≈x⇒x≤y</a> <a id="2016" class="Symbol">to</a> <a id="2019" class="Function">x⊔y≈x⇒y≤x</a>
|
||
|
<a id="2031" class="Symbol">;</a> <a id="2033" href="Algebra.Construct.NaturalChoice.MinOp.html#1125" class="Function">x⊓y≤x</a> <a id="2044" class="Symbol">to</a> <a id="2047" class="Function">x≤x⊔y</a>
|
||
|
<a id="2055" class="Symbol">;</a> <a id="2057" href="Algebra.Construct.NaturalChoice.MinOp.html#1290" class="Function">x⊓y≤y</a> <a id="2068" class="Symbol">to</a> <a id="2071" class="Function">x≤y⊔x</a>
|
||
|
<a id="2079" class="Symbol">;</a> <a id="2081" href="Algebra.Construct.NaturalChoice.MinOp.html#6341" class="Function">x≤y⇒x⊓z≤y</a> <a id="2092" class="Symbol">to</a> <a id="2095" class="Function">x≤y⇒x≤y⊔z</a>
|
||
|
<a id="2107" class="Symbol">;</a> <a id="2109" href="Algebra.Construct.NaturalChoice.MinOp.html#6424" class="Function">x≤y⇒z⊓x≤y</a> <a id="2120" class="Symbol">to</a> <a id="2123" class="Function">x≤y⇒x≤z⊔y</a>
|
||
|
<a id="2135" class="Symbol">;</a> <a id="2137" href="Algebra.Construct.NaturalChoice.MinOp.html#6507" class="Function">x≤y⊓z⇒x≤y</a> <a id="2148" class="Symbol">to</a> <a id="2151" class="Function">x⊔y≤z⇒x≤z</a>
|
||
|
<a id="2163" class="Symbol">;</a> <a id="2165" href="Algebra.Construct.NaturalChoice.MinOp.html#6596" class="Function">x≤y⊓z⇒x≤z</a> <a id="2176" class="Symbol">to</a> <a id="2179" class="Function">x⊔y≤z⇒y≤z</a>
|
||
|
|
||
|
<a id="2192" class="Symbol">;</a> <a id="2194" href="Algebra.Construct.NaturalChoice.MinOp.html#7088" class="Function">⊓-glb</a> <a id="2213" class="Symbol">to</a> <a id="2217" class="Function">⊔-lub</a>
|
||
|
<a id="2225" class="Symbol">;</a> <a id="2227" href="Algebra.Construct.NaturalChoice.MinOp.html#7195" class="Function">⊓-triangulate</a> <a id="2246" class="Symbol">to</a> <a id="2250" class="Function">⊔-triangulate</a>
|
||
|
<a id="2266" class="Symbol">;</a> <a id="2268" href="Algebra.Construct.NaturalChoice.MinOp.html#6685" class="Function">⊓-mono-≤</a> <a id="2287" class="Symbol">to</a> <a id="2291" class="Function">⊔-mono-≤</a>
|
||
|
<a id="2302" class="Symbol">;</a> <a id="2304" href="Algebra.Construct.NaturalChoice.MinOp.html#6912" class="Function">⊓-monoˡ-≤</a> <a id="2323" class="Symbol">to</a> <a id="2327" class="Function">⊔-monoˡ-≤</a>
|
||
|
<a id="2339" class="Symbol">;</a> <a id="2341" href="Algebra.Construct.NaturalChoice.MinOp.html#7000" class="Function">⊓-monoʳ-≤</a> <a id="2360" class="Symbol">to</a> <a id="2364" class="Function">⊔-monoʳ-≤</a>
|
||
|
<a id="2376" class="Symbol">)</a>
|
||
|
|
||
|
<a id="mono-≤-distrib-⊔"></a><a id="2379" href="Algebra.Construct.NaturalChoice.MaxOp.html#2379" class="Function">mono-≤-distrib-⊔</a> <a id="2396" class="Symbol">:</a> <a id="2398" class="Symbol">∀</a> <a id="2400" class="Symbol">{</a><a id="2401" href="Algebra.Construct.NaturalChoice.MaxOp.html#2401" class="Bound">f</a><a id="2402" class="Symbol">}</a> <a id="2404" class="Symbol">→</a> <a id="2406" href="Algebra.Construct.NaturalChoice.MaxOp.html#2401" class="Bound">f</a> <a id="2408" href="Relation.Binary.Core.html#1572" class="Function Operator">Preserves</a> <a id="2418" href="Relation.Binary.Bundles.html#2496" class="Function Operator">_≈_</a> <a id="2422" href="Relation.Binary.Core.html#1572" class="Function Operator">⟶</a> <a id="2424" href="Relation.Binary.Bundles.html#2496" class="Function Operator">_≈_</a> <a id="2428" class="Symbol">→</a> <a id="2430" href="Algebra.Construct.NaturalChoice.MaxOp.html#2401" class="Bound">f</a> <a id="2432" href="Relation.Binary.Core.html#1572" class="Function Operator">Preserves</a> <a id="2442" href="Algebra.Construct.NaturalChoice.MaxOp.html#759" class="Function Operator">_≤_</a> <a id="2446" href="Relation.Binary.Core.html#1572" class="Function Operator">⟶</a> <a id="2448" href="Algebra.Construct.NaturalChoice.MaxOp.html#759" class="Function Operator">_≤_</a> <a id="2452" class="Symbol">→</a>
|
||
|
<a id="2473" class="Symbol">∀</a> <a id="2475" href="Algebra.Construct.NaturalChoice.MaxOp.html#2475" class="Bound">x</a> <a id="2477" href="Algebra.Construct.NaturalChoice.MaxOp.html#2477" class="Bound">y</a> <a id="2479" class="Symbol">→</a> <a id="2481" href="Algebra.Construct.NaturalChoice.MaxOp.html#2401" class="Bound">f</a> <a id="2483" class="Symbol">(</a><a id="2484" href="Algebra.Construct.NaturalChoice.MaxOp.html#2475" class="Bound">x</a> <a id="2486" href="Algebra.Construct.NaturalChoice.Base.html#1231" class="Field Operator">⊔</a> <a id="2488" href="Algebra.Construct.NaturalChoice.MaxOp.html#2477" class="Bound">y</a><a id="2489" class="Symbol">)</a> <a id="2491" href="Relation.Binary.Bundles.html#2496" class="Function Operator">≈</a> <a id="2493" href="Algebra.Construct.NaturalChoice.MaxOp.html#2401" class="Bound">f</a> <a id="2495" href="Algebra.Construct.NaturalChoice.MaxOp.html#2475" class="Bound">x</a> <a id="2497" href="Algebra.Construct.NaturalChoice.Base.html#1231" class="Field Operator">⊔</a> <a id="2499" href="Algebra.Construct.NaturalChoice.MaxOp.html#2401" class="Bound">f</a> <a id="2501" href="Algebra.Construct.NaturalChoice.MaxOp.html#2477" class="Bound">y</a>
|
||
|
<a id="2503" href="Algebra.Construct.NaturalChoice.MaxOp.html#2379" class="Function">mono-≤-distrib-⊔</a> <a id="2520" href="Algebra.Construct.NaturalChoice.MaxOp.html#2520" class="Bound">cong</a> <a id="2525" href="Algebra.Construct.NaturalChoice.MaxOp.html#2525" class="Bound">pres</a> <a id="2530" class="Symbol">=</a> <a id="2532" href="Algebra.Construct.NaturalChoice.MinOp.html#5914" class="Function">Min.mono-≤-distrib-⊓</a> <a id="2553" href="Algebra.Construct.NaturalChoice.MaxOp.html#2520" class="Bound">cong</a> <a id="2558" href="Algebra.Construct.NaturalChoice.MaxOp.html#2525" class="Bound">pres</a>
|
||
|
</pre></body></html>
|