| Some definitions of interest. |
|
event_system | Def ES
Def == E:Type
Def == EqDecider(E) (T:Id Id Type
Def == EqDecider(E) ( V:Id Id Type
Def == EqDecider(E) ( M:IdLnk Id Type
Def == EqDecider(E) ( Top (loc:E Id
Def == EqDecider(E) ( Top ( kind:E Knd
Def == EqDecider(E) ( Top ( val:(e:E eventtype(kind;loc;V;M;e))
Def == EqDecider(E) ( Top ( when:(x:Id e:E T(loc(e),x))
Def == EqDecider(E) ( Top ( after:(x:Id e:E T(loc(e),x))
Def == EqDecider(E) ( Top ( sends:(l:IdLnk E (Msg_sub(l; M) List))
Def == EqDecider(E) ( Top ( sender:{e:E| isrcv(kind(e)) } E
Def == EqDecider(E) ( Top ( index:(e:{e:E| isrcv(kind(e)) }  ||sends
Def == EqDecider(E) ( Top ( index:(e:{e:E| isrcv(kind(e)) }  ||(lnk(kind(e))
Def == EqDecider(E) ( Top ( index:(e:{e:E| isrcv(kind(e)) }  ||,sender(e))||)
Def == EqDecider(E) ( Top ( first:E 
Def == EqDecider(E) ( Top ( pred:{e':E|  (first(e')) } E
Def == EqDecider(E) ( Top ( causl:E E Prop
Def == EqDecider(E) ( Top ( ESAxioms{i:l}
Def == EqDecider(E) ( Top ( ESAxioms(E;
Def == EqDecider(E) ( Top ( ESAxioms(T;
Def == EqDecider(E) ( Top ( ESAxioms(M;
Def == EqDecider(E) ( Top ( ESAxioms(loc;
Def == EqDecider(E) ( Top ( ESAxioms(kind;
Def == EqDecider(E) ( Top ( ESAxioms(val;
Def == EqDecider(E) ( Top ( ESAxioms(when;
Def == EqDecider(E) ( Top ( ESAxioms(after;
Def == EqDecider(E) ( Top ( ESAxioms(sends;
Def == EqDecider(E) ( Top ( ESAxioms(sender;
Def == EqDecider(E) ( Top ( ESAxioms(index;
Def == EqDecider(E) ( Top ( ESAxioms(first;
Def == EqDecider(E) ( Top ( ESAxioms(pred;
Def == EqDecider(E) ( Top ( ESAxioms(causl)
Def == EqDecider(E) ( Top ( Top)) |
| | Thm* ES Type{i'} |
|
Knd | Def Knd == (IdLnk Id)+Id |
| | Thm* Knd Type |
|
Msg_sub | Def Msg_sub(l; M) == {m:Msg(M)| haslink(l; m) } |
| | Thm* M:(IdLnk Id Type), l:IdLnk. Msg_sub(l; M) Type |
|
es-Msgl | Def (Msg on l) == {m:Msg| haslink(l; m) } |
|
es-Msg | Def Msg == Msg(1of(2of(2of(2of(2of(es)))))) |
|
Msg | Def Msg(M) == l:IdLnk t:Id M(l,t) |
| | Thm* M:(IdLnk Id Type). Msg(M) Type |
|
haslink | Def haslink(l; m) == mlnk(m) = l |
| | Thm* M:(IdLnk Id Type), l:IdLnk, m:Msg(M). haslink(l; m) Prop |
|
IdLnk | Def IdLnk == Id Id  |
| | Thm* IdLnk Type |
|
es-locl | Def (e <loc e') == loc(e) = loc(e') Id & (e < e') |
|
Id | Def Id == Atom  |
| | Thm* Id Type |
|
deq | Def EqDecider(T) == eq:T T    x,y:T. x = y  (eq(x,y)) |
| | Thm* T:Type. EqDecider(T) Type |
|
assert | Def b == if b True else False fi |
| | Thm* b: . b Prop |
|
es-E | Def E == 1of(es) |
|
es-after | Def (x after e)
Def == 1of(2of(2of(2of(2of(2of(2of(2of(2of(2of(2of(es)))))))))))(x,e) |
|
es-causl | Def (e < e')
Def == 1of(2of(2of(2of(2of(2of(2of(2of(2of(2of(2of(2of(2of(2of(2of(2of(2of(
Def == 1of(es)))))))))))))))))
Def == (e
Def == ,e') |
|
es-first | Def first(e)
Def == 1of(2of(2of(2of(2of(2of(2of(2of(2of(2of(2of(2of(2of(2of(2of(
Def == 1of(es)))))))))))))))
Def == (e) |
|
es-index | Def index(e)
Def == 1of(2of(2of(2of(2of(2of(2of(2of(2of(2of(2of(2of(2of(2of(es))))))))))))))
Def == (e) |
|
es-isrcv | Def isrcv(e) == isrcv(kind(e)) |
|
es-lnk | Def lnk(e) == lnk(kind(e)) |
|
es-loc | Def loc(e) == 1of(2of(2of(2of(2of(2of(2of(es)))))))(e) |
|
es-pred | Def pred(e)
Def == 1of(2of(2of(2of(2of(2of(2of(2of(2of(2of(2of(2of(2of(2of(2of(2of(
Def == 1of(es))))))))))))))))
Def == (e) |
|
es-sender | Def sender(e)
Def == 1of(2of(2of(2of(2of(2of(2of(2of(2of(2of(2of(2of(2of(es)))))))))))))(e) |
|
es-sends | Def sends(l;e)
Def == 1of(2of(2of(2of(2of(2of(2of(2of(2of(2of(2of(2of(es))))))))))))(l,e) |
|
es-tag | Def tag(e) == tag(kind(e)) |
|
es-val | Def val(e) == 1of(2of(2of(2of(2of(2of(2of(2of(2of(es)))))))))(e) |
|
es-vartype | Def vartype(i;x) == 1of(2of(2of(es)))(i,x) |
|
es-when | Def (x when e) == 1of(2of(2of(2of(2of(2of(2of(2of(2of(2of(es))))))))))(x,e) |
|
eventtype | Def eventtype(k;loc;V;M;e) == kindcase(k(e);a.V(loc(e),a);l,t.M(l,t)) |
| | Thm* E:Type, V:(Id Id Type), M:(IdLnk Id Type), loc:(E Id), k:(E Knd),
Thm* e:E. eventtype(k;loc;V;M;e) Type |
|
iff | Def P  Q == (P  Q) & (P  Q) |
| | Thm* A,B:Prop. (A  B) Prop |
|
int_seg | Def {i..j } == {k: | i k < j } |
| | Thm* m,n: . {m..n } Type |
|
isrcv | Def isrcv(k) == isl(k) |
| | Thm* k:Knd. isrcv(k)  |
|
ldst | Def destination(l) == 1of(2of(l)) |
| | Thm* l:IdLnk. destination(l) Id |
|
length | Def ||as|| == Case of as; nil 0 ; a.as' ||as'||+1 (recursive) |
| | Thm* A:Type, l:A List. ||l||  |
| | Thm* ||nil||  |
|
lnk | Def lnk(k) == 1of(outl(k)) |
| | Thm* k:Knd. isrcv(k)  lnk(k) IdLnk |
|
lsrc | Def source(l) == 1of(l) |
| | Thm* l:IdLnk. source(l) Id |
|
strongwellfounded | Def SWellFounded(R(x;y)) == f:(T  ). x,y:T. R(x;y)  f(x)<f(y) |
| | Thm* T:Type, R:(T T Type). SWellFounded(R(x,y)) Prop |
|
not | Def A == A  False |
| | Thm* A:Prop. ( A) Prop |
|
select | Def l[i] == hd(nth_tl(i;l)) |
| | Thm* A:Type, l:A List, n: . 0 n  n<||l||  l[n] A |
|
tagof | Def tag(k) == 2of(outl(k)) |
| | Thm* k:Knd. isrcv(k)  tag(k) Id |
|
top | Def Top == Void given Void |
| | Thm* Top Type |
|
trans | Def Trans x,y:T. E(x;y) == a,b,c:T. E(a;b)  E(b;c)  E(a;c) |
| | Thm* T:Type, E:(T T Prop). (Trans x,y:T. E(x,y)) Prop |