Skip to content

docs: work the mgtt reading through - #2

Merged
sajonaro merged 1 commit into
mainfrom
mgtt-bridge-docs
Aug 14, 2026
Merged

docs: work the mgtt reading through#2
sajonaro merged 1 commit into
mainfrom
mgtt-bridge-docs

Conversation

@sajonaro

Copy link
Copy Markdown
Contributor

Follow-up to #1, which merged while this was being written. Documentation only — no code.

Adds docs/mgtt-bridge.md: the reasoning behind the mapping, which the verb's --help deliberately does not carry. It argues rather than instructs, in the register of interrogator.md.

What it works through:

  • Why the reduction is lossless. mgtt's expression language has six comparison operators and no arithmetic, so the constants a model mentions cut each fact's values into regions on which every predicate is constant. Two values in one region were already indistinguishable to mgtt's own engine.
  • Why cutting alone is wrong. Regions nothing separates are merged, or the model carries distinctions no rule can make. Illustrated with two integer facts from the same worked model, both compared against zero, that come out with three members and two — because the models ask different questions of them.
  • Why facts are the only varying cells. Carrying mgtt's state names as an arrow is the obvious translation and it fails: state and health are both predicates over facts, so carrying the state makes their agreement something the emitter computes rather than something writ decides. A law you evaluate yourself is a lint.
  • Why an overriding component needs its own type. §8.6 requires a law's subject to be a declared type, and a component overriding healthy: is exactly the case worth catching, so components are grouped by (type, effective healthy).
  • Why origination moves cannot be omitted. Propagation only relays; without them the model enumerates one situation and every law holds because nothing reaches a counterexample. Measured: 1 situation / 0 edges without, 36 / 138 with.
  • What an answer costs. No move restores health, so the product never forms — the reachable set is the consistent failure configurations. Repair moves would change that, which is why they are deliberate rather than default.
  • What is declined, and the two things out of scope by design (probe cost, staleness) rather than declined.

Also adds a README row, a short ### Architecture models section beside the SQL one, and a Documentation entry.

Every number and every emitted fragment quoted is real output, not illustrative.

The verb's reference is in --help; this is the reasoning behind the
mapping: why facts stop being numbers without loss, why facts are the
only varying cells, why an overriding component needs its own type, why
origination moves cannot be omitted, and what is declined.
@sajonaro
sajonaro merged commit df2118e into main Aug 14, 2026
1 check passed
@github-actions github-actions Bot locked and limited conversation to collaborators Aug 14, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant