Encyclopedia Cosmology Cosmology Statistics Kernels Plasma Pressure From Partition Function
ARTICLE 5 claims 5 theorems
Cosmology Statistics Kernels Plasma Pressure From Partition Function
A single formula for gas pressure now grows directly from counting particles, not from assumed formulas.
Where plasma pressure comes from
In statistical mechanics, the pressure of a gas of bosons or fermions is usually written down from known distribution functions. The framework's machine-checked library of formal theorems instead derives those distributions from a single starting point: the sum over all possible occupancies of a single energy mode, weighted by the Gibbs factor e−nE/T. For bosons, occupancy n can be any natural number; for fermions, Pauli exclusion restricts n to 0 or 1. Summing the geometric series gives the boson partition function (1−e−t)−1, and the two-state sum gives 1+e−t for fermions, where t = E/T.
From these partition functions, the library proves that the log of the partition function is exactly the pressure kernel: −ln(1−e−t) for bosons and ln(1+e−t) for fermions. It also proves that the average occupancy equals the Bose–Einstein distribution 1/(et−1) and the Fermi–Dirac distribution 1/(et+1), and that the energy kernel is t times that occupancy. A key thermodynamic consistency check follows: the derivative of ln Z with respect to t gives minus the occupancy, and in physical variables the derivative with respect to β = 1/T gives the energy per mode. The pressure and energy kernels are not independent inputs; they are derivative-related, exactly as the grand-canonical formalism demands.
The capstone theorem plasmaPressure_from_partitionFunction assembles these pieces into a single statement: the plasma pressure, previously defined through the phase-space integral of the log kernels, equals the same integral with the partition-function logs. In plain terms, the pressure of a boson–fermion plasma at temperature T can be computed from the sum over occupancy states alone, with no separate assumption about the pressure formula. The companion theorem plasmaEnergy_from_occupation does the same for energy density, starting from t times the occupancy. Both theorems hold for any positive temperature and for arbitrary boson and fermion degeneracy factors gB and gF.
What this does not claim: the Gibbs weight e−βE itself remains a model assumption, not a derived result. The occupancy sets, natural numbers for bosons and {0,1} for fermions, are also inputs; the framework's deeper derivation of the exclusion principle from its cost function is a separate result, and the bridge from that certificate to the set {0,1} remains open. The theorem proves the equivalence of two ways of writing the pressure, not the physical truth of the underlying ensemble.
THEOREM bosePartition_eq · fermiPartition_eq · IndisputableMonolith/Cosmology/StatisticsKernels.lean
/-- **Bose partition function** (geometric series): for `t > 0`,
`Z_B(t) = (1 − e^{−t})⁻¹`. -/
theorem bosePartition_eq {t : ℝ} (ht : 0 < t) :
bosePartition t = (1 - Real.exp (-t))⁻¹ := by
unfold bosePartition
simp only [boltzmannWeight_pow]
exact tsum_geometric_of_lt_one (le_of_lt (Real.exp_pos _))
(exp_neg_lt_one ht)
/-- **Fermi partition function** (two occupancy states):
`Z_F(t) = 1 + e^{−t}`, for every `t`. -/
theorem fermiPartition_eq (t : ℝ) :
fermiPartition t = 1 + Real.exp (-t) := by
unfold fermiPartition boltzmannWeight
simp [Finset.sum_range_succ]
THEOREM boseLogKernel_eq_log_partition · fermiLogKernel_eq_log_partition · IndisputableMonolith/Cosmology/StatisticsKernels.lean
/-- **THEOREM: the Bose pressure kernel is the log partition function.**
`−ln(1−e^{−t}) = ln Z_B(t)`. The kernel that was a definition in
`PhaseSpaceReduction` is the grand-canonical `ln Z` of one mode. -/
theorem boseLogKernel_eq_log_partition {t : ℝ} (ht : 0 < t) :
boseLogKernel t = Real.log (bosePartition t) := by
rw [bosePartition_eq ht, Real.log_inv]
rfl
/-- **THEOREM: the Fermi pressure kernel is the log partition function.**
`ln(1+e^{−t}) = ln Z_F(t)`. -/
theorem fermiLogKernel_eq_log_partition (t : ℝ) :
fermiLogKernel t = Real.log (fermiPartition t) := by
rw [fermiPartition_eq]
rfl
THEOREM boseOccupation_eq · fermiOccupation_eq · IndisputableMonolith/Cosmology/StatisticsKernels.lean
/-- **THEOREM (Bose–Einstein distribution).** The ensemble-mean
occupation of a bosonic mode is `⟨n⟩_B = 1/(eᵗ−1)`: the weighted
geometric series `Σ n·xⁿ = x/(1−x)²` divided by `Z_B = (1−x)⁻¹`. -/
theorem boseOccupation_eq {t : ℝ} (ht : 0 < t) :
boseOccupation t = 1 / (Real.exp t - 1) := by
unfold boseOccupation
rw [bosePartition_eq ht]
simp only [boltzmannWeight_pow]
have hx0 : (0 : ℝ) ≤ Real.exp (-t) := le_of_lt (Real.exp_pos _)
have hx1 : Real.exp (-t) < 1 := exp_neg_lt_one ht
rw [tsum_coe_mul_geometric_of_norm_lt_one
(by rw [Real.norm_of_nonneg hx0]; exact hx1)]
have hy : 1 < Real.exp t := one_lt_exp ht
have hy0 : Real.exp t ≠ 0 := ne_of_gt (Real.exp_pos t)
have hy1 : Real.exp t - 1 ≠ 0 := by linarith
have h1x : 1 - Real.exp (-t) ≠ 0 := by linarith
rw [Real.exp_neg]
rw [Real.exp_neg] at h1x
field_simp
/-- **THEOREM (Fermi–Dirac distribution).** The ensemble-mean occupation
of a fermionic mode is `⟨n⟩_F = 1/(eᵗ+1)`, for every `t` (the two-state
sum needs no convergence condition). -/
theorem fermiOccupation_eq (t : ℝ) :
fermiOccupation t = 1 / (Real.exp t + 1) := by
unfold fermiOccupation boltzmannWeight
rw [fermiPartition_eq]
simp only [Finset.sum_range_succ, Finset.sum_range_zero,
Nat.cast_zero, Nat.cast_one, zero_mul, one_mul, neg_zero,
Real.exp_zero, zero_add, add_zero]
have hy0 : Real.exp t ≠ 0 := ne_of_gt (Real.exp_pos t)
have hpos : (0 : ℝ) < 1 + Real.exp (-t) := by positivity
rw [Real.exp_neg]
rw [Real.exp_neg] at hpos
field_simp
THEOREM boseLogKernel_hasDerivAt · fermiLogKernel_hasDerivAt · IndisputableMonolith/Cosmology/StatisticsKernels.lean
/-- **THEOREM (grand-canonical consistency, Bose).** The mean occupation
is minus the derivative of the log partition function with respect to the
dimensionless energy: `d/dt[−ln(1−e^{−t})] = −⟨n⟩_B(t)`. The pressure
and energy kernels are therefore *one* input, not two. -/
theorem boseLogKernel_hasDerivAt {t : ℝ} (ht : 0 < t) :
HasDerivAt boseLogKernel (-(boseOccupation t)) t := by
have h1 : HasDerivAt (fun s : ℝ => -s) (-1) t := (hasDerivAt_id t).neg
have h2 : HasDerivAt (fun s : ℝ => Real.exp (-s))
(Real.exp (-t) * (-1)) t := (Real.hasDerivAt_exp (-t)).comp t h1
have h3 : HasDerivAt (fun s : ℝ => 1 - Real.exp (-s))
(0 - Real.exp (-t) * (-1)) t := (hasDerivAt_const t 1).sub h2
have hlt : Real.exp (-t) < 1 := exp_neg_lt_one ht
have hne : 1 - Real.exp (-t) ≠ 0 := by linarith
have h4 := (h3.log hne).neg
have heq : -((0 - Real.exp (-t) * (-1)) / (1 - Real.exp (-t)))
= -(boseOccupation t) := by
rw [boseOccupation_eq ht]
have hy0 : Real.exp t ≠ 0 := ne_of_gt (Real.exp_pos t)
have hy1 : Real.exp t - 1 ≠ 0 := by
have := one_lt_exp ht; linarith
rw [Real.exp_neg]
rw [Real.exp_neg] at hne
field_simp
ring
rw [← heq]
exact h4
/-- **THEOREM (grand-canonical consistency, Fermi).**
`d/dt[ln(1+e^{−t})] = −⟨n⟩_F(t)`, for every `t`. -/
theorem fermiLogKernel_hasDerivAt (t : ℝ) :
HasDerivAt fermiLogKernel (-(fermiOccupation t)) t := by
have h1 : HasDerivAt (fun s : ℝ => -s) (-1) t := (hasDerivAt_id t).neg
have h2 : HasDerivAt (fun s : ℝ => Real.exp (-s))
(Real.exp (-t) * (-1)) t := (Real.hasDerivAt_exp (-t)).comp t h1
have h3 : HasDerivAt (fun s : ℝ => 1 + Real.exp (-s))
(0 + Real.exp (-t) * (-1)) t := (hasDerivAt_const t 1).add h2
have hpos : (0 : ℝ) < 1 + Real.exp (-t) := by positivity
have h4 := h3.log (ne_of_gt hpos)
have heq : (0 + Real.exp (-t) * (-1)) / (1 + Real.exp (-t))
= -(fermiOccupation t) := by
rw [fermiOccupation_eq]
have hy0 : Real.exp t ≠ 0 := ne_of_gt (Real.exp_pos t)
rw [Real.exp_neg]
rw [Real.exp_neg] at hpos
field_simp
ring
rw [← heq]
exact h4
THEOREM plasmaPressure_from_partitionFunction · IndisputableMonolith/Cosmology/StatisticsKernels.lean
/-- **CAPSTONE (pressure).** The plasma pressure of the η_B chain equals
the phase-space integral of `T·ln Z_mode(E/T)` — the grand-canonical
pressure `P = (T/V)·ln Z` — with `Z_B = Σ_{n∈ℕ} e^{−nE/T}` and
`Z_F = Σ_{n∈{0,1}} e^{−nE/T}`. The log kernels are gone as inputs; only
the Gibbs weight and the occupancy sets remain. -/
theorem plasmaPressure_from_partitionFunction (gB gF : ℝ) {T : ℝ}
(hT : 0 < T) :
phaseSpaceDensity 3 gB T (fun t => Real.log (bosePartition t))
+ phaseSpaceDensity 3 gF T (fun t => Real.log (fermiPartition t))
= GrandPotential.plasmaPressure gB gF T := by
have hB := phaseSpaceDensity_congr_pos gB T hT
(fun t => Real.log (bosePartition t)) boseLogKernel
(fun t ht => (boseLogKernel_eq_log_partition ht).symm)
have hF := phaseSpaceDensity_congr_pos gF T hT
(fun t => Real.log (fermiPartition t)) fermiLogKernel
(fun t _ => (fermiLogKernel_eq_log_partition t).symm)
rw [hB, hF]
exact PhaseSpaceReduction.plasmaPressure_from_phaseSpace gB gF hT
What this page does not claim
The Gibbs weight e<sup>−βE</sup> is a model assumption, not a derived result. The occupancy sets for bosons and fermions are inputs, not derived from the framework's exclusion principle. The theorem proves equivalence of pressure formulas, not the physical truth of the grand-canonical ensemble.
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/Cosmology/StatisticsKernels.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:
- How does the framework derive the Pauli exclusion principle from its cost function?
- What physical conditions justify the Gibbs weight as the correct ensemble measure?
- How does the phase-space integral over three dimensions relate to the framework's derivation of spatial dimensionality?
MACHINE LAYER · GROUNDED CLAIM TABLE · CLICK TO EXPAND
THEOREM bosePartition_eq · fermiPartition_eq · IndisputableMonolith/Cosmology/StatisticsKernels.lean
/-- **Bose partition function** (geometric series): for `t > 0`, `Z_B(t) = (1 − e^{−t})⁻¹`. -/ theorem bosePartition_eq {t : ℝ} (ht : 0 < t) : bosePartition t = (1 - Real.exp (-t))⁻¹ := by unfold bosePartition simp only [boltzmannWeight_pow] exact tsum_geometric_of_lt_one (le_of_lt (Real.exp_pos _)) (exp_neg_lt_one ht)/-- **Fermi partition function** (two occupancy states): `Z_F(t) = 1 + e^{−t}`, for every `t`. -/ theorem fermiPartition_eq (t : ℝ) : fermiPartition t = 1 + Real.exp (-t) := by unfold fermiPartition boltzmannWeight simp [Finset.sum_range_succ]The boson partition function equals (1−e<sup>−t</sup>)<sup>−1</sup> and the fermion partition function equals 1+e<sup>−t</sup>. bosePartition_eq · fermiPartition_eq · IndisputableMonolith/Cosmology/StatisticsKernels.leanTHEOREM boseLogKernel_eq_log_partition · fermiLogKernel_eq_log_partition · IndisputableMonolith/Cosmology/StatisticsKernels.lean
/-- **THEOREM: the Bose pressure kernel is the log partition function.** `−ln(1−e^{−t}) = ln Z_B(t)`. The kernel that was a definition in `PhaseSpaceReduction` is the grand-canonical `ln Z` of one mode. -/ theorem boseLogKernel_eq_log_partition {t : ℝ} (ht : 0 < t) : boseLogKernel t = Real.log (bosePartition t) := by rw [bosePartition_eq ht, Real.log_inv] rfl/-- **THEOREM: the Fermi pressure kernel is the log partition function.** `ln(1+e^{−t}) = ln Z_F(t)`. -/ theorem fermiLogKernel_eq_log_partition (t : ℝ) : fermiLogKernel t = Real.log (fermiPartition t) := by rw [fermiPartition_eq] rflThe log of the partition function equals the pressure kernel for both bosons and fermions. boseLogKernel_eq_log_partition · fermiLogKernel_eq_log_partition · IndisputableMonolith/Cosmology/StatisticsKernels.leanTHEOREM boseOccupation_eq · fermiOccupation_eq · IndisputableMonolith/Cosmology/StatisticsKernels.lean
/-- **THEOREM (Bose–Einstein distribution).** The ensemble-mean occupation of a bosonic mode is `⟨n⟩_B = 1/(eᵗ−1)`: the weighted geometric series `Σ n·xⁿ = x/(1−x)²` divided by `Z_B = (1−x)⁻¹`. -/ theorem boseOccupation_eq {t : ℝ} (ht : 0 < t) : boseOccupation t = 1 / (Real.exp t - 1) := by unfold boseOccupation rw [bosePartition_eq ht] simp only [boltzmannWeight_pow] have hx0 : (0 : ℝ) ≤ Real.exp (-t) := le_of_lt (Real.exp_pos _) have hx1 : Real.exp (-t) < 1 := exp_neg_lt_one ht rw [tsum_coe_mul_geometric_of_norm_lt_one (by rw [Real.norm_of_nonneg hx0]; exact hx1)] have hy : 1 < Real.exp t := one_lt_exp ht have hy0 : Real.exp t ≠ 0 := ne_of_gt (Real.exp_pos t) have hy1 : Real.exp t - 1 ≠ 0 := by linarith have h1x : 1 - Real.exp (-t) ≠ 0 := by linarith rw [Real.exp_neg] rw [Real.exp_neg] at h1x field_simp/-- **THEOREM (Fermi–Dirac distribution).** The ensemble-mean occupation of a fermionic mode is `⟨n⟩_F = 1/(eᵗ+1)`, for every `t` (the two-state sum needs no convergence condition). -/ theorem fermiOccupation_eq (t : ℝ) : fermiOccupation t = 1 / (Real.exp t + 1) := by unfold fermiOccupation boltzmannWeight rw [fermiPartition_eq] simp only [Finset.sum_range_succ, Finset.sum_range_zero, Nat.cast_zero, Nat.cast_one, zero_mul, one_mul, neg_zero, Real.exp_zero, zero_add, add_zero] have hy0 : Real.exp t ≠ 0 := ne_of_gt (Real.exp_pos t) have hpos : (0 : ℝ) < 1 + Real.exp (-t) := by positivity rw [Real.exp_neg] rw [Real.exp_neg] at hpos field_simpThe average occupancy equals the Bose–Einstein distribution 1/(e<sup>t</sup>−1) and the Fermi–Dirac distribution 1/(e<sup>t</sup>+1). boseOccupation_eq · fermiOccupation_eq · IndisputableMonolith/Cosmology/StatisticsKernels.leanTHEOREM boseLogKernel_hasDerivAt · fermiLogKernel_hasDerivAt · IndisputableMonolith/Cosmology/StatisticsKernels.lean
/-- **THEOREM (grand-canonical consistency, Bose).** The mean occupation is minus the derivative of the log partition function with respect to the dimensionless energy: `d/dt[−ln(1−e^{−t})] = −⟨n⟩_B(t)`. The pressure and energy kernels are therefore *one* input, not two. -/ theorem boseLogKernel_hasDerivAt {t : ℝ} (ht : 0 < t) : HasDerivAt boseLogKernel (-(boseOccupation t)) t := by have h1 : HasDerivAt (fun s : ℝ => -s) (-1) t := (hasDerivAt_id t).neg have h2 : HasDerivAt (fun s : ℝ => Real.exp (-s)) (Real.exp (-t) * (-1)) t := (Real.hasDerivAt_exp (-t)).comp t h1 have h3 : HasDerivAt (fun s : ℝ => 1 - Real.exp (-s)) (0 - Real.exp (-t) * (-1)) t := (hasDerivAt_const t 1).sub h2 have hlt : Real.exp (-t) < 1 := exp_neg_lt_one ht have hne : 1 - Real.exp (-t) ≠ 0 := by linarith have h4 := (h3.log hne).neg have heq : -((0 - Real.exp (-t) * (-1)) / (1 - Real.exp (-t))) = -(boseOccupation t) := by rw [boseOccupation_eq ht] have hy0 : Real.exp t ≠ 0 := ne_of_gt (Real.exp_pos t) have hy1 : Real.exp t - 1 ≠ 0 := by have := one_lt_exp ht; linarith rw [Real.exp_neg] rw [Real.exp_neg] at hne field_simp ring rw [← heq] exact h4/-- **THEOREM (grand-canonical consistency, Fermi).** `d/dt[ln(1+e^{−t})] = −⟨n⟩_F(t)`, for every `t`. -/ theorem fermiLogKernel_hasDerivAt (t : ℝ) : HasDerivAt fermiLogKernel (-(fermiOccupation t)) t := by have h1 : HasDerivAt (fun s : ℝ => -s) (-1) t := (hasDerivAt_id t).neg have h2 : HasDerivAt (fun s : ℝ => Real.exp (-s)) (Real.exp (-t) * (-1)) t := (Real.hasDerivAt_exp (-t)).comp t h1 have h3 : HasDerivAt (fun s : ℝ => 1 + Real.exp (-s)) (0 + Real.exp (-t) * (-1)) t := (hasDerivAt_const t 1).add h2 have hpos : (0 : ℝ) < 1 + Real.exp (-t) := by positivity have h4 := h3.log (ne_of_gt hpos) have heq : (0 + Real.exp (-t) * (-1)) / (1 + Real.exp (-t)) = -(fermiOccupation t) := by rw [fermiOccupation_eq] have hy0 : Real.exp t ≠ 0 := ne_of_gt (Real.exp_pos t) rw [Real.exp_neg] rw [Real.exp_neg] at hpos field_simp ring rw [← heq] exact h4The derivative of the log partition function with respect to t gives minus the occupancy. boseLogKernel_hasDerivAt · fermiLogKernel_hasDerivAt · IndisputableMonolith/Cosmology/StatisticsKernels.leanTHEOREM plasmaPressure_from_partitionFunction · IndisputableMonolith/Cosmology/StatisticsKernels.lean
/-- **CAPSTONE (pressure).** The plasma pressure of the η_B chain equals the phase-space integral of `T·ln Z_mode(E/T)` — the grand-canonical pressure `P = (T/V)·ln Z` — with `Z_B = Σ_{n∈ℕ} e^{−nE/T}` and `Z_F = Σ_{n∈{0,1}} e^{−nE/T}`. The log kernels are gone as inputs; only the Gibbs weight and the occupancy sets remain. -/ theorem plasmaPressure_from_partitionFunction (gB gF : ℝ) {T : ℝ} (hT : 0 < T) : phaseSpaceDensity 3 gB T (fun t => Real.log (bosePartition t)) + phaseSpaceDensity 3 gF T (fun t => Real.log (fermiPartition t)) = GrandPotential.plasmaPressure gB gF T := by have hB := phaseSpaceDensity_congr_pos gB T hT (fun t => Real.log (bosePartition t)) boseLogKernel (fun t ht => (boseLogKernel_eq_log_partition ht).symm) have hF := phaseSpaceDensity_congr_pos gF T hT (fun t => Real.log (fermiPartition t)) fermiLogKernel (fun t _ => (fermiLogKernel_eq_log_partition t).symm) rw [hB, hF] exact PhaseSpaceReduction.plasmaPressure_from_phaseSpace gB gF hTThe plasma pressure computed from the partition-function logs equals the previously defined plasma pressure. plasmaPressure_from_partitionFunction · IndisputableMonolith/Cosmology/StatisticsKernels.lean