def
definition
id
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 62.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
used by
-
intensityRatio -
comp_id -
continuous_bijective_preserves_J_eq_id_or_inv -
CostMorphism -
eq_id_of_map_two_eq_two -
eq_id_or_reciprocal -
equivFinTwo -
id -
id_comp -
reciprocal_comp_reciprocal -
reciprocal_ne_id -
CostAlgHomKappa -
CostAlgPlusHom -
ledgerAlg_id -
monotone_preserves_argmin -
octaveAlg_id -
phiRing_id -
recAlg_id -
recAlg_id_left -
recAlg_id_right -
independent_step_listenNoopProgram -
SimulationHypothesis -
SimulationHypothesis -
dependency_cone -
main_resolution -
RecognitionScenario -
Turing_incomplete -
arborescence_implies_peeling -
peeling_implies_arborescence -
dAlembert_classification -
dAlembert_to_ODE_general -
dAlembert_contDiff_top -
dAlembert_to_ODE_general -
deriv_Jcost_eq -
dAlembert_to_ODE_general_theorem -
dAlembert_to_ODE_theorem -
dAlembert_to_ODE_theorem -
reverse -
FiniteLatticeEnumerationCert -
identityWitness
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₁