Step * 1 1 2 of Lemma alpha-rename-alist-property2


1. opr Type
2. term(opr)
3. varname()
4. varname()
5. varname() List
6. (x ∈ v)
 (∀Z:varname() List × ((varname() × varname()) List)
      ∃x':varname()
       (<x, x'> ∈ snd(accumulate (with value and list item x):
                       let vs,tab 
                       in eval x' maybe_new_var(x;vs) in
                          <[x' vs], [<x, x'> tab]>
                      over list:
                        v
                      with starting value:
                       Z))))
7. u ∈ varname()
8. Z1 varname() List
9. Z2 (varname() × varname()) List
10. x' varname()
⊢ snd(accumulate (with value and list item x):
       let vs,tab 
       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