The Robbins conjecture #
Herbert Robbins asked in 1933 whether the following three axioms,
with ⊔ and ᶜ as in BooleanAlgebra, yield an algebra equivalent to Boolean algebra:
⊔is commutative and associative- For all
aandb,((a ⊔ b)ᶜ ⊔ (a ⊔ bᶜ)ᶜ)ᶜ = a
This conjecture was only proved in 1997 by an early automated theorem prover under the direction of William McCune by deriving Huntington's equation:
- For all
aandb,(aᶜ ⊔ bᶜ)ᶜ ⊔ (aᶜ ⊔ b)ᶜ = a
With the axioms on ⊔ this had been shown by Edward Huntington to be equivalent to Boolean algebra,
just before Robbins made his conjecture.
The formalisation in this file largely follows Matthew Wampler-Doty's Isabelle formalisation, which in turn follows Allen L. Mann's A Complete Proof of the Robbins Conjecture. Some differences include:
- For ease of typing and clarity around negations, algebraic notation is used for Robbins algebras:
- + 0 1instead ofᶜ ⊔ ⊥ ⊤. - After deriving Huntington's equation we derive the
BooleanAlgebrainstance directly. Wampler-Doty went through an axiomatisation with 9 axioms found in a textbook. - To make the manipulations in Mann's presentation explicit, we do not automate proofs with
grind, onlyac_rflfor rearranging terms andliafor numeric comparisons. Wampler-Doty relies heavily onmetis, a rough Isabelle equivalent ofgrind.
The type of Robbins algebras.
Instances
Derive a Robbins algebra from a Boolean algebra.
Equations
Instances For
Sum a number of copies of an element. Not intended to be used for 0 copies (although the
ultimately correct value of -(a + -a) is included for completeness).
Equations
- RobbinsAlgebra.smul 0 x✝ = -(x✝ + -x✝)
- RobbinsAlgebra.smul 1 x✝ = x✝
- RobbinsAlgebra.smul k.succ.succ x✝ = RobbinsAlgebra.smul (k + 1) x✝ + x✝
Instances For
Equations
- RobbinsAlgebra.instSMulNat = { smul := RobbinsAlgebra.smul }
Equations
- One or more equations did not get rendered due to their size.
Derive a Boolean algebra from a Robbins algebra.
Equations
- One or more equations did not get rendered due to their size.