File: Mathlib/Topology/ContinuousFunction/Units.lean

full_name: ContinuousMap.val_addUnitsLift_apply_apply
code: /-- Equivalence between continuous maps into the units of a monoid with continuous multiplication
and the units of the monoid of continuous maps. -/
-- Porting note: `simps` made bad `simp` lemmas (LHS simplifies) so we add them manually below
@[to_additive (attr := simps apply_val_apply symm_apply_apply_val)
"Equivalence between continuous maps into the additive units of an additive monoid with continuous
addition and the additive units of the additive monoid of continuous maps."]
def unitsLift : C(X, Mˣ) ≃ C(X, M)ˣ 
goal: ↑(ContinuousMap.addUnitsLift f) x = ↑(f x)

full_name: ContinuousMap.unitsLift
code: /-- Equivalence between continuous maps into the units of a monoid with continuous multiplication
and the units of the monoid of continuous maps. -/
-- Porting note: `simps` made bad `simp` lemmas (LHS simplifies) so we add them manually below
@[to_additive (attr := simps apply_val_apply symm_apply_apply_val)
"Equivalence between continuous maps into the additive units of an additive monoid with continuous
addition and the additive units of the additive monoid of continuous maps."]
def unitsLift : C(X, Mˣ) ≃ C(X, M)ˣ 
goal: C(X, Mˣ) ≃ C(X, M)ˣ

full_name: ContinuousMap.val_unitsLift_apply_apply
code: /-- Equivalence between continuous maps into the units of a monoid with continuous multiplication
and the units of the monoid of continuous maps. -/
-- Porting note: `simps` made bad `simp` lemmas (LHS simplifies) so we add them manually below
@[to_additive (attr := simps apply_val_apply symm_apply_apply_val)
"Equivalence between continuous maps into the additive units of an additive monoid with continuous
addition and the additive units of the additive monoid of continuous maps."]
def unitsLift : C(X, Mˣ) ≃ C(X, M)ˣ 
goal: ↑(ContinuousMap.unitsLift f) x = ↑(f x)

full_name: ContinuousMap.val_unitsLift_symm_apply_apply
code: /-- Equivalence between continuous maps into the units of a monoid with continuous multiplication
and the units of the monoid of continuous maps. -/
-- Porting note: `simps` made bad `simp` lemmas (LHS simplifies) so we add them manually below
@[to_additive (attr := simps apply_val_apply symm_apply_apply_val)
"Equivalence between continuous maps into the additive units of an additive monoid with continuous
addition and the additive units of the additive monoid of continuous maps."]
def unitsLift : C(X, Mˣ) ≃ C(X, M)ˣ 
goal: ↑((ContinuousMap.unitsLift.symm f) x) = ↑f x

full_name: ContinuousMap.val_addUnitsLift_symm_apply_apply
code: /-- Equivalence between continuous maps into the units of a monoid with continuous multiplication
and the units of the monoid of continuous maps. -/
-- Porting note: `simps` made bad `simp` lemmas (LHS simplifies) so we add them manually below
@[to_additive (attr := simps apply_val_apply symm_apply_apply_val)
"Equivalence between continuous maps into the additive units of an additive monoid with continuous
addition and the additive units of the additive monoid of continuous maps."]
def unitsLift : C(X, Mˣ) ≃ C(X, M)ˣ 
goal: ↑((ContinuousMap.addUnitsLift.symm f) x) = ↑f x

full_name: ContinuousMap.addUnitsLift
code: /-- Equivalence between continuous maps into the units of a monoid with continuous multiplication
and the units of the monoid of continuous maps. -/
-- Porting note: `simps` made bad `simp` lemmas (LHS simplifies) so we add them manually below
@[to_additive (attr := simps apply_val_apply symm_apply_apply_val)
"Equivalence between continuous maps into the additive units of an additive monoid with continuous
addition and the additive units of the additive monoid of continuous maps."]
def unitsLift : C(X, Mˣ) ≃ C(X, M)ˣ 
goal: C(X, AddUnits M) ≃ AddUnits C(X, M)

full_name: ContinuousMap.addUnitsLift_apply_neg_apply
code: @[to_additive (attr := simp)]
lemma unitsLift_apply_inv_apply (f : C(X, Mˣ)) (x : X) :
    (↑(ContinuousMap.unitsLift f)⁻¹ : C(X, M)) x = (f x)⁻¹ 
goal: ↑(-ContinuousMap.addUnitsLift f) x = ↑(-f x)

full_name: ContinuousMap.unitsLift_apply_inv_apply
code: @[to_additive (attr := simp)]
lemma unitsLift_apply_inv_apply (f : C(X, Mˣ)) (x : X) :
    (↑(ContinuousMap.unitsLift f)⁻¹ : C(X, M)) x = (f x)⁻¹ 
goal: ↑(ContinuousMap.unitsLift f)⁻¹ x = ↑(f x)⁻¹

full_name: ContinuousMap.addUnitsLift_symm_apply_apply_neg'
code: @[to_additive (attr := simp)]
lemma unitsLift_symm_apply_apply_inv' (f : C(X, M)ˣ) (x : X) :
    (ContinuousMap.unitsLift.symm f x)⁻¹ = (↑f⁻¹ : C(X, M)) x 
goal: ↑(-(ContinuousMap.addUnitsLift.symm f) x) = ↑(-f) x

full_name: ContinuousMap.unitsLift_symm_apply_apply_inv'
code: @[to_additive (attr := simp)]
lemma unitsLift_symm_apply_apply_inv' (f : C(X, M)ˣ) (x : X) :
    (ContinuousMap.unitsLift.symm f x)⁻¹ = (↑f⁻¹ : C(X, M)) x 
goal: ↑((ContinuousMap.unitsLift.symm f) x)⁻¹ = ↑f⁻¹ x

full_name: ContinuousMap.continuous_isUnit_unit
code: theorem continuous_isUnit_unit {f : C(X, R)} (h : ∀ x, IsUnit (f x)) :
    Continuous fun x => (h x).unit 
goal: Continuous fun x => ⋯.unit

full_name: ContinuousMap.unitsOfForallIsUnit
code: /-- Construct a continuous map into the group of units of a normed ring from a function into the
normed ring and a proof that every element of the range is a unit. -/
@[simps]
noncomputable def unitsOfForallIsUnit {f : C(X, R)} (h : ∀ x, IsUnit (f x)) : C(X, Rˣ) 
goal: C(X, Rˣ)

full_name: ContinuousMap.unitsOfForallIsUnit_apply
code: /-- Construct a continuous map into the group of units of a normed ring from a function into the
normed ring and a proof that every element of the range is a unit. -/
@[simps]
noncomputable def unitsOfForallIsUnit {f : C(X, R)} (h : ∀ x, IsUnit (f x)) : C(X, Rˣ) 
goal: (ContinuousMap.unitsOfForallIsUnit h) x = ⋯.unit

full_name: ContinuousMap.canLift
code: instance canLift :
    CanLift C(X, R) C(X, Rˣ) (fun f => ⟨fun x => f x, Units.continuous_val.comp f.continuous⟩)
      fun f => ∀ x, IsUnit (f x) 
goal: CanLift C(X, R) C(X, Rˣ) (fun f => { toFun := fun x => ↑(f x), continuous_toFun := ⋯ }) fun f => ∀ (x : X), IsUnit (f x)

full_name: ContinuousMap.isUnit_iff_forall_isUnit
code: theorem isUnit_iff_forall_isUnit (f : C(X, R)) : IsUnit f ↔ ∀ x, IsUnit (f x) 
goal: IsUnit f ↔ ∀ (x : X), IsUnit (f x)

full_name: ContinuousMap.isUnit_iff_forall_ne_zero
code: theorem isUnit_iff_forall_ne_zero (f : C(X, R)) : IsUnit f ↔ ∀ x, f x ≠ 0 
goal: IsUnit f ↔ ∀ (x : X), f x ≠ 0

full_name: ContinuousMap.spectrum_eq_preimage_range
code: theorem spectrum_eq_preimage_range (f : C(X, R)) :
    spectrum 𝕜 f = algebraMap _ _ ⁻¹' Set.range f 
goal: spectrum 𝕜 f = ⇑(algebraMap 𝕜 R) ⁻¹' Set.range ⇑f

full_name: ContinuousMap.spectrum_eq_range
code: theorem spectrum_eq_range [CompleteSpace 𝕜] (f : C(X, 𝕜)) : spectrum 𝕜 f = Set.range f 
goal: spectrum 𝕜 f = Set.range ⇑f