Step * of Lemma hdf-once-transformation3

[L,G:Top]. ∀[m:ℕ].
  (hdf-once(fix((λmk-hdf.(inl a.cbva_seq(L[a]; λg.<mk-hdf, G[a;g]>m)))))) 
  fix((λmk-hdf.(inl a.cbva_seq(L[a]; λg.<case null(G[a;g]) of inl() => mk-hdf inr() => inr Ax G[a;g]>m))))))
BY
(Auto
   THEN ProcTransRepUR ``hdf-once bag-null it`` 0
   THEN (RW LiftLemAllC THENA Auto)
   THEN Reduce 0
   THEN UnrollLoopsOnceExcept ``cbva_seq null``
   THEN (RWO "cbva_seq-spread" THENA Auto)
   THEN RepeatFor ((MemCD THEN Try (Complete (Auto))))
   THEN SqequalSqle
   THEN OneFixpointLeast
   THEN Repeat (MoveToConcl (-2))
   THEN NatInd (-1)
   THEN (UnivCD THENA Auto)
   THEN Try ((ThinVar `j' THEN UnrollLoopsOnce THEN Strictness THEN Auto))
   THEN (RWO "fun_exp_unroll_1" THENA Auto)
   THEN Reduce 0) }

1
1. : ℤ
2. 0 < j
3. ∀L,G:Top. ∀m:ℕ. ∀a,g:Base.
     mk-hdf,s0. case s0
                  of inl(y) =>
                  inl a.let X',b 
                          in <mk-hdf case null(b) of inl() => X' inr() => inr Ax b>)
                  inr(y) =>
                  inr Ax ^j 
      ⊥ 
      case null(G g) of inl() => fix((λmk-hdf.(inl a.cbva_seq(L a; λg.<mk-hdf, g>m))))) inr() => inr Ax  
      ≤ case null(G g)
       of inl() =>
       fix((λmk-hdf.(inl a.cbva_seq(L a; λg.<case null(G g) of inl() => mk-hdf inr() => inr Ax g>m)))))
       inr() =>
       inr Ax )
4. Top@i
5. Top@i
6. : ℕ@i
7. Base@i
8. Base@i
⊢ case case null(G g) of inl() => fix((λmk-hdf.(inl a.cbva_seq(L a; λg.<mk-hdf, g>m))))) inr() => inr Ax 
   of inl(y) =>
   inl a.let X',b 
           in <λmk-hdf,s0. case s0
                           of inl(y) =>
                           inl a.let X',b 
                                   in <mk-hdf case null(b) of inl() => X' inr() => inr Ax b>)
                           inr(y) =>
                           inr Ax ^j 
               ⊥ 
               case null(b) of inl() => X' inr() => inr Ax 
              b
              >)
   inr(y) =>
   inr Ax  ≤ case null(G g)
   of inl() =>
   fix((λmk-hdf.(inl a.cbva_seq(L a; λg.<case null(G g) of inl() => mk-hdf inr() => inr Ax g>m)))))
   inr() =>
   inr Ax 

2
1. : ℤ
2. 0 < j
3. ∀L,G:Top. ∀m:ℕ. ∀a,g:Base.
     (case null(G g)
       of inl() =>
       λmk-hdf.(inl a.cbva_seq(L a; λg.<case null(G g) of inl() => mk-hdf inr() => inr Ax g>m)))^j 1 ⊥
       inr() =>
       inr Ax  ≤ fix((λmk-hdf,s0. case s0
                                  of inl(y) =>
                                  inl a.let X',b 
                                          in <mk-hdf case null(b) of inl() => X' inr() => inr Ax b>)
                                  inr(y) =>
                                  inr Ax )) 
                 case null(G g)
                  of inl() =>
                  fix((λmk-hdf.(inl a.cbva_seq(L a; λg.<mk-hdf, g>m)))))
                  inr() =>
                  inr Ax )
4. Top@i
5. Top@i
6. : ℕ@i
7. Base@i
8. Base@i
⊢ case null(G g)
   of inl() =>
   inl a.cbva_seq(L a; λg.<case null(G g)
                              of inl() =>
                              λmk-hdf.(inl a.cbva_seq(L a; λg.<case null(G g) of inl() => mk-hdf inr() => inr Ax 
                                                                g
                                                                >m)))^j 
                              ⊥
                              inr() =>
                              inr Ax 
                            g
                            >m))
   inr() =>
   inr Ax  ≤ fix((λmk-hdf,s0. case s0
                              of inl(y) =>
                              inl a.let X',b 
                                      in <mk-hdf case null(b) of inl() => X' inr() => inr Ax b>)
                              inr(y) =>
                              inr Ax )) 
             case null(G g)
              of inl() =>
              fix((λmk-hdf.(inl a.cbva_seq(L a; λg.<mk-hdf, g>m)))))
              inr() =>
              inr Ax 


Latex:


\mforall{}[L,G:Top].  \mforall{}[m:\mBbbN{}].
    (hdf-once(fix((\mlambda{}mk-hdf.(inl  (\mlambda{}a.cbva\_seq(L[a];  \mlambda{}g.<mk-hdf,  G[a;g]>  m)))))) 
    \msim{}  fix((\mlambda{}mk-hdf.(inl  (\mlambda{}a.cbva\_seq(L[a];  \mlambda{}g.<case  null(G[a;g])  of  inl()  =>  mk-hdf  |  inr()  =>  inr  Ax 
                                                                                        ,  G[a;g]
                                                                                        >  m))))))


By

(Auto
  THEN  ProcTransRepUR  ``hdf-once  bag-null  it``  0
  THEN  (RW  LiftLemAllC  0  THENA  Auto)
  THEN  Reduce  0
  THEN  UnrollLoopsOnceExcept  ``cbva\_seq  null``
  THEN  (RWO  "cbva\_seq-spread"  0  THENA  Auto)
  THEN  RepeatFor  3  ((MemCD  THEN  Try  (Complete  (Auto))))
  THEN  SqequalSqle
  THEN  OneFixpointLeast
  THEN  Repeat  (MoveToConcl  (-2))
  THEN  NatInd  (-1)
  THEN  (UnivCD  THENA  Auto)
  THEN  Try  ((ThinVar  `j'  THEN  UnrollLoopsOnce  THEN  Strictness  THEN  Auto))
  THEN  (RWO  "fun\_exp\_unroll\_1"  0  THENA  Auto)
  THEN  Reduce  0)




Home Index