-- Lean 4 proof step from Mathlib.Data.Matrix.Invertible (goal)
Goal:
m : Type u_1
n : Type u_2
α : Type u_3
inst : Fintype n
inst_1 : DecidableEq n
inst_2 : Fintype m
inst_3 : DecidableEq m
inst_4 : Ring α
A : Matrix n n α
U : Matrix n m α
C : Matrix m m α
V : Matrix m n α
inst_5 : Invertible A
inst_6 : Invertible C
inst_7 :
  Invertible
    (@Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one C _ +
      V * @Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one A _ * U)
⊢ 1 + @Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one A _ * U * C * V -
      (@Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one A _ * U *
            @Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one
              (@Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one C _ +
                V * @Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one A _ * U)
              _ *
          V +
        @Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one A _ * U *
                    @Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one
                      (@Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one C _ +
                        V * @Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one A _ * U)
                      _ *
                  V *
                @Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one A _ *
              U *
            C *
          V) =
    1 + @Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one A _ * U * C * V -
      @Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one A _ * U *
          @Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one
            (@Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one C _ +
              V * @Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one A _ * U)
            _ *
        (V + V * @Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one A _ * U * C * V)
have rw : @Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one A _ * U *
        @Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one
          (@Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one C _ +
            V * @Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one A _ * U)
          _ *
      V +
    @Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one A _ * U *
                @Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one
                  (@Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one C _ +
                    V * @Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one A _ * U)
                  _ *
              V *
            @Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one A _ *
          U *
        C *
      V =
  @Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one A _ * U *
        @Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one
          (@Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one C _ +
            V * @Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one A _ * U)
          _ *
      V +
    @Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one A _ * U *
        @Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one
          (@Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one C _ +
            V * @Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one A _ * U)
          _ *
      (V * @Invertible.invOf _ instMulOfFintypeOfAddCommMonoid one A _ * U * C * V)
Tactic: rw [sub_right_inj, Matrix.mul_add]