Declaring what a network solve is
One page for whoever is building a pressure-dependent network deposit. A solve can state what its outputs
are outputs of (target), the recipe it used (protocol) and the evidence it cites (validation); each fit can state which
determination it is a representation of. All are optional, attributed claims. TCKDB stores what you state,
never guesses, and anything not stated reads null, which means "not stated": not "valid everywhere" and not "independent".
Nothing here changes how networks are browsed or evaluated. The declarations let a later, opt-in selection establish that two solves answer the same question before it compares them.
Determinations and their fits
A determination is one channel's coefficient from one solve. A PLOG fit and a Chebyshev fit of the same solve output are two representations of one determination, and they are not independent evidence for each other.
{
"channel_key": "association_path",
"model_kind": "plog",
"plog": {"entries": [ ... ]},
"determination": {
"key": "assoc",
"representation_role": "complete",
"observable": {"version": 1, "observable": "product_resolved_coefficient", "coefficient_basis": "kernel",
"reaction_order": 2, "degeneracy_applied": true}
},
"representation": {"version": 1, "key": "plog1", "fit_origin": "solver_output"}
}
- Send
determinationandrepresentationtogether. Fits that state the samekeyshare the determination and must state the same channel and observable. Each fit has its ownrepresentation.key. reaction_ordermust equal the number of species of the channel's source state, and the fit's own rate units (rate_units, and each PLOG entry'sa_units) must be of that order: a unimolecular channel isper_s.- A determination is addressed by
channel_key; a fit named only bysource_state_keyandsink_state_keycannot declare one. - A fit that states neither keeps the old rule: one entry per channel and model kind. Where a channel and model kind occur more than once, every entry of that group must declare its determination and representation key.
representation_role:complete(a whole representation),additive_component(one term of a sum) oroverlapping_contribution(contains part of what another fit contains, never summed).
The target
States are named by your local key; what is stored is each state's composition hash. A stated partition places
every state of the network exactly once (retained, eliminated, or in one lump). bath_scope must agree with the
solve's bath gas. outputs lists directed channels: supplied needs a determination of that channel, unavailable
says the solve does not give it (never zero), and declared_zero needs a zero_basis. product_sets name declared
complete sets of determinations; each is pinned when stored and several sets are separate competitors.
What a declaration cannot contradict
The solve's own columns and rows stay authoritative, and a declaration that disagrees with one is refused, never
reconciled: bath_scope against the bath gas; a declared validity against the solve's temperature and pressure
range (it cannot exceed them); protocol.barrier_basis against the correction convention the stated state energies
and channel barriers carry (a classical electronic basis against one that includes zero-point energy, and the
converse; rows that state no convention contradict nothing); an output the catalog calls unavailable or
declared_zero against a fit that declares a determination of that channel. A validation entry's
reference_solve_ref must name a solve you may see; one that does not exist and one you may not see get the same
unknown_network_solve_ref (404).
Refusals
network_declaration_invalid (context.field names the declaration) and network_declaration_version_unsupported
(only version 1). A declaration that contradicts the network or a column of the solve is refused, never reconciled.