structure
definition
NuclearConfig
show as:
view math explainer →
open explainer
Generate a durable explainer page for this declaration.
open lean source
IndisputableMonolith.Engineering.FissionTransmutationStructure on GitHub at line 50.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
used by
-
cost_monotone_descent_terminates -
DoublyMagicAttractor -
efficiency_bounded -
fission_transmutation_from_ledger -
fission_transmutation_structure -
nuclearCost -
nuclear_cost_nonneg -
nuclear_cost_zero_iff_stable -
perfect_transmutation_efficiency -
stable_config -
stable_end_state_exists -
stable_is_optimal -
strict_transmutation_progress -
transmutation_cost_pos -
transmutation_efficiency -
TransmutationPath -
TransmutationStep
formal source
47/-- A nuclear configuration parameterized by its ledger ratio x.
48 x = 1 corresponds to perfectly stable (doubly-magic) nuclei.
49 x ≠ 1 corresponds to unstable/radioactive nuclei. -/
50structure NuclearConfig where
51 /-- The stability ratio: x = 1 for perfectly stable. -/
52 ratio : ℝ
53 ratio_pos : 0 < ratio
54
55/-- The J-cost (instability measure) of a nuclear configuration. -/
56def nuclearCost (cfg : NuclearConfig) : ℝ := Jcost cfg.ratio
57
58/-- **THEOREM EN-006.1**: Nuclear cost is non-negative. -/
59theorem nuclear_cost_nonneg (cfg : NuclearConfig) : 0 ≤ nuclearCost cfg :=
60 Jcost_nonneg cfg.ratio_pos
61
62/-- **THEOREM EN-006.2**: Nuclear cost is zero iff the nucleus is in the ground state
63 (doubly-magic, x = 1). -/
64theorem nuclear_cost_zero_iff_stable (cfg : NuclearConfig) :
65 nuclearCost cfg = 0 ↔ cfg.ratio = 1 := by
66 unfold nuclearCost
67 constructor
68 · intro h
69 rw [Jcost_eq_sq cfg.ratio_pos.ne'] at h
70 have hden : 0 < 2 * cfg.ratio := by linarith [cfg.ratio_pos]
71 have hnum : (cfg.ratio - 1) ^ 2 = 0 := by
72 have := div_eq_zero_iff.mp h
73 exact this.resolve_right (ne_of_gt hden)
74 have hne' : cfg.ratio - 1 = 0 := by
75 by_contra h'
76 have hpos : 0 < (cfg.ratio - 1) ^ 2 := by
77 rw [← sq_abs]; exact pow_pos (abs_pos.mpr h') 2
78 linarith
79 linarith
80 · intro h; rw [h]; exact Jcost_unit0