Expand description
Lean verification bridge for Telltale protocol-machine artifacts.
This crate provides bidirectional conversion between Rust protocol/session artifacts and Lean-compatible JSON format, enabling proof-backed Lean validation of protocol-machine properties.
§Features
runner(default) - Enable LeanRunner for invoking the Lean binarycli- Enable command-line interface binary
§Overview
The bridge supports:
- Export: Convert Rust types to Lean-compatible JSON
- Import: Parse Lean JSON output into Rust types
- Validation: Cross-validate Rust implementations against Lean proofs (requires
runnerfeature)
§JSON Format
The JSON format matches the Lean type definitions:
{
"kind": "comm",
"sender": "Client",
"receiver": "Server",
"branches": [
{
"label": { "name": "request", "sort": "unit" },
"continuation": { "kind": "end" }
}
]
}§Example
use telltale_types::{GlobalType, Label};
use telltale_bridge::export::global_to_json;
let g = GlobalType::comm(
"Client",
"Server",
vec![(Label::new("hello"), GlobalType::End)],
);
let json = global_to_json(&g);
assert_eq!(json["kind"], "comm");Re-exports§
pub use export::global_to_json;pub use export::local_to_json;pub use import::json_to_global;pub use import::json_to_local;pub use import::ImportError;pub use invariants::export_protocol_bundle;pub use invariants::AccountableSafetyConfig;pub use invariants::AvailabilityLevel;pub use invariants::ByzantineSafetyConfig;pub use invariants::CAPConfig;pub use invariants::CRDTConfig;pub use invariants::ClassicalClaims;pub use invariants::ConcentrationConfig;pub use invariants::ConsensusEnvelopeConfig;pub use invariants::ConsistencyLevel;pub use invariants::CoordinationConfig;pub use invariants::DataAvailabilityConfig;pub use invariants::DistributedClaims;pub use invariants::FLPConfig;pub use invariants::FailureDetectorsConfig;pub use invariants::FailureEnvelopeConfig;pub use invariants::FaultModel;pub use invariants::FluidConfig;pub use invariants::FosterConfig;pub use invariants::FunctionalCLTConfig;pub use invariants::HeavyTrafficConfig;pub use invariants::InvariantClaims;pub use invariants::LDPConfig;pub use invariants::LittlesLawConfig;pub use invariants::LivenessConfig;pub use invariants::MachineBundleConversionError;pub use invariants::MaxWeightConfig;pub use invariants::MeanFieldConfig;pub use invariants::MixingConfig;pub use invariants::NakamotoConfig;pub use invariants::PartialSynchronyConfig;pub use invariants::PartitionModel;pub use invariants::ProtocolBundle;pub use invariants::ProtocolEnvelopeBridgeConfig;pub use invariants::ProtocolMachineEnvelopeAdherenceConfig;pub use invariants::ProtocolMachineEnvelopeAdmissionConfig;pub use invariants::QuorumGeometryConfig;pub use invariants::QuorumSystemKind;pub use invariants::ReconfigurationConfig;pub use invariants::ResponsivenessConfig;pub use invariants::SchedulerKind;pub use invariants::SpectralGapTerminationConfig;pub use invariants::TimingModel;pub use invariants::PROTOCOL_BUNDLE_SCHEMA_VERSION;pub use protocol_machine_trace::event_session;pub use protocol_machine_trace::normalize_semantic_audit;pub use protocol_machine_trace::observationally_equivalent;pub use protocol_machine_trace::partition_by_session;pub use protocol_machine_trace::semantic_audits_equivalent;pub use protocol_machine_trace::EffectTraceEvent;pub use protocol_machine_trace::NormalizedEvent;pub use protocol_machine_trace::OutputConditionTraceEvent;pub use protocol_machine_trace::ProtocolMachineReplayBundle;pub use protocol_machine_trace::SessionTrace;pub use protocol_machine_trace::TopologyPerturbationEvent;pub use protocol_machine_trace::TopologyPerturbationKind;pub use schema::canonical_schema_version;pub use schema::deserialize_schema_version;pub use schema::ensure_supported_schema_version;pub use schema::is_supported_schema_version;pub use schema::LEAN_BRIDGE_SCHEMA_VERSION;pub use semantic_objects::canonical_semantic_objects_schema_version;pub use semantic_objects::semantic_objects_from_json;pub use semantic_objects::semantic_objects_to_json;pub use semantic_objects::TickedObsEvent;pub use equivalence::CoherenceBundle;pub use equivalence::EquivalenceChecker;pub use equivalence::EquivalenceConfig;pub use equivalence::EquivalenceError;pub use equivalence::EquivalenceResult;pub use equivalence::GoldenBundle;pub use heap_parity_runner::HeapParityCommitment;pub use heap_parity_runner::HeapParityHeapFixtureOutput;pub use heap_parity_runner::HeapParityOutput;pub use heap_parity_runner::HeapParityProof;pub use heap_parity_runner::HeapParityProofStep;pub use heap_parity_runner::HeapParityReplayOutput;pub use heap_parity_runner::HeapParityResourceFixtureOutput;pub use heap_parity_runner::HeapParityResourceId;pub use heap_parity_runner::HeapParityRunner;pub use heap_parity_runner::HeapParityRunnerError;pub use heap_parity_runner::HeapParityStateSummary;pub use runner::ChoreographyJson;pub use runner::LeanRunner;pub use runner::LeanRunnerError;pub use runner::LeanValidationResult;pub use runner::RegularPracticalFragmentCheckResult;pub use sim_reference::SimRunInput;pub use sim_reference::SimRunOutput;pub use sim_reference::SimTraceValidation;pub use sim_reference::SimulationStructuredError;pub use protocol_machine_runner::compute_trace_diff;pub use protocol_machine_runner::ComparisonResult;pub use protocol_machine_runner::InvariantVerificationResult;pub use protocol_machine_runner::LeanStructuredError;pub use protocol_machine_runner::ProtocolMachineRunInput;pub use protocol_machine_runner::ProtocolMachineRunOutput;pub use protocol_machine_runner::ProtocolMachineRunner;pub use protocol_machine_runner::ProtocolMachineRunnerError;pub use protocol_machine_runner::ProtocolMachineSessionStatus;pub use protocol_machine_runner::ProtocolMachineStepState;pub use protocol_machine_runner::ProtocolMachineTraceEvent;pub use protocol_machine_runner::TraceValidation;pub use protocol_machine_runner::ReconfigurationValidationResult;pub use bridge_normalization::bridge_normalization_ledger;pub use bridge_normalization::BridgeNormalizationClassification;pub use bridge_normalization::BridgeNormalizationEntry;pub use bridge_normalization::SchemaVersionBackfillPath;pub use bridge_normalization::SCHEMA_VERSION_BACKFILL_PATHS;pub use validate::ValidationResult;pub use validate::Validator;
Modules§
- bridge_
normalization - Canonical ledger for the Rust/Lean bridge normalization trust surface.
- equivalence
- Equivalence Checking for Rust ↔ Lean Session Type Algorithms
- export
- Export Rust types to Lean-compatible JSON.
- heap_
parity_ runner - Lean heap parity runner wrapper.
- import
- Import Lean JSON into Rust types.
- invariants
- Typed invariant-claims schema for proof-oriented protocol bundles.
- protocol_
machine_ runner - Lean protocol-machine runner wrapper.
- protocol_
machine_ trace - Semantic-audit normalization helpers for cross-runtime comparison.
- runner
- Lean Runner - Invokes the Lean validator binary.
- schema
- Schema versioning helpers for Lean bridge payloads.
- semantic_
objects - Protocol-machine semantic object export helpers for Lean bridge payloads.
- sim_
reference - Lean reference simulator bridge payloads.
- validate
- Cross-validation between Rust and Lean implementations.
Structs§
- Authoritative
Read - First-class view of one authoritative read/proof-bearing check.
- Canonical
Handle - First-class strong handle surfaced from sanctioned semantic paths.
- Materialization
Proof - First-class view of one materialization proof.
- Observed
Read - First-class view of one observational read.
- Operation
Instance - First-class view of one operation instance.
- Outstanding
Effect - First-class view of one deferred or completed effect.
- Progress
Contract - Explicit progress contract attached to one operation instance.
- Progress
Transition - Replay-visible progress transition for one operation-level contract.
- Protocol
Machine Semantic Objects - Canonical bundle of semantic objects exported by the protocol machine.
- Publication
Event - Canonical semantic publication event.
- Region
- Canonical framing and locality domain for one session-scoped semantic slice.
- Semantic
Handoff - First-class view of one semantic handoff.
- Transformation
Obligation - Explicit transformation-local obligation bundle carried by one handoff.
Enums§
- Authoritative
Read Kind - Class of authoritative read/proof surface.
- Authoritative
Read Lifecycle - Lifecycle for one authoritative read/proof artifact.
- Canonical
Handle Kind - Kind of canonical handle surfaced by the runtime.
- Delegation
Status - Delegation outcome carried by the canonical semantic-object family.
- Operation
Phase - Lifecycle phase for one operation instance.
- Outstanding
Effect Status - Canonical status for one effect that is visible on the semantic path.
- Ownership
Scope - Ownership scope carried by the canonical semantic-object family.
- Progress
State - Progress state for one operation-level contract.
- Publication
Observer Class - Observer/export class for one canonical publication path.
- Publication
Status - Status for one canonical publication event.
Constants§
- SEMANTIC_
OBJECTS_ SCHEMA_ VERSION - Canonical schema version identifier for semantic-object exports.