- Event_TY_DEF
-
|- ?rep.
TYPE_DEFINITION
(TRP
(\v tl.
(?s. v = INL s) /\ (LENGTH tl = 0) \/
(?s. v = INR s) /\ (LENGTH tl = 0)))
rep
- Event_ISO_DEF
-
|- (!a. ABS_Event (REP_Event a) = a) /\
(!r.
TRP
(\v tl.
(?s. v = INL s) /\ (LENGTH tl = 0) \/
(?s. v = INR s) /\ (LENGTH tl = 0))
r =
REP_Event (ABS_Event r) =
r)
- econst_DEF
-
|- !s. econst s = ABS_Event (Node (INL s) [])
- evar_DEF
-
|- !s. evar s = ABS_Event (Node (INR s) [])
- ES
-
|- (!s E. ES (econst s) E = s) /\ (!s E. ES (evar s) E = OUTL (E s))
- CSP_TY_DEF
-
|- ?rep.
TYPE_DEFINITION
(TRP
(\v tl.
(?s. v = INL s) /\ (LENGTH tl = 0) \/
(?s. v = INR (INL s)) /\ (LENGTH tl = 0) \/
(?s. v = INR (INR (INL s))) /\ (LENGTH tl = 0) \/
(?E. v = INR (INR (INR (INL E)))) /\ (LENGTH tl = SUC 0) \/
(?s0 s1. v = INR (INR (INR (INR (INL (s0,s1)))))) /\
(LENGTH tl = SUC 0) \/
(v = INR (INR (INR (INR (INR (INL one)))))) /\
(LENGTH tl = SUC (SUC 0)) \/
(?l. v = INR (INR (INR (INR (INR (INR (INL l))))))) /\
(LENGTH tl = SUC 0) \/
(?s0 s1.
v = INR (INR (INR (INR (INR (INR (INR (INL (s0,s1))))))))) /\
(LENGTH tl = SUC 0) \/
(?E0 E1.
v = INR (INR (INR (INR (INR (INR (INR (INR (E0,E1))))))))) /\
(LENGTH tl = SUC (SUC 0))))
rep
- CSP_ISO_DEF
-
|- (!a. ABS_CSP (REP_CSP a) = a) /\
(!r.
TRP
(\v tl.
(?s. v = INL s) /\ (LENGTH tl = 0) \/
(?s. v = INR (INL s)) /\ (LENGTH tl = 0) \/
(?s. v = INR (INR (INL s))) /\ (LENGTH tl = 0) \/
(?E. v = INR (INR (INR (INL E)))) /\ (LENGTH tl = SUC 0) \/
(?s0 s1. v = INR (INR (INR (INR (INL (s0,s1)))))) /\
(LENGTH tl = SUC 0) \/
(v = INR (INR (INR (INR (INR (INL one)))))) /\
(LENGTH tl = SUC (SUC 0)) \/
(?l. v = INR (INR (INR (INR (INR (INR (INL l))))))) /\
(LENGTH tl = SUC 0) \/
(?s0 s1.
v = INR (INR (INR (INR (INR (INR (INR (INL (s0,s1))))))))) /\
(LENGTH tl = SUC 0) \/
(?E0 E1.
v = INR (INR (INR (INR (INR (INR (INR (INR (E0,E1))))))))) /\
(LENGTH tl = SUC (SUC 0)))
r =
REP_CSP (ABS_CSP r) =
r)
- stop_DEF
-
|- !s. stop s = ABS_CSP (Node (INL s) [])
- run_DEF
-
|- !s. run s = ABS_CSP (Node (INR (INL s)) [])
- var_DEF
-
|- !s. var s = ABS_CSP (Node (INR (INR (INL s))) [])
- pref_DEF
-
|- !E C. pref E C = ABS_CSP (Node (INR (INR (INR (INL E)))) [REP_CSP C])
- Choice_DEF
-
|- !s0 s1 C.
Choice s0 s1 C =
ABS_CSP (Node (INR (INR (INR (INR (INL (s0,s1)))))) [REP_CSP C])
- par_DEF
-
|- !C1 C2.
par C1 C2 =
ABS_CSP
(Node (INR (INR (INR (INR (INR (INL one)))))) [REP_CSP C1; REP_CSP C2])
- after_DEF
-
|- !C l'.
after C l' =
ABS_CSP (Node (INR (INR (INR (INR (INR (INR (INL l'))))))) [REP_CSP C])
- mu_DEF
-
|- !s0 s1 C.
mu s0 s1 C =
ABS_CSP
(Node (INR (INR (INR (INR (INR (INR (INR (INL (s0,s1)))))))))
[REP_CSP C])
- cond_DEF
-
|- !E0 E1 C1 C2.
cond E0 E1 C1 C2 =
ABS_CSP
(Node (INR (INR (INR (INR (INR (INR (INR (INR (E0,E1)))))))))
[REP_CSP C1; REP_CSP C2])
- Bnd
-
|- !s exp env. Bnd s exp env = (\s'. (s' = s) => exp | (env s))
- TS
-
|- (!A E. TS (stop A) E = STOP A) /\
(!A E. TS (run A) E = RUN A) /\
(!s E. TS (var s) E = OUTR (E s)) /\
(!a P E. TS (pref a P) E = ES a E --> TS P E) /\
(!s A P E. TS (Choice s A P) E = choice A (\x. TS P (Bnd s (INL x) E))) /\
(!P Q E. TS (par P Q) E = TS P E PAR TS Q E) /\
(!P tr E. TS (after P tr) E = TS P E / tr) /\
(!s A P E. TS (mu s A P) E = MU A (\x. TS P (Bnd s (INR x) E))) /\
(!e1 e2 P Q E.
TS (cond e1 e2 P Q) E = ((ES e1 E = ES e2 E) => (TS P E) | (TS Q E)))