Step * of Lemma hdf-buffer-transformation3

[init,s,L,S,G:Top]. ∀[m:ℕ].
  (hdf-buffer(fix((λmk-hdf,s. (inl a.cbva_seq(L[s;a]; λg.<mk-hdf S[s;a;g], G[s;a;g]>m))))) s;init) 
  fix((λmk-hdf,s. (inl a.cbva_seq(λn.if (n =z m)
                                         then mk_lambdas_fun(λg.∪f∈G[fst(s);a;g].∪b∈snd(s).f b;m)
                                         else L[fst(s);a] n
                                         fi ; λg.<mk-hdf 
                                                  <S[fst(s);a;partial_ap(g;m 1;m)]
                                                  if bag-null(select_fun_last(g;m))
                                                    then snd(s)
                                                    else select_fun_last(g;m)
                                                    fi 
                                                  >
                                                 select_fun_last(g;m)
                                                 >1))))) 
    <s, init>)
BY
(Auto
   THEN ProcTransRepUR ``hdf-buffer so_apply bag-null`` 0
   THEN (RW LiftAllC THEN Reduce 0)
   THEN SqequalSqle
   THEN OneFixpointLeast
   THEN Repeat (MoveToConcl (-2))
   THEN NatInd (-1)
   THEN (UnivCD THENA Auto)
   THEN Try (Complete ((Reduce THEN Strictness THEN Auto)))
   THEN (RWO "fun_exp_unroll_1" THENA Auto)) }

1
1. : ℤ
2. 0 < j
3. ∀init,s,L,S,G:Top. ∀m:ℕ.
     mk-hdf,s0. let X,bs s0 
                  in case X
                      of inl(y) =>
                      inl a.let X',fs 
                              in let bs' ←─ ∪f∈fs.∪b∈bs.f b
                                 in <mk-hdf <X', case null(bs') of inl() => bs inr() => bs'>bs'>)
                      inr(y) =>
                      inr ⋅ ^j 
      ⊥ 
      <fix((λmk-hdf,s. (inl a.cbva_seq(L a; λg.<mk-hdf (S g), g>m))))) s, init> 
      ≤ fix((λmk-hdf,s. (inl a.cbva_seq(λn.if n=m
                                                then mk_lambdas_fun(λg.∪f∈(fst(s)) g.∪b∈snd(s).f b;m)
                                                else (L (fst(s)) n); λg.<mk-hdf 
                                                                           <(fst(s)) partial_ap(g;m 1;m)
                                                                           case null(select_fun_last(g;m))
                                                                              of inl() =>
                                                                              snd(s)
                                                                              inr() =>
                                                                              select_fun_last(g;m)
                                                                           >
                                                                          select_fun_last(g;m)
                                                                          >1))))) 
        <s, init>)
4. init Top@i
5. Top@i
6. Top@i
7. Top@i
8. Top@i
9. : ℕ@i
⊢ x.((λmk-hdf,s0. let X,bs s0 
                    in case X
                        of inl(y) =>
                        inl a.let X',fs 
                                in let bs' ←─ ∪f∈fs.∪b∈bs.f b
                                   in <mk-hdf <X', case null(bs') of inl() => bs inr() => bs'>bs'>)
                        inr(y) =>
                        inr ⋅ 
       mk-hdf,s0. let X,bs s0 
                    in case X
                        of inl(y) =>
                        inl a.let X',fs 
                                in let bs' ←─ ∪f∈fs.∪b∈bs.f b
                                   in <mk-hdf <X', case null(bs') of inl() => bs inr() => bs'>bs'>)
                        inr(y) =>
                        inr ⋅ ^j 
        x))) 
  ⊥ 
  <fix((λmk-hdf,s. (inl a.cbva_seq(L a; λg.<mk-hdf (S g), g>m))))) s, init> 
  ≤ fix((λmk-hdf,s. (inl a.cbva_seq(λn.if n=m
                                            then mk_lambdas_fun(λg.∪f∈(fst(s)) g.∪b∈snd(s).f b;m)
                                            else (L (fst(s)) n); λg.<mk-hdf 
                                                                       <(fst(s)) partial_ap(g;m 1;m)
                                                                       case null(select_fun_last(g;m))
                                                                          of inl() =>
                                                                          snd(s)
                                                                          inr() =>
                                                                          select_fun_last(g;m)
                                                                       >
                                                                      select_fun_last(g;m)
                                                                      >1))))) 
    <s, init>

2
1. : ℤ
2. 0 < j
3. ∀init,s,L,S,G:Top. ∀m:ℕ.
     mk-hdf,s. (inl a.cbva_seq(λn.if n=m
                                         then mk_lambdas_fun(λg.∪f∈(fst(s)) g.∪b∈snd(s).f b;m)
                                         else (L (fst(s)) n); λg.<mk-hdf 
                                                                    <(fst(s)) partial_ap(g;m 1;m)
                                                                    case null(select_fun_last(g;m))
                                                                       of inl() =>
                                                                       snd(s)
                                                                       inr() =>
                                                                       select_fun_last(g;m)
                                                                    >
                                                                   select_fun_last(g;m)
                                                                   >1)))^j 
      ⊥ 
      <s, init> ≤ fix((λmk-hdf,s0. let X,bs s0 
                                   in case X
                                       of inl(y) =>
                                       inl a.let X',fs 
                                               in let bs' ←─ ∪f∈fs.∪b∈bs.f b
                                                  in <mk-hdf <X', case null(bs') of inl() => bs inr() => bs'>bs'>)
                                       inr(y) =>
                                       inr ⋅ )) 
                  <fix((λmk-hdf,s. (inl a.cbva_seq(L a; λg.<mk-hdf (S g), g>m))))) s, init>)
4. init Top@i
5. Top@i
6. Top@i
7. Top@i
8. Top@i
9. : ℕ@i
⊢ x.((λmk-hdf,s. (inl a.cbva_seq(λn.if n=m
                                           then mk_lambdas_fun(λg.∪f∈(fst(s)) g.∪b∈snd(s).f b;m)
                                           else (L (fst(s)) n); λg.<mk-hdf 
                                                                      <(fst(s)) partial_ap(g;m 1;m)
                                                                      case null(select_fun_last(g;m))
                                                                         of inl() =>
                                                                         snd(s)
                                                                         inr() =>
                                                                         select_fun_last(g;m)
                                                                      >
                                                                     select_fun_last(g;m)
                                                                     >1)))) 
       mk-hdf,s. (inl a.cbva_seq(λn.if n=m
                                           then mk_lambdas_fun(λg.∪f∈(fst(s)) g.∪b∈snd(s).f b;m)
                                           else (L (fst(s)) n); λg.<mk-hdf 
                                                                      <(fst(s)) partial_ap(g;m 1;m)
                                                                      case null(select_fun_last(g;m))
                                                                         of inl() =>
                                                                         snd(s)
                                                                         inr() =>
                                                                         select_fun_last(g;m)
                                                                      >
                                                                     select_fun_last(g;m)
                                                                     >1)))^j 
        x))) 
  ⊥ 
  <s, init> ≤ fix((λmk-hdf,s0. let X,bs s0 
                               in case X
                                   of inl(y) =>
                                   inl a.let X',fs 
                                           in let bs' ←─ ∪f∈fs.∪b∈bs.f b
                                              in <mk-hdf <X', case null(bs') of inl() => bs inr() => bs'>bs'>)
                                   inr(y) =>
                                   inr ⋅ )) 
              <fix((λmk-hdf,s. (inl a.cbva_seq(L a; λg.<mk-hdf (S g), g>m))))) s, init>


Latex:


\mforall{}[init,s,L,S,G:Top].  \mforall{}[m:\mBbbN{}].
    (hdf-buffer(fix((\mlambda{}mk-hdf,s.  (inl  (\mlambda{}a.cbva\_seq(L[s;a];  \mlambda{}g.<mk-hdf  S[s;a;g],  G[s;a;g]>  m)))))  s;ini\000Ct) 
    \msim{}  fix((\mlambda{}mk-hdf,s.  (inl  (\mlambda{}a.cbva\_seq(\mlambda{}n.if  (n  =\msubz{}  m)
                                                                                  then  mk\_lambdas\_fun(\mlambda{}g.\mcup{}f\mmember{}G[fst(s);a;g].\mcup{}b\mmember{}snd(s).f  b;m)
                                                                                  else  L[fst(s);a]  n
                                                                                  fi  ;  \mlambda{}g.<mk-hdf 
                                                                                                    <S[fst(s);a;partial\_ap(g;m  +  1;m)]
                                                                                                    ,  if  bag-null(select\_fun\_last(g;m))
                                                                                                        then  snd(s)
                                                                                                        else  select\_fun\_last(g;m)
                                                                                                        fi 
                                                                                                    >
                                                                                                  ,  select\_fun\_last(g;m)
                                                                                                  >  m  +  1))))) 
        <s,  init>)


By

(Auto
  THEN  ProcTransRepUR  ``hdf-buffer  so\_apply  bag-null``  0
  THEN  (RW  LiftAllC  0  THEN  Reduce  0)
  THEN  SqequalSqle
  THEN  OneFixpointLeast
  THEN  Repeat  (MoveToConcl  (-2))
  THEN  NatInd  (-1)
  THEN  (UnivCD  THENA  Auto)
  THEN  Try  (Complete  ((Reduce  0  THEN  Strictness  THEN  Auto)))
  THEN  (RWO  "fun\_exp\_unroll\_1"  0  THENA  Auto))




Home Index