Step
*
1
1
1
1
1
1
1
4
1
of Lemma
alpha-rename-equivalent
1. v : varname()
2. u : varname()
3. bnds : varname() List
4. bnds ∈ {v:varname()| (v ∈ bnds)}  List
5. ∀F:{v@0:varname()| (v@0 ∈ bnds)}  ⟶ varname()
     ((v ∈ bnds) 
⇒ Inj({v@0:varname()| (v@0 ∈ bnds)} varname();F) 
⇒ (↑same-binding(map(F;bnds);bnds;F v;v)))
6. F : {v@0:varname()| (v@0 ∈ [u / bnds])}  ⟶ varname()
7. (v ∈ [u / bnds])
8. Inj({v@0:varname()| (v@0 ∈ [u / bnds])} varname();F)
⊢ ↑same-binding(map(F;[u / bnds]);[u / bnds];F v;v)
BY
{ (((Assert F u ∈ varname() BY Auto) THEN (Assert F v ∈ varname() BY Auto))
   THEN (Assert ((u = v ∈ varname()) ∧ ((F u) = (F v) ∈ varname()))
               ∨ ((¬(u = v ∈ varname())) ∧ (¬((F u) = (F v) ∈ varname()))) BY
               (((BoolCase ⌜eq_var(u;v)⌝⋅ THENA Auto) THENL [OrLeft; OrRight])
                THEN Auto
                THEN (D 0 THENA Auto)
                THEN D 9 With ⌜u⌝ 
                THEN Auto))
   ) }
1
1. v : varname()
2. u : varname()
3. bnds : varname() List
4. bnds ∈ {v:varname()| (v ∈ bnds)}  List
5. ∀F:{v@0:varname()| (v@0 ∈ bnds)}  ⟶ varname()
     ((v ∈ bnds) 
⇒ Inj({v@0:varname()| (v@0 ∈ bnds)} varname();F) 
⇒ (↑same-binding(map(F;bnds);bnds;F v;v)))
6. F : {v@0:varname()| (v@0 ∈ [u / bnds])}  ⟶ varname()
7. (v ∈ [u / bnds])
8. Inj({v@0:varname()| (v@0 ∈ [u / bnds])} varname();F)
9. F u ∈ varname()
10. F v ∈ varname()
11. ((u = v ∈ varname()) ∧ ((F u) = (F v) ∈ varname())) ∨ ((¬(u = v ∈ varname())) ∧ (¬((F u) = (F v) ∈ varname())))
⊢ ↑same-binding(map(F;[u / bnds]);[u / bnds];F v;v)
Latex:
Latex:
1.  v  :  varname()
2.  u  :  varname()
3.  bnds  :  varname()  List
4.  bnds  \mmember{}  \{v:varname()|  (v  \mmember{}  bnds)\}    List
5.  \mforall{}F:\{v@0:varname()|  (v@0  \mmember{}  bnds)\}    {}\mrightarrow{}  varname()
          ((v  \mmember{}  bnds)
          {}\mRightarrow{}  Inj(\{v@0:varname()|  (v@0  \mmember{}  bnds)\}  ;varname();F)
          {}\mRightarrow{}  (\muparrow{}same-binding(map(F;bnds);bnds;F  v;v)))
6.  F  :  \{v@0:varname()|  (v@0  \mmember{}  [u  /  bnds])\}    {}\mrightarrow{}  varname()
7.  (v  \mmember{}  [u  /  bnds])
8.  Inj(\{v@0:varname()|  (v@0  \mmember{}  [u  /  bnds])\}  ;varname();F)
\mvdash{}  \muparrow{}same-binding(map(F;[u  /  bnds]);[u  /  bnds];F  v;v)
By
Latex:
(((Assert  F  u  \mmember{}  varname()  BY  Auto)  THEN  (Assert  F  v  \mmember{}  varname()  BY  Auto))
  THEN  (Assert  ((u  =  v)  \mwedge{}  ((F  u)  =  (F  v)))  \mvee{}  ((\mneg{}(u  =  v))  \mwedge{}  (\mneg{}((F  u)  =  (F  v))))  BY
                          (((BoolCase  \mkleeneopen{}eq\_var(u;v)\mkleeneclose{}\mcdot{}  THENA  Auto)  THENL  [OrLeft;  OrRight])
                            THEN  Auto
                            THEN  (D  0  THENA  Auto)
                            THEN  D  9  With  \mkleeneopen{}u\mkleeneclose{} 
                            THEN  Auto))
  )
Home
Index