Origin Definitions Sections GenAutomata Doc

mb_state_machine
Nuprl Section: mb_state_machine - General transition systems and operations such as intersection and renaming.
Selected Objects
defsm_stateM.state == {M.ds}
defsm_actionM.action == (M.da)
defsmsm{i:l}() == da:Declds:Decl({ds}Prop)({ds}(da){ds}Prop)
defsm_dat.da == 1of(t)
defsm_dst.ds == 1of(2of(t))
defsm_initt.init == 1of(2of(2of(t)))
defsm_transt.trans == 2of(2of(2of(t)))
defmk_smmk_sm(da, ds, init, trans) == < da,ds,init,trans >
defsm_alli:I M(i) == mk_sm(M(i).da for i I, M(i).ds for i I, s.i:I. M(i).init(s), s1,a,s2. i:I. M(i).trans(s1,a,s2))
THMsmall_stateM:(Ism{i:l}()), j:I, x:i:IM(i).state. x M(j).state
THMsmall_actionM:(Ism{i:l}()), j:I, x:i:IM(i).action. x M(j).action
defsm_a_rename(f o M) == mk_sm(M.da o f, M.ds, M.init, s1,a,s2. l:Label. kind(a) = f(l) & M.trans(s1, < l,value(a) > ,s2))
THMsm_a_rename_stateM:sm{i:l}(), f:(LabelLabel), s:(f o M).state. s M.state
deftrace_reachable(rec) trace_reachable(M;s;l;s') == Case of l nil s = s' M.state a.l' x:M.state. M.trans(s,a,x) & trace_reachable(M;x;l';s')
THMtrace_reachable_oneM:sm{i:l}(), a:M.action, s,s':M.state. trace_reachable(M;s;[a];s') M.trans(s,a,s')
definitially(M |= initially x,tr.P(x;tr)) == x:M.state. M.init(x) P(x;nil)
THMtrace_reachable_appendM:sm{i:l}(), l1,l2:M.action List, s,s':M.state. trace_reachable(M;s;l1 @ l2;s') (x:M.state. trace_reachable(M;s;l1;x) & trace_reachable(M;x;l2;s'))
defreachable_via(M -tr- > s) == s0:M.state. M.init(s0) & trace_reachable(M;s0;tr;s)
deftrace_inv(M |= always s,t.P(s;t)) == t:M.action List, s0,s:M.state. M.init(s0) trace_reachable(M;s0;t;s) P(s;t)
THMtrace_inv_inductionM:sm{i:l}(), I:(M.state(M.action List)Prop). (x:M.state. M.init(x) I(x,nil)) (s0,x:M.state, act:M.action, x':M.state, l:M.action List. M.init(s0) trace_reachable(M;s0;l;x) I(x,l) M.trans(x,act,x') I(x',l @ [act])) (M |= always s,t.I(s,t))
deftla(M |= x,x',tr,tr'.R(x;x';tr;tr')) == x,x':M.state, tr:M.action List, a:M.action. (M -tr- > x) M.trans(x,a,x') R(x;x';tr;tr @ [a])
defwhile(M |= x,tr.P(x;tr) while Q(x;tr)) == (M |= x,x',tr,tr'.P(x;tr) Q(x;tr) Q(x';tr') P(x';tr'))
THMtrace_inv_as_whileM:sm{i:l}(), P:(M.state(M.action List)Prop). (M |= always s,t.P(s,t)) (M |= s,t.P(s,t) while True) & (M |= initially s,t.P(s,t))

Origin Definitions Sections GenAutomata Doc