mirror of
https://git8.cs.fau.de/theses/bsc-leon-vatthauer.git
synced 2024-05-31 07:28:34 +02:00
108 lines
No EOL
32 KiB
HTML
108 lines
No EOL
32 KiB
HTML
<!DOCTYPE HTML>
|
|
<html><head><meta charset="utf-8"><title>Algebra.Consequences.Propositional</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">-- Relations between properties of functions, such as associativity and</a>
|
|
<a id="178" class="Comment">-- commutativity (specialised to propositional equality)</a>
|
|
<a id="235" class="Comment">------------------------------------------------------------------------</a>
|
|
|
|
<a id="309" class="Symbol">{-#</a> <a id="313" class="Keyword">OPTIONS</a> <a id="321" class="Pragma">--cubical-compatible</a> <a id="342" class="Pragma">--safe</a> <a id="349" class="Symbol">#-}</a>
|
|
|
|
<a id="354" class="Keyword">module</a> <a id="361" href="Algebra.Consequences.Propositional.html" class="Module">Algebra.Consequences.Propositional</a>
|
|
<a id="398" class="Symbol">{</a><a id="399" href="Algebra.Consequences.Propositional.html#399" class="Bound">a</a><a id="400" class="Symbol">}</a> <a id="402" class="Symbol">{</a><a id="403" href="Algebra.Consequences.Propositional.html#403" class="Bound">A</a> <a id="405" class="Symbol">:</a> <a id="407" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="411" href="Algebra.Consequences.Propositional.html#399" class="Bound">a</a><a id="412" class="Symbol">}</a> <a id="414" class="Keyword">where</a>
|
|
|
|
<a id="421" class="Keyword">open</a> <a id="426" class="Keyword">import</a> <a id="433" href="Data.Sum.Base.html" class="Module">Data.Sum.Base</a> <a id="447" class="Keyword">using</a> <a id="453" class="Symbol">(</a><a id="454" href="Data.Sum.Base.html#793" class="InductiveConstructor">inj₁</a><a id="458" class="Symbol">;</a> <a id="460" href="Data.Sum.Base.html#818" class="InductiveConstructor">inj₂</a><a id="464" class="Symbol">)</a>
|
|
<a id="466" class="Keyword">open</a> <a id="471" class="Keyword">import</a> <a id="478" href="Relation.Binary.html" class="Module">Relation.Binary</a> <a id="494" class="Keyword">using</a> <a id="500" class="Symbol">(</a><a id="501" href="Relation.Binary.Core.html#891" class="Function">Rel</a><a id="504" class="Symbol">;</a> <a id="506" href="Relation.Binary.Bundles.html#1018" class="Record">Setoid</a><a id="512" class="Symbol">;</a> <a id="514" href="Relation.Binary.Definitions.html#1507" class="Function">Symmetric</a><a id="523" class="Symbol">;</a> <a id="525" href="Relation.Binary.Definitions.html#2593" class="Function">Total</a><a id="530" class="Symbol">)</a>
|
|
<a id="532" class="Keyword">open</a> <a id="537" class="Keyword">import</a> <a id="544" href="Relation.Binary.PropositionalEquality.html" class="Module">Relation.Binary.PropositionalEquality</a>
|
|
<a id="582" class="Keyword">open</a> <a id="587" class="Keyword">import</a> <a id="594" href="Relation.Unary.html" class="Module">Relation.Unary</a> <a id="609" class="Keyword">using</a> <a id="615" class="Symbol">(</a><a id="616" href="Relation.Unary.html#1110" class="Function">Pred</a><a id="620" class="Symbol">)</a>
|
|
|
|
<a id="623" class="Keyword">open</a> <a id="628" class="Keyword">import</a> <a id="635" href="Algebra.Core.html" class="Module">Algebra.Core</a>
|
|
<a id="648" class="Keyword">open</a> <a id="653" class="Keyword">import</a> <a id="660" href="Algebra.Definitions.html" class="Module">Algebra.Definitions</a> <a id="680" class="Symbol">{</a><a id="681" class="Argument">A</a> <a id="683" class="Symbol">=</a> <a id="685" href="Algebra.Consequences.Propositional.html#403" class="Bound">A</a><a id="686" class="Symbol">}</a> <a id="688" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a>
|
|
<a id="692" class="Keyword">import</a> <a id="699" href="Algebra.Consequences.Setoid.html" class="Module">Algebra.Consequences.Setoid</a> <a id="727" class="Symbol">(</a><a id="728" href="Relation.Binary.PropositionalEquality.Properties.html#3981" class="Function">setoid</a> <a id="735" href="Algebra.Consequences.Propositional.html#403" class="Bound">A</a><a id="736" class="Symbol">)</a> as <a id="Base"></a><a id="741" href="Algebra.Consequences.Propositional.html#741" class="Module">Base</a>
|
|
|
|
<a id="747" class="Comment">------------------------------------------------------------------------</a>
|
|
<a id="820" class="Comment">-- Re-export all proofs that don't require congruence or substitutivity</a>
|
|
|
|
<a id="893" class="Keyword">open</a> <a id="898" href="Algebra.Consequences.Propositional.html#741" class="Module">Base</a> <a id="903" class="Keyword">public</a>
|
|
<a id="912" class="Keyword">hiding</a>
|
|
<a id="921" class="Symbol">(</a> <a id="923" href="Algebra.Consequences.Setoid.html#5894" class="Function">assoc+distribʳ+idʳ+invʳ⇒zeˡ</a>
|
|
<a id="953" class="Symbol">;</a> <a id="955" href="Algebra.Consequences.Setoid.html#6636" class="Function">assoc+distribˡ+idʳ+invʳ⇒zeʳ</a>
|
|
<a id="985" class="Symbol">;</a> <a id="987" href="Algebra.Consequences.Setoid.html#3610" class="Function">assoc+id+invʳ⇒invˡ-unique</a>
|
|
<a id="1015" class="Symbol">;</a> <a id="1017" href="Algebra.Consequences.Setoid.html#4097" class="Function">assoc+id+invˡ⇒invʳ-unique</a>
|
|
<a id="1045" class="Symbol">;</a> <a id="1047" href="Algebra.Consequences.Setoid.html#4794" class="Function">comm+distrˡ⇒distrʳ</a>
|
|
<a id="1068" class="Symbol">;</a> <a id="1070" href="Algebra.Consequences.Setoid.html#5081" class="Function">comm+distrʳ⇒distrˡ</a>
|
|
<a id="1091" class="Symbol">;</a> <a id="1093" href="Algebra.Consequences.Setoid.html#5367" class="Function">comm⇒sym[distribˡ]</a>
|
|
<a id="1114" class="Symbol">;</a> <a id="1116" href="Algebra.Consequences.Setoid.html#7611" class="Function">subst+comm⇒sym</a>
|
|
<a id="1133" class="Symbol">;</a> <a id="1135" href="Algebra.Consequences.Setoid.html#7701" class="Function">wlog</a>
|
|
<a id="1142" class="Symbol">;</a> <a id="1144" href="Algebra.Consequences.Base.html#535" class="Function">sel⇒idem</a>
|
|
<a id="1155" class="Symbol">)</a>
|
|
|
|
<a id="1158" class="Comment">------------------------------------------------------------------------</a>
|
|
<a id="1231" class="Comment">-- Group-like structures</a>
|
|
|
|
<a id="1257" class="Keyword">module</a> <a id="1264" href="Algebra.Consequences.Propositional.html#1264" class="Module">_</a> <a id="1266" class="Symbol">{</a><a id="1267" href="Algebra.Consequences.Propositional.html#1267" class="Bound Operator">_•_</a> <a id="1271" href="Algebra.Consequences.Propositional.html#1271" class="Bound Operator">_⁻¹</a> <a id="1275" href="Algebra.Consequences.Propositional.html#1275" class="Bound">ε</a><a id="1276" class="Symbol">}</a> <a id="1278" class="Keyword">where</a>
|
|
|
|
<a id="1287" href="Algebra.Consequences.Propositional.html#1287" class="Function">assoc+id+invʳ⇒invˡ-unique</a> <a id="1313" class="Symbol">:</a> <a id="1315" href="Algebra.Definitions.html#1117" class="Function">Associative</a> <a id="1327" href="Algebra.Consequences.Propositional.html#1267" class="Bound Operator">_•_</a> <a id="1331" class="Symbol">→</a> <a id="1333" href="Algebra.Definitions.html#1425" class="Function">Identity</a> <a id="1342" href="Algebra.Consequences.Propositional.html#1275" class="Bound">ε</a> <a id="1344" href="Algebra.Consequences.Propositional.html#1267" class="Bound Operator">_•_</a> <a id="1348" class="Symbol">→</a>
|
|
<a id="1380" href="Algebra.Definitions.html#1801" class="Function">RightInverse</a> <a id="1393" href="Algebra.Consequences.Propositional.html#1275" class="Bound">ε</a> <a id="1395" href="Algebra.Consequences.Propositional.html#1271" class="Bound Operator">_⁻¹</a> <a id="1399" href="Algebra.Consequences.Propositional.html#1267" class="Bound Operator">_•_</a> <a id="1403" class="Symbol">→</a>
|
|
<a id="1435" class="Symbol">∀</a> <a id="1437" href="Algebra.Consequences.Propositional.html#1437" class="Bound">x</a> <a id="1439" href="Algebra.Consequences.Propositional.html#1439" class="Bound">y</a> <a id="1441" class="Symbol">→</a> <a id="1443" class="Symbol">(</a><a id="1444" href="Algebra.Consequences.Propositional.html#1437" class="Bound">x</a> <a id="1446" href="Algebra.Consequences.Propositional.html#1267" class="Bound Operator">•</a> <a id="1448" href="Algebra.Consequences.Propositional.html#1439" class="Bound">y</a><a id="1449" class="Symbol">)</a> <a id="1451" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="1453" href="Algebra.Consequences.Propositional.html#1275" class="Bound">ε</a> <a id="1455" class="Symbol">→</a> <a id="1457" href="Algebra.Consequences.Propositional.html#1437" class="Bound">x</a> <a id="1459" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="1461" class="Symbol">(</a><a id="1462" href="Algebra.Consequences.Propositional.html#1439" class="Bound">y</a> <a id="1464" href="Algebra.Consequences.Propositional.html#1271" class="Bound Operator">⁻¹</a><a id="1466" class="Symbol">)</a>
|
|
<a id="1470" href="Algebra.Consequences.Propositional.html#1287" class="Function">assoc+id+invʳ⇒invˡ-unique</a> <a id="1496" class="Symbol">=</a> <a id="1498" href="Algebra.Consequences.Setoid.html#3610" class="Function">Base.assoc+id+invʳ⇒invˡ-unique</a> <a id="1529" class="Symbol">(</a><a id="1530" href="Relation.Binary.PropositionalEquality.Core.html#1376" class="Function">cong₂</a> <a id="1536" class="Symbol">_)</a>
|
|
|
|
<a id="1542" href="Algebra.Consequences.Propositional.html#1542" class="Function">assoc+id+invˡ⇒invʳ-unique</a> <a id="1568" class="Symbol">:</a> <a id="1570" href="Algebra.Definitions.html#1117" class="Function">Associative</a> <a id="1582" href="Algebra.Consequences.Propositional.html#1267" class="Bound Operator">_•_</a> <a id="1586" class="Symbol">→</a> <a id="1588" href="Algebra.Definitions.html#1425" class="Function">Identity</a> <a id="1597" href="Algebra.Consequences.Propositional.html#1275" class="Bound">ε</a> <a id="1599" href="Algebra.Consequences.Propositional.html#1267" class="Bound Operator">_•_</a> <a id="1603" class="Symbol">→</a>
|
|
<a id="1635" href="Algebra.Definitions.html#1713" class="Function">LeftInverse</a> <a id="1647" href="Algebra.Consequences.Propositional.html#1275" class="Bound">ε</a> <a id="1649" href="Algebra.Consequences.Propositional.html#1271" class="Bound Operator">_⁻¹</a> <a id="1653" href="Algebra.Consequences.Propositional.html#1267" class="Bound Operator">_•_</a> <a id="1657" class="Symbol">→</a>
|
|
<a id="1689" class="Symbol">∀</a> <a id="1691" href="Algebra.Consequences.Propositional.html#1691" class="Bound">x</a> <a id="1693" href="Algebra.Consequences.Propositional.html#1693" class="Bound">y</a> <a id="1695" class="Symbol">→</a> <a id="1697" class="Symbol">(</a><a id="1698" href="Algebra.Consequences.Propositional.html#1691" class="Bound">x</a> <a id="1700" href="Algebra.Consequences.Propositional.html#1267" class="Bound Operator">•</a> <a id="1702" href="Algebra.Consequences.Propositional.html#1693" class="Bound">y</a><a id="1703" class="Symbol">)</a> <a id="1705" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="1707" href="Algebra.Consequences.Propositional.html#1275" class="Bound">ε</a> <a id="1709" class="Symbol">→</a> <a id="1711" href="Algebra.Consequences.Propositional.html#1693" class="Bound">y</a> <a id="1713" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="1715" class="Symbol">(</a><a id="1716" href="Algebra.Consequences.Propositional.html#1691" class="Bound">x</a> <a id="1718" href="Algebra.Consequences.Propositional.html#1271" class="Bound Operator">⁻¹</a><a id="1720" class="Symbol">)</a>
|
|
<a id="1724" href="Algebra.Consequences.Propositional.html#1542" class="Function">assoc+id+invˡ⇒invʳ-unique</a> <a id="1750" class="Symbol">=</a> <a id="1752" href="Algebra.Consequences.Setoid.html#4097" class="Function">Base.assoc+id+invˡ⇒invʳ-unique</a> <a id="1783" class="Symbol">(</a><a id="1784" href="Relation.Binary.PropositionalEquality.Core.html#1376" class="Function">cong₂</a> <a id="1790" class="Symbol">_)</a>
|
|
|
|
<a id="1794" class="Comment">------------------------------------------------------------------------</a>
|
|
<a id="1867" class="Comment">-- Ring-like structures</a>
|
|
|
|
<a id="1892" class="Keyword">module</a> <a id="1899" href="Algebra.Consequences.Propositional.html#1899" class="Module">_</a> <a id="1901" class="Symbol">{</a><a id="1902" href="Algebra.Consequences.Propositional.html#1902" class="Bound Operator">_+_</a> <a id="1906" href="Algebra.Consequences.Propositional.html#1906" class="Bound Operator">_*_</a> <a id="1910" href="Algebra.Consequences.Propositional.html#1910" class="Bound Operator">-_</a> <a id="1913" href="Algebra.Consequences.Propositional.html#1913" class="Bound">0#</a><a id="1915" class="Symbol">}</a> <a id="1917" class="Keyword">where</a>
|
|
|
|
<a id="1926" href="Algebra.Consequences.Propositional.html#1926" class="Function">assoc+distribʳ+idʳ+invʳ⇒zeˡ</a> <a id="1954" class="Symbol">:</a> <a id="1956" href="Algebra.Definitions.html#1117" class="Function">Associative</a> <a id="1968" href="Algebra.Consequences.Propositional.html#1902" class="Bound Operator">_+_</a> <a id="1972" class="Symbol">→</a> <a id="1974" href="Algebra.Consequences.Propositional.html#1906" class="Bound Operator">_*_</a> <a id="1978" href="Algebra.Definitions.html#2355" class="Function Operator">DistributesOverʳ</a> <a id="1995" href="Algebra.Consequences.Propositional.html#1902" class="Bound Operator">_+_</a> <a id="1999" class="Symbol">→</a>
|
|
<a id="2033" href="Algebra.Definitions.html#1350" class="Function">RightIdentity</a> <a id="2047" href="Algebra.Consequences.Propositional.html#1913" class="Bound">0#</a> <a id="2050" href="Algebra.Consequences.Propositional.html#1902" class="Bound Operator">_+_</a> <a id="2054" class="Symbol">→</a> <a id="2056" href="Algebra.Definitions.html#1801" class="Function">RightInverse</a> <a id="2069" href="Algebra.Consequences.Propositional.html#1913" class="Bound">0#</a> <a id="2072" href="Algebra.Consequences.Propositional.html#1910" class="Bound Operator">-_</a> <a id="2075" href="Algebra.Consequences.Propositional.html#1902" class="Bound Operator">_+_</a> <a id="2079" class="Symbol">→</a>
|
|
<a id="2113" href="Algebra.Definitions.html#1511" class="Function">LeftZero</a> <a id="2122" href="Algebra.Consequences.Propositional.html#1913" class="Bound">0#</a> <a id="2125" href="Algebra.Consequences.Propositional.html#1906" class="Bound Operator">_*_</a>
|
|
<a id="2131" href="Algebra.Consequences.Propositional.html#1926" class="Function">assoc+distribʳ+idʳ+invʳ⇒zeˡ</a> <a id="2159" class="Symbol">=</a>
|
|
<a id="2165" href="Algebra.Consequences.Setoid.html#5894" class="Function">Base.assoc+distribʳ+idʳ+invʳ⇒zeˡ</a> <a id="2198" class="Symbol">(</a><a id="2199" href="Relation.Binary.PropositionalEquality.Core.html#1376" class="Function">cong₂</a> <a id="2205" href="Algebra.Consequences.Propositional.html#1902" class="Bound Operator">_+_</a><a id="2208" class="Symbol">)</a> <a id="2210" class="Symbol">(</a><a id="2211" href="Relation.Binary.PropositionalEquality.Core.html#1376" class="Function">cong₂</a> <a id="2217" href="Algebra.Consequences.Propositional.html#1906" class="Bound Operator">_*_</a><a id="2220" class="Symbol">)</a>
|
|
|
|
<a id="2225" href="Algebra.Consequences.Propositional.html#2225" class="Function">assoc+distribˡ+idʳ+invʳ⇒zeʳ</a> <a id="2253" class="Symbol">:</a> <a id="2255" href="Algebra.Definitions.html#1117" class="Function">Associative</a> <a id="2267" href="Algebra.Consequences.Propositional.html#1902" class="Bound Operator">_+_</a> <a id="2271" class="Symbol">→</a> <a id="2273" href="Algebra.Consequences.Propositional.html#1906" class="Bound Operator">_*_</a> <a id="2277" href="Algebra.Definitions.html#2236" class="Function Operator">DistributesOverˡ</a> <a id="2294" href="Algebra.Consequences.Propositional.html#1902" class="Bound Operator">_+_</a> <a id="2298" class="Symbol">→</a>
|
|
<a id="2332" href="Algebra.Definitions.html#1350" class="Function">RightIdentity</a> <a id="2346" href="Algebra.Consequences.Propositional.html#1913" class="Bound">0#</a> <a id="2349" href="Algebra.Consequences.Propositional.html#1902" class="Bound Operator">_+_</a> <a id="2353" class="Symbol">→</a> <a id="2355" href="Algebra.Definitions.html#1801" class="Function">RightInverse</a> <a id="2368" href="Algebra.Consequences.Propositional.html#1913" class="Bound">0#</a> <a id="2371" href="Algebra.Consequences.Propositional.html#1910" class="Bound Operator">-_</a> <a id="2374" href="Algebra.Consequences.Propositional.html#1902" class="Bound Operator">_+_</a> <a id="2378" class="Symbol">→</a>
|
|
<a id="2412" href="Algebra.Definitions.html#1576" class="Function">RightZero</a> <a id="2422" href="Algebra.Consequences.Propositional.html#1913" class="Bound">0#</a> <a id="2425" href="Algebra.Consequences.Propositional.html#1906" class="Bound Operator">_*_</a>
|
|
<a id="2431" href="Algebra.Consequences.Propositional.html#2225" class="Function">assoc+distribˡ+idʳ+invʳ⇒zeʳ</a> <a id="2459" class="Symbol">=</a>
|
|
<a id="2465" href="Algebra.Consequences.Setoid.html#6636" class="Function">Base.assoc+distribˡ+idʳ+invʳ⇒zeʳ</a> <a id="2498" class="Symbol">(</a><a id="2499" href="Relation.Binary.PropositionalEquality.Core.html#1376" class="Function">cong₂</a> <a id="2505" href="Algebra.Consequences.Propositional.html#1902" class="Bound Operator">_+_</a><a id="2508" class="Symbol">)</a> <a id="2510" class="Symbol">(</a><a id="2511" href="Relation.Binary.PropositionalEquality.Core.html#1376" class="Function">cong₂</a> <a id="2517" href="Algebra.Consequences.Propositional.html#1906" class="Bound Operator">_*_</a><a id="2520" class="Symbol">)</a>
|
|
|
|
<a id="2523" class="Comment">------------------------------------------------------------------------</a>
|
|
<a id="2596" class="Comment">-- Bisemigroup-like structures</a>
|
|
|
|
<a id="2628" class="Keyword">module</a> <a id="2635" href="Algebra.Consequences.Propositional.html#2635" class="Module">_</a> <a id="2637" class="Symbol">{</a><a id="2638" href="Algebra.Consequences.Propositional.html#2638" class="Bound Operator">_•_</a> <a id="2642" href="Algebra.Consequences.Propositional.html#2642" class="Bound Operator">_◦_</a> <a id="2646" class="Symbol">:</a> <a id="2648" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="2652" href="Algebra.Consequences.Propositional.html#403" class="Bound">A</a><a id="2653" class="Symbol">}</a> <a id="2655" class="Symbol">(</a><a id="2656" href="Algebra.Consequences.Propositional.html#2656" class="Bound">•-comm</a> <a id="2663" class="Symbol">:</a> <a id="2665" href="Algebra.Definitions.html#1204" class="Function">Commutative</a> <a id="2677" href="Algebra.Consequences.Propositional.html#2638" class="Bound Operator">_•_</a><a id="2680" class="Symbol">)</a> <a id="2682" class="Keyword">where</a>
|
|
|
|
<a id="2691" href="Algebra.Consequences.Propositional.html#2691" class="Function">comm+distrˡ⇒distrʳ</a> <a id="2710" class="Symbol">:</a> <a id="2712" href="Algebra.Consequences.Propositional.html#2638" class="Bound Operator">_•_</a> <a id="2716" href="Algebra.Definitions.html#2236" class="Function Operator">DistributesOverˡ</a> <a id="2733" href="Algebra.Consequences.Propositional.html#2642" class="Bound Operator">_◦_</a> <a id="2737" class="Symbol">→</a> <a id="2739" href="Algebra.Consequences.Propositional.html#2638" class="Bound Operator">_•_</a> <a id="2743" href="Algebra.Definitions.html#2355" class="Function Operator">DistributesOverʳ</a> <a id="2760" href="Algebra.Consequences.Propositional.html#2642" class="Bound Operator">_◦_</a>
|
|
<a id="2766" href="Algebra.Consequences.Propositional.html#2691" class="Function">comm+distrˡ⇒distrʳ</a> <a id="2785" class="Symbol">=</a> <a id="2787" href="Algebra.Consequences.Setoid.html#4794" class="Function">Base.comm+distrˡ⇒distrʳ</a> <a id="2811" class="Symbol">(</a><a id="2812" href="Relation.Binary.PropositionalEquality.Core.html#1376" class="Function">cong₂</a> <a id="2818" class="Symbol">_)</a> <a id="2821" href="Algebra.Consequences.Propositional.html#2656" class="Bound">•-comm</a>
|
|
|
|
<a id="2831" href="Algebra.Consequences.Propositional.html#2831" class="Function">comm+distrʳ⇒distrˡ</a> <a id="2850" class="Symbol">:</a> <a id="2852" href="Algebra.Consequences.Propositional.html#2638" class="Bound Operator">_•_</a> <a id="2856" href="Algebra.Definitions.html#2355" class="Function Operator">DistributesOverʳ</a> <a id="2873" href="Algebra.Consequences.Propositional.html#2642" class="Bound Operator">_◦_</a> <a id="2877" class="Symbol">→</a> <a id="2879" href="Algebra.Consequences.Propositional.html#2638" class="Bound Operator">_•_</a> <a id="2883" href="Algebra.Definitions.html#2236" class="Function Operator">DistributesOverˡ</a> <a id="2900" href="Algebra.Consequences.Propositional.html#2642" class="Bound Operator">_◦_</a>
|
|
<a id="2906" href="Algebra.Consequences.Propositional.html#2831" class="Function">comm+distrʳ⇒distrˡ</a> <a id="2925" class="Symbol">=</a> <a id="2927" href="Algebra.Consequences.Setoid.html#5081" class="Function">Base.comm+distrʳ⇒distrˡ</a> <a id="2951" class="Symbol">(</a><a id="2952" href="Relation.Binary.PropositionalEquality.Core.html#1376" class="Function">cong₂</a> <a id="2958" class="Symbol">_)</a> <a id="2961" href="Algebra.Consequences.Propositional.html#2656" class="Bound">•-comm</a>
|
|
|
|
<a id="2971" href="Algebra.Consequences.Propositional.html#2971" class="Function">comm⇒sym[distribˡ]</a> <a id="2990" class="Symbol">:</a> <a id="2992" class="Symbol">∀</a> <a id="2994" href="Algebra.Consequences.Propositional.html#2994" class="Bound">x</a> <a id="2996" class="Symbol">→</a> <a id="2998" href="Relation.Binary.Definitions.html#1507" class="Function">Symmetric</a> <a id="3008" class="Symbol">(λ</a> <a id="3011" href="Algebra.Consequences.Propositional.html#3011" class="Bound">y</a> <a id="3013" href="Algebra.Consequences.Propositional.html#3013" class="Bound">z</a> <a id="3015" class="Symbol">→</a> <a id="3017" class="Symbol">(</a><a id="3018" href="Algebra.Consequences.Propositional.html#2994" class="Bound">x</a> <a id="3020" href="Algebra.Consequences.Propositional.html#2642" class="Bound Operator">◦</a> <a id="3022" class="Symbol">(</a><a id="3023" href="Algebra.Consequences.Propositional.html#3011" class="Bound">y</a> <a id="3025" href="Algebra.Consequences.Propositional.html#2638" class="Bound Operator">•</a> <a id="3027" href="Algebra.Consequences.Propositional.html#3013" class="Bound">z</a><a id="3028" class="Symbol">))</a> <a id="3031" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="3033" class="Symbol">((</a><a id="3035" href="Algebra.Consequences.Propositional.html#2994" class="Bound">x</a> <a id="3037" href="Algebra.Consequences.Propositional.html#2642" class="Bound Operator">◦</a> <a id="3039" href="Algebra.Consequences.Propositional.html#3011" class="Bound">y</a><a id="3040" class="Symbol">)</a> <a id="3042" href="Algebra.Consequences.Propositional.html#2638" class="Bound Operator">•</a> <a id="3044" class="Symbol">(</a><a id="3045" href="Algebra.Consequences.Propositional.html#2994" class="Bound">x</a> <a id="3047" href="Algebra.Consequences.Propositional.html#2642" class="Bound Operator">◦</a> <a id="3049" href="Algebra.Consequences.Propositional.html#3013" class="Bound">z</a><a id="3050" class="Symbol">)))</a>
|
|
<a id="3056" href="Algebra.Consequences.Propositional.html#2971" class="Function">comm⇒sym[distribˡ]</a> <a id="3075" class="Symbol">=</a> <a id="3077" href="Algebra.Consequences.Setoid.html#5367" class="Function">Base.comm⇒sym[distribˡ]</a> <a id="3101" class="Symbol">(</a><a id="3102" href="Relation.Binary.PropositionalEquality.Core.html#1376" class="Function">cong₂</a> <a id="3108" href="Algebra.Consequences.Propositional.html#2642" class="Bound Operator">_◦_</a><a id="3111" class="Symbol">)</a> <a id="3113" href="Algebra.Consequences.Propositional.html#2656" class="Bound">•-comm</a>
|
|
|
|
<a id="3121" class="Comment">------------------------------------------------------------------------</a>
|
|
<a id="3194" class="Comment">-- Selectivity</a>
|
|
|
|
<a id="3210" class="Keyword">module</a> <a id="3217" href="Algebra.Consequences.Propositional.html#3217" class="Module">_</a> <a id="3219" class="Symbol">{</a><a id="3220" href="Algebra.Consequences.Propositional.html#3220" class="Bound Operator">_•_</a> <a id="3224" class="Symbol">:</a> <a id="3226" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="3230" href="Algebra.Consequences.Propositional.html#403" class="Bound">A</a><a id="3231" class="Symbol">}</a> <a id="3233" class="Keyword">where</a>
|
|
|
|
<a id="3242" href="Algebra.Consequences.Propositional.html#3242" class="Function">sel⇒idem</a> <a id="3251" class="Symbol">:</a> <a id="3253" href="Algebra.Definitions.html#2791" class="Function">Selective</a> <a id="3263" href="Algebra.Consequences.Propositional.html#3220" class="Bound Operator">_•_</a> <a id="3267" class="Symbol">→</a> <a id="3269" href="Algebra.Definitions.html#2656" class="Function">Idempotent</a> <a id="3280" href="Algebra.Consequences.Propositional.html#3220" class="Bound Operator">_•_</a>
|
|
<a id="3286" href="Algebra.Consequences.Propositional.html#3242" class="Function">sel⇒idem</a> <a id="3295" class="Symbol">=</a> <a id="3297" href="Algebra.Consequences.Base.html#535" class="Function">Base.sel⇒idem</a> <a id="3311" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a>
|
|
|
|
<a id="3316" class="Comment">------------------------------------------------------------------------</a>
|
|
<a id="3389" class="Comment">-- Without Loss of Generality</a>
|
|
|
|
<a id="3420" class="Keyword">module</a> <a id="3427" href="Algebra.Consequences.Propositional.html#3427" class="Module">_</a> <a id="3429" class="Symbol">{</a><a id="3430" href="Algebra.Consequences.Propositional.html#3430" class="Bound">p</a><a id="3431" class="Symbol">}</a> <a id="3433" class="Symbol">{</a><a id="3434" href="Algebra.Consequences.Propositional.html#3434" class="Bound">P</a> <a id="3436" class="Symbol">:</a> <a id="3438" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="3443" href="Algebra.Consequences.Propositional.html#403" class="Bound">A</a> <a id="3445" href="Algebra.Consequences.Propositional.html#3430" class="Bound">p</a><a id="3446" class="Symbol">}</a> <a id="3448" class="Keyword">where</a>
|
|
|
|
<a id="3457" href="Algebra.Consequences.Propositional.html#3457" class="Function">subst+comm⇒sym</a> <a id="3472" class="Symbol">:</a> <a id="3474" class="Symbol">∀</a> <a id="3476" class="Symbol">{</a><a id="3477" href="Algebra.Consequences.Propositional.html#3477" class="Bound">f</a><a id="3478" class="Symbol">}</a> <a id="3480" class="Symbol">(</a><a id="3481" href="Algebra.Consequences.Propositional.html#3481" class="Bound">f-comm</a> <a id="3488" class="Symbol">:</a> <a id="3490" href="Algebra.Definitions.html#1204" class="Function">Commutative</a> <a id="3502" href="Algebra.Consequences.Propositional.html#3477" class="Bound">f</a><a id="3503" class="Symbol">)</a> <a id="3505" class="Symbol">→</a>
|
|
<a id="3526" href="Relation.Binary.Definitions.html#1507" class="Function">Symmetric</a> <a id="3536" class="Symbol">(λ</a> <a id="3539" href="Algebra.Consequences.Propositional.html#3539" class="Bound">a</a> <a id="3541" href="Algebra.Consequences.Propositional.html#3541" class="Bound">b</a> <a id="3543" class="Symbol">→</a> <a id="3545" href="Algebra.Consequences.Propositional.html#3434" class="Bound">P</a> <a id="3547" class="Symbol">(</a><a id="3548" href="Algebra.Consequences.Propositional.html#3477" class="Bound">f</a> <a id="3550" href="Algebra.Consequences.Propositional.html#3539" class="Bound">a</a> <a id="3552" href="Algebra.Consequences.Propositional.html#3541" class="Bound">b</a><a id="3553" class="Symbol">))</a>
|
|
<a id="3558" href="Algebra.Consequences.Propositional.html#3457" class="Function">subst+comm⇒sym</a> <a id="3573" class="Symbol">=</a> <a id="3575" href="Algebra.Consequences.Setoid.html#7611" class="Function">Base.subst+comm⇒sym</a> <a id="3595" class="Symbol">{</a><a id="3596" class="Argument">P</a> <a id="3598" class="Symbol">=</a> <a id="3600" href="Algebra.Consequences.Propositional.html#3434" class="Bound">P</a><a id="3601" class="Symbol">}</a> <a id="3603" href="Relation.Binary.PropositionalEquality.Core.html#1789" class="Function">subst</a>
|
|
|
|
<a id="3612" href="Algebra.Consequences.Propositional.html#3612" class="Function">wlog</a> <a id="3617" class="Symbol">:</a> <a id="3619" class="Symbol">∀</a> <a id="3621" class="Symbol">{</a><a id="3622" href="Algebra.Consequences.Propositional.html#3622" class="Bound">f</a><a id="3623" class="Symbol">}</a> <a id="3625" class="Symbol">(</a><a id="3626" href="Algebra.Consequences.Propositional.html#3626" class="Bound">f-comm</a> <a id="3633" class="Symbol">:</a> <a id="3635" href="Algebra.Definitions.html#1204" class="Function">Commutative</a> <a id="3647" href="Algebra.Consequences.Propositional.html#3622" class="Bound">f</a><a id="3648" class="Symbol">)</a> <a id="3650" class="Symbol">→</a>
|
|
<a id="3661" class="Symbol">∀</a> <a id="3663" class="Symbol">{</a><a id="3664" href="Algebra.Consequences.Propositional.html#3664" class="Bound">r</a><a id="3665" class="Symbol">}</a> <a id="3667" class="Symbol">{</a><a id="3668" href="Algebra.Consequences.Propositional.html#3668" class="Bound Operator">_R_</a> <a id="3672" class="Symbol">:</a> <a id="3674" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="3678" class="Symbol">_</a> <a id="3680" href="Algebra.Consequences.Propositional.html#3664" class="Bound">r</a><a id="3681" class="Symbol">}</a> <a id="3683" class="Symbol">→</a> <a id="3685" href="Relation.Binary.Definitions.html#2593" class="Function">Total</a> <a id="3691" href="Algebra.Consequences.Propositional.html#3668" class="Bound Operator">_R_</a> <a id="3695" class="Symbol">→</a>
|
|
<a id="3706" class="Symbol">(∀</a> <a id="3709" href="Algebra.Consequences.Propositional.html#3709" class="Bound">a</a> <a id="3711" href="Algebra.Consequences.Propositional.html#3711" class="Bound">b</a> <a id="3713" class="Symbol">→</a> <a id="3715" href="Algebra.Consequences.Propositional.html#3709" class="Bound">a</a> <a id="3717" href="Algebra.Consequences.Propositional.html#3668" class="Bound Operator">R</a> <a id="3719" href="Algebra.Consequences.Propositional.html#3711" class="Bound">b</a> <a id="3721" class="Symbol">→</a> <a id="3723" href="Algebra.Consequences.Propositional.html#3434" class="Bound">P</a> <a id="3725" class="Symbol">(</a><a id="3726" href="Algebra.Consequences.Propositional.html#3622" class="Bound">f</a> <a id="3728" href="Algebra.Consequences.Propositional.html#3709" class="Bound">a</a> <a id="3730" href="Algebra.Consequences.Propositional.html#3711" class="Bound">b</a><a id="3731" class="Symbol">))</a> <a id="3734" class="Symbol">→</a>
|
|
<a id="3745" class="Symbol">∀</a> <a id="3747" href="Algebra.Consequences.Propositional.html#3747" class="Bound">a</a> <a id="3749" href="Algebra.Consequences.Propositional.html#3749" class="Bound">b</a> <a id="3751" class="Symbol">→</a> <a id="3753" href="Algebra.Consequences.Propositional.html#3434" class="Bound">P</a> <a id="3755" class="Symbol">(</a><a id="3756" href="Algebra.Consequences.Propositional.html#3622" class="Bound">f</a> <a id="3758" href="Algebra.Consequences.Propositional.html#3747" class="Bound">a</a> <a id="3760" href="Algebra.Consequences.Propositional.html#3749" class="Bound">b</a><a id="3761" class="Symbol">)</a>
|
|
<a id="3765" href="Algebra.Consequences.Propositional.html#3612" class="Function">wlog</a> <a id="3770" class="Symbol">=</a> <a id="3772" href="Algebra.Consequences.Setoid.html#7701" class="Function">Base.wlog</a> <a id="3782" class="Symbol">{</a><a id="3783" class="Argument">P</a> <a id="3785" class="Symbol">=</a> <a id="3787" href="Algebra.Consequences.Propositional.html#3434" class="Bound">P</a><a id="3788" class="Symbol">}</a> <a id="3790" href="Relation.Binary.PropositionalEquality.Core.html#1789" class="Function">subst</a>
|
|
</pre></body></html> |