Step * 1 1 2 1 1 1 1 of Lemma alpha-rename-equivalent


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

1
1. varname()
2. varname()
3. v1 varname() List
4. ∀L:varname() List. ((||L|| ||v1|| ∈ ℤ (v ∈ v1))  (v ∈ L))  (↑same-binding(L;v1;v;v)))
5. u1 varname()
6. v2 varname() List
7. (||v2|| ||[u v1]|| ∈ ℤ (v ∈ [u v1]))  (v ∈ v2))  (↑same-binding(v2;[u v1];v;v))
8. (||v2|| 1) (||v1|| 1) ∈ ℤ
9. ¬(v ∈ [u v1])
10. ¬(v ∈ [u1 v2])
11. 0 ≤ ||v1||
12. v ∈ varname()
13. u1 v ∈ varname()
⊢ True

2
1. varname()
2. varname()
3. v1 varname() List
4. ∀L:varname() List. ((||L|| ||v1|| ∈ ℤ (v ∈ v1))  (v ∈ L))  (↑same-binding(L;v1;v;v)))
5. u1 varname()
6. ¬(u1 v ∈ varname())
7. v2 varname() List
8. (||v2|| ||[u v1]|| ∈ ℤ (v ∈ [u v1]))  (v ∈ v2))  (↑same-binding(v2;[u v1];v;v))
9. (||v2|| 1) (||v1|| 1) ∈ ℤ
10. ¬(v ∈ [u v1])
11. ¬(v ∈ [u1 v2])
12. 0 ≤ ||v1||
13. v ∈ varname()
⊢ False

3
1. varname()
2. varname()
3. ¬(u v ∈ varname())
4. v1 varname() List
5. ∀L:varname() List. ((||L|| ||v1|| ∈ ℤ (v ∈ v1))  (v ∈ L))  (↑same-binding(L;v1;v;v)))
6. u1 varname()
7. v2 varname() List
8. (||v2|| ||[u v1]|| ∈ ℤ (v ∈ [u v1]))  (v ∈ v2))  (↑same-binding(v2;[u v1];v;v))
9. (||v2|| 1) (||v1|| 1) ∈ ℤ
10. ¬(v ∈ [u v1])
11. ¬(v ∈ [u1 v2])
12. 0 ≤ ||v1||
13. u1 v ∈ varname()
⊢ False

4
1. varname()
2. varname()
3. ¬(u v ∈ varname())
4. v1 varname() List
5. ∀L:varname() List. ((||L|| ||v1|| ∈ ℤ (v ∈ v1))  (v ∈ L))  (↑same-binding(L;v1;v;v)))
6. u1 varname()
7. ¬(u1 v ∈ varname())
8. v2 varname() List
9. (||v2|| ||[u v1]|| ∈ ℤ (v ∈ [u v1]))  (v ∈ v2))  (↑same-binding(v2;[u v1];v;v))
10. (||v2|| 1) (||v1|| 1) ∈ ℤ
11. ¬(v ∈ [u v1])
12. ¬(v ∈ [u1 v2])
13. 0 ≤ ||v1||
⊢ ↑same-binding(v2;v1;v;v)


Latex:


Latex:

1.  v  :  varname()
2.  u  :  varname()
3.  v1  :  varname()  List
4.  \mforall{}L:varname()  List.  ((||L||  =  ||v1||)  {}\mRightarrow{}  (\mneg{}(v  \mmember{}  v1))  {}\mRightarrow{}  (\mneg{}(v  \mmember{}  L))  {}\mRightarrow{}  (\muparrow{}same-binding(L;v1;v;v)))
5.  u1  :  varname()
6.  v2  :  varname()  List
7.  (||v2||  =  ||[u  /  v1]||)  {}\mRightarrow{}  (\mneg{}(v  \mmember{}  [u  /  v1]))  {}\mRightarrow{}  (\mneg{}(v  \mmember{}  v2))  {}\mRightarrow{}  (\muparrow{}same-binding(v2;[u  /  v1];v;v))
8.  (||v2||  +  1)  =  (||v1||  +  1)
9.  \mneg{}(v  \mmember{}  [u  /  v1])
10.  \mneg{}(v  \mmember{}  [u1  /  v2])
11.  0  \mleq{}  ||v1||
\mvdash{}  \muparrow{}case  eq\_var(u1;v)  of  inl($_{}$)  =>  eq\_var(u;v)  |  inr($_{}\mbackslash{}ff2\000C4)  =>  (\mneg{}\msubb{}eq\_var(u;v))  \mwedge{}\msubb{}  same-binding(v2;v1;v;v)


By


Latex:
((BoolCase  \mkleeneopen{}eq\_var(u;v)\mkleeneclose{}\mcdot{}  THENA  Auto)  THEN  (BoolCase  \mkleeneopen{}eq\_var(u1;v)\mkleeneclose{}\mcdot{}  THENA  Auto))




Home Index