Kenton Labs / Programs & systems

Distributed protocols

Treat atomicity and scheduling as part of a protocol model. A small interleaving can refute a plausible safety claim.

The vocabulary.

These definitions state the objects and properties used by the dataset. The complete instance specification remains the authority for each result.

Atomic step
An action observed as indivisible by other processes.
Mutual exclusion
At most one process occupies its critical section.
Interleaving
A sequence choosing one enabled process action at a time.

How the dataset works.

Three deterministic instances define this family. Each includes its input model, a checked result, evidence, and an acceptance procedure. Download the complete dataset JSON ↘ or the area’s readable source ↘.

Acceptance procedure

  1. Start all processes outside the critical section with a free lock.
  2. Explore every enabled interleaving to a complete reachable closure.
  3. Check the number of processes in the critical section at each state.
  4. For a failure, replay the provided schedule to the unsafe state.

Cost and scope

The finite state space is exponential in the number of processes; this family uses two or three one-shot processes.

A common failure

Separating a lock check from acquisition allows another process to observe the same free lock.

Explore the mechanics.

Change a local input or follow the steps. The stored result and its scope remain attached to the downloadable record.

Worked records.

Three instances expose concrete claims and the artifacts that establish or refute them. Expand a record for the problem, checker reasoning, formal payload, and verification metadata.

Atomic acquisition with two processesComplete reachable interleaving graph

The problem

Check mutual exclusion over all one-shot lock-acquisition interleavings.

The checked result

Mutual exclusion holds: yes.

An atomic acquisition prevents simultaneous entry. A split acquisition can let both processes remember a free lock before either marks it occupied.

Why the checker accepts it

  1. Start all processes outside the critical section with a free lock.
  2. Explore every enabled interleaving to a complete reachable closure.
  3. Check the number of processes in the critical section at each state.
  4. For a failure, replay the provided schedule to the unsafe state.

Formal specification

{
  "processes": 2,
  "mode": "atomic",
  "state_encoding": "process PCs, lock bit, process saved-free bits; PC 0=start, 1=checked, 2=critical, 3=done",
  "atomicity": "Atomic mode tests and acquires together; split mode tests then acquires in separate steps."
}

Claim and evidence

{
  "claim": {
    "mutual_exclusion": true
  },
  "witness": {
    "method": "reachable-state enumeration"
  }
}

Dataset construction

Deterministic finite fixture; full enumeration or witness replay as stated. Structured JSON; field meanings are stated in the specification. Acceptance covers 8 checker units for this record; the unit type is stated in its verification scope.

Complexity and limits

The finite state space is exponential in the number of processes; this family uses two or three one-shot processes.

This is a shared-memory mutual-exclusion model. It does not verify a network protocol, message loss, liveness, or fairness.

A boundary to investigate

Separating a lock check from acquisition allows another process to observe the same free lock. Extend from shared-memory concurrency to bounded message queues and explicit network faults.

Readable source ↘Record JSON ↘Full area ↗Related KL-FCS-053 ↘Related KL-FCS-054 ↘
A race between check and acquisitionComplete reachable interleaving graph

The problem

Check mutual exclusion over all one-shot lock-acquisition interleavings.

The checked result

Mutual exclusion holds: no.

An atomic acquisition prevents simultaneous entry. A split acquisition can let both processes remember a free lock before either marks it occupied.

Why the checker accepts it

  1. Start all processes outside the critical section with a free lock.
  2. Explore every enabled interleaving to a complete reachable closure.
  3. Check the number of processes in the critical section at each state.
  4. For a failure, replay the provided schedule to the unsafe state.

Formal specification

{
  "processes": 2,
  "mode": "split",
  "state_encoding": "process PCs, lock bit, process saved-free bits; PC 0=start, 1=checked, 2=critical, 3=done",
  "atomicity": "Atomic mode tests and acquires together; split mode tests then acquires in separate steps."
}

Claim and evidence

{
  "claim": {
    "mutual_exclusion": false
  },
  "witness": {
    "counterexample": [
      [
        0,
        0,
        0,
        0,
        0
      ],
      [
        1,
        0,
        0,
        1,
        0
      ],
      [
        1,
        1,
        0,
        1,
        1
      ],
      [
        2,
        1,
        1,
        1,
        1
      ],
      [
        2,
        2,
        1,
        1,
        1
      ]
    ]
  }
}

Dataset construction

Deterministic finite fixture; full enumeration or witness replay as stated. Structured JSON; field meanings are stated in the specification. Acceptance covers 26 checker units for this record; the unit type is stated in its verification scope.

Complexity and limits

The finite state space is exponential in the number of processes; this family uses two or three one-shot processes.

This is a shared-memory mutual-exclusion model. It does not verify a network protocol, message loss, liveness, or fairness.

A boundary to investigate

Separating a lock check from acquisition allows another process to observe the same free lock. Extend from shared-memory concurrency to bounded message queues and explicit network faults.

Readable source ↘Record JSON ↘Full area ↗Related KL-FCS-052 ↘Related KL-FCS-054 ↘
Atomic acquisition with three processesComplete reachable interleaving graph

The problem

Check mutual exclusion over all one-shot lock-acquisition interleavings.

The checked result

Mutual exclusion holds: yes.

An atomic acquisition prevents simultaneous entry. A split acquisition can let both processes remember a free lock before either marks it occupied.

Why the checker accepts it

  1. Start all processes outside the critical section with a free lock.
  2. Explore every enabled interleaving to a complete reachable closure.
  3. Check the number of processes in the critical section at each state.
  4. For a failure, replay the provided schedule to the unsafe state.

Formal specification

{
  "processes": 3,
  "mode": "atomic",
  "state_encoding": "process PCs, lock bit, process saved-free bits; PC 0=start, 1=checked, 2=critical, 3=done",
  "atomicity": "Atomic mode tests and acquires together; split mode tests then acquires in separate steps."
}

Claim and evidence

{
  "claim": {
    "mutual_exclusion": true
  },
  "witness": {
    "method": "reachable-state enumeration"
  }
}

Dataset construction

Deterministic finite fixture; full enumeration or witness replay as stated. Structured JSON; field meanings are stated in the specification. Acceptance covers 20 checker units for this record; the unit type is stated in its verification scope.

Complexity and limits

The finite state space is exponential in the number of processes; this family uses two or three one-shot processes.

This is a shared-memory mutual-exclusion model. It does not verify a network protocol, message loss, liveness, or fairness.

A boundary to investigate

Separating a lock check from acquisition allows another process to observe the same free lock. Extend from shared-memory concurrency to bounded message queues and explicit network faults.

Readable source ↘Record JSON ↘Full area ↗Related KL-FCS-052 ↘Related KL-FCS-053 ↘

Go further.

Extend from shared-memory concurrency to bounded message queues and explicit network faults.

Questions to investigate

  1. Separating a lock check from acquisition allows another process to observe the same free lock.
  2. Which assumption in the specification can be changed to make the current evidence insufficient?
  3. Extend from shared-memory concurrency to bounded message queues and explicit network faults.

Conceptual references

These sources explain the surrounding theory. The linked material was not imported as a dataset, and these records do not claim checking by the source’s software.

Related areas