IndisputableMonolith.Cosmology.GravitationalLensingFromRS
IndisputableMonolith/Cosmology/GravitationalLensingFromRS.lean · 50 lines · 7 declarations
show as:
view math explainer →
1import Mathlib
2import IndisputableMonolith.Constants
3
4/-!
5# Gravitational Lensing from RS — Cosmology Depth
6
7Five canonical lensing regimes (= configDim D = 5):
8 weak lensing, strong lensing, microlensing, cluster lensing, time-delay.
9
10Each regime has a characteristic deflection angle on the φ-ladder.
11
12Lean status: 0 sorry, 0 axiom.
13-/
14
15namespace IndisputableMonolith.Cosmology.GravitationalLensingFromRS
16open Constants
17
18inductive LensingRegime where
19 | weakLensing
20 | strongLensing
21 | microlensing
22 | clusterLensing
23 | timeDelay
24 deriving DecidableEq, Repr, BEq, Fintype
25
26theorem lensingRegime_count : Fintype.card LensingRegime = 5 := by decide
27
28noncomputable def deflectionAngle (k : ℕ) : ℝ := phi ^ k
29
30theorem deflection_ratio (k : ℕ) :
31 deflectionAngle (k + 1) / deflectionAngle k = phi := by
32 unfold deflectionAngle
33 have hpos : (0 : ℝ) < phi ^ k := pow_pos phi_pos k
34 rw [div_eq_iff hpos.ne', pow_succ]
35 ring
36
37theorem deflection_pos (k : ℕ) : 0 < deflectionAngle k := pow_pos phi_pos k
38
39structure GravitationalLensingCert where
40 five_regimes : Fintype.card LensingRegime = 5
41 phi_ratio : ∀ k, deflectionAngle (k + 1) / deflectionAngle k = phi
42 deflection_always_pos : ∀ k, 0 < deflectionAngle k
43
44noncomputable def gravitationalLensingCert : GravitationalLensingCert where
45 five_regimes := lensingRegime_count
46 phi_ratio := deflection_ratio
47 deflection_always_pos := deflection_pos
48
49end IndisputableMonolith.Cosmology.GravitationalLensingFromRS
50