Step
*
2
of Lemma
hdf-once-transformation3
1. j : ℤ
2. 0 < j
3. ∀L,G:Top. ∀m:ℕ. ∀a,g:Base.
(case null(G a g)
of inl() =>
λ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)))^j - 1 ⊥
| inr() =>
inr Ax ≤ fix((λmk-hdf,s0. case s0
of inl(y) =>
inl (λa.let X',b = y a
in <mk-hdf case null(b) of inl() => X' | inr() => inr Ax , b>)
| inr(y) =>
inr Ax ))
case null(G a g)
of inl() =>
fix((λmk-hdf.(inl (λa.cbva_seq(L a; λg.<mk-hdf, G a g>; m)))))
| inr() =>
inr Ax )
4. L : Top@i
5. G : Top@i
6. m : ℕ@i
7. a : Base@i
8. g : Base@i
⊢ case null(G a g)
of inl() =>
inl (λa.cbva_seq(L a; λg.<case null(G a g)
of inl() =>
λ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)))^j - 1
⊥
| inr() =>
inr Ax
, G a g
>; m))
| inr() =>
inr Ax ≤ fix((λmk-hdf,s0. case s0
of inl(y) =>
inl (λa.let X',b = y a
in <mk-hdf case null(b) of inl() => X' | inr() => inr Ax , b>)
| inr(y) =>
inr Ax ))
case null(G a g)
of inl() =>
fix((λmk-hdf.(inl (λa.cbva_seq(L a; λg.<mk-hdf, G a g>; m)))))
| inr() =>
inr Ax
BY
{ (RW (AddrC [2] (UnrollLoopsOnceExceptC SqequalProcTransLst)) 0 THEN (RWO "cbva_seq-spread" 0 THENA Auto) THEN Auto) }
Latex:
1. j : \mBbbZ{}
2. 0 < j
3. \mforall{}L,G:Top. \mforall{}m:\mBbbN{}. \mforall{}a,g:Base.
(case null(G a g)
of inl() =>
\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)))\^{}j - 1
\mbot{}
| inr() =>
inr Ax \mleq{} fix((\mlambda{}mk-hdf,s0. case s0
of inl(y) =>
inl (\mlambda{}a.let X',b = y a
in <mk-hdf case null(b) of inl() => X' | inr() => inr Ax
, b
>)
| inr(y) =>
inr Ax ))
case null(G a g)
of inl() =>
fix((\mlambda{}mk-hdf.(inl (\mlambda{}a.cbva\_seq(L a; \mlambda{}g.<mk-hdf, G a g> m)))))
| inr() =>
inr Ax )
4. L : Top@i
5. G : Top@i
6. m : \mBbbN{}@i
7. a : Base@i
8. g : Base@i
\mvdash{} case null(G a g)
of inl() =>
inl (\mlambda{}a.cbva\_seq(L a; \mlambda{}g.<case null(G a g)
of inl() =>
\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)))\^{}j - 1
\mbot{}
| inr() =>
inr Ax
, G a g
> m))
| inr() =>
inr Ax \mleq{} fix((\mlambda{}mk-hdf,s0. case s0
of inl(y) =>
inl (\mlambda{}a.let X',b = y a
in <mk-hdf case null(b) of inl() => X' | inr() => inr Ax , b>)
| inr(y) =>
inr Ax ))
case null(G a g)
of inl() =>
fix((\mlambda{}mk-hdf.(inl (\mlambda{}a.cbva\_seq(L a; \mlambda{}g.<mk-hdf, G a g> m)))))
| inr() =>
inr Ax
By
(RW (AddrC [2] (UnrollLoopsOnceExceptC SqequalProcTransLst)) 0
THEN (RWO "cbva\_seq-spread" 0 THENA Auto)
THEN Auto)
Home
Index