Thm* es:ES, x,i:Id, T:Type, c:T.
Thm* ( x,y:T. Dec(x = y T))
Thm* 
Thm* (vartype(i;x) r T)
Thm* 
Thm* ( e:E. loc(e) = i Id  first(e)  (x when e) = c T)
Thm* 
Thm* ( e':E.
Thm* (loc(e') = i Id
Thm* (
Thm* ( (x after e') = c T
Thm* (
Thm* (( ev:E. ev e' & (x after ev) = (x when ev) T)) | [change-since-init] |
Thm* es:ES, e':E. e:E. first(e) & e e' | [es-first-exists] |
Thm* es:ES, i,x:Id, T:Type, I:(T Prop).
Thm* (vartype(i;x) r T) & e@i.first(e)  I((x when e))
Thm* 
Thm* e@i.I((x when e))  I((x after e))  @i always.I(x) | [es-invariant1] |
Thm* es:ES, i:Id, P:({e:E| loc(e) = i Id } Prop).
Thm* e@i.P(e)  e@i.first(e)  P(e) & e@i. first(e)  P(pred(e))  P(e) | [alle-at-iff] |
Thm* es:ES, x:Id, e:E.
Thm* first(e)  (x after pred(e)) = (x when e) vartype(loc(e);x) | [es-after-pred] |
Def before(e) == if first(e) nil else before(pred(e)) @ [pred(e)] fi
Def (recursive) | [es-before] |