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


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())))
BY
(Assert (L all-vars(t) ⊆ fst(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,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' ∈ fst(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,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())))⋅
THENM (D -1 THEN Trivial)
}

1
.....assertion..... 
1. [opr] Type
2. term(opr)
3. varname() List
⊢ (L all-vars(t) ⊆ fst(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,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' ∈ fst(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,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:

1.  [opr]  :  Type
2.  t  :  term(opr)
3.  L  :  varname()  List
\mvdash{}  (\mforall{}x,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:
                                              L
                                          with  starting  value:
                                            <L  @  all-vars(t),  []>)))
          {}\mRightarrow{}  ((x  \mmember{}  L)  \mwedge{}  (\mneg{}(x'  \mmember{}  L  @  all-vars(t))))))
\mwedge{}  (\mforall{}x,x',y,y':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:
                                              L
                                          with  starting  value:
                                            <L  @  all-vars(t),  []>)))
          {}\mRightarrow{}  (<y,  y'>  \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:
                                                  L
                                              with  starting  value:
                                                <L  @  all-vars(t),  []>)))
          {}\mRightarrow{}  (x'  =  y')
          {}\mRightarrow{}  (x  =  y)))


By


Latex:
(Assert  (L  @  all-vars(t)  \msubseteq{}  fst(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:
                                                                  L
                                                              with  starting  value:
                                                                <L  @  all-vars(t),  []>))
                \mwedge{}  (\mforall{}x,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:
                                                              L
                                                          with  starting  value:
                                                            <L  @  all-vars(t),  []>)))
                          {}\mRightarrow{}  (x'  \mmember{}  fst(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:
                                                        L
                                                    with  starting  value:
                                                      <L  @  all-vars(t),  []>))))))
  \mwedge{}  (\mforall{}x,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:
                                                L
                                            with  starting  value:
                                              <L  @  all-vars(t),  []>)))
            {}\mRightarrow{}  ((x  \mmember{}  L)  \mwedge{}  (\mneg{}(x'  \mmember{}  L  @  all-vars(t))))))
  \mwedge{}  (\mforall{}x,x',y,y':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:
                                                L
                                            with  starting  value:
                                              <L  @  all-vars(t),  []>)))
            {}\mRightarrow{}  (<y,  y'>  \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:
                                                    L
                                                with  starting  value:
                                                  <L  @  all-vars(t),  []>)))
            {}\mRightarrow{}  (x'  =  y')
            {}\mRightarrow{}  (x  =  y)))\mcdot{}
THENM  (D  -1  THEN  Trivial)
)




Home Index