Documentation

DescriptiveComplexity.Problems.Machine.HaltHard.SimRet

The pop phase of the simulation #

The second half of the simulation: from the resting configuration of a continuation, the machine finds the top frame and performs the pop that Turing.ToPartrec.stepRet prescribes – accepting on the empty continuation, erasing a comp header, inspecting the flag of a fix, transferring the stored head of a cons₂, or exchanging value and stored value of a cons₁.

The frame region is taken apart by DescriptiveComplexity.HaltHard.FrameSeg.gap_split: a leading blank gap, then the top frame (DescriptiveComplexity.HaltHard.TopSeg). Each pop lemma ends either back at rest – for the pops that consume no code – or at the dispatch point of a child, where DescriptiveComplexity.HaltHard.sim_norm takes over.

The top frame #

The frame region with its leading gap peeled: the top frame comes first.

Instances For
    Dependency graph

    A frame region splits into its leading gap and its top frame.

    Dependency graph

    Pass lemmas for the pops #

    Where a content scan stops #

    Whatever follows a frame region starts with a header, a blank or mid, never a content letter – frames start with headers – so a rightward scan over one/com stops deterministically. The two splits below extract that stop letter, absorbing an erased zone of blanks in front.

    The comp pop #

    The halt pop #

    The fix pop #

    The cons₂ pop #

    The cons₁ pop, phase one: the value moves into a fresh cons₂ frame #

    The cons₁ pop, phase two: the stored value moves out to endR #