/-- The valuation ring `A` is isomorphic to the ring of integers of its associated valuation. -/
noncomputable def equivInteger : A ≃+* (valuation A K).integer :=
  RingEquiv.ofBijective
    (show A →ₙ+* (valuation A K).integer from
      { toFun := fun a => ⟨algebraMap A K a, (mem_integer_iff _ _ _).mpr ⟨a, rfl⟩⟩
        map_mul' := fun _ _ => by ext1; exact (algebraMap A K).map_mul _ _
        map_zero' := by ext1; exact (algebraMap A K).map_zero
        map_add' := fun _ _ => by ext1; 

Proof state:
case a
A : Type u
inst✝⁵ : CommRing A
K : Type v
inst✝⁴ : Field K
inst✝³ : Algebra A K
inst✝² : IsDomain A
inst✝¹ : ValuationRing A
inst✝ : IsFractionRing A K
x✝¹ x✝ : A
⊢ ↑(MulHom.toFun
        {
          toFun := fun a =>
            { val := (algebraMap A K) a, property := (_ : (algebraMap A K) a ∈ Valuation.integer (valuation A K)) },
          map_mul' :=
            (_ :
              ∀ (x x_1 : A),
                (fun a =>
                      { val := (algebraMap A K) a,
                        property := (_ : (algebraMap A K) a ∈ Valuation.integer (valuation A K)) })
                    (x * x_1) =
                  (fun a =>
                        { val := (algebraMap A K) a,
                          property := (_ : (algebraMap A K) a ∈ Valuation.integer (valuation A K)) })
                      x *
                    (fun a =>
                        { val := (algebraMap A K) a,
                          property := (_ : (algebraMap A K) a ∈ Valuation.integer (valuation A K)) })
                      x_1) }
        (x✝¹ + x✝)) =
    ↑(MulHom.toFun
          {
            toFun := fun a =>
              { val := (algebraMap A K) a, property := (_ : (algebraMap A K) a ∈ Valuation.integer (valuation A K)) },
            map_mul' :=
              (_ :
                ∀ (x x_1 : A),
                  (fun a =>
                        { val := (algebraMap A K) a,
                          property := (_ : (algebraMap A K) a ∈ Valuation.integer (valuation A K)) })
                      (x * x_1) =
                    (fun a =>
                          { val := (algebraMap A K) a,
                            property := (_ : (algebraMap A K) a ∈ Valuation.integer (valuation A K)) })
                        x *
                      (fun a =>
                          { val := (algebraMap A K) a,
                            property := (_ : (algebraMap A K) a ∈ Valuation.integer (valuation A K)) })
                        x_1) }
          x✝¹ +
        MulHom.toFun
          {
            toFun := fun a =>
              { val := (algebraMap A K) a, property := (_ : (algebraMap A K) a ∈ Valuation.integer (valuation A K)) },
            map_mul' :=
              (_ :
                ∀ (x x_1 : A),
                  (fun a =>
                        { val := (algebraMap A K) a,
                          property := (_ : (algebraMap A K) a ∈ Valuation.integer (valuation A K)) })
                      (x * x_1) =
                    (fun a =>
                          { val := (algebraMap A K) a,
                            property := (_ : (algebraMap A K) a ∈ Valuation.integer (valuation A K)) })
                        x *
                      (fun a =>
                          { val := (algebraMap A K) a,
                            property := (_ : (algebraMap A K) a ∈ Valuation.integer (valuation A K)) })
                        x_1) }
          x✝)

Next tactic:
exact (algebraMap A K).map_add _ _