Step * of Lemma alpha-rename-alist-property

No Annotations
[opr:Type]
  ∀t:term(opr). ∀L:varname() List.
    ((∀x,x':varname().  ((<x, x'> ∈ alpha-rename-alist(t;L))  ((x ∈ L) ∧ (x' ∈ all-vars(t))))))
    ∧ (∀x,x',y,y':varname().
         ((<x, x'> ∈ alpha-rename-alist(t;L))
          (<y, y'> ∈ alpha-rename-alist(t;L))
          (x' y' ∈ varname())
          (x y ∈ varname()))))
BY
(Intros THEN Unfold `alpha-rename-alist` 0) }

1
1. [opr] Type
2. term(opr)
3. varname() List
⊢ (∀x,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:
                       L
                     with starting value:
                      <all-vars(t), []>)))
      ((x ∈ L) ∧ (x' ∈ all-vars(t))))))
∧ (∀x,x',y,y':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:
                       L
                     with starting value:
                      <all-vars(t), []>)))
      (<y, y'> ∈ 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:
                         L
                       with starting value:
                        <all-vars(t), []>)))
      (x' y' ∈ varname())
      (x y ∈ varname())))


Latex:


Latex:
No  Annotations
\mforall{}[opr:Type]
    \mforall{}t:term(opr).  \mforall{}L:varname()  List.
        ((\mforall{}x,x':varname().
                ((<x,  x'>  \mmember{}  alpha-rename-alist(t;L))  {}\mRightarrow{}  ((x  \mmember{}  L)  \mwedge{}  (\mneg{}(x'  \mmember{}  L  @  all-vars(t))))))
        \mwedge{}  (\mforall{}x,x',y,y':varname().
                  ((<x,  x'>  \mmember{}  alpha-rename-alist(t;L))
                  {}\mRightarrow{}  (<y,  y'>  \mmember{}  alpha-rename-alist(t;L))
                  {}\mRightarrow{}  (x'  =  y')
                  {}\mRightarrow{}  (x  =  y))))


By


Latex:
(Intros  THEN  Unfold  `alpha-rename-alist`  0)




Home Index