irreducible_def preLift {r : R → R → Prop} { f : R →+* T } (h : ∀ ⦃x y⦄, r x y → f x = f y) :
  RingQuot r →+* T :=
  { toFun := fun x ↦ Quot.lift f
        (by
          rintro _ _ r
          induction r with
          | of r => exact h r
          | add_left _ r' => rw [map_add, map_add, r']
          | mul_left _ r' => rw [map_mul, map_mul, r']
          | mul_right _ r' => rw [map_mul, map_mul, r'])
        x.toQuot
    map_zero' := by simp only [← zero_quot, f.map_zero]
    map_add' := by
      rintro ⟨⟨x⟩⟩ ⟨⟨y⟩⟩
      

Proof state:
case mk.mk.mk.mk
R : Type uR
inst✝⁴ : Semiring R
S : Type uS
inst✝³ : CommSemiring S
T : Type uT
A : Type uA
inst✝² : Semiring A
inst✝¹ : Algebra S A
r✝ : R → R → Prop
inst✝ : Semiring T
r : R → R → Prop
f : R →+* T
h : ∀ ⦃x y : R⦄, r x y → f x = f y
toQuot✝¹ : Quot (Rel r)
x : R
toQuot✝ : Quot (Rel r)
y : R
⊢ OneHom.toFun
      (↑{
          toOneHom :=
            { toFun := fun x => Quot.lift ⇑f (_ : ∀ (a b : R), Rel r a b → f a = f b) x.toQuot,
              map_one' := (_ : Quot.lift ⇑f (_ : ∀ (a b : R), Rel r a b → f a = f b) 1.toQuot = 1) },
          map_mul' :=
            (_ :
              ∀ (x y : RingQuot r),
                OneHom.toFun
                    { toFun := fun x => Quot.lift ⇑f (_ : ∀ (a b : R), Rel r a b → f a = f b) x.toQuot,
                      map_one' := (_ : Quot.lift ⇑f (_ : ∀ (a b : R), Rel r a b → f a = f b) 1.toQuot = 1) }
                    (x * y) =
                  OneHom.toFun
                      { toFun := fun x => Quot.lift ⇑f (_ : ∀ (a b : R), Rel r a b → f a = f b) x.toQuot,
                        map_one' := (_ : Quot.lift ⇑f (_ : ∀ (a b : R), Rel r a b → f a = f b) 1.toQuot = 1) }
                      x *
                    OneHom.toFun
                      { toFun := fun x => Quot.lift ⇑f (_ : ∀ (a b : R), Rel r a b → f a = f b) x.toQuot,
                        map_one' := (_ : Quot.lift ⇑f (_ : ∀ (a b : R), Rel r a b → f a = f b) 1.toQuot = 1) }
                      y) })
      ({ toQuot := Quot.mk (Rel r) x } + { toQuot := Quot.mk (Rel r) y }) =
    OneHom.toFun
        ↑{
            toOneHom :=
              { toFun := fun x => Quot.lift ⇑f (_ : ∀ (a b : R), Rel r a b → f a = f b) x.toQuot,
                map_one' := (_ : Quot.lift ⇑f (_ : ∀ (a b : R), Rel r a b → f a = f b) 1.toQuot = 1) },
            map_mul' :=
              (_ :
                ∀ (x y : RingQuot r),
                  OneHom.toFun
                      { toFun := fun x => Quot.lift ⇑f (_ : ∀ (a b : R), Rel r a b → f a = f b) x.toQuot,
                        map_one' := (_ : Quot.lift ⇑f (_ : ∀ (a b : R), Rel r a b → f a = f b) 1.toQuot = 1) }
                      (x * y) =
                    OneHom.toFun
                        { toFun := fun x => Quot.lift ⇑f (_ : ∀ (a b : R), Rel r a b → f a = f b) x.toQuot,
                          map_one' := (_ : Quot.lift ⇑f (_ : ∀ (a b : R), Rel r a b → f a = f b) 1.toQuot = 1) }
                        x *
                      OneHom.toFun
                        { toFun := fun x => Quot.lift ⇑f (_ : ∀ (a b : R), Rel r a b → f a = f b) x.toQuot,
                          map_one' := (_ : Quot.lift ⇑f (_ : ∀ (a b : R), Rel r a b → f a = f b) 1.toQuot = 1) }
                        y) }
        { toQuot := Quot.mk (Rel r) x } +
      OneHom.toFun
        ↑{
            toOneHom :=
              { toFun := fun x => Quot.lift ⇑f (_ : ∀ (a b : R), Rel r a b → f a = f b) x.toQuot,
                map_one' := (_ : Quot.lift ⇑f (_ : ∀ (a b : R), Rel r a b → f a = f b) 1.toQuot = 1) },
            map_mul' :=
              (_ :
                ∀ (x y : RingQuot r),
                  OneHom.toFun
                      { toFun := fun x => Quot.lift ⇑f (_ : ∀ (a b : R), Rel r a b → f a = f b) x.toQuot,
                        map_one' := (_ : Quot.lift ⇑f (_ : ∀ (a b : R), Rel r a b → f a = f b) 1.toQuot = 1) }
                      (x * y) =
                    OneHom.toFun
                        { toFun := fun x => Quot.lift ⇑f (_ : ∀ (a b : R), Rel r a b → f a = f b) x.toQuot,
                          map_one' := (_ : Quot.lift ⇑f (_ : ∀ (a b : R), Rel r a b → f a = f b) 1.toQuot = 1) }
                        x *
                      OneHom.toFun
                        { toFun := fun x => Quot.lift ⇑f (_ : ∀ (a b : R), Rel r a b → f a = f b) x.toQuot,
                          map_one' := (_ : Quot.lift ⇑f (_ : ∀ (a b : R), Rel r a b → f a = f b) 1.toQuot = 1) }
                        y) }
        { toQuot := Quot.mk (Rel r) y }

Next tactic:
simp only [add_quot, f.map_add x y]