mirror of
https://git8.cs.fau.de/theses/bsc-leon-vatthauer.git
synced 2024-05-31 07:28:34 +02:00
45 lines
9 KiB
HTML
45 lines
9 KiB
HTML
|
<!DOCTYPE HTML>
|
|||
|
<html><head><meta charset="utf-8"><title>Data.Product</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">-- Products</a>
|
|||
|
<a id="118" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
|
|||
|
<a id="192" class="Symbol">{-#</a> <a id="196" class="Keyword">OPTIONS</a> <a id="204" class="Pragma">--cubical-compatible</a> <a id="225" class="Pragma">--safe</a> <a id="232" class="Symbol">#-}</a>
|
|||
|
|
|||
|
<a id="237" class="Keyword">module</a> <a id="244" href="Data.Product.html" class="Module">Data.Product</a> <a id="257" class="Keyword">where</a>
|
|||
|
|
|||
|
<a id="264" class="Keyword">open</a> <a id="269" class="Keyword">import</a> <a id="276" href="Function.Base.html" class="Module">Function.Base</a>
|
|||
|
<a id="290" class="Keyword">open</a> <a id="295" class="Keyword">import</a> <a id="302" href="Level.html" class="Module">Level</a>
|
|||
|
<a id="308" class="Keyword">open</a> <a id="313" class="Keyword">import</a> <a id="320" href="Relation.Nullary.Negation.Core.html" class="Module">Relation.Nullary.Negation.Core</a>
|
|||
|
|
|||
|
<a id="352" class="Keyword">private</a>
|
|||
|
<a id="362" class="Keyword">variable</a>
|
|||
|
<a id="375" href="Data.Product.html#375" class="Generalizable">a</a> <a id="377" href="Data.Product.html#377" class="Generalizable">b</a> <a id="379" href="Data.Product.html#379" class="Generalizable">c</a> <a id="381" href="Data.Product.html#381" class="Generalizable">ℓ</a> <a id="383" class="Symbol">:</a> <a id="385" href="Agda.Primitive.html#742" class="Postulate">Level</a>
|
|||
|
<a id="395" href="Data.Product.html#395" class="Generalizable">A</a> <a id="397" href="Data.Product.html#397" class="Generalizable">B</a> <a id="399" class="Symbol">:</a> <a id="401" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="405" href="Data.Product.html#375" class="Generalizable">a</a>
|
|||
|
|
|||
|
<a id="408" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="481" class="Comment">-- Definition of dependent products</a>
|
|||
|
|
|||
|
<a id="518" class="Keyword">open</a> <a id="523" class="Keyword">import</a> <a id="530" href="Data.Product.Base.html" class="Module">Data.Product.Base</a> <a id="548" class="Keyword">public</a>
|
|||
|
|
|||
|
<a id="556" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="629" class="Comment">-- Negation of existential quantifier</a>
|
|||
|
|
|||
|
<a id="∄"></a><a id="668" href="Data.Product.html#668" class="Function">∄</a> <a id="670" class="Symbol">:</a> <a id="672" class="Symbol">∀</a> <a id="674" class="Symbol">{</a><a id="675" href="Data.Product.html#675" class="Bound">A</a> <a id="677" class="Symbol">:</a> <a id="679" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="683" href="Data.Product.html#375" class="Generalizable">a</a><a id="684" class="Symbol">}</a> <a id="686" class="Symbol">→</a> <a id="688" class="Symbol">(</a><a id="689" href="Data.Product.html#675" class="Bound">A</a> <a id="691" class="Symbol">→</a> <a id="693" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="697" href="Data.Product.html#377" class="Generalizable">b</a><a id="698" class="Symbol">)</a> <a id="700" class="Symbol">→</a> <a id="702" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="706" class="Symbol">(</a><a id="707" href="Data.Product.html#375" class="Generalizable">a</a> <a id="709" href="Agda.Primitive.html#961" class="Primitive Operator">⊔</a> <a id="711" href="Data.Product.html#377" class="Generalizable">b</a><a id="712" class="Symbol">)</a>
|
|||
|
<a id="714" href="Data.Product.html#668" class="Function">∄</a> <a id="716" href="Data.Product.html#716" class="Bound">P</a> <a id="718" class="Symbol">=</a> <a id="720" href="Relation.Nullary.Negation.Core.html#698" class="Function Operator">¬</a> <a id="722" href="Data.Product.Base.html#852" class="Function">∃</a> <a id="724" href="Data.Product.html#716" class="Bound">P</a>
|
|||
|
|
|||
|
<a id="727" class="Comment">-- Unique existence (parametrised by an underlying equality).</a>
|
|||
|
|
|||
|
<a id="∃!"></a><a id="790" href="Data.Product.html#790" class="Function">∃!</a> <a id="793" class="Symbol">:</a> <a id="795" class="Symbol">{</a><a id="796" href="Data.Product.html#796" class="Bound">A</a> <a id="798" class="Symbol">:</a> <a id="800" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="804" href="Data.Product.html#375" class="Generalizable">a</a><a id="805" class="Symbol">}</a> <a id="807" class="Symbol">→</a> <a id="809" class="Symbol">(</a><a id="810" href="Data.Product.html#796" class="Bound">A</a> <a id="812" class="Symbol">→</a> <a id="814" href="Data.Product.html#796" class="Bound">A</a> <a id="816" class="Symbol">→</a> <a id="818" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="822" href="Data.Product.html#381" class="Generalizable">ℓ</a><a id="823" class="Symbol">)</a> <a id="825" class="Symbol">→</a> <a id="827" class="Symbol">(</a><a id="828" href="Data.Product.html#796" class="Bound">A</a> <a id="830" class="Symbol">→</a> <a id="832" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="836" href="Data.Product.html#377" class="Generalizable">b</a><a id="837" class="Symbol">)</a> <a id="839" class="Symbol">→</a> <a id="841" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="845" class="Symbol">(</a><a id="846" href="Data.Product.html#375" class="Generalizable">a</a> <a id="848" href="Agda.Primitive.html#961" class="Primitive Operator">⊔</a> <a id="850" href="Data.Product.html#377" class="Generalizable">b</a> <a id="852" href="Agda.Primitive.html#961" class="Primitive Operator">⊔</a> <a id="854" href="Data.Product.html#381" class="Generalizable">ℓ</a><a id="855" class="Symbol">)</a>
|
|||
|
<a id="857" href="Data.Product.html#790" class="Function">∃!</a> <a id="860" href="Data.Product.html#860" class="Bound Operator">_≈_</a> <a id="864" href="Data.Product.html#864" class="Bound">B</a> <a id="866" class="Symbol">=</a> <a id="868" href="Data.Product.Base.html#852" class="Function">∃</a> <a id="870" class="Symbol">λ</a> <a id="872" href="Data.Product.html#872" class="Bound">x</a> <a id="874" class="Symbol">→</a> <a id="876" href="Data.Product.html#864" class="Bound">B</a> <a id="878" href="Data.Product.html#872" class="Bound">x</a> <a id="880" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="882" class="Symbol">(∀</a> <a id="885" class="Symbol">{</a><a id="886" href="Data.Product.html#886" class="Bound">y</a><a id="887" class="Symbol">}</a> <a id="889" class="Symbol">→</a> <a id="891" href="Data.Product.html#864" class="Bound">B</a> <a id="893" href="Data.Product.html#886" class="Bound">y</a> <a id="895" class="Symbol">→</a> <a id="897" href="Data.Product.html#872" class="Bound">x</a> <a id="899" href="Data.Product.html#860" class="Bound Operator">≈</a> <a id="901" href="Data.Product.html#886" class="Bound">y</a><a id="902" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="905" class="Comment">-- Syntax</a>
|
|||
|
|
|||
|
<a id="916" class="Keyword">infix</a> <a id="922" class="Number">2</a> <a id="924" href="Data.Product.html#934" class="Function">∄-syntax</a>
|
|||
|
|
|||
|
<a id="∄-syntax"></a><a id="934" href="Data.Product.html#934" class="Function">∄-syntax</a> <a id="943" class="Symbol">:</a> <a id="945" class="Symbol">∀</a> <a id="947" class="Symbol">{</a><a id="948" href="Data.Product.html#948" class="Bound">A</a> <a id="950" class="Symbol">:</a> <a id="952" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="956" href="Data.Product.html#375" class="Generalizable">a</a><a id="957" class="Symbol">}</a> <a id="959" class="Symbol">→</a> <a id="961" class="Symbol">(</a><a id="962" href="Data.Product.html#948" class="Bound">A</a> <a id="964" class="Symbol">→</a> <a id="966" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="970" href="Data.Product.html#377" class="Generalizable">b</a><a id="971" class="Symbol">)</a> <a id="973" class="Symbol">→</a> <a id="975" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="979" class="Symbol">(</a><a id="980" href="Data.Product.html#375" class="Generalizable">a</a> <a id="982" href="Agda.Primitive.html#961" class="Primitive Operator">⊔</a> <a id="984" href="Data.Product.html#377" class="Generalizable">b</a><a id="985" class="Symbol">)</a>
|
|||
|
<a id="987" href="Data.Product.html#934" class="Function">∄-syntax</a> <a id="996" class="Symbol">=</a> <a id="998" href="Data.Product.html#668" class="Function">∄</a>
|
|||
|
|
|||
|
<a id="1001" class="Keyword">syntax</a> <a id="1008" href="Data.Product.html#934" class="Function">∄-syntax</a> <a id="1017" class="Symbol">(λ</a> <a id="1020" class="Bound">x</a> <a id="1022" class="Symbol">→</a> <a id="1024" class="Bound">B</a><a id="1025" class="Symbol">)</a> <a id="1027" class="Symbol">=</a> <a id="1029" class="Function">∄[</a> <a id="1032" class="Bound">x</a> <a id="1034" class="Function">]</a> <a id="1036" class="Bound">B</a>
|
|||
|
</pre></body></html>
|