Step
*
2
1
of Lemma
first-success-is-inl
1. T : Type
2. A : T ⟶ Type
3. f : x:T ⟶ (A[x]?)
4. u : T
5. v : T List
6. ∀[j:ℕ||v||]. ∀[a:A[v[j]]].
     (first-success(f;v) = (inl <j, a>) ∈ (i:ℕ||v|| × A[v[i]]?)
     
⇐⇒ j < ||v|| ∧ ((f v[j]) = (inl a) ∈ (A[v[j]]?)) ∧ (∀x∈firstn(j;v).↑isr(f x)))
7. x : A[u]
8. (f u) = (inl x) ∈ (A[u]?)
9. j : ℕ||v|| + 1
10. a : A[[u / v][j]]
11. (inl <0, x>) = (inl <j, a>) ∈ (i:ℕ||v|| + 1 × A[[u / v][i]]?)
⊢ j < ||v|| + 1 ∧ ((f [u / v][j]) = (inl a) ∈ (A[[u / v][j]]?)) ∧ (∀x∈firstn(j;[u / v]).↑isr(f x))
BY
{ ApFunToHypEquands `Z' ⌜case Z of inl(p) => p | inr(_) => <0, x>⌝ ⌜i:ℕ||v|| + 1 × A[[u / v][i]]⌝ (-1)⋅ }
1
.....fun wf..... 
1. T : Type
2. A : T ⟶ Type
3. f : x:T ⟶ (A[x]?)
4. u : T
5. v : T List
6. ∀[j:ℕ||v||]. ∀[a:A[v[j]]].
     (first-success(f;v) = (inl <j, a>) ∈ (i:ℕ||v|| × A[v[i]]?)
     
⇐⇒ j < ||v|| ∧ ((f v[j]) = (inl a) ∈ (A[v[j]]?)) ∧ (∀x∈firstn(j;v).↑isr(f x)))
7. x : A[u]
8. (f u) = (inl x) ∈ (A[u]?)
9. j : ℕ||v|| + 1
10. a : A[[u / v][j]]
11. (inl <0, x>) = (inl <j, a>) ∈ (i:ℕ||v|| + 1 × A[[u / v][i]]?)
12. Z : i:ℕ||v|| + 1 × A[[u / v][i]]?
⊢ case Z of inl(p) => p | inr(_) => <0, x> = case Z of inl(p) => p | inr(_) => <0, x> ∈ (i:ℕ||v|| + 1 × A[[u / v][i]])
2
1. T : Type
2. A : T ⟶ Type
3. f : x:T ⟶ (A[x]?)
4. u : T
5. v : T List
6. ∀[j:ℕ||v||]. ∀[a:A[v[j]]].
     (first-success(f;v) = (inl <j, a>) ∈ (i:ℕ||v|| × A[v[i]]?)
     
⇐⇒ j < ||v|| ∧ ((f v[j]) = (inl a) ∈ (A[v[j]]?)) ∧ (∀x∈firstn(j;v).↑isr(f x)))
7. x : A[u]
8. (f u) = (inl x) ∈ (A[u]?)
9. j : ℕ||v|| + 1
10. a : A[[u / v][j]]
11. (inl <0, x>) = (inl <j, a>) ∈ (i:ℕ||v|| + 1 × A[[u / v][i]]?)
12. case inl <0, x> of inl(p) => p | inr(_) => <0, x>
= case inl <j, a> of inl(p) => p | inr(_) => <0, x>
∈ (i:ℕ||v|| + 1 × A[[u / v][i]])
⊢ j < ||v|| + 1 ∧ ((f [u / v][j]) = (inl a) ∈ (A[[u / v][j]]?)) ∧ (∀x∈firstn(j;[u / v]).↑isr(f x))
Latex:
Latex:
1.  T  :  Type
2.  A  :  T  {}\mrightarrow{}  Type
3.  f  :  x:T  {}\mrightarrow{}  (A[x]?)
4.  u  :  T
5.  v  :  T  List
6.  \mforall{}[j:\mBbbN{}||v||].  \mforall{}[a:A[v[j]]].
          (first-success(f;v)  =  (inl  <j,  a>)
          \mLeftarrow{}{}\mRightarrow{}  j  <  ||v||  \mwedge{}  ((f  v[j])  =  (inl  a))  \mwedge{}  (\mforall{}x\mmember{}firstn(j;v).\muparrow{}isr(f  x)))
7.  x  :  A[u]
8.  (f  u)  =  (inl  x)
9.  j  :  \mBbbN{}||v||  +  1
10.  a  :  A[[u  /  v][j]]
11.  (inl  ɘ,  x>)  =  (inl  <j,  a>)
\mvdash{}  j  <  ||v||  +  1  \mwedge{}  ((f  [u  /  v][j])  =  (inl  a))  \mwedge{}  (\mforall{}x\mmember{}firstn(j;[u  /  v]).\muparrow{}isr(f  x))
By
Latex:
ApFunToHypEquands  `Z'  \mkleeneopen{}case  Z  of  inl(p)  =>  p  |  inr($_{}$)  =>  ɘ,  x>\mkleeneclose{}  \mkleeneopen{}i:\mBbbN{}||v||  +\000C  1  \mtimes{}  A[[u  /  v][i]]\mkleeneclose{}  (-1)\mcdot{}
Home
Index