def
definition
comp
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 67.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
used by
-
actionJ_convex_on_interp -
energy_conservation -
comp -
comp_apply -
comp_id -
CostMorphism -
eq_id_or_reciprocal -
id_comp -
reciprocal_comp_reciprocal -
CostAlgHomKappa -
CostAlgPlusHom -
ledgerAlg_comp -
monotone_preserves_argmin -
octaveAlg_comp -
phiRing_comp -
recAlg_comp -
recAlg_comp_assoc -
recAlg_id_left -
recAlg_id_right -
aestronglyMeasurable_galerkinForcing_mode_of_continuous -
divConstraint_eq_zero_of_forall -
duhamelKernelDominatedConvergenceAt_of_forcing -
duhamelRemainderOfGalerkin_integratingFactor -
galerkinNS_hasDerivAt_duhamelRemainder_mode -
hasDerivAt_extendByZero_apply -
nsDuhamel_of_forall -
nsDuhamel_of_forall_kernelIntegral_of_forcing -
stokesMild_of_forall -
stokesODE -
deriv_alphaInv_of_gap -
dAlembert_classification -
dAlembert_contDiff_nat -
dAlembert_contDiff_top -
dAlembert_to_ODE_general -
representation_formula -
dAlembert_contDiff_nat -
dAlembert_contDiff_top -
dAlembert_to_ODE_general -
representation_formula -
neg_log_sin_tendsto_atTop_at_zero_right
formal source
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₁
93 /-- Strain is preserved exactly (forward isometry). -/
94 strain_eq : ∀ x, O₂.strain.J (toFun.map x) = O₁.strain.J x
95 /-- Strain is preserved exactly (inverse isometry). -/
96 strain_eq_inv : ∀ y, O₁.strain.J (invFun.map y) = O₂.strain.J y
97