Part Three. The proof is not the truth. Chapter twelve.
A Computed Obligation, an Unfinished Dispute

Contents of Canons
- Withdrawal of all foreign armed formations, military equipment, as well as mercenaries from the territory of Ukraine under monitoring of the OSCE. Disarmament of all illegal groups. Package of Measures for the Implementation of the Minsk Agreements, 12 February 2015 (translation from the Russian text)
The last case in this book is a document of thirteen points, signed in Minsk on the twelfth of February 2015 by the members of a contact group and attached, five days later, to a resolution of the United Nations Security Council. It is short. You can read it in ten minutes. Its second point is arithmetic, its tenth point raises a consequential question of interpretation, and the distance between the two is where this chapter lives.
One rule before anything else. Nothing in this chapter says what happened in eastern Ukraine after February 2015. The model holds the text of the document and nothing about the world; the two courses of events I will run through it were written by the modeller as constructions, not as history, and the model keeps every disputed fact outside itself. That is a choice, made in the package’s own header, and I am repeating it here so that no sentence below can be read as a claim about the ground.
A distance you can compute
Point two orders both sides to pull heavy weapons back to equal distances, to create a security zone: fifty kilometres wide for artillery of caliber one hundred millimetres and more, seventy for multiple rocket launchers, a hundred and forty for four named long-range systems.
Here is the reader’s question. A howitzer of exactly one hundred millimetres. Which zone? And a gun of ninety-nine?
The machine says fifty for the first and, for the second, nothing. Not zero kilometres. No zone, no duty to withdraw it, no answer, because the document’s definition of heavy weapons begins at a hundred and the gun is not in it. The modeller could have written a fourth row for “everything else” with a distance of zero, and refused, with a reason: the document names no such distance, and a zero would be a fact invented to make the table look complete.
What the table does contain is four rows, and the machine proves two things about them before it uses them: that no two rows can fire on the same weapon, and that together they cover every weapon the document calls heavy. Not “the author checked”. Proved, with an error code for each way it could fail. The distances then come out of the rows as conclusions: fifty, seventy, a hundred and forty, a hundred and forty. Each is a computed obligation in the strict sense. Give the machine a weapon’s class and it gives you the number the document assigns, with the row it came from.
The dates are computed too. Withdrawal must begin no later than the second day after the ceasefire, and the document sets the ceasefire at midnight Kyiv time on the fifteenth, so the second day is the seventeenth. The record checks both sides of that edge: the seventeenth is in time, the eighteenth is not. The other deadlines in the document, fourteen days to finish the withdrawal, five days to the exchange of prisoners, thirty days to a parliamentary resolution, the end of 2015 for the constitutional reform, were computed and checked the same way, because a one-day error in a deadline is invisible in prose and glaring in a table.
One boundary the machine draws here is worth pausing on. A window that has closed does not, by itself, make a violation. Ask on the second of January 2016 whether the reform obligation was violated, and with no fact about performance either way the answer is “undetermined”. Add the fact that it was not performed, and the answer is “violated”. The machine will not infer a breach from the calendar alone. That is the rule from chapter five, and it holds for treaties as it held for chess.
A sequence nobody wrote down
Now the tenth point.
The document has an order. It says so itself, in three phrases: “from the first day of withdrawal”, “on the first day after withdrawal”, “on the first day after local elections”. From those phrases the modeller laid the document out as a sequence of seven stages, and the machine checked the layout: six transitions, no structural defect, and one honest note that the last stage has no exit, because the document never says what its end is.
Point nine puts the restoration of Ukraine’s control over the border under three conditions: local elections, the constitutional reform of point eleven, agreement with the representatives of the districts. Point ten, the withdrawal of foreign armed formations and the disarmament of illegal groups, is put under no condition and given no deadline. And the document never says whether point ten must be done before the elections or runs beside them.
That question has been argued for years by people with much more at stake than a reader of this book, and I am not going to tell you the answer, because the machine does not have one and was built not to.
What the model does instead is write both readings down. Under the first, security comes first: elections held while foreign armed formations remain on the territory cannot meet the standards the document itself demands in point twelve, so point ten is a condition of the elections. Under the second, the document knows how to state a condition and does so explicitly in points four and nine, so its silence in point ten is a statement, and point ten stands alone. Each reading is marked disputed. Neither is marked right. The package’s own note says that the positions of the parties live in the readings and nowhere else, and that the file exists separately so that the choice cannot be made quietly by adding a clause to some neighbouring rule.
Where the readings part
Two constructed courses of events, then, both written by the modeller as journals. In journal A, everything in the thirteen points is done and done on time, except point ten. Journal B is the same, with two facts added on the day of the elections: the foreign formations withdrawn, the illegal groups disarmed. Point ten done.
Run journal A with no reading chosen. The journal records elections on a date, and the machine says: not established, whether they count as the elections of points nine and twelve. The duty to restore control of the border: not established. Nor is its absence established. The process stops at the stage of dialogue, and the run records three attempted steps that had no legal effect and a finding that the case is stuck short of the end. That is not the model failing. The document does not say when elections may be held, and the model does not decide for it.
Now the reader’s turn. Keep every entry of journal A and change only the reading. Under the literal reading, point ten stands alone and is a condition of nothing. Will the machine now establish the duty to restore control of the border?
It will. The elections count, the duty is established, the process runs to its last stage. Under the security-first reading, with the same journal, the elections do not count, the duty is not established, and the process stops at dialogue, as with no reading at all.
Then journal B, where point ten is done. Under both readings the elections count, the duty is established, the process reaches the end. Without a reading, the duty is again not established: the model still does not know whether these are the elections of point nine, and no journal entry can tell it.
The border-control question fits in six cells.
Synthetic scenarios only. Neither journal represents a finding about events in Ukraine.
| Reading | Journal A: point ten not done | Journal B: point ten done |
|---|---|---|
| none chosen | not established | not established |
| security first | not established | established |
| literal | established | established |
Each of the six journal-and-reading combinations was evaluated against two questions: whether the elections count and whether border control is due. That produces twelve query results. The table reports border control; both implementations agreed on all twelve results. Laid out this way the dispute has a shape it did not have on paper. The two readings diverge in exactly one cell: point ten unperformed. Everywhere else, the zones, the deadlines, the first four stages, the whole of journal B, they say the same thing. The disagreement is not about the whole document. It is about what the document’s silence on the order of point ten means, and the machine has drawn a line around that silence and shown you what stands on each side of it.
What the machine did and did not do
It did not resolve the dispute. It could not: the text supports both readings, and the model’s author declined to decide, and said so.
It did not pretend the dispute was everywhere. Before this run I would have said that a disagreement about sequencing infects the whole document. It does not. It infects two questions and one stage.
It did not accept an order it was not given. Without a chosen reading it answered “not established” and stopped, rather than picking the reading the modeller found more natural. The modeller’s note explains why the machine was not made to demand a reading before answering anything: the package’s hand-written tests cannot pass one, and insisting would have silenced them. That is a limitation of a tool, named as such.
It computed what could be computed and stopped where computation stops. The zones and the dates are the document’s arithmetic, and the machine did the arithmetic in public, on both sides of every threshold. The order of points nine and ten is the document’s silence, and the machine kept the silence, in two declared forms.
And it kept the world out. No fact in the model says what any party did. The journals are the modeller’s constructions, labelled as such, and the one thing the model asserts about the real document is its text, pinned byte for byte from the United Nations copy.
The last line
Every chapter of this book has ended on a boundary, and this is the last one.
A computed obligation is a sentence of the document rewritten as a number with its row attached. An unfinished dispute is a sentence of the document that supports two readings, rewritten as two declared readings with the cases where they part. The machine can do the first and can do the second, and the second is the more useful of the two, because a dispute with a drawn boundary is a dispute you can have without pretending it is about everything.
The machine drew that boundary through the middle of one short document, and it runs between point nine and point ten. What happens on either side of it is not the machine’s to say. It never was.