At:
vc trace correct action decl lemma
1
2
1
1
2
1
1.
A: ioa{i:l}()
2.
I: Collection(rel())
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.
tc_pred(I;A.ds; < > ;de)
11.
covers_pred(A;I)
12.
guarded_trace(A.da;te;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.
tr: (
[[A.da]] rho) List
20.
[[A]] rho de e.init(s0)
21.
trace_reachable([[A]] rho de e;s0;mk_trace_env(tr, te).trace;x)
22.
r:rel(). r
I 
[[r]] rho A.ds < > de e x
mk_trace_env(tr, te)
23.
[[A]] rho de e.trans(x,act,x')
24.
(
t:dec(). t
A.da & t.lbl = kind(act))

(
r:rel(). r
I 
[[r]] rho A.ds < > de e x'
tappend(mk_trace_env(tr, te);act))
25.
(
r:rel().
(
r@0:rel().
r@0
I
& r
smts_eff_rel( < e.smt | e
< e
A.eff | e.kind =
kind(act) > >
+ < mk_smt(f.var, f.var, f.typ) | f
< f
A.frame | 
kind(act)
f.acts > > ;r@0))

[[r]] rho A.ds dec_lookup(A.da;kind(act)) de e x value(act) tappend(mk_trace_env(tr, te);act))

(
r:rel(). r
I 
[[r]] rho A.ds < > de e x'
tappend(mk_trace_env(tr, te);act))
26.
r: rel()
27.
r
I
28.
act
(
[[A.da]] rho)
covers_rel(A;r)
By:
Easy
Generated subgoals:
None
About: