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
      

Proof state:
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
⊢ ∀ (x y : RingQuot 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) })
        (x + 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) })
          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) })
          y

Next tactic:
rintro ⟨⟨x⟩⟩ ⟨⟨y⟩⟩