Step
*
1
2
2
1
of Lemma
name-morph-extend_wf
1. I : Cname List
2. J : Cname List
3. f : name-morph(I;J)
4. v : Cname
5. ¬(v ∈ I)
6. fresh-cname(I) = v ∈ {x:Cname| ¬(x ∈ I)} 
7. v1 : Cname
8. ¬(v1 ∈ J)
9. fresh-cname(J) = v1 ∈ {x:Cname| ¬(x ∈ J)} 
10. extd-nameset(J) ⊆r extd-nameset([v1 / J])
11. i : nameset([v / I])
12. j : nameset([v / I])
⊢ (↑isname(if (i =z v) then v1 else f i fi ))
⇒ (↑isname(if (j =z v) then v1 else f j fi ))
⇒ (if (i =z v) then v1 else f i fi  = if (j =z v) then v1 else f j fi  ∈ extd-nameset([v1 / J]))
⇒ (i = j ∈ nameset([v / I]))
BY
{ TACTIC:((BoolCase ⌜(i =z v)⌝⋅ THENA Auto)
          THEN (BoolCase ⌜(j =z v)⌝⋅ THENA Auto)
          THEN (Subst' isname(v1) ~ tt 0 THENA (DVar `v1' THEN RepUR ``isname`` 0 THEN Auto))) }
1
1. I : Cname List
2. J : Cname List
3. f : name-morph(I;J)
4. v : Cname
5. ¬(v ∈ I)
6. fresh-cname(I) = v ∈ {x:Cname| ¬(x ∈ I)} 
7. v1 : Cname
8. ¬(v1 ∈ J)
9. fresh-cname(J) = v1 ∈ {x:Cname| ¬(x ∈ J)} 
10. extd-nameset(J) ⊆r extd-nameset([v1 / J])
11. i : nameset([v / I])
12. j : nameset([v / I])
13. i = v ∈ ℤ
14. j = v ∈ ℤ
⊢ (↑tt) 
⇒ (↑tt) 
⇒ (v1 = v1 ∈ extd-nameset([v1 / J])) 
⇒ (i = j ∈ nameset([v / I]))
2
1. I : Cname List
2. J : Cname List
3. f : name-morph(I;J)
4. v : Cname
5. ¬(v ∈ I)
6. fresh-cname(I) = v ∈ {x:Cname| ¬(x ∈ I)} 
7. v1 : Cname
8. ¬(v1 ∈ J)
9. fresh-cname(J) = v1 ∈ {x:Cname| ¬(x ∈ J)} 
10. extd-nameset(J) ⊆r extd-nameset([v1 / J])
11. i : nameset([v / I])
12. j : nameset([v / I])
13. j ≠ v
14. i = v ∈ ℤ
⊢ (↑tt) 
⇒ (↑isname(f j)) 
⇒ (v1 = (f j) ∈ extd-nameset([v1 / J])) 
⇒ (i = j ∈ nameset([v / I]))
3
1. I : Cname List
2. J : Cname List
3. f : name-morph(I;J)
4. v : Cname
5. ¬(v ∈ I)
6. fresh-cname(I) = v ∈ {x:Cname| ¬(x ∈ I)} 
7. v1 : Cname
8. ¬(v1 ∈ J)
9. fresh-cname(J) = v1 ∈ {x:Cname| ¬(x ∈ J)} 
10. extd-nameset(J) ⊆r extd-nameset([v1 / J])
11. i : nameset([v / I])
12. i ≠ v
13. j : nameset([v / I])
14. j = v ∈ ℤ
⊢ (↑isname(f i)) 
⇒ (↑tt) 
⇒ ((f i) = v1 ∈ extd-nameset([v1 / J])) 
⇒ (i = j ∈ nameset([v / I]))
4
1. I : Cname List
2. J : Cname List
3. f : name-morph(I;J)
4. v : Cname
5. ¬(v ∈ I)
6. fresh-cname(I) = v ∈ {x:Cname| ¬(x ∈ I)} 
7. v1 : Cname
8. ¬(v1 ∈ J)
9. fresh-cname(J) = v1 ∈ {x:Cname| ¬(x ∈ J)} 
10. extd-nameset(J) ⊆r extd-nameset([v1 / J])
11. i : nameset([v / I])
12. i ≠ v
13. j : nameset([v / I])
14. j ≠ v
⊢ (↑isname(f i)) 
⇒ (↑isname(f j)) 
⇒ ((f i) = (f j) ∈ extd-nameset([v1 / J])) 
⇒ (i = j ∈ nameset([v / I]))
Latex:
Latex:
1.  I  :  Cname  List
2.  J  :  Cname  List
3.  f  :  name-morph(I;J)
4.  v  :  Cname
5.  \mneg{}(v  \mmember{}  I)
6.  fresh-cname(I)  =  v
7.  v1  :  Cname
8.  \mneg{}(v1  \mmember{}  J)
9.  fresh-cname(J)  =  v1
10.  extd-nameset(J)  \msubseteq{}r  extd-nameset([v1  /  J])
11.  i  :  nameset([v  /  I])
12.  j  :  nameset([v  /  I])
\mvdash{}  (\muparrow{}isname(if  (i  =\msubz{}  v)  then  v1  else  f  i  fi  ))
{}\mRightarrow{}  (\muparrow{}isname(if  (j  =\msubz{}  v)  then  v1  else  f  j  fi  ))
{}\mRightarrow{}  (if  (i  =\msubz{}  v)  then  v1  else  f  i  fi    =  if  (j  =\msubz{}  v)  then  v1  else  f  j  fi  )
{}\mRightarrow{}  (i  =  j)
By
Latex:
TACTIC:((BoolCase  \mkleeneopen{}(i  =\msubz{}  v)\mkleeneclose{}\mcdot{}  THENA  Auto)
                THEN  (BoolCase  \mkleeneopen{}(j  =\msubz{}  v)\mkleeneclose{}\mcdot{}  THENA  Auto)
                THEN  (Subst'  isname(v1)  \msim{}  tt  0  THENA  (DVar  `v1'  THEN  RepUR  ``isname``  0  THEN  Auto)))
Home
Index