At:
rel subst mng 2 iff121122212112121211
1.
r: rel()
2.
as: (LabelTerm) List
3.
ds: Collection{i}(dec())
4.
daa: Collection{i}(dec())
5.
da: Collection{i}(SimpleType)
6.
de: sig()
7.
rho: Decl{i}
8.
e: {sig_mng{i:l}
(de; rho)}
9.
s: {[[ds]] rho}
10.
s': {[[ds]] rho}
11.
k: Label
12.
a: [[da]] rho
13.
tr: trace_env([[daa]] rho)
14.
trace_consistent_rel(rho;daa;tr.proj;r)
15.
tc(r;ds;da;de)
16.
subst_mentions_trace(as)
17.
x:Label.
(x rel_primed_vars(r))
(t:SimpleType.
mk_dec(x, t) ds
t term_types(ds;da;de;apply_alist(as;x;x))
& s'.x = [[apply_alist(as;x;x)]] 1of(e) s a tr [[t]] rho)
18.
tc(rel_subst2(as;r);ds;da;de)
19.
trace_consistent_rel(rho;daa;tr.proj;rel_subst2(as;r))
20.
||rel_subst2(as;r).args|| = ||r.args||
21.
i:
22.
i < ||rel_subst2(as;r).args||
23.
i < ||r.args||
24.
t: Term
25.
r.args[i] = t
26.
tc1(r;de)
27.
u: TermType{i'}
28.
w: t:{v:Term| u(v) }trace_consistent(rho;daa;tr.proj;t)
(b:SimpleType.
(x:Label. (x term_primed_vars(t)) (x rel_primed_vars(r)))
b term_types(ds;da;de;t)
[[term_subst2(as;t)]] 1of(e) s a tr = [[t]] 1of(e) s s' a tr [[b]] rho)
29.
x: Label
30.
trace_consistent(rho;daa;tr.proj;x')
31.
b: SimpleType
32.
x@0:Label. (x@0 [x]) (x@0 rel_primed_vars(r))
33.
b dec_lookup(ds;x)
unprime(apply_alist(as;x;x')) ~ unprime(apply_alist(as;x;x))
By:
AllHyps Thin
THEN
Unfolds [`apply_alist`;`unprime`] 0
THEN
Unfold `find` 0
THEN
ListInd 1
THEN
Reduce 0
THEN
Try Trivial
THEN
SplitOnConclITE
THEN
Reduce 0
THEN
Try Trivial
Generated subgoals: