Thm* E:Type, eq:EqDecider(E), T,V:(Id Id Type), M:(IdLnk Id Type),
Thm* loc:(E Id), k:(E Knd), v:(e:E eventtype(k;loc;V;M;e)),
Thm* w,a:(x:Id e:E T(loc(e),x)), snds:(l:IdLnk E (Msg_sub(l; M) List)),
Thm* sndr:({e:E| isrcv(k(e)) } E), i:(e:{e:E| isrcv(k(e)) }  ||snds
Thm* sndr:({e:E| isrcv(k(e)) } E), i:(e:{e:E| isrcv(k(e)) }  ||(lnk(k(e))
Thm* sndr:({e:E| isrcv(k(e)) } E), i:(e:{e:E| isrcv(k(e)) }  ||,sndr(e))||),
Thm* f:(E  ), prd:({e':E| f(e') } E), cl:(E E Prop), p:ESAxioms{i:l}
Thm* f:(E  ), prd:({e':E| f(e') } E), cl:(E E Prop), p:ESAxioms(E;
Thm* f:(E  ), prd:({e':E| f(e') } E), cl:(E E Prop), p:ESAxioms(T;
Thm* f:(E  ), prd:({e':E| f(e') } E), cl:(E E Prop), p:ESAxioms(M;
Thm* f:(E  ), prd:({e':E| f(e') } E), cl:(E E Prop), p:ESAxioms(loc;
Thm* f:(E  ), prd:({e':E| f(e') } E), cl:(E E Prop), p:ESAxioms(k;
Thm* f:(E  ), prd:({e':E| f(e') } E), cl:(E E Prop), p:ESAxioms(v;
Thm* f:(E  ), prd:({e':E| f(e') } E), cl:(E E Prop), p:ESAxioms(w;
Thm* f:(E  ), prd:({e':E| f(e') } E), cl:(E E Prop), p:ESAxioms(a;
Thm* f:(E  ), prd:({e':E| f(e') } E), cl:(E E Prop), p:ESAxioms(snds;
Thm* f:(E  ), prd:({e':E| f(e') } E), cl:(E E Prop), p:ESAxioms(sndr;
Thm* f:(E  ), prd:({e':E| f(e') } E), cl:(E E Prop), p:ESAxioms(i;
Thm* f:(E  ), prd:({e':E| f(e') } E), cl:(E E Prop), p:ESAxioms(f;
Thm* f:(E  ), prd:({e':E| f(e') } E), cl:(E E Prop), p:ESAxioms(prd;
Thm* f:(E  ), prd:({e':E| f(e') } E), cl:(E E Prop), p:ESAxioms(cl).
Thm* mk-es(E; eq; T; V; M; loc; k; v; w; a; snds; sndr; i; f; prd; cl; p) ES | [mk-es_wf] |
Thm* E:Type{i}, T,V:(Id Id Type{i}), M:(IdLnk Id Type{i}), loc:(E Id),
Thm* kind:(E Knd), val:(e:E eventtype(kind;loc;V;M;e)),
Thm* when,after:(x:Id e:E T(loc(e),x)),
Thm* sends:(l:IdLnk E (Msg_sub(l; M) List)),
Thm* sender:({e:E| isrcv(kind(e)) } E),
Thm* index:(e:{e:E| isrcv(kind(e)) }  ||sends(lnk(kind(e)),sender(e))||),
Thm* first:(E  ), pred:({e':E| first(e') } E), causl:(E E Prop{i}).
Thm* ESAxioms{i:l}
Thm* ESAxioms(E;
Thm* ESAxioms(T;
Thm* ESAxioms(M;
Thm* ESAxioms(loc;
Thm* ESAxioms(kind;
Thm* ESAxioms(val;
Thm* ESAxioms(when;
Thm* ESAxioms(after;
Thm* ESAxioms(sends;
Thm* ESAxioms(sender;
Thm* ESAxioms(index;
Thm* ESAxioms(first;
Thm* ESAxioms(pred;
Thm* ESAxioms(causl)
Thm* Prop{i'} | [ESAxioms_wf] |