summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChloe Brown <chloe.brown.00@outlook.com>2021-01-23 20:09:11 +0000
committerChloe Brown <chloe.brown.00@outlook.com>2021-01-23 20:10:39 +0000
commitcd8ab887cdfdf3aa8dfc66871cc27be9677945c3 (patch)
tree178194b90421278ed70c1e97ed58b2e24a89194f /src
parent70defec34e785b42285065290f1e10065e14c6e2 (diff)
Define expressions
Diffstat (limited to 'src')
-rw-r--r--src/Cfe/Expression.agda7
-rw-r--r--src/Cfe/Expression/Base.agda16
2 files changed, 23 insertions, 0 deletions
diff --git a/src/Cfe/Expression.agda b/src/Cfe/Expression.agda
new file mode 100644
index 0000000..e264926
--- /dev/null
+++ b/src/Cfe/Expression.agda
@@ -0,0 +1,7 @@
+{-# OPTIONS --without-K --safe #-}
+
+module Cfe.Expression
+ {ℓ} (A : Set ℓ)
+ where
+
+open import Cfe.Expression.Base A public
diff --git a/src/Cfe/Expression/Base.agda b/src/Cfe/Expression/Base.agda
new file mode 100644
index 0000000..3545f9a
--- /dev/null
+++ b/src/Cfe/Expression/Base.agda
@@ -0,0 +1,16 @@
+{-# OPTIONS --without-K --safe #-}
+
+module Cfe.Expression.Base
+ {ℓ} (A : Set ℓ)
+ where
+
+open import Data.Nat
+
+data Expression : ℕ → Set ℓ where
+ ⊥ : {n : ℕ} → Expression n
+ ε : {n : ℕ} → Expression n
+ Char : {n : ℕ} → A → Expression n
+ _∨_ : {n : ℕ} → Expression n → Expression n → Expression n
+ _∙_ : {n : ℕ} → Expression n → Expression n → Expression n
+ Var : {m : ℕ} → (n : ℕ) → Expression (suc (m + n))
+ μ : {n : ℕ} → Expression (suc n) → Expression n