(51steps)
PrintForm
Definitions
Lemmas
mb
automata
4
Sections
GenAutomata
Doc
At:
vc
trace
correctness
1
3
2
1
2
2
2
1
1
1
1
1.
A:
ioa{i:l}()
2.
I:
Fmla
3.
rho:
Decl
4.
de:
sig()
5.
e:
{[[de]] rho}
6.
te:
Label
Label
7.
tc_ioa(A;de)
8.
ioa_mentions_trace(A)
9.
trace_consistent_pred(rho;A.da;te;I)
10.
guarded_trace(A.da;te;I)
11.
tc_pred(I;A.ds; < > ;de)
12.
covers_pred(A;I)
13.
closed_pred(I)
14.
single_valued_decls(A.ds)
15.
s0:
[[A]] rho de e.state
16.
x:
[[A]] rho de e.state
17.
act:
[[A]] rho de e.action
18.
x':
[[A]] rho de e.state
19.
l:
[[A]] rho de e.action List
20.
[[A]] rho de e.init(s0)
21.
trace_reachable([[A]] rho de e;s0;l;x)
22.
mk_trace_env(l, te)
trace_env([[A.da]] rho)
23.
t:dec(). t
A.da & t.lbl = kind(act)
24.
[[I]] rho A.ds < > de e x
mk_trace_env(l, te)
25.
[[A]] rho de e.trans(x,act,x')
26.
l
(
[[A.da]] rho) List
27.
[[VCs(A;I)]] rho A.ds A.da de e x mk_trace_env(l, te)
28.
act
(
[[A.da]] rho)
[[I]] rho A.ds < > de e x'
mk_trace_env(l @ [act], te)
By:
(Inst
Thm*
A:ioa{i:l}(), de:sig(). tc_ioa(A;de)
ioa_mentions_trace(A)
(
Q:Fmla, rho:Decl, e:{[[de]] rho}, a:[[A]] rho de e.action, tr:trace_env([[A.da]] rho). tc_ioa(A;de)
ioa_mentions_trace(A)
trace_consistent_pred(rho;A.da;tr.proj;Q)
single_valued_decls(A.ds)
(
s,x':[[A]] rho de e.state. tc_pred(Q;A.ds; < > ;de)
closed_pred(Q)
covers_pred(A;Q)
[[A]] rho de e.trans(s,a,x')
([[Q]] rho A.ds < > de e x'
tr
[[wp(A;kind(a);Q)]] rho A.ds dec_lookup(A.da;kind(a)) de e s value(a) tr))) [A;de;I;rho;e;act;tappend(mk_trace_env(l, te);act);x;x']) THENA (Auto THEN TrivialIoaHyp)
THEN
Try ((Unfold `tappend` 0) THEN (Reduce 0) THEN Trivial)
Generated subgoal:
1
29.
[[I]] rho A.ds < > de e x'
tappend(mk_trace_env(l, te);act)
[[wp(A;kind(act);I)]] rho A.ds dec_lookup(A.da;kind(act)) de e x value(act) tappend(mk_trace_env(l, te);act)
[[I]] rho A.ds < > de e x'
mk_trace_env(l @ [act], te)
About:
(51steps)
PrintForm
Definitions
Lemmas
mb
automata
4
Sections
GenAutomata
Doc