Carlos Toledo · the visual grammar

WARRANT, the visual layer of evidence

An ordinary chart draws a proof, a floating-point estimate, a guess and a gap with the same line. In WARRANT each has its own stroke, a verdict is a word, and the build refuses a figure that claims more than its record.

0 1/2 1 0 1/4 1/2 3/4 1 5/4 as usually drawn five lines, one ink 0 1/2 1 0 1/4 1/2 3/4 1 5/4 in warrant ∅ refused the segment at x = 1/2 reads 2/3, and (2/3)² = 4/9, not 1/2 enclosure · decided Math.sqrt · computed segments · chosen
0 1/2 1 0 1/4 1/2 3/4 1 5/4 as usually drawn five lines, one ink 0 1/2 1 0 1/2 1 in warrant ∅ the segment at x = 1/2 reads 2/3, and (2/3)² = 4/9, not 1/2 enclosure · decided float · computed segment · chosen
the same numbers, drawn twicey = √x near zero. On the left every line looks alike, and nothing says which one is the proof. On the right each says what it rests on: the enclosure is decided, the float curve computed, the straight segments chosen, and left of zero, where no real root exists, the void is refused. Drawn solid, the segments would claim to be √x; at x = 1/2 that claim breaks ×: (2/3)² = 4/9, not 1/2.
The figure in fullDecided, solid: the enclosure, eight steps of width 1/2, each an integer square root over 64 checked by squaring, its edges moved away from the curve to the next tenth of a pixel; and the knots where √x is exact (0, 1/4, 1, 9/4, 4). Computed, dashed: Math.sqrt at 401 points (all 401 inside the enclosure; comparing two doubles is exact). Chosen, dotted: the straight segments between the knots, one curve of the infinitely many through them, so W.meet(DECIDED, DECIDED, CHOSEN) is chosen. Refused: for x < 0 there is no real root, and nothing is drawn but the void. On the left the same five layers in one ink at one weight, as a default plotting call draws them.
Record: none — y = √x, decided in exact rationals as this page is built.The build refuses this figure if the witness specimen stops breaking its claim (the segment's value at x = 1/2 squares to 1/2).
decided
exact arithmetic backs it
computed
float, or a number someone printed; nothing decided it
chosen
one member of a set the data admits
refused
no mark — the void is drawn
the marks

Four strokes, added one at a time

Every mark has one standing, and each standing one stroke on a line and one underline in text. Here is the hero’s right half again, one standing per frame:

0 1/2 1 0 1/2 1 enclosure exact knot
1 · decided
Solid
An exact decision backs it: an interval enclosure, an exact rational comparison, a proof.
√(1/4) = 1/2
0 1/2 1 0 1/2 1 Math.sqrt
2 · computed
Dashed
Floating point, a solver stopped at a tolerance, a fit, a forecast, a number someone printed. It may be right; nothing decided it.
Math.sqrt(2) = 1.4142135623730951
0 1/2 1 0 1/2 1 segment
3 · chosen
Dotted
One member of a set the data admit, picked by something that is not the data: a tie-break, a default, a window, an interpolation.
the segment at 1/2: 2/3
0 1/2 1 0 1/2 1 ∅
4 · refused
Nothing
The instrument declined or the input is missing. Never bridged, never averaged, never drawn as zero.
√(−1): refused

The weakest on the path wins

The standings are ordered, and a mark takes the weakest standing on its way to the pixel: one float makes it computed, one choice makes it chosen, one refusal leaves the void. Standing is not a confidence: a value known to many decimals can be undecided.

∧ =
A float anywhere on the path: the mark is computed.
∧ =
A choice anywhere on the path: chosen. A straight line between two exact knots is one of many.
∧ =
A refusal anywhere on the path: nothing is drawn, and the void says so.

A verdict is a word

CERTIFIED REFUTED REFUSED PARTIAL NEEDS DATA

A verdict is a word in one shape, everywhere. A stroke never carries a verdict, so a refutation proved here is drawn solid.

HOLDS given h = 3/50

A verdict over a chosen input names the input, in italic: it holds given that choice, and no other.

∅

An empty set is ∅ and a word, never a zero-height bar. The red × is kept for one thing, an exhibited counterexample beside the words that name it: on this page, the hero’s.

how to show data · Charts

Charts you already draw

From here down, the ways this site shows data, by kind: charts, maps, routes and time, fields and images, systems, and text. Each is drawn from one of the instruments, twice where an ordinary version exists, and each ends with the rule that draws it, so the rule can be applied to data of your own.

Five charts of the kinds people draw every day, each twice: as a plotting library draws it, and in WARRANT. Two read a real record; one is computed from its equations as this page is built; two are illustrations, their numbers invented and said so on the figure. The arithmetic on an invention is still exact, so its ties, gaps and counts are decided given it; and no invention carries a red ×, which would be a forged counterexample.

1 · levels with intervals, by category · from a record

A design wave

The usual chart draws a trend with error bars. The spread is two choices, the block and the family: the picked 100-year wave runs from 13.05 m (monthly) to 17.38 m (weekly). The error bars are the only float on the page, and on annual maxima one family has no certified fit, so the choice between them is refused, not drawn.

The rule: Draw each certified level as a knot, an interval from a float method as a dashed whisker, and a choice the data cannot settle as a void with its reason.

8 m 12 m 16 m 20 m hourly daily weekly monthly annual as usually drawn 100-year significant wave height
8 m 12 m 16 m 20 m hourly daily weekly monthly annual in warrant largest hour, 11.7976 m ∅ family refused ● exp. Weibull ■ lognormal ○ □ not picked
Buoy A (NDBC), 22 years of hourly sea states: the certified 100-year significant wave height of the two families Anderson–Darling picks there, by block. Each level is an enclosure narrower than its dot; the whiskers are the delta method’s 95% interval.Record: certs/hseva-ledger.json · sha256 23aa58c1078cThe build refuses this figure if the kit's extract no longer carries the digest of buoy A's record, a level is no longer an enclosure, or the annual family choice is no longer refused.
2 · a family of curves on log axes · built from its equations

Moody’s chart

The usual chart draws an exact law and a 1939 fit in one ink, and carries a pen across the transition. Here 64/Re is solid, Colebrook’s curves are dashed, each names the roughness it was drawn given, and from Re 2300 to 4000, where no correlation holds, nothing is drawn.

The rule: Draw an exact law solid and a fit solved in floating point dashed, name each curve by the input it was drawn given, and leave a range where no correlation holds as a void, never bridged.

0.01 0.02 0.05 0.1 10³ 10⁴ 10⁵ 10⁶ 10⁷ 10⁸ as usually drawn friction factor f, against Re
0.01 0.02 0.05 0.1 10³ 10⁴ 10⁵ 10⁶ 10⁷ 10⁸ in warrant ∅ ∅ Re 2300–4000: no correlation holds 64/Re exact given ε/D = 0.0001 given ε/D = 0.001 given ε/D = 0.01 given ε/D = 0.05 smooth friction factor f, against Re
Friction factor against Reynolds number. Laminar: 64/Re, exact arithmetic. Turbulent: Colebrook’s equation, solved for each point by iteration in floating point (every residual under 10⁻¹²); the equation itself is a fit to measured pipes, a premise assumed here.Record: none — built here from 64/Re and Colebrook (1939).The build refuses this figure if a point of Colebrook's equation stops converging (its residual above 10⁻¹²), or 64/Re stops being exact at the ends drawn.
3 · a ranked bar chart · an illustration

A leaderboard

The usual chart ranks six models one to six. First place is a tie broken by name; fourth is a score someone reported and nobody re-counted; the zero at the bottom is a run that never happened.

The rule: Draw counts solid, a reported number dashed until it is re-counted, an order between equal values as a dotted choice, and a run that never happened as a void with NEEDS DATA, never a zero.

0 100 200 300 400 500 as usually drawn #1 A 357 #2 B 357 #3 C 341 #4 D 338 #5 F 296 #6 E 0 items correct of 500 ranked
0 100 200 300 400 500 in warrant A 357 B 357 C 341 D 338 E ∅ not run · needs data F 296 tie, order chosen self-reported items correct of 500 counted: solid · reported: dashed
Six models on 500 items, the counts invented. A count of items correct is decided by counting; an order between equal counts is chosen; a reported score is computed until it is re-counted.Record: ∅ — an illustration, given an invented record; the arithmetic on it is exact.The build refuses this figure if the invented counts stop tying first place, or a missing run is drawn as a score.
4 · counts over time with a nowcast · an illustration

An epidemic curve

The usual chart shows a dip and a fall. The dip is two days nobody reported, drawn as zero; the fall is a week still being counted. Here the gap is a void, the mean stops where the data stop, and the last week is a nowcast, dashed.

The rule: Draw counts received solid, unreported days as a void, a mean whose window was picked dotted and stopped at every gap, and the days still being counted as a dashed nowcast.

0 25 50 day 1 day 15 day 29 day 43 as usually drawn admissions per day
0 25 50 day 1 day 15 day 29 day 43 in warrant ∅ not reported nowcast 7-day mean · window chosen per day · the last week still being counted
Eight weeks of daily admissions, the counts invented by a formula. The bars are counts received; the last seven days are counted so far, and the nowcast scales them by the share usually reported by then.Record: ∅ — an illustration, given an invented record; the arithmetic on it is exact.The build refuses this figure if the invented week being counted stops reading lower than the weeks before it, or the unreported days stop being unreported.
5 · an ordered field of counts with curves over it · from a record

Counts under a curve

On a linear ramp only the dense core of the hours shows, and the hours a 20-year contour is scored on, a few single hours at the edge, vanish. Here every hour shows in a stated class, each contour carries its exact count outside, and the edge a test adds to close an open file is dotted.

The rule: Draw counts as an ordered field in stated classes so a single count shows, draw each curve as its source lists it, and draw any edge the scorer adds to close it dotted, as a choice the count holds given. See it live →

0 m 4 m 8 m 12 m 0 s 5 s 10 s 15 s 20 s as usually drawn Hs against Tz, three 20-year contours
0 m 4 m 8 m 12 m 0 s 5 s 10 s 15 s 20 s in warrant IDSCM: 68 out given IFORM: 27 out ISORM: 153 out largest hour 11.80 m hours per cell 1–9 10–99 100–499 500–1999 2000+ every hour counted · each file as listed
Dataset A of the environmental-contour benchmark (an NDBC buoy): 175,320 hours of significant wave height Hs and zero-up-crossing period Tz, counted exactly into 0.25 s × 0.2 m cells, and the three submitted 20-year contours the matplotlib kit’s worked example carries, with the hours outside each, decided. The IDSCM file does not repeat its first vertex; the benchmark’s test closes it with a 5.8 cm edge, dotted here and almost too short to see, and its count holds given that edge.Records: certs/ecbench-ledger.json · sha256 8b1230e4fb6f; kits/warrant-mpl/examples/data/contours-a20.json · sha256 9256e2274408The build refuses this figure if the kit's extract no longer carries the digest of the benchmark's ledger, its cells stop summing to the hours scored, or a contour's count outside or its closure stops matching the ledger.
how to show data · Maps

Maps

Cells, regions, sites, reaches and fields: what a map says about each place, and what it may not.

1 · a map of cells · from a record

A map of cells

The usual map fills every cell. A cell where no family could be decided gets a zero, lands in the lowest shade, and reads as the calmest sea on the coast. Here a refused cell keeps its full square as a void with its reason, and the shades are only the cells the ledger decides.

The rule: Shade a cell only where its value is decided, and draw a refused cell as a void the size of a cell, with its reason in words, never as zero. See it live →

as usually drawn 100-year wave, metres < 4 m 4–8 m 8–12 m 12–16 m 823 cells, 1° each Brazilian margin · monthly maxima
in warrant 100-year wave, metres < 4 m 4–8 m 8–12 m 12–16 m ∅ refused, 9 cells: 8 no family decided 1 level not enclosed given monthly maxima decided cells shaded · refused cells void
The return-level atlas on the Brazilian margin: the 100-year significant wave height at each of 823 one-degree cells, from 32 years of the hindcast’s monthly maxima, by the family Anderson–Darling decides there. The shade is the level’s certified upper end on the atlas’s own five steps (the highest here 12.44 m). Plate carrée; the coast is Natural Earth 1:50m, simplified by Douglas–Peucker to 0.6 drawing units.Records: certs/hseva-atlas.json · sha256 74aebe6fe4e9; corpus/ww3-grid/meta.json · sha256 ef375fbfe509The build refuses this figure if the ledger was not made from this corpus, a cell of the Brazilian lattice loses its record, or a refused cell stops being one the ledger refuses.
2 · a claim’s region on a map · from a record

A region named in words

The usual map puts a sentence over a picture and lets the eye agree. A region named in words has no edge until someone reads one in. Here the box is drawn dotted as the reading it is, the count inside it decides the claim, and the readings one cell away that change the verdict are drawn too.

The rule: Draw a region that a sentence names as a dotted box, the reading it is, decide the claim inside it, and show the readings one step away when they change the verdict. See it live →

as usually drawn gen. gamma exp. Weibull other family “the Generalized Gamma gains prominence along the coastal region south of South America” daily maxima
in warrant holds holds gen. gamma exp. Weibull other family ∅ sea ice in the box: exp. Weibull 12 gen. gamma 9 does not hold 2 of 8 readings one cell away hold the claim as a box: dotted, a reading given 40–58° S, 56–80° W for “south of South America”
Reis, Guimarães et al. (2026, §3.2) on daily maxima: “the Generalized Gamma gains prominence along the coastal region south of South America”. The atlas reads it as the 22 certified four-degree cells whose centres lie in 40–58° S, 56–80° W, and decides it by the paper’s own family choice in each. With each edge moved one cell in or out, 6 of 8 readings agree and 2 hold. Equirectangular, true to scale at 48° S; the coast is Natural Earth 1:50m, simplified by Douglas–Peucker to 0.6 drawing units.Records: certs/hseva-atlas.json · sha256 74aebe6fe4e9; corpus/ww3-grid/meta.json · sha256 ef375fbfe509The build refuses this figure if the claim’s verdict for its box, or for a box with one edge moved one cell, stops being what the atlas’s own rule decides from the ledger, or the verdict stops turning on the box.
3 · sites as points with decided words · from a record

Sites with a word each

The usual map prints the forecast’s one number at each site, and 4 of the nine read under the limit. Read against the band the forecast is known to miss by, only 1 is cleared and 2 are blocked; the other 6 are undecided, 3 of them sites whose one number looked fine. Here each site carries its decided word, its shape and the band it was decided on.

The rule: Mark each site with the word its band decides against the limit, cleared, blocked or undecided, in a shape as well as a word, and print the band it was decided on, never the forecast’s one number alone. See it live →

as usually drawn Foz Amazonas 1.40 m Potiguar 1.43 m Sergipe 1.13 m Esp. Santo 1.52 m P-25 1.55 m Campos 1.52 m Santos 1.93 m Florianópolis 1.40 m Pelotas 1.82 m wave height, 00 UTC, 31 Oct · limit 1.5 m the forecast, one number a site
in warrant Foz Amazonas undecided 1.016–1.533 Potiguar cleared 1.057–1.492 Sergipe undecided 1.254–1.847 Esp. Santo undecided 1.241–1.759 P-25 undecided 1.252–1.824 Campos undecided 1.251–1.830 Santos blocked 1.620–2.326 Florianópolis undecided 1.161–2.029 Pelotas blocked 1.508–2.289 Hs ≤ 1.5 m at 00 UTC, 31 Oct? · band, m given the lifting limit and Janela’s band, 9 in 10
Janela’s nine open-sea sites, the ECMWF run of 29 October 00 UTC read 48 hours ahead, against the lifting example’s wave limit, Hs at most 1.5 m. The band is the one Janela committed to its public ledger for that step, calibrated against satellite passes to hold nine times in ten (Sergipe has its own); the word is decided over it by exact rational comparison. The run, the step and the operation were chosen so that all three words occur. Plate carrée; Natural Earth 1:50m coast, simplified by Douglas–Peucker to 0.6 drawing units.Records: certs/janela-ledger/202610.jsonl · sha256 6f8b5502994b; apps/janela/scenario/sites.json · sha256 ac1318b984b9The build refuses this figure if a site’s band stops being the one Janela committed for this run, or a site’s word stops following from its band and the limit by exact comparison, or the three words stop all occurring.
4 · a region whose edges are decided · from a record

A reach drawn as a band

The usual ring is one line from one glide ratio and one forecast wind, and everything inside it looks reachable. Here the inputs are ranges: the two solid edges are decided, the panel’s ring runs dashed between them, and 69 of the 108 airfields inside it are undecided, not reachable.

The rule: Draw a reach as the two edges the inputs decide, solid, with a halo where the model was never validated, the one-value ring dashed between them, and each place inside marked with its own verdict. See it live →

as usually drawn 50 km glide range, engine out the panel’s ring 108 airfields inside 339 within 140 km
in warrant 50 km where it can land, decided given L/D 10.2–12.6, 92–108 kt, wind 35 kt ± 25% reachable 39 undecided 139 unreachable 161 two edges, decided the panel’s ring 69 of the 108 inside it are not proved
An engine-out glide from one instant of a real flight (N412JS, a PC12, at 22,000 ft on 2026-08-26, from its pinned ADS-B trace), in the glide-band report’s headline scenario: the propeller feathered, a 35 kt wind from 270°. The two edges are interval enclosures of the reach on 48 bearings, for a field at 400 ft; each airfield (OurAirports) is decided at its own elevation. Every verdict holds given the stated envelope and the report’s hypotheses (terrain not modelled, a steady glide), which is what the halo draws. Not for navigation. Azimuthal equidistant about the aircraft.Records: apps/glide-band/data/flight.json · sha256 5bca0088c1d4; apps/glide-band/data/airports.json · sha256 5cf70e90638fThe build refuses this figure if a pinned file no longer matches its sha256, the rings computed here stop matching the glide-band report’s own for this instant, or the panel’s ring leaves the band between the two decided edges.
5 · a field drawn from a model · from a record

A model’s field

The usual map draws a model’s crests like a photograph, edge to edge, and every beach alike. Here the crests are dashed and the figure says it is a picture of the model; they stop where the model is refused, the beaches show where the model was checked and where it was only assumed, and the three where the check says it reads low are named.

The rule: Draw a model’s field dashed and say once that it is a picture of the model, leave a void where the model is refused, and mark each place by how far the model was checked there, naming the places where the check says it reads low. See it live →

as usually drawn swell crests round the island crests, from the south-east 34 beaches
in warrant Ingleses reads low, ×0.43 Galheta reads low, ×0.99 Pântano do Sul reads low, ×0.39 ∅ Guarda do Embaú 0.57 km from edge compared 12 assumed 21 refused 5 km strip crest, computed a picture of the island model given a swell from 135° at 12 s
Swell’s island model of Florianópolis, the case of a 12 s swell from 135°: every twenty-fifth crest, a level line of the solved phase, where the wave reaches the water. The coast is the model’s own sea mask at half, on a 120 m grid, simplified by Douglas–Peucker to 0.5 drawing units; the map is the model’s 60 m grid, north up. The island model is compared against a Boussinesq model at 12 beaches; its code was never verified against an exact solution of its own equations, and it was never measured against the sea at a beach; the long-swell ratios are the comparison’s medians (island over Boussinesq).Records: apps/swell/data/island/w-135.0-12.png · sha256 40f963b473c7; apps/swell/data/island/depth.png · sha256 89a8dee09381; apps/swell/data/beaches.json · sha256 456a7fb26851; certs/swell-island-boussinesq.json · sha256 249c27c02c6eThe build refuses this figure if a texture or the beach table stops matching its pin, a beach’s refusal stops following from its distance to the box’s side edges, or the comparison stops naming the beaches where the island model reads low.
how to show data · Routes and time

Routes and time

Data that moves: a flight along its route, a week of six-hour windows, a forecast and the sea that came after it, a star dimming as a planet crosses it, a price stepping as its rate moves. Each is read from an instrument's own record, and each is drawn so the stretch nobody saw, the hours nobody can decide and the claim nobody has checked yet look like what they are.

1 · a route on a map · built from its equations

A route, and where a decision about it stops

The usual map draws a flight as one line. It bridges 5 min 42 s without reports as if they were flown, and it cannot show where along the route a claim about the flight stops being decided. Here the track breaks where the reports stop, the stretch where the reserve is decided to hold is solid, and the rest is a void with its reason.

The rule: Draw a route from the reports that were received, break it wherever they stop, and mark the point where a decision about the route changes, with a solid line where it is decided and a void where it is not. See it live →

as usually drawn JRB JRA E34 JFK LGA EWR N69F, EWR to JFK, 22:20 UTC
in warrant JRB JRA E34 JFK LGA EWR ∅ 5 min 42 s no reports reserve holds, decided to km 40.8 landing, km 57.9 ∅ undecided: boxes straddle N69F, EWR to JFK, 22:20 UTC given Beta ALIA, FAA reserve
The day's longest flight seen from take-off to landing between two places of the city pack, picked by that rule: a Bell 407, N69F, EWR to JFK, 22:20 UTC, 26 August 2026, 470 ADS-B reports, 57.9 km. At each report the instrument asks whether a Beta ALIA, flown this far under the FAA's 20-minute reserve, lands above the floor at every point of its published boxes, given those boxes and the energy model of Kasliwal et al. (2019), a premise assumed here. It does to kilometre 40.8; past it the boxes straddle the floor, and at the landing the answer is the one the day's certificate gives, REFUSED. The corridors are the city pack's simplified graph, a guide. Of the day's 382 flights, one is drawn.Record: none — the day's pinned ADS-B traces (apps/skyaudit/data/day-2026-08-26/nyc.heli.jsonl.gz) and the eVTOL energy instrument, re-run at every report.The build refuses this figure if the flight stops being the one the stated rule picks, its track stops summing to the path the day's certificate flew, the reserve is decided again after the point where it stopped being decided, or the route's last report stops giving the verdict the day's certificate gives this flight.
2 · a board of verdicts over time · from a record

A week of windows

A go/no-go board fills the cells that are go and leaves the rest blank, so blocked, cannot tell and not forecast that far look alike. Here each has its own shape and its word, and the hours past the forecast are one void with its reason.

The rule: Give each verdict on a board its own shape and its word (cleared filled, blocked outlined, undecided hatched), and draw the part with nothing to decide on as one void with its reason, never as a blank. See it live →

as usually drawn 23 24 25 26 27 28 29 Oct Amazon Mouth Potiguar Sergipe Espírito Santo P-25 platform Campos Santos Florianópolis Pelotas workable starts, by site
in warrant 23 24 25 26 27 28 29 Oct Amazon Mouth Potiguar Sergipe Espírito Santo P-25 platform Campos Santos Florianópolis Pelotas ∅ past the forecast cleared blocked ∅ undecided given Hs ≤ 2.0 m for 48 h run of 23 Oct, 00 UTC
Janela's decisions for the run of 2026-10-23, 00 UTC, one of the runs its decision record keeps, chosen: at each open-sea site and each six-hour step of the week, can a 48-hour launch (significant wave height ≤ 2.0 m) start then, decided over the band the forecast's measured error gives. Of the 189 starts the forecast reaches, 31 are cleared, 50 blocked and 108 undecided. Swell draws its week the same way, an activity by the hour.Record: certs/janela-decisions/20261023.json · sha256 1e9e6eb83962The build refuses this figure if the operation stops being a 48-hour launch at Hs ≤ 2.0 m, a row holds a letter that is not a verdict, or a start whose 48 hours run past the forecast carries one.
3 · a timeline over a forecast · from a record

An operating window

The usual chart draws the forecast as if it were the sea, with one bar for when the job can start. The forecast is a claim: here it is dashed, the limit it is decided against is solid, and below them each start time carries its verdict, cleared where the band's top edge stays under the limit for the whole job and a void where the band straddles it or the job outruns the forecast.

The rule: Draw a forecast dashed, the limit it is decided against solid, and the window the decision opens as a span with its word; where the forecast straddles the limit, draw the void, not a guess. See it live →

1.0 1.5 2.0 Sat 24 Sun 25 Mon 26 Tue 27 Wed 28 Thu 29 as usually drawn launch window wave height at Potiguar, m
1.0 1.5 2.0 Sat 24 Sun 25 Mon 26 Tue 27 Wed 28 Thu 29 in warrant given Hs ≤ 2.0 m for 48 h ∅ undecided cleared: start Sat 18h – Tue 18h ∅ undecided, then ∅ past the forecast start a 48 h launch at Potiguar, run of 23 Oct · Hs, m
Potiguar, the run of 2026-10-23, 00 UTC, one row of the week above, chosen: the band Janela decides on (ECMWF's and NOAA's forecasts, each widened by the error measured against satellites at this site, joined; it claims 9 in 10), from 12 to 168 hours ahead, as committed to the public ledger before the sea was seen. A 48-hour launch needs Hs ≤ 2.0 m at every forecast step of its window; decided here again from the ledger, the windows are the ones Janela published that morning.Records: certs/janela-ledger/202610.jsonl · sha256 6f8b5502994b; certs/janela-decisions/20261023.json · sha256 1e9e6eb83962The build refuses this figure if the windows decided here from the band in the ledger stop being the windows Janela published for Potiguar that run, or a step of the band stops coming from the ledger.
4 · a forecast scored against what happened · from a record

A forecast, graded

The usual verification plot lays forecasts and observations side by side and leaves the judging to the eye. Here each forecast is a claim, a miss is drawn as the gap between the claim and the sea, and the count of hits sits beside what each forecast claimed. The grade admits or prunes a forecaster; it never decides a window.

The rule: Draw a forecast's band beside what was later observed, draw each miss as the gap between them, and print the count of hits against the coverage the forecast claimed. See it live →

as usually drawn 1.0 m 2.0 m 1.0 m 2.0 m 9 Oct 29 Oct 14 passes, in order ensemble calibrated band
in warrant 1.0 m 2.0 m 1.0 m 2.0 m 9 Oct 29 Oct 14 passes, in order Potiguar · the newest forecast before each pass ECMWF ensemble claims 4 in 5 1 of 14 caught the band claims 9 in 10 14 of 14 caught
Potiguar, the site of the window above, chosen, 9 Oct to 29 Oct 2026: each time a satellite altimeter passed within 100 km and 3 hours of a forecast step, the newest forecast for that step (12 to 30 hours ahead), as committed to the public ledger before the pass. Top, the ECMWF ensemble's central 40 of 50 members, shown on Janela and never decided on; bottom, the band Janela decides on. Across every site so far the ensemble caught 394 of 964 passes and the band 806 of 857; every hit and miss re-decided here in exact arithmetic.Records: certs/janela-ledger/202610.jsonl · sha256 6f8b5502994b; certs/janela-ledger/DEFINITIONS.json · sha256 2775cc702968The build refuses this figure if a score's hit or miss stops agreeing with its band and the satellite's height in exact arithmetic, the two forecasts stop being graded on the same passes, a forecast is drawn at any lead but the newest one before its pass, or the ledger's definitions stop matching a pass within 3 h and 100 km.
5 · measurements over time, with what they admit · from a record

A light curve, and the stars it admits

The usual chart draws one fitted curve through the points, solid, and quotes its radius to four decimals. Other stars fit the same points. Here each measurement is drawn as the allowance it is judged with, the fit is dashed, two very different stars that both pass through every allowance are dotted, and the radius is the interval the data decide.

The rule: Draw each measurement as the allowance it is judged with, a fitted model dashed, the extreme members the data admit dotted, and print the decided range in words, never one fit as the answer. See it live →

0 −5k −10k −15k −1 0 1 h as usually drawn Rp/R* = 0.1253 TrES-2 b, folded, ppm
0 −5k −10k −15k −1 0 1 h in warrant radius ratio Rp/R* decided: [0.1095, 0.3261] two stars that fit every bin, k 0.119, 0.197 the fit, k 0.125 a bin and its allowance given 4.3 σ + 10.5 ppm a bin TrES-2 b folded, ppm
TrES-2 b in Kepler short cadence, the first of the transit instrument's two planets: 11,920 points folded on its period into 390 bins; drawn here, the middle 2.6 hours. The fit is the conventional analysis, a quadratic limb-darkening law, a premise assumed here. Granting the orbit fitted here and only that the star is nowhere negative and does not brighten outward (given those), the radius ratio Rp/R* lies in [0.1095, 0.3261], printed outward, and all 19 published values sit inside it. The two dotted stars are the most different ones the instrument exhibited.Records: instruments/transit/out/page.json · sha256 4ff3059674bb; instruments/transit/out/witness.json · sha256 ad765f3c1884The build refuses this figure if the dotted stars stop being the ends of the admitted range the record decides, the decided range stops containing the fit and every published radius, or a bin is drawn without its allowance.
6 · a step function · from a record

A price under a rule table

The usual chart joins the prices into a sloping line and shows the printed one a little off it, which reads as rounding. The rule truncates, so the price moves in treads, and the printed rate stands for a whole box of rates. Here the treads are drawn flat, the box is marked, and the printed price sits on none of them: the gap is a decided fact, not noise.

The rule: Draw a value a rule truncates or rounds as the flat treads it can take, never as a slope between them, mark the box of inputs a printed figure stands for, and say in words whether the printed output sits on a tread. See it live →

643.50 643.70 643.90 644.10 644.30 9.405 9.410 9.415% as usually drawn price, R$, against the rate
643.50 643.70 643.90 644.10 644.30 9.405 9.410 9.415% in warrant given settlement D+1 given settlement D+0 printed 644.25 on no tread: OFF 23 centavos every rate the printed 9,41% allows LTN 2023, 1 Feb 2018 · price, R$, by rate
A Tesouro Prefixado (LTN) maturing 1 January 2023, as the Treasury's file printed it for 1 February 2018: buy rate 9,41%, price R$ 644.25; the first LTN row of PU Verificado's OFF list. The rule table (STN, Tabela 3) gives PU = 1000 / (1 + rate)^(du/252), the rate truncated at 6 decimals, the exponent at 14 and the price at 6, printed at 2; the one irrational step is an enclosure, so every tread is decided. The printed rate stands for any rate from 9.405 to 9.415%; under both registered settlements and both printed readings (truncated or rounded), the file's price is on no tread.Records: certs/pu-ledger.json · sha256 53c96a7addbf; corpus/pu/holidays.json · sha256 26975831cbfcThe build refuses this figure if the row stops being the first LTN row of the ledger's OFF list, a tread stops being the price the rule prints across its rates, or the printed price comes to sit on a tread under either registered settlement or either printed reading.
how to show data · Fields and images

Fields, images and physics

A field from a model, an image as the set of its fits, a shape from its chords, an error budget and a calibration band: five ways to draw physical data, each from one of the instruments’ own records, first as a plotting library draws it and then in WARRANT.

1 · a contour field from a model · from a record

A field from a model

The usual contour plot of a model’s field looks like a measurement, with speeds printed on it. Here the contours are dotted, because the profiles behind them were picked to be legible and only the scalings are the paper’s; the one solid mark is the core box, whose shrinking rates are exact.

The rule: Draw a field computed from a model dotted, as a picture of one chosen member, name its chosen inputs in italic, and draw solid only what the model decides, here the box its exact exponents fix. See it live →

-0.2 0 0.2 -0.4 -0.2 0 0.2 0.4 as usually drawn 9.9 6.9 4.9 flow speed in the (r, z) plane
-0.2 0 0.2 -0.4 -0.2 0 0.2 0.4 in warrant given h = 3/50, at τ = 0.01 dotted: a picture of the model · solid: core box
The vortex core the blowup proof constructs, in the meridional plane at τ = 0.01 before the singularity, given h = 3/50: five levels of the leading speed |(uθ, uz)|, each 0.7 of the one inside it. A field drawn from a model is a picture of it: this is one core with the paper’s scalings, divergence-free by construction (checked here to 10⁻⁶). The box is the instrument’s core box, ℓr by ℓz; it shrinks as τ1/2 by τ1/2 − h, exponents the record holds as exact rationals, which is why it is solid.Records: playground/navier-stokes/out/scene.json · sha256 489928e43d4f; playground/navier-stokes/field.js · sha256 6b2e9bcc922c; playground/navier-stokes/app.js · sha256 d8aaad058f97The build refuses this figure if the drawn core stops being divergence-free (|div u| reaches 10⁻⁶ of its larger term at h = 3/50), h = 3/50 leaves the open window the record states, or the record stops calling the drawn core chosen.
2 · an image as the set of skies fitted to the data · from a record

An image as a set of fits

The usual image is one sky out of the many that fit the same visibilities, and a picture cannot say which of its features the data force. Here the five fitted skies are drawn at once: ink where all five are bright, texture where only some are.

The rule: Draw an image fitted to data as the set of its fits: ink where every fit agrees, texture where they differ (denser where more agree), edges in the stroke of how the fits were computed, and the level and the beam named as choices. See it live →

as usually drawn 20 μas M87 · 2018-04-21 · 227 GHz the image: one fitted sky, brightness as grey
in warrant 20 μas 5 skies fitted to the same data, at once all 5 bright: they agree 3 or 4 bright 1 or 2 bright edges dashed: each sky is a fit given bright ≥ 40% of its peak, and a 5 μas beam
M87 on 2018-04-21 at 227.071 GHz: of the 18 skies the instrument fitted to the EHT’s released visibilities (838 of them, from 8 stations), the 5 its own rule keeps at full weight: closure phases in, total flux within 2 Jy. As the instrument draws them, each is centred on its own flux centroid, since neither amplitudes nor closure phases can see position, and blurred to its 5 μas restoring beam. The usual panel draws the one with the lowest χ² (1.75). Bright means at least 40% of that sky’s own peak: a chosen line.Record: playground/interferometer/out/page-data.json · sha256 5d6978baf38fThe build refuses this figure if the instrument's rule (closure phases at full weight, total flux at most 2 Jy) stops selecting five skies, a sky stops decoding to 64 × 64 pixels, or the five stop both sharing a bright region and differing around it at the level drawn.
3 · a silhouette set from chords · from a record

A shape from its chords

The usual sketch joins the chord ends into an outline that looks like the body. That outline is not concave, so no convex body has it. Here the body is the set of shapes the chords allow, and the stations that saw nothing, which set its ceiling, are drawn as observations.

The rule: Draw a shape known only through cuts as the set of shapes the cuts allow: ink where every allowed shape covers, texture where some do, each cut and each empty probe as an observation, and a probe that returned nothing as a void with its reason. See it live →

-100 0 100 -100 0 100 as usually drawn (95626) 2002 GZ32, chords joined km on the sky
-100 0 100 -100 0 100 in warrant ∅ bad data ∅ failed saw nothing saw nothing ink: in every allowed body · texture: in some given 1σ of chord error
(95626) 2002 GZ32, the stellar occultation of 2017-05-20: the 5 chords as published, the stations that saw nothing within the frame (23 in all) and the two that returned no data. Assuming only a convex silhouette, the floor and ceiling are exact: an area-equivalent diameter of 168.2 to 267.6 km, given one stated error per chord; at face value no convex body passes through all five. Drawn centred slice by slice, because chords fix widths and not where along the track the body sat: the placement is chosen, the widths decided.Record: instruments/occultation/out/page.json · sha256 eeb8896afa8fThe build refuses this figure if the chords at one stated error stop admitting a convex body, the floor stops being concave, or the joined dots become concave (the usual outline would then be one of the allowed shapes and this caption false).
4 · an error budget as nested boxes · built from its equations

An error budget

The usual error bar is one cross of symmetric whiskers. It hides that the error is a box in two dimensions, and that its size rests on three different things: the paper’s numbers, the numbers the paper leaves out, and a lag the page chose.

The rule: Draw an error budget as nested enclosures, one per premise, innermost first: solid where it rests on the source’s literals or on boxes around what the source leaves out, dotted where it adds a chosen scenario, and name the chosen inputs in italic. See it live →

−20 −10 0 +10 +20 33 m 34 m 35 m as usually drawn ± 16.4 cm the surface at the gauge · elevation, cm
−20 −10 0 +10 +20 33 m 34 m 35 m in warrant with a lag, 31.4 cm tall every reading of the paper, 18.4 cm tall best corner, 2.9 cm tall given a lag of 1/60 s, texture at 1 m/s what the rig cannot tell apart · elevation, cm
The two-smartphone rig of Vieira et al. (2020) at Leme, at the pressure gauge 34 m out: the set of ranges and elevations one matched pixel cannot tell apart. The paper gives the baseline (0.98 m), the height (3.5 m) and the lens; it does not give the pixel pitch or the matching precision, so those are boxes. The outer box adds a lag of half a frame and a texture speed, both chosen; with the slope and the surface’s own motion the total height is 32.8 cm. The four observed RMSEs against the gauge (10, 12, 12, 10 cm) lie between the best total, 2.9 cm, and the worst, 32.8 cm.Record: none — instruments/stereo/budget.js over instruments/interval/interval.js on the Leme 2020 literals of instruments/stereo/presets.js, in outward-rounded interval arithmetic as this page is built.The build refuses this figure if the best corner's box stops lying inside the box over every reading the paper allows, that box stops lying inside the one with the chosen lag, or an observed RMSE leaves the span between the best and the worst totals.
5 · a band of every admissible fit around the published line · from a record

A calibration and its set

The usual calibration plot draws one fitted curve through the standards and reads a sample back to a number with a narrow ±. The fit is one member of a set: assuming only that more analyte means more signal, the standards allow every curve in the band, and the reading is anywhere between the two standards that bracket it.

The rule: Draw a fitted curve dotted inside the band of every curve the data and the stated assumption allow, read a measurement back through the band as an extent, and say in words any point the axis cannot place. See it live →

0 1 2 3 1 3 10 30 100 as usually drawn 18.4 ± 0.8 pg/mL absorbance (OD) against pg/mL, log
0 1 2 3 1 3 10 30 100 in warrant 12.5–25.0 pg/mL the fit, chosen: 18.37 ± 0.80 given a reading of 0.9 OD blank, 0 pg/mL at 0.115 OD: no place on a log axis dashed: every curve that fits · dotted: the fit
A rat IL-6 sandwich ELISA, a published example standard curve: absorbance at 450 nm with a stated budget of 8% (floor 0.01 OD), k = 2. The band holds every monotone curve within budget at the seven standards above zero; the dotted curve is a four-parameter logistic fitted to those seven. A reading of 0.9 OD reads back to 12.5–25.0 pg/mL, 7.8 times the fit’s ±. The blank (0.115 OD at 0 pg/mL) has no place on a log axis; the band and the fit both leave it out, and the fit extended to zero reads 0.253 OD.Records: playground/curveset/out/page.json · sha256 7a6edfdfd34d; playground/curveset/envelope.js · sha256 e7ba8ccd1880The build refuses this figure if the fitted curve leaves the band at a standard above zero, the read-back under bare monotonicity stops being the two standards that bracket the reading, or the reported interval stops lying inside it.
how to show data · Systems

Geometry, networks and systems

Structures rather than series: a wiring diagram, a point in a simplex, an embedding with its tree, a ladder of enclosures against a wall, a matrix of verdicts, and an evolution experiment’s lines of descent. Each is read from an instrument’s own record and drawn twice. In a structure the standing sits on the parts: an edge, a port, a window, a cell, a winner.

1 · a wiring diagram · from a record

A wiring diagram

The usual diagram draws every connection as the same arrow, so it cannot show the one rule that matters: a value that came from floating point may prune, never decide. Here a wire is drawn in the stroke of what it carries, a port that decides is a square, a verdict port that never fired stays on the drawing, and the connection the engine refuses is a void with its reason.

The rule: Draw each wire in the stroke of what its source emits (solid for exact, dashed for float), draw a deciding port as a square, keep every verdict port on the drawing whether it fired or not, and put a refused connection as a hatched void with the reason, never as a line. See it live →

as usually drawn the pipeline the sigma band Y0 Z1 Z2 float screen Y0 shortlist radii polynomial Y0 Z1 Z2 certified refuted refused 39 0 0 39 of 39 cells re-derived identically · 0 disagreed
in warrant solid carries intervals · dashed carries floats ∅ no wire into Y0: a float never decides the sigma band Y0 Z1 Z2 float screen Y0 shortlist radii polynomial Y0 Z1 Z2 certified refuted refused 39 0 0 ■ decides ● fired ○ never fired 39 of 39 cells re-derived identically · 0 disagreed
One certified cell of the sigma band as the graph that decides it, read from the graph the page builds: the band hands three exact intervals to the radii polynomial, the only node that may conclude anything, and one interval to a float screen. The screen’s shortlist has no wire into the polynomial; the engine refuses it in the words “screen.shortlist carries floats and radii.Y0 decides.”Records: playground/graph/out/spec.json · sha256 ae29dd227460; playground/graph/out/facts.json · sha256 a00135964726The build refuses this figure if a wire out of a node that emits floats reaches a port that decides, the record stops refusing the screen’s shortlist into the radii polynomial, or a certified cell stops re-deriving identically.
2 · a point in a simplex · from a record

An attention row as a point

Weights that sum to one are a point in a simplex, and a bar chart throws that away: thirty-one bars at one temperature say nothing about where the row is heading. Drawn as a point, the row’s path is visible, and the grammar shows how little of it is decided: nine solid knots near the centre, and a long dashed float trail to the corner.

The rule: Draw a composition that sums to one as a point in a simplex (restricted to a face you name in italic), each exact value a solid knot, a float path dashed, and magnify a short decided stretch in a ring rather than stretching the axes. See it live →

0 0.02 0.04 0.06 0 10 20 30 as usually drawn attention by position, β = 8 position
in warrant PR 2 PR 2.5 position 20 position 2 position 13 softmax trail, float, to β = 400 zoom 5:1 β ¼ to 8 decided given positions 20, 2, 13 (the top three)
One causal attention row (last query, layer 0, head 0) from a tiny GPT at seed 0, 31 positions. The knots are the rational kernel (1 + βs)2 at the 9 temperatures on which its participation ratio is decided to fall strictly, in exact arithmetic; the trail is softmax in floating point, to β = 400. On the face the participation ratio is 1/Σpᵢ² and its rings are exact circles, drawn as a ruler.Record: playground/simplex/out/decision.json · sha256 2f5b270760fbThe build refuses this figure if the decided grid stops sharpening the row (its participation ratio no longer strictly falls), a planted mutant stops failing, or the three positions drawn stop being the row’s three largest at the trail’s end.
3 · an embedding with decided edges · from a record

An embedding with a tree

The usual scatter gives an eigendecomposition’s picture axes, as if its coordinates were measured, and draws every edge of the tree alike. Here the positions are said once to be a chosen picture, an edge in every minimum tree is solid, and an edge that ties with another of exactly the same length is dotted, its alternative drawn faintly beside it.

The rule: Draw a layout placed by a float solver without measurement axes and say once that it is a chosen picture; draw an edge that the numbers force solid, an edge picked among exact ties dotted with its length, and its tied alternatives as faint guides. See it live →

as usually drawn ten carnivores · Haiku 4.5’s dissimilarities -40 -20 0 20 40 -20 0 20 cat lion tiger leopard wolf dog red fox grizzly bear polar bear raccoon
in warrant ten carnivores · Haiku 4.5’s dissimilarities cat lion tiger leopard wolf dog red fox grizzly bear polar bear raccoon tiger: leopard or lion, both 15 grizzly bear: leopard or lion, both 50 positions: a chosen picture (2-D holds 73%)
Haiku 4.5’s dissimilarity judgements on ten carnivores, each pair asked both ways round and averaged: of the three models’ carnivore trees, the one with the most tied edges. The tree is decided from the whole- and half-number table by the cycle property in exact comparisons; the positions come from the Gram matrix’s two leading eigenvectors in floating point. Labels drop the word “domestic”.Record: playground/neural-geometry/out/geometry.json · sha256 baea3e8132f9The build refuses this figure if a distance stops being a whole or half number, the drawn tree stops being a minimum spanning tree, or an edge drawn solid can be swapped for one of equal length.
4 · a ladder of enclosures · from a record

Records against a wall

The usual chart puts every published ratio left of the wall, so every record looks accepted. Each norm was printed rounded to a whole number, so each ratio is really a window; drawn as windows, nine clear the wall and one crosses it, and its verdict is a void, open until someone publishes the norm in full.

The rule: Draw each value as the window its rounding leaves (a solid bracket) beside the printed figure (a dashed tick), put the threshold as a solid line, give each row its verdict word, and leave a hatched void where the window straddles the threshold. See it live →

1.0485 1.0490 1.0495 as usually drawn 1.05 119 · 2904 104 · 2712 135 · 3076 89 · 2532 136 · 3090 99 · 2660 157 · 3320 99 · 2659 105 · 2734 200 · 3723 published ‖v‖ / GH · dimension · norm ratio to the Gaussian heuristic
1.0485 1.0490 1.0495 in warrant wall 1.05 119 · 2904 ∅ open 104 · 2712 admissible 135 · 3076 admissible 89 · 2532 admissible 136 · 3090 admissible 99 · 2660 admissible 157 · 3320 admissible 99 · 2659 admissible 105 · 2734 admissible 200 · 3723 admissible 27 farther away not drawn: cut chosen rounding window published ratio
The 10 of 37 audited SVP-challenge records nearest the 1.05 acceptance wall, by their exact ratio at the printed norm, from proved lattice determinants. A window’s ends are the exact ratios at the printed norm minus and plus one half. Admissible is decided in exact integers at the window’s upper end, so it holds for every true norm that prints as the published one; for the open record it holds at the printed norm and fails at the upper end.Record: instruments/pqc/out/audit.json · sha256 da83720c1ed7The build refuses this figure if a record’s exact ratio leaves its own window, a published ratio leaves its window by more than its last printed digit, or a record other than the one drawn open has a window that crosses the wall.
5 · a matrix of verdict words · from a record

A matrix of verdicts

The usual grid fills a cell for right and leaves it empty for wrong, so a wrong verdict, a hedge and an answer that never came all look the same. Here each cell holds the word the model said, underlined dashed as a claim, beside the exact answer; a missing answer is a void, and the row order, a choice made to group the answers, is drawn dotted.

The rule: Put the decided answer in the first column, write each claim’s own verdict word in its cell (underlined dashed, marked ≠ where it differs), leave a hatched void where no answer came, and when you sort the rows keep their labels and draw the order dotted. See it live →

as usually drawn graded correct, per task Opus 5 Sonnet 5 Haiku 4.5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 14/15 4/15 3/15
in warrant what each said · the exact answer first exact Opus 5 Sonnet 5 Haiku 4.5 #13 ADMISSIBLE ADMISSIBLE ≠ NEEDS DATA ≠ NEEDS DATA #14 ADMISSIBLE ADMISSIBLE ≠ NEEDS DATA ≠ REFUSED #4 ADMISSIBLE ADMISSIBLE ≠ NEEDS DATA ADMISSIBLE #6 ADMISSIBLE ADMISSIBLE ADMISSIBLE ≠ NEEDS DATA #2 REFUSED REFUSED ≠ NEEDS DATA ≠ NEEDS DATA #3 REFUSED ≠ NEEDS DATA REFUSED ≠ NEEDS DATA #7 REFUSED REFUSED ≠ NEEDS DATA ≠ ADMISSIBLE #8 REFUSED REFUSED ∅ no answer ≠ NEEDS DATA #5 REFUSED REFUSED ≠ ADMISSIBLE REFUSED #9 REFUSED REFUSED REFUSED ≠ NEEDS DATA #11 REFUSED REFUSED ∅ no answer REFUSED #1 STRADDLES STRADDLES ≠ NEEDS DATA ≠ ADMISSIBLE #10 STRADDLES STRADDLES ≠ NEEDS DATA ≠ NEEDS DATA #15 STRADDLES STRADDLES ≠ NEEDS DATA ≠ ADMISSIBLE #12 STRADDLES STRADDLES STRADDLES ≠ NEEDS DATA rows sorted by the exact answer: order chosen
The fifteen tasks of the “printed” level of lattice-claims: each is a claim that a lattice vector clears the 1.05 wall of the SVP challenge, with its norm printed as a whole number, and has an exact answer: ADMISSIBLE, REFUSED (it does not clear), or STRADDLES (the rounding window crosses the wall, so the printed digits cannot decide). Opus 5, Sonnet 5 and Haiku 4.5 each judged the same fifteen, once. REFUSED is the environment’s verdict word; the hatched void is a missing answer.Record: instruments/wiring/eval/page.json · sha256 5e78db80a4c7The build refuses this figure if the three models stop answering the same tasks in the same order, a grade stops matching its verdict against the exact answer, or a missing answer is drawn as a verdict.
6 · arms over generations, with lines of descent · from a record

Lines of descent

The usual chart is a race of three curves from one start. Here the start is a program someone wrote, drawn dotted; each curve carries the births its winner descends from, read from the parent pointers; and a winner picked by birth order among births tied at the top score is ringed dotted, with how many it was picked from.

The rule: Draw each arm’s best-so-far as a solid step line told apart by shape and weight, put the hand-made starting point as a dotted line named in italic, mark the winner’s ancestors as knots from the record’s parent pointers, and ring a winner that was picked from a tie dotted, saying from how many. See it live →

0.17 0.18 0.19 0.20 0 25 50 75 100 as usually drawn lineage aleator rules best training score, by generation
0.17 0.18 0.19 0.20 0 25 50 75 100 in warrant given PM-0, written by hand lineage unique aleator 1 of 21 tied rules 1 of 33 tied aleator: no heredity 16 births a generation, every arm
Machinidae, era 0, run 1: from the founder PM-0, the lineage (a model’s edits, under selection, with heredity), Aleator (the same model, every child a fresh edit of the founder) and blind rules (selection with a page of fixed edits, no model), 16 births each per generation for 100 generations. A birth’s training score is judged exactly on eight instances; the record ships it to six decimals, and the champion is the earliest birth at the arm’s best score.Record: site/machinidae/data/era-0-1.json.gz · sha256 c4aeb5fee89bThe build refuses this figure if the run file stops matching the zone’s pin, a best score so far stops being the best certified birth up to its generation, a champion stops descending from the founder, or the arms stop having the same births in every generation.
how to show data · Text and tables

Numbers in prose and in tables

Prose flattens standing more than any chart does: a fit, a float interval and a rounded design value read the same in a sentence.

1 · numbers in prose and in a table · an illustration

A paragraph and a table

In prose a fit, a float interval and a rounded design value look the same, and a dash in a table could mean zero, missing or not applicable. Here each number wears its underline, the chosen family is named in italic, the verdict is a word, the empty cell says why, and the premises are listed with the weakest last.

The rule: In text, underline each number by its standing, name a chosen input in italic, give a verdict as a word, write the reason in an empty cell, and list the premises with the weakest last.

as usually written

At Buoy X the 100-year significant wave height is 12.4 m (95% CI 11.6–13.3 m), and the design wave is 13 m. The platform deck clears the design wave.

return periodHs
10 years9.8 m
100 years12.4 m
1000 years—
in warrant

At Buoy X the 100-year significant wave height is 12.38–12.41 m given the GEV family, with a 95% interval of 11.6–13.3 m. The design wave is 13 m, rounded up by the code’s rule. The platform deck clears it: HOLDS given a design wave of 13 m.

return periodHs, m
10 years9.80–9.83
100 years12.38–12.41
1000 yearsnot computed

It rests on the hindcast, compared against the buoy’s own record, and on the GEV family, assumed, chosen by the analyst. The weakest premise is assumed.

Record: ∅ — an illustration, given an invented record.

models as premises

When a number rests on a model

The arithmetic can be exact while its equations never met the thing they describe. So a number that rests on a physical model names its premises, each with how far it was checked, and a conclusion is as checked as its weakest premise. Here is a wave limit on Swell, the beach app:

the ladder
validated ← the open sea and its band compared ← the island model verified assumed ← breaking at 0.55 × depth
The verification-and-validation ladder of Roache (1998), Oberkampf and Roy (2010) and ASME V&V 20 (2009), cut to four grades a reader can tell apart. Never a probability, never a confidence.
the same chain, as the page prints it
  1. validatedunverified
    The open sea and its band covered 96.5% of 21,259 satellite passes it had not seen; it claims 9 in 10.
  2. comparedunverified
    The island model beside a Boussinesq model at twelve beaches, 556 cases of a 1 m swell: r 0.44, the island 0.27 m higher on average.
  3. assumed
    Breaking at 0.55 times the depth (Thornton & Guza, 1982); no sandbars; the shallow profile from the nautical chart.

The arithmetic is exact; the weakest premise is assumed, and neither model was verified against an exact solution of its own equations.

The four grades, and a read step
  • validated — checked against observations of the thing itself, held out, with the number. On Swell: the open sea’s band, against satellite passes it had not seen.
  • compared — checked against a model that keeps more of the physics, with the number; not against the thing itself. On Swell: the island model, against a Boussinesq model at twelve beaches.
  • verified — the code reproduces an exact solution of its own equations; not measured against the thing itself. On Swell: none yet.
  • assumed — adopted from a source, chosen, or read; no machine here checked it. On Swell: breaking at 0.55 times the depth (Thornton & Guza, 1982), and no sandbars.

A read step — a proof step read and not run by a machine — gets no grade of its own: it is assumed. It never caps a verdict; it is listed in what the page rests on. δ₃ = 117/2192 is an example: a decided finite core, and three steps proved on paper and read.

References
  • Roache, P. J. (1998). Verification and Validation in Computational Science and Engineering. Hermosa Publishers.
  • Oberkampf, W. L., & Roy, C. J. (2010). Verification and Validation in Scientific Computing. Cambridge University Press.
  • ASME V&V 20-2009. Standard for Verification and Validation in Computational Fluid Dynamics and Heat Transfer. The American Society of Mechanical Engineers.
  • Colebrook, C. F. (1939). Turbulent flow in pipes, with particular reference to the transition region between the smooth and rough pipe laws. Journal of the Institution of Civil Engineers, 11(4), 133–156.
  • Moody, L. F. (1944). Friction factors for pipe flow. Transactions of the ASME, 66(8), 671–684.
  • MacEachren, A. M., Roth, R. E., O’Brien, J., Li, B., Swingley, D., & Gahegan, M. (2012). Visual semiotics & uncertainty visualization: an empirical study. IEEE Transactions on Visualization and Computer Graphics, 18(12), 2496–2505.
  • Machado, G. M., Oliveira, M. M., & Fernandes, L. A. F. (2009). A physiologically-based model for simulation of color vision deficiency. IEEE Transactions on Visualization and Computer Graphics, 15(6), 1291–1298.
  • Thornton, E. B., & Guza, R. T. (1982). Energy saturation and phase speeds measured on a natural beach. Journal of Geophysical Research, 87(C12), 9499–9508.
outputs and code

One figure, three registers, your own code

The design wave from the gallery, the same drawing three times: on the site’s dark screen; on white paper in the print register, where every ink is checked for contrast; and as a mono laser prints it, every colour its grey. Standing rides on the stroke, never on colour, so nothing is lost on the way down.

on screen
8 m 12 m 16 m 20 m hourly daily weekly monthly annual in warrant largest hour, 11.7976 m ∅ family refused ● exp. Weibull ■ lognormal ○ □ not picked
The site’s dark register.
on paper
8 m 12 m 16 m 20 m hourly daily weekly monthly annual in warrant largest hour, 11.7976 m ∅ family refused ● exp. Weibull ■ lognormal ○ □ not picked
The print register: ink #000 decided, #262626 computed, #4d4d4d chosen.
on a mono laser
8 m 12 m 16 m 20 m hourly daily weekly monthly annual in warrant largest hour, 11.7976 m ∅ family refused ● exp. Weibull ■ lognormal ○ □ not picked
Every colour its grey; the strokes still say what each mark rests on.
python · matplotlib
import warrant_mpl as wm
wm.use()               # wm.use('grey') for a mono laser

wm.knot(ax, x, level)                   # a certified level
wm.whisker(ax, x, lo, hi, wm.COMPUTED)  # the delta method
wm.void(ax, x0, x1, words='refused')    # words required
wm.legend(ax)

wm.line(ax, x, y, wm.COMPUTED, linestyle='-')
  → TypeError: the stroke is read from the standing
    and the series, never chosen by the caller
javascript · svg and html
const W = require('./warrant.js');

W.attrs(W.COMPUTED)
  → class="w-computed" fill="none" stroke-width="2" stroke-dasharray="5 4"
W.attrs(W.meet(W.DECIDED, W.CHOSEN), { width: 1 })
  → class="w-chosen" fill="none" stroke-width="1" stroke-dasharray="1 3" stroke-linecap="round"
W.value('3.1416', W.COMPUTED)      // a number in text
W.legendHtml()                     // the key beside a figure

No package yet: copy one folder. kits/warrant-mpl for matplotlib (with the design wave, a return curve and the contours as worked examples), or warrant.js and grammar.js for the web, MIT. On a canvas, setLineDash takes the same patterns.

Every part, with the call that draws it
a number in text
1/2decided1.4142computed2/3chosenrefusedrefused
W.value('1.4142', W.COMPUTED)
a verdict word
CERTIFIED WITNESSED REFUTED PARTIAL REFUSED NEEDS DATA
One shape per word, everywhere.
C.tag('REFUTED')
the witness
the object that broke it
In text, beside the words that name it; in a figure, on the object, at the figure’s scale.
W.witnessMark(x, y, { size, width })
the legend
decided
exact arithmetic backs it
computed
float, or a number someone printed; nothing decided it
chosen
one member of a set the data admits
refused
no mark — the void is drawn
W.legendHtml({ compact: true })
a grade
validatedcomparedverifiedassumed
How far a premise was checked: a word first, a glyph second, never a colour.
W.grade(W.COMPARED)
a premise chain
  1. comparedunverified
    The island model beside a Boussinesq model.
  2. assumed
    Breaking from the literature.

The weakest premise is assumed.

W.premisesHtml([...], { meetLine })
held by the build

A grammar no build checks is a suggestion

The display is a sound map of the record, and the build decides it.

No mark may claim more than its record: not a stronger stroke, not a wider extent, not a stronger word. Every page here is built by a program that reads its records and refuses to build when one stops supporting a sentence, and these checks run over the whole site:

numbers re-read
5,291
printed from a record, followed back to it at every build, on 46 pages
dash patterns
5
twenty-five on 5 September; 1,820 uses today, 0 outside the five
pages that draw it
61
each prints its legend; 150 pages walked

Where the site broke its own grammar

Each is a fact about the built site, counted before the fix and now by the rule that gates it.

fixed 29 October
The tone ran against the order
before decided .97 computed .69 chosen .84 now decided .97 computed .84 chosen .69
A chosen stroke was drawn brighter than a computed one, so the weaker standing read stronger. Lightness now falls with standing, asserted by a battery from the tokens.
fixed 29 October
An edge drawn inside its record
now: 11/180 px outside the record before: 7/180 px inside the top of the step [1, 3/2], magnified
The staircase’s top was written to the nearest tenth of a pixel and sat 7/180 of a pixel inside its record. Every edge now rounds outward, and the build refuses one drawn inside.
fixed 29 October
A first tile that said the opposite
before now proofs decided 2 of 2 CERTIFIED, each against its own statement “ETH is false” not decided here read against the textbook ETH (§2),
The ETH report’s first tile read CERTIFIED where the page does not decide that ETH is false. It says so now.

Open, and counted by the same census: 75 printed values still carry no record address, 10 figures name no record, 8 print no sentence that would stop them, and 36 dashes carry no standing. Each count may only shrink.

Every issue, then and now
fixed 29 October
Dashes with no standing
dashed marks with no standing before 99 now 36 pages carrying one before 24 now 12
The chart kit took a plain “dashed” switch; it takes a standing now, and the census counts what is left, which may only shrink.
fixed 29 October
A verdict word in two chip shapes
dashed chip borders before 138 now 33 verdict words in two shapes before 7 now 0
A dash is a standing, so no chip wears one, and each verdict word has one shape site-wide.
fixed 29 October
Motion in the standing channel
dash animations on the landing before 2 now 0
The landing’s flow animated a dash offset: decoration in the channel that carries standing. It is a moving point now.
partly fixed
Standings typed by hand
values with a record address before 0 now 2,239 values without one before 1,718 now 75
A number’s standing was written where it was printed. A number can now be printed from its record through an address, and a gate re-reads it from the built page; most still have none.
open
A reason only in a tooltip
reasons shown only on hover before 1,156 now 59
A value’s reason (“measured, not decided”) is often a hover title: invisible on a phone. It should be visible text.
open
The dotted line inks more than the dashed one
0.4 0.6 1 px 2 px 3 px the legend dotted dashed
At the legend’s 2.4 px, the chosen pattern inks 0.57 of its length and the computed one 0.56: the weaker standing carries more ink. The tone carries the order since the fix above; whether density should too is open.
The sixteen rules, each drawn, and where each was learned

From the rulebook (v2, frozen 28 October 2026, with dated rulings since). Each was learned on a page of this site that broke it.

Marks

rule 1
Standing is not a verdict.
before after 0.83 a verdict as a strike 0.83 REFUTED a word, and its own mark
A verdict is a word in a chip; what a mark rests on is its stroke or underline. They never share a channel, so a refutation proved here is drawn solid.
Found on neural-geometry: a failed frame verdict struck its fitted number through. The verdict is a word now, and the number keeps its dashed underline. fixed 28 October
rule 2
A pick is a member of its set, and the build checks it.
before after outside the set ∈ a member, checked
A figure that draws one member of a set the data admit draws a real member, verified exactly when the page is built.
Found on census: its least-squares totals left the ±½ box a rounded integer allows. The repair is now a fit held inside the box, its optimality conditions checked exactly. fixed 28 OctoberFound on occultation: the curve joining its chords is not concave, so no convex body has it; it is drawn dotted, as a chosen picture. fixed 28 OctoberFound on navier-stokes: the drawn core was not incompressible (|div u| about 1.2 times its larger term); the build now refuses it above 10−6. fixed 28 October
rule 3
A tie is chosen.
before after = length drawn as if unique = length one of two: dotted
When the optimum is not unique, the one drawn was picked by a tie-break: dotted, and said to be one of several.
Found on neural-geometry: nine of its fifteen minimum spanning trees tie; recounted here from its record by the same exact test. fixed 28 October
rule 4
Dash is for standing only.
before after a dash for a model weight and opacity
Which series or model a line belongs to is carried by weight and opacity, never by a dash, in every figure.
Found on answer-shape: three models told apart by dash (6 4 and 1.6 3.4 among them); the weight-and-opacity ladder was already underneath. fixed 5 September
rule 5
The one accent.
ink witness a box clears a box the object an object breaks a claim
The red × marks an exhibited counterexample: an object that broke a claim made about its own record, with words. Never a verdict word, a region, a scalar comparison or a deduction. When in doubt, ink.
Found on the return-level check: “not the certified fit” came off the × list: a box clearing a box has no witness point. fixed 28 October
rule 6
Mood.
HOLDS given h = 3/50 the verdict holds for the input it names; a hypothesis read, not machine-checked, is named the same way: given Theorem 2 as published
A verdict that holds given a chosen input names it in italic, given h = 3/50; a hypothesis read but not machine-checked is named the same way.
Found on the return-level atlas: each claim’s box is a reading of the paper, drawn dotted with the readings one 4° cell in or out; of its ten claims one turns on the reading (south of South America (40–58° S, 80–56° W): does not hold as drawn, holds with an edge moved). fixed 27 October
rule 7
An empty set is ∅.
before after 0 a zero-height bar ∅ none fits: ∅ and a word
It gets ∅ and a word, never a zero-height bar or a zero.
Found on occultation: at face value no convex silhouette fits the chords; the row prints ∅ and the words instead of a bar. fixed 28 October
rule 8
Every printed number comes from its record, rounded outward.
the record: √x ≤ 79/64 = 1.234375 1.23: cut, inside 1.24: outward a printed upper end rounds up, never down
The build refuses when a record stops supporting its sentence. A printed bound rounds outward, never truncated: drawn here on the hero’s own enclosure.
Found on blind-spot: the headline “Fourteen million certified verdicts could not see this mutant” had no record behind it; it now counts the 4,000-pair sample the page rests on. fixed 28 OctoberFound on contours: 18262/36525 was printed by cutting digits as 0.4999; rounding gives 0.5000. fixed 28 October
rule 9
A legend wherever a mark is.
before after marks with no key decided computed the key beside it
Every page that uses a stroke or underline of the grammar prints its key; tools/check-wiring.js refuses one that does not.
Found on shape-hunt: its marks were committed without a legend, and the build refused until it had one. fixed 28 October
rule 10
A page copied in is never edited.
before after copied bytes sha256 pinned an edit inside the copy copied bytes untouched changed by its wrapper
It changes only through its wrapper, by anchored replacements that each refuse unless their anchor occurs exactly once.
Found on affect: its script is a copy and stays untouched; every change is a named passage the wrapper replaces. fixed 28 October

Two rulings

ruling · 28 October
A layout placed by a float solver is a chosen picture.
edges solid; the ring and the layout chosen
The caption says so once; each mark keeps the standing of what it asserts, so an edge that exists is solid.
Found on neural-geometry: its eigenvector map’s ring is dotted as a chosen picture, and its sentence about the controls was corrected. fixed 28 October
ruling · 28 October
A model’s answer is a claim someone made.
a model answer computed, like a number someone printed
It is computed, dashed, like a number someone printed; on the wiring instruments its wire is dashed.

Numbers that rest on a model

rule 11
A number that rests on a model names its premises.
the open sea and its band validated the island model compared breaking at 0.55 × depth assumed the weakest: assumed
In the order the number travelled, each with its grade and record, ending with the weakest.
Found on Swell: every wave limit is exact over a band that reaches the beach through an unvalidated island model; each beach card now says what its number rests on. fixed 28 October
rule 12
A comparison is calibrated first.
1 · reproduce the published comparison: same probes, same tables 2 · compare N 556 r 0.44 bias +0.27 m a comparison is trusted once it reproduces
Before a comparison is trusted, the build re-derives it and it must reproduce the published one it stands in for.
Found on Swell: its island model against a Boussinesq model reproduced the published comparison first, with the same probes and tables. fixed 28 October
rule 13
The halo.
validated here carried here crisp edges edges, and a halo
An extent carried by a model not validated where it is drawn keeps its crisp edges and gains a blur outside them.
Found on Janela: a band borrowed from the nearest measured site, and the wind band, validated nowhere, gained the halo. fixed 28 October
rule 14
A forecast is computed and dashed, on canvas too.
before after a forecast, solid dashed, on canvas too
A canvas takes the same patterns: setLineDash is given G.claim(width).
Found on Swell: its forecast lines were solid until 28 October; every one is dashed now. fixed 28 October
rule 15
A field drawn from a model is a picture of it.
crests · a picture of the island model said once, in the legend
For crests or streamlines, the legend says so once.
Found on Swell: its legend says the crests are a picture of the island model, not a measurement. fixed 28 October
rule 16
Where the model reads low, “under the limit” is flagged.
UNDER THE LIMIT exact, given the band that reaches the beach the model reads low here (0.39×) a flag, never a refusal
A flag, not a refusal: a refusal would remove an exact statement.
Found on Swell: Pântano do Sul (0.39×), Ingleses (0.43×) and Galheta (0.99×) read below the Boussinesq model on swells of 11 s and longer; their cards say so. fixed 28 October
The foundations: one law, six axioms
  • A1 · Soundness. Drawing maps a record to marks; reading maps marks back to the records that could have produced them. A page is sound when every record it draws is among them: no mark stronger than its record, in standing, extent or verdict word.
  • A2 · Completeness. Every row of the record a page draws from is a mark, or the empty set with a word.
  • A3 · Outward. A lower end rounds down and an upper end up, in digits and in pixels, at the resolution the figure declares.
  • A4 · A scale with a guide. Four standings onto five strokes, the legend derived from the scale; every channel it uses is monotone in it, or constant.
  • A5 · A typed value. A value carries its datum, its standing, its premises and its record’s address; the arithmetic demotes it and the renderer only reads it.
  • A6 · A frame is a page. In motion every frame obeys A1; a standing never tweens and a value never travels.
The checks, and the dash census
  • check-grammar — only the five patterns may appear; three uses that are not lines are declared by name, each with its reason. The first census, on 5 September, counted twenty-five: the dash had been derived from the stroke width, one carrying 1.04 5.460000000000001 into published HTML.
  • check-marks — a value printed from a record carries its address; every build follows it back and prints the datum again by the same rule. Four planted marks are refused on every run.
  • check-wiring — a page with a mark of the grammar and no legend is refused; one hero per page, its × first and at weight.
  • check-render — no leaked template text, no paint that does not resolve, no figure thinner in ink than its record, no script error.
  • check-measure — every page driven in Chrome at 1440, 768, 390 px; left edges, overflow, escapes and clipped elements may only go down.
the dash census
5 4 431 · computed 1.5 2 1,003 · computed, thin 1 5 137 · chosen 1 3 62 · chosen, thin 2 3 180 · a guide
Uses of each permitted pattern on the built site, at the last sync.
This page refuses to build if …
  • … the rulebook (design/WARRANT.md) is not a frozen version with a date on its first line.
  • … warrant.js draws a standing with a stroke other than the one this page describes.
  • … the standing legend no longer defines its own hatch for the void (the specimens below paint the void with it).
  • … a step of the decided enclosure of √x fails its own exact check (squaring the bounds).
  • … a float value of Math.sqrt lies outside the decided enclosure (the caption says every one is inside).
  • … a knot of the meet specimen is not an exact square root (y² = x, checked in rationals).
  • … the witness specimen stops breaking its claim (the segment's value at x = 1/2 squares to 1/2).
  • … the hero's × is drawn thinner than its decided marks (a witness is an event at the figure's scale).
  • … the hero's window no longer holds the witness and the knots either side of it.
  • … a step of the enclosure in the hero leaves the window it is drawn in.
  • … an edge of the hero's enclosure is drawn inside its record (the paths round outward to a tenth of a pixel).
  • … the hero's ε handle no longer flips at an exact rational inside its ruler, or its largest gap no longer squares back to its point (the root of the peak, squared, is the peak's x).
  • … neural-geometry's record no longer holds a tied minimum spanning tree (rule 3's finding would be false).
  • … blind-spot's builder no longer records the headline it retired, or its live headline no longer counts the corpus sample it is built from.
  • … the atlas no longer holds exactly one claim whose verdict turns on the reading of its box.
  • … the atlas claim that turns on its box no longer turns by moving one edge.
  • … navier-stokes' build no longer refuses a drawn field that is not divergence-free, or its page lost the italic "given" and h = 3/50.
  • … navier-stokes' threshold is no longer a power of ten.
  • … contours' builder no longer records the expected count it printed truncated.
  • … the truncated count is not what cutting its digits gives, or rounding gives the same.
  • … occultation no longer says its joined dots are not a member of the set, or no longer prints the empty face-value set as ∅.
  • … design/grammar.js no longer records the first census it was written after (twenty-five patterns, one with a float artefact).
  • … Swell's comparison or its held-out band record no longer says what the chain on this page prints.
  • … no beach reads low any more (rule 16's finding would be false).
  • … Swell's legend no longer says its crests are a picture of the island model.
  • … the δ₃ report no longer lists its read steps as assumed premises.
  • … the rulebook's registered colours disagree with the tokens, or the apps' refused state is a second red again.
  • … the rulebook no longer states the validator's thresholds, or the two measurements the colour law came from.
  • … the dash census (tools/check-grammar.js --report) cannot be read, or counts a pattern outside the five.
  • … the marks gate (tools/check-marks.js) did not pass with every red control fired, or the census stopped counting the values without an address.
  • … the legend check (tools/check-wiring.js) cannot be read, or finds a page that draws the grammar without its legend.
  • … the layout ruler's or the render check's record is missing its viewports, pages or figures.
  • … a page a finding links to is not in the built site.
  • … a commit it cites as a fix is not in this repository's history.
  • … the rulebook holds a rule this page does not explain, or has lost one it does (rules 1–16, by number and title).
  • … the rulebook's colour law no longer has seven rules.
  • … rule 8's drawing stops showing a cut bound inside its record and a rounded one outside.
  • … a decimal on rule 8's drawing is not exact.
  • … the specimen frame moved: y is no longer [0, 9/4].
  • … git no longer holds the staircase as it was drawn before the outward fix.
  • … the edge drawn before the fix is not inside its record, or the edge the rule draws today is.
  • … the stroke tones before the fix cannot be read from git, were in order after all, or today's run against the order.
  • … the site as git holds it before the fixes cannot be read and counted.
  • … a fixed issue no longer reads as fixed (the census then and now disagree with the page).
  • … the landing animated a dash before the fix, or animates one now.
  • … /eth/'s first tile is not where the page says it was or is.
  • … at the legend's own width the dotted line no longer inks more than the dashed one (the open issue would be closed).
  • … the registered colours no longer hold two identity hues and a print hue, and one ordered scale of three.
  • … the apps' status row no longer names allowed, refused by the rule and undetermined.
  • … the rulebook no longer names the pair that read the same to a deuteranope.
  • … the validator no longer reproduces the rulebook's ΔE for the failed pair, or the pair that replaced it fails.
  • … the kit's extract no longer carries the digest of buoy A's record, a level is no longer an enclosure, or the annual family choice is no longer refused.
  • … a point of Colebrook's equation stops converging (its residual above 10⁻¹²), or 64/Re stops being exact at the ends drawn.
  • … the invented counts stop tying first place, or a missing run is drawn as a score.
  • … the invented week being counted stops reading lower than the weeks before it, or the unreported days stop being unreported.
  • … the kit's extract no longer carries the digest of the benchmark's ledger, its cells stop summing to the hours scored, or a contour's count outside or its closure stops matching the ledger.
  • … the ledger was not made from this corpus, a cell of the Brazilian lattice loses its record, or a refused cell stops being one the ledger refuses.
  • … the claim’s verdict for its box, or for a box with one edge moved one cell, stops being what the atlas’s own rule decides from the ledger, or the verdict stops turning on the box.
  • … a site’s band stops being the one Janela committed for this run, or a site’s word stops following from its band and the limit by exact comparison, or the three words stop all occurring.
  • … a pinned file no longer matches its sha256, the rings computed here stop matching the glide-band report’s own for this instant, or the panel’s ring leaves the band between the two decided edges.
  • … a texture or the beach table stops matching its pin, a beach’s refusal stops following from its distance to the box’s side edges, or the comparison stops naming the beaches where the island model reads low.
  • … the flight stops being the one the stated rule picks, its track stops summing to the path the day's certificate flew, the reserve is decided again after the point where it stopped being decided, or the route's last report stops giving the verdict the day's certificate gives this flight.
  • … the operation stops being a 48-hour launch at Hs ≤ 2.0 m, a row holds a letter that is not a verdict, or a start whose 48 hours run past the forecast carries one.
  • … the windows decided here from the band in the ledger stop being the windows Janela published for Potiguar that run, or a step of the band stops coming from the ledger.
  • … a score's hit or miss stops agreeing with its band and the satellite's height in exact arithmetic, the two forecasts stop being graded on the same passes, a forecast is drawn at any lead but the newest one before its pass, or the ledger's definitions stop matching a pass within 3 h and 100 km.
  • … the dotted stars stop being the ends of the admitted range the record decides, the decided range stops containing the fit and every published radius, or a bin is drawn without its allowance.
  • … the row stops being the first LTN row of the ledger's OFF list, a tread stops being the price the rule prints across its rates, or the printed price comes to sit on a tread under either registered settlement or either printed reading.
  • … the drawn core stops being divergence-free (|div u| reaches 10⁻⁶ of its larger term at h = 3/50), h = 3/50 leaves the open window the record states, or the record stops calling the drawn core chosen.
  • … the instrument's rule (closure phases at full weight, total flux at most 2 Jy) stops selecting five skies, a sky stops decoding to 64 × 64 pixels, or the five stop both sharing a bright region and differing around it at the level drawn.
  • … the chords at one stated error stop admitting a convex body, the floor stops being concave, or the joined dots become concave (the usual outline would then be one of the allowed shapes and this caption false).
  • … the best corner's box stops lying inside the box over every reading the paper allows, that box stops lying inside the one with the chosen lag, or an observed RMSE leaves the span between the best and the worst totals.
  • … the fitted curve leaves the band at a standard above zero, the read-back under bare monotonicity stops being the two standards that bracket the reading, or the reported interval stops lying inside it.
  • … a wire out of a node that emits floats reaches a port that decides, the record stops refusing the screen’s shortlist into the radii polynomial, or a certified cell stops re-deriving identically.
  • … the decided grid stops sharpening the row (its participation ratio no longer strictly falls), a planted mutant stops failing, or the three positions drawn stop being the row’s three largest at the trail’s end.
  • … a distance stops being a whole or half number, the drawn tree stops being a minimum spanning tree, or an edge drawn solid can be swapped for one of equal length.
  • … a record’s exact ratio leaves its own window, a published ratio leaves its window by more than its last printed digit, or a record other than the one drawn open has a window that crosses the wall.
  • … the three models stop answering the same tasks in the same order, a grade stops matching its verdict against the exact answer, or a missing answer is drawn as a verdict.
  • … the run file stops matching the zone’s pin, a best score so far stops being the best certified birth up to its generation, a champion stops descending from the founder, or the arms stop having the same births in every generation.
  • … two scenes share an id, or a scene lacks its form, its rule, what the usual view hides, or a stop sentence (an illustration of text excepted).
  • … the print register no longer holds the tokens the paper drawing is re-inked with.
  • … the Python sample calls a function the kit no longer has, or the kit stopped refusing a caller's own linestyle.
  • … the code sample shows a call whose output is not what the module returns.
the colour law

Ink first, and one red

Every figure reads in greyscale first, and the strokes take lightness in order of standing. The one red, --witness #e0574e at 5.3:1 on the dark ground, marks an exhibited counterexample and nothing else: on this page, once, on the hero. A colour enters only with a measurement, and the law itself came from one: two series colours of a sibling project, distinct to most readers, were one colour to a deuteranope.

the ink ramp, on the dark screen
--ink L 0.97 --ink-2 L 0.84 --ink-3 L 0.69 --ink-4 L 0.54 --ink-5 L 0.41 decided computed chosen
Five greys, OKLab lightness under each. The strokes take them in order of standing, so a copy in greyscale loses nothing. On paper the order runs the other way, darker = stronger: #000 decided, #262626 computed, #4d4d4d chosen.
the one red
--witness #e0574e
5.3:1 on the dark ground · an exhibited counterexample, only · on this page, the hero’s ×
Until 29 October the apps carried a second red for a refused state, ΔE about 4 from this one: one red to the eye with two meanings. It is folded: the apps’ refused state reads this token, with its meaning.

Every pair passes the validator

OKLab ΔE × 100 for every pair that shares a figure, under the colour-vision model of Machado, Oliveira and Fernandes (2009), computed as this page is built:

before
two series, one figure as most see it ΔE 11.4 as a deuteranope ΔE 0.4 below 8 #3d8ac8 · #9070c8
Distinct to most readers (ΔE 11.4), one colour to a deuteranope (ΔE 0.4). A third hue between them in the list hid it: the validator checks every pair.
after
the same two, re-stepped as most see it ΔE 30.4 as a deuteranope ΔE 28.3 #79b9d6 · #6744c5
Re-stepped: ΔE 28.3 for a deuteranope, 30.4 for most. The threshold is 8 for every simulated deficiency and 15 for normal vision.
The seven rules of colour, and the four kinds
  1. Ink first. Every figure reads in greyscale; a colour comes with a shape and a word.
  2. One colour, one meaning, in every project on the grammar, each registered with its date.
  3. Colour never carries standing. The stroke does; nor does it stand in for a verdict word.
  4. Four kinds only: the witness, identity, order, status.
  5. Every pair passes the validator, on the figure’s own ground, for every simulated deficiency.
  6. No yellow, no orange.
  7. A new colour needs the report and an approval, recorded in the rulebook.
the witness
--witness 5.3:1 on the ground
One red, for a shown counterexample and nothing else.
identity
lineage · Machinidae rules arm · Machinidae second series · print only
At most three hues for the series in one figure, each with its own shape.
order
lived died stillborn
One hue in lightness steps, for an ordered scale.
status
✓ allowed × refused by the rule ? undetermined
An app’s decided states, always with an icon and a word.
The registered colours
  • --witness #e0574e · witness — a shown counterexample; the only red on the site and in Machinidae (rose retired). Where: every project. Approved: 2026-10-27, as the only red 2026-10-28.
  • #79b9d6 · identity — lineage (the arm, and the accent: not in the founder; filled = new, ringed = changed). Where: Machinidae. Approved: 2026-10-28.
  • #6744c5 · identity — the rules arm (re-stepped from #9070c8; ΔE 28 against the blue for a deuteranope). Where: Machinidae. Approved: 2026-10-28.
  • #9fd0bb · #5f9a83 · #335e4e · order — how far a birth got: lived · died · stillborn. Where: Machinidae. Approved: 2026-10-28.
  • --v-cert · --witness · --v-refd · status — an app's decided state: allowed · refused by the rule · undetermined; the refused state is the witness red itself (the --v-refu token folded into --witness 2026-10-30). Where: the apps (design/app-shell.js). Approved: 2026-10-28; the red folded 2026-10-29, the token 2026-10-30.
  • #3368c1 (print) · identity — the second series compared in a print figure, always with ■. Where: print only (design/print/tokens.js, kits/warrant-mpl). Approved: 2026-10-29.
for people and AI assistants

The grammar in plain text

Everything above, once more as plain text, built from the same objects as the page. Give an assistant this page’s address, or the brief as a text file, and ask it how to draw your data.

Read the brief

A brief of https://carlostoledo.co/grammar/ in plain text, generated with the page from the same objects. Use it to answer how to draw a number, a chart, a map, a route, a field or a table so that each mark says whether it was decided exactly, computed in floating point, chosen, or refused.

The four standings: how a number was made

  • DECIDED — solid stroke; plain text. An exact decision backs it: an interval enclosure, an exact rational comparison, a proof.
  • COMPUTED — dashed stroke 5 4 (1.5 2 under 1.5 px); a dashed underline in text. Floating point, a solver stopped at a tolerance, a fit, a forecast, a number someone printed. It may be right; nothing decided it.
  • CHOSEN — dotted stroke 1 5 with round caps (1 3 under 1.5 px); a dotted underline in text. One member of a set the data admit, picked by something that is not the data: a tie-break, a default, a window, an interpolation.
  • REFUSED — no stroke: a hatched void at the size the value would have had, with ∅ and a word. The instrument declined or the input is missing. Never bridged, never averaged, never drawn as zero.

A mark takes the weakest standing on its path to the pixel: one float makes it computed, one choice makes it chosen, one refusal leaves the void. Standing is not a confidence. The stroke carries standing only; which series a line belongs to is carried by weight, opacity or a marker, never by a dash. A guide (a ruler, a leader) is dashed 2 3 and says nothing.

Verdicts are words, never strokes

  • CERTIFIED — decided true by an exact check.
  • REFUTED — decided false, with the object that breaks the claim.
  • REFUSED — the instrument declined, with the reason.
  • PARTIAL — one part certified, another refused.
  • NEEDS DATA — refused because the bytes that would decide it are missing; the bytes are named.
  • HOLDS · DOES NOT HOLD · UNDECIDED — a check over an input someone chose, always said "given" that input, in italic.

An empty set is ∅ and a word, never a zero-height bar. The one red (--witness #e0574e) marks an exhibited counterexample, on the object, beside the words that name it, and nothing else; never on invented data.

Numbers that rest on a model

  • VALIDATED — checked against observations of the thing itself, held out, with the number.
  • COMPARED — checked against a model that keeps more of the physics, with the number; not against the thing itself.
  • VERIFIED — the code reproduces an exact solution of its own equations; not measured against the thing itself.
  • ASSUMED — adopted from a source, chosen, or read; no machine here checked it.

Each premise carries a grade; a conclusion is as checked as its weakest premise; verification (the code solves its equations) and validation (the equations describe the thing) are separate. A forecast is computed and dashed; a field drawn from a model is a picture of it, said once; an extent carried by a model not validated where it is drawn gains a halo.

How to show data: one rule per form

Charts you already draw
  • A design wave (levels with intervals, by category; from a record: certs/hseva-ledger.json) — Draw each certified level as a knot, an interval from a float method as a dashed whisker, and a choice the data cannot settle as a void with its reason. What the usual view hides: The usual chart draws a trend with error bars. The spread is two choices, the block and the family: the picked 100-year wave runs from 13.05 m (monthly) to 17.38 m (weekly). The error bars are the only float on the page, and on annual maxima one family has no certified fit, so the choice between them is refused, not drawn. The figure: In WARRANT: each family’s certified level a decided knot, filled where Anderson–Darling picks it; the delta method’s interval a dashed whisker, computed; the annual block a hatched void, the family choice refused; the largest hour on record a solid line.
  • Moody’s chart (a family of curves on log axes; built from its equations) — Draw an exact law solid and a fit solved in floating point dashed, name each curve by the input it was drawn given, and leave a range where no correlation holds as a void, never bridged. What the usual view hides: The usual chart draws an exact law and a 1939 fit in one ink, and carries a pen across the transition. Here 64/Re is solid, Colebrook’s curves are dashed, each names the roughness it was drawn given, and from Re 2300 to 4000, where no correlation holds, nothing is drawn. The figure: In WARRANT: 64 over Re solid, exact; the transition from Re 2300 to 4000 a hatched void; Colebrook’s turbulent curves dashed, computed, each named by the roughness it was drawn given, in italic.
  • A leaderboard (a ranked bar chart; an illustration) — Draw counts solid, a reported number dashed until it is re-counted, an order between equal values as a dotted choice, and a run that never happened as a void with NEEDS DATA, never a zero. What the usual view hides: The usual chart ranks six models one to six. First place is a tie broken by name; fourth is a score someone reported and nobody re-counted; the zero at the bottom is a run that never happened. The figure: In WARRANT: counts as solid bars; first and second tied, their order a dotted bracket, chosen; a self-reported score a dashed bar, a number someone printed; the missing run a hatched void, not run.
  • An epidemic curve (counts over time with a nowcast; an illustration) — Draw counts received solid, unreported days as a void, a mean whose window was picked dotted and stopped at every gap, and the days still being counted as a dashed nowcast. What the usual view hides: The usual chart shows a dip and a fall. The dip is two days nobody reported, drawn as zero; the fall is a week still being counted. Here the gap is a void, the mean stops where the data stop, and the last week is a nowcast, dashed. The figure: In WARRANT: the counts received as solid bars; the two unreported days a hatched void; the seven-day mean dotted, over complete days only, its window chosen; the last week’s nowcast dashed, computed.
  • Counts under a curve (an ordered field of counts with curves over it; from a record: certs/ecbench-ledger.json, kits/warrant-mpl/examples/data/contours-a20.json) — Draw counts as an ordered field in stated classes so a single count shows, draw each curve as its source lists it, and draw any edge the scorer adds to close it dotted, as a choice the count holds given. What the usual view hides: On a linear ramp only the dense core of the hours shows, and the hours a 20-year contour is scored on, a few single hours at the edge, vanish. Here every hour shows in a stated class, each contour carries its exact count outside, and the edge a test adds to close an open file is dotted. The figure: In WARRANT: the 175320 hourly sea states counted exactly into cells and drawn in five stated classes, so a single hour shows; three 20-year contours as their files list them, solid, decided, told apart by weight and opacity and named with their exact counts of hours outside; the edge the benchmark’s test adds to close the one open file dotted, chosen, so its count holds given that edge; the largest hour on record a decided knot above all three.
Maps
  • A map of cells (a map of cells; from a record: certs/hseva-atlas.json, corpus/ww3-grid/meta.json) — Shade a cell only where its value is decided, and draw a refused cell as a void the size of a cell, with its reason in words, never as zero. What the usual view hides: The usual map fills every cell. A cell where no family could be decided gets a zero, lands in the lowest shade, and reads as the calmest sea on the coast. Here a refused cell keeps its full square as a void with its reason, and the shades are only the cells the ledger decides. The figure: In WARRANT: the same 823 cells. The 814 whose 100-year level the ledger encloses are shaded on the five-step scale; each enclosure is narrower than a centimetre, so the shade is decided. The 9 refused cells keep their full square as a hatched void, ringed, 8 because Anderson–Darling decides no family there and 1 because the decided family’s level has no enclosure. The block, monthly maxima, is a chosen input, named in italic.
  • A region named in words (a claim’s region on a map; from a record: certs/hseva-atlas.json, corpus/ww3-grid/meta.json) — Draw a region that a sentence names as a dotted box, the reading it is, decide the claim inside it, and show the readings one step away when they change the verdict. What the usual view hides: The usual map puts a sentence over a picture and lets the eye agree. A region named in words has no edge until someone reads one in. Here the box is drawn dotted as the reading it is, the count inside it decides the claim, and the readings one cell away that change the verdict are drawn too. The figure: In WARRANT: the same cells and families, cells under sea ice hatched as voids. The box the paper’s words were read as, 40–58° S, 56–80° W, is drawn dotted, a chosen reading named in italic. Inside it the exponentiated Weibull is decided at 12 cells and the generalized gamma at 9, so the claim does not hold for this box. Two thinner dotted edges mark the readings one cell away, the north edge moved south or the east edge moved west, under which it holds.
  • Sites with a word each (sites as points with decided words; from a record: certs/janela-ledger/202610.jsonl, apps/janela/scenario/sites.json) — Mark each site with the word its band decides against the limit, cleared, blocked or undecided, in a shape as well as a word, and print the band it was decided on, never the forecast’s one number alone. What the usual view hides: The usual map prints the forecast’s one number at each site, and 4 of the nine read under the limit. Read against the band the forecast is known to miss by, only 1 is cleared and 2 are blocked; the other 6 are undecided, 3 of them sites whose one number looked fine. Here each site carries its decided word, its shape and the band it was decided on. The figure: In WARRANT: the same nine sites. Each carries a word decided by exact comparison of its forecast band, the one Janela committed to its public ledger, against the lifting limit of 1.5 m: cleared (a filled dot) where the whole band is under the limit, at 1 site; blocked (a ring) where all of it is over, at 2; undecided (a half-filled dot) where the band straddles the limit, at 6. The band’s ends are printed outward to the millimetre. The limit and the band are the givens, named in italic.
  • A reach drawn as a band (a region whose edges are decided; from a record: apps/glide-band/data/flight.json, apps/glide-band/data/airports.json) — Draw a reach as the two edges the inputs decide, solid, with a halo where the model was never validated, the one-value ring dashed between them, and each place inside marked with its own verdict. What the usual view hides: The usual ring is one line from one glide ratio and one forecast wind, and everything inside it looks reachable. Here the inputs are ranges: the two solid edges are decided, the panel’s ring runs dashed between them, and 69 of the 108 airfields inside it are undecided, not reachable. The figure: In WARRANT: the same instant. Two solid rings are the edges the envelope decides: inside the inner one every airfield is reachable for every value of the inputs, outside the outer one none is. A soft halo past them says the glide model itself was never measured against a flight. The panel’s ring runs dashed between them, computed from one value per input. The airfields carry their decided verdicts as shapes: 39 reachable, filled; 139 undecided, half filled; 161 unreachable, rings. 69 of the 108 inside the panel’s ring are not proved reachable. The envelope is a chosen input, named in italic.
  • A model’s field (a field drawn from a model; from a record: apps/swell/data/island/w-135.0-12.png, apps/swell/data/island/depth.png, apps/swell/data/beaches.json, certs/swell-island-boussinesq.json) — Draw a model’s field dashed and say once that it is a picture of the model, leave a void where the model is refused, and mark each place by how far the model was checked there, naming the places where the check says it reads low. What the usual view hides: The usual map draws a model’s crests like a photograph, edge to edge, and every beach alike. Here the crests are dashed and the figure says it is a picture of the model; they stop where the model is refused, the beaches show where the model was checked and where it was only assumed, and the three where the check says it reads low are named. The figure: In WARRANT: the same field, said to be a picture of the island model. Its crests are dashed, computed by a linear refraction solver, and stop 5 km from the box’s north and south edges, where the model is refused because the wave enters there unrefracted; those strips are hatched voids. The beaches are squares by how far the model was checked there: 12 filled, compared with a Boussinesq model; 21 hollow, assumed, never compared. Guarda do Embaú lies in the southern strip and is refused. Three beaches are named where the comparison says the model reads low on long swells: Pântano do Sul at 0.39 times, Ingleses at 0.43 times, Galheta at 0.99 times. The swell is a chosen input, named in italic.
Routes and time
  • A route, and where a decision about it stops (a route on a map; built from its equations) — Draw a route from the reports that were received, break it wherever they stop, and mark the point where a decision about the route changes, with a solid line where it is decided and a void where it is not. What the usual view hides: The usual map draws a flight as one line. It bridges 5 min 42 s without reports as if they were flown, and it cannot show where along the route a claim about the flight stops being decided. Here the track breaks where the reports stop, the stretch where the reserve is decided to hold is solid, and the rest is a void with its reason. The figure: In WARRANT: the same map and track. From take-off to kilometre 40.8, where a Beta ALIA flying this far is decided to land above the FAA’s 20-minute reserve at every point of its published boxes, the track is a solid line, decided; it breaks where no reports arrived for 5 min 42 s, marked there with a hatched empty-set sign. From kilometre 40.8 to the landing at kilometre 57.9 the boxes straddle the reserve, so the route is a hatched void, refused, with no line inside it. Take-off and landing, both seen, are solid dots. The flight’s name is underlined dotted: it was picked by a stated rule, a choice. The corridors are guides and assert nothing.
  • A week of windows (a board of verdicts over time; from a record: certs/janela-decisions/20261023.json) — Give each verdict on a board its own shape and its word (cleared filled, blocked outlined, undecided hatched), and draw the part with nothing to decide on as one void with its reason, never as a blank. What the usual view hides: A go/no-go board fills the cells that are go and leaves the rest blank, so blocked, cannot tell and not forecast that far look alike. Here each has its own shape and its word, and the hours past the forecast are one void with its reason. The figure: In WARRANT: the same board. A start where every limit holds at the band’s unfavourable edge for all 48 hours is a filled bar, cleared, decided; one where even the favourable edge breaks the limit is an outlined bar, blocked, decided; one where the band straddles the limit is a hatched void, undecided; and the last 8 starts of every row, whose 48 hours run past the last forecast step, are one hatched void with the words past the forecast. The run is underlined dotted: one of the kept runs, chosen.
  • An operating window (a timeline over a forecast; from a record: certs/janela-ledger/202610.jsonl, certs/janela-decisions/20261023.json) — Draw a forecast dashed, the limit it is decided against solid, and the window the decision opens as a span with its word; where the forecast straddles the limit, draw the void, not a guess. What the usual view hides: The usual chart draws the forecast as if it were the sea, with one bar for when the job can start. The forecast is a claim: here it is dashed, the limit it is decided against is solid, and below them each start time carries its verdict, cleared where the band's top edge stays under the limit for the whole job and a void where the band straddles it or the job outruns the forecast. The figure: In WARRANT: the forecast band’s two edges dashed, computed, a claim of 9 in 10; the 2.0 m limit a solid line, decided, named in italic as the input the decision is made given; below, each start time’s verdict for a 48-hour launch: a filled bar, cleared, from Sat 18h to Tue 18h, where the band’s top edge stays under the limit for all 48 hours; hatched voids, undecided, where the band straddles it; and a hatched void where the 48 hours would run past the forecast. The site and run are underlined dotted: one row of the week above, chosen.
  • A forecast, graded (a forecast scored against what happened; from a record: certs/janela-ledger/202610.jsonl, certs/janela-ledger/DEFINITIONS.json) — Draw a forecast's band beside what was later observed, draw each miss as the gap between them, and print the count of hits against the coverage the forecast claimed. What the usual view hides: The usual verification plot lays forecasts and observations side by side and leaves the judging to the eye. Here each forecast is a claim, a miss is drawn as the gap between the claim and the sea, and the count of hits sits beside what each forecast claimed. The grade admits or prunes a forecaster; it never decides a window. The figure: In WARRANT: the same two rows. Each forecast is a bar, an extent whose body is a computed claim: filled where the satellite’s height fell inside it, outlined where it missed, with the miss drawn as a solid line from the bar’s edge to the height. Each pass is a solid dot. Each row prints what its forecast claimed, in italic, and how many passes it caught: the ensemble 1 of 14 against a claim of 4 in 5, the band 14 of 14 against 9 in 10. The site is underlined dotted: one of the ledger’s sites, chosen.
  • A light curve, and the stars it admits (measurements over time, with what they admit; from a record: instruments/transit/out/page.json, instruments/transit/out/witness.json) — Draw each measurement as the allowance it is judged with, a fitted model dashed, the extreme members the data admit dotted, and print the decided range in words, never one fit as the answer. What the usual view hides: The usual chart draws one fitted curve through the points, solid, and quotes its radius to four decimals. Other stars fit the same points. Here each measurement is drawn as the allowance it is judged with, the fit is dashed, two very different stars that both pass through every allowance are dotted, and the radius is the interval the data decide. The figure: In WARRANT: the same light curve, each of the 324 bins of the middle 2.6 hours drawn as a short vertical tick, the allowance the decision is made on; the conventional fit dashed, computed; two stars the instrument found that pass through every allowance, with radius ratios 0.119 and 0.197, dotted, each one member of the admitted set, chosen; and the radius ratio printed as the interval exact arithmetic decides, [0.1095, 0.3261]. The planet’s name is underlined dotted: one of the instrument’s two, chosen.
  • A price under a rule table (a step function; from a record: certs/pu-ledger.json, corpus/pu/holidays.json) — Draw a value a rule truncates or rounds as the flat treads it can take, never as a slope between them, mark the box of inputs a printed figure stands for, and say in words whether the printed output sits on a tread. What the usual view hides: The usual chart joins the prices into a sloping line and shows the printed one a little off it, which reads as rounding. The rule truncates, so the price moves in treads, and the printed rate stands for a whole box of rates. Here the treads are drawn flat, the box is marked, and the printed price sits on none of them: the gap is a decided fact, not noise. The figure: In WARRANT: the same frame. For each of the two registered settlement dates, named in italic, the prices the rule prints at two decimals across every rate the printed 9,41% allows, drawn as flat treads, decided, with no slope between them; the printed price, 644.25, a solid square above them, on no tread, and a solid line marking its 23 centavos above the primary settlement’s price at the printed rate; a solid bracket under the axis for the box of rates the decision covers. The bond and date are underlined dotted: one row of the ledger, chosen.
Fields, images and physics
  • A field from a model (a contour field from a model; from a record: playground/navier-stokes/out/scene.json, playground/navier-stokes/field.js, playground/navier-stokes/app.js) — Draw a field computed from a model dotted, as a picture of one chosen member, name its chosen inputs in italic, and draw solid only what the model decides, here the box its exact exponents fix. What the usual view hides: The usual contour plot of a model’s field looks like a measurement, with speeds printed on it. Here the contours are dotted, because the profiles behind them were picked to be legible and only the scalings are the paper’s; the one solid mark is the core box, whose shrinking rates are exact. The figure: In WARRANT: the same five speed levels dotted, chosen, because the core they draw is one flow picked from those with the paper’s scalings, so the field is a picture of the model; the core box solid, decided, because it shrinks at the paper’s exact exponents, τ to the one half across and τ to the one half minus h along the axis; the axis a guide; the chosen inputs h = 3/50 and τ = 0.01 named in italic. The contours are a picture; only the box’s shrinking rates are decided.
  • An image as a set of fits (an image as the set of skies fitted to the data; from a record: playground/interferometer/out/page-data.json) — Draw an image fitted to data as the set of its fits: ink where every fit agrees, texture where they differ (denser where more agree), edges in the stroke of how the fits were computed, and the level and the beam named as choices. What the usual view hides: The usual image is one sky out of the many that fit the same visibilities, and a picture cannot say which of its features the data force. Here the five fitted skies are drawn at once: ink where all five are bright, texture where only some are. The figure: In WARRANT: five skies fitted to the same released data, drawn at once, each centred on its own flux centroid and blurred to a 5 microarcsecond beam. Solid ink where all five are brighter than 40 percent of their own peak; dense dots where three or four are; sparse dots where one or two are. The edges are dashed, computed, because every sky is a fit in floating point; the level and the beam are choices, named in italic. All five agree on one bright patch; around it they differ.
  • A shape from its chords (a silhouette set from chords; from a record: instruments/occultation/out/page.json) — Draw a shape known only through cuts as the set of shapes the cuts allow: ink where every allowed shape covers, texture where some do, each cut and each empty probe as an observation, and a probe that returned nothing as a void with its reason. What the usual view hides: The usual sketch joins the chord ends into an outline that looks like the body. That outline is not concave, so no convex body has it. Here the body is the set of shapes the chords allow, and the stations that saw nothing, which set its ceiling, are drawn as observations. The figure: In WARRANT: the five chords solid, decided; every convex silhouette the chords allow at one stated error, drawn centred slice by slice: filled where every allowed silhouette covers, a dot texture where only some do, with the floor and the ceiling as solid edges, decided by exact arithmetic; the stations that saw nothing drawn as the tracks they watched, solid, because a miss is an observation; the two stations that returned no data drawn as hatched voids with their reason. The outline made by joining the chord ends is not drawn: it is not concave, so no convex body has it. The allowed area-equivalent diameter runs from 168.2 to 267.6 kilometres.
  • An error budget (an error budget as nested boxes; built from its equations) — Draw an error budget as nested enclosures, one per premise, innermost first: solid where it rests on the source’s literals or on boxes around what the source leaves out, dotted where it adds a chosen scenario, and name the chosen inputs in italic. What the usual view hides: The usual error bar is one cross of symmetric whiskers. It hides that the error is a box in two dimensions, and that its size rests on three different things: the paper’s numbers, the numbers the paper leaves out, and a lag the page chose. The figure: In WARRANT: three nested boxes of the range and elevation the rig cannot tell apart at the gauge, 34 metres out, each an enclosure computed in outward-rounded interval arithmetic. The innermost, solid, is the best corner of what the paper leaves unstated (2.9 centimetres tall); the middle, solid and lighter, covers every reading of the pixel pitch and matching precision the paper does not state (18.4 centimetres); the outer, dotted, chosen, adds a synchronisation lag of 1/60 second and a texture speed of 1 metre per second, named in italic (31.4 centimetres). Most of the height rests on what the paper leaves unstated and on the chosen lag, not on the paper’s own numbers.
  • A calibration and its set (a band of every admissible fit around the published line; from a record: playground/curveset/out/page.json, playground/curveset/envelope.js) — Draw a fitted curve dotted inside the band of every curve the data and the stated assumption allow, read a measurement back through the band as an extent, and say in words any point the axis cannot place. What the usual view hides: The usual calibration plot draws one fitted curve through the standards and reads a sample back to a number with a narrow ±. The fit is one member of a set: assuming only that more analyte means more signal, the standards allow every curve in the band, and the reading is anywhere between the two standards that bracket it. The figure: In WARRANT: the band of every monotone curve that passes within the stated error of all seven standards above zero, its edges dashed, computed, because the closed form is evaluated in floating point; the fitted logistic dotted inside it, chosen, one member picked by a fitting criterion; the standards as solid knots. A reading of 0.9 OD, a chosen example named in italic, reads back to the whole span from 12.5 to 25.0 pg/mL, drawn as an extent, against the fit’s own 18.37 plus or minus 0.80, dotted. The blank at zero is said in words, because a log axis cannot place it.
Geometry, networks and systems
  • A wiring diagram (a wiring diagram; from a record: playground/graph/out/spec.json, playground/graph/out/facts.json) — Draw each wire in the stroke of what its source emits (solid for exact, dashed for float), draw a deciding port as a square, keep every verdict port on the drawing whether it fired or not, and put a refused connection as a hatched void with the reason, never as a line. What the usual view hides: The usual diagram draws every connection as the same arrow, so it cannot show the one rule that matters: a value that came from floating point may prune, never decide. Here a wire is drawn in the stroke of what it carries, a port that decides is a square, a verdict port that never fired stays on the drawing, and the connection the engine refuses is a void with its reason. The figure: In WARRANT: the same three boxes. The sigma band emits exact intervals, so its three wires into the radii polynomial and its wire into the float screen are solid, decided. The float screen emits floats, so its shortlist leaves it as a dashed line, computed, and stops at a hatched void with the words "no wire into Y0: a float never decides": the engine refuses that wire, so no line is drawn into the port. The radii polynomial’s three input ports are filled squares because they decide; its three verdict ports are always drawn, certified filled with 39 cells, refuted and refused hollow with 0 and 0. All 39 cells on disk re-derived identically through the graph.
  • An attention row as a point (a point in a simplex; from a record: playground/simplex/out/decision.json) — Draw a composition that sums to one as a point in a simplex (restricted to a face you name in italic), each exact value a solid knot, a float path dashed, and magnify a short decided stretch in a ring rather than stretching the axes. What the usual view hides: Weights that sum to one are a point in a simplex, and a bar chart throws that away: thirty-one bars at one temperature say nothing about where the row is heading. Drawn as a point, the row’s path is visible, and the grammar shows how little of it is decided: nine solid knots near the centre, and a long dashed float trail to the corner. The figure: In WARRANT: the row restricted to its three most-attended positions, 20, 2, 13, and renormalised, drawn as a point of a triangle, a face of the simplex; the face is a choice, named in italic. The rational kernel’s row at its nine decided temperatures, β from 1/4 to 8, is nine solid knots, decided in exact arithmetic, all within a few pixels of the centre, magnified five times in a dotted ring. The softmax row is a dashed trail, computed in floating point, running from the centre to the corner of position 20 by β = 400. Thin solid rings are the participation ratio on the face at 1.5, 2 and 2.5, a ruler. What the figure shows: the decided part of the journey is a few pixels long; the long run to the corner is float.
  • An embedding with a tree (an embedding with decided edges; from a record: playground/neural-geometry/out/geometry.json) — Draw a layout placed by a float solver without measurement axes and say once that it is a chosen picture; draw an edge that the numbers force solid, an edge picked among exact ties dotted with its length, and its tied alternatives as faint guides. What the usual view hides: The usual scatter gives an eigendecomposition’s picture axes, as if its coordinates were measured, and draws every edge of the tree alike. Here the positions are said once to be a chosen picture, an edge in every minimum tree is solid, and an edge that ties with another of exactly the same length is dotted, its alternative drawn faintly beside it. The figure: In WARRANT: the same ten carnivores with no axes, because the positions are a picture chosen by an eigendecomposition in floating point (it holds 73% of the structure, a computed share), said once in italic. The minimum spanning tree of the model’s whole- and half-number dissimilarities is drawn edge by edge: seven edges are in every minimum tree and are solid, decided; two are tied with an edge outside the tree of exactly the same length, so the tree drawn is one of several and those edges are dotted, chosen; the tied alternatives are faint guide lines, and each tie is said in words under the drawing (tiger: leopard or lion, both 15; grizzly bear: leopard or lion, both 50). What the figure shows: the tree is decided except where two exact lengths are equal.
  • Records against a wall (a ladder of enclosures; from a record: instruments/pqc/out/audit.json) — Draw each value as the window its rounding leaves (a solid bracket) beside the printed figure (a dashed tick), put the threshold as a solid line, give each row its verdict word, and leave a hatched void where the window straddles the threshold. What the usual view hides: The usual chart puts every published ratio left of the wall, so every record looks accepted. Each norm was printed rounded to a whole number, so each ratio is really a window; drawn as windows, nine clear the wall and one crosses it, and its verdict is a void, open until someone publishes the norm in full. The figure: In WARRANT: the same ten records. Each record’s window, the exact range of its ratio for every true norm that prints as the published whole number, is a solid bracket, decided; the published six-figure ratio is a short dashed tick, computed, a float printed without a bound. The wall at 1.05 is a solid line. Nine windows end left of the wall and carry the word admissible; the nearest record, dimension 119 with norm 2904, has a window that crosses the wall, so whether it clears cannot be decided from what is published: its verdict cell is a hatched void marked open. A dotted line under the last row says the cut is chosen: the 27 records farther from the wall are not drawn.
  • A matrix of verdicts (a matrix of verdict words; from a record: instruments/wiring/eval/page.json) — Put the decided answer in the first column, write each claim’s own verdict word in its cell (underlined dashed, marked ≠ where it differs), leave a hatched void where no answer came, and when you sort the rows keep their labels and draw the order dotted. What the usual view hides: The usual grid fills a cell for right and leaves it empty for wrong, so a wrong verdict, a hedge and an answer that never came all look the same. Here each cell holds the word the model said, underlined dashed as a claim, beside the exact answer; a missing answer is a void, and the row order, a choice made to group the answers, is drawn dotted. The figure: In WARRANT: the same fifteen tasks, each row keeping its task number, the rows grouped by the exact answer (admissible, refused, straddles) and then by how many models disagree; a dotted line down the left edge says the order is chosen. The first column is the exact answer, decided, in plain words. Each model cell holds the model’s own verdict word, underlined dashed because a model’s answer is a claim it made, computed; a word that differs from the exact answer is brighter and carries ≠. A model that returned no verdict has a hatched void with the words no answer, not an empty cell. What the figure shows: 17 of the 22 wrong answers are NEEDS DATA, said of claims the arithmetic decides.
  • Lines of descent (arms over generations, with lines of descent; from a record: site/machinidae/data/era-0-1.json.gz) — Draw each arm’s best-so-far as a solid step line told apart by shape and weight, put the hand-made starting point as a dotted line named in italic, mark the winner’s ancestors as knots from the record’s parent pointers, and ring a winner that was picked from a tie dotted, saying from how many. What the usual view hides: The usual chart is a race of three curves from one start. Here the start is a program someone wrote, drawn dotted; each curve carries the births its winner descends from, read from the parent pointers; and a winner picked by birth order among births tied at the top score is ringed dotted, with how many it was picked from. The figure: In WARRANT: the same three arms, each at 16 births a generation (1,600 each). The founder PM-0 was written by hand, so its score is a dotted line across the plot, chosen, named in italic. Each arm’s best certified score so far is a solid step line, decided, from the generation one of its own births first beat the founder; before that the founder’s dotted line carries it. The arms are told apart by weight and by shape: the lineage a circle, rules a square, aleator a diamond. The knots on each line are the births its champion descends from, read from the record’s parent pointers: the lineage’s champion descends through thirteen earlier births, the rules arm’s through sixteen, aleator’s through none, because its children are each one fresh edit of the founder. The lineage’s champion is the only birth at its score, a plain knot; the rules arm’s is the earliest of 33 births tied at the top score and aleator’s the earliest of 21, so each is ringed dotted, chosen. What the figure shows: two of the three winners were picked by birth order among equals.
Numbers in prose and in tables
  • A paragraph and a table (numbers in prose and in a table; an illustration) — In text, underline each number by its standing, name a chosen input in italic, give a verdict as a word, write the reason in an empty cell, and list the premises with the weakest last. What the usual view hides: In prose a fit, a float interval and a rounded design value look the same, and a dash in a table could mean zero, missing or not applicable. Here each number wears its underline, the chosen family is named in italic, the verdict is a word, the empty cell says why, and the premises are listed with the weakest last.

The sixteen rules, and two rulings

  • Rule 1. Standing is not a verdict. A verdict is a word in a chip; what a mark rests on is its stroke or underline. They never share a channel, so a refutation proved here is drawn solid.
  • Rule 2. A pick is a member of its set, and the build checks it. A figure that draws one member of a set the data admit draws a real member, verified exactly when the page is built.
  • Rule 3. A tie is chosen. When the optimum is not unique, the one drawn was picked by a tie-break: dotted, and said to be one of several.
  • Rule 4. Dash is for standing only. Which series or model a line belongs to is carried by weight and opacity, never by a dash, in every figure.
  • Rule 5. The one accent. The red × marks an exhibited counterexample: an object that broke a claim made about its own record, with words. Never a verdict word, a region, a scalar comparison or a deduction. When in doubt, ink.
  • Rule 6. Mood. A verdict that holds given a chosen input names it in italic, given h = 3/50; a hypothesis read but not machine-checked is named the same way.
  • Rule 7. An empty set is ∅. It gets ∅ and a word, never a zero-height bar or a zero.
  • Rule 8. Every printed number comes from its record, rounded outward. The build refuses when a record stops supporting its sentence. A printed bound rounds outward, never truncated: drawn here on the hero’s own enclosure.
  • Rule 9. A legend wherever a mark is. Every page that uses a stroke or underline of the grammar prints its key; tools/check-wiring.js refuses one that does not.
  • Rule 10. A page copied in is never edited. It changes only through its wrapper, by anchored replacements that each refuse unless their anchor occurs exactly once.
  • Rule 11. A number that rests on a model names its premises. In the order the number travelled, each with its grade and record, ending with the weakest.
  • Rule 12. A comparison is calibrated first. Before a comparison is trusted, the build re-derives it and it must reproduce the published one it stands in for.
  • Rule 13. The halo. An extent carried by a model not validated where it is drawn keeps its crisp edges and gains a blur outside them.
  • Rule 14. A forecast is computed and dashed, on canvas too. A canvas takes the same patterns: setLineDash is given G.claim(width).
  • Rule 15. A field drawn from a model is a picture of it. For crests or streamlines, the legend says so once.
  • Rule 16. Where the model reads low, “under the limit” is flagged. A flag, not a refusal: a refusal would remove an exact statement.
  • Ruling. A layout placed by a float solver is a chosen picture. The caption says so once; each mark keeps the standing of what it asserts, so an edge that exists is solid.
  • Ruling. A model’s answer is a claim someone made. It is computed, dashed, like a number someone printed; on the wiring instruments its wire is dashed.

Colour

  • Ink first. Every figure reads in greyscale; a colour comes with a shape and a word.
  • One colour, one meaning, in every project on the grammar, each registered with its date.
  • Colour never carries standing. The stroke does; nor does it stand in for a verdict word.
  • Four kinds only: the witness, identity, order, status.
  • Every pair passes the validator, on the figure’s own ground, for every simulated deficiency.
  • No yellow, no orange.
  • A new colour needs the report and an approval, recorded in the rulebook.

In code

Python (matplotlib): copy kits/warrant-mpl from github.com/carlostoledo1891/cert-machine; then import warrant_mpl as wm; wm.use(); wm.knot(ax, x, level); wm.whisker(ax, x, lo, hi, wm.COMPUTED); wm.void(ax, x0, x1, words='refused'); wm.legend(ax); wm.line(ax, x, y, wm.COMPUTED, linestyle='-'). A caller cannot pass its own linestyle: the stroke is read from the standing.

JavaScript (SVG and HTML): playground/warrant.js and design/grammar.js. W.attrs(standing) returns the stroke attributes; W.value(text, standing) a number in text; W.legendHtml() the key. On a canvas, setLineDash takes the same patterns: 5 4 computed, 1 5 chosen.

How the site holds it

The display is a sound map of the record, and the build decides it: no mark may claim more than its record, in stroke, extent or word. check-grammar — only the five patterns may appear; three uses that are not lines are declared by name, each with its reason. The first census, on 5 September, counted twenty-five: the dash had been derived from the stroke width, one carrying 1.04 5.460000000000001 into published HTML. check-marks — a value printed from a record carries its address; every build follows it back and prints the datum again by the same rule. Four planted marks are refused on every run. check-wiring — a page with a mark of the grammar and no legend is refused; one hero per page, its × first and at weight. check-render — no leaked template text, no paint that does not resolve, no figure thinner in ink than its record, no script error. check-measure — every page driven in Chrome at 1440, 768, 390 px; left edges, overflow, escapes and clipped elements may only go down.

Generated at git 3cf797ac by tools/build-grammar.js. MIT.

contact

Write to Carlos

Sent by Web3Forms to Carlos’s inbox; nothing stored here.

Or write to carlos@carlostoledo.co, or open the public pilot form on GitHub.