Step * 2 of Lemma split_tail_rel


1. Type
2. A ⟶ 𝔹
3. A
4. List
5. ((fst(split_tail(v | ∀x.f[x]))) (snd(split_tail(v | ∀x.f[x])))) v ∈ (A List)
⊢ ((fst(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))
(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)))
[u v]
∈ (A List)
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 AutoSplit) }

1
1. Type
2. A ⟶ 𝔹
3. A
4. List
5. p1 List
6. p2 List
7. ↑f[u]
⊢ ((p1 p2) v ∈ (A List))
 (((fst(case p1 of [] => <[], [u p2]> x::y => <[u p1], p2> esac)) (snd(case p1 of [] => <[], [u p2]> x::y \000C=> <[u p1], p2> esac))) [u v] ∈ (A List))

2
1. Type
2. A ⟶ 𝔹
3. A
4. ¬↑f[u]
5. List
6. p1 List
7. p2 List
⊢ ((p1 p2) v ∈ (A List))
 (((fst(case p1 of [] => <[u], p2> x::y => <[u p1], p2> esac)) (snd(case p1 of [] => <[u], p2> x::y => <[u p\000C1], p2> esac))) [u v] ∈ (A List))


Latex:


Latex:

1.  A  :  Type
2.  f  :  A  {}\mrightarrow{}  \mBbbB{}
3.  u  :  A
4.  v  :  A  List
5.  ((fst(split\_tail(v  |  \mforall{}x.f[x])))  @  (snd(split\_tail(v  |  \mforall{}x.f[x]))))  =  v
\mvdash{}  ((fst(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))
@  (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)))
=  [u  /  v]


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  AutoSplit)




Home Index