Step * 1 of Lemma taba_wf


1. Type
2. Type
3. init B
4. A ⟶ A ⟶ B ⟶ B
5. xs List
⊢ fst(rec-case(xs) of
      [] => <init, xs>
      x::xs' =>
       p.let a,ys 
         in let h,t ys 
            in <F[x;h;a], t>) ∈ B
BY
Assert ⌜∀xs,ys:A List.
            ((||xs|| ≤ ||ys||)
             (rec-case(xs) of
                [] => <init, ys>
                x::xs' =>
                 p.let a,ys 
                   in let h,t ys 
                      in <F[x;h;a], t> ∈ {p:B × (A List)| (||xs|| ||snd(p)||) ||ys|| ∈ ℤ))⌝⋅ }

1
.....assertion..... 
1. Type
2. Type
3. init B
4. A ⟶ A ⟶ B ⟶ B
5. xs List
⊢ ∀xs,ys:A List.
    ((||xs|| ≤ ||ys||)
     (rec-case(xs) of
        [] => <init, ys>
        x::xs' =>
         p.let a,ys 
           in let h,t ys 
              in <F[x;h;a], t> ∈ {p:B × (A List)| (||xs|| ||snd(p)||) ||ys|| ∈ ℤ))

2
1. Type
2. Type
3. init B
4. A ⟶ A ⟶ B ⟶ B
5. xs List
6. ∀xs,ys:A List.
     ((||xs|| ≤ ||ys||)
      (rec-case(xs) of
         [] => <init, ys>
         x::xs' =>
          p.let a,ys 
            in let h,t ys 
               in <F[x;h;a], t> ∈ {p:B × (A List)| (||xs|| ||snd(p)||) ||ys|| ∈ ℤ))
⊢ fst(rec-case(xs) of
      [] => <init, xs>
      x::xs' =>
       p.let a,ys 
         in let h,t ys 
            in <F[x;h;a], t>) ∈ B


Latex:


Latex:

1.  A  :  Type
2.  B  :  Type
3.  init  :  B
4.  F  :  A  {}\mrightarrow{}  A  {}\mrightarrow{}  B  {}\mrightarrow{}  B
5.  xs  :  A  List
\mvdash{}  fst(rec-case(xs)  of
            []  =>  <init,  xs>
            x::xs'  =>
              p.let  a,ys  =  p 
                  in  let  h,t  =  ys 
                        in  <F[x;h;a],  t>)  \mmember{}  B


By


Latex:
Assert  \mkleeneopen{}\mforall{}xs,ys:A  List.
                    ((||xs||  \mleq{}  ||ys||)
                    {}\mRightarrow{}  (rec-case(xs)  of
                            []  =>  <init,  ys>
                            x::xs'  =>
                              p.let  a,ys  =  p 
                                  in  let  h,t  =  ys 
                                        in  <F[x;h;a],  t>  \mmember{}  \{p:B  \mtimes{}  (A  List)|  (||xs||  +  ||snd(p)||)  =  ||ys||\}  ))\mkleeneclose{}\mcdot{}




Home Index