Step * 1 2 of Lemma last-mapfilter2


1. Type
2. Type
3. A ⟶ B
4. A ⟶ 𝔹
5. A
6. List
7. ¬(v [] ∈ (A List))
8. (filter(P;v) [] ∈ (A List)))
 False)
 (¬↑null(mapfilter(f;P;v)))
 (↑(P last(v)))
 (last(filter(P;v)) last(v) ∈ A)
9. ↑(P u)
10. filter(P;v) [] ∈ (A List)
11. ¬([u filter(P;v)] [] ∈ (A List))
12. ¬False
13. ¬↑null(mapfilter(f;P;[u v]))
14. ↑(P last(v))
⊢ last(v) ∈ A
BY
((Assert ⌜↑null(filter(P;v))⌝⋅ THENA (RW assert_pushdownC THEN Auto))
   THEN (RW ListC (-1) THENA Auto)
   THEN (RWO "l_all_iff" (-1) THENA Auto)
   THEN InstHyp [⌜last(v)⌝(-1)⋅
   THEN Auto) }


Latex:


Latex:

1.  A  :  Type
2.  B  :  Type
3.  f  :  A  {}\mrightarrow{}  B
4.  P  :  A  {}\mrightarrow{}  \mBbbB{}
5.  u  :  A
6.  v  :  A  List
7.  \mneg{}(v  =  [])
8.  (\mneg{}(filter(P;v)  =  []))
{}\mRightarrow{}  (\mneg{}False)
{}\mRightarrow{}  (\mneg{}\muparrow{}null(mapfilter(f;P;v)))
{}\mRightarrow{}  (\muparrow{}(P  last(v)))
{}\mRightarrow{}  (last(filter(P;v))  =  last(v))
9.  \muparrow{}(P  u)
10.  filter(P;v)  =  []
11.  \mneg{}([u  /  filter(P;v)]  =  [])
12.  \mneg{}False
13.  \mneg{}\muparrow{}null(mapfilter(f;P;[u  /  v]))
14.  \muparrow{}(P  last(v))
\mvdash{}  u  =  last(v)


By


Latex:
((Assert  \mkleeneopen{}\muparrow{}null(filter(P;v))\mkleeneclose{}\mcdot{}  THENA  (RW  assert\_pushdownC  0  THEN  Auto))
  THEN  (RW  ListC  (-1)  THENA  Auto)
  THEN  (RWO  "l\_all\_iff"  (-1)  THENA  Auto)
  THEN  InstHyp  [\mkleeneopen{}last(v)\mkleeneclose{}]  (-1)\mcdot{}
  THEN  Auto)




Home Index