(73steps)
PrintForm
Definitions
Lemmas
mb
automata
4
Sections
GenAutomata
Doc
At:
wp2
rel
correct
1
1
1
2
2
1
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_pred(A.init;A.ds; < > ;de)
9.
p:pre(). p
A.pre
tc(p.rel;A.ds;dec_lookup(A.da;p.kind);de)
10.
ef:eff(). ef
A.eff
mk_dec(ef.kind, ef.typ)
A.da & mk_dec(ef.smt.lbl, ef.smt.typ)
A.ds & ef.smt.typ
term_types(A.ds; < ef.typ > ;de;ef.smt.term)
11.
f:frame(). f
A.frame
mk_dec(f.var, f.typ)
A.ds
12.
ioa_mentions_trace(A)
13.
trace_consistent_rel(rho;A.da;tr.proj;r)
14.
single_valued_decls(A.ds)
15.
s:
[[A]] rho de e.state
16.
x':
[[A]] rho de e.state
17.
tc(r;A.ds;dec_lookup(A.da;kind(a));de)
18.
covers_rel(A;r)
19.
value(a)
[[dec_lookup(A.da;kind(a))]] rho
20.
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()
21.
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
22.
fr:frame(). fr
A.frame
(kind(a)
fr.acts)
x'.fr.var = s.fr.var
[[fr.typ]] rho
23.
rel_mng_2(r; rho; A.ds; dec_lookup(A.da;kind(a)); de; e; s; x'; value(a); tr)
24.
r@0:
rel()
25.
as:
(Label
Term) List
26.
1of(unzip(as)) = rel_primed_vars(r)
27.
i:
. i < ||as||
2of(as[i])
(
x.smts_eff(action_effect(kind(a);A.eff;A.frame);x))(1of(as[i]))
28.
r@0 = rel_subst2(as;r)
29.
x:
Label
30.
(x
1of(unzip(as)))
31.
i:
32.
i < ||as||
33.
< x,apply_alist(as;x;x) > = as[i]
34.
xxx:
Term
35.
2of(as[i]) = xxx
36.
xx:
Label
37.
1of(as[i]) = xx
38.
s1:
smt()
39.
e1:
eff()
40.
e1
A.eff
41.
e1.kind =
kind(a)
42.
s1 = e1.smt
43.
e1.kind = kind(a)
44.
x'.e1.smt.lbl = [[e1.smt.term]] 1of(e) s value(a) niltrace()
[[e1.smt.typ]] rho
45.
t:
SimpleType
46.
mk_dec(e1.smt.lbl, t)
A.ds
47.
mk_dec(e1.kind, e1.typ)
A.da
48.
mk_dec(e1.smt.lbl, e1.smt.typ)
A.ds
49.
e1.smt.typ
term_types(A.ds; < e1.typ > ;de;e1.smt.term)
x'.e1.smt.lbl = [[e1.smt.term]] 1of(e) s value(a) tr
[[e1.smt.typ]] rho
By:
Subst ([[e1.smt.term]] 1of(e) s value(a) tr ~ [[e1.smt.term]] 1of(e) s value(a) niltrace()) 0
THEN
Try Trivial
Generated subgoal:
1
[[e1.smt.term]] 1of(e) s value(a) tr ~ [[e1.smt.term]] 1of(e) s value(a) niltrace()
About:
(73steps)
PrintForm
Definitions
Lemmas
mb
automata
4
Sections
GenAutomata
Doc