Step * 2 of Lemma do-apply-p-first


1. Type
2. Type
3. A ⟶ (B Top)
4. (A ⟶ (B Top)) List
5. ∀[x:A]. do-apply(p-first(v);x) do-apply(hd(filter(λf.can-apply(f;x);v));x) ∈ supposing ↑can-apply(p-first(v);x)
⊢ ∀[x:A]
    do-apply(p-first([u v]);x) do-apply(hd(filter(λf.can-apply(f;x);[u v]));x) ∈ 
    supposing ↑can-apply(p-first([u v]);x)
BY
Subst ⌜[u v] [u] v⌝ 0⋅ }

1
.....equality..... 
1. Type
2. Type
3. A ⟶ (B Top)
4. (A ⟶ (B Top)) List
5. ∀[x:A]. do-apply(p-first(v);x) do-apply(hd(filter(λf.can-apply(f;x);v));x) ∈ supposing ↑can-apply(p-first(v);x)
⊢ [u v] [u] v

2
1. Type
2. Type
3. A ⟶ (B Top)
4. (A ⟶ (B Top)) List
5. ∀[x:A]. do-apply(p-first(v);x) do-apply(hd(filter(λf.can-apply(f;x);v));x) ∈ supposing ↑can-apply(p-first(v);x)
⊢ ∀[x:A]
    do-apply(p-first([u] v);x) do-apply(hd(filter(λf.can-apply(f;x);[u] v));x) ∈ 
    supposing ↑can-apply(p-first([u] v);x)


Latex:


Latex:

1.  A  :  Type
2.  B  :  Type
3.  u  :  A  {}\mrightarrow{}  (B  +  Top)
4.  v  :  (A  {}\mrightarrow{}  (B  +  Top))  List
5.  \mforall{}[x:A]
          do-apply(p-first(v);x)  =  do-apply(hd(filter(\mlambda{}f.can-apply(f;x);v));x) 
          supposing  \muparrow{}can-apply(p-first(v);x)
\mvdash{}  \mforall{}[x:A]
        do-apply(p-first([u  /  v]);x)  =  do-apply(hd(filter(\mlambda{}f.can-apply(f;x);[u  /  v]));x) 
        supposing  \muparrow{}can-apply(p-first([u  /  v]);x)


By


Latex:
Subst  \mkleeneopen{}[u  /  v]  \msim{}  [u]  @  v\mkleeneclose{}  0\mcdot{}




Home Index