Encyclopedia Chemistry Chemistry Oxidation States Derived Manganese State Count
ARTICLE 4 claims 2 theorems 2 models
Chemistry Oxidation States Derived Manganese State Count
A machine-checked library states that manganese has seven accessible oxidation states, but the list itself remains a target, not a derived result.
The manganese target table
In chemistry, an oxidation state is a number assigned to an atom that counts how many electrons it has gained or lost relative to the neutral element. Manganese, atomic number 25, is famous for using nearly its full range: it appears in compounds with oxidation states from -1 up to +7, as in permanganate ion. The common textbook list runs -1, 0, 2, 3, 4, 6, 7, which is seven distinct states.
The Recognition Science framework's machine-checked library of formal theorems contains a declaration, manganese_state_count, that proves a simple fact about a list: the list named accessibleOxidationStates for element 25 has length 7. That list is exactly the common one, [-1, 0, 2, 3, 4, 6, 7]. The proof is by direct computation, native_decide, meaning the Lean kernel checked that the length of this concrete list is 7.
What the declaration does not do is derive that list from first principles. The library's own docstring says these are target-level definitions for selected elements, installed as acceptance cases in a periodic-table closure plan. A separate module, OxidationStateFromConfigDim, proves a count-law spine, and the certificate oxidation_count_law_available records that such a proof exists. But the next theorem, one that would derive these seven states from valence electron configuration plus J-cost removal, is not present. The list is a definitional choice, not a proved consequence.
The practical upshot: within the framework, the statement that manganese has seven accessible oxidation states is a verified fact about a chosen list, and the list matches standard chemistry. The derivation that would make it a forced result remains open. A reader should not take this declaration as evidence that the framework explains why manganese, rather than some other element, has this particular set of states.
THEOREM manganese_state_count · IndisputableMonolith/Chemistry/OxidationStatesDerived.lean
/-- The manganese target list has the canonical seven common states. -/
theorem manganese_state_count :
(accessibleOxidationStates 25).length = 7 := by
native_decide
MODEL accessibleOxidationStates · IndisputableMonolith/Chemistry/OxidationStatesDerived.lean
/-- Target accessible oxidation states for selected elements. -/
def accessibleOxidationStates (Z : Nat) : List Int :=
if Z = 26 then [0, 2, 3, 6]
else if Z = 25 then [-1, 0, 2, 3, 4, 6, 7]
else []
MODEL OxidationStatesDerivedCert · IndisputableMonolith/Chemistry/OxidationStatesDerived.lean
/-- Phase 8B certificate: oxidation-state targets are installed. -/
structure OxidationStatesDerivedCert : Prop where
iron_exact : accessibleOxidationStates 26 = [0, 2, 3, 6]
manganese_reaches_seven : (7 : Int) ∈ accessibleOxidationStates 25
manganese_count : (accessibleOxidationStates 25).length = 7
iron_nodup : (accessibleOxidationStates 26).Nodup
manganese_nodup : (accessibleOxidationStates 25).Nodup
count_law : Nonempty OxidationStateFromConfigDim.OxidationStateCert
THEOREM oxidation_count_law_available · IndisputableMonolith/Chemistry/OxidationStatesDerived.lean
/-- The count-law oxidation certificate remains available. -/
theorem oxidation_count_law_available :
Nonempty OxidationStateFromConfigDim.OxidationStateCert :=
OxidationStateFromConfigDim.cert_inhabited
What this page does not claim
The list of seven states is derived from valence occupation plus J-cost removal; it is only targeted. The framework explains why manganese, rather than another element, has this particular set of states. The declaration proves anything about real chemical measurements or observed oxidation states.
Verify this page
Every tagged claim above names its theorem. To check one yourself rather than trust this page, elaborate the source module with Lean 4 and audit its axiom basis:
$ lake env lean IndisputableMonolith/Chemistry/OxidationStatesDerived.lean
expected axiom basis: [propext, Classical.choice, Quot.sound] (the Lean kernel's standard three; no RS-specific axioms)
A page whose claims cannot be reproduced this way does not ship. In production, every anchor links to the exact declaration in the public source release, and this block carries the build receipt for the page itself.
Derived articles
This page is generated by a question-recursion engine: the questions its answers raise become the next pages. The current agenda, with open targets marked red:
- What valence configuration rule would force exactly these seven states for manganese?
- Does the count-law spine apply to all elements or only to the selected acceptance cases?
- Why does the target list for iron omit the +1 state that appears in some manganese compounds?
- What would a derived list look like, and how would it differ from this target table?
MACHINE LAYER · GROUNDED CLAIM TABLE · CLICK TO EXPAND
THEOREM manganese_state_count · IndisputableMonolith/Chemistry/OxidationStatesDerived.lean
/-- The manganese target list has the canonical seven common states. -/ theorem manganese_state_count : (accessibleOxidationStates 25).length = 7 := by native_decideThe list named accessibleOxidationStates for element 25 has length 7. manganese_state_count · IndisputableMonolith/Chemistry/OxidationStatesDerived.leanMODEL accessibleOxidationStates · IndisputableMonolith/Chemistry/OxidationStatesDerived.lean
/-- Target accessible oxidation states for selected elements. -/ def accessibleOxidationStates (Z : Nat) : List Int := if Z = 26 then [0, 2, 3, 6] else if Z = 25 then [-1, 0, 2, 3, 4, 6, 7] else []The list is exactly the common one, [-1, 0, 2, 3, 4, 6, 7]. accessibleOxidationStates · IndisputableMonolith/Chemistry/OxidationStatesDerived.leanMODEL OxidationStatesDerivedCert · IndisputableMonolith/Chemistry/OxidationStatesDerived.lean
/-- Phase 8B certificate: oxidation-state targets are installed. -/ structure OxidationStatesDerivedCert : Prop where iron_exact : accessibleOxidationStates 26 = [0, 2, 3, 6] manganese_reaches_seven : (7 : Int) ∈ accessibleOxidationStates 25 manganese_count : (accessibleOxidationStates 25).length = 7 iron_nodup : (accessibleOxidationStates 26).Nodup manganese_nodup : (accessibleOxidationStates 25).Nodup count_law : Nonempty OxidationStateFromConfigDim.OxidationStateCertThe definitions are target-level for selected elements, not derived from first principles. OxidationStatesDerivedCert · IndisputableMonolith/Chemistry/OxidationStatesDerived.leanTHEOREM oxidation_count_law_available · IndisputableMonolith/Chemistry/OxidationStatesDerived.lean
/-- The count-law oxidation certificate remains available. -/ theorem oxidation_count_law_available : Nonempty OxidationStateFromConfigDim.OxidationStateCert := OxidationStateFromConfigDim.cert_inhabitedA separate module proves a count-law spine, and a certificate records that such a proof exists. oxidation_count_law_available · IndisputableMonolith/Chemistry/OxidationStatesDerived.lean