Step * 2 2 2 of Lemma split_tail_max


1. [A] Type
2. A ⟶ 𝔹
3. A
4. List
5. ∀a:A. ((a ∈ v)  ((a ∈ snd(split_tail(v | ∀x.f[x])))) supposing ((∀b:A. (a before b ∈  (↑f[b]))) and (↑f[a])))
6. A
7. (a ∈ v)
8. ↑f[a]
9. ∀b:A. (a before b ∈ [u v]  (↑f[b]))
10. (a ∈ snd(split_tail(v | ∀x.f[x])))
⊢ (a ∈ snd(let hs,ftail split_tail(v | ∀x.f[x]) 
           in case hs of [] => if f[u] then <[], [u ftail]> else <[u], ftail> fi  x::y => <[u hs], ftail> esac))
BY
(((((MoveToConcl (-1) THEN GenConcl split_tail(v | ∀x.f[x]) p ∈ (A List × (A List))) THENA Auto) THEN Thin (-1))
    THEN (-1)
    )
   THEN Reduce 0
   THEN (((SplitOnConclITE THENA Auto) THEN ListInd (-3)) THEN Reduce 0)
   THEN Auto) }


Latex:


Latex:

1.  [A]  :  Type
2.  f  :  A  {}\mrightarrow{}  \mBbbB{}
3.  u  :  A
4.  v  :  A  List
5.  \mforall{}a:A
          ((a  \mmember{}  v)
          {}\mRightarrow{}  ((a  \mmember{}  snd(split\_tail(v  |  \mforall{}x.f[x]))))  supposing 
                      ((\mforall{}b:A.  (a  before  b  \mmember{}  v  {}\mRightarrow{}  (\muparrow{}f[b])))  and 
                      (\muparrow{}f[a])))
6.  a  :  A
7.  (a  \mmember{}  v)
8.  \muparrow{}f[a]
9.  \mforall{}b:A.  (a  before  b  \mmember{}  [u  /  v]  {}\mRightarrow{}  (\muparrow{}f[b]))
10.  (a  \mmember{}  snd(split\_tail(v  |  \mforall{}x.f[x])))
\mvdash{}  (a  \mmember{}  snd(let  hs,ftail  =  split\_tail(v  |  \mforall{}x.f[x]) 
                      in  case  hs  of 
                                []  =>  if  f[u]  then  <[],  [u  /  ftail]>  else  <[u],  ftail>  fi   
                                x::y  =>
                                  <[u  /  hs],  ftail> 
                            esac))


By


Latex:
(((((MoveToConcl  (-1)  THEN  GenConcl  split\_tail(v  |  \mforall{}x.f[x])  =  p)  THENA  Auto)  THEN  Thin  (-1))
    THEN  D  (-1)
    )
  THEN  Reduce  0
  THEN  (((SplitOnConclITE  THENA  Auto)  THEN  ListInd  (-3))  THEN  Reduce  0)
  THEN  Auto)




Home Index