Encyclopedia Chemistry Chemistry Oxidation States Derived Oxidation Count Law Available
ARTICLE 4 claims 2 theorems 2 models
Chemistry Oxidation States Derived Oxidation Count Law Available
A machine-checked certificate confirms that a formal law for oxidation states remains available, and that iron and manganese target lists are installed.
The availability certificate
An oxidation state is the charge an atom would have if its bonds were ionic, a bookkeeping number chemists use to track electron transfer in reactions. Iron's common states include +2 and +3; manganese is famous for reaching +7. The declaration oxidation_count_law_available is a formal certificate, a machine-checked statement inside a library of formal theorems, that a previously proved count-law spine remains available. It establishes that the certificate type OxidationStateCert is inhabited, meaning the earlier law that counts oxidation states from electron configuration is still present and usable.
Alongside that availability certificate, the same module installs a target table for two elements. For iron, atomic number 26, the table lists [0, 2, 3, 6]. For manganese, atomic number 25, it lists [-1, 0, 2, 3, 4, 6, 7]. Theorems in the module verify that iron's list has no duplicates, manganese's list has no duplicates, manganese's list has length seven, and manganese reaches +7. These are target-level definitions, not derived results: the table states what the framework aims to derive, not what it has already proved from first principles.
The distinction matters. The availability certificate is a proved theorem, tagged THEOREM in the framework's ledger. The target lists are definitions, tagged MODEL, because they encode a choice about which oxidation states should be accessible. The next theorem must derive these lists from valence occupation plus J-cost removal, the framework's cost function. That derivation remains open; the current module only installs the targets and certifies that the count-law spine is available to support future work.
What the declaration does not claim is equally important. It does not claim that iron and manganese actually exhibit all listed states in nature, nor that the lists are complete. It does not claim the target lists are derived from the framework's cost function. It only claims availability of the count-law certificate and the installation of target tables. The empirical chemistry, the measured oxidation states of real elements, remains a separate check against these targets.
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
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 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 []
THEOREM iron_oxidation_states_nodup · manganese_oxidation_states_nodup · manganese_state_count · manganese_max_seven · IndisputableMonolith/Chemistry/OxidationStatesDerived.lean
/-- Iron's target list has no duplicate oxidation states. -/
theorem iron_oxidation_states_nodup :
(accessibleOxidationStates 26).Nodup := by
native_decide
/-- Manganese's target list has no duplicate oxidation states. -/
theorem manganese_oxidation_states_nodup :
(accessibleOxidationStates 25).Nodup := by
native_decide
/-- The manganese target list has the canonical seven common states. -/
theorem manganese_state_count :
(accessibleOxidationStates 25).length = 7 := by
native_decide
/-- Manganese reaches +7. -/
theorem manganese_max_seven :
(7 : Int) ∈ accessibleOxidationStates 25 := by
native_decide
What this page does not claim
The target lists are derived from the framework's cost function. Iron and manganese exhibit all listed oxidation states in nature. The target tables are complete for either element.
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:
- Can the target lists for iron and manganese be derived from valence occupation plus J-cost removal?
- What does the count-law spine actually state about oxidation state counts?
- Do the target tables match measured oxidation states for iron and manganese?
- Which other elements will receive target tables in later phases?
MACHINE LAYER · GROUNDED CLAIM TABLE · CLICK TO EXPAND
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_inhabitedThe declaration oxidation_count_law_available establishes that the certificate type OxidationStateCert is inhabited, meaning the earlier law that counts oxidation states from electron configuration is still present and usable. oxidation_count_law_available · 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 []For iron, atomic number 26, the table lists [0, 2, 3, 6]. accessibleOxidationStates · 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 []For manganese, atomic number 25, it lists [-1, 0, 2, 3, 4, 6, 7]. accessibleOxidationStates · IndisputableMonolith/Chemistry/OxidationStatesDerived.leanTHEOREM iron_oxidation_states_nodup · manganese_oxidation_states_nodup · manganese_state_count · manganese_max_seven · IndisputableMonolith/Chemistry/OxidationStatesDerived.lean
/-- Iron's target list has no duplicate oxidation states. -/ theorem iron_oxidation_states_nodup : (accessibleOxidationStates 26).Nodup := by native_decide/-- Manganese's target list has no duplicate oxidation states. -/ theorem manganese_oxidation_states_nodup : (accessibleOxidationStates 25).Nodup := by native_decide/-- The manganese target list has the canonical seven common states. -/ theorem manganese_state_count : (accessibleOxidationStates 25).length = 7 := by native_decide/-- Manganese reaches +7. -/ theorem manganese_max_seven : (7 : Int) ∈ accessibleOxidationStates 25 := by native_decideTheorems in the module verify that iron's list has no duplicates, manganese's list has no duplicates, manganese's list has length seven, and manganese reaches +7. iron_oxidation_states_nodup · manganese_oxidation_states_nodup · manganese_state_count · manganese_max_seven · IndisputableMonolith/Chemistry/OxidationStatesDerived.lean