------------------------
→ Γ ⊢B exec r o x b ▹ Γ₁
-struct-congruence : ∀ {n m} {Γ : Ctx n} {Γ₁ : Ctx m} {b₁ b₂ : Behaviour}
- → ◆ Γ ⊢B b₁ ▹ ◆ Γ₁
+struct-congruence : {Γ Γ₁ : Context} {b₁ b₂ : Behaviour}
+ → Γ ⊢B b₁ ▹ Γ₁
→ b₁ ≡ b₂
- → ◆ Γ ⊢B b₂ ▹ ◆ Γ₁
+ → Γ ⊢B b₂ ▹ Γ₁
struct-congruence t refl = t
-struct-cong-par-nil : ∀ {k k₁ p p₁} {Γ₁ : Ctx k} {Γ₂ : Ctx p} {Γ₁' : Ctx k₁} {Γ₂' : Ctx p₁} {b : Behaviour}
- → ■ (◆ Γ₁) (◆ Γ₂) ⊢B (b ∥ nil) ▹ ■ (◆ Γ₁') (◆ Γ₂')
- → ◆ Γ₁ ⊢B b ▹ ◆ Γ₁'
+struct-cong-par-nil : {Γ₁ Γ₂ Γ₁' Γ₂' : Context} {b : Behaviour}
+ → ■ Γ₁ Γ₂ ⊢B (b ∥ nil) ▹ ■ Γ₁' Γ₂'
+ → Γ₁ ⊢B b ▹ Γ₁'
struct-cong-par-nil (t-par x _) = x
struct-cong-par-sym : {Γ₁ Γ₂ Γ₁' Γ₂' : Context} {b₁ b₂ : Behaviour}
data _⊢N_ : Context → Network → Set where
- t-network-nil : ∀ {n} {Γ : Ctx n}
+ t-network-nil : {Γ : Context}
------------
- → ◆ Γ ⊢N nil
+ → Γ ⊢N nil
- t-deployment : ∀ {n m} {Γ : Ctx n} {b : Behaviour} {l : Location} {o : Operation} {p : Process} {d : Deployment m} {Tₒ : Type}
+ t-deployment : ∀ {m} {Γ : Context} {b : Behaviour} {l : Location} {o : Operation} {p : Process} {d : Deployment m} {Tₒ : Type}
→ Γ ⊢S (b ▹ d - p)
- → ¬ (outNotify o l Tₒ ∈ ◆ Γ)
+ → ¬ (outNotify o l Tₒ ∈ Γ)
--------------------------
- → ◆ Γ ⊢N ([ b ▹ d - p ] l)
+ → Γ ⊢N ([ b ▹ d - p ] l)
t-network : ∀ {n} {m} {Γ₁ : Ctx n} {Γ₂ : Ctx m} {N₁ N₂ : Network} {l : Location}
→ ◆ Γ₁ ⊢N N₁
open import Variable
-data _⊢BSL_▹_ : ∀ {n m} → Ctx n → Behaviour → Ctx m → Set where
- t-bsl-nil : ∀ {n} {Γ : Ctx n}
+data _⊢BSL_▹_ : Context → Behaviour → Context → Set where
+ t-bsl-nil : {Γ : Context}
----------------
→ Γ ⊢BSL nil ▹ Γ
- t-bsl-choice : ∀ {n m k} {Γ : Ctx n} {contexts : Vec (Ctx m) k} {choices : List (η × Behaviour)} {Tₐ Tₓ : Type} {x : Variable}
- → All (λ { (Γ₁ , (η , b)) → ◆ Γ ⊢B input η ∶ b ▹ ◆ Γ₁ }) (zip (toList contexts) choices)
+ -- TODO
+ t-bsl-choice : ∀ {m k} {Γ : Context} {contexts : Vec (Ctx m) k} {choices : List (η × Behaviour)} {Tₐ Tₓ : Type} {x : Variable}
+ → All (λ { (Γ₁ , (η , b)) → Γ ⊢B input η ∶ b ▹ ◆ Γ₁ }) (zip (toList contexts) choices)
→ ¬ (var x Tₓ ∈ ◆ (concat contexts))
→ ¬ (var x Tₐ ∈ ◆ (concat contexts))
→ Tₓ ≢ Tₐ
----------------------------------------------
- → Γ ⊢BSL inputchoice choices ▹ concat contexts
+ → Γ ⊢BSL inputchoice choices ▹ ◆ (concat contexts)
-data _⊢state_ : ∀ {n} → Ctx n → Process → Set where
+data _⊢state_ : Context → Process → Set where
-data _⊢P_ : ∀ {n} → Ctx n → Process → Set where
- t-process-nil : ∀ {n} {Γ : Ctx n}
+data _⊢P_ : Context → Process → Set where
+ t-process-nil : {Γ : Context}
----------
→ Γ ⊢P nil
- t-process-par : ∀ {n} {Γ : Ctx n} {p₁ p₂ : Process}
+ t-process-par : {Γ : Context} {p₁ p₂ : Process}
→ Γ ⊢P p₁
→ Γ ⊢P p₂
----------------
→ Γ ⊢P (p₁ ∥ p₂)
-
-data _⊢S_ : ∀ {n} → Ctx n → Service → Set where
- t-service : ∀ {n m k} {Γ : Ctx n} {Γ₁ : Ctx k} {b : Behaviour} {d : Deployment m} {p : Process}
+data _⊢S_ : Context → Service → Set where
+ t-service : ∀ {m} {Γ Γ₁ : Context} {b : Behaviour} {d : Deployment m} {p : Process}
→ Γ ⊢BSL b ▹ Γ₁
→ Γ ⊢P p
------------------