(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 1

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: (LabelTerm) 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)

e1.smt.typ term_types(A.ds;dec_lookup(A.da;kind(a));de;e1.smt.term)

By:
Using [`ds1',A.ds;`da1', < e1.typ > ] (BackThru Thm* ds1,ds2:Collection(dec()), da1,da2:Collection(SimpleType), de:sig(), t:Term. ds1 ds2 da1 da2 (a:SimpleType. a term_types(ds1;da1;de;t) a term_types(ds2;da2;de;t)))
THEN
Unfold `col_le` 0
THEN
Try (RW ColMemberC 0)
THEN
Try (BackThru Thm* ds:Collection(dec()), x:Label, T:SimpleType. T dec_lookup(ds;x) mk_dec(x, T) ds)
THEN
Try ((SubstFor kind(a) 0) THEN (SubstFor x1 0))


Generated subgoals:

None

About:
pairproductlistassertless_thanlambdaequalmemberimpliesandall

(73steps) PrintForm Definitions Lemmas mb automata 4 Sections GenAutomata Doc