Thm* as:(Label T) List, d:T, x:Label.
(x 1of(unzip(as)))  apply_alist(as;x;d) = d | [apply_alist_non_member] |
Thm* as:(Label T) List, d1,d2:T, x:Label.
(x 1of(unzip(as)))  apply_alist(as;x;d1) = apply_alist(as;x;d2) | [apply_alist_member2] |
Thm* as:(Label T) List, d:T, x:Label.
(x 1of(unzip(as)))  ( < x,apply_alist(as;x;d) > as) | [apply_alist_member] |
Thm* as:(Label T) List, p:(Label T), l:Label, d:T.
apply_alist([p / as];l;d) ~ if 1of(p) = l 2of(p) else apply_alist(as;l;d) fi | [apply_alist_cons] |
Thm* d:Top, l:Label. apply_alist(nil;l;d) ~ d | [apply_alist_nil] |
Thm* as:(Label T) List, d:T, x:Label.
(apply_alist(as;x;d) 2of(unzip(as))) apply_alist(as;x;d) = d | [apply_alist_property] |
Thm* u:Term, te:(Label Label  ), e,s,a:Top.
[[u]] e s a mk_trace_env(nil, te) ~ [[u]] e s a niltrace() | [term_mng_nil] |
Thm* d:Decl, t:trace_env(d). t.proj Label Label   | [trace_env_proj_wf] |
Thm* d:Decl, t:trace_env(d). t.trace ( d) List | [trace_env_trace_wf] |
Thm* s1,s2:SimpleType. st_eq(s1;s2)  s1 = s2 | [assert_st_eq] |
Thm* s1,s2:SimpleType. st_eq(s1;s2)  | [st_eq_wf] |
Thm* a,b:ts(). (a=b)  a = b | [assert_ts_eq] |
Thm* a,b:ts(). (a=b)  | [ts_eq_wf] |
Thm* A:Type, v,op,f,p,t:(Label A), x:ts().
ts_case(x)var(a)= > v(a)var'(b)= > p(b)opr(f)= > op(f)fvar(y)= > f(y)trace(P)= > t(P)end_ts_case A | [ts_case_wf] |
Thm* as:A List, f,g:Top. map(g;map(f;as)) ~ map(g o f;as) | [map_map_sq] |
Thm* (P1  P2)  (Q1  Q2)  ((P1  Q1)  (P2  Q2)) | [implies_functionality_2] |