def
definition
equilibria
show as:
view math explainer →
open explainer
Generate a durable explainer page for this declaration.
open lean source
IndisputableMonolith.RRF.Core.Octave on GitHub at line 44.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
-
octave -
State -
octave -
has -
one -
is -
one -
is -
octave -
is -
octave -
is -
octave -
State -
equilibrium -
one -
one -
equilibria -
equilibria
used by
formal source
41variable (O : Octave)
42
43/-- The equilibrium states of an octave. -/
44def equilibria : Set O.State := O.strain.equilibria
45
46/-- An octave is well-posed if it has at least one equilibrium. -/
47def wellPosed : Prop := ∃ x : O.State, O.strain.isBalanced x
48
49end Octave
50
51/-- A morphism between octaves: a map that preserves strain ordering. -/
52structure OctaveMorphism (O₁ O₂ : Octave) where
53 /-- The underlying map on states. -/
54 map : O₁.State → O₂.State
55 /-- The map preserves strain ordering. -/
56 preserves_order : ∀ x y, O₁.strain.weaklyBetter x y →
57 O₂.strain.weaklyBetter (map x) (map y)
58
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]