Thm* l:SimpleType List, rho:Decl{i}. [[l]] rho{i} Type{i'} | [st_list_mng_wf] |
Thm* t:eff(). t.typ SimpleType | [eff_typ_wf] |
Thm* sts1,sts2:Collection(SimpleType), rho:Decl, v:[[sts1]] rho. sts1 = sts2  v [[sts2]] rho | [sts_mng_functionality] |
Thm* t:SimpleType, rho:Decl, v:[[t]] rho. v [[ < t > ]] rho | [sts_mng_singleton] |
Thm* sts:Collection(SimpleType), rho:Decl, v:[[sts]] rho, s:SimpleType. s sts  v [[s]] rho | [sts_mng_subtype] |
Thm* r:rel(), de:sig(), i: . tc1(r;de)  i < ||r.args||  rel_arg_typ(r.name;i;de) SimpleType | [rel_arg_typ_wf] |
Thm* a1,a2,b1,b2:Collection(SimpleType). a1 = a2  b1 = b2  st_app(a1;b1) = st_app(a2;b2) | [st_app_functionality] |
Thm* a1,a2,b1,b2:Collection(SimpleType). a1 a2  b1 b2  st_app(a1;b1) st_app(a2;b2) | [st_app_monotone] |
Thm* c1,c2:Collection(SimpleType), s:SimpleType. s st_app(c1;c2)  ( a:SimpleType. a c2 & a s c1) | [member_st_app] |
Thm* x:Label, a1,a2:Collection(dec()). a1 a2  dec_lookup(a1;x) dec_lookup(a2;x) | [dec_lookup_monotone] |
Thm* ds1,ds2:Collection(dec()), x:Label. ds1 = ds2  dec_lookup(ds1;x) = dec_lookup(ds2;x) | [dec_lookup_functionality] |
Thm* ds:Collection(dec()), x:Label, T:SimpleType. T dec_lookup(ds;x)  mk_dec(x, T) ds | [member_dec_lookup] |
Thm* t:frame(). t.typ SimpleType | [frame_typ_wf] |
Thm* t:smt(). t.typ SimpleType | [smt_typ_wf] |
Thm* t:dec(). t.typ SimpleType | [dec_typ_wf] |
Thm* t:sig(). t.rel Label (SimpleType List) | [sig_rel_wf] |
Thm* t:sig(). t.fun Label SimpleType | [sig_fun_wf] |
Thm* s1,s2,s:SimpleType. s st_app1(s1;s2)  st_eq(s1;s2 s) | [member_st_app1] |
Thm* s1,s2:SimpleType. st_app1(s1;s2) Collection(SimpleType) | [st_app1_wf] |
Def [[sts]] rho == x:{x:SimpleType| x sts }. [[x]] rho | [sts_mng] |
Def eff() == Label Label SimpleType smt() | [eff] |
Def st_app(c1;c2) == ( s2 c2.( s1 c1.st_app1(s1;s2))) | [st_app] |
Def single_valued_decls(c) == x:Label, t1,t2:SimpleType. mk_dec(x, t1) c  mk_dec(x, t2) c  t1 = t2 | [single_valued_decls] |
Def dec_lookup(ds;x) == < d.typ | d < d ds | d.lbl = x > > | [dec_lookup] |
Def frame() == Label SimpleType (Label List) | [frame] |
Def relname() == SimpleType+Label | [relname] |
Def smt() == Label Term SimpleType | [smt] |
Def dec() == Label SimpleType | [dec] |
Def sig() == (Label SimpleType) (Label (SimpleType List)) | [sig] |
Def st_app1(s1;s2) == Case(s1) Case a;b = > if st_eq(a;s2) < b > else < > fi Default = > < > | [st_app1] |