Step * 1 of Lemma same-binding-not-bound


1. varname()
2. varname() List
3. ∀[ws:varname() List]
     ∀v@0,w:varname().
       ((↑same-binding(v;ws;v@0;w))  (v@0 ∈ v))  ((¬(w ∈ ws)) ∧ (w v@0 ∈ varname()) ∧ (||v|| ||ws|| ∈ ℤ)))
4. u1 varname()
5. v1 varname() List
6. ∀v@0,w:varname().
     ((↑same-binding([u v];v1;v@0;w))
      (v@0 ∈ [u v]))
      ((¬(w ∈ v1)) ∧ (w v@0 ∈ varname()) ∧ (||[u v]|| ||v1|| ∈ ℤ)))
7. v@0 varname()
8. varname()
⊢ (↑case eq_var(u;v@0) of inl(_) => eq_var(u1;w) inr(_) => beq_var(u1;w)) ∧b same-binding(v;v1;v@0;w))
 (v@0 ∈ [u v]))
 ((¬(w ∈ [u1 v1])) ∧ (w v@0 ∈ varname()) ∧ ((||v|| 1) (||v1|| 1) ∈ ℤ))
BY
((BoolCase ⌜eq_var(u;v@0)⌝⋅ THENA Auto) THEN (RW assert_pushdownC THENA Auto)) }

1
1. varname()
2. varname() List
3. ∀[ws:varname() List]
     ∀v@0,w:varname().
       ((↑same-binding(v;ws;v@0;w))  (v@0 ∈ v))  ((¬(w ∈ ws)) ∧ (w v@0 ∈ varname()) ∧ (||v|| ||ws|| ∈ ℤ)))
4. u1 varname()
5. v1 varname() List
6. ∀v@0,w:varname().
     ((↑same-binding([u v];v1;v@0;w))
      (v@0 ∈ [u v]))
      ((¬(w ∈ v1)) ∧ (w v@0 ∈ varname()) ∧ (||[u v]|| ||v1|| ∈ ℤ)))
7. v@0 varname()
8. varname()
9. v@0 ∈ varname()
⊢ (u1 w ∈ varname())
 (v@0 ∈ [u v]))
 ((¬(w ∈ [u1 v1])) ∧ (w v@0 ∈ varname()) ∧ ((||v|| 1) (||v1|| 1) ∈ ℤ))

2
1. varname()
2. varname() List
3. ∀[ws:varname() List]
     ∀v@0,w:varname().
       ((↑same-binding(v;ws;v@0;w))  (v@0 ∈ v))  ((¬(w ∈ ws)) ∧ (w v@0 ∈ varname()) ∧ (||v|| ||ws|| ∈ ℤ)))
4. u1 varname()
5. v1 varname() List
6. ∀v@0,w:varname().
     ((↑same-binding([u v];v1;v@0;w))
      (v@0 ∈ [u v]))
      ((¬(w ∈ v1)) ∧ (w v@0 ∈ varname()) ∧ (||[u v]|| ||v1|| ∈ ℤ)))
7. v@0 varname()
8. ¬(u v@0 ∈ varname())
9. varname()
⊢ ((¬(u1 w ∈ varname())) ∧ (↑same-binding(v;v1;v@0;w)))
 (v@0 ∈ [u v]))
 ((¬(w ∈ [u1 v1])) ∧ (w v@0 ∈ varname()) ∧ ((||v|| 1) (||v1|| 1) ∈ ℤ))


Latex:


Latex:

1.  u  :  varname()
2.  v  :  varname()  List
3.  \mforall{}[ws:varname()  List]
          \mforall{}v@0,w:varname().
              ((\muparrow{}same-binding(v;ws;v@0;w))  {}\mRightarrow{}  (\mneg{}(v@0  \mmember{}  v))  {}\mRightarrow{}  ((\mneg{}(w  \mmember{}  ws))  \mwedge{}  (w  =  v@0)  \mwedge{}  (||v||  =  ||ws||)))
4.  u1  :  varname()
5.  v1  :  varname()  List
6.  \mforall{}v@0,w:varname().
          ((\muparrow{}same-binding([u  /  v];v1;v@0;w))
          {}\mRightarrow{}  (\mneg{}(v@0  \mmember{}  [u  /  v]))
          {}\mRightarrow{}  ((\mneg{}(w  \mmember{}  v1))  \mwedge{}  (w  =  v@0)  \mwedge{}  (||[u  /  v]||  =  ||v1||)))
7.  v@0  :  varname()
8.  w  :  varname()
\mvdash{}  (\muparrow{}case  eq\_var(u;v@0)
      of  inl($_{}$)  =>
      eq\_var(u1;w)
      |  inr($_{}$)  =>
      (\mneg{}\msubb{}eq\_var(u1;w))  \mwedge{}\msubb{}  same-binding(v;v1;v@0;w))
{}\mRightarrow{}  (\mneg{}(v@0  \mmember{}  [u  /  v]))
{}\mRightarrow{}  ((\mneg{}(w  \mmember{}  [u1  /  v1]))  \mwedge{}  (w  =  v@0)  \mwedge{}  ((||v||  +  1)  =  (||v1||  +  1)))


By


Latex:
((BoolCase  \mkleeneopen{}eq\_var(u;v@0)\mkleeneclose{}\mcdot{}  THENA  Auto)  THEN  (RW  assert\_pushdownC  0  THENA  Auto))




Home Index