Four compulsory written papers and practical assessment.
The initial table of content was limited to the first level because it is larger than 1000 articles. There are 2433 articles in total. Expand a branch to load its children.
Solutions to all eight questions of the Oxford Preliminary Examination held on 15 June 2023. Source release: released examination archive, member 2022/T/a10101w1.pdf. The cover identifies Trinity Term 2023. The three section headings and all question labels below follow this historical paper; its grouping is independent of subsequent course changes. Although candidates were asked to attempt at most five questions, every marked subpart is solved here.
In 8(b), the source's parenthetical definition describes a dominating set, while its name suggests a vertex cover. Both readings are treated explicitly. In 8(c)–(d), we make the scopes of the printed quantifiers explicit; in particular, the opening universal quantifiers in 8(c) govern both irreflexivity and transitivity. As usual in first-order logic, domains are nonempty, and graphs are finite simple graphs unless an infinite domain is specified.
Write an -bit binary string as , where each and is most significant. Its unsigned interpretation and two's complement interpretation are
Equivalently, . The ranges are through and through , respectively. The same stored bits can therefore denote different integers depending on the chosen interpretation.
A logical right shift by moves into position and fills the high positions with zero. Its unsigned interpretation is
Meanwhile the original unsigned interpretation decomposes as
By integer division, , exactly the unsigned quotient. Thus the source instruction puts the required quotient into r1. This is a proof from binary representation, rather than an assumption that every kind of right shift implements every kind of division. The displayed bit argument applies to , with endpoint operations implemented as a copy or zero where appropriate.
For a 32-bit machine word and , use a left bit shift followed by a logical right shift:
lsls r1, r0, #(32-k)
lsrs r1, r1, #(32-k)
The left shift discards all but the lowest bits and moves those retained bits to the top. The logical right shift returns them to their original positions and fills the rest with zero. Hence r1 contains , the remainder identified in (b). For the remainder is zero; for it is , so these endpoints can be handled directly.
On a reduced instruction set computer, a bit mask such as may not fit an instruction's immediate field. Masking may therefore require materializing the constant in another processor register, possibly using several instructions or a memory load. Small shift counts are directly encodable, so the two shifts can save code space, a temporary processor register, or a load. This is an architecture-dependent advantage, rather than a universal speed claim. The source's compact instruction forms support these immediate shifts, while their bitwise AND form takes its other operand from a processor register.[ref]
Let , let , and let denote the least nonnegative residue. Here is a signed 32-bit two's complement value. The source instructions, annotated with their derived values, are:
rem1024:
    asrs r3, r0, #31    // r3 = -s: all zero bits or all one bits
    lsrs r3, r3, #22    // r3 = b = 1023*s
    adds r0, r0, r3     // r0 = a+b
    lsls r0, r0, #22    // r0 has word value (a+b)*2^22 modulo 2^32
    lsrs r0, r0, #22    // r0 = u = (a+b) modulo 1024, in 0,...,1023
    subs r0, r0, r3     // r0 = u-b
    bx lr              // return u-b
The first instruction is an arithmetic right shift, so it replicates the sign bit. The second is a logical right shift, turning the all-one word into . The paired shifts then extract the low ten bits, as in (c). Their effect is the residue of even if its two's complement interpretation is negative, because divides the word modulus . The adjusted value is representable for every input: positive inputs are unchanged, and negative inputs gain only .
For , , so the return value is the usual nonnegative remainder . For , put as a mathematical integer, and write with . If , then and the return value is zero. If , then
These are precisely the remainders for C integer division, whose quotient truncates towards zero. In every case the result has the dividend's sign or is zero, has magnitude below , and satisfies . The proof includes the smallest representable input: was used only in mathematical reasoning, not as an overflowing machine operation.[ref]
Use the same bias, then an arithmetic right shift by ten:
div1024:
    asrs r3, r0, #31    // -1 when a<0, otherwise 0
    lsrs r3, r3, #22    // b = 1023 when a<0, otherwise 0
    adds r0, r0, r3     // a+b, representable for every signed input
    asrs r0, r0, #10    // floor((a+b)/1024)
    bx lr
An arithmetic right shift of a two's complement integer computes division rounded down. For , this already equals truncation towards zero. For , the signed power-of-two division by biasing identity is
Indeed, writing with makes the adjusted numerator ; its quotient rounded down is for every , including zero. Thus the code returns the signed quotient in all cases and contains no data-dependent branch. The final bx lr simply returns to the caller.
Use a message-passing mutual exclusion server with an owner field and a FIFO queue. A request includes its client's identity. The server handles one received message at a time, and a client has at most one outstanding request. The following pseudocode assumes reliable message passing and compliant clients:
owner = NONE
waiting = empty FIFO queue

forever:
    (kind, client) = receive_from_any_client()
    if kind == REQUEST:
        waiting.push_back(client)
    else if kind == RELEASE:
        assert client == owner
        owner = NONE

    if owner == NONE and not waiting.empty():
        owner = waiting.pop_front()
        send(owner, GRANT)
A client sends REQUEST, waits for GRANT, runs its complete animation, and sends RELEASE before making another request.
The invariant proving mutual exclusion is: at most one client has received an unreturned grant, and that client is owner. Only the final block issues a grant, and it first requires no current owner. A valid release removes that ownership. Since clients use the display only while holding a grant, simultaneous use is impossible. The FIFO queue prevents accepted requests from being overtaken by later ones. With eventual message delivery, continued server execution, and finite animations, each accepted request is eventually served; these progress assumptions are separate from the safety invariant.
Use two FIFO queues, one for each priority class, and perform nonpreemptive strict-priority arbitration whenever the display becomes free:
owner = NONE
ordinary = empty FIFO queue
urgent = empty FIFO queue

forever:
    message = receive_from_any_client()
    if message.kind == REQUEST:
        assert message.priority in {0, 1}
        if message.priority == 1:
            urgent.push_back(message.client)
        else:
            ordinary.push_back(message.client)
    else if message.kind == RELEASE:
        assert message.client == owner
        owner = NONE

    if owner == NONE:
        if not urgent.empty():
            owner = urgent.pop_front()
        else if not ordinary.empty():
            owner = ordinary.pop_front()
        if owner != NONE:
            send(owner, GRANT)
The same ownership invariant proves mutual exclusion. Among requests already accepted by the server, every pending urgent request takes precedence over every ordinary one. Each class retains its own arrival order. A newly received urgent request goes ahead of waiting ordinary requests but waits for the current animation's RELEASE; the given protocol has no interruption or revocation operation.
This is strict priority at dispatch, based on requests the server has received. Requests still in transit cannot influence a decision. If the transport provides a mailbox-draining operation, the server may also collect all currently delivered requests before dispatching; the two-FIFO queue selection rule remains the same.
Strict priority does not guarantee starvation freedom for ordinary clients under an endless supply of urgent work. If urgent traffic eventually stops, accepted requests have only finitely many earlier requests, and all service times are finite, every pending ordinary request is eventually granted. Guaranteeing ordinary progress under unlimited urgent traffic would require a different fairness policy, such as limiting consecutive urgent grants; that would relax strict priority.
A LIFO stack can make waiting clients starve. Suppose client waits at the bottom of the stack. Before each current owner releases, a fresh client submits a request. That newest request is pushed above and is selected next. Every animation can finish promptly while waits forever.
This is LIFO starvation: service completion alone does not ensure starvation freedom. A FIFO queue prevents newer same-priority requests from passing , whereas replacing either priority-class FIFO queue by a LIFO stack adds this problem even within one priority class. Strict priority can already starve ordinary work, as in (b); the LIFO stack introduces a further unfairness that can also affect urgent work.
Use a three-sample run detector. Just before clock edge , let two stored bits and hold the input values at edges and . Initialise both to zero. With input , define
Primes denote the next stored state, with all assignments simultaneous at the clock edge. The output is the logical conjunction of the present input and its two preceding samples. By induction on clock edges, the stated interpretation of is maintained, proving the required behaviour. Two bits of state suffice.
Store two bits: the output , initially zero, and an armed bit , initially one. Define the synchronous sequential circuit by
Here is exclusive or, and the input restriction excludes conflicting commands. The output is the current stored .
When armed, a sampled toggles and clears . Further samples leave the output unchanged. A sampled sets without changing , allowing a later to toggle it again. The same clock edge cannot both rearm and trigger because are never simultaneously high. Thus the first toggles from zero to one, and subsequent toggles each require a new followed by a later .
Share the input-history bits of (a) between a high-run detector and a low-run detector. With the two preceding input samples, put
These detector outputs are mutually exclusive. Feed them into (b). An explicit four-bit synchronous sequential circuit, with initial state , is
Every right-hand side uses the old state and the current input. In particular, the run detectors' combinational outputs are sampled by the toggle module at that same edge; there is no extra pipeline stage.
The first three consecutive high samples make at the third edge, toggling and clearing . Continuing high input cannot toggle it again. Only three consecutive low samples can make and rearm it; interrupted low runs do not suffice. After rearming, a new three-sample high run produces the next toggle. This proves the debounced toggle switch behaviour, including rejection of short high and low disturbances.
Figure 1.
The debounced toggle switch rejects interrupted runs, toggles on the third consecutive high sample, and rearms only on the third consecutive low sample; stored outputs are shown just after each clock edge
. Details.
Four state bits are necessary and sufficient. For each output value, distinguish three armed situations, remembering a trailing high run of length , and three disarmed situations, remembering a trailing low run of length . Thus a direct minimal behavioural description has
All twelve situations are reachable. Different output values are immediately distinguishable. Within an armed group, a suitable number of high samples distinguishes the three run lengths by when the next toggle occurs. Within a disarmed group, a suitable number of low samples followed by three highs distinguishes the three rearming distances. An armed situation and a disarmed situation of the same output value are distinguished by an all-high continuation: the armed one eventually toggles and the disarmed one does not. Hence these twelve situations cannot be merged in a finite-state machine implementing the specification.
The shared-history design in (c) uses four bits, meeting this lower bound. Its sixteen encoded states have some behaviourally equivalent histories, so its encoding need not use only twelve combinations. Building two separate copies of (a) plus the two-bit module (b) would use six state-bearing elements; sharing the input history saves two.
The columns of form a basis of , so that null space has dimension . The rank-nullity theorem applied to gives . A matrix and its transpose have equal matrix rank, hence
If , the vector belongs to the null space for which the columns of are a basis. It is therefore a linear combination of those columns, so for some . Conversely, each column is annihilated by , hence and implies . Thus
The coordinate vector is unique because the columns of are linearly independent.
The analogous null space statement is
Here the rank-nullity theorem and (a) ensure that also has dimension .
The columnwise null space conditions say and . Therefore
Both right-hand sides are the zero matrix.
Both and have linearly independent columns. The Gram matrix is invertible because
Consequently is a surjective linear map: for any , the choice satisfies . Hence
The latter image of a linear map has dimension , giving . If , and the conclusion is immediate. This argument explains why the product retains its full possible matrix rank; a general product of two matrices need not do so.
Expand the product and use (d) together with its transpose:
Indeed and .
Fix one common eigenvector , and write and . By (d),
so and at least one of the two eigenvalues is zero.
To exclude both being zero, use the kernel of a Gram product identity:
If both products annihilate , then . By (b), , and by (e), this is . On the other hand, makes orthogonal to every vector in . In particular is orthogonal to itself, so and , a contradiction.
Therefore each specified common eigenvector belongs to exactly one of and . Both eigenvalues are nonnegative by the displayed squared-norm identities, so the other eigenvalue is strictly positive. This is the spectral mechanism behind orthogonal null-space completion of a square matrix.
Take and the linear map . Then
These two vector subspaces have zero intersection and together span , so as a direct sum of vector spaces.
Take and the linear map . Then
Their intersection is nonzero and their sum is only one-dimensional. Hence . This nilpotent linear map has , illustrating why taking sufficiently high powers changes the situation.
For , choose with . Thus , proving
This is the decreasing-image part of stabilization of images of powers of a linear map. The convention includes and .
Apply to both sides of . Because , we obtain . Repeating this argument proves equality at every later step. More formally, an induction on gives
The base case is ; the induction step follows from applying the linear map and then the assumed first equality. Thus one equality permanently stabilizes the descending sequence of images of a linear map.
The dimensions of the nested images of a linear map
can strictly decrease at most times. If all the first inclusions are strict, and is stable. Otherwise an earlier equality occurs and (d) makes every subsequent image equal. Thus in all cases
By the rank-nullity theorem and inclusion of the null spaces, this also gives . If , write . Then , so and . Hence the intersection is zero. Finally the rank-nullity theorem gives
Zero intersection and this dimension sum prove
This is the finite-dimensional Fitting decomposition. It includes the zero-dimensional case, for which and the assertion is immediate.
Let denote a matrix unit, with its only nonzero entry equal to one in row , column . A basis for the vector space of real skew-symmetric matrices is
Each upper-triangular entry is free, its reflected lower-triangular entry is its negative, and every diagonal entry is zero. This is the basis of the space of real skew-symmetric matrices.
Using linearity and involutivity of the matrix transpose,
Therefore is a skew-symmetric matrix.
Split into its symmetric part and skew-symmetric part:
Taking the transpose gives and . Thus is a symmetric matrix and a skew-symmetric matrix. These formulas also show uniqueness, since a real matrix that is both symmetric and skew-symmetric is zero.
If , then the dot product satisfies
Conversely, the assumed dot product identity gives for every . Take and from the standard basis: every entry of is zero. Hence , proving the equivalence.
If is a skew-symmetric matrix, the scalar equals its own transpose, so
and it is zero over the real numbers.
Conversely, suppose the quadratic form vanishes for every real vector. Substituting gives . Substituting gives for . Therefore . This proves the quadratic-form criterion for a skew-symmetric matrix:
For a real eigenvalue , choose a nonzero real eigenvector with . By (e),
Since , . If eigenvectors were initially allowed to be complex, the real matrix has a nonzero real null space whenever it has a nonzero complex null space, so this choice of remains justified.
The determinant is invariant under transpose, while multiplying all rows by multiplies it by . Thus, for odd integer ,
Over the real numbers, this forces , so is a singular matrix. This is the odd-dimensional skew-symmetric singularity theorem.
If , take its dot product with and apply (e):
Hence . A square matrix with zero null space is an invertible matrix by the rank-nullity theorem. Therefore is nonsingular. This proves invertibility of identity plus a real skew-symmetric matrix.
Use and for false and true truth values. The truth table is:
The two satisfying rows with combine by eliminating , while the remaining satisfying row has . An equivalent disjunctive normal form is therefore
Expanding the logical biconditional into its two implications, and using , gives the conjunctive normal form
Each form has exactly the same three satisfying assignments as the original propositional formula.
Apply structural induction to the formation of a propositional formula. Let and count its opening and closing parentheses, and use the usual grammar generated by propositional variables, any allowed truth constants, negation, and parenthesized binary logical connectives.
An atomic variable or truth constant contains neither kind of parenthesis, so . If , prefixing negation leaves both counts unchanged. If the notation writes a negated formula with an extra pair of parentheses, it adds one to each and still preserves equality.
For a binary construction , where is an allowed binary logical connective,
The two induction hypotheses make these equal. Every grammar construction preserves the property, so every propositional formula contains equally many left and right parentheses. This is balanced parentheses in propositional syntax.
Apply the propositional substitution simultaneously to the atomic variables:
By distributivity and the complementary literals ,
The other disjunct simplifies using logical implication and absorption:
Thus , a tautology.
Interpret as the bits of a binary number, with most significant. Construct a propositional formula saying that this number is strictly less than . This gives a quadratic-size formula with prescribed model count.
For , write . For each with , define the conjunction
The empty prefix for is omitted. Let . A Boolean valuation satisfies exactly when its first difference from the binary representation of is at position , changing a one of to a zero. All later bits are unrestricted. Hence these cases are disjoint and cover exactly the numbers .
Alternatively, counting the disjoint cases directly gives
Each has length , including its logical connectives and parentheses; the total length is at most a constant multiple of . The endpoints are and . If constants are unavailable and , use and instead. Assignments are counted over all specified variables, including any absent from the formula. For , the constants describe the two possible counts, zero and one. Thus the construction covers , including the endpoint zero despite the source's word “positive”.
For example, gives the disjoint cases , and , with satisfying assignments.
Figure 1.
A quadratic-size formula with prescribed model count accepts the eleven four-bit numbers below : three disjoint prefix cases contribute , and satisfying assignments
. Details.
Keep the premise open. Assume , then temporarily assume . Two applications of the implication elimination rule produce and then , contradicting the temporary . Discharge using the negation introduction rule, then discharge using the implication introduction rule.
This natural deduction proof uses only the supplied introduction and elimination rules. Line 6 is an application of the negation elimination rule; no classical contradiction principle is needed.
The nonempty simple graphs having an independent vertex cover of size at most two. The witnesses select the cover. The clause makes the selected vertices nonadjacent; the universal clause forbids every edge whose two endpoints both lie outside the selected set.
The witnesses need not be distinct, so a one-vertex cover is permitted by choosing . A nonempty edgeless graph also satisfies the formula. The empty graph does not, because the existential quantifiers have no witnesses. Here independent vertex cover has its standard vertex cover meaning; 8(b)'s differing parenthetical definition is addressed separately below.
The source's explicit parenthetical condition is domination: every unselected vertex has a neighbour in the selected set. Together with independence this defines an independent dominating set. A first-order sentence expressing that definition with size at most three is
The finite conjunctions and disjunctions abbreviate three explicitly fixed terms, so this is a first-order formula. Repeated witnesses allow one- or two-element choices; the first conjunction enforces independence only between distinct selected vertices. The last clause says that every vertex is selected or adjacent to a selected vertex. With the usual nonempty-domain convention, any such choice has size at least one, so repeated witnesses cover all possibilities of size at most three.
For the standard meaning of independent vertex cover, replace the domination clause by
This instead demands that every edge has a selected endpoint. These interpretations differ: in a triangle in a graph, any singleton is an independent dominating set, but no independent vertex cover exists. Giving both clauses avoids silently treating the source's two definitions as equivalent.
Read the initial universal quantifiers as governing the conjunction of irreflexivity and transitivity. Explicitly, the intended first-order sentence asserts
Thus is an irreflexive relation, a transitive relation, and a serial relation.
Suppose a first-order model had a finite nonempty domain of cardinality . Choose . Seriality supplies successive elements with . By the pigeonhole principle, for some . Repeated transitivity along that part of the chain gives , contradicting irreflexivity. Hence there is no finite nonempty model. This is the infinite-model property of a serial strict partial order.
An infinite model exists: take domain and to mean . It is irreflexive and transitive, and witnesses seriality for every .
The quantifier-scope convention matters: giving each printed universal quantifier only the immediately following atomic scope would leave the transitivity implication with free variables and would not express the claimed theorem. The explicit parenthesisation above records the reading under which the source's requested assertion is valid.
Use broad scope up to the enclosing parenthesis, consistent with (c). Thus the first conjunct is read as
is not free for substitution for . The free occurrence of in lies under ; inserting there would capture its . Rename that bound variable to a fresh first, using alpha equivalence. The capture-avoiding first-order substitution is then
Every occurrence of in the original formula is free, so all four are replaced. The variable introduced by the term remains free, and the final is unchanged.
Under the same scope convention, is not free for substitution for . The occurrence of inside is free but lies under , so its replacement would capture the new . Rename this binder to fresh . Substitute only for the free occurrences in the first conjunct:
The two occurrences of in the final conjunct are bound variables and remain unchanged. The inserted remain free.
If instead one gives the printed only the scope , this part's free-for-substitution answer becomes yes, because neither free occurrence then lies under that binder. Under that alternative parsing, the result is explicitly
The narrower reading does not change the negative answer in (1): its occurrence of inside still requires renaming that binder before substitution. The broad-scope answers above give a single consistent parsing across the paper.
Articles were limited to the first 100 out of 2433 total.

Articles by others on the same topic (0)

There are currently no matching articles.