The tape representation of configurations #
Values as their preorder bits (S), the control (ctrlRepr), the environment
(envRepr, innermost value at the right end, #-separated), the frames (frameRepr) and
the stack (kontRepr), as lists of symbols; and their lengths in terms of the sizes.
A value: its preorder bits.
Equations
Instances For
The control: 0 · S(p.toData) for ev p, 1 · S(v) for ret v.
Equations
Instances For
The environment [v₁, …, vₙ] (v₁ innermost): S(vₙ) # … # S(v₁) #.
Equations
Instances For
The two tag bits of a frame.
Equations
- MIPRE.TM.Interp.frameTag (MIPRE.Cost.Machine.Frame.cons1 t env) = [MIPRE.TM.Interp.Sym.zero, MIPRE.TM.Interp.Sym.zero]
- MIPRE.TM.Interp.frameTag (MIPRE.Cost.Machine.Frame.cons2 a) = [MIPRE.TM.Interp.Sym.zero, MIPRE.TM.Interp.Sym.one]
- MIPRE.TM.Interp.frameTag (MIPRE.Cost.Machine.Frame.let1 b env) = [MIPRE.TM.Interp.Sym.one, MIPRE.TM.Interp.Sym.zero]
- MIPRE.TM.Interp.frameTag (MIPRE.Cost.Machine.Frame.loop1 b env) = [MIPRE.TM.Interp.Sym.one, MIPRE.TM.Interp.Sym.one]
Instances For
A frame: its tag, its payload, $; a closure carries its environment after ¶.
Equations
- One or more equations did not get rendered due to their size.
- MIPRE.TM.Interp.frameRepr (MIPRE.Cost.Machine.Frame.cons2 a) = [MIPRE.TM.Interp.Sym.zero, MIPRE.TM.Interp.Sym.one] ++ MIPRE.TM.Interp.S a ++ [MIPRE.TM.Interp.Sym.fr]
Instances For
The body of a frame: the frame without its final $.
Equations
- One or more equations did not get rendered due to their size.
- MIPRE.TM.Interp.frameBody (MIPRE.Cost.Machine.Frame.cons2 a) = [MIPRE.TM.Interp.Sym.zero, MIPRE.TM.Interp.Sym.one] ++ MIPRE.TM.Interp.S a
Instances For
No $ in the body of a frame.
@[simp]
theorem
MIPRE.TM.Interp.length_frameRepr_le
{V L P : ℕ}
{f : Cost.Machine.Frame}
(h : Cost.Machine.FrameBound V L P f)
: