The stage machine of the original Friedberg–Muchnik construction #
This file constructs the finite-stage state machine of the original Friedberg–Muchnik theorem
[S, VII.2.1], building two c.e. sets A = friedbergMuchnikSetA and B = friedbergMuchnikSetB
against the interleaved negative requirements R_{2e} : A ≠ Φ_e^B and R_{2e+1} : B ≠ Φ_e^A.
At stage s, state s stores A_s, B_s, an active prefix of (witness, restraint) records,
and a freshness floor floor; priorities beyond records.length default to
(j.leastInPairColumn floor, none) (witness_restraint_eq_soareMarkers). The least priority k
requiring attention enumerates witness k s into side k, protects monitoredSide k, installs
some d.use at k, and resets all j > k above nextFloor.
References #
- R. M. Friedberg, Two recursively enumerable sets of incomparable degrees of unsolvability, Proc. Nat. Acad. Sci. U.S.A. 43 (1957), 236–238.
- A. A. Muchnik, On the unsolvability of the problem of reducibility in the theory of algorithms, Dokl. Akad. Nauk SSSR 108 (1956), 194–197.
- R. I. Soare, Recursively Enumerable Sets and Degrees, Springer, 1987, Theorem VII.2.1.
Side enumerated by requirement k: false (A) for 2e, true (B) for 2e + 1.
Instances For
Side monitored and protected by requirement k: the opposite side !k.bodd.
Instances For
The monitored side is the negation of the enumerated side.
Even priorities 2 * e monitor true (B).
Odd priorities 2 * e + 1 monitor false (A).
A requirement never monitors the side it enumerates into.
Finite active state and uniform column defaults #
Finite state at the end of a stage: finite approximations setA and setB, active
(witness, restraint) records for < records.length, and freshness floor floor.
Current finite approximation to
A(false).Current finite approximation to
B(true).Active
(witness, restraint)records indexed by priority.- floor : ℕ
Lower bound for default witness selection in
j.pairColumnbeyondrecords.length.
Instances For
Instances For
The initial empty state at stage 0: empty sets, no active records, and floor 0.
Instances For
Both approximations in State.init are empty.
In State.init, requirement j holds the initial witness Nat.pair 0 j.
In State.init, every restraint is inactive (none).
Finite states are primitive codable via State.equivCode.
Stage evaluation, eligibility, and least-priority attention #
Normalized stage computation Φ_{e, s}^D(x) against the binary answers of a finite set D.
Instances For
Unfolding stageRun.
stageRun agrees with Code.evalStage on Code.setAnswers D.
k requires attention in st at stage s with halting record d when st.witness k lies
in k.pairColumn \ st.set (side k) and Φ_{k / 2, s} halts there with output 0.
The witness has not yet entered the enumerated side of
k.The witness belongs to
k's column.The opposite-oracle stage computation halts at the witness with record
d.The stage computation outputs
0.
Instances For
Unfolding RequiresAttention into its four clauses.
Any requirement requiring attention at stage s has priority k < s.
At fixed st, s, and k, the halting record witnessing RequiresAttention is unique.
Least-priority attention. Search k < s for the least priority requiring attention.
Instances For
attention st s = some (k, d) iff k is the least priority requiring attention at s.
attention st s = none holds iff no priority requires attention.
Stage transition and semantic correspondence #
nextFloor strictly exceeds the current stage s.
nextFloor strictly exceeds the halting use d.use.
One step of the Friedberg–Muchnik stage machine.
Instances For
The finite state at the end of stage s.
Instances For
The priority receiving attention at stage s, if any.
Instances For
Witness x_j^s of requirement j at stage s.
Instances For
Restraint r_j^s of requirement j at stage s (none when inactive).
Instances For
Stage 0 starts in State.init.
No requirement acts at stage 0.
Action, locality, initialization, and opposite-oracle protection equations #
Semantic correspondence. (witness j s, restraint j s) agrees with soareMarkers s j.
Monotonicity, witness ownership, and appointment vs. attention #
Every witness witness j s belongs to j's pairing column j.pairColumn.
The second Nat.unpair coordinate of witness j s is j.
On a reachable state state s, RequiresAttention drops the automatic column clause.
Stages at which j is appointed or reappointed a witness: 0 and initializationStages.
Instances For
Stage 0 is an appointment stage for every requirement.
A positive stage s + 1 is an appointment stage for j iff it initializes j.
Appointment and attention stages are disjoint.
Outside appointmentStages j, witness j does not change in s ↦ s + 1.
At every reappointment stage s + 1 ∈ initializationStages action j, the new witness of j
lies outside stage b (s + 1).
Numbers enumerated by requirement k across all stages.
Instances For
Every number enumerated by requirement k belongs to k.pairColumn.
Distinct requirements enumerate disjoint sets of witnesses.
Limit sets, disjointness, and effectivity #
The limit set of side b: A for false and B for true.
Instances For
The first c.e. set A constructed by the original Friedberg–Muchnik theorem.
Instances For
The second c.e. set B constructed by the original Friedberg–Muchnik theorem.
Instances For
set b is the stage limit stageLimit (stage b).
set false is friedbergMuchnikSetA.
Least-priority attention selection is primitive recursive in the state and stage.
The stage transition step is primitive recursive.
The finite state state s is primitive recursive in the stage s.
The acting priority action s is primitive recursive in the stage s.
The witness witness j s is primitive recursive uniformly in (j, s).
The restraint restraint j s is primitive recursive uniformly in (j, s).
The binary finite-set codes of stage b s are primitive recursive uniformly in (b, s).
For each side b, the binary finite-set codes of stage b s are primitive recursive in s.
friedbergMuchnikSetA is c.e.
friedbergMuchnikSetB is c.e.