Origin Definitions Sections GenAutomata Doc

mb_automata_1
Nuprl Section: mb_automata_1
Selected Objects
THMimplies_functionality_2(P1 P2) (Q1 Q2) ((P1 Q1) (P2 Q2))
THMmap_map_sqas:A List, f,g:Top. map(g;map(f;as)) ~ map(g o f;as)
deftsts() == Label+Label+Label+Label+Label
THMts_sqSQType(ts())
defts_varts_var(x) == inl(x)
defcase_ts_varCase ts_var(x) = > body(x) cont(x1,z) == InjCase(x1; x2. body(x2); _. cont(z,z))
defts_pvarts_pvar(x) == inr(inl(x))
defcase_ts_pvarCase ts_pvar(x) = > body(x) cont(x1,z) == (x1.inr(x2) = > (x1.inl(x2) = > body(hd([x2 / tl(x1)])) cont(hd(x1),z))([x2 / tl(x1)]) cont (hd(x1) ,z)) ([x1])
defts_opts_op(x) == inr(inr(inl(x)))
defcase_ts_opCase ts_op(x) = > body(x) cont(x1,z) == (x1.inr(x2) = > (x1.inr(x2) = > (x1.inl(x2) = > body(hd([x2 / tl(x1)])) cont(hd(x1),z))([x2 / tl(x1)]) cont (hd(x1) ,z)) ([x2 / tl(x1)]) cont (hd(x1) ,z)) ([x1])
defts_fvarts_fvar(x) == inr(inr(inr(inl(x))))
defcase_ts_fvarCase ts_fvar(x) = > body(x) cont(x1,z) == (x1.inr(x2) = > (x1.inr(x2) = > (x1.inr(x2) = > (x1.inl(x2) = > body(hd([x2 / tl(x1)])) cont(hd(x1),z))([x2 / tl(x1)]) cont (hd(x1) ,z)) ([x2 / tl(x1)]) cont (hd(x1) ,z)) ([x2 / tl(x1)]) cont (hd(x1) ,z)) ([x1])
defts_tracets_trace(x) == inr(inr(inr(inr(x))))
defcase_ts_traceCase ts_trace(x) = > body(x) cont(x1,z) == (x1.inr(x2) = > (x1.inr(x2) = > (x1.inr(x2) = > (x1.inr(x2) = > body(hd([x2 / tl(x1)])) cont(hd(x1),z))([x2 / tl(x1)]) cont (hd(x1) ,z)) ([x2 / tl(x1)]) cont (hd(x1) ,z)) ([x2 / tl(x1)]) cont (hd(x1) ,z)) ([x1])
defts_casets_case(x) var(a)= > v(a) var'(b)= > p(b) opr(f)= > op(f) fvar(x)= > f(x) trace(P)= > t(P) end_ts_case == Case(x) Case ts_var(a) = > v(a) Case ts_pvar(b) = > p(b) Case ts_op(f) = > op(f) Case ts_fvar(x) = > f(x) Case ts_trace(P) = > t(P) Default = >
defts_eq(a=b) == ts_case(a) var(v)= > ts_case(b) var(v')= > v = v' var'(x)= > false opr(x)= > false fvar(x)= > false trace(x)= > false end_ts_case var'(p)= > ts_case(b) var(x)= > false var'(p')= > p = p' opr(x)= > false fvar(x)= > false trace(x)= > false end_ts_case opr(op)= > ts_case(b) var(x)= > false var'(x)= > false opr(op')= > op = op' fvar(x)= > false trace(x)= > false end_ts_case fvar(f)= > ts_case(b) var(x)= > false var'(x)= > false opr(x)= > false fvar(f')= > f = f' trace(x)= > false end_ts_case trace(P)= > ts_case(b) var(x)= > false var'(x)= > false opr(x)= > false fvar(x)= > false trace(P')= > P = P' end_ts_case end_ts_case
THMassert_ts_eqa,b:ts(). (a=b) a = b
deftermTerm == Tree(ts())
THMterm_sq2SQType(Term)
deftvarl == tree_leaf(ts_var(l))
deftfvarl == tree_leaf(ts_fvar(l))
defttracetrace(l) == tree_leaf(ts_trace(l))
deftpvarl' == tree_leaf(ts_pvar(l))
deftoprf == tree_leaf(ts_op(f))
deftappt1 t2 == tree_node( < t1, t2 > )
defterm_iterateterm_iterate(v; p; op; f; tr; a; t) == t_iterate(x.ts_case(x) var(a)= > v(a) var'(b)= > p(b) opr(c)= > op(c) fvar(d)= > f(d) trace(P)= > tr(P) end_ts_case ;a;t)
defstSimpleType == Tree(Label+Unit)
THMst_sqSQType(SimpleType)
defst_eq(rec) st_eq(s1;s2) == Case(s1) Case a;b = > Case(s2) Case a';b' = > st_eq(a;a')st_eq(b;b') Default = > false Case tree_leaf(x) = > Case(s2) Case a';b' = > false Case tree_leaf(y) = > InjCase(x; x'. InjCase(y; y'. x' = y'; b. false); a. InjCase(y; y'. false; b. true)) Default = > false Default = > false
deftypt == tree_leaf(inl(t))
defst_toptTop == tree_leaf(inr())
defarrowab == tree_node( < a, b > )
THMassert_st_eqs1,s2:SimpleType. st_eq(s1;s2) s1 = s2
defsig_funt.fun == 1of(t)
defsig_relt.rel == 2of(t)
defdec_lblt.lbl == 1of(t)
defdec_typt.typ == 2of(t)
defmk_decmk_dec(lbl, typ) == < lbl,typ >
defcase_mk_decCase lbl : typ = > body(lbl;typ)(x,z) == x/x2,x1. body(x2;x1)
defsmt_lblt.lbl == 1of(t)
defsmt_termt.term == 1of(2of(t))
defsmt_typt.typ == 2of(2of(t))
defmk_smtmk_smt(lbl, term, typ) == < lbl,term,typ >
defrelname_eqrelname_eq(x) == inl(x)
defcase_relname_eqCase eq(x) = > body(x) cont(x1,z) == InjCase(x1; x2. body(x2); _. cont(z,z))
defrelname_otherrelname_other(x) == inr(x)
defcase_relname_otherCase x = > body(x) cont(x1,z) == (x1.inr(x2) = > body(hd([x2 / tl(x1)])) cont(hd(x1),z))([x1])
defrel_namet.name == 1of(t)
defrel_argst.args == 2of(t)
defmk_relmk_rel(name, args) == < name,args >
defeff_kindt.kind == 1of(t)
defeff_typt.typ == 1of(2of(2of(t)))
defeff_smtt.smt == 2of(2of(2of(t)))
defframe_vart.var == 1of(t)
defframe_typt.typ == 1of(2of(t))
defframe_actst.acts == 2of(2of(t))
defpre_kindt.kind == 1of(t)
defpre_relt.rel == 2of(2of(t))
defioa_dst.ds == 1of(t)
defioa_dat.da == 1of(2of(t))
defioa_initt.init == 1of(2of(2of(t)))
defioa_pret.pre == 1of(2of(2of(2of(t))))
defioa_efft.eff == 1of(2of(2of(2of(2of(t)))))
defioa_framet.frame == 2of(2of(2of(2of(2of(t)))))
defmk_ioamk_ioa(ds, da, init, pre, eff, frame) == < ds,da,init,pre,eff,frame >
defioa_allioa_all(I; i.A(i)) == mk_ioa(i:I. A(i).ds, i:I. A(i).da, i:I. A(i).init, i:I. A(i).pre, i:I. A(i).eff, i:I. A(i).frame)
deftc1tc1(r;de) == Case(r.name) Case eq(Q) = > ||r.args|| = 2 Case R = > ||de.rel(R)|| = ||r.args|| Default = > False
defrel_arg_typrel_arg_typ(rn;i;de) == Case(rn) Case eq(Q) = > Q Case R = > (de.rel(R))[i] Default = > False
deftrace_envtrace_env(d) == ((d) List)(LabelLabel)
deftrace_env_tracet.trace == 1of(t)
deftrace_env_projt.proj == 2of(t)
defmk_trace_envmk_trace_env(trace, proj) == < trace,proj >
deftprojtre.P == tre.trace | tre.proj(P)
defniltraceniltrace() == mk_trace_env(nil, P,k. false)
deftappendtappend(tr;a) == mk_trace_env(tr.trace @ [a], tr.proj)
defterm_mng[[t]] e s a tr == iterate(statevar x- > s.x statevar x'- > s.x funsymbol f- > e.f freevar x- > a trace(P)- > tr.P x(y)- > x(y) over t)
THMterm_mng_nilu:Term, te:(LabelLabel), e,s,a:Top. [[u]] e s a mk_trace_env(nil, te) ~ [[u]] e s a niltrace()
defst_liftst_lift(rho)(x) == InjCase(x; x'. rho(x'); a. Top)
defpredFmla == Collection(rel())
defpred_andP Q == P + Q
defpred_relr == < r >
defapply_alistapply_alist(as;l;d) == 2of((first p as s.t. 1of(p) = l else < l,d > ))
THMapply_alist_propertyas:(LabelT) List, d:T, x:Label. (apply_alist(as;x;d) 2of(unzip(as))) apply_alist(as;x;d) = d
THMapply_alist_nild:Top, l:Label. apply_alist(nil;l;d) ~ d
THMapply_alist_consas:(LabelT) List, p:(LabelT), l:Label, d:T. apply_alist([p / as];l;d) ~ if 1of(p) = l 2of(p) else apply_alist(as;l;d) fi
defterm_varsterm_vars(t) == iterate(statevar v- > [v] statevar v'- > [v] funsymbol f- > nil freevar f- > nil trace(P)- > nil x(y)- > x @ y over t)
THMapply_alist_memberas:(LabelT) List, d:T, x:Label. (x 1of(unzip(as))) ( < x,apply_alist(as;x;d) > as)
THMapply_alist_member2as:(LabelT) List, d1,d2:T, x:Label. (x 1of(unzip(as))) apply_alist(as;x;d1) = apply_alist(as;x;d2)
THMapply_alist_non_memberas:(LabelT) List, d:T, x:Label. (x 1of(unzip(as))) apply_alist(as;x;d) = d

Origin Definitions Sections GenAutomata Doc