bsc-leon-vatthauer/public/Relation.Binary.PropositionalEquality.html

148 lines
No EOL
55 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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>Relation.Binary.PropositionalEquality</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">-- Propositional (intensional) equality</a>
<a id="146" class="Comment">------------------------------------------------------------------------</a>
<a id="220" class="Symbol">{-#</a> <a id="224" class="Keyword">OPTIONS</a> <a id="232" class="Pragma">--cubical-compatible</a> <a id="253" class="Pragma">--safe</a> <a id="260" class="Symbol">#-}</a>
<a id="265" class="Keyword">module</a> <a id="272" href="Relation.Binary.PropositionalEquality.html" class="Module">Relation.Binary.PropositionalEquality</a> <a id="310" class="Keyword">where</a>
<a id="317" class="Keyword">import</a> <a id="324" href="Axiom.Extensionality.Propositional.html" class="Module">Axiom.Extensionality.Propositional</a> <a id="359" class="Symbol">as</a> <a id="362" class="Module">Ext</a>
<a id="366" class="Keyword">open</a> <a id="371" class="Keyword">import</a> <a id="378" href="Axiom.UniquenessOfIdentityProofs.html" class="Module">Axiom.UniquenessOfIdentityProofs</a>
<a id="411" class="Keyword">open</a> <a id="416" class="Keyword">import</a> <a id="423" href="Function.Base.html" class="Module">Function.Base</a> <a id="437" class="Keyword">using</a> <a id="443" class="Symbol">(</a><a id="444" href="Function.Base.html#624" class="Function">id</a><a id="446" class="Symbol">;</a> <a id="448" href="Function.Base.html#1040" class="Function Operator">_∘_</a><a id="451" class="Symbol">)</a>
<a id="453" class="Keyword">open</a> <a id="458" class="Keyword">import</a> <a id="465" href="Function.Equality.html" class="Module">Function.Equality</a> <a id="483" class="Keyword">using</a> <a id="489" class="Symbol">(</a><a id="490" href="Function.Equality.html#898" class="Record">Π</a><a id="491" class="Symbol">;</a> <a id="493" href="Function.Equality.html#1227" class="Function Operator">_⟶_</a><a id="496" class="Symbol">;</a> <a id="498" href="Function.Equality.html#2987" class="Function">≡-setoid</a><a id="506" class="Symbol">)</a>
<a id="508" class="Keyword">open</a> <a id="513" class="Keyword">import</a> <a id="520" href="Level.html" class="Module">Level</a> <a id="526" class="Keyword">using</a> <a id="532" class="Symbol">(</a><a id="533" href="Agda.Primitive.html#591" class="Postulate">Level</a><a id="538" class="Symbol">;</a> <a id="540" href="Agda.Primitive.html#804" class="Primitive Operator">_⊔_</a><a id="543" class="Symbol">)</a>
<a id="545" class="Keyword">open</a> <a id="550" class="Keyword">import</a> <a id="557" href="Data.Product.html" class="Module">Data.Product</a> <a id="570" class="Keyword">using</a> <a id="576" class="Symbol">(</a><a id="577" href="Data.Product.html#1378" class="Function"></a><a id="578" class="Symbol">)</a>
<a id="581" class="Keyword">open</a> <a id="586" class="Keyword">import</a> <a id="593" href="Relation.Nullary.html" class="Module">Relation.Nullary</a> <a id="610" class="Keyword">using</a> <a id="616" class="Symbol">(</a><a id="617" href="Relation.Nullary.html#1657" class="InductiveConstructor">yes</a> <a id="621" class="Symbol">;</a> <a id="623" href="Relation.Nullary.html#1694" class="InductiveConstructor">no</a><a id="625" class="Symbol">)</a>
<a id="627" class="Keyword">open</a> <a id="632" class="Keyword">import</a> <a id="639" href="Relation.Nullary.Decidable.Core.html" class="Module">Relation.Nullary.Decidable.Core</a>
<a id="671" class="Keyword">open</a> <a id="676" class="Keyword">import</a> <a id="683" href="Relation.Binary.html" class="Module">Relation.Binary</a>
<a id="699" class="Keyword">open</a> <a id="704" class="Keyword">import</a> <a id="711" href="Relation.Binary.Indexed.Heterogeneous.html" class="Module">Relation.Binary.Indexed.Heterogeneous</a>
<a id="751" class="Keyword">using</a> <a id="757" class="Symbol">(</a><a id="758" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#798" class="Record">IndexedSetoid</a><a id="771" class="Symbol">)</a>
<a id="773" class="Keyword">import</a> <a id="780" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html" class="Module">Relation.Binary.Indexed.Heterogeneous.Construct.Trivial</a>
<a id="838" class="Symbol">as</a> <a id="841" class="Module">Trivial</a>
<a id="850" class="Keyword">private</a>
<a id="860" class="Keyword">variable</a>
<a id="873" href="Relation.Binary.PropositionalEquality.html#873" class="Generalizable">a</a> <a id="875" href="Relation.Binary.PropositionalEquality.html#875" class="Generalizable">b</a> <a id="877" href="Relation.Binary.PropositionalEquality.html#877" class="Generalizable">c</a> <a id="879" href="Relation.Binary.PropositionalEquality.html#879" class="Generalizable"></a> <a id="881" href="Relation.Binary.PropositionalEquality.html#881" class="Generalizable">p</a> <a id="883" class="Symbol">:</a> <a id="885" href="Agda.Primitive.html#591" class="Postulate">Level</a>
<a id="895" href="Relation.Binary.PropositionalEquality.html#895" class="Generalizable">A</a> <a id="897" class="Symbol">:</a> <a id="899" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="903" href="Relation.Binary.PropositionalEquality.html#873" class="Generalizable">a</a>
<a id="909" href="Relation.Binary.PropositionalEquality.html#909" class="Generalizable">B</a> <a id="911" class="Symbol">:</a> <a id="913" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="917" href="Relation.Binary.PropositionalEquality.html#875" class="Generalizable">b</a>
<a id="923" href="Relation.Binary.PropositionalEquality.html#923" class="Generalizable">C</a> <a id="925" class="Symbol">:</a> <a id="927" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="931" href="Relation.Binary.PropositionalEquality.html#877" class="Generalizable">c</a>
<a id="934" class="Comment">------------------------------------------------------------------------</a>
<a id="1007" class="Comment">-- Re-export contents modules that make up the parts</a>
<a id="1061" class="Keyword">open</a> <a id="1066" class="Keyword">import</a> <a id="1073" href="Relation.Binary.PropositionalEquality.Core.html" class="Module">Relation.Binary.PropositionalEquality.Core</a> <a id="1116" class="Keyword">public</a>
<a id="1123" class="Keyword">open</a> <a id="1128" class="Keyword">import</a> <a id="1135" href="Relation.Binary.PropositionalEquality.Properties.html" class="Module">Relation.Binary.PropositionalEquality.Properties</a> <a id="1184" class="Keyword">public</a>
<a id="1191" class="Keyword">open</a> <a id="1196" class="Keyword">import</a> <a id="1203" href="Relation.Binary.PropositionalEquality.Algebra.html" class="Module">Relation.Binary.PropositionalEquality.Algebra</a> <a id="1249" class="Keyword">public</a>
<a id="1257" class="Comment">------------------------------------------------------------------------</a>
<a id="1330" class="Comment">-- Pointwise equality</a>
<a id="1353" class="Keyword">infix</a> <a id="1359" class="Number">4</a> <a id="1361" href="Relation.Binary.PropositionalEquality.html#1480" class="Function Operator">_≗_</a>
<a id="_→-setoid_"></a><a id="1366" href="Relation.Binary.PropositionalEquality.html#1366" class="Function Operator">_→-setoid_</a> <a id="1377" class="Symbol">:</a> <a id="1379" class="Symbol"></a> <a id="1381" class="Symbol">(</a><a id="1382" href="Relation.Binary.PropositionalEquality.html#1382" class="Bound">A</a> <a id="1384" class="Symbol">:</a> <a id="1386" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1390" href="Relation.Binary.PropositionalEquality.html#873" class="Generalizable">a</a><a id="1391" class="Symbol">)</a> <a id="1393" class="Symbol">(</a><a id="1394" href="Relation.Binary.PropositionalEquality.html#1394" class="Bound">B</a> <a id="1396" class="Symbol">:</a> <a id="1398" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1402" href="Relation.Binary.PropositionalEquality.html#875" class="Generalizable">b</a><a id="1403" class="Symbol">)</a> <a id="1405" class="Symbol"></a> <a id="1407" href="Relation.Binary.Bundles.html#1018" class="Record">Setoid</a> <a id="1414" class="Symbol">_</a> <a id="1416" class="Symbol">_</a>
<a id="1418" href="Relation.Binary.PropositionalEquality.html#1418" class="Bound">A</a> <a id="1420" href="Relation.Binary.PropositionalEquality.html#1366" class="Function Operator">→-setoid</a> <a id="1429" href="Relation.Binary.PropositionalEquality.html#1429" class="Bound">B</a> <a id="1431" class="Symbol">=</a> <a id="1433" href="Function.Equality.html#2987" class="Function">≡-setoid</a> <a id="1442" href="Relation.Binary.PropositionalEquality.html#1418" class="Bound">A</a> <a id="1444" class="Symbol">(</a><a id="1445" href="Relation.Binary.Indexed.Heterogeneous.Construct.Trivial.html#1379" class="Function">Trivial.indexedSetoid</a> <a id="1467" class="Symbol">(</a><a id="1468" href="Relation.Binary.PropositionalEquality.Properties.html#3981" class="Function">setoid</a> <a id="1475" href="Relation.Binary.PropositionalEquality.html#1429" class="Bound">B</a><a id="1476" class="Symbol">))</a>
<a id="_≗_"></a><a id="1480" href="Relation.Binary.PropositionalEquality.html#1480" class="Function Operator">_≗_</a> <a id="1484" class="Symbol">:</a> <a id="1486" class="Symbol">(</a><a id="1487" href="Relation.Binary.PropositionalEquality.html#1487" class="Bound">f</a> <a id="1489" href="Relation.Binary.PropositionalEquality.html#1489" class="Bound">g</a> <a id="1491" class="Symbol">:</a> <a id="1493" href="Relation.Binary.PropositionalEquality.html#895" class="Generalizable">A</a> <a id="1495" class="Symbol"></a> <a id="1497" href="Relation.Binary.PropositionalEquality.html#909" class="Generalizable">B</a><a id="1498" class="Symbol">)</a> <a id="1500" class="Symbol"></a> <a id="1502" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1506" class="Symbol">_</a>
<a id="1508" href="Relation.Binary.PropositionalEquality.html#1480" class="Function Operator">_≗_</a> <a id="1512" class="Symbol">{</a><a id="1513" class="Argument">A</a> <a id="1515" class="Symbol">=</a> <a id="1517" href="Relation.Binary.PropositionalEquality.html#1517" class="Bound">A</a><a id="1518" class="Symbol">}</a> <a id="1520" class="Symbol">{</a><a id="1521" class="Argument">B</a> <a id="1523" class="Symbol">=</a> <a id="1525" href="Relation.Binary.PropositionalEquality.html#1525" class="Bound">B</a><a id="1526" class="Symbol">}</a> <a id="1528" class="Symbol">=</a> <a id="1530" href="Relation.Binary.Bundles.html#1107" class="Field Operator">Setoid._≈_</a> <a id="1541" class="Symbol">(</a><a id="1542" href="Relation.Binary.PropositionalEquality.html#1517" class="Bound">A</a> <a id="1544" href="Relation.Binary.PropositionalEquality.html#1366" class="Function Operator">→-setoid</a> <a id="1553" href="Relation.Binary.PropositionalEquality.html#1525" class="Bound">B</a><a id="1554" class="Symbol">)</a>
<a id=":→-to-Π"></a><a id="1557" href="Relation.Binary.PropositionalEquality.html#1557" class="Function">:→-to-Π</a> <a id="1565" class="Symbol">:</a> <a id="1567" class="Symbol"></a> <a id="1569" class="Symbol">{</a><a id="1570" href="Relation.Binary.PropositionalEquality.html#1570" class="Bound">A</a> <a id="1572" class="Symbol">:</a> <a id="1574" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1578" href="Relation.Binary.PropositionalEquality.html#873" class="Generalizable">a</a><a id="1579" class="Symbol">}</a> <a id="1581" class="Symbol">{</a><a id="1582" href="Relation.Binary.PropositionalEquality.html#1582" class="Bound">B</a> <a id="1584" class="Symbol">:</a> <a id="1586" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#798" class="Record">IndexedSetoid</a> <a id="1600" href="Relation.Binary.PropositionalEquality.html#1570" class="Bound">A</a> <a id="1602" href="Relation.Binary.PropositionalEquality.html#875" class="Generalizable">b</a> <a id="1604" href="Relation.Binary.PropositionalEquality.html#879" class="Generalizable"></a><a id="1605" class="Symbol">}</a> <a id="1607" class="Symbol"></a>
<a id="1619" class="Symbol">((</a><a id="1621" href="Relation.Binary.PropositionalEquality.html#1621" class="Bound">x</a> <a id="1623" class="Symbol">:</a> <a id="1625" href="Relation.Binary.PropositionalEquality.html#1570" class="Bound">A</a><a id="1626" class="Symbol">)</a> <a id="1628" class="Symbol"></a> <a id="1630" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#888" class="Field">IndexedSetoid.Carrier</a> <a id="1652" href="Relation.Binary.PropositionalEquality.html#1582" class="Bound">B</a> <a id="1654" href="Relation.Binary.PropositionalEquality.html#1621" class="Bound">x</a><a id="1655" class="Symbol">)</a> <a id="1657" class="Symbol"></a> <a id="1659" href="Function.Equality.html#898" class="Record">Π</a> <a id="1661" class="Symbol">(</a><a id="1662" href="Relation.Binary.PropositionalEquality.Properties.html#3981" class="Function">setoid</a> <a id="1669" href="Relation.Binary.PropositionalEquality.html#1570" class="Bound">A</a><a id="1670" class="Symbol">)</a> <a id="1672" href="Relation.Binary.PropositionalEquality.html#1582" class="Bound">B</a>
<a id="1674" href="Relation.Binary.PropositionalEquality.html#1557" class="Function">:→-to-Π</a> <a id="1682" class="Symbol">{</a><a id="1683" class="Argument">B</a> <a id="1685" class="Symbol">=</a> <a id="1687" href="Relation.Binary.PropositionalEquality.html#1687" class="Bound">B</a><a id="1688" class="Symbol">}</a> <a id="1690" href="Relation.Binary.PropositionalEquality.html#1690" class="Bound">f</a> <a id="1692" class="Symbol">=</a> <a id="1694" class="Keyword">record</a>
<a id="1703" class="Symbol">{</a> <a id="1705" href="Function.Equality.html#1073" class="Field Operator">_⟨$⟩_</a> <a id="1711" class="Symbol">=</a> <a id="1713" href="Relation.Binary.PropositionalEquality.html#1690" class="Bound">f</a>
<a id="1717" class="Symbol">;</a> <a id="1719" href="Function.Equality.html#1140" class="Field">cong</a> <a id="1725" class="Symbol">=</a> <a id="1727" class="Symbol">λ</a> <a id="1729" class="Symbol">{</a> <a id="1731" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a> <a id="1736" class="Symbol"></a> <a id="1738" href="Relation.Binary.Indexed.Heterogeneous.Structures.html#918" class="Function">IndexedSetoid.refl</a> <a id="1757" href="Relation.Binary.PropositionalEquality.html#1687" class="Bound">B</a> <a id="1759" class="Symbol">}</a>
<a id="1763" class="Symbol">}</a>
<a id="1767" class="Keyword">where</a> <a id="1773" class="Keyword">open</a> <a id="1778" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#798" class="Module">IndexedSetoid</a> <a id="1792" href="Relation.Binary.PropositionalEquality.html#1687" class="Bound">B</a> <a id="1794" class="Keyword">using</a> <a id="1800" class="Symbol">(</a><a id="1801" href="Relation.Binary.Indexed.Heterogeneous.Bundles.html#918" class="Field Operator">_≈_</a><a id="1804" class="Symbol">)</a>
<a id="→-to-⟶"></a><a id="1807" href="Relation.Binary.PropositionalEquality.html#1807" class="Function">→-to-⟶</a> <a id="1814" class="Symbol">:</a> <a id="1816" class="Symbol"></a> <a id="1818" class="Symbol">{</a><a id="1819" href="Relation.Binary.PropositionalEquality.html#1819" class="Bound">A</a> <a id="1821" class="Symbol">:</a> <a id="1823" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1827" href="Relation.Binary.PropositionalEquality.html#873" class="Generalizable">a</a><a id="1828" class="Symbol">}</a> <a id="1830" class="Symbol">{</a><a id="1831" href="Relation.Binary.PropositionalEquality.html#1831" class="Bound">B</a> <a id="1833" class="Symbol">:</a> <a id="1835" href="Relation.Binary.Bundles.html#1018" class="Record">Setoid</a> <a id="1842" href="Relation.Binary.PropositionalEquality.html#875" class="Generalizable">b</a> <a id="1844" href="Relation.Binary.PropositionalEquality.html#879" class="Generalizable"></a><a id="1845" class="Symbol">}</a> <a id="1847" class="Symbol"></a>
<a id="1858" class="Symbol">(</a><a id="1859" href="Relation.Binary.PropositionalEquality.html#1819" class="Bound">A</a> <a id="1861" class="Symbol"></a> <a id="1863" href="Relation.Binary.Bundles.html#1081" class="Field">Setoid.Carrier</a> <a id="1878" href="Relation.Binary.PropositionalEquality.html#1831" class="Bound">B</a><a id="1879" class="Symbol">)</a> <a id="1881" class="Symbol"></a> <a id="1883" href="Relation.Binary.PropositionalEquality.Properties.html#3981" class="Function">setoid</a> <a id="1890" href="Relation.Binary.PropositionalEquality.html#1819" class="Bound">A</a> <a id="1892" href="Function.Equality.html#1227" class="Function Operator"></a> <a id="1894" href="Relation.Binary.PropositionalEquality.html#1831" class="Bound">B</a>
<a id="1896" href="Relation.Binary.PropositionalEquality.html#1807" class="Function">→-to-⟶</a> <a id="1903" class="Symbol">=</a> <a id="1905" href="Relation.Binary.PropositionalEquality.html#1557" class="Function">:→-to-Π</a>
<a id="1914" class="Comment">------------------------------------------------------------------------</a>
<a id="1987" class="Comment">-- Inspect</a>
<a id="1999" class="Comment">-- Inspect can be used when you want to pattern match on the result r</a>
<a id="2069" class="Comment">-- of some expression e, and you also need to &quot;remember&quot; that r ≡ e.</a>
<a id="2139" class="Comment">-- See README.Inspect for an explanation of how/why to use this.</a>
<a id="2205" class="Keyword">record</a> <a id="Reveal_·_is_"></a><a id="2212" href="Relation.Binary.PropositionalEquality.html#2212" class="Record Operator">Reveal_·_is_</a> <a id="2225" class="Symbol">{</a><a id="2226" href="Relation.Binary.PropositionalEquality.html#2226" class="Bound">A</a> <a id="2228" class="Symbol">:</a> <a id="2230" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2234" href="Relation.Binary.PropositionalEquality.html#873" class="Generalizable">a</a><a id="2235" class="Symbol">}</a> <a id="2237" class="Symbol">{</a><a id="2238" href="Relation.Binary.PropositionalEquality.html#2238" class="Bound">B</a> <a id="2240" class="Symbol">:</a> <a id="2242" href="Relation.Binary.PropositionalEquality.html#2226" class="Bound">A</a> <a id="2244" class="Symbol"></a> <a id="2246" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2250" href="Relation.Binary.PropositionalEquality.html#875" class="Generalizable">b</a><a id="2251" class="Symbol">}</a>
<a id="2273" class="Symbol">(</a><a id="2274" href="Relation.Binary.PropositionalEquality.html#2274" class="Bound">f</a> <a id="2276" class="Symbol">:</a> <a id="2278" class="Symbol">(</a><a id="2279" href="Relation.Binary.PropositionalEquality.html#2279" class="Bound">x</a> <a id="2281" class="Symbol">:</a> <a id="2283" href="Relation.Binary.PropositionalEquality.html#2226" class="Bound">A</a><a id="2284" class="Symbol">)</a> <a id="2286" class="Symbol"></a> <a id="2288" href="Relation.Binary.PropositionalEquality.html#2238" class="Bound">B</a> <a id="2290" href="Relation.Binary.PropositionalEquality.html#2279" class="Bound">x</a><a id="2291" class="Symbol">)</a> <a id="2293" class="Symbol">(</a><a id="2294" href="Relation.Binary.PropositionalEquality.html#2294" class="Bound">x</a> <a id="2296" class="Symbol">:</a> <a id="2298" href="Relation.Binary.PropositionalEquality.html#2226" class="Bound">A</a><a id="2299" class="Symbol">)</a> <a id="2301" class="Symbol">(</a><a id="2302" href="Relation.Binary.PropositionalEquality.html#2302" class="Bound">y</a> <a id="2304" class="Symbol">:</a> <a id="2306" href="Relation.Binary.PropositionalEquality.html#2238" class="Bound">B</a> <a id="2308" href="Relation.Binary.PropositionalEquality.html#2294" class="Bound">x</a><a id="2309" class="Symbol">)</a> <a id="2311" class="Symbol">:</a>
<a id="2333" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2337" class="Symbol">(</a><a id="2338" href="Relation.Binary.PropositionalEquality.html#2234" class="Bound">a</a> <a id="2340" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="2342" href="Relation.Binary.PropositionalEquality.html#2250" class="Bound">b</a><a id="2343" class="Symbol">)</a> <a id="2345" class="Keyword">where</a>
<a id="2353" class="Keyword">constructor</a> <a id="[_]"></a><a id="2365" href="Relation.Binary.PropositionalEquality.html#2365" class="InductiveConstructor Operator">[_]</a>
<a id="2371" class="Keyword">field</a> <a id="Reveal_·_is_.eq"></a><a id="2377" href="Relation.Binary.PropositionalEquality.html#2377" class="Field">eq</a> <a id="2380" class="Symbol">:</a> <a id="2382" href="Relation.Binary.PropositionalEquality.html#2274" class="Bound">f</a> <a id="2384" href="Relation.Binary.PropositionalEquality.html#2294" class="Bound">x</a> <a id="2386" href="Agda.Builtin.Equality.html#133" class="Datatype Operator"></a> <a id="2388" href="Relation.Binary.PropositionalEquality.html#2302" class="Bound">y</a>
<a id="inspect"></a><a id="2391" href="Relation.Binary.PropositionalEquality.html#2391" class="Function">inspect</a> <a id="2399" class="Symbol">:</a> <a id="2401" class="Symbol"></a> <a id="2403" class="Symbol">{</a><a id="2404" href="Relation.Binary.PropositionalEquality.html#2404" class="Bound">A</a> <a id="2406" class="Symbol">:</a> <a id="2408" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2412" href="Relation.Binary.PropositionalEquality.html#873" class="Generalizable">a</a><a id="2413" class="Symbol">}</a> <a id="2415" class="Symbol">{</a><a id="2416" href="Relation.Binary.PropositionalEquality.html#2416" class="Bound">B</a> <a id="2418" class="Symbol">:</a> <a id="2420" href="Relation.Binary.PropositionalEquality.html#2404" class="Bound">A</a> <a id="2422" class="Symbol"></a> <a id="2424" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2428" href="Relation.Binary.PropositionalEquality.html#875" class="Generalizable">b</a><a id="2429" class="Symbol">}</a>
<a id="2441" class="Symbol">(</a><a id="2442" href="Relation.Binary.PropositionalEquality.html#2442" class="Bound">f</a> <a id="2444" class="Symbol">:</a> <a id="2446" class="Symbol">(</a><a id="2447" href="Relation.Binary.PropositionalEquality.html#2447" class="Bound">x</a> <a id="2449" class="Symbol">:</a> <a id="2451" href="Relation.Binary.PropositionalEquality.html#2404" class="Bound">A</a><a id="2452" class="Symbol">)</a> <a id="2454" class="Symbol"></a> <a id="2456" href="Relation.Binary.PropositionalEquality.html#2416" class="Bound">B</a> <a id="2458" href="Relation.Binary.PropositionalEquality.html#2447" class="Bound">x</a><a id="2459" class="Symbol">)</a> <a id="2461" class="Symbol">(</a><a id="2462" href="Relation.Binary.PropositionalEquality.html#2462" class="Bound">x</a> <a id="2464" class="Symbol">:</a> <a id="2466" href="Relation.Binary.PropositionalEquality.html#2404" class="Bound">A</a><a id="2467" class="Symbol">)</a> <a id="2469" class="Symbol"></a> <a id="2471" href="Relation.Binary.PropositionalEquality.html#2212" class="Record Operator">Reveal</a> <a id="2478" href="Relation.Binary.PropositionalEquality.html#2442" class="Bound">f</a> <a id="2480" href="Relation.Binary.PropositionalEquality.html#2212" class="Record Operator">·</a> <a id="2482" href="Relation.Binary.PropositionalEquality.html#2462" class="Bound">x</a> <a id="2484" href="Relation.Binary.PropositionalEquality.html#2212" class="Record Operator">is</a> <a id="2487" href="Relation.Binary.PropositionalEquality.html#2442" class="Bound">f</a> <a id="2489" href="Relation.Binary.PropositionalEquality.html#2462" class="Bound">x</a>
<a id="2491" href="Relation.Binary.PropositionalEquality.html#2391" class="Function">inspect</a> <a id="2499" href="Relation.Binary.PropositionalEquality.html#2499" class="Bound">f</a> <a id="2501" href="Relation.Binary.PropositionalEquality.html#2501" class="Bound">x</a> <a id="2503" class="Symbol">=</a> <a id="2505" href="Relation.Binary.PropositionalEquality.html#2365" class="InductiveConstructor Operator">[</a> <a id="2507" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a> <a id="2512" href="Relation.Binary.PropositionalEquality.html#2365" class="InductiveConstructor Operator">]</a>
<a id="2515" class="Comment">------------------------------------------------------------------------</a>
<a id="2588" class="Comment">-- Propositionality</a>
<a id="isPropositional"></a><a id="2609" href="Relation.Binary.PropositionalEquality.html#2609" class="Function">isPropositional</a> <a id="2625" class="Symbol">:</a> <a id="2627" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2631" href="Relation.Binary.PropositionalEquality.html#873" class="Generalizable">a</a> <a id="2633" class="Symbol"></a> <a id="2635" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2639" href="Relation.Binary.PropositionalEquality.html#873" class="Generalizable">a</a>
<a id="2641" href="Relation.Binary.PropositionalEquality.html#2609" class="Function">isPropositional</a> <a id="2657" href="Relation.Binary.PropositionalEquality.html#2657" class="Bound">A</a> <a id="2659" class="Symbol">=</a> <a id="2661" class="Symbol">(</a><a id="2662" href="Relation.Binary.PropositionalEquality.html#2662" class="Bound">a</a> <a id="2664" href="Relation.Binary.PropositionalEquality.html#2664" class="Bound">b</a> <a id="2666" class="Symbol">:</a> <a id="2668" href="Relation.Binary.PropositionalEquality.html#2657" class="Bound">A</a><a id="2669" class="Symbol">)</a> <a id="2671" class="Symbol"></a> <a id="2673" href="Relation.Binary.PropositionalEquality.html#2662" class="Bound">a</a> <a id="2675" href="Agda.Builtin.Equality.html#133" class="Datatype Operator"></a> <a id="2677" href="Relation.Binary.PropositionalEquality.html#2664" class="Bound">b</a>
<a id="2680" class="Comment">------------------------------------------------------------------------</a>
<a id="2753" class="Comment">-- More complex rearrangement lemmas</a>
<a id="2791" class="Comment">-- A lemma that is very similar to Lemma 2.4.3 from the HoTT book.</a>
<a id="naturality"></a><a id="2859" href="Relation.Binary.PropositionalEquality.html#2859" class="Function">naturality</a> <a id="2870" class="Symbol">:</a> <a id="2872" class="Symbol"></a> <a id="2874" class="Symbol">{</a><a id="2875" href="Relation.Binary.PropositionalEquality.html#2875" class="Bound">x</a> <a id="2877" href="Relation.Binary.PropositionalEquality.html#2877" class="Bound">y</a><a id="2878" class="Symbol">}</a> <a id="2880" class="Symbol">{</a><a id="2881" href="Relation.Binary.PropositionalEquality.html#2881" class="Bound">x≡y</a> <a id="2885" class="Symbol">:</a> <a id="2887" href="Relation.Binary.PropositionalEquality.html#2875" class="Bound">x</a> <a id="2889" href="Agda.Builtin.Equality.html#133" class="Datatype Operator"></a> <a id="2891" href="Relation.Binary.PropositionalEquality.html#2877" class="Bound">y</a><a id="2892" class="Symbol">}</a> <a id="2894" class="Symbol">{</a><a id="2895" href="Relation.Binary.PropositionalEquality.html#2895" class="Bound">f</a> <a id="2897" href="Relation.Binary.PropositionalEquality.html#2897" class="Bound">g</a> <a id="2899" class="Symbol">:</a> <a id="2901" href="Relation.Binary.PropositionalEquality.html#895" class="Generalizable">A</a> <a id="2903" class="Symbol"></a> <a id="2905" href="Relation.Binary.PropositionalEquality.html#909" class="Generalizable">B</a><a id="2906" class="Symbol">}</a>
<a id="2921" class="Symbol">(</a><a id="2922" href="Relation.Binary.PropositionalEquality.html#2922" class="Bound">f≡g</a> <a id="2926" class="Symbol">:</a> <a id="2928" class="Symbol"></a> <a id="2930" href="Relation.Binary.PropositionalEquality.html#2930" class="Bound">x</a> <a id="2932" class="Symbol"></a> <a id="2934" href="Relation.Binary.PropositionalEquality.html#2895" class="Bound">f</a> <a id="2936" href="Relation.Binary.PropositionalEquality.html#2930" class="Bound">x</a> <a id="2938" href="Agda.Builtin.Equality.html#133" class="Datatype Operator"></a> <a id="2940" href="Relation.Binary.PropositionalEquality.html#2897" class="Bound">g</a> <a id="2942" href="Relation.Binary.PropositionalEquality.html#2930" class="Bound">x</a><a id="2943" class="Symbol">)</a> <a id="2945" class="Symbol"></a>
<a id="2960" href="Relation.Binary.PropositionalEquality.Core.html#1738" class="Function">trans</a> <a id="2966" class="Symbol">(</a><a id="2967" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="2972" href="Relation.Binary.PropositionalEquality.html#2895" class="Bound">f</a> <a id="2974" href="Relation.Binary.PropositionalEquality.html#2881" class="Bound">x≡y</a><a id="2977" class="Symbol">)</a> <a id="2979" class="Symbol">(</a><a id="2980" href="Relation.Binary.PropositionalEquality.html#2922" class="Bound">f≡g</a> <a id="2984" href="Relation.Binary.PropositionalEquality.html#2877" class="Bound">y</a><a id="2985" class="Symbol">)</a> <a id="2987" href="Agda.Builtin.Equality.html#133" class="Datatype Operator"></a> <a id="2989" href="Relation.Binary.PropositionalEquality.Core.html#1738" class="Function">trans</a> <a id="2995" class="Symbol">(</a><a id="2996" href="Relation.Binary.PropositionalEquality.html#2922" class="Bound">f≡g</a> <a id="3000" href="Relation.Binary.PropositionalEquality.html#2875" class="Bound">x</a><a id="3001" class="Symbol">)</a> <a id="3003" class="Symbol">(</a><a id="3004" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="3009" href="Relation.Binary.PropositionalEquality.html#2897" class="Bound">g</a> <a id="3011" href="Relation.Binary.PropositionalEquality.html#2881" class="Bound">x≡y</a><a id="3014" class="Symbol">)</a>
<a id="3016" href="Relation.Binary.PropositionalEquality.html#2859" class="Function">naturality</a> <a id="3027" class="Symbol">{</a><a id="3028" class="Argument">x</a> <a id="3030" class="Symbol">=</a> <a id="3032" href="Relation.Binary.PropositionalEquality.html#3032" class="Bound">x</a><a id="3033" class="Symbol">}</a> <a id="3035" class="Symbol">{</a><a id="3036" class="Argument">x≡y</a> <a id="3040" class="Symbol">=</a> <a id="3042" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a><a id="3046" class="Symbol">}</a> <a id="3048" href="Relation.Binary.PropositionalEquality.html#3048" class="Bound">f≡g</a> <a id="3052" class="Symbol">=</a>
<a id="3056" href="Relation.Binary.PropositionalEquality.html#3048" class="Bound">f≡g</a> <a id="3060" href="Relation.Binary.PropositionalEquality.html#3032" class="Bound">x</a> <a id="3076" href="Relation.Binary.PropositionalEquality.Core.html#2932" class="Function">≡⟨</a> <a id="3079" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="3083" class="Symbol">(</a><a id="3084" href="Relation.Binary.PropositionalEquality.Properties.html#852" class="Function">trans-reflʳ</a> <a id="3096" class="Symbol">_)</a> <a id="3099" href="Relation.Binary.PropositionalEquality.Core.html#2932" class="Function"></a>
<a id="3103" href="Relation.Binary.PropositionalEquality.Core.html#1738" class="Function">trans</a> <a id="3109" class="Symbol">(</a><a id="3110" href="Relation.Binary.PropositionalEquality.html#3048" class="Bound">f≡g</a> <a id="3114" href="Relation.Binary.PropositionalEquality.html#3032" class="Bound">x</a><a id="3115" class="Symbol">)</a> <a id="3117" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a> <a id="3123" href="Relation.Binary.PropositionalEquality.Core.html#3114" class="Function Operator"></a>
<a id="3127" class="Keyword">where</a> <a id="3133" class="Keyword">open</a> <a id="3138" href="Relation.Binary.PropositionalEquality.Core.html#2717" class="Module">≡-Reasoning</a>
<a id="3151" class="Comment">-- A lemma that is very similar to Corollary 2.4.4 from the HoTT book.</a>
<a id="cong-≡id"></a><a id="3223" href="Relation.Binary.PropositionalEquality.html#3223" class="Function">cong-≡id</a> <a id="3232" class="Symbol">:</a> <a id="3234" class="Symbol"></a> <a id="3236" class="Symbol">{</a><a id="3237" href="Relation.Binary.PropositionalEquality.html#3237" class="Bound">f</a> <a id="3239" class="Symbol">:</a> <a id="3241" href="Relation.Binary.PropositionalEquality.html#895" class="Generalizable">A</a> <a id="3243" class="Symbol"></a> <a id="3245" href="Relation.Binary.PropositionalEquality.html#895" class="Generalizable">A</a><a id="3246" class="Symbol">}</a> <a id="3248" class="Symbol">{</a><a id="3249" href="Relation.Binary.PropositionalEquality.html#3249" class="Bound">x</a> <a id="3251" class="Symbol">:</a> <a id="3253" href="Relation.Binary.PropositionalEquality.html#895" class="Generalizable">A</a><a id="3254" class="Symbol">}</a> <a id="3256" class="Symbol">(</a><a id="3257" href="Relation.Binary.PropositionalEquality.html#3257" class="Bound">f≡id</a> <a id="3262" class="Symbol">:</a> <a id="3264" class="Symbol"></a> <a id="3266" href="Relation.Binary.PropositionalEquality.html#3266" class="Bound">x</a> <a id="3268" class="Symbol"></a> <a id="3270" href="Relation.Binary.PropositionalEquality.html#3237" class="Bound">f</a> <a id="3272" href="Relation.Binary.PropositionalEquality.html#3266" class="Bound">x</a> <a id="3274" href="Agda.Builtin.Equality.html#133" class="Datatype Operator"></a> <a id="3276" href="Relation.Binary.PropositionalEquality.html#3266" class="Bound">x</a><a id="3277" class="Symbol">)</a> <a id="3279" class="Symbol"></a>
<a id="3292" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="3297" href="Relation.Binary.PropositionalEquality.html#3237" class="Bound">f</a> <a id="3299" class="Symbol">(</a><a id="3300" href="Relation.Binary.PropositionalEquality.html#3257" class="Bound">f≡id</a> <a id="3305" href="Relation.Binary.PropositionalEquality.html#3249" class="Bound">x</a><a id="3306" class="Symbol">)</a> <a id="3308" href="Agda.Builtin.Equality.html#133" class="Datatype Operator"></a> <a id="3310" href="Relation.Binary.PropositionalEquality.html#3257" class="Bound">f≡id</a> <a id="3315" class="Symbol">(</a><a id="3316" href="Relation.Binary.PropositionalEquality.html#3237" class="Bound">f</a> <a id="3318" href="Relation.Binary.PropositionalEquality.html#3249" class="Bound">x</a><a id="3319" class="Symbol">)</a>
<a id="3321" href="Relation.Binary.PropositionalEquality.html#3223" class="Function">cong-≡id</a> <a id="3330" class="Symbol">{</a><a id="3331" class="Argument">f</a> <a id="3333" class="Symbol">=</a> <a id="3335" href="Relation.Binary.PropositionalEquality.html#3335" class="Bound">f</a><a id="3336" class="Symbol">}</a> <a id="3338" class="Symbol">{</a><a id="3339" href="Relation.Binary.PropositionalEquality.html#3339" class="Bound">x</a><a id="3340" class="Symbol">}</a> <a id="3342" href="Relation.Binary.PropositionalEquality.html#3342" class="Bound">f≡id</a> <a id="3347" class="Symbol">=</a>
<a id="3351" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="3356" href="Relation.Binary.PropositionalEquality.html#3335" class="Bound">f</a> <a id="3358" href="Relation.Binary.PropositionalEquality.html#4119" class="Function">fx≡x</a> <a id="3398" href="Relation.Binary.PropositionalEquality.Core.html#2932" class="Function">≡⟨</a> <a id="3401" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="3405" class="Symbol">(</a><a id="3406" href="Relation.Binary.PropositionalEquality.Properties.html#852" class="Function">trans-reflʳ</a> <a id="3418" class="Symbol">_)</a> <a id="3421" href="Relation.Binary.PropositionalEquality.Core.html#2932" class="Function"></a>
<a id="3425" href="Relation.Binary.PropositionalEquality.Core.html#1738" class="Function">trans</a> <a id="3431" class="Symbol">(</a><a id="3432" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="3437" href="Relation.Binary.PropositionalEquality.html#3335" class="Bound">f</a> <a id="3439" href="Relation.Binary.PropositionalEquality.html#4119" class="Function">fx≡x</a><a id="3443" class="Symbol">)</a> <a id="3445" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a> <a id="3472" href="Relation.Binary.PropositionalEquality.Core.html#2932" class="Function">≡⟨</a> <a id="3475" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="3480" class="Symbol">(</a><a id="3481" href="Relation.Binary.PropositionalEquality.Core.html#1738" class="Function">trans</a> <a id="3487" class="Symbol">_)</a> <a id="3490" class="Symbol">(</a><a id="3491" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="3495" class="Symbol">(</a><a id="3496" href="Relation.Binary.PropositionalEquality.Properties.html#1157" class="Function">trans-symʳ</a> <a id="3507" href="Relation.Binary.PropositionalEquality.html#4119" class="Function">fx≡x</a><a id="3511" class="Symbol">))</a> <a id="3514" href="Relation.Binary.PropositionalEquality.Core.html#2932" class="Function"></a>
<a id="3518" href="Relation.Binary.PropositionalEquality.Core.html#1738" class="Function">trans</a> <a id="3524" class="Symbol">(</a><a id="3525" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="3530" href="Relation.Binary.PropositionalEquality.html#3335" class="Bound">f</a> <a id="3532" href="Relation.Binary.PropositionalEquality.html#4119" class="Function">fx≡x</a><a id="3536" class="Symbol">)</a> <a id="3538" class="Symbol">(</a><a id="3539" href="Relation.Binary.PropositionalEquality.Core.html#1738" class="Function">trans</a> <a id="3545" href="Relation.Binary.PropositionalEquality.html#4119" class="Function">fx≡x</a> <a id="3550" class="Symbol">(</a><a id="3551" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="3555" href="Relation.Binary.PropositionalEquality.html#4119" class="Function">fx≡x</a><a id="3559" class="Symbol">))</a> <a id="3565" href="Relation.Binary.PropositionalEquality.Core.html#2932" class="Function">≡⟨</a> <a id="3568" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="3572" class="Symbol">(</a><a id="3573" href="Relation.Binary.PropositionalEquality.Properties.html#934" class="Function">trans-assoc</a> <a id="3585" class="Symbol">(</a><a id="3586" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="3591" href="Relation.Binary.PropositionalEquality.html#3335" class="Bound">f</a> <a id="3593" href="Relation.Binary.PropositionalEquality.html#4119" class="Function">fx≡x</a><a id="3597" class="Symbol">))</a> <a id="3600" href="Relation.Binary.PropositionalEquality.Core.html#2932" class="Function"></a>
<a id="3604" href="Relation.Binary.PropositionalEquality.Core.html#1738" class="Function">trans</a> <a id="3610" class="Symbol">(</a><a id="3611" href="Relation.Binary.PropositionalEquality.Core.html#1738" class="Function">trans</a> <a id="3617" class="Symbol">(</a><a id="3618" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="3623" href="Relation.Binary.PropositionalEquality.html#3335" class="Bound">f</a> <a id="3625" href="Relation.Binary.PropositionalEquality.html#4119" class="Function">fx≡x</a><a id="3629" class="Symbol">)</a> <a id="3631" href="Relation.Binary.PropositionalEquality.html#4119" class="Function">fx≡x</a><a id="3635" class="Symbol">)</a> <a id="3637" class="Symbol">(</a><a id="3638" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="3642" href="Relation.Binary.PropositionalEquality.html#4119" class="Function">fx≡x</a><a id="3646" class="Symbol">)</a> <a id="3651" href="Relation.Binary.PropositionalEquality.Core.html#2932" class="Function">≡⟨</a> <a id="3654" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="3659" class="Symbol"></a> <a id="3662" href="Relation.Binary.PropositionalEquality.html#3662" class="Bound">p</a> <a id="3664" class="Symbol"></a> <a id="3666" href="Relation.Binary.PropositionalEquality.Core.html#1738" class="Function">trans</a> <a id="3672" href="Relation.Binary.PropositionalEquality.html#3662" class="Bound">p</a> <a id="3674" class="Symbol">(</a><a id="3675" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="3679" class="Symbol">_))</a> <a id="3683" class="Symbol">(</a><a id="3684" href="Relation.Binary.PropositionalEquality.html#2859" class="Function">naturality</a> <a id="3695" href="Relation.Binary.PropositionalEquality.html#3342" class="Bound">f≡id</a><a id="3699" class="Symbol">)</a> <a id="3701" href="Relation.Binary.PropositionalEquality.Core.html#2932" class="Function"></a>
<a id="3705" href="Relation.Binary.PropositionalEquality.Core.html#1738" class="Function">trans</a> <a id="3711" class="Symbol">(</a><a id="3712" href="Relation.Binary.PropositionalEquality.Core.html#1738" class="Function">trans</a> <a id="3718" href="Relation.Binary.PropositionalEquality.html#4134" class="Function">f²x≡x</a> <a id="3724" class="Symbol">(</a><a id="3725" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="3730" href="Function.Base.html#624" class="Function">id</a> <a id="3733" href="Relation.Binary.PropositionalEquality.html#4119" class="Function">fx≡x</a><a id="3737" class="Symbol">))</a> <a id="3740" class="Symbol">(</a><a id="3741" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="3745" href="Relation.Binary.PropositionalEquality.html#4119" class="Function">fx≡x</a><a id="3749" class="Symbol">)</a> <a id="3752" href="Relation.Binary.PropositionalEquality.Core.html#2932" class="Function">≡⟨</a> <a id="3755" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="3760" class="Symbol"></a> <a id="3763" href="Relation.Binary.PropositionalEquality.html#3763" class="Bound">p</a> <a id="3765" class="Symbol"></a> <a id="3767" href="Relation.Binary.PropositionalEquality.Core.html#1738" class="Function">trans</a> <a id="3773" class="Symbol">(</a><a id="3774" href="Relation.Binary.PropositionalEquality.Core.html#1738" class="Function">trans</a> <a id="3780" href="Relation.Binary.PropositionalEquality.html#4134" class="Function">f²x≡x</a> <a id="3786" href="Relation.Binary.PropositionalEquality.html#3763" class="Bound">p</a><a id="3787" class="Symbol">)</a> <a id="3789" class="Symbol">(</a><a id="3790" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="3794" href="Relation.Binary.PropositionalEquality.html#4119" class="Function">fx≡x</a><a id="3798" class="Symbol">))</a> <a id="3801" class="Symbol">(</a><a id="3802" href="Relation.Binary.PropositionalEquality.Properties.html#1574" class="Function">cong-id</a> <a id="3810" class="Symbol">_)</a> <a id="3813" href="Relation.Binary.PropositionalEquality.Core.html#2932" class="Function"></a>
<a id="3817" href="Relation.Binary.PropositionalEquality.Core.html#1738" class="Function">trans</a> <a id="3823" class="Symbol">(</a><a id="3824" href="Relation.Binary.PropositionalEquality.Core.html#1738" class="Function">trans</a> <a id="3830" href="Relation.Binary.PropositionalEquality.html#4134" class="Function">f²x≡x</a> <a id="3836" href="Relation.Binary.PropositionalEquality.html#4119" class="Function">fx≡x</a><a id="3840" class="Symbol">)</a> <a id="3842" class="Symbol">(</a><a id="3843" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="3847" href="Relation.Binary.PropositionalEquality.html#4119" class="Function">fx≡x</a><a id="3851" class="Symbol">)</a> <a id="3864" href="Relation.Binary.PropositionalEquality.Core.html#2932" class="Function">≡⟨</a> <a id="3867" href="Relation.Binary.PropositionalEquality.Properties.html#934" class="Function">trans-assoc</a> <a id="3879" href="Relation.Binary.PropositionalEquality.html#4134" class="Function">f²x≡x</a> <a id="3885" href="Relation.Binary.PropositionalEquality.Core.html#2932" class="Function"></a>
<a id="3889" href="Relation.Binary.PropositionalEquality.Core.html#1738" class="Function">trans</a> <a id="3895" href="Relation.Binary.PropositionalEquality.html#4134" class="Function">f²x≡x</a> <a id="3901" class="Symbol">(</a><a id="3902" href="Relation.Binary.PropositionalEquality.Core.html#1738" class="Function">trans</a> <a id="3908" href="Relation.Binary.PropositionalEquality.html#4119" class="Function">fx≡x</a> <a id="3913" class="Symbol">(</a><a id="3914" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="3918" href="Relation.Binary.PropositionalEquality.html#4119" class="Function">fx≡x</a><a id="3922" class="Symbol">))</a> <a id="3936" href="Relation.Binary.PropositionalEquality.Core.html#2932" class="Function">≡⟨</a> <a id="3939" href="Relation.Binary.PropositionalEquality.Core.html#1139" class="Function">cong</a> <a id="3944" class="Symbol">(</a><a id="3945" href="Relation.Binary.PropositionalEquality.Core.html#1738" class="Function">trans</a> <a id="3951" class="Symbol">_)</a> <a id="3954" class="Symbol">(</a><a id="3955" href="Relation.Binary.PropositionalEquality.Properties.html#1157" class="Function">trans-symʳ</a> <a id="3966" href="Relation.Binary.PropositionalEquality.html#4119" class="Function">fx≡x</a><a id="3970" class="Symbol">)</a> <a id="3972" href="Relation.Binary.PropositionalEquality.Core.html#2932" class="Function"></a>
<a id="3976" href="Relation.Binary.PropositionalEquality.Core.html#1738" class="Function">trans</a> <a id="3982" href="Relation.Binary.PropositionalEquality.html#4134" class="Function">f²x≡x</a> <a id="3988" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a> <a id="4023" href="Relation.Binary.PropositionalEquality.Core.html#2932" class="Function">≡⟨</a> <a id="4026" href="Relation.Binary.PropositionalEquality.Properties.html#852" class="Function">trans-reflʳ</a> <a id="4038" class="Symbol">_</a> <a id="4040" href="Relation.Binary.PropositionalEquality.Core.html#2932" class="Function"></a>
<a id="4044" href="Relation.Binary.PropositionalEquality.html#3342" class="Bound">f≡id</a> <a id="4049" class="Symbol">(</a><a id="4050" href="Relation.Binary.PropositionalEquality.html#3335" class="Bound">f</a> <a id="4052" href="Relation.Binary.PropositionalEquality.html#3339" class="Bound">x</a><a id="4053" class="Symbol">)</a> <a id="4091" href="Relation.Binary.PropositionalEquality.Core.html#3114" class="Function Operator"></a>
<a id="4095" class="Keyword">where</a> <a id="4101" class="Keyword">open</a> <a id="4106" href="Relation.Binary.PropositionalEquality.Core.html#2717" class="Module">≡-Reasoning</a><a id="4117" class="Symbol">;</a> <a id="4119" href="Relation.Binary.PropositionalEquality.html#4119" class="Function">fx≡x</a> <a id="4124" class="Symbol">=</a> <a id="4126" href="Relation.Binary.PropositionalEquality.html#3342" class="Bound">f≡id</a> <a id="4131" href="Relation.Binary.PropositionalEquality.html#3339" class="Bound">x</a><a id="4132" class="Symbol">;</a> <a id="4134" href="Relation.Binary.PropositionalEquality.html#4134" class="Function">f²x≡x</a> <a id="4140" class="Symbol">=</a> <a id="4142" href="Relation.Binary.PropositionalEquality.html#3342" class="Bound">f≡id</a> <a id="4147" class="Symbol">(</a><a id="4148" href="Relation.Binary.PropositionalEquality.html#3335" class="Bound">f</a> <a id="4150" href="Relation.Binary.PropositionalEquality.html#3339" class="Bound">x</a><a id="4151" class="Symbol">)</a>
<a id="4154" class="Keyword">module</a> <a id="4161" href="Relation.Binary.PropositionalEquality.html#4161" class="Module">_</a> <a id="4163" class="Symbol">(</a><a id="4164" href="Relation.Binary.PropositionalEquality.html#4164" class="Bound Operator">_≟_</a> <a id="4168" class="Symbol">:</a> <a id="4170" href="Relation.Binary.Definitions.html#4584" class="Function">Decidable</a> <a id="4180" class="Symbol">{</a><a id="4181" class="Argument">A</a> <a id="4183" class="Symbol">=</a> <a id="4185" href="Relation.Binary.PropositionalEquality.html#895" class="Generalizable">A</a><a id="4186" class="Symbol">}</a> <a id="4188" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a><a id="4191" class="Symbol">)</a> <a id="4193" class="Symbol">{</a><a id="4194" href="Relation.Binary.PropositionalEquality.html#4194" class="Bound">x</a> <a id="4196" href="Relation.Binary.PropositionalEquality.html#4196" class="Bound">y</a> <a id="4198" class="Symbol">:</a> <a id="4200" href="Relation.Binary.PropositionalEquality.html#895" class="Generalizable">A</a><a id="4201" class="Symbol">}</a> <a id="4203" class="Keyword">where</a>
<a id="4212" href="Relation.Binary.PropositionalEquality.html#4212" class="Function">≡-≟-identity</a> <a id="4225" class="Symbol">:</a> <a id="4227" class="Symbol">(</a><a id="4228" href="Relation.Binary.PropositionalEquality.html#4228" class="Bound">eq</a> <a id="4231" class="Symbol">:</a> <a id="4233" href="Relation.Binary.PropositionalEquality.html#4194" class="Bound">x</a> <a id="4235" href="Agda.Builtin.Equality.html#133" class="Datatype Operator"></a> <a id="4237" href="Relation.Binary.PropositionalEquality.html#4196" class="Bound">y</a><a id="4238" class="Symbol">)</a> <a id="4240" class="Symbol"></a> <a id="4242" href="Relation.Binary.PropositionalEquality.html#4194" class="Bound">x</a> <a id="4244" href="Relation.Binary.PropositionalEquality.html#4164" class="Bound Operator"></a> <a id="4246" href="Relation.Binary.PropositionalEquality.html#4196" class="Bound">y</a> <a id="4248" href="Agda.Builtin.Equality.html#133" class="Datatype Operator"></a> <a id="4250" href="Relation.Nullary.html#1657" class="InductiveConstructor">yes</a> <a id="4254" href="Relation.Binary.PropositionalEquality.html#4228" class="Bound">eq</a>
<a id="4259" href="Relation.Binary.PropositionalEquality.html#4212" class="Function">≡-≟-identity</a> <a id="4272" href="Relation.Binary.PropositionalEquality.html#4272" class="Bound">eq</a> <a id="4275" class="Symbol">=</a> <a id="4277" href="Relation.Nullary.Decidable.Core.html#3422" class="Function">dec-yes-irr</a> <a id="4289" class="Symbol">(</a><a id="4290" href="Relation.Binary.PropositionalEquality.html#4194" class="Bound">x</a> <a id="4292" href="Relation.Binary.PropositionalEquality.html#4164" class="Bound Operator"></a> <a id="4294" href="Relation.Binary.PropositionalEquality.html#4196" class="Bound">y</a><a id="4295" class="Symbol">)</a> <a id="4297" class="Symbol">(</a><a id="4298" href="Axiom.UniquenessOfIdentityProofs.html#2697" class="Function">Decidable⇒UIP.≡-irrelevant</a> <a id="4325" href="Relation.Binary.PropositionalEquality.html#4164" class="Bound Operator">_≟_</a><a id="4328" class="Symbol">)</a> <a id="4330" href="Relation.Binary.PropositionalEquality.html#4272" class="Bound">eq</a>
<a id="4336" href="Relation.Binary.PropositionalEquality.html#4336" class="Function">≢-≟-identity</a> <a id="4349" class="Symbol">:</a> <a id="4351" href="Relation.Binary.PropositionalEquality.html#4194" class="Bound">x</a> <a id="4353" href="Relation.Binary.PropositionalEquality.Core.html#839" class="Function Operator"></a> <a id="4355" href="Relation.Binary.PropositionalEquality.html#4196" class="Bound">y</a> <a id="4357" class="Symbol"></a> <a id="4359" href="Data.Product.html#1378" class="Function"></a> <a id="4361" class="Symbol">λ</a> <a id="4363" href="Relation.Binary.PropositionalEquality.html#4363" class="Bound">¬eq</a> <a id="4367" class="Symbol"></a> <a id="4369" href="Relation.Binary.PropositionalEquality.html#4194" class="Bound">x</a> <a id="4371" href="Relation.Binary.PropositionalEquality.html#4164" class="Bound Operator"></a> <a id="4373" href="Relation.Binary.PropositionalEquality.html#4196" class="Bound">y</a> <a id="4375" href="Agda.Builtin.Equality.html#133" class="Datatype Operator"></a> <a id="4377" href="Relation.Nullary.html#1694" class="InductiveConstructor">no</a> <a id="4380" href="Relation.Binary.PropositionalEquality.html#4363" class="Bound">¬eq</a>
<a id="4386" href="Relation.Binary.PropositionalEquality.html#4336" class="Function">≢-≟-identity</a> <a id="4399" href="Relation.Binary.PropositionalEquality.html#4399" class="Bound">¬eq</a> <a id="4403" class="Symbol">=</a> <a id="4405" href="Relation.Nullary.Decidable.Core.html#3296" class="Function">dec-no</a> <a id="4412" class="Symbol">(</a><a id="4413" href="Relation.Binary.PropositionalEquality.html#4194" class="Bound">x</a> <a id="4415" href="Relation.Binary.PropositionalEquality.html#4164" class="Bound Operator"></a> <a id="4417" href="Relation.Binary.PropositionalEquality.html#4196" class="Bound">y</a><a id="4418" class="Symbol">)</a> <a id="4420" href="Relation.Binary.PropositionalEquality.html#4399" class="Bound">¬eq</a>
<a id="4425" class="Comment">------------------------------------------------------------------------</a>
<a id="4498" class="Comment">-- DEPRECATED NAMES</a>
<a id="4518" class="Comment">------------------------------------------------------------------------</a>
<a id="4591" class="Comment">-- Please use the new names as continuing support for the old names is</a>
<a id="4662" class="Comment">-- not guaranteed.</a>
<a id="4682" class="Comment">-- Version 1.0</a>
<a id="Extensionality"></a><a id="4698" href="Relation.Binary.PropositionalEquality.html#4698" class="Function">Extensionality</a> <a id="4713" class="Symbol">=</a> <a id="4715" href="Axiom.Extensionality.Propositional.html#750" class="Function">Ext.Extensionality</a>
<a id="4734" class="Symbol">{-#</a> <a id="4738" class="Keyword">WARNING_ON_USAGE</a> <a id="4755" class="Pragma">Extensionality</a>
<a id="4770" class="String">&quot;Warning: Extensionality was deprecated in v1.0.
Please use Extensionality from `Axiom.Extensionality.Propositional` instead.&quot;</a>
<a id="4897" class="Symbol">#-}</a>
<a id="extensionality-for-lower-levels"></a><a id="4901" href="Relation.Binary.PropositionalEquality.html#4901" class="Function">extensionality-for-lower-levels</a> <a id="4933" class="Symbol">=</a> <a id="4935" href="Axiom.Extensionality.Propositional.html#1313" class="Function">Ext.lower-extensionality</a>
<a id="4960" class="Symbol">{-#</a> <a id="4964" class="Keyword">WARNING_ON_USAGE</a> <a id="4981" class="Pragma">extensionality-for-lower-levels</a>
<a id="5013" class="String">&quot;Warning: extensionality-for-lower-levels was deprecated in v1.0.
Please use lower-extensionality from `Axiom.Extensionality.Propositional` instead.&quot;</a>
<a id="5163" class="Symbol">#-}</a>
<a id="∀-extensionality"></a><a id="5167" href="Relation.Binary.PropositionalEquality.html#5167" class="Function">∀-extensionality</a> <a id="5184" class="Symbol">=</a> <a id="5186" href="Axiom.Extensionality.Propositional.html#1673" class="Function">Ext.∀-extensionality</a>
<a id="5207" class="Symbol">{-#</a> <a id="5211" class="Keyword">WARNING_ON_USAGE</a> <a id="5228" class="Pragma">∀-extensionality</a>
<a id="5245" class="String">&quot;Warning: ∀-extensionality was deprecated in v1.0.
Please use ∀-extensionality from `Axiom.Extensionality.Propositional` instead.&quot;</a>
<a id="5376" class="Symbol">#-}</a>
</pre></body></html>