pith. machine review for the scientific record. sign in

IndisputableMonolith.Physics.PlasmonicModesFromPhiLadder

IndisputableMonolith/Physics/PlasmonicModesFromPhiLadder.lean · 51 lines · 7 declarations

show as:
view math explainer →

open module explainer GitHub source

Explainer status: pending

   1import Mathlib
   2import IndisputableMonolith.Constants
   3
   4/-!
   5# Plasmonic Modes from φ-ladder — B15 Photonics Depth
   6
   7Five canonical plasmonic mode types (= configDim D = 5):
   8  surface plasmon polariton, localized surface plasmon, propagating,
   9  bulk, gap plasmon.
  10
  11Each mode's characteristic frequency sits one rung up the φ-ladder.
  12
  13Lean status: 0 sorry, 0 axiom.
  14-/
  15
  16namespace IndisputableMonolith.Physics.PlasmonicModesFromPhiLadder
  17open Constants
  18
  19inductive PlasmonicMode where
  20  | surfacePlasmonPolariton
  21  | localizedSurface
  22  | propagating
  23  | bulk
  24  | gapPlasmon
  25  deriving DecidableEq, Repr, BEq, Fintype
  26
  27theorem plasmonicMode_count : Fintype.card PlasmonicMode = 5 := by decide
  28
  29noncomputable def plasmonFrequency (k : ℕ) : ℝ := phi ^ k
  30
  31theorem frequency_ratio (k : ℕ) :
  32    plasmonFrequency (k + 1) / plasmonFrequency k = phi := by
  33  unfold plasmonFrequency
  34  have hpos : (0 : ℝ) < phi ^ k := pow_pos phi_pos k
  35  rw [div_eq_iff hpos.ne', pow_succ]
  36  ring
  37
  38theorem frequency_pos (k : ℕ) : 0 < plasmonFrequency k := pow_pos phi_pos k
  39
  40structure PlasmonicModeCert where
  41  five_modes : Fintype.card PlasmonicMode = 5
  42  phi_ratio : ∀ k, plasmonFrequency (k + 1) / plasmonFrequency k = phi
  43  frequency_always_pos : ∀ k, 0 < plasmonFrequency k
  44
  45noncomputable def plasmonicModeCert : PlasmonicModeCert where
  46  five_modes := plasmonicMode_count
  47  phi_ratio := frequency_ratio
  48  frequency_always_pos := frequency_pos
  49
  50end IndisputableMonolith.Physics.PlasmonicModesFromPhiLadder
  51

source mirrored from github.com/jonwashburn/shape-of-logic