At:
vc trace correctness12121111
1.
A: ioa{i:l}()
2.
I: Fmla
3.
rho: Decl
4.
de: sig()
5.
e: {[[de]] rho}
6.
te: LabelLabel
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.
s:[[A]] rho de e.state, tr:([[A.da]] rho) List.
([[A]] rho de e -tr- > s) [[VCs(A;I)]] rho A.ds A.da de e s mk_trace_env(tr, te)
16.
x: [[A]] rho de e.state
17.
r:rel(). r A.init [[r]] rho A.ds < > de e x niltrace()
18.
v:vc{i:l}().
v < *vc_imp(mk_imp(A.init, I))* > +* ioa_trans_all{i}(A;I)
vc_mng(v;rho;A.ds;A.da;de;e;x;mk_trace_env(nil, te))
19.
[[A.init]] rho A.ds < > de e x mk_trace_env(nil, te)
[[I]] rho A.ds < > de e x mk_trace_env(nil, te)
20.
r: rel()
21.
r A.init
22.
[[r]] rho A.ds < > de e x niltrace()
[[r]] rho A.ds < > de e x mk_trace_env(nil, te)
By:
Subst ([[r]] rho A.ds < > de e x mk_trace_env(nil, te) ~ [[r]] rho A.ds < > de e x niltrace()) 0
THEN
Try Trivial
THEN
Try
(BackThru
Thm* r:rel(), te:(LabelLabel), rho,ds,da,de,e,s,a:Top. [[r]] rho ds da de e s a mk_trace_env(nil, te) ~ [[r]] rho ds da de e s a niltrace())
Generated subgoals: