Refutation and counterexample

A false claim is rejected with a concrete counterexample, which the kernel checks too.

An equally clear answer the other way

When a claim is false, Slean does not answer “not proved”. It looks for one specific configuration on which the quantity changes, and the kernel checks that computation. A refutation is therefore as reliable as a proof.

An example

Claim: “in rule 30, the number of black cells never changes”. Take a ring of 3 cells with a single black cell.

The smallest counterexample

beforeafter one step1 black cell3 black cells
  1. cell 1 reads100 → 1
  2. cell 2 reads001 → 1
  3. cell 3 reads010 → 1
Found by search in your browser: the first ring of at least 3 cells on which rule 30 changes the number of black cells.

After one step, all three cells are black. The number of black cells goes from 1 to 3. The claim is false, and this ring of 3 cells is the witness.

In Lean

Lean 4
theorem rule30_refuted :
    ¬ Conserved (eca 30) (tableFn 2 [0, 1]) 1 :=
  not_conserved_of_witness _ _ 1 [0, 0, 1]
    (by decide) (by decide +kernel) (by decide +kernel)

The theorem not_conserved_of_witness says: if one concrete configuration has its total change in one step, then the quantity is not conserved. The three final checks confirm that the world has at least one state, that the configuration is valid, and that the two totals differ.

Why it is useful

  • A false proposal costs one proposal from the budget, and it leaves a trace: the refutation goes into the library.
  • An agent that proposes at random piles up refutations, and the measurement sees it. See Measuring a discovery.
  • Refutations are published alongside successes. That is one of the measurement rules.

The detailed example is on the page A refuted law.