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


1. varname()
2. v1 varname()
3. varname()
4. varname() List
5. ∀tab:varname() List × ((varname() × varname()) List)
     ((<x, v1> ∈ snd(tab))
      (<x, v1> ∈ 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:
                        tab))))
6. tab varname() List × ((varname() × varname()) List)
7. (<x, v1> ∈ snd(tab))
⊢ (<x, v1> ∈ 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:
                  let vs,tab tab 
                  in eval x' maybe_new_var(u;vs) in
                     <[x' vs], [<u, x'> tab]>)))
BY
(BackThruSomeHyp THEN (D -2 THEN All Reduce) THEN (CallByValueReduce THENA Auto) THEN Reduce THEN Auto) }


Latex:


Latex:

1.  x  :  varname()
2.  v1  :  varname()
3.  u  :  varname()
4.  v  :  varname()  List
5.  \mforall{}tab:varname()  List  \mtimes{}  ((varname()  \mtimes{}  varname())  List)
          ((<x,  v1>  \mmember{}  snd(tab))
          {}\mRightarrow{}  (<x,  v1>  \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:
                                                tab))))
6.  tab  :  varname()  List  \mtimes{}  ((varname()  \mtimes{}  varname())  List)
7.  (<x,  v1>  \mmember{}  snd(tab))
\mvdash{}  (<x,  v1>  \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:
                                    let  vs,tab  =  tab 
                                    in  eval  x'  =  maybe\_new\_var(u;vs)  in
                                          <[x'  /  vs],  [<u,  x'>  /  tab]>)))


By


Latex:
(BackThruSomeHyp
  THEN  (D  -2  THEN  All  Reduce)
  THEN  (CallByValueReduce  0  THENA  Auto)
  THEN  Reduce  0
  THEN  Auto)




Home Index