(73steps)
PrintForm
Definitions
Lemmas
mb
automata
4
Sections
GenAutomata
Doc
At:
wp2
rel
correct
1
1
1
2
2
1
2
1.
A:
ioa{i:l}()
2.
r:
rel()
3.
rho:
Decl
4.
de:
sig()
5.
e:
{[[de]] rho}
6.
a:
(
[[A.da]] rho)
7.
tr:
trace_env([[A.da]] rho)
8.
tc_ioa(A;de)
9.
ioa_mentions_trace(A)
10.
trace_consistent_rel(rho;A.da;tr.proj;r)
11.
single_valued_decls(A.ds)
12.
s:
[[A]] rho de e.state
13.
x':
[[A]] rho de e.state
14.
tc(r;A.ds;dec_lookup(A.da;kind(a));de)
15.
covers_rel(A;r)
16.
value(a)
[[dec_lookup(A.da;kind(a))]] rho
17.
p:pre(). p
A.pre
p.kind = kind(a)
[[p.rel]] rho A.ds dec_lookup(A.da;kind(a)) de e s value(a) niltrace()
18.
ef:eff(). ef
A.eff
ef.kind = kind(a)
x'.ef.smt.lbl = [[ef.smt.term]] 1of(e) s value(a) niltrace()
[[ef.smt.typ]] rho
19.
fr:frame(). fr
A.frame
(kind(a)
fr.acts)
x'.fr.var = s.fr.var
[[fr.typ]] rho
20.
rel_mng_2(r; rho; A.ds; dec_lookup(A.da;kind(a)); de; e; s; x'; value(a); tr)
21.
r@0:
rel()
22.
as:
(Label
Term) List
23.
1of(unzip(as)) = rel_primed_vars(r)
24.
i:
. i < ||as||
2of(as[i])
(
x.smts_eff(action_effect(kind(a);A.eff;A.frame);x))(1of(as[i]))
25.
r@0 = rel_subst2(as;r)
26.
x:
Label
27.
(x
1of(unzip(as)))
28.
i:
29.
i < ||as||
30.
< x,apply_alist(as;x;x) > = as[i]
31.
xxx:
Term
32.
2of(as[i]) = xxx
33.
xx:
Label
34.
1of(as[i]) = xx
35.
s1:
smt()
36.
f:
frame()
37.
f
A.frame
38.
kind(a)
f.acts
39.
s1 = mk_smt(f.var, f.var, f.typ)
t:SimpleType. mk_dec(f.var, t)
A.ds
t
dec_lookup(A.ds;f.var) & x'.f.var = s.f.var
[[t]] rho
By:
RW assert_pushdownC -2
THEN
RWW "assert_lbls_member" -2
THEN
AllHyps (
i.(InstHyp [f] i) THENA (Complete Auto))
THEN
Try (BackThru
Thm*
ds:Collection(dec()), x:Label, T:SimpleType. T
dec_lookup(ds;x)
mk_dec(x, T)
ds)
Generated subgoal:
1
38.
(kind(a)
f.acts)
39.
s1 = mk_smt(f.var, f.var, f.typ)
40.
x'.f.var = s.f.var
[[f.typ]] rho
41.
t:
SimpleType
42.
mk_dec(f.var, t)
A.ds
x'.f.var = s.f.var
[[t]] rho
About:
(73steps)
PrintForm
Definitions
Lemmas
mb
automata
4
Sections
GenAutomata
Doc