At:
wp correctness
1
2
2
2
2
1
1
3
1.
A: ioa{i:l}()
2.
de: sig()
3.
tc_ioa(A;de)
4.
ioa_mentions_trace(A)
5.
Q: Fmla
6.
rho: Decl
7.
e: {[[de]] rho}
8.
a: [[A]] rho de e.action
9.
tr: trace_env([[A.da]] rho)
10.
tc_ioa(A;de)
11.
ioa_mentions_trace(A)
12.
trace_consistent_pred(rho;A.da;tr.proj;Q)
13.
single_valued_decls(A.ds)
14.
s: [[A]] rho de e.state
15.
x': [[A]] rho de e.state
16.
tc_pred(Q;A.ds; < > ;de)
17.
closed_pred(Q)
18.
covers_pred(A;Q)
19.
[[A]] rho de e.trans(s,a,x')
20.
pred_mng_2((Q)'; rho; A.ds; < > ; de; e; s; x';
; tr)

[[wp2(A;kind(a);(Q)')]] rho A.ds dec_lookup(A.da;kind(a)) de e s value(a) tr
21.
pred_mng_2((Q)'; rho; A.ds; < > ; de; e; s; x';
; tr
) 
[[wp2(A;kind(a);(Q)')]] rho A.ds dec_lookup(A.da;kind(a)) de e s value(a) tr
22.
[[wp2(A;kind(a);(Q)')]] rho A.ds dec_lookup(A.da;kind(a)) de e s value(a) tr
Prop
23.
pred_mng_2((Q)'; rho; A.ds; < > ; de; e; s; x';
; tr)
Prop
24.
[[wp(A;kind(a);Q)]] rho A.ds dec_lookup(A.da;kind(a)) de e s value(a) tr
Prop
25.
[[Q]] rho A.ds < > de e x'
tr
Prop
26.
pred_mng_2((Q)'; rho; A.ds; < > ; de; e; s; x';
; tr) 
[[Q]] rho A.ds < > de e x'
tr
27.
pred_mng_2((Q)'; rho; A.ds; < > ; de; e; s; x';
; tr) 
[[Q]] rho A.ds < > de e x'
tr
28.
p1,p2:Fmla, ds1,ds2,daa:Collection(dec()), da1,da2:Collection(SimpleType), de:sig(), rho:Decl
, e:{[[de]] rho}, s:{[[ds1]] rho}, a:[[da1]] rho, tr:trace_env([[daa]] rho).
trace_consistent_pred(rho;daa;tr.proj;p1)

tc_pred(p1;ds1;da1;de)

p1 = p2

ds1 = ds2 
da1 = da2 
([[p1]] rho ds1 da1 de e s a tr 
[[p2]] rho ds2 da2 de e s a tr)
wp2(A;kind(a);(Q)') = wp(A;kind(a);Q)
By:
Easy
Generated subgoals:
None
About: