Step * 2 of Lemma extend-name-morph_wf

.....set predicate..... 
1. Cname List
2. Cname List
3. name-morph(I;J)
4. z1 Cname
5. z2 Cname
6. ¬(z2 ∈ J)
⊢ ∀i,j:nameset([z1 I]).
    ((↑isname((λx.if eq-cname(x;z1) then z2 else fi i))
     (↑isname((λx.if eq-cname(x;z1) then z2 else fi j))
     (((λx.if eq-cname(x;z1) then z2 else fi i)
       ((λx.if eq-cname(x;z1) then z2 else fi j)
       ∈ extd-nameset([z2 J]))
     (i j ∈ nameset([z1 I])))
BY
((Assert nameset(J) ⊆extd-nameset([z2 J]) BY
          (UseTrans ⌜nameset([z2 J])⌝⋅ THEN Auto))
   THEN Reduce 0
   THEN RepeatFor ((D THENA Auto))
   THEN (BoolCase ⌜eq-cname(i;z1)⌝⋅ THENA Auto)
   THEN (BoolCase ⌜eq-cname(j;z1)⌝⋅ THENA Auto)
   THEN (Subst' isname(z2) tt THENA (DVar `z2' THEN RepUR ``isname`` THEN Auto))
   THEN (Subst' isname(z1) tt THENA (DVar `z1' THEN RepUR ``isname`` THEN Auto))
   THEN Reduce 0
   THEN Try ((Assert j ∈ nameset(I) BY
                    OnVar `j' (\h. (D THEN (RW ListC (h+1) THENA Auto) THEN h+1 THEN Complete (Auto)))⋅))
   THEN Try ((Assert i ∈ nameset(I) BY
                    OnVar `i' (\h. (D THEN (RW ListC (h+1) THENA Auto) THEN h+1 THEN Complete (Auto)))⋅))
   THEN RepeatFor (((D THENA Auto) THEN Try ((FLemma `assert-isname` [-1] THENA Auto))))
   THEN (Assert z2 ∈ extd-nameset([z2 J]) BY
               (SubsumeC ⌜nameset([z2 J])⌝⋅ THEN Auto))
   THEN Auto) }

1
1. Cname List
2. Cname List
3. name-morph(I;J)
4. z1 Cname
5. z2 Cname
6. ¬(z2 ∈ J)
7. nameset(J) ⊆extd-nameset([z2 J])
8. nameset([z1 I])
9. nameset([z1 I])
10. ¬(j z1 ∈ Cname)
11. z1 ∈ Cname
12. j ∈ nameset(I)
13. True
14. ↑isname(f j)
15. j ∈ nameset(J)
16. z2 ∈ extd-nameset([z2 J])
17. z2 (f j) ∈ extd-nameset([z2 J])
⊢ j ∈ nameset([z1 I])

2
1. Cname List
2. Cname List
3. name-morph(I;J)
4. z1 Cname
5. z2 Cname
6. ¬(z2 ∈ J)
7. nameset(J) ⊆extd-nameset([z2 J])
8. nameset([z1 I])
9. ¬(i z1 ∈ Cname)
10. nameset([z1 I])
11. z1 ∈ Cname
12. i ∈ nameset(I)
13. ↑isname(f i)
14. i ∈ nameset(J)
15. True
16. z2 ∈ extd-nameset([z2 J])
17. (f i) z2 ∈ extd-nameset([z2 J])
⊢ j ∈ nameset([z1 I])

3
1. Cname List
2. Cname List
3. name-morph(I;J)
4. z1 Cname
5. z2 Cname
6. ¬(z2 ∈ J)
7. nameset(J) ⊆extd-nameset([z2 J])
8. nameset([z1 I])
9. ¬(i z1 ∈ Cname)
10. nameset([z1 I])
11. ¬(j z1 ∈ Cname)
12. j ∈ nameset(I)
13. i ∈ nameset(I)
14. ↑isname(f i)
15. i ∈ nameset(J)
16. ↑isname(f j)
17. j ∈ nameset(J)
18. z2 ∈ extd-nameset([z2 J])
19. (f i) (f j) ∈ extd-nameset([z2 J])
⊢ j ∈ nameset([z1 I])


Latex:


Latex:
.....set  predicate..... 
1.  I  :  Cname  List
2.  J  :  Cname  List
3.  f  :  name-morph(I;J)
4.  z1  :  Cname
5.  z2  :  Cname
6.  \mneg{}(z2  \mmember{}  J)
\mvdash{}  \mforall{}i,j:nameset([z1  /  I]).
        ((\muparrow{}isname((\mlambda{}x.if  eq-cname(x;z1)  then  z2  else  f  x  fi  )  i))
        {}\mRightarrow{}  (\muparrow{}isname((\mlambda{}x.if  eq-cname(x;z1)  then  z2  else  f  x  fi  )  j))
        {}\mRightarrow{}  (((\mlambda{}x.if  eq-cname(x;z1)  then  z2  else  f  x  fi  )  i)
              =  ((\mlambda{}x.if  eq-cname(x;z1)  then  z2  else  f  x  fi  )  j))
        {}\mRightarrow{}  (i  =  j))


By


Latex:
((Assert  nameset(J)  \msubseteq{}r  extd-nameset([z2  /  J])  BY
                (UseTrans  \mkleeneopen{}nameset([z2  /  J])\mkleeneclose{}\mcdot{}  THEN  Auto))
  THEN  Reduce  0
  THEN  RepeatFor  2  ((D  0  THENA  Auto))
  THEN  (BoolCase  \mkleeneopen{}eq-cname(i;z1)\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  (BoolCase  \mkleeneopen{}eq-cname(j;z1)\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  (Subst'  isname(z2)  \msim{}  tt  0  THENA  (DVar  `z2'  THEN  RepUR  ``isname``  0  THEN  Auto))
  THEN  (Subst'  isname(z1)  \msim{}  tt  0  THENA  (DVar  `z1'  THEN  RepUR  ``isname``  0  THEN  Auto))
  THEN  Reduce  0
  THEN  Try  ((Assert  j  \mmember{}  nameset(I)  BY
                                    OnVar  `j'  (\mbackslash{}h.  (D  h
                                                                    THEN  (RW  ListC  (h+1)  THENA  Auto)
                                                                    THEN  D  h+1
                                                                    THEN  Complete  (Auto)))\mcdot{}))
  THEN  Try  ((Assert  i  \mmember{}  nameset(I)  BY
                                    OnVar  `i'  (\mbackslash{}h.  (D  h
                                                                    THEN  (RW  ListC  (h+1)  THENA  Auto)
                                                                    THEN  D  h+1
                                                                    THEN  Complete  (Auto)))\mcdot{}))
  THEN  RepeatFor  2  (((D  0  THENA  Auto)  THEN  Try  ((FLemma  `assert-isname`  [-1]  THENA  Auto))))
  THEN  (Assert  z2  \mmember{}  extd-nameset([z2  /  J])  BY
                          (SubsumeC  \mkleeneopen{}nameset([z2  /  J])\mkleeneclose{}\mcdot{}  THEN  Auto))
  THEN  Auto)




Home Index