{-# OPTIONS --without-K --safe --guardedness --no-sized-types #-}
open import prelude
open import RTC
module InteractionSystems.execution {I : Set} (w : IS I) (U : Pow I) where
open IS w renaming (Command to A; Response to D; next to n)
open IS (w *) renaming (Command to A* ; Response to D* ; next to n*)
private lemma_aux : (i : I) → (as : A* i) → ((ds : D* i as) → U (n* {i} as ds)) → ν (w ⊥) i → U ≬ (ν (w ⊥))
lemma_aux i Leaf r T = ( i , ( r ⋆ , T ) )
lemma_aux i (a ◂ f) r T =
let tmp = νElim T in
let d = (fst tmp) a in
let i' : I
i' = n a d in
lemma_aux i' (f d) (λ ds → r ( d , ds )) (snd tmp a)
lemma : (⟦ w * ⟧ U) ≬ (ν (w ⊥)) → U ≬ (ν (w ⊥))
lemma ( i , ( ( t , r ) , T ) ) = lemma_aux i t r T