theorem
proved
comp_apply
show as:
view math explainer →
open explainer
Read the cached plain-language explainer.
open lean source
IndisputableMonolith.Algebra.CostAlgebra on GitHub at line 817.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
used by
-
dAlembert_to_ODE_general -
dAlembert_to_ODE_general -
cosh_strictly_convex -
Jcost_strictConvexOn_pos -
dAlembert_to_ODE_general_theorem -
dAlembert_to_ODE_theorem -
even_deriv_at_zero -
dAlembert_to_ODE_theorem -
comp -
dalembert_deriv_ode -
conservation_from_balance -
regge_sum_cubicHinges -
realizationOrbit_isNNO -
CE_factor -
involutionOp_shiftInvOp -
involutionOp_shiftOp -
shiftInvOp_shiftOp -
shiftOp_shiftInvOp -
physical_equiv_symm -
conserved_iff_conserved' -
symmetry_comp -
compAutomorphism -
compAutomorphism_inv_left_toFun -
compAutomorphism_inv_right_toFun -
compSymmetry -
gaugeEquivalent_trans -
channel_mono_transfer -
rank_invariant -
low_temp_limit
formal source
814 · intro x
815 rw [g.preserves_cost (f x), f.preserves_cost x]⟩
816
817@[simp] theorem comp_apply (g f : JAut) (x : PosReal) : comp g f x = g (f x) := rfl
818
819@[simp] theorem comp_id (f : JAut) : comp id f = f := by
820 apply JAut.ext
821 intro x
822 rfl
823
824@[simp] theorem id_comp (f : JAut) : comp f id = f := by
825 apply JAut.ext
826 intro x
827 rfl
828
829@[simp] theorem reciprocal_comp_reciprocal : comp reciprocal reciprocal = id := by
830 apply JAut.ext
831 intro x
832 simp [comp, reciprocal, id]
833
834/-- Pointwise, a `J`-automorphism can only choose the identity branch or the
835 reciprocal branch. -/
836theorem eq_self_or_inv (f : JAut) (x : PosReal) :
837 f x = x ∨ f x = posInv x := by
838 have hJ : J (f x).1 = J x.1 := f.preserves_cost x
839 rcases (J_eq_iff_eq_or_inv x.2 (f x).2).mp hJ with h | h
840 · left
841 exact Subtype.ext h
842 · right
843 exact Subtype.ext h
844
845/-- If `2 * x⁻¹ = 2 * x`, positivity forces `x = 1`. -/
846theorem two_mul_inv_eq_two_mul_iff (x : PosReal) :
847 posMul posTwo (posInv x) = posMul posTwo x ↔ x = posOne := by