Step * of Lemma list_ind_reverse_wf

[A,B:Type]. ∀[L:A List]. ∀[nilcase:B]. ∀[F:B ⟶ (A List) ⟶ A ⟶ B].  (list_ind_reverse(L;nilcase;F) ∈ B)
BY
(ProveWfLemma
   THEN RW (AddrC [2] UnrollRecursionC) 0
   THEN (Assert ∀n:ℕ. ∀LL:A List.
                  ((||LL|| n ∈ ℕ)
                   ((λF@0,l. if (||l|| =z 0)
                              then nilcase
                              else (F@0 firstn(||l|| 1;l)) firstn(||l|| 1;l) last(l)
                              fi 
                      fix((λF@0,l. if (||l|| =z 0)
                                  then nilcase
                                  else (F@0 firstn(||l|| 1;l)) firstn(||l|| 1;l) last(l)
                                  fi )) 
                      LL ∈ B)) BY
               skip{Auto})
   THEN skip{Auto}) }

1
.....assertion..... 
1. Type
2. Type
3. List
4. nilcase B
5. B ⟶ (A List) ⟶ A ⟶ B
⊢ ∀n:ℕ. ∀LL:A List.
    ((||LL|| n ∈ ℕ)
     ((λF@0,l. if (||l|| =z 0) then nilcase else (F@0 firstn(||l|| 1;l)) firstn(||l|| 1;l) last(l) fi 
        fix((λF@0,l. if (||l|| =z 0) then nilcase else (F@0 firstn(||l|| 1;l)) firstn(||l|| 1;l) last(l) fi )) 
        LL ∈ B))

2
1. Type
2. Type
3. List
4. nilcase B
5. B ⟶ (A List) ⟶ A ⟶ B
6. ∀n:ℕ. ∀LL:A List.
     ((||LL|| n ∈ ℕ)
      ((λF@0,l. if (||l|| =z 0) then nilcase else (F@0 firstn(||l|| 1;l)) firstn(||l|| 1;l) last(l) fi 
         fix((λF@0,l. if (||l|| =z 0) then nilcase else (F@0 firstn(||l|| 1;l)) firstn(||l|| 1;l) last(l) fi )) 
         LL ∈ B))
⊢ F@0,l. if (||l|| =z 0) then nilcase else (F@0 firstn(||l|| 1;l)) firstn(||l|| 1;l) last(l) fi 
  fix((λF@0,l. if (||l|| =z 0) then nilcase else (F@0 firstn(||l|| 1;l)) firstn(||l|| 1;l) last(l) fi )) 
  L ∈ B


Latex:


Latex:
\mforall{}[A,B:Type].  \mforall{}[L:A  List].  \mforall{}[nilcase:B].  \mforall{}[F:B  {}\mrightarrow{}  (A  List)  {}\mrightarrow{}  A  {}\mrightarrow{}  B].
    (list\_ind\_reverse(L;nilcase;F)  \mmember{}  B)


By


Latex:
(ProveWfLemma
  THEN  RW  (AddrC  [2]  UnrollRecursionC)  0
  THEN  (Assert  \mforall{}n:\mBbbN{}.  \mforall{}LL:A  List.
                                ((||LL||  =  n)
                                {}\mRightarrow{}  ((\mlambda{}F@0,l.  if  (||l||  =\msubz{}  0)
                                                        then  nilcase
                                                        else  F  (F@0  firstn(||l||  -  1;l))  firstn(||l||  -  1;l)  last(l)
                                                        fi  ) 
                                        fix((\mlambda{}F@0,l.  if  (||l||  =\msubz{}  0)
                                                                then  nilcase
                                                                else  F  (F@0  firstn(||l||  -  1;l))  firstn(||l||  -  1;l)  last(l)
                                                                fi  )) 
                                        LL  \mmember{}  B))  BY
                          skip\{Auto\})
  THEN  skip\{Auto\})




Home Index