Step
*
1
1
of Lemma
coW-equiv-iff3
1. [A] : 𝕌'
2. B : A ⟶ Type
3. w : coW(A;a.B[a])
4. w' : coW(A;a.B[a])
5. coW-equiv(a.B[a];w;w')
6. p : ℕ ⟶ copath(a.B[a];w')
7. [%2] : ∀n:ℕ. ((∀i:ℕn. (copath-length(p i) = i ∈ ℤ)) 
⇒ (∀i:ℕn - 1. copathAgree(a.B[a];w';p i;p (i + 1))))
⊢ ∃q:maximal-copath(a.B[a];w)
   ∀n:ℕ
     ((∀i:ℕn. (copath-length(p i) = i ∈ ℤ))
     
⇒ (∀i:ℕn. ((copath-length(q i) = i ∈ ℤ) ∧ coW-equiv(a.B[a];copath-at(w;q i);copath-at(w';p i)))))
BY
{ (RenameVar `e' 5
   THEN (InstLemma `dependent-choice` [
         ⌜λ2n.q:copath(a.B[a];w) × ((∀i:ℕn + 1. (copath-length(p i) = i ∈ ℤ))
                                   
⇒ ((copath-length(q) = n ∈ ℤ)
                                      ∧ coW-equiv(a.B[a];copath-at(w;q);copath-at(w';p n))))⌝;
         ⌜so_lambda(n,q1,q2.copathAgree(a.B[a];w;fst(q1);fst(q2)))⌝;⌜<(), λx.<Ax, e>>⌝]⋅
         THENA Auto
         )
   ) }
1
1. [A] : 𝕌'
2. B : A ⟶ Type
3. w : coW(A;a.B[a])
4. w' : coW(A;a.B[a])
5. e : coW-equiv(a.B[a];w;w')
6. p : ℕ ⟶ copath(a.B[a];w')
7. [%2] : ∀n:ℕ. ((∀i:ℕn. (copath-length(p i) = i ∈ ℤ)) 
⇒ (∀i:ℕn - 1. copathAgree(a.B[a];w';p i;p (i + 1))))
8. n : ℕ
9. x : q:copath(a.B[a];w) × ((∀i:ℕn + 1. (copath-length(p i) = i ∈ ℤ))
                            
⇒ ((copath-length(q) = n ∈ ℤ) ∧ coW-equiv(a.B[a];copath-at(w;q);copath-at(w';p n))))
⊢ ∃y:q:copath(a.B[a];w) × ((∀i:ℕ(n + 1) + 1. (copath-length(p i) = i ∈ ℤ))
                          
⇒ ((copath-length(q) = (n + 1) ∈ ℤ)
                             ∧ coW-equiv(a.B[a];copath-at(w;q);copath-at(w';p (n + 1)))))
   copathAgree(a.B[a];w;fst(x);fst(y))
2
1. A : 𝕌'
2. B : A ⟶ Type
3. w : coW(A;a.B[a])
4. w' : coW(A;a.B[a])
5. e : coW-equiv(a.B[a];w;w')
6. p : ℕ ⟶ copath(a.B[a];w')
7. ∀n:ℕ. ((∀i:ℕn. (copath-length(p i) = i ∈ ℤ)) 
⇒ (∀i:ℕn - 1. copathAgree(a.B[a];w';p i;p (i + 1))))
8. x : ∀i:ℕ0 + 1. (copath-length(p i) = i ∈ ℤ)
⊢ e ∈ coW-equiv(a.B[a];copath-at(w;());copath-at(w';p 0))
3
1. [A] : 𝕌'
2. B : A ⟶ Type
3. w : coW(A;a.B[a])
4. w' : coW(A;a.B[a])
5. e : coW-equiv(a.B[a];w;w')
6. p : ℕ ⟶ copath(a.B[a];w')
7. [%2] : ∀n:ℕ. ((∀i:ℕn. (copath-length(p i) = i ∈ ℤ)) 
⇒ (∀i:ℕn - 1. copathAgree(a.B[a];w';p i;p (i + 1))))
8. ∃f:n:ℕ ⟶ (q:copath(a.B[a];w) × ((∀i:ℕn + 1. (copath-length(p i) = i ∈ ℤ))
                                   
⇒ ((copath-length(q) = n ∈ ℤ)
                                      ∧ coW-equiv(a.B[a];copath-at(w;q);copath-at(w';p n)))))
    (((f 0)
    = <(), λx.<Ax, e>>
    ∈ (q:copath(a.B[a];w) × ((∀i:ℕ0 + 1. (copath-length(p i) = i ∈ ℤ))
                            
⇒ ((copath-length(q) = 0 ∈ ℤ) ∧ coW-equiv(a.B[a];copath-at(w;q);copath-at(w';p 0))))))
    ∧ (∀n:ℕ. copathAgree(a.B[a];w;fst((f n));fst((f (n + 1))))))
⊢ ∃q:maximal-copath(a.B[a];w)
   ∀n:ℕ
     ((∀i:ℕn. (copath-length(p i) = i ∈ ℤ))
     
⇒ (∀i:ℕn. ((copath-length(q i) = i ∈ ℤ) ∧ coW-equiv(a.B[a];copath-at(w;q i);copath-at(w';p i)))))
Latex:
Latex:
1.  [A]  :  \mBbbU{}'
2.  B  :  A  {}\mrightarrow{}  Type
3.  w  :  coW(A;a.B[a])
4.  w'  :  coW(A;a.B[a])
5.  coW-equiv(a.B[a];w;w')
6.  p  :  \mBbbN{}  {}\mrightarrow{}  copath(a.B[a];w')
7.  [\%2]  :  \mforall{}n:\mBbbN{}
                        ((\mforall{}i:\mBbbN{}n.  (copath-length(p  i)  =  i))  {}\mRightarrow{}  (\mforall{}i:\mBbbN{}n  -  1.  copathAgree(a.B[a];w';p  i;p  (i  +  1))))
\mvdash{}  \mexists{}q:maximal-copath(a.B[a];w)
      \mforall{}n:\mBbbN{}
          ((\mforall{}i:\mBbbN{}n.  (copath-length(p  i)  =  i))
          {}\mRightarrow{}  (\mforall{}i:\mBbbN{}n.  ((copath-length(q  i)  =  i)  \mwedge{}  coW-equiv(a.B[a];copath-at(w;q  i);copath-at(w';p  i)))))
By
Latex:
(RenameVar  `e'  5
  THEN  (InstLemma  `dependent-choice`  [
              \mkleeneopen{}\mlambda{}\msubtwo{}n.q:copath(a.B[a];w)  \mtimes{}  ((\mforall{}i:\mBbbN{}n  +  1.  (copath-length(p  i)  =  i))
                                                                  {}\mRightarrow{}  ((copath-length(q)  =  n)
                                                                        \mwedge{}  coW-equiv(a.B[a];copath-at(w;q);copath-at(w';p  n))))\mkleeneclose{};
              \mkleeneopen{}so\_lambda(n,q1,q2.copathAgree(a.B[a];w;fst(q1);fst(q2)))\mkleeneclose{};\mkleeneopen{}<(),  \mlambda{}x.<Ax,  e>>\mkleeneclose{}]\mcdot{}
              THENA  Auto
              )
  )
Home
Index