Encyclopedia Chemistry Chemistry Oxidation States Derived Must
ARTICLE 4 claims 3 theorems 1 model
Chemistry Oxidation States Derived Must
A machine-checked table now lists iron's and manganese's accessible oxidation states, but the chemistry that produces those lists is still a stated goal, not a proved result.
What the target table installs
In chemistry, an oxidation state is a bookkeeping number assigned to an atom in a compound, representing the charge the atom would have if all bonds were ionic. Iron's common states include +2 and +3; manganese is famous for reaching +7, as in permanganate. The Recognition Science framework's ledger, a discrete record of such bookkeeping events, now carries a machine-checked target table for these two elements. The table states that iron's accessible oxidation states are 0, +2, +3, and +6, and manganese's are -1, 0, +2, +3, +4, +6, and +7.
The declarations in the framework's machine-checked library of formal theorems do not claim to explain these lists. They install them as targets. The file's own documentation says the definitions are target-level for the selected elements. The next theorem must derive these lists from valence occupation plus J-cost removal, where J-cost is the framework's forced recognition cost. That derivation is the open problem; the current file only certifies that the lists are installed, contain no duplicates, and that manganese's list has seven entries.
What the declarations do prove is narrow and exact. The theorem iron_oxidation_states proves the list for iron equals [0, 2, 3, 6]. The theorem manganese_max_seven proves that 7 is a member of manganese's list. The theorem manganese_state_count proves the list has length seven. A separate theorem, oxidation_count_law_available, confirms that an earlier module's oxidation count-law certificate remains available, meaning a prior spine about counting is still in force. These are computational checks on a fixed table, not derivations from first principles.
The honest reading is that the framework has placed a stake in the ground. It names what it expects to derive for iron and manganese, and it certifies that the target table is internally consistent. The chemistry itself, the reason these particular states appear, is not yet proved. That is the next theorem's job, and the framework says so plainly in its own notes.
THEOREM iron_oxidation_states · IndisputableMonolith/Chemistry/OxidationStatesDerived.lean
/-- Iron's accessible oxidation states in the Phase 8 target table. -/
theorem iron_oxidation_states :
accessibleOxidationStates 26 = [0, 2, 3, 6] := by
native_decide
THEOREM manganese_max_seven · IndisputableMonolith/Chemistry/OxidationStatesDerived.lean
/-- Manganese reaches +7. -/
theorem manganese_max_seven :
(7 : Int) ∈ accessibleOxidationStates 25 := by
native_decide
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 []
What this page does not claim
The framework does not claim to derive these oxidation states from first principles. The framework does not claim these lists are complete for all elements. The framework does not claim to explain why iron lacks a +7 state.
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 derivation from valence occupation would produce iron's list [0, 2, 3, 6]?
- Why does manganese's list include -1, a state absent from iron's?
- How does J-cost removal select these particular oxidation states and not others?
- Does the count-law certificate from the earlier module constrain the target lists?
MACHINE LAYER · GROUNDED CLAIM TABLE · CLICK TO EXPAND
THEOREM iron_oxidation_states · IndisputableMonolith/Chemistry/OxidationStatesDerived.lean
/-- Iron's accessible oxidation states in the Phase 8 target table. -/ theorem iron_oxidation_states : accessibleOxidationStates 26 = [0, 2, 3, 6] := by native_decideIron's accessible oxidation states are 0, +2, +3, and +6. iron_oxidation_states · IndisputableMonolith/Chemistry/OxidationStatesDerived.leanTHEOREM manganese_max_seven · IndisputableMonolith/Chemistry/OxidationStatesDerived.lean
/-- Manganese reaches +7. -/ theorem manganese_max_seven : (7 : Int) ∈ accessibleOxidationStates 25 := by native_decideManganese's accessible oxidation states include +7. manganese_max_seven · IndisputableMonolith/Chemistry/OxidationStatesDerived.leanTHEOREM 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_decideManganese's target list has seven entries. 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 definitions are still target-level for the selected elements. accessibleOxidationStates · IndisputableMonolith/Chemistry/OxidationStatesDerived.lean