Step
*
1
1
1
1
of Lemma
alpha-rename-alist-property2
1. x : varname()
2. v1 : varname()
3. u : varname()
4. v : varname() List
5. ∀tab:varname() List × ((varname() × varname()) List)
     ((<x, v1> ∈ snd(tab))
     
⇒ (<x, v1> ∈ 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 × ((varname() × varname()) List)
7. (<x, v1> ∈ snd(tab))
⊢ (<x, v1> ∈ 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
{ (BackThruSomeHyp THEN (D -2 THEN All Reduce) THEN (CallByValueReduce 0 THENA Auto) THEN Reduce 0 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