Step * of Lemma hdf-compose1-transformation1-2

[f,L,G:Base]. ∀[m:ℕ].
  (f fix((λmk-hdf.(inl a.cbva_seq(L[a]; λg.<mk-hdf, G[a;g]>m))))) 
  fix((λmk-hdf.(inl a.cbva_seq(λn.if (n =z m) then mk_lambdas_fun(λg.bag-map(f;G[a;g]);m) else L[a] fi ;
                                   λg.<mk-hdf, select_fun_ap(g;m 1;m)>1))))))
BY
(Auto
   THEN RepUR ``hdf-compose1 mk-hdf hdf-halt hdf-halted isr hdf-ap hdf-run ifthenelse eq_int btrue bfalse so_apply`` 0
   THEN RW LiftAllC 0
   THEN Reduce 0
   THEN SqequalInduction
   THEN (UnivCD THENA Auto)
   THEN UnrollLoopsOnceExcept [`cbva_seq`;`mk_lambdas_fun`;`select_fun_ap`;`bag-map`;`it`]
   THEN (RWO "cbva_seq-spread" THENA Auto)
   THEN (RWO "cbva_seq_extend" THENA Auto)
   THEN RepUR ``ifthenelse eq_int btrue bfalse`` 0
   THEN RW LiftAllC 0
   THEN Reduce 0
   THEN Repeat ((SqequalInductionAuxAux false THEN Try (Complete (Auto))))
   THEN BLemma `cbva_seq-sqequal-n`
   THEN Try (Complete (Auto))
   THEN Repeat ((SqequalNCanonicalCD THENA Auto'))
   THEN Try (Complete (Auto))
   THEN BackThruSomeHyp
   THEN Auto) }


Latex:


\mforall{}[f,L,G:Base].  \mforall{}[m:\mBbbN{}].
    (f  o  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(\mlambda{}n.if  (n  =\msubz{}  m)
                                                                            then  mk\_lambdas\_fun(\mlambda{}g.bag-map(f;G[a;g]);m)
                                                                            else  L[a]  n
                                                                            fi  ;  \mlambda{}g.<mk-hdf,  select\_fun\_ap(g;m  +  1;m)>  m  +  1))))))


By

(Auto
  THEN  ...
  THEN  RW  LiftAllC  0
  THEN  Reduce  0
  THEN  SqequalInduction
  THEN  (UnivCD  THENA  Auto)
  THEN  UnrollLoopsOnceExcept  [`cbva\_seq`;`mk\_lambdas\_fun`;`select\_fun\_ap`;`bag-map`;`it`]
  THEN  (RWO  "cbva\_seq-spread"  0  THENA  Auto)
  THEN  (RWO  "cbva\_seq\_extend"  0  THENA  Auto)
  THEN  RepUR  ``ifthenelse  eq\_int  btrue  bfalse``  0
  THEN  RW  LiftAllC  0
  THEN  Reduce  0
  THEN  Repeat  ((SqequalInductionAuxAux  false  THEN  Try  (Complete  (Auto))))
  THEN  BLemma  `cbva\_seq-sqequal-n`
  THEN  Try  (Complete  (Auto))
  THEN  Repeat  ((SqequalNCanonicalCD  THENA  Auto'))
  THEN  Try  (Complete  (Auto))
  THEN  BackThruSomeHyp
  THEN  Auto)




Home Index