File: Mathlib/RingTheory/LocalRing/RingHom/Basic.lean

full_name: isLocalRingHom_id
code: instance isLocalRingHom_id (R : Type*) [Semiring R] : IsLocalRingHom (RingHom.id R) 
goal: IsLocalRingHom (RingHom.id R)

full_name: isUnit_map_iff
code: @[simp]
theorem isUnit_map_iff (f : R →+* S) [IsLocalRingHom f] (a) : IsUnit (f a) ↔ IsUnit a 
goal: IsUnit (f a) ↔ IsUnit a

full_name: map_mem_nonunits_iff
code: @[simp (high)]
theorem map_mem_nonunits_iff (f : R →+* S) [IsLocalRingHom f] (a) :
    f a ∈ nonunits S ↔ a ∈ nonunits R 
goal: f a ∈ nonunits S ↔ a ∈ nonunits R

full_name: isLocalRingHom_comp
code: instance isLocalRingHom_comp (g : S →+* T) (f : R →+* S) [IsLocalRingHom g] [IsLocalRingHom f] :
    IsLocalRingHom (g.comp f) 
goal: IsLocalRingHom (g.comp f)

full_name: isLocalRingHom_equiv
code: instance isLocalRingHom_equiv (f : R ≃+* S) : IsLocalRingHom (f : R →+* S) 
goal: IsLocalRingHom ↑f

full_name: isUnit_of_map_unit
code: @[simp]
theorem isUnit_of_map_unit (f : R →+* S) [IsLocalRingHom f] (a) (h : IsUnit (f a)) : IsUnit a 
goal: IsUnit a

full_name: of_irreducible_map
code: theorem of_irreducible_map (f : R →+* S) [h : IsLocalRingHom f] {x} (hfx : Irreducible (f x)) :
    Irreducible x 
goal: Irreducible x

full_name: isLocalRingHom_of_comp
code: theorem isLocalRingHom_of_comp (f : R →+* S) (g : S →+* T) [IsLocalRingHom (g.comp f)] :
    IsLocalRingHom f 
goal: IsLocalRingHom f

full_name: RingHom.domain_localRing
code: /-- If `f : R →+* S` is a local ring hom, then `R` is a local ring if `S` is. -/
theorem RingHom.domain_localRing {R S : Type*} [CommSemiring R] [CommSemiring S] [H : LocalRing S]
    (f : R →+* S) [IsLocalRingHom f] : LocalRing R 
goal: LocalRing R

full_name: map_nonunit
code: /--
The image of the maximal ideal of the source is contained within the maximal ideal of the target.
-/
theorem map_nonunit (f : R →+* S) [IsLocalRingHom f] (a : R) (h : a ∈ maximalIdeal R) :
    f a ∈ maximalIdeal S 
goal: f a ∈ LocalRing.maximalIdeal S

full_name: LocalRing.local_hom_TFAE
code: /-- A ring homomorphism between local rings is a local ring hom iff it reflects units,
i.e. any preimage of a unit is still a unit. https://stacks.math.columbia.edu/tag/07BJ
-/
theorem local_hom_TFAE (f : R →+* S) :
    List.TFAE
      [IsLocalRingHom f, f '' (maximalIdeal R).1 ⊆ maximalIdeal S,
        (maximalIdeal R).map f ≤ maximalIdeal S, maximalIdeal R ≤ (maximalIdeal S).comap f,
        (maximalIdeal S).comap f = maximalIdeal R] 
goal: [IsLocalRingHom f, ⇑f '' ↑(LocalRing.maximalIdeal R).toAddSubmonoid ⊆ ↑(LocalRing.maximalIdeal S),
    Ideal.map f (LocalRing.maximalIdeal R) ≤ LocalRing.maximalIdeal S,
    LocalRing.maximalIdeal R ≤ Ideal.comap f (LocalRing.maximalIdeal S),
    Ideal.comap f (LocalRing.maximalIdeal S) = LocalRing.maximalIdeal R].TFAE

full_name: LocalRing.of_surjective
code: theorem of_surjective [CommSemiring R] [LocalRing R] [CommSemiring S] [Nontrivial S] (f : R →+* S)
    [IsLocalRingHom f] (hf : Function.Surjective f) : LocalRing S 
goal: LocalRing S

full_name: LocalRing.surjective_units_map_of_local_ringHom
code: /-- If `f : R →+* S` is a surjective local ring hom, then the induced units map is surjective. -/
theorem surjective_units_map_of_local_ringHom [CommRing R] [CommRing S] (f : R →+* S)
    (hf : Function.Surjective f) (h : IsLocalRingHom f) :
    Function.Surjective (Units.map <| f.toMonoidHom) 
goal: Function.Surjective ⇑(Units.map ↑f)

full_name: LocalRing.instIsLocalRingHomOfNontrivial
code: /-- Every ring hom `f : K →+* R` from a division ring `K` to a nontrivial ring `R` is a
local ring hom. -/
instance (priority := 100) {K R} [DivisionRing K] [CommRing R] [Nontrivial R]
    (f : K →+* R) : IsLocalRingHom f 
goal: IsLocalRingHom f

full_name: RingEquiv.localRing
code: protected theorem localRing {A B : Type*} [CommSemiring A] [LocalRing A] [CommSemiring B]
    (e : A ≃+* B) : LocalRing B 
goal: LocalRing B