Length of agreement and its restraint #
Run a program c with fuel k against oracle answers σ, and compare it with a target function
g : ℕ → ℕ. The run agrees with g at x when it succeeds there with output g x. The
length of agreement is the first argument at which the run does not agree with g: either it
fails there, or it succeeds with another output. A run at fuel k fails on every input at or above
k, so the length of agreement is at most k.
The agreement restraint is the largest stage use (TauCeti.Oracle.Single.Code.stageUse) of the
runs at the arguments up to and including the length of agreement, a failed run counting as use
0. Including the first disagreement protects a run that succeeds there with a wrong output, as
well as the agreeing runs below it.
In Sacks's constructions the answers are those of the stage A s of a set being built, the fuel is
the stage s, and the target is the characteristic function of the stage C s of a c.e. set.
Then the length of agreement and the agreement restraint are Soare's ℓ(e, s) and r(e, s) for
the requirement C ≠ Φ_e^A, and the restraint protects the numbers up to r(e, s), inclusive.
Preservation #
If the answers do not change at or below the agreement restraint, every successful run at an argument up to and including the length of agreement succeeds again with the same output and use at any larger fuel. This needs no hypothesis on the target. If in addition the target does not change below the length of agreement, the agreement there persists, so neither the length of agreement nor the restraint decreases. On an interval of stages where both conditions hold at every step, the computations, the length of agreement and the restraint therefore all persist.
Absence of injury alone is not enough to iterate: a change of the target at a small argument can
shorten the length of agreement, so that the next restraint no longer covers the use of a
computation at a larger argument. What does iterate is a fixed prefix: if the target does not
change below n and n is at most the length of agreement, then it stays so, and the computations
up to and including n persist.
Effectivity #
The length of agreement and the agreement restraint are primitive recursive in the fuel and the
program, uniformly in a parameter on which the answers and the target depend primitive
recursively. In particular they are primitive recursive in the binary codes of a finite stage
A s and a finite target stage C s, which makes them usable in computable stage constructions.
Limits of stages #
When the answers and the target are the stages A s and C s of monotone enumerations, run with
fuel s, and the program computes the limit of C relative to the limit of A below n, the use
principle makes the length of agreement eventually at least n.
Main definitions #
TauCeti.Oracle.Single.Code.AgreesAt: a run succeeds with the target value.TauCeti.Oracle.Single.Code.agreementLength: the first argument without agreement.TauCeti.Oracle.Single.Code.agreementRestraint: the largest stage use up to and including the length of agreement.
Main results #
TauCeti.Oracle.Single.Code.agreementLength_eq_iff,TauCeti.Oracle.Single.Code.le_agreementLength_iff,TauCeti.Oracle.Single.Code.agreementLength_le: the length of agreement is the first argument without agreement, and is at most the fuel.TauCeti.Oracle.Single.Code.agreementRestraint_le_iff,TauCeti.Oracle.Single.Code.use_le_agreementRestraint: the restraint is the least bound of the stage uses up to and including the length of agreement.TauCeti.Oracle.Single.Code.evaln_eq_some_of_eqOn_agreementRestraint: preservation of computations under a change of answers above the restraint.TauCeti.Oracle.Single.Code.agreesAt_of_eqOn_agreementRestraint,TauCeti.Oracle.Single.Code.agreementLength_le_of_eqOn_agreementRestraint,TauCeti.Oracle.Single.Code.agreementRestraint_le_of_eqOn_agreementRestraint: preservation of agreement, of the length of agreement and of the restraint when the target is also unchanged.TauCeti.Oracle.Single.Code.evaln_eq_some_of_forall_Ico,TauCeti.Oracle.Single.Code.agreementLength_le_of_forall_Ico,TauCeti.Oracle.Single.Code.agreementRestraint_le_of_forall_Ico: the same along an interval of stages.TauCeti.Oracle.Single.Code.le_agreementLength_of_forall_Ico,TauCeti.Oracle.Single.Code.evaln_eq_some_of_forall_Ico_of_le: persistence of a prefix of agreement, and of the computations up to and including it, along an interval of stages where the target does not change below the prefix.TauCeti.Oracle.Single.Code.primrec_agreementLength,TauCeti.Oracle.Single.Code.primrec_agreementRestraint, and their specializationsTauCeti.Oracle.Single.Code.primrec_agreementLength_equivBitIndices,TauCeti.Oracle.Single.Code.primrec_agreementRestraint_equivBitIndicesto binary-coded finite sets: the length of agreement and the restraint are primitive recursive.TauCeti.Oracle.Single.Code.eventually_le_agreementLength_of_eval_eq: if, relative to the limit of monotone stagesA, the program computes the limit of monotone stagesCbelown, then the length of agreement against the stages is eventually at leastn.
References #
- R. I. Soare, Recursively Enumerable Sets and Degrees, Springer, 1987, Chapter VII.3, in
particular the definitions of
ℓ(e, s)andr(e, s)and the Remark on p. 122.
Agreement and its length #
The agreement restraint #
The agreement restraint: the largest stage use of the runs of c with fuel k against
the answers σ at the arguments up to and including the length of agreement with g. A failed
run counts as use 0.
Instances For
Equal agreement lengths and equal runs up to and including that length give equal agreement restraints. The targets may differ.
The use of a successful run up to and including the length of agreement is at most the agreement restraint.
Preservation #
Preservation of computations. A successful run at an argument up to and including the
length of agreement succeeds with the same output and use at any larger fuel, against any answers
that agree with σ at and below the agreement restraint. Nothing is assumed about the target.
Preservation of agreement. Under the hypotheses of
evaln_eq_some_of_eqOn_agreementRestraint, agreement below the length of agreement persists when
the target value there does not change.
The length of agreement does not decrease when the fuel does not decrease, the answers do not change at or below the agreement restraint, and the target does not change below the length of agreement.
Under the hypotheses of agreementLength_le_of_eqOn_agreementRestraint, the agreement
restraint does not decrease either: every run it accounts for is preserved, at an argument still
up to and including the new length of agreement.
Preservation along an interval of stages #
Along stages σ u, g u run with fuel u, the length of agreement does not decrease on an
interval of stages where, at every step, the answers do not change at or below the agreement
restraint and the target does not change below the length of agreement.
Under the hypotheses of agreementLength_le_of_forall_Ico, the agreement restraint does not
decrease on the interval.
Persistence of a prefix of agreement. Along stages σ u, g u run with fuel u, if the
run agrees with the target below n at stage s, it still does at stage t, provided that at
every step in between the answers do not change at or below the agreement restraint and the target
does not change below n. The target may change at and above n.
Preservation on an interval of stages, below a fixed prefix. Under the hypotheses of
le_agreementLength_of_forall_Ico, a successful run at stage s at an argument up to and
including n is a successful run at stage t, with the same output and use.
Preservation on an interval of stages. Under the hypotheses of
agreementLength_le_of_forall_Ico, a successful run at stage s at an argument up to and
including the length of agreement is a successful run at stage t, with the same output and
use.
Primitive recursiveness #
Agreement is primitive recursive, uniformly in a parameter a on which the answers σ a and
the target g a depend primitive recursively, and in the fuel, the program and the argument.
The length of agreement is primitive recursive, uniformly in a parameter a on which the
answers σ a and the target g a depend primitive recursively, and in the fuel and the
program.
The agreement restraint is primitive recursive, uniformly in a parameter a on which the
answers σ a and the target g a depend primitive recursively, and in the fuel and the
program.
The length of agreement of a run against a finite set, with a finite set as target, is primitive recursive in their binary codes, the fuel and the program.
The agreement restraint of a run against a finite set, with a finite set as target, is primitive recursive in their binary codes, the fuel and the program.
Limits of stages #
Agreement eventually covers every prefix. If the program c, relative to the limit of
monotone stages A, computes the characteristic function of the limit of monotone stages C below
n, then the length of agreement of c against A s with target C s and fuel s is eventually
at least n.