The accepting phase is a dead end #
The side condition every discharge of a no-instance in
DescriptiveComplexity.Problems.Machine.DetRun asks for, at the EXPSPACE
program: accepting configurations are stuck. With it,
DescriptiveComplexity.TMData.not_acceptsSpace_of_reaches_dead (a run that
ends badly) and DescriptiveComplexity.TMData.not_acceptsSpace_of_chain (a run
that never ends) are the two ways the reduction rejects, and no invariant over
the program's rules is needed for either.
DescriptiveComplexity.Draw.Assembly already carries the fact, in its
owner/howner fields: every rule fires from a phase its own site owns, so a
phase whose owning site contributes no rules is the source of none
(DescriptiveComplexity.Draw.Assembly.srcPh_ne_of_isEmpty). The accepting
phase is such a phase – OuterSh … .accept is Empty – whence
DescriptiveComplexity.Draw.Data.srcPh_ne_acceptP and, at the machine,
DescriptiveComplexity.Draw.Data.stuck_acc. That is what makes a false
output a rejection rather than a detour, and it costs one case analysis on
the tag of a transition rather than one per rule.
A phase whose site has no rules #
A phase owned by a site with no rules is the source of no rule. Every
rule fires from a phase its own site owns (Assembly.howner), so a rule with
that source phase would be a rule of that site – and there are none.
Dependency graph
The emitted machine is stuck in its accepting phase #
No rule of the program leaves the accepting phase: its site
(DescriptiveComplexity.Draw.OuterSite.accept) contributes none.
Dependency graph
A configuration in a phase no rule leaves is stuck. A step needs a transition whose source state is the machine's, and a transition's source state carries the source phase of its rule in its tag – so the case analysis is on the tag, not on the rules.
Dependency graph
Accepting configurations of the emitted machine are stuck – the hsink
side condition of DescriptiveComplexity.Problems.Machine.DetRun. An accepting
state is a phase-tagged element whose phase the program accepts, and the
program accepts only acceptP.