Step * 2 of Lemma hdf-compose0-transformation2


1. : ℕ
2. : ℤ
3. j ≠ 0
4. 0 < j
5. ∀f,L,G:Top.
     mk-hdf.(inl a.cbva_seq(λn.if n=m  then mk_lambdas_fun(λg.⋃b∈g.f b;m)  else (L n); λg.<mk-hdf
                                                                                                    select_fun_ap(g;m
                                                                                                      1;m)
                                                                                                    >1)))^j 
      ⊥ ≤ fix((λmk-hdf,s0. case s0 of inl(y) => inl a.let X',bs in let out ⟵ ⋃b∈bs.f in <mk-hdf X', out>i\000Cnr(y) => inr ⋅ )) 
          fix((λmk-hdf.(inl a.cbva_seq(L a; λg.<mk-hdf, g>m))))))
6. Top@i
7. Top@i
8. Top@i
⊢ inl a.cbva_seq(λn.if n=m  then mk_lambdas_fun(λg.⋃b∈g.f b;m)  else (L n);
                   λg.<λmk-hdf.(inl a.cbva_seq(λn.if n=m  then mk_lambdas_fun(λg.⋃b∈g.f b;m)  else (L n);
                                                 λg.<mk-hdf, select_fun_ap(g;m 1;m)>1)))^j 
                       ⊥
                      select_fun_ap(g;m 1;m)
                      >1)) ≤ fix((λmk-hdf,s0. case s0
                                                    of inl(y) =>
                                                    inl a.let X',bs 
                                                            in let out ⟵ ⋃b∈bs.f b
                                                               in <mk-hdf X', out>)
                                                    inr(y) =>
                                                    inr ⋅ )) 
                                   fix((λmk-hdf.(inl a.cbva_seq(L a; λg.<mk-hdf, g>m)))))
BY
(RW (AddrC [2;1] (UnrollLoopsOnceExceptC SqequalProcTransLst)) 0
   THEN Reduce 0
   THEN RepeatFor (SqLeCD)
   THEN (RWO "cbva_seq-spread" THENA Auto)
   THEN (RWO "cbva_seq_extend" THENA Auto)
   THEN RepUR ``ifthenelse eq_int btrue bfalse bag-map`` 0
   THEN (LiftAll THENA Auto)
   THEN RepeatFor ((SqLeCD THEN Try (Complete (Auto))))
   THEN All (RepUR ``bag-map``)
   THEN BackThruSomeHyp)⋅ }


Latex:


Latex:

1.  m  :  \mBbbN{}
2.  j  :  \mBbbZ{}
3.  j  \mneq{}  0
4.  0  <  j
5.  \mforall{}f,L,G:Top.
          (\mlambda{}mk-hdf.(inl  (\mlambda{}a.cbva\_seq(\mlambda{}n.if  n=m    then  mk\_lambdas\_fun(\mlambda{}g.\mcup{}b\mmember{}G  a  g.f  b;m)    else  (L  a  n);
                                                                \mlambda{}g.<mk-hdf,  select\_fun\_ap(g;m  +  1;m)>  m  +  1)))\^{}j  -  1 
            \mbot{}  \mleq{}  fix((\mlambda{}mk-hdf,s0.  case  s0
                                                      of  inl(y)  =>
                                                      inl  (\mlambda{}a.let  X',bs  =  y  a 
                                                                      in  let  out  \mleftarrow{}{}  \mcup{}b\mmember{}bs.f  b
                                                                            in  <mk-hdf  X',  out>)
                                                      |  inr(y)  =>
                                                      inr  \mcdot{}  )) 
                    fix((\mlambda{}mk-hdf.(inl  (\mlambda{}a.cbva\_seq(L  a;  \mlambda{}g.<mk-hdf,  G  a  g>  m))))))
6.  f  :  Top@i
7.  L  :  Top@i
8.  G  :  Top@i
\mvdash{}  inl  (\mlambda{}a.cbva\_seq(\mlambda{}n.if  n=m    then  mk\_lambdas\_fun(\mlambda{}g.\mcup{}b\mmember{}G  a  g.f  b;m)    else  (L  a  n);
                                      \mlambda{}g.<\mlambda{}mk-hdf.(inl  (\mlambda{}a.cbva\_seq(\mlambda{}n.if  n=m
                                                                                                              then  mk\_lambdas\_fun(\mlambda{}g.\mcup{}b\mmember{}G  a  g.f  b;m)
                                                                                                              else  (L  a  n);  \mlambda{}g.<mk-hdf
                                                                                                                                                ,  select\_fun\_ap(g;m  +  1;m)
                                                                                                                                                >  m  +  1)))\^{}j  -  1 
                                              \mbot{}
                                            ,  select\_fun\_ap(g;m  +  1;m)
                                            >  m  +  1))  \mleq{}  fix((\mlambda{}mk-hdf,s0.  case  s0
                                                                                                        of  inl(y)  =>
                                                                                                        inl  (\mlambda{}a.let  X',bs  =  y  a 
                                                                                                                        in  let  out  \mleftarrow{}{}  \mcup{}b\mmember{}bs.f  b
                                                                                                                              in  <mk-hdf  X',  out>)
                                                                                                        |  inr(y)  =>
                                                                                                        inr  \mcdot{}  )) 
                                                                      fix((\mlambda{}mk-hdf.(inl  (\mlambda{}a.cbva\_seq(L  a;  \mlambda{}g.<mk-hdf,  G  a  g>  m)))))


By


Latex:
(RW  (AddrC  [2;1]  (UnrollLoopsOnceExceptC  SqequalProcTransLst))  0
  THEN  Reduce  0
  THEN  RepeatFor  2  (SqLeCD)
  THEN  (RWO  "cbva\_seq-spread"  0  THENA  Auto)
  THEN  (RWO  "cbva\_seq\_extend"  0  THENA  Auto)
  THEN  RepUR  ``ifthenelse  eq\_int  btrue  bfalse  bag-map``  0
  THEN  (LiftAll  0  THENA  Auto)
  THEN  RepeatFor  3  ((SqLeCD  THEN  Try  (Complete  (Auto))))
  THEN  All  (RepUR  ``bag-map``)
  THEN  BackThruSomeHyp)\mcdot{}




Home Index