pith. machine review for the scientific record. sign in
def

id

definition
show as:
view math explainer →
module
IndisputableMonolith.RRF.Core.Octave
domain
RRF
line
62 · github
papers citing
none yet

open explainer

Generate a durable explainer page for this declaration.

open lean source

IndisputableMonolith.RRF.Core.Octave on GitHub at line 62.

browse module

All declarations in this module, on Recognition.

explainer page

Tracked in the explainer inventory; generation is lazy so crawlers do not trigger LLM jobs.

open explainer

depends on

used by

formal source

  59namespace OctaveMorphism
  60
  61/-- Identity morphism. -/
  62def id (O : Octave) : OctaveMorphism O O where
  63  map := fun x => x
  64  preserves_order := fun _ _ h => h
  65
  66/-- Composition of morphisms. -/
  67def comp {O₁ O₂ O₃ : Octave}
  68    (g : OctaveMorphism O₂ O₃) (f : OctaveMorphism O₁ O₂) : OctaveMorphism O₁ O₃ where
  69  map := g.map ∘ f.map
  70  preserves_order := fun x y h => g.preserves_order _ _ (f.preserves_order x y h)
  71
  72/-- Morphisms preserve equilibria (if target has NonNeg strain). -/
  73theorem preserves_equilibria {O₁ O₂ : Octave}
  74    [inst : StrainFunctional.NonNeg O₂.strain]
  75    (f : OctaveMorphism O₁ O₂)
  76    (x : O₁.State) (hx : O₁.strain.isBalanced x)
  77    (hf : O₂.strain.J (f.map x) ≤ O₁.strain.J x) :
  78    O₂.strain.isBalanced (f.map x) := by
  79  simp only [StrainFunctional.isBalanced] at *
  80  rw [hx] at hf
  81  have h₁ := @StrainFunctional.NonNeg.nonneg _ O₂.strain inst (f.map x)
  82  linarith
  83
  84end OctaveMorphism
  85
  86/-- Two octaves are equivalent if there exist mutually inverse morphisms
  87    that both preserve strain exactly (isometric in both directions). -/
  88structure OctaveEquiv (O₁ O₂ : Octave) where
  89  /-- Forward morphism. -/
  90  toFun : OctaveMorphism O₁ O₂
  91  /-- Backward morphism. -/
  92  invFun : OctaveMorphism O₂ O₁