Lean4
/-- Change the uniform equiv `f` to make the inverse function definitionally equal to `g`. -/
def changeInv (f : α ≃ᵤ β) (g : β → α) (hg : Function.RightInverse g f) : α ≃ᵤ β :=
have : g = f.symm :=
funext fun x =>
calc
g x = f.symm (f (g x)) := (f.left_inv (g x)).symm
_ = f.symm x := by rw [hg x]
{ toFun := f
invFun := g
left_inv := by convert f.left_inv
right_inv := by convert f.right_inv using 1
uniformContinuous_toFun := f.uniformContinuous
uniformContinuous_invFun := by convert f.symm.uniformContinuous }