Step
*
of Lemma
hdf-compose1-transformation1-2
∀[f,L,G:Base]. ∀[m:ℕ].
(f o 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] n fi ;
λg.<mk-hdf, select_fun_ap(g;m + 1;m)>; 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" 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) }
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