Books / Constructions / Chapter 13
Part IV · Chapter 13
As of Which Date?
Contents of Constructions
In the previous chapter we found the edition and the saved text. But a rule taken from that text may apply only within a particular interval. The same question can get different answers before and after a definition changes.
Take the kilogram. In the 8th edition of the SI Brochure the kilogram is defined through the mass of the international prototype. The new definition, built on the fixed value of the Planck constant, took effect on 20 May 2019. Imagine asking from one fixed later moment which definition applied on the day before that date and on the day of the change itself. The moment at which we ask stays the same; the date we ask about changes[^chapter-13-si].
Dates and moments in time
The case context already gave us three time fields. Read them one by one:
| Field | What it specifies |
|---|---|
legal_time |
The date for checking which rules and editions apply |
knowledge_time |
The cutoff time for information available to the calculation |
decision_time |
The time of the decision represented in the context |
Despite the name legal_time, this example concerns the definition
of a unit of measurement. The field specifies the date for checking
which editions and rules apply; it is not confined to legal texts.
In our examples legal_time is a calendar date:
@2019-05-19. The other two fields hold a moment, for example
@2026-09-08T12:00:00Z. After the T come hours, minutes, and
seconds; Z denotes UTC. A calendar day and a moment
inside that day are different values.
We will first change legal_time while holding the other fields
fixed. Then we will return to the payment example and change
knowledge_time to see when a verification becomes available.
One definition on both sides of the boundary
The SI package has two relations for our question.
defined_by_reference links the unit to a physical artefact;
defined_by_constant links it to a defining constant. The names
Kilogram, InternationalPrototypeKilogram, and
PlanckConstant are already declared in the vocabulary.
Start with the prototype question. Take a copy of scenario 01a
and hold decision_time and knowledge_time at 8 September 2026.
Set legal_time, the date we are asking as of, to 19 May 2019:
test "urn:query:si-book-prototype-before" {
given {
context {
decision_time @2026-09-08T12:00:00Z;
knowledge_time @2026-09-08T12:00:00Z;
legal_time @2019-05-19;
timezone "UTC";
}
}
evaluate truth(defined_by_reference(Kilogram, InternationalPrototypeKilogram));
expect truth_status == TRUE_ONLY;
expect evaluation_status == COMPUTED;
expect applied(KilogramByInternationalPrototype);
}
given carries no extra assertions. The needed information
already sits in the package, in the table of base units. Here is
its kilogram row:
assert base_unit(Kilogram, Mass, "kg") { id "t2-kg"; }
It links the kilogram to mass and the symbol kg. On 19 May
the rule KilogramByInternationalPrototype applies and
supports the TRUE_ONLY answer. The applied(...) expectation
checks that application.
Now change only legal_time in the copy:
context {
decision_time @2026-09-08T12:00:00Z;
knowledge_time @2026-09-08T12:00:00Z;
legal_time @2019-05-20;
timezone "UTC";
}
The question, the program, and the available information
stay the same. Yet on 20 May the prototype answer becomes
NEITHER. The old expectations then fail in two places:
there is no positive answer and no application of the rule.
This is not a failed calculation: its status stays COMPUTED.
This does not claim the prototype’s mass changed or the
kilogram ceased to exist. We asked whether the unit is
defined through that artefact as of the chosen date. The ground
for such a conclusion no longer holds. The example has no separate
negative rule, so the result is NEITHER, not FALSE_ONLY.
The edition’s interval
See where the time boundary is written. The package keeps the English texts of two editions:
edition SI_BROCHURE_8_EN of SI_BROCHURE {
label en official "The International System of Units (SI), 8th edition, 2006 — English text of the bilingual edition";
label ru unofficial "8-е издание (2006), английская часть двуязычного издания";
language en;
officiality official;
adopted @2006-01-01;
in_force [@2006-01-01, @2019-05-20);
materialization_status PINNED_UNOFFICIAL_COPY;
}
edition SI_BROCHURE_9_EN of SI_BROCHURE {
label en official "The International System of Units (SI), 9th edition, 2019, version 4.01";
label ru unofficial "9-е издание (2019), версия 4.01, английский текст";
language en;
officiality official;
adopted @2018-11-16;
in_force [@2019-05-20, infinity);
materialization_status PINNED_UNOFFICIAL_COPY;
}
In in_force the left square bracket includes the start;
the closing parenthesis excludes the end. So the
eighth edition’s interval ends before 20 May. The ninth
edition’s interval starts that day; infinity means
no set end. On the boundary itself the intervals do
not overlap.
adopted and in_force do different jobs: a change can be
adopted before it takes effect. The saved Brochure reports
agreement in November 2018 and effect from 20 May 2019. For
our question the second date matters.
Distinguish the dates assigned by the model from the dates
reported by the publication. @2006-01-01 on the eighth edition does not
show that the Brochure appeared on 1 January. And the saved version
4.01 of the ninth edition contains later updates: its interval
does not mean all that text already existed in May 2019.
Here we check only the kilogram definition’s boundary.

The rule’s interval
The prototype rule also carries a time boundary:
@source(SI8_DEF_KILOGRAM)
rule KilogramByInternationalPrototype strict {
label en official "8th ed., §2.1.1.2: the kilogram is equal to the mass of the international prototype of the kilogram (until 20 May 2019)";
label ru unofficial "8-е изд., §2.1.1.2: килограмм равен массе международного прототипа килограмма (до 20 мая 2019)";
for q: BaseQuantity;
for s: Text;
when base_unit(Kilogram, q, s);
then defined_by_reference(Kilogram, InternationalPrototypeKilogram);
effective [-infinity, @2019-05-20);
}
The new effective line sets this rule’s applicability
interval. The left -infinity leaves its start open;
the right boundary excludes 20 May 2019. The link to the
source’s edition still holds: that open start does not automatically make the rule
applicable before the edition’s own
interval[^chapter-13-applicability].
The new definition’s rule mirrors it:
@source(SI9_DEF_KILOGRAM, SI9_APP1_2018_INDEX)
rule KilogramByPlanckConstant strict {
label en official "§2.3.1: the kilogram is defined by taking the Planck constant h to be 6.626 070 15 × 10^−34 J s (from 20 May 2019)";
label ru unofficial "§2.3.1: килограмм определён фиксацией постоянной Планка h = 6,626 070 15 × 10^−34 Дж·с (с 20 мая 2019)";
for q: BaseQuantity;
for s: Text;
when base_unit(Kilogram, q, s);
then defined_by_constant(Kilogram, PlanckConstant);
effective [@2019-05-20, infinity);
}
In both rules, base_unit(Kilogram, q, s) finds the
familiar table row. The conclusion, the source, and the time
interval differ. The date tells us which ground applies;
it changes nothing about the constant or
the artefact.
Check both questions on both dates:
| Applicability date | Through the international prototype | Through the Planck constant |
|---|---|---|
| 19 May 2019 | TRUE_ONLY |
NEITHER |
| 20 May 2019 | NEITHER |
TRUE_ONLY |
All four results carry the COMPUTED status. These are answers
to two different relations, not positive and negative
support for one claim. So the neighbouring definition alone
does not turn NEITHER into FALSE_ONLY.
Checking and explaining the boundary
The companion’s SI package already includes its pinned unit definitions.
Make a working copy for the date experiments, starting in reader/:
mkdir si-study
cp -R corpus/laws/org/bipm/si-brochure/. si-study
Run the file containing the four kilogram-redefinition scenarios:
law test si-study --file tests/01-kilogram-redefinition.lawtest
--file selects this scenario file from the package’s declared checks.
The four original scenarios should pass. In them the other time fields
change together with the applicability date. The copies above separate them,
isolating the effect of legal_time.
For your own experiment, edit the copy at
si-study/tests/01-kilogram-redefinition.lawtest. Keep the header and one test,
then change the named time field and run the same command again.
To examine why a definition gives no support, use the question preparer from
Chapter 4 on that single-test copy, with the companion’s SI program and
contexts/bipm-si-brochure.json. Run law engine why-not on the prepared question.
For the prototype on 20 May, the explanation names
KilogramByInternationalPrototype and the SI_BROCHURE_8_EN edition,
closed as of that date. For the Planck-constant question on 19 May,
it points at SI_BROCHURE_9_EN: that edition has not yet taken effect.
The base-unit premise is not refuted here. The reason lies in
the source’s applicability. A rule outside its applicability interval
differs from a rule missing a premise, even when both
yield the same NEITHER.
When the information became available
Now keep the applicability date and change
another field. Return to the purchase from Chapter 11.
In the right-payment scenario the verification of the B92
bank confirmation reads:
verification VB92 {
evidence B92;
document_hash "sha256:9292929292929292929292929292929292929292929292929292929292929292";
verifier "urn:demo:verifier:audit-desk";
outcome verified;
recorded @2026-02-10T10:00:03Z;
}
Its result was recorded on 10 February 2026 at 10:00:03 UTC. Take the purchase information as of 6 February and keep the decision moment at 1 March. For the first copy set this context:
context {
legal_time @2026-02-06;
decision_time @2026-03-01T00:00:00Z;
knowledge_time @2026-02-10T10:00:02Z;
timezone "UTC";
evidence_policy ExpenseEvidenceV1;
}
Document B92 is already available and valid on the chosen
date, but its verification is recorded one second later. The
policy cannot use that result yet[^chapter-13-knowledge].
Payment and reimbursement both receive NEITHER.
Now change only knowledge_time to
@2026-02-10T10:00:03Z. The verification record is available, the
support is accepted, and both answers become TRUE_ONLY. The
payment itself does not happen again: what changes is the body of
information available when answering about that purchase.
For this pair use the right-payment copy from the previous
chapter and its program
packs/demo/expense-evidence/clir/expense-evidence.lawir.json.
The SI vocabulary plays no part here.
These are two different changes. In the kilogram question,
legal_time changed while the available materials stayed the
same. In the payment question, knowledge_time changed while
the case date stayed the same. The verification’s recorded time
remained fixed; the later cutoff made that record available.
In these experiments decision_time remains the stated time of the decision.
It cannot automatically stand in for the other two fields. Nor
must the context match the computer’s clock at
launch: we reproduce a stated situation.
Try separating the time fields
- In the prototype-question copy keep
legal_timeat 19 May 2019 and moveknowledge_timefrom 8 to 7 September- Then, in a separate copy, move only
decision_timeto 9 September. Why does the answer stayTRUE_ONLYin both cases?
- Then, in a separate copy, move only
- Ask about the Planck constant on 19 and 20 May, keeping the
other fields the same. Find the first answer’s
reason in
why-notand the rule’s application for the second inexplain. - In the purchase case compare the knowledge moments 10:00:02
and 10:00:03. Check
paidfirst, thenreimbursable. Find the entry that became available between the two calculations. - Find the French-language version of the ninth edition of the SI Brochure. Compare its language and interval with the English one. Why does the language difference alone not call for another effective date of the definition?
We can revisit an earlier date while keeping the stated body of knowledge. But time does not settle every disagreement about meaning. If one text admits different readings, name them and consider each separately. That is the next chapter’s subject.
[^chapter-13-si]: Resolution 1 of the 26th CGPM (2018) sets the start of the new SI’s effect from 20 May 2019. The definitions are kept in the 8th edition, §2.1.1.2 and the 9th edition, §2.3.1. [^chapter-13-applicability]: The Arxo specification, §89 — context, §92 — edition applicability. In the example the intervals of the editions and the rules are reconciled; the result does not isolate the effect of only one of these constraints. [^chapter-13-knowledge]: The Arxo specification, §78.2.3 — policy inputs and verification availability. In the right-payment scenario entry VB92 has recorded 10.02.2026, 10:00:03 UTC; in the experiment only the knowledge moment changes.
Contents · PDF · EPUB · Original text under CC BY 4.0 · Source-material terms