R : Type u
inst✝² : CommRing R
S : Type u
inst✝¹ : CommRing S
P : Type u
inst✝ : CommRing P
f : R →+* S
U : Opens ↑(PrimeSpectrum.Top R)
V : Opens ↑(PrimeSpectrum.Top S)
hUV : V.carrier ⊆ ↑(PrimeSpectrum.comap f) ⁻¹' U.carrier
a b : R
hb : ∀ (x : PrimeSpectrum R), x ∈ U → b ∈ Ideal.primeCompl x.asIdeal
p : { x // x ∈ V.op.unop }
⊢ ↑(Localization.localRingHom (↑(PrimeSpectrum.comap f) ↑p).asIdeal (↑p).asIdeal f
          (_ : (↑(PrimeSpectrum.comap f) ↑p).asIdeal = (↑(PrimeSpectrum.comap f) ↑p).asIdeal))
      (IsLocalization.mk'
        (Localizations R
          ↑{ val := ↑(PrimeSpectrum.comap f) ↑p, property := (_ : ↑p ∈ ↑(PrimeSpectrum.comap f) ⁻¹' U.carrier) })
        a
        { val := b,
          property :=
            (_ :
              b ∈
                Ideal.primeCompl
                  (↑{ val := ↑(PrimeSpectrum.comap f) ↑p,
                        property := (_ : ↑p ∈ ↑(PrimeSpectrum.comap f) ⁻¹' U.carrier) }).asIdeal) }) =
    IsLocalization.mk' (Localizations S ↑p) (↑f a)
      { val := ↑f b, property := (_ : b ∈ Ideal.primeCompl (↑(PrimeSpectrum.comap f) ↑p).asIdeal) }
R : Type u
inst✝² : CommRing R
S : Type u
inst✝¹ : CommRing S
P : Type u
inst✝ : CommRing P
f : R →+* S
U : Opens ↑(PrimeSpectrum.Top R)
V : Opens ↑(PrimeSpectrum.Top S)
hUV : V.carrier ⊆ ↑(PrimeSpectrum.comap f) ⁻¹' U.carrier
a b : R
hb : ∀ (x : PrimeSpectrum R), x ∈ U → b ∈ Ideal.primeCompl x.asIdeal
p : { x // x ∈ V.op.unop }
⊢ ↑(↑(comap f U V hUV) (const R a b U hb)) p =
    ↑(const S (↑f a) (↑f b) V
          (_ : ∀ (p : ↑(PrimeSpectrum.Top S)), p ∈ V → b ∈ Ideal.primeCompl (↑(PrimeSpectrum.comap f) p).asIdeal))
      p
rw [comap_apply, const_apply, const_apply]
R : Type u
inst✝² : CommRing R
S : Type u
inst✝¹ : CommRing S
P : Type u
inst✝ : CommRing P
f : R →+* S
U : Opens ↑(PrimeSpectrum.Top R)
V : Opens ↑(PrimeSpectrum.Top S)
hUV : V.carrier ⊆ ↑(PrimeSpectrum.comap f) ⁻¹' U.carrier
a b : R
hb : ∀ (x : PrimeSpectrum R), x ∈ U → b ∈ Ideal.primeCompl x.asIdeal
p : { x // x ∈ V.op.unop }
⊢ IsLocalization.mk' (Localization.AtPrime (↑p).asIdeal) (↑f a)
      {
        val :=
          ↑f
            ↑{ val := b,
                property :=
                  (_ :
                    b ∈
                      Ideal.primeCompl
                        (↑{ val := ↑(PrimeSpectrum.comap f) ↑p,
                              property := (_ : ↑p ∈ ↑(PrimeSpectrum.comap f) ⁻¹' U.carrier) }).asIdeal) },
        property :=
          (_ :
            ↑{ val := b,
                  property :=
                    (_ :
                      b ∈
                        Ideal.primeCompl
                          (↑{ val := ↑(PrimeSpectrum.comap f) ↑p,
                                property := (_ : ↑p ∈ ↑(PrimeSpectrum.comap f) ⁻¹' U.carrier) }).asIdeal) } ∈
              Submonoid.comap f (Ideal.primeCompl (↑p).asIdeal)) } =
    IsLocalization.mk' (Localizations S ↑p) (↑f a)
      { val := ↑f b, property := (_ : b ∈ Ideal.primeCompl (↑(PrimeSpectrum.comap f) ↑p).asIdeal) }
R : Type u
inst✝² : CommRing R
S : Type u
inst✝¹ : CommRing S
P : Type u
inst✝ : CommRing P
f : R →+* S
U : Opens ↑(PrimeSpectrum.Top R)
V : Opens ↑(PrimeSpectrum.Top S)
hUV : V.carrier ⊆ ↑(PrimeSpectrum.comap f) ⁻¹' U.carrier
a b : R
hb : ∀ (x : PrimeSpectrum R), x ∈ U → b ∈ Ideal.primeCompl x.asIdeal
p : { x // x ∈ V.op.unop }
⊢ ↑(Localization.localRingHom (↑(PrimeSpectrum.comap f) ↑p).asIdeal (↑p).asIdeal f
          (_ : (↑(PrimeSpectrum.comap f) ↑p).asIdeal = (↑(PrimeSpectrum.comap f) ↑p).asIdeal))
      (IsLocalization.mk'
        (Localizations R
          ↑{ val := ↑(PrimeSpectrum.comap f) ↑p, property := (_ : ↑p ∈ ↑(PrimeSpectrum.comap f) ⁻¹' U.carrier) })
        a
        { val := b,
          property :=
            (_ :
              b ∈
                Ideal.primeCompl
                  (↑{ val := ↑(PrimeSpectrum.comap f) ↑p,
                        property := (_ : ↑p ∈ ↑(PrimeSpectrum.comap f) ⁻¹' U.carrier) }).asIdeal) }) =
    IsLocalization.mk' (Localizations S ↑p) (↑f a)
      { val := ↑f b, property := (_ : b ∈ Ideal.primeCompl (↑(PrimeSpectrum.comap f) ↑p).asIdeal) }
erw [Localization.localRingHom_mk']
no goals
R : Type u
inst✝² : CommRing R
S : Type u
inst✝¹ : CommRing S
P : Type u
inst✝ : CommRing P
f : R →+* S
U : Opens ↑(PrimeSpectrum.Top R)
V : Opens ↑(PrimeSpectrum.Top S)
hUV : V.carrier ⊆ ↑(PrimeSpectrum.comap f) ⁻¹' U.carrier
a b : R
hb : ∀ (x : PrimeSpectrum R), x ∈ U → b ∈ Ideal.primeCompl x.asIdeal
p : { x // x ∈ V.op.unop }
⊢ IsLocalization.mk' (Localization.AtPrime (↑p).asIdeal) (↑f a)
      {
        val :=
          ↑f
            ↑{ val := b,
                property :=
                  (_ :
                    b ∈
                      Ideal.primeCompl
                        (↑{ val := ↑(PrimeSpectrum.comap f) ↑p,
                              property := (_ : ↑p ∈ ↑(PrimeSpectrum.comap f) ⁻¹' U.carrier) }).asIdeal) },
        property :=
          (_ :
            ↑{ val := b,
                  property :=
                    (_ :
                      b ∈
                        Ideal.primeCompl
                          (↑{ val := ↑(PrimeSpectrum.comap f) ↑p,
                                property := (_ : ↑p ∈ ↑(PrimeSpectrum.comap f) ⁻¹' U.carrier) }).asIdeal) } ∈
              Submonoid.comap f (Ideal.primeCompl (↑p).asIdeal)) } =
    IsLocalization.mk' (Localizations S ↑p) (↑f a)
      { val := ↑f b, property := (_ : b ∈ Ideal.primeCompl (↑(PrimeSpectrum.comap f) ↑p).asIdeal) }
rfl