Step
*
1
1
2
of Lemma
alpha-rename-alist-property2
1. opr : Type
2. t : term(opr)
3. x : varname()
4. u : varname()
5. v : varname() List
6. (x ∈ v)
⇒ (∀Z:varname() List × ((varname() × varname()) List)
      ∃x':varname()
       (<x, x'> ∈ snd(accumulate (with value p and list item x):
                       let vs,tab = p 
                       in eval x' = maybe_new_var(x;vs) in
                          <[x' / vs], [<x, x'> / tab]>
                      over list:
                        v
                      with starting value:
                       Z))))
7. x = u ∈ varname()
8. Z1 : varname() List
9. Z2 : (varname() × varname()) List
10. x' : varname()
⊢ snd(accumulate (with value p and list item x):
       let vs,tab = p 
       in eval x' = maybe_new_var(x;vs) in
          <[x' / vs], [<x, x'> / tab]>
      over list:
        v
      with starting value:
       eval x' = maybe_new_var(u;Z1) in
       <[x' / Z1], [<u, x'> / Z2]>)) ∈ (varname() × varname()) List
BY
{ (GenConclAtAddrType ⌜varname() List × ((varname() × varname()) List)⌝ [2;1]⋅ THEN Auto) }
Latex:
Latex:
1.  opr  :  Type
2.  t  :  term(opr)
3.  x  :  varname()
4.  u  :  varname()
5.  v  :  varname()  List
6.  (x  \mmember{}  v)
{}\mRightarrow{}  (\mforall{}Z:varname()  List  \mtimes{}  ((varname()  \mtimes{}  varname())  List)
            \mexists{}x':varname()
              (<x,  x'>  \mmember{}  snd(accumulate  (with  value  p  and  list  item  x):
                                              let  vs,tab  =  p 
                                              in  eval  x'  =  maybe\_new\_var(x;vs)  in
                                                    <[x'  /  vs],  [<x,  x'>  /  tab]>
                                            over  list:
                                                v
                                            with  starting  value:
                                              Z))))
7.  x  =  u
8.  Z1  :  varname()  List
9.  Z2  :  (varname()  \mtimes{}  varname())  List
10.  x'  :  varname()
\mvdash{}  snd(accumulate  (with  value  p  and  list  item  x):
              let  vs,tab  =  p 
              in  eval  x'  =  maybe\_new\_var(x;vs)  in
                    <[x'  /  vs],  [<x,  x'>  /  tab]>
            over  list:
                v
            with  starting  value:
              eval  x'  =  maybe\_new\_var(u;Z1)  in
              <[x'  /  Z1],  [<u,  x'>  /  Z2]>))  \mmember{}  (varname()  \mtimes{}  varname())  List
By
Latex:
(GenConclAtAddrType  \mkleeneopen{}varname()  List  \mtimes{}  ((varname()  \mtimes{}  varname())  List)\mkleeneclose{}  [2;1]\mcdot{}  THEN  Auto)
Home
Index