(73steps)
PrintForm
Definitions
Lemmas
mb
automata
4
Sections
GenAutomata
Doc
At:
wp2
rel
correct
2
1
2
1
1
1
2
2
1
1
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.ds]] rho}
16.
x':
{[[A.ds]] rho}
17.
tc(r;A.ds;dec_lookup(A.da;kind(a));de)
18.
covers_rel(A;r)
19.
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()
20.
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
21.
tc(r;A.ds;dec_lookup(A.da;kind(a));de)
22.
fr:frame(). fr
A.frame
(kind(a)
fr.acts)
x'.fr.var = s.fr.var
[[fr.typ]] rho
23.
x:Label. rel_mentions(r;x)
covers_var(A;x)
24.
value(a)
[[dec_lookup(A.da;kind(a))]] rho
25.
r@0:rel(). r@0
col_subst2(
x.smts_eff(action_effect(kind(a);A.eff;A.frame);x);r)
[[r@0]] rho A.ds dec_lookup(A.da;kind(a)) de e s value(a) tr
26.
r':
rel()
27.
as:
(Label
Term) List
28.
1of(unzip(as)) = rel_primed_vars(r)
29.
i:
. i < ||as||
2of(as[i])
smts_eff(action_effect(kind(a);A.eff;A.frame);1of(as[i]))
30.
r' = rel_subst2(as;r)
31.
x:
Label
32.
(x
1of(unzip(as)))
33.
i:
34.
i < ||as||
35.
< x,apply_alist(as;x;x) > = as[i]
36.
xxx:
Term
37.
2of(as[i]) = xxx
38.
xx:
Label
39.
1of(as[i]) = xx
40.
s1:
smt()
41.
e1:
eff()
42.
e1
A.eff
43.
e1.kind =
kind(a)
44.
s1 = e1.smt
45.
e1.kind = kind(a)
46.
x'.e1.smt.lbl = [[e1.smt.term]] 1of(e) s value(a) niltrace()
[[e1.smt.typ]] rho
47.
t:
SimpleType
48.
mk_dec(e1.smt.lbl, t)
A.ds
49.
mk_dec(e1.kind, e1.typ)
A.da
50.
mk_dec(e1.smt.lbl, e1.smt.typ)
A.ds
51.
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