Thm* A:ioa{i:l}(), I:Fmla, rho:Decl, de:sig(), e:{[[de]] rho}, te:(Label Label  ). tc_ioa(A;de)  ioa_mentions_trace(A)  trace_consistent_pred(rho;A.da;te;I)  tc_pred(I;A.ds; < > ;de)  covers_pred(A;I)  guarded_trace(A.da;te;I)  closed_pred(I)  single_valued_decls(A.ds)  ( s0,x:[[A]] rho de e.state, act:[[A]] rho de e.action, x':[[A]] rho de e.state, tr:( [[A.da]] rho) List. [[A]] rho de e.init(s0)  trace_reachable([[A]] rho de e;s0;mk_trace_env(tr, te).trace;x)  [[I]] rho A.ds < > de e x mk_trace_env(tr, te)  [[A]] rho de e.trans(x,act,x')  (( t:dec(). t A.da & t.lbl = kind(act))  [[I]] rho A.ds < > de e x' tappend(mk_trace_env(tr, te);act))  [[I]] rho A.ds < > de e x' tappend(mk_trace_env(tr, te);act)) | [vc_trace_correct_action_decl_lemma] |
Thm* A:ioa{i:l}(), I:Fmla, rho:Decl, te:(Label Label  ), a:dec(). ioa_mentions_trace(A)  trace_consistent_pred(rho;A.da;te;I)  a A.da  trace_consistent_pred(rho;A.da;te;smts_eff_pred(action_effect(a.lbl;A.eff;A.frame);I)) | [trace_consistent_action_effect] |