Protocol
Protocol supplies the base record type for any RS measurement extraction procedure. Calibration and alignment code cite it to bundle a stable name, status, assumptions, and explicit falsifiers. The declaration is a plain structure with four fields defaulted to empty or spec status.
claimA measurement protocol is a record with a short stable identifier $name$, an optional human-readable summary, a status flag, a list of explicit assumptions, and a list of falsifiers that would refute the protocol.
background
The RS-Native Measurement Framework keeps all extraction steps explicit by attaching a protocol record to every observable. Core units are the tick and voxel with $τ_0=1$, $c=1$, and action quantum $act=φ^{-5}$; SI values appear only through optional external calibration. Protocols therefore carry falsifiers so that windowing or basis choices remain testable rather than hidden.
proof idea
The declaration is a structure definition that introduces the five fields with defaults for summary, status, assumptions, and falsifiers.
why it matters in Recognition Science
Protocol is the common interface extended by AlignmentProtocol and instantiated by tau0_seconds_protocol in single-anchor calibration. It enforces the framework rule that every measurement must list its falsifiers, supporting hygiene theorems and the separation between RS-native observables and SI reporting.
scope and limits
- Does not define the concrete extraction function from state to observable value.
- Does not implement the hygiene predicate; that is supplied by a separate theorem.
- Does not restrict the semantic content of the assumption or falsifier strings.
- Does not encode any specific RS observable such as act or coh.
Lean usage
def tau0_seconds_protocol : Protocol := { name := 'calibration.single_anchor.tau0_seconds', summary := 'Single-anchor SI calibration. Supply τ0 (seconds per tick) as the only empirical scalar.' }
formal statement (Lean)
33structure Protocol where
34 /-- Short protocol identifier (stable, machine-friendly). -/
35 name : String
36 /-- Human-readable summary. -/
37 summary : String := ""
proof body
Definition body.
38 /-- Claim hygiene for the extraction step. -/
39 status : Status := .spec
40 /-- Explicit assumptions (kept small and testable). -/
41 assumptions : List String := []
42 /-- Falsifiers: what would prove this protocol wrong. -/
43 falsifiers : List String := []
44
45namespace Protocol
46
47/-- Protocol hygiene predicate (v1/v2).
48
49Rules:
50- `name` must be non-empty
51- if `status` is `.hypothesis` or `.scaffold`, both `assumptions` and `falsifiers` must be non-empty -/