Step
*
1
2
of Lemma
first-class-val
1. Info : Type
2. A : Type
3. u : EClass(A)@i'
4. v : EClass(A) List@i'
5. ∀es:EO+(Info). ∀e:E.
((↑e ∈b first-class(v))
⇒ ((↑e ∈b v[index-of-first X in v.e ∈b X - 1])
∧ (first-class(v)(e) = v[index-of-first X in v.e ∈b X - 1](e) ∈ A)))@i'
6. es : EO+(Info)@i'
7. ∀e:E
((↑e ∈b first-class(v))
⇒ ((↑e ∈b v[index-of-first X in v.e ∈b X - 1])
∧ (first-class(v)(e) = v[index-of-first X in v.e ∈b X - 1](e) ∈ A)))
8. e : E@i
9. (↑e ∈b first-class(v))
⇒ ((↑e ∈b v[index-of-first X in v.e ∈b X - 1]) ∧ (first-class(v)(e) = v[index-of-first X in v.e ∈b X - 1](e) ∈ A))
⊢ (↑e ∈b [u?first-class(v)])
⇒ ((↑e ∈b [u / v][index-of-first X in [u / v].e ∈b X - 1])
∧ ([u?first-class(v)](e) = [u / v][index-of-first X in [u / v].e ∈b X - 1](e) ∈ A))
BY
{ ((D 0 THENA Auto)
THEN (Assert [u?first-class(v)](e) = if e ∈b u then u(e) else first-class(v)(e) fi ∈ A BY
(RWO "cond-class-val" 0
THEN Auto
THEN (Thin (-1) THEN (RWO "is-cond-class" (-1) THENM D -1) THEN Auto)⋅))
) }
1
1. Info : Type
2. A : Type
3. u : EClass(A)@i'
4. v : EClass(A) List@i'
5. ∀es:EO+(Info). ∀e:E.
((↑e ∈b first-class(v))
⇒ ((↑e ∈b v[index-of-first X in v.e ∈b X - 1])
∧ (first-class(v)(e) = v[index-of-first X in v.e ∈b X - 1](e) ∈ A)))@i'
6. es : EO+(Info)@i'
7. ∀e:E
((↑e ∈b first-class(v))
⇒ ((↑e ∈b v[index-of-first X in v.e ∈b X - 1])
∧ (first-class(v)(e) = v[index-of-first X in v.e ∈b X - 1](e) ∈ A)))
8. e : E@i
9. (↑e ∈b first-class(v))
⇒ ((↑e ∈b v[index-of-first X in v.e ∈b X - 1]) ∧ (first-class(v)(e) = v[index-of-first X in v.e ∈b X - 1](e) ∈ A))
10. ↑e ∈b [u?first-class(v)]@i
11. [u?first-class(v)](e) = if e ∈b u then u(e) else first-class(v)(e) fi ∈ A
⊢ (↑e ∈b [u / v][index-of-first X in [u / v].e ∈b X - 1])
∧ ([u?first-class(v)](e) = [u / v][index-of-first X in [u / v].e ∈b X - 1](e) ∈ A)
Latex:
1. Info : Type
2. A : Type
3. u : EClass(A)@i'
4. v : EClass(A) List@i'
5. \mforall{}es:EO+(Info). \mforall{}e:E.
((\muparrow{}e \mmember{}\msubb{} first-class(v))
{}\mRightarrow{} ((\muparrow{}e \mmember{}\msubb{} v[index-of-first X in v.e \mmember{}\msubb{} X - 1])
\mwedge{} (first-class(v)(e) = v[index-of-first X in v.e \mmember{}\msubb{} X - 1](e))))@i'
6. es : EO+(Info)@i'
7. \mforall{}e:E
((\muparrow{}e \mmember{}\msubb{} first-class(v))
{}\mRightarrow{} ((\muparrow{}e \mmember{}\msubb{} v[index-of-first X in v.e \mmember{}\msubb{} X - 1])
\mwedge{} (first-class(v)(e) = v[index-of-first X in v.e \mmember{}\msubb{} X - 1](e))))
8. e : E@i
9. (\muparrow{}e \mmember{}\msubb{} first-class(v))
{}\mRightarrow{} ((\muparrow{}e \mmember{}\msubb{} v[index-of-first X in v.e \mmember{}\msubb{} X - 1])
\mwedge{} (first-class(v)(e) = v[index-of-first X in v.e \mmember{}\msubb{} X - 1](e)))
\mvdash{} (\muparrow{}e \mmember{}\msubb{} [u?first-class(v)])
{}\mRightarrow{} ((\muparrow{}e \mmember{}\msubb{} [u / v][index-of-first X in [u / v].e \mmember{}\msubb{} X - 1])
\mwedge{} ([u?first-class(v)](e) = [u / v][index-of-first X in [u / v].e \mmember{}\msubb{} X - 1](e)))
By
((D 0 THENA Auto)
THEN (Assert [u?first-class(v)](e) = if e \mmember{}\msubb{} u then u(e) else first-class(v)(e) fi BY
(RWO "cond-class-val" 0
THEN Auto
THEN (Thin (-1) THEN (RWO "is-cond-class" (-1) THENM D -1) THEN Auto)\mcdot{}))
)
Home
Index