def
definition
posInv
show as:
view math explainer →
open explainer
Generate a durable explainer page for this declaration.
open lean source
IndisputableMonolith.Algebra.CostAlgebra on GitHub at line 739.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
used by
formal source
736 ⟨x.1 * y.1, mul_pos x.2 y.2⟩
737
738/-- Inversion on positive reals. -/
739noncomputable def posInv (x : PosReal) : PosReal :=
740 ⟨x.1⁻¹, inv_pos.mpr x.2⟩
741
742/-- Distinguished positive constants used to close the automorphism proof. -/
743def posOne : PosReal := ⟨1, by norm_num⟩
744def posTwo : PosReal := ⟨2, by norm_num⟩
745noncomputable def posHalf : PosReal := ⟨(1 / 2 : ℝ), by norm_num⟩
746
747@[simp] theorem posInv_inv (x : PosReal) : posInv (posInv x) = x := by
748 apply Subtype.ext
749 simp [posInv]
750
751@[simp] theorem posInv_one : posInv posOne = posOne := by
752 apply Subtype.ext
753 simp [posInv, posOne]
754
755@[simp] theorem posInv_two : posInv posTwo = posHalf := by
756 apply Subtype.ext
757 norm_num [posInv, posTwo, posHalf]
758
759@[simp] theorem posInv_half : posInv posHalf = posTwo := by
760 apply Subtype.ext
761 norm_num [posInv, posTwo, posHalf]
762
763/-- The honest automorphism type of the canonical cost algebra on `ℝ_{>0}`. -/
764def JAut : Type :=
765 { f : PosReal → PosReal //
766 (∀ x y : PosReal, f (posMul x y) = posMul (f x) (f y)) ∧
767 (∀ x : PosReal, J (f x).1 = J x.1) }
768
769namespace JAut