Origin Definitions Sections GenAutomata Doc

mb_automata_2
Nuprl Section: mb_automata_2
Selected Objects
defcovers_varcovers_var(A;x) == fr:frame(). fr < fr A.frame | fr.var = x > & (a:Label. (a fr.acts) (ef:eff(). ef < ef A.eff | ef.kind = a & ef.smt.lbl = x > ))
defaction_preaction_pre(a;ps) == < p.rel | p < p ps | p.kind = a > >
defimp_hypt.hyp == 1of(t)
defimp_conclt.concl == 2of(t)
defmk_impmk_imp(hyp, concl) == < hyp,concl >
defqimp_lblt.lbl == 1of(t)
defqimp_hypt.hyp == 1of(2of(t))
defqimp_conclt.concl == 2of(2of(t))
defmk_qimpmk_qimp(lbl, hyp, concl) == < lbl,hyp,concl >
defvc_impvc_imp(x) == inl(x)
defcase_vc_impCase vc_imp(x) = > body(x) cont(x1,z) == InjCase(x1; x2. body(x2); _. cont(z,z))
defvc_qimpvc_qimp(x) == inr(x)
defcase_vc_qimpCase vc_qimp(x) = > body(x) cont(x1,z) == (x1.inr(x2) = > body(hd([x2 / tl(x1)])) cont(hd(x1),z))([x1])
defvc_hypvc_hyp(v) == Case(v) Case vc_imp(x) = > x.hyp Case vc_qimp(x) = > x.hyp Default = > False
defvc_conclvc_concl(v) == Case(v) Case vc_imp(x) = > x.concl Case vc_qimp(x) = > x.concl Default = > False
defvcsVCs{i} == Collection{i'}(vc{i:l}())
defvcs_singleton < *v* > == < v >
defvcs_adda +* b == a + b
defterm_mng2[[t]] e s s' a tr == iterate(statevar x- > s.x statevar x'- > s'.x funsymbol x- > e.x freevar x- > a trace(P)- > tr.P x(y)- > x(y) over t)
defterm_mentions_guardterm_mentions_guard(g;t) == term_iterate(x.false;x.false;x.false;x.false;x.x = g;x,y. x y;t)
defterm_eq(rec) term_eq(a;b) == Case(a) Case x;y = > Case(b) Case x';y' = > term_eq(x;x')term_eq(y;y') Case tree_leaf(x) = > false Default = > True Case tree_leaf(x) = > Case(b) Case x';y' = > false Case tree_leaf(x') = > (x=x') Default = > True Default = > True
defterm_iteriterate(statevar x- > v(x) statevar x''- > v'(x') funsymbol op- > opr(op) freevar f- > fvar(f) trace(tr)- > trace(tr) a(b)- > comb(a;b) over t) == term_iterate(x.v(x); x'.v'(x'); op.opr(op); f.fvar(f); tr.trace(tr); a,b. comb(a;b); t)
THMassert_term_eqa,b:Term. term_eq(a;b) a = b
defst_app1st_app1(s1;s2) == Case(s1) Case a;b = > if st_eq(a;s2) < b > else < > fi Default = > < >
THMmember_st_app1s1,s2,s:SimpleType. s st_app1(s1;s2) st_eq(s1;s2s)
defsigsig() == (LabelSimpleType)(Label(SimpleType List))
defdecdec() == LabelSimpleType
defsmtsmt() == LabelTermSimpleType
THMsmt_sqSQType(smt())
defrelnamerelname() == SimpleType+Label
THMrelname_sqSQType(relname())
defeq_relnameeq_relname(a;b) == Case(a) Case eq(x) = > Case(b) Case eq(x') = > st_eq(x;x') Case x' = > false Default = > false Case x = > Case(b) Case eq(x') = > false Case x' = > x = x' Default = > false Default = > false
THMassert_eq_relnamea,b:relname(). eq_relname(a;b) a = b
defframeframe() == LabelSimpleType(Label List)
defdec_lookupdec_lookup(ds;x) == < d.typ | d < d ds | d.lbl = x > >
THMmember_dec_lookupds:Collection(dec()), x:Label, T:SimpleType. T dec_lookup(ds;x) mk_dec(x, T) ds
defsingle_valued_declssingle_valued_decls(c) == x:Label, t1,t2:SimpleType. mk_dec(x, t1) c mk_dec(x, t2) c t1 = t2
THMdec_lookup_functionalityds1,ds2:Collection(dec()), x:Label. ds1 = ds2 dec_lookup(ds1;x) = dec_lookup(ds2;x)
THMdec_lookup_monotonex:Label, a1,a2:Collection(dec()). a1 a2 dec_lookup(a1;x) dec_lookup(a2;x)
defst_mng[[s]] rho == t_iterate(st_lift(rho);x,y. xy;s)
defunprimeunprime(t) == term_iterate(x.x;x.x;op.op;f.f;P.trace(P);a,b. a b;t)
THMterm_mng_unprimet:Term, e,a,s,tr:Top. [[t]] e s a tr ~ [[unprime(t)]] e s a tr
THMterm_mng2_unprimet:Term, e,s,s',a,tr:Top. [[unprime(t)]] e s s' a tr ~ [[t]] e s a tr
defterm_substterm_subst(as;t) == iterate(statevar v- > apply_alist(as;v;v) statevar v'- > apply_alist(as;v;v') funsymbol f- > f freevar f- > f trace(P)- > trace(P) x(y)- > x y over t)
defterm_free_varsterm_free_vars(t) == term_iterate(f.nil;f.nil;f.nil;v.[v];P.nil;x,y. x @ y;t)
defrel_varsrel_vars(r) == reduce(t,vs. term_vars(t) @ vs;nil;r.args)
defrel_mentionsrel_mentions(r;x) == i:. i < ||r.args|| & (x term_vars(r.args[i]))
defcol_map_substcol_map_subst(x.f(x);c) == < f(x) | x c >
defsmt_termssmt_terms(c) == < s.term | s c >
defaction_effectaction_effect(a;es;fs) == < e.smt | e < e es | e.kind = a > > + < mk_smt(f.var, f.var, f.typ) | f < f fs | a f.acts > >
defimpimp{i:l}() == FmlaFmla
defqimpqimp{i:l}() == LabelFmlaFmla
defaddprime(t)' == term_iterate(x.x';x.x';op.op;f.f;P.trace(P);a,b. a b;t)
THMterm_mng2_addprimet:Term, e,s,s',a,tr:Top. [[(t)']] e s s' a tr ~ [[t]] e s' a tr
THMterm_free_vars_addprimet:Term. term_free_vars((t)') ~ term_free_vars(t)
defterm_subst2term_subst2(as;t) == iterate(statevar v- > v statevar v'- > apply_alist(as;v;v') funsymbol f- > f freevar f- > f trace(P)- > trace(P) x(y)- > x y over t)
THMterm_subst2_addprimex:Term, as:(LabelTerm) List. (v:Label. (v term_vars(x)) (v 1of(unzip(as)))) term_subst2(as;(x)') = term_subst(as;x)
deftermlist_eq(rec) termlist_eq(a;b) == Case of a; nil Case of b; nil true ; x.xs false ; x.xs Case of b; nil false ; x'.xs' term_eq(x;x')termlist_eq(xs;xs')
defmentions_tracementions_trace(t) == iterate(statevar x- > false statevar x'- > false funsymbol x- > false freevar x- > false trace(P)- > true x(y)- > x y over t)
THMassert_termlist_eqa,b:Term List. termlist_eq(a;b) a = b
defaffects_traceaffects_trace(e;k;t) == iterate(statevar x- > false statevar x'- > false funsymbol x- > false freevar x- > false trace(P)- > e(P,k) x(y)- > x y over t)
THMmentions_guard_mentions_traceg:Label, t:Term. term_mentions_guard(g;t) mentions_trace(t)
THMterm_mng_staticu:Term, e,s,a,tr,tr':Top. mentions_trace(u) ([[u]] e s a tr' ~ [[u]] e s a tr)
THMunequal_termlistsa,b:Term List. a = b ||a|| = ||b|| (i:. i < ||a|| & a[i] = b[i])
defst_appst_app(c1;c2) == (s2c2.(s1c1.st_app1(s1;s2)))
THMmember_st_appc1,c2:Collection(SimpleType), s:SimpleType. s st_app(c1;c2) (a:SimpleType. a c2 & as c1)
THMterm_mng_tappendu:Term, d:Decl, tr:trace_env(d), a:(d), e,s,v:Top. affects_trace(tr.proj;kind(a);u) ([[u]] e s v tappend(tr;a) ~ [[u]] e s v tr)
defrelrel() == relname()(Term List)
THMrel_sqSQType(rel())
THMst_app_monotonea1,a2,b1,b2:Collection(SimpleType). a1 a2 b1 b2 st_app(a1;b1) st_app(a2;b2)
THMst_app_functionalitya1,a2,b1,b2:Collection(SimpleType). a1 = a2 b1 = b2 st_app(a1;b1) = st_app(a2;b2)
defeffeff() == LabelLabelSimpleTypesmt()
defsts_mng[[sts]] rho == x:{x:SimpleType| x sts }. [[x]] rho
THMempty_sts_mngv:Top, rho:Decl. v [[ < > ]] rho
THMsts_mng_subtypests:Collection(SimpleType), rho:Decl, v:[[sts]] rho, s:SimpleType. s sts v [[s]] rho
THMsts_mng_singletont:SimpleType, rho:Decl, v:[[t]] rho. v [[ < t > ]] rho
THMsts_mng_functionalitysts1,sts2:Collection(SimpleType), rho:Decl, v:[[sts1]] rho. sts1 = sts2 v [[sts2]] rho
THMmember_rel_varsx:Label, r:rel(). (x rel_vars(r)) (i:. i < ||r.args|| & (x term_vars(r.args[i])))
THMrel_mentions_iffr:rel(), x:Label. rel_mentions(r;x) (x rel_vars(r))
defst_list_mng[[l]] rho == reduce(s,m. [[s]] rhom;Prop;l)
defdec_mng[[d]] rho == Case(d) Case x : s = > x:[[s]] rho
defrelname_mng[[rn]] rho e == Case(rn) Case eq(Q) = > x,y. x = y [[Q]] rho Case R = > e.R Default = > True
defrel_substrel_subst(as;r) == mk_rel(r.name, map(t.term_subst(as;t);r.args))
defrel_unprimerel_unprime(r) == mk_rel(r.name, map(t.unprime(t);r.args))
defterm_primed_varsterm_primed_vars(t) == iterate(statevar v- > nil statevar v'- > [v] funsymbol f- > nil freevar f- > nil trace(P)- > nil x(y)- > x @ y over t)
THMterm_vars_addprimet:Term. term_primed_vars((t)') ~ term_vars(t)
defclosed_termclosed_term(t) == term_free_vars(t) = nil
THMclosed_tappt1,t2:Term. closed_term(t1 t2) closed_term(t1) & closed_term(t2)
THMterm_primed_vars_term_varsx:Label, u:Term. (x term_primed_vars(u)) (x term_vars(u))
defrel_free_varsrel_free_vars(r) == reduce(t,vs. term_free_vars(t) @ vs;nil;r.args)
THMclosed_term_mngt:Term, e,s,a1,a2,tr:Top. closed_term(t) ([[t]] e s a1 tr ~ [[t]] e s a2 tr)
THMclosed_term_mng2t:Term, e,s,s',a1,a2,tr:Top. closed_term(t) ([[t]] e s s' a1 tr ~ [[t]] e s s' a2 tr)
defpred_mentionspred_mentions(p;x) == r:rel(). r p & rel_mentions(r;x)
defcovers_relcovers_rel(A;r) == x:Label. rel_mentions(r;x) covers_var(A;x)
defsmts_effsmts_eff(ss;x) == smt_terms( < s ss | s.lbl = x > )
defvcvc{i:l}() == imp{i:l}()+qimp{i:l}()
defrel_addprime(r)' == mk_rel(r.name, map(t.(t)';r.args))
THMrel_free_vars_addprimer:rel(). rel_free_vars((r)') = rel_free_vars(r)
defrel_subst2rel_subst2(as;r) == mk_rel(r.name, map(t.term_subst2(as;t);r.args))
THMrel_subst2_addprimer:rel(), as:(LabelTerm) List. 1of(unzip(as)) = rel_vars(r) rel_subst2(as;(r)') = rel_subst(as;r)

Origin Definitions Sections GenAutomata Doc