-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathQLTL.agda
54 lines (44 loc) · 1.38 KB
/
QLTL.agda
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
{-# OPTIONS --sized-types #-}
open import SortedAlgebra using (Signature)
module QLTL {ℓ} {Σ : Signature {ℓ}} where
open import Data.Vec using (_∷_)
open Signature Σ
open SortedAlgebra.Term Σ
data QLTL {n} (Γ : Ctx n) : Set ℓ where
true : QLTL Γ
false : QLTL Γ
!_ : QLTL Γ → QLTL Γ
_∧_ : QLTL Γ → QLTL Γ → QLTL Γ
_∨_ : QLTL Γ → QLTL Γ → QLTL Γ
O_ : QLTL Γ → QLTL Γ
A_ : QLTL Γ → QLTL Γ
_F_ : QLTL Γ → QLTL Γ → QLTL Γ
_U_ : QLTL Γ → QLTL Γ → QLTL Γ
_W_ : QLTL Γ → QLTL Γ → QLTL Γ
_T_ : QLTL Γ → QLTL Γ → QLTL Γ
∃<_>_ : (τ : 𝓢)
→ QLTL (τ ∷ Γ)
→ QLTL Γ
∀<_>_ : (τ : 𝓢)
→ QLTL (τ ∷ Γ)
→ QLTL Γ
_≡ᵗ_ : ∀ {i τ}
→ Γ ⊢ τ ⟨ i ⟩
→ Γ ⊢ τ ⟨ i ⟩
→ QLTL Γ
_≢ᵗ_ : ∀ {i τ}
→ Γ ⊢ τ ⟨ i ⟩
→ Γ ⊢ τ ⟨ i ⟩
→ QLTL Γ
◇_ : ∀ {n} {Γ : Ctx n} → QLTL Γ → QLTL Γ
◇ ϕ = true U ϕ
□_ : ∀ {n} {Γ : Ctx n} → QLTL Γ → QLTL Γ
□ ϕ = ϕ W false
◇*_ : ∀ {n} {Γ : Ctx n} → QLTL Γ → QLTL Γ
◇* ϕ = true F ϕ
□*_ : ∀ {n} {Γ : Ctx n} → QLTL Γ → QLTL Γ
□* ϕ = ϕ T false
infix 15 _∧_ _∨_
infix 20 ◇_ □_ ◇*_ □*_ O_ A_ _U_ _F_ _W_ _T_
infix 23 ∃<_>_ ∀<_>_
infix 25 _≡ᵗ_ _≢ᵗ_