/-- 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 

Proof state:
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:
ext1