summaryrefslogtreecommitdiff
path: root/src/Cfe/Parse/Base.agda
diff options
context:
space:
mode:
authorChloe Brown <chloe.brown.00@outlook.com>2021-03-27 20:32:03 +0000
committerChloe Brown <chloe.brown.00@outlook.com>2021-03-27 20:32:03 +0000
commitadad5280af0d81a2f171df619e9c7169dcb43a02 (patch)
treec537696feea2aec1688d398bf5fd93e76f72c702 /src/Cfe/Parse/Base.agda
parentc67134fc5cb9e338cb397df029e5528d469771d4 (diff)
Introduce non-terminating proof of derivation existence.
Diffstat (limited to 'src/Cfe/Parse/Base.agda')
-rw-r--r--src/Cfe/Parse/Base.agda12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/Cfe/Parse/Base.agda b/src/Cfe/Parse/Base.agda
index 50e085a..0f8ad21 100644
--- a/src/Cfe/Parse/Base.agda
+++ b/src/Cfe/Parse/Base.agda
@@ -6,18 +6,20 @@ module Cfe.Parse.Base
{c ℓ} (over : Setoid c ℓ)
where
-open Setoid over renaming (Carrier to C)
+open Setoid over renaming (Carrier to C; _≈_ to _∼_)
-open import Cfe.Expression over
+open import Cfe.Expression over hiding (_≋_)
open import Data.Fin
open import Data.List
+open import Data.List.Relation.Binary.Equality.Setoid over
+open import Level using (_⊔_)
infix 4 _⤇_
-data _⤇_ : Expression 0 → List C → Set c where
+data _⤇_ : Expression 0 → List C → Set (c ⊔ ℓ) where
Eps : ε ⤇ []
- Char : ∀ {c} → Char c ⤇ [ c ]
- Cat : ∀ {e₁ e₂ l₁ l₂} → e₁ ⤇ l₁ → e₂ ⤇ l₂ → e₁ ∙ e₂ ⤇ l₁ ++ l₂
+ Char : ∀ {c y} → c ∼ y → Char c ⤇ [ y ]
+ Cat : ∀ {e₁ e₂ l₁ l₂ l} → e₁ ⤇ l₁ → e₂ ⤇ l₂ → l₁ ++ l₂ ≋ l → e₁ ∙ e₂ ⤇ l
Veeˡ : ∀ {e₁ e₂ l} → e₁ ⤇ l → e₁ ∨ e₂ ⤇ l
Veeʳ : ∀ {e₁ e₂ l} → e₂ ⤇ l → e₁ ∨ e₂ ⤇ l
Fix : ∀ {e l} → e [ μ e / zero ] ⤇ l → μ e ⤇ l