120 lines
11 KiB
HTML
120 lines
11 KiB
HTML
<!DOCTYPE html>
|
||
<html><head>
|
||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||
<title>test.agda</title>
|
||
<meta name="generator" content="KF5::SyntaxHighlighting - Definition (Agda) - Theme (Breeze Dark)"/>
|
||
</head><body style="background-color:#232629;color:#cfcfc2"><pre>
|
||
<span style="color:#7a7c7d">-- Agda Sample File</span>
|
||
<span style="color:#7a7c7d">-- https://github.com/agda/agda/blob/master/examples/syntax/highlighting/Test.agda</span>
|
||
|
||
<span style="color:#7a7c7d">-- This test file currently lacks module-related stuff.</span>
|
||
|
||
<span style="color:#7a7c7d">{- Nested</span>
|
||
<span style="color:#7a7c7d"> {- comment. -} -}</span>
|
||
|
||
<span style="font-weight:bold">module</span> Test <span style="font-weight:bold">where</span>
|
||
|
||
<span style="font-weight:bold">infix</span> <span style="color:#f67400">12</span> <span style="color:#27ae60">_</span>!
|
||
<span style="font-weight:bold">infixl</span> <span style="color:#f67400">7</span> <span style="color:#27ae60">_</span>+<span style="color:#27ae60">_</span> <span style="color:#27ae60">_</span>-<span style="color:#27ae60">_</span>
|
||
<span style="font-weight:bold">infixr</span> <span style="color:#f67400">2</span> -<span style="color:#27ae60">_</span>
|
||
|
||
<span style="font-weight:bold">postulate</span> x <span style="color:#27ae60">:</span> <span style="color:#2980b9">Set</span>
|
||
|
||
f <span style="color:#27ae60">:</span> <span style="color:#27ae60">(</span><span style="color:#2980b9">Set</span> <span style="color:#27ae60">-></span> <span style="color:#2980b9">Set</span> <span style="color:#27ae60">-></span> <span style="color:#2980b9">Set</span><span style="color:#27ae60">)</span> <span style="color:#27ae60">-></span> <span style="color:#2980b9">Set</span>
|
||
f <span style="color:#27ae60">_</span>*<span style="color:#27ae60">_</span> <span style="color:#27ae60">=</span> x * x
|
||
|
||
<span style="font-weight:bold">data</span> ℕ <span style="color:#27ae60">:</span> <span style="color:#2980b9">Set</span> <span style="font-weight:bold">where</span>
|
||
zero <span style="color:#27ae60">:</span> ℕ
|
||
suc <span style="color:#27ae60">:</span> ℕ <span style="color:#27ae60">-></span> ℕ
|
||
|
||
<span style="color:#27ae60">_</span>+<span style="color:#27ae60">_</span> <span style="color:#27ae60">:</span> ℕ <span style="color:#27ae60">-></span> ℕ <span style="color:#27ae60">-></span> ℕ
|
||
zero + n <span style="color:#27ae60">=</span> n
|
||
suc m + n <span style="color:#27ae60">=</span> suc <span style="color:#27ae60">(</span>m + n<span style="color:#27ae60">)</span>
|
||
|
||
<span style="font-weight:bold">postulate</span> <span style="color:#27ae60">_</span>-<span style="color:#27ae60">_</span> <span style="color:#27ae60">:</span> ℕ <span style="color:#27ae60">-></span> ℕ <span style="color:#27ae60">-></span> ℕ
|
||
|
||
-<span style="color:#27ae60">_</span> <span style="color:#27ae60">:</span> ℕ <span style="color:#27ae60">-></span> ℕ
|
||
- n <span style="color:#27ae60">=</span> n
|
||
|
||
<span style="color:#27ae60">_</span>! <span style="color:#27ae60">:</span> ℕ <span style="color:#27ae60">-></span> ℕ
|
||
zero ! <span style="color:#27ae60">=</span> suc zero
|
||
suc n ! <span style="color:#27ae60">=</span> n - n !
|
||
|
||
<span style="font-weight:bold">record</span> Equiv <span style="color:#27ae60">{</span>a <span style="color:#27ae60">:</span> <span style="color:#2980b9">Set</span><span style="color:#27ae60">}</span> <span style="color:#27ae60">(_</span>≈<span style="color:#27ae60">_</span> <span style="color:#27ae60">:</span> a <span style="color:#27ae60">-></span> a <span style="color:#27ae60">-></span> <span style="color:#2980b9">Set</span><span style="color:#27ae60">)</span> <span style="color:#27ae60">:</span> <span style="color:#2980b9">Set</span> <span style="font-weight:bold">where</span>
|
||
<span style="font-weight:bold">field</span>
|
||
refl <span style="color:#27ae60">:</span> <span style="font-weight:bold">forall</span> x <span style="color:#27ae60">-></span> x ≈ x
|
||
sym <span style="color:#27ae60">:</span> <span style="color:#27ae60">{</span>x y <span style="color:#27ae60">:</span> a<span style="color:#27ae60">}</span> <span style="color:#27ae60">-></span> x ≈ y <span style="color:#27ae60">-></span> y ≈ x
|
||
<span style="color:#27ae60">_</span>`trans`<span style="color:#27ae60">_</span> <span style="color:#27ae60">:</span> <span style="font-weight:bold">forall</span> <span style="color:#27ae60">{</span>x y z<span style="color:#27ae60">}</span> <span style="color:#27ae60">-></span> x ≈ y <span style="color:#27ae60">-></span> y ≈ z <span style="color:#27ae60">-></span> x ≈ z
|
||
|
||
<span style="font-weight:bold">data</span> <span style="color:#27ae60">_</span>≡<span style="color:#27ae60">_</span> <span style="color:#27ae60">{</span>a <span style="color:#27ae60">:</span> <span style="color:#2980b9">Set</span><span style="color:#27ae60">}</span> <span style="color:#27ae60">(</span>x <span style="color:#27ae60">:</span> a<span style="color:#27ae60">)</span> <span style="color:#27ae60">:</span> a <span style="color:#27ae60">-></span> <span style="color:#2980b9">Set</span> <span style="font-weight:bold">where</span>
|
||
refl <span style="color:#27ae60">:</span> x ≡ x
|
||
|
||
subst <span style="color:#27ae60">:</span> <span style="font-weight:bold">forall</span> <span style="color:#27ae60">{</span>a x y<span style="color:#27ae60">}</span> <span style="color:#27ae60">-></span>
|
||
<span style="color:#27ae60">(</span>P <span style="color:#27ae60">:</span> a <span style="color:#27ae60">-></span> <span style="color:#2980b9">Set</span><span style="color:#27ae60">)</span> <span style="color:#27ae60">-></span> x ≡ y <span style="color:#27ae60">-></span> P x <span style="color:#27ae60">-></span> P y
|
||
subst <span style="color:#27ae60">{</span>x <span style="color:#27ae60">=</span> x<span style="color:#27ae60">}</span> <span style="color:#27ae60">.{</span>y <span style="color:#27ae60">=</span> x<span style="color:#27ae60">}</span> <span style="color:#27ae60">_</span> refl p <span style="color:#27ae60">=</span> p
|
||
|
||
Equiv-≡ <span style="color:#27ae60">:</span> <span style="font-weight:bold">forall</span> <span style="color:#27ae60">{</span>a<span style="color:#27ae60">}</span> <span style="color:#27ae60">-></span> Equiv <span style="color:#27ae60">{</span>a<span style="color:#27ae60">}</span> <span style="color:#27ae60">_</span>≡<span style="color:#27ae60">_</span>
|
||
Equiv-≡ <span style="color:#27ae60">{</span>a<span style="color:#27ae60">}</span> <span style="color:#27ae60">=</span>
|
||
<span style="font-weight:bold">record</span> <span style="color:#27ae60">{</span> refl <span style="color:#27ae60">=</span> <span style="color:#27ae60">\_</span> <span style="color:#27ae60">-></span> refl
|
||
<span style="color:#27ae60">;</span> sym <span style="color:#27ae60">=</span> sym
|
||
<span style="color:#27ae60">;</span> <span style="color:#27ae60">_</span>`trans`<span style="color:#27ae60">_</span> <span style="color:#27ae60">=</span> <span style="color:#27ae60">_</span>`trans`<span style="color:#27ae60">_</span>
|
||
<span style="color:#27ae60">}</span>
|
||
<span style="font-weight:bold">where</span>
|
||
sym <span style="color:#27ae60">:</span> <span style="color:#27ae60">{</span>x y <span style="color:#27ae60">:</span> a<span style="color:#27ae60">}</span> <span style="color:#27ae60">-></span> x ≡ y <span style="color:#27ae60">-></span> y ≡ x
|
||
sym refl <span style="color:#27ae60">=</span> refl
|
||
|
||
<span style="color:#27ae60">_</span>`trans`<span style="color:#27ae60">_</span> <span style="color:#27ae60">:</span> <span style="color:#27ae60">{</span>x y z <span style="color:#27ae60">:</span> a<span style="color:#27ae60">}</span> <span style="color:#27ae60">-></span> x ≡ y <span style="color:#27ae60">-></span> y ≡ z <span style="color:#27ae60">-></span> x ≡ z
|
||
refl `trans` refl <span style="color:#27ae60">=</span> refl
|
||
|
||
<span style="font-weight:bold">postulate</span>
|
||
String <span style="color:#27ae60">:</span> <span style="color:#2980b9">Set</span>
|
||
Char <span style="color:#27ae60">:</span> <span style="color:#2980b9">Set</span>
|
||
Float <span style="color:#27ae60">:</span> <span style="color:#2980b9">Set</span>
|
||
|
||
<span style="font-weight:bold">data</span> Int <span style="color:#27ae60">:</span> <span style="color:#2980b9">Set</span> <span style="font-weight:bold">where</span>
|
||
pos <span style="color:#27ae60">:</span> ℕ <span style="color:#27ae60">→</span> Int
|
||
negsuc <span style="color:#27ae60">:</span> ℕ <span style="color:#27ae60">→</span> Int
|
||
|
||
<span style="color:#27ae60">{-# BUILTIN STRING String #-}</span>
|
||
<span style="color:#27ae60">{-# BUILTIN CHAR Char #-}</span>
|
||
<span style="color:#27ae60">{-# BUILTIN FLOAT Float #-}</span>
|
||
|
||
<span style="color:#27ae60">{-# BUILTIN NATURAL ℕ #-}</span>
|
||
|
||
<span style="color:#27ae60">{-# BUILTIN INTEGER Int #-}</span>
|
||
<span style="color:#27ae60">{-# BUILTIN INTEGERPOS pos #-}</span>
|
||
<span style="color:#27ae60">{-# BUILTIN INTEGERNEGSUC negsuc #-}</span>
|
||
|
||
<span style="font-weight:bold">data</span> [<span style="color:#27ae60">_</span>] <span style="color:#27ae60">(</span>a <span style="color:#27ae60">:</span> <span style="color:#2980b9">Set</span><span style="color:#27ae60">)</span> <span style="color:#27ae60">:</span> <span style="color:#2980b9">Set</span> <span style="font-weight:bold">where</span>
|
||
[] <span style="color:#27ae60">:</span> [ a ]
|
||
<span style="color:#27ae60">_</span>∷<span style="color:#27ae60">_</span> <span style="color:#27ae60">:</span> a <span style="color:#27ae60">-></span> [ a ] <span style="color:#27ae60">-></span> [ a ]
|
||
|
||
<span style="color:#27ae60">{-# BUILTIN LIST [_] #-}</span>
|
||
<span style="color:#27ae60">{-# BUILTIN NIL [] #-}</span>
|
||
<span style="color:#27ae60">{-# BUILTIN CONS _∷_ #-}</span>
|
||
|
||
<span style="font-weight:bold">primitive</span>
|
||
primStringToList <span style="color:#27ae60">:</span> String <span style="color:#27ae60">-></span> [ Char ]
|
||
|
||
string <span style="color:#27ae60">:</span> [ Char ]
|
||
string <span style="color:#27ae60">=</span> primStringToList <span style="color:#f44f4f">"∃ apa"</span>
|
||
|
||
char <span style="color:#27ae60">:</span> Char
|
||
char <span style="color:#27ae60">=</span> <span style="color:#3daee9">'∀'</span>
|
||
|
||
anotherString <span style="color:#27ae60">:</span> String
|
||
anotherString <span style="color:#27ae60">=</span> <span style="color:#f44f4f">"¬ be\</span>
|
||
<span style="color:#f44f4f"> \pa"</span>
|
||
|
||
nat <span style="color:#27ae60">:</span> ℕ
|
||
nat <span style="color:#27ae60">=</span> <span style="color:#f67400">45</span>
|
||
|
||
float <span style="color:#27ae60">:</span> Float
|
||
float <span style="color:#27ae60">=</span> <span style="color:#f67400">45.0e-37</span>
|
||
|
||
<span style="color:#7a7c7d">-- Testing qualified names.</span>
|
||
|
||
<span style="font-weight:bold">open</span> <span style="font-weight:bold">import</span> Test
|
||
Eq <span style="color:#27ae60">=</span> Test<span style="color:#27ae60">.</span>Equiv <span style="color:#27ae60">{</span>Test<span style="color:#27ae60">.</span>ℕ<span style="color:#27ae60">}</span>
|
||
</pre></body></html>
|