Step
*
1
2
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])
⊢ λx.if CnameDeq x v then v1 else f x fi  ∈ name-morph([v / I];[v1 / J])
BY
{ TACTIC:(MemTypeCD THEN Reduce 0) }
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])
⊢ λx.if CnameDeq x v then v1 else f x fi  ∈ nameset([v / I]) ⟶ extd-nameset([v1 / J])
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])
⊢ ∀i,j:nameset([v / I]).
    ((↑isname(if CnameDeq i v then v1 else f i fi ))
    
⇒ (↑isname(if CnameDeq j v then v1 else f j fi ))
    
⇒ (if CnameDeq i v then v1 else f i fi  = if CnameDeq j v then v1 else f j fi  ∈ extd-nameset([v1 / J]))
    
⇒ (i = j ∈ nameset([v / I])))
3
.....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. f1 : nameset([v / I]) ⟶ extd-nameset([v1 / J])
⊢ istype(∀i,j:nameset([v / I]).
           ((↑isname(f1 i))
           
⇒ (↑isname(f1 j))
           
⇒ ((f1 i) = (f1 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])
\mvdash{}  \mlambda{}x.if  CnameDeq  x  v  then  v1  else  f  x  fi    \mmember{}  name-morph([v  /  I];[v1  /  J])
By
Latex:
TACTIC:(MemTypeCD  THEN  Reduce  0)
Home
Index