Step * of Lemma filter-filter

[P1,P2,L:Top].  (filter(P2;filter(P1;L)) filter(λt.((P1 t) ∧b (P2 t));L))
BY
(RepUR ``band filter reduce`` 0
   THEN MutualFixpointInduction1 `L'
   THEN Reduce 0
   THEN RW (SubC (TryC RecUnfoldTopAbC)) 0) }

1
1. : ℤ
2. 0 < j
3. ∀P2,P1,L:Base.
     (rec-case(λlist_ind,L. eval in
                            if is pair then let a,as' 
                                                in if P1 then [a (list_ind as')] else list_ind as' fi 
                            otherwise if Ax then [] otherwise ⊥^j 
               ⊥ 
               L) of
      [] => []
      a::as' =>
       r.if P2 then [a r] else fi  ≤ rec-case(L) of
                                           [] => []
                                           a::as' =>
                                            r.if if P1 then P2 else ff fi  then [a r] else fi )
4. P2 Base
5. P1 Base
6. Base
⊢ eval eval in
           if is pair then let a,as' 
                               in if P1 a
                                  then [a 
                                        list_ind,L. eval in
                                                      if is pair then let a,as' 
                                                                          in if P1 a
                                                                             then [a (list_ind as')]
                                                                             else list_ind as'
                                                                             fi  otherwise if Ax then [] otherwise ⊥\000C^j 
                                         ⊥ 
                                         as')]
                                  else λlist_ind,L. eval in
                                                    if is pair then let a,as' 
                                                                        in if P1 a
                                                                           then [a (list_ind as')]
                                                                           else list_ind as'
                                                                           fi  otherwise if Ax then [] otherwise ⊥^j\000C 
                                       ⊥ 
                                       as'
                                  fi  otherwise if Ax then [] otherwise ⊥ in
  if is pair then let a,as' 
                      in if P2 a
                         then [a rec-case(as') of [] => [] h::t => r.if P2 then [h r] else fi ]
                         else rec-case(as') of
                              [] => []
                              h::t =>
                               r.if P2 then [h r] else fi 
                         fi  otherwise if Ax then [] otherwise ⊥ ≤ eval in
                                                                       if is pair then let a,as' 
                                                                                           in if if P1 a
                                                                                                 then P2 a
                                                                                                 else ff
                                                                                                 fi 
                                                                                              then [a 
                                                                                                    rec-case(as') of
                                                                                                    [] => []
                                                                                                    h::t =>
                                                                                                     r.if if P1 h
                                                                                                          then P2 h
                                                                                                          else ff
                                                                                                          fi 
                                                                                                    then [h r]
                                                                                                    else r
                                                                                                    fi ]
                                                                                              else rec-case(as') of
                                                                                                   [] => []
                                                                                                   h::t =>
                                                                                                    r.if if P1 h
                                                                                                         then P2 h
                                                                                                         else ff
                                                                                                         fi 
                                                                                                   then [h r]
                                                                                                   else r
                                                                                                   fi 
                                                                                              fi 
                                                                       otherwise if Ax then [] otherwise ⊥

2
1. : ℤ
2. 0 < j
3. ∀P2,P1,L:Base.
     list_ind,L. eval in
                   if is pair then let a,as' 
                                       in if if P1 then P2 else ff fi 
                                          then [a (list_ind as')]
                                          else list_ind as'
                                          fi  otherwise if Ax then [] otherwise ⊥^j 
      ⊥ 
      L ≤ rec-case(rec-case(L) of
                   [] => []
                   a::as' =>
                    r.if P1 then [a r] else fi of
          [] => []
          a::as' =>
           r.if P2 then [a r] else fi )
4. P2 Base
5. P1 Base
6. Base
⊢ eval in
  if is pair then let a,as' 
                      in if if P1 then P2 else ff fi 
                         then [a 
                               list_ind,L. eval in
                                             if is pair then let a,as' 
                                                                 in if if P1 then P2 else ff fi 
                                                                    then [a (list_ind as')]
                                                                    else list_ind as'
                                                                    fi  otherwise if Ax then [] otherwise ⊥^j 
                                ⊥ 
                                as')]
                         else λlist_ind,L. eval in
                                           if is pair then let a,as' 
                                                               in if if P1 then P2 else ff fi 
                                                                  then [a (list_ind as')]
                                                                  else list_ind as'
                                                                  fi  otherwise if Ax then [] otherwise ⊥^j 
                              ⊥ 
                              as'
                         fi  otherwise if Ax then [] otherwise ⊥ ≤ eval rec-case(L) of
                                                                                [] => []
                                                                                a::as' =>
                                                                                 r.if P1 then [a r] else fi  in
                                                                       if is pair then let a,as' 
                                                                                           in if P2 a
                                                                                              then [a 
                                                                                                    rec-case(as') of
                                                                                                    [] => []
                                                                                                    h::t =>
                                                                                                     r.if P2 h
                                                                                                    then [h r]
                                                                                                    else r
                                                                                                    fi ]
                                                                                              else rec-case(as') of
                                                                                                   [] => []
                                                                                                   h::t =>
                                                                                                    r.if P2 h
                                                                                                   then [h r]
                                                                                                   else r
                                                                                                   fi 
                                                                                              fi 
                                                                       otherwise if Ax then [] otherwise ⊥


Latex:


Latex:
\mforall{}[P1,P2,L:Top].    (filter(P2;filter(P1;L))  \msim{}  filter(\mlambda{}t.((P1  t)  \mwedge{}\msubb{}  (P2  t));L))


By


Latex:
(RepUR  ``band  filter  reduce``  0
  THEN  MutualFixpointInduction1  `L'
  THEN  Reduce  0
  THEN  RW  (SubC  (TryC  RecUnfoldTopAbC))  0)




Home Index