awhecmu/canonical-drafter-extract-mathlib huggingface dataset:
-- Lean 4 proof step from Mathlib.Algebra.Symmetrized (goal)
Goal:
α : Type u_1
inst : Semiring α
inst_1 : Invertible (α := α) 2
x : αˢʸᵐ
rw :
  Eq (α := αˢʸᵐ)
    ((sym : (a : α) → αˢʸᵐ)
        (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
          (HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) 0 : α) ((unsym : (a : αˢʸᵐ) → α) x : α) +
            HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) ((unsym : (a : αˢʸᵐ) → α) 0 : α))) :
      αˢʸᵐ)
    (0 : αˢʸᵐ)
rw₁ :
  Eq (α := αˢʸᵐ)
    ((sym : (a : α) → αˢʸᵐ)
        (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
          (HMul.hMul (α := α) (β := α) (0 : α) ((unsym : (a : αˢʸᵐ) → α) x : α) +
            HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) (0 : α))) :
      αˢʸᵐ)
    (0 : αˢʸᵐ)
rw₂ :
  Eq (α := αˢʸᵐ)
    ((sym : (a : α) → αˢʸᵐ)
        (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
          (0 + HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) (0 : α))) :
      αˢʸᵐ)
    (0 : αˢʸᵐ)
rw₃ :
  Eq (α := αˢʸᵐ)
    ((sym : (a : α) → αˢʸᵐ) (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ * HAdd.hAdd (α := α) 0 0) :
      αˢʸᵐ)
    (0 : αˢʸᵐ)
rw₄ :
  Eq (α := αˢʸᵐ)
    ((sym : (a : α) → αˢʸᵐ) (HMul.hMul (α := α) (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _) 0) :
      αˢʸᵐ)
    (0 : αˢʸᵐ)
⊢ 0 * x = 0
have rw₅ : Eq.{u_1 + 1} (α := αˢʸᵐ) ((sym : (a : α) → αˢʸᵐ) 0 : αˢʸᵐ) (0 : αˢʸᵐ)
Tactic: rw [mul_def, unsym_zero, zero_mul, mul_zero, add_zero,
        mul_zero, sym_zero]
-- Lean 4 proof step from Mathlib.Algebra.Symmetrized (goal)
Goal:
α : Type u_1
inst : Semiring α
inst_1 : Invertible (α := α) 2
x : αˢʸᵐ
rw :
  Eq (α := αˢʸᵐ)
    ((sym : (a : α) → αˢʸᵐ)
        (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
          (HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) 0 : α) ((unsym : (a : αˢʸᵐ) → α) x : α) +
            HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) ((unsym : (a : αˢʸᵐ) → α) 0 : α))) :
      αˢʸᵐ)
    (0 : αˢʸᵐ)
rw₁ :
  Eq (α := αˢʸᵐ)
    ((sym : (a : α) → αˢʸᵐ)
        (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
          (HMul.hMul (α := α) (β := α) (0 : α) ((unsym : (a : αˢʸᵐ) → α) x : α) +
            HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) (0 : α))) :
      αˢʸᵐ)
    (0 : αˢʸᵐ)
rw₂ :
  Eq (α := αˢʸᵐ)
    ((sym : (a : α) → αˢʸᵐ)
        (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
          (0 + HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) (0 : α))) :
      αˢʸᵐ)
    (0 : αˢʸᵐ)
rw₃ :
  Eq (α := αˢʸᵐ)
    ((sym : (a : α) → αˢʸᵐ) (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ * HAdd.hAdd (α := α) 0 0) :
      αˢʸᵐ)
    (0 : αˢʸᵐ)
rw₄ :
  Eq (α := αˢʸᵐ)
    ((sym : (a : α) → αˢʸᵐ) (HMul.hMul (α := α) (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _) 0) :
      αˢʸᵐ)
    (0 : αˢʸᵐ)
rw₅ : Eq.{u_1 + 1} (α := αˢʸᵐ) ((sym : (a : α) → αˢʸᵐ) 0 : αˢʸᵐ) (0 : αˢʸᵐ)
⊢ 0 * x = 0
have rw₆ : Eq.{u_1 + 1} (α := αˢʸᵐ) 0 0
Tactic: rw [mul_def, unsym_zero, zero_mul, mul_zero, add_zero,
        mul_zero, sym_zero]
-- Lean 4 proof step from Mathlib.Algebra.Symmetrized (goal)
Goal:
α : Type u_1
inst : Semiring α
inst_1 : Invertible (α := α) 2
x : αˢʸᵐ
⊢ x * 0 = 0
have rw : Eq (α := αˢʸᵐ)
  ((sym : (a : α) → αˢʸᵐ)
      (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
        (HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) ((unsym : (a : αˢʸᵐ) → α) 0 : α) +
          HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) 0 : α) ((unsym : (a : αˢʸᵐ) → α) x : α))) :
    αˢʸᵐ)
  (0 : αˢʸᵐ)
Tactic: rw [mul_def, unsym_zero, zero_mul, mul_zero, add_zero,
        mul_zero, sym_zero]
-- Lean 4 proof step from Mathlib.Algebra.Symmetrized (goal)
Goal:
α : Type u_1
inst : Semiring α
inst_1 : Invertible (α := α) 2
x : αˢʸᵐ
rw :
  Eq (α := αˢʸᵐ)
    ((sym : (a : α) → αˢʸᵐ)
        (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
          (HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) ((unsym : (a : αˢʸᵐ) → α) 0 : α) +
            HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) 0 : α) ((unsym : (a : αˢʸᵐ) → α) x : α))) :
      αˢʸᵐ)
    (0 : αˢʸᵐ)
⊢ x * 0 = 0
have rw₁ : Eq (α := αˢʸᵐ)
  ((sym : (a : α) → αˢʸᵐ)
      (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
        (HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) (0 : α) +
          HMul.hMul (α := α) (β := α) (0 : α) ((unsym : (a : αˢʸᵐ) → α) x : α))) :
    αˢʸᵐ)
  (0 : αˢʸᵐ)
Tactic: rw [mul_def, unsym_zero, zero_mul, mul_zero, add_zero,
        mul_zero, sym_zero]
-- Lean 4 proof step from Mathlib.Algebra.Symmetrized (goal)
Goal:
α : Type u_1
inst : Semiring α
inst_1 : Invertible (α := α) 2
x : αˢʸᵐ
rw :
  Eq (α := αˢʸᵐ)
    ((sym : (a : α) → αˢʸᵐ)
        (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
          (HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) ((unsym : (a : αˢʸᵐ) → α) 0 : α) +
            HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) 0 : α) ((unsym : (a : αˢʸᵐ) → α) x : α))) :
      αˢʸᵐ)
    (0 : αˢʸᵐ)
rw₁ :
  Eq (α := αˢʸᵐ)
    ((sym : (a : α) → αˢʸᵐ)
        (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
          (HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) (0 : α) +
            HMul.hMul (α := α) (β := α) (0 : α) ((unsym : (a : αˢʸᵐ) → α) x : α))) :
      αˢʸᵐ)
    (0 : αˢʸᵐ)
⊢ x * 0 = 0
have rw₂ : Eq (α := αˢʸᵐ)
  ((sym : (a : α) → αˢʸᵐ)
      (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
        (HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) (0 : α) + 0)) :
    αˢʸᵐ)
  (0 : αˢʸᵐ)
Tactic: rw [mul_def, unsym_zero, zero_mul, mul_zero, add_zero,
        mul_zero, sym_zero]
-- Lean 4 proof step from Mathlib.Algebra.Symmetrized (goal)
Goal:
α : Type u_1
inst : Semiring α
inst_1 : Invertible (α := α) 2
x : αˢʸᵐ
rw :
  Eq (α := αˢʸᵐ)
    ((sym : (a : α) → αˢʸᵐ)
        (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
          (HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) ((unsym : (a : αˢʸᵐ) → α) 0 : α) +
            HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) 0 : α) ((unsym : (a : αˢʸᵐ) → α) x : α))) :
      αˢʸᵐ)
    (0 : αˢʸᵐ)
rw₁ :
  Eq (α := αˢʸᵐ)
    ((sym : (a : α) → αˢʸᵐ)
        (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
          (HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) (0 : α) +
            HMul.hMul (α := α) (β := α) (0 : α) ((unsym : (a : αˢʸᵐ) → α) x : α))) :
      αˢʸᵐ)
    (0 : αˢʸᵐ)
rw₂ :
  Eq (α := αˢʸᵐ)
    ((sym : (a : α) → αˢʸᵐ)
        (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
          (HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) (0 : α) + 0)) :
      αˢʸᵐ)
    (0 : αˢʸᵐ)
⊢ x * 0 = 0
have rw₃ : Eq (α := αˢʸᵐ)
  ((sym : (a : α) → αˢʸᵐ) (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ * HAdd.hAdd (α := α) 0 0) :
    αˢʸᵐ)
  (0 : αˢʸᵐ)
Tactic: rw [mul_def, unsym_zero, zero_mul, mul_zero, add_zero,
        mul_zero, sym_zero]
-- Lean 4 proof step from Mathlib.Algebra.Symmetrized (goal)
Goal:
α : Type u_1
inst : Semiring α
inst_1 : Invertible (α := α) 2
x : αˢʸᵐ
rw :
  Eq (α := αˢʸᵐ)
    ((sym : (a : α) → αˢʸᵐ)
        (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
          (HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) ((unsym : (a : αˢʸᵐ) → α) 0 : α) +
            HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) 0 : α) ((unsym : (a : αˢʸᵐ) → α) x : α))) :
      αˢʸᵐ)
    (0 : αˢʸᵐ)
rw₁ :
  Eq (α := αˢʸᵐ)
    ((sym : (a : α) → αˢʸᵐ)
        (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
          (HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) (0 : α) +
            HMul.hMul (α := α) (β := α) (0 : α) ((unsym : (a : αˢʸᵐ) → α) x : α))) :
      αˢʸᵐ)
    (0 : αˢʸᵐ)
rw₂ :
  Eq (α := αˢʸᵐ)
    ((sym : (a : α) → αˢʸᵐ)
        (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
          (HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) (0 : α) + 0)) :
      αˢʸᵐ)
    (0 : αˢʸᵐ)
rw₃ :
  Eq (α := αˢʸᵐ)
    ((sym : (a : α) → αˢʸᵐ) (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ * HAdd.hAdd (α := α) 0 0) :
      αˢʸᵐ)
    (0 : αˢʸᵐ)
⊢ x * 0 = 0
have rw₄ : Eq (α := αˢʸᵐ)
  ((sym : (a : α) → αˢʸᵐ) (HMul.hMul (α := α) (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _) 0) : αˢʸᵐ)
  (0 : αˢʸᵐ)
Tactic: rw [mul_def, unsym_zero, zero_mul, mul_zero, add_zero,
        mul_zero, sym_zero]
-- Lean 4 proof step from Mathlib.Algebra.Symmetrized (goal)
Goal:
α : Type u_1
inst : Semiring α
inst_1 : Invertible (α := α) 2
x : αˢʸᵐ
rw :
  Eq (α := αˢʸᵐ)
    ((sym : (a : α) → αˢʸᵐ)
        (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
          (HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) ((unsym : (a : αˢʸᵐ) → α) 0 : α) +
            HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) 0 : α) ((unsym : (a : αˢʸᵐ) → α) x : α))) :
      αˢʸᵐ)
    (0 : αˢʸᵐ)
rw₁ :
  Eq (α := αˢʸᵐ)
    ((sym : (a : α) → αˢʸᵐ)
        (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
          (HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) (0 : α) +
            HMul.hMul (α := α) (β := α) (0 : α) ((unsym : (a : αˢʸᵐ) → α) x : α))) :
      αˢʸᵐ)
    (0 : αˢʸᵐ)
rw₂ :
  Eq (α := αˢʸᵐ)
    ((sym : (a : α) → αˢʸᵐ)
        (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
          (HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) (0 : α) + 0)) :
      αˢʸᵐ)
    (0 : αˢʸᵐ)
rw₃ :
  Eq (α := αˢʸᵐ)
    ((sym : (a : α) → αˢʸᵐ) (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ * HAdd.hAdd (α := α) 0 0) :
      αˢʸᵐ)
    (0 : αˢʸᵐ)
rw₄ :
  Eq (α := αˢʸᵐ)
    ((sym : (a : α) → αˢʸᵐ) (HMul.hMul (α := α) (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _) 0) :
      αˢʸᵐ)
    (0 : αˢʸᵐ)
⊢ x * 0 = 0
have rw₅ : Eq.{u_1 + 1} (α := αˢʸᵐ) ((sym : (a : α) → αˢʸᵐ) 0 : αˢʸᵐ) (0 : αˢʸᵐ)
Tactic: rw [mul_def, unsym_zero, zero_mul, mul_zero, add_zero,
        mul_zero, sym_zero]
-- Lean 4 proof step from Mathlib.Algebra.Symmetrized (goal)
Goal:
α : Type u_1
inst : Semiring α
inst_1 : Invertible (α := α) 2
x : αˢʸᵐ
rw :
  Eq (α := αˢʸᵐ)
    ((sym : (a : α) → αˢʸᵐ)
        (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
          (HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) ((unsym : (a : αˢʸᵐ) → α) 0 : α) +
            HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) 0 : α) ((unsym : (a : αˢʸᵐ) → α) x : α))) :
      αˢʸᵐ)
    (0 : αˢʸᵐ)
rw₁ :
  Eq (α := αˢʸᵐ)
    ((sym : (a : α) → αˢʸᵐ)
        (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
          (HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) (0 : α) +
            HMul.hMul (α := α) (β := α) (0 : α) ((unsym : (a : αˢʸᵐ) → α) x : α))) :
      αˢʸᵐ)
    (0 : αˢʸᵐ)
rw₂ :
  Eq (α := αˢʸᵐ)
    ((sym : (a : α) → αˢʸᵐ)
        (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
          (HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) (0 : α) + 0)) :
      αˢʸᵐ)
    (0 : αˢʸᵐ)
rw₃ :
  Eq (α := αˢʸᵐ)
    ((sym : (a : α) → αˢʸᵐ) (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ * HAdd.hAdd (α := α) 0 0) :
      αˢʸᵐ)
    (0 : αˢʸᵐ)
rw₄ :
  Eq (α := αˢʸᵐ)
    ((sym : (a : α) → αˢʸᵐ) (HMul.hMul (α := α) (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _) 0) :
      αˢʸᵐ)
    (0 : αˢʸᵐ)
rw₅ : Eq.{u_1 + 1} (α := αˢʸᵐ) ((sym : (a : α) → αˢʸᵐ) 0 : αˢʸᵐ) (0 : αˢʸᵐ)
⊢ x * 0 = 0
have rw₆ : Eq.{u_1 + 1} (α := αˢʸᵐ) 0 0
Tactic: rw [mul_def, unsym_zero, zero_mul, mul_zero, add_zero,
        mul_zero, sym_zero]
-- Lean 4 proof step from Mathlib.Algebra.Symmetrized (goal)
Goal:
α : Type u_1
inst : Semiring α
inst_1 : Invertible (α := α) 2
x : αˢʸᵐ
⊢ 1 * x = x
have rw : (sym : (a : α) → αˢʸᵐ)
    (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
      (HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) 1 : α) ((unsym : (a : αˢʸᵐ) → α) x : α) +
        HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) ((unsym : (a : αˢʸᵐ) → α) 1 : α))) =
  x
Tactic: rw [mul_def, unsym_one, mul_one, one_mul, ← two_mul, invOf_mul_cancel_left, sym_unsym]
-- Lean 4 proof step from Mathlib.Algebra.Symmetrized (goal)
Goal:
α : Type u_1
inst : Semiring α
inst_1 : Invertible (α := α) 2
x : αˢʸᵐ
rw :
  (sym : (a : α) → αˢʸᵐ)
      (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
        (HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) 1 : α) ((unsym : (a : αˢʸᵐ) → α) x : α) +
          HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) ((unsym : (a : αˢʸᵐ) → α) 1 : α))) =
    x
⊢ 1 * x = x
have rw₁ : (sym : (a : α) → αˢʸᵐ)
    (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
      (HMul.hMul (α := α) (β := α) (1 : α) ((unsym : (a : αˢʸᵐ) → α) x : α) +
        HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) (1 : α))) =
  x
Tactic: rw [mul_def, unsym_one, mul_one, one_mul, ← two_mul, invOf_mul_cancel_left, sym_unsym]
-- Lean 4 proof step from Mathlib.Algebra.Symmetrized (goal)
Goal:
α : Type u_1
inst : Semiring α
inst_1 : Invertible (α := α) 2
x : αˢʸᵐ
rw :
  (sym : (a : α) → αˢʸᵐ)
      (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
        (HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) 1 : α) ((unsym : (a : αˢʸᵐ) → α) x : α) +
          HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) ((unsym : (a : αˢʸᵐ) → α) 1 : α))) =
    x
rw₁ :
  (sym : (a : α) → αˢʸᵐ)
      (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
        (HMul.hMul (α := α) (β := α) (1 : α) ((unsym : (a : αˢʸᵐ) → α) x : α) +
          HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) (1 : α))) =
    x
⊢ 1 * x = x
have rw₂ : (sym : (a : α) → αˢʸᵐ)
    (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
      HAdd.hAdd (β := α) (HMul.hMul (α := α) (β := α) (1 : α) ((unsym : (a : αˢʸᵐ) → α) x : α))
        ((unsym : (a : αˢʸᵐ) → α) x : α)) =
  x
Tactic: rw [mul_def, unsym_one, mul_one, one_mul, ← two_mul, invOf_mul_cancel_left, sym_unsym]
-- Lean 4 proof step from Mathlib.Algebra.Symmetrized (goal)
Goal:
α : Type u_1
inst : Semiring α
inst_1 : Invertible (α := α) 2
x : αˢʸᵐ
rw :
  (sym : (a : α) → αˢʸᵐ)
      (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
        (HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) 1 : α) ((unsym : (a : αˢʸᵐ) → α) x : α) +
          HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) ((unsym : (a : αˢʸᵐ) → α) 1 : α))) =
    x
rw₁ :
  (sym : (a : α) → αˢʸᵐ)
      (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
        (HMul.hMul (α := α) (β := α) (1 : α) ((unsym : (a : αˢʸᵐ) → α) x : α) +
          HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) (1 : α))) =
    x
rw₂ :
  (sym : (a : α) → αˢʸᵐ)
      (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
        HAdd.hAdd (β := α) (HMul.hMul (α := α) (β := α) (1 : α) ((unsym : (a : αˢʸᵐ) → α) x : α))
          ((unsym : (a : αˢʸᵐ) → α) x : α)) =
    x
⊢ 1 * x = x
have rw₃ : (sym : (a : α) → αˢʸᵐ)
    (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
      HAdd.hAdd (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) ((unsym : (a : αˢʸᵐ) → α) x : α)) =
  x
Tactic: rw [mul_def, unsym_one, mul_one, one_mul, ← two_mul, invOf_mul_cancel_left, sym_unsym]
-- Lean 4 proof step from Mathlib.Algebra.Symmetrized (goal)
Goal:
α : Type u_1
inst : Semiring α
inst_1 : Invertible (α := α) 2
x : αˢʸᵐ
rw :
  (sym : (a : α) → αˢʸᵐ)
      (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
        (HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) 1 : α) ((unsym : (a : αˢʸᵐ) → α) x : α) +
          HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) ((unsym : (a : αˢʸᵐ) → α) 1 : α))) =
    x
rw₁ :
  (sym : (a : α) → αˢʸᵐ)
      (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
        (HMul.hMul (α := α) (β := α) (1 : α) ((unsym : (a : αˢʸᵐ) → α) x : α) +
          HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) (1 : α))) =
    x
rw₂ :
  (sym : (a : α) → αˢʸᵐ)
      (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
        HAdd.hAdd (β := α) (HMul.hMul (α := α) (β := α) (1 : α) ((unsym : (a : αˢʸᵐ) → α) x : α))
          ((unsym : (a : αˢʸᵐ) → α) x : α)) =
    x
rw₃ :
  (sym : (a : α) → αˢʸᵐ)
      (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
        HAdd.hAdd (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) ((unsym : (a : αˢʸᵐ) → α) x : α)) =
    x
⊢ 1 * x = x
have rw₄ : (sym : (a : α) → αˢʸᵐ)
    (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
      HMul.hMul (α := α) (β := α) (2 : α) ((unsym : (a : αˢʸᵐ) → α) x : α)) =
  x
Tactic: rw [mul_def, unsym_one, mul_one, one_mul, ← two_mul, invOf_mul_cancel_left, sym_unsym]
-- Lean 4 proof step from Mathlib.Algebra.Symmetrized (goal)
Goal:
α : Type u_1
inst : Semiring α
inst_1 : Invertible (α := α) 2
x : αˢʸᵐ
rw :
  (sym : (a : α) → αˢʸᵐ)
      (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
        (HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) 1 : α) ((unsym : (a : αˢʸᵐ) → α) x : α) +
          HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) ((unsym : (a : αˢʸᵐ) → α) 1 : α))) =
    x
rw₁ :
  (sym : (a : α) → αˢʸᵐ)
      (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
        (HMul.hMul (α := α) (β := α) (1 : α) ((unsym : (a : αˢʸᵐ) → α) x : α) +
          HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) (1 : α))) =
    x
rw₂ :
  (sym : (a : α) → αˢʸᵐ)
      (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
        HAdd.hAdd (β := α) (HMul.hMul (α := α) (β := α) (1 : α) ((unsym : (a : αˢʸᵐ) → α) x : α))
          ((unsym : (a : αˢʸᵐ) → α) x : α)) =
    x
rw₃ :
  (sym : (a : α) → αˢʸᵐ)
      (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
        HAdd.hAdd (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) ((unsym : (a : αˢʸᵐ) → α) x : α)) =
    x
rw₄ :
  (sym : (a : α) → αˢʸᵐ)
      (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
        HMul.hMul (α := α) (β := α) (2 : α) ((unsym : (a : αˢʸᵐ) → α) x : α)) =
    x
⊢ 1 * x = x
have rw₅ : (sym : (a : α) → αˢʸᵐ) ((unsym : (a : αˢʸᵐ) → α) x : α) = x
Tactic: rw [mul_def, unsym_one, mul_one, one_mul, ← two_mul, invOf_mul_cancel_left, sym_unsym]
-- Lean 4 proof step from Mathlib.Algebra.Symmetrized (goal)
Goal:
α : Type u_1
inst : Semiring α
inst_1 : Invertible (α := α) 2
x : αˢʸᵐ
rw :
  (sym : (a : α) → αˢʸᵐ)
      (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
        (HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) 1 : α) ((unsym : (a : αˢʸᵐ) → α) x : α) +
          HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) ((unsym : (a : αˢʸᵐ) → α) 1 : α))) =
    x
rw₁ :
  (sym : (a : α) → αˢʸᵐ)
      (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
        (HMul.hMul (α := α) (β := α) (1 : α) ((unsym : (a : αˢʸᵐ) → α) x : α) +
          HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) (1 : α))) =
    x
rw₂ :
  (sym : (a : α) → αˢʸᵐ)
      (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
        HAdd.hAdd (β := α) (HMul.hMul (α := α) (β := α) (1 : α) ((unsym : (a : αˢʸᵐ) → α) x : α))
          ((unsym : (a : αˢʸᵐ) → α) x : α)) =
    x
rw₃ :
  (sym : (a : α) → αˢʸᵐ)
      (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
        HAdd.hAdd (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) ((unsym : (a : αˢʸᵐ) → α) x : α)) =
    x
rw₄ :
  (sym : (a : α) → αˢʸᵐ)
      (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
        HMul.hMul (α := α) (β := α) (2 : α) ((unsym : (a : αˢʸᵐ) → α) x : α)) =
    x
rw₅ : (sym : (a : α) → αˢʸᵐ) ((unsym : (a : αˢʸᵐ) → α) x : α) = x
⊢ 1 * x = x
have rw₆ : x = x
Tactic: rw [mul_def, unsym_one, mul_one, one_mul, ← two_mul, invOf_mul_cancel_left, sym_unsym]
-- Lean 4 proof step from Mathlib.Algebra.Symmetrized (goal)
Goal:
α : Type u_1
inst : Semiring α
inst_1 : Invertible (α := α) 2
x : αˢʸᵐ
⊢ x * 1 = x
have rw : (sym : (a : α) → αˢʸᵐ)
    (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
      (HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) ((unsym : (a : αˢʸᵐ) → α) 1 : α) +
        HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) 1 : α) ((unsym : (a : αˢʸᵐ) → α) x : α))) =
  x
Tactic: rw [mul_def, unsym_one, mul_one, one_mul, ← two_mul, invOf_mul_cancel_left, sym_unsym]
-- Lean 4 proof step from Mathlib.Algebra.Symmetrized (goal)
Goal:
α : Type u_1
inst : Semiring α
inst_1 : Invertible (α := α) 2
x : αˢʸᵐ
rw :
  (sym : (a : α) → αˢʸᵐ)
      (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
        (HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) ((unsym : (a : αˢʸᵐ) → α) 1 : α) +
          HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) 1 : α) ((unsym : (a : αˢʸᵐ) → α) x : α))) =
    x
⊢ x * 1 = x
have rw₁ : (sym : (a : α) → αˢʸᵐ)
    (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
      (HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) (1 : α) +
        HMul.hMul (α := α) (β := α) (1 : α) ((unsym : (a : αˢʸᵐ) → α) x : α))) =
  x
Tactic: rw [mul_def, unsym_one, mul_one, one_mul, ← two_mul, invOf_mul_cancel_left, sym_unsym]
-- Lean 4 proof step from Mathlib.Algebra.Symmetrized (goal)
Goal:
α : Type u_1
inst : Semiring α
inst_1 : Invertible (α := α) 2
x : αˢʸᵐ
rw :
  (sym : (a : α) → αˢʸᵐ)
      (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
        (HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) ((unsym : (a : αˢʸᵐ) → α) 1 : α) +
          HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) 1 : α) ((unsym : (a : αˢʸᵐ) → α) x : α))) =
    x
rw₁ :
  (sym : (a : α) → αˢʸᵐ)
      (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
        (HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) (1 : α) +
          HMul.hMul (α := α) (β := α) (1 : α) ((unsym : (a : αˢʸᵐ) → α) x : α))) =
    x
⊢ x * 1 = x
have rw₂ : (sym : (a : α) → αˢʸᵐ)
    (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
      HAdd.hAdd (α := α) ((unsym : (a : αˢʸᵐ) → α) x : α)
        (HMul.hMul (α := α) (β := α) (1 : α) ((unsym : (a : αˢʸᵐ) → α) x : α))) =
  x
Tactic: rw [mul_def, unsym_one, mul_one, one_mul, ← two_mul, invOf_mul_cancel_left, sym_unsym]
-- Lean 4 proof step from Mathlib.Algebra.Symmetrized (goal)
Goal:
α : Type u_1
inst : Semiring α
inst_1 : Invertible (α := α) 2
x : αˢʸᵐ
rw :
  (sym : (a : α) → αˢʸᵐ)
      (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
        (HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) ((unsym : (a : αˢʸᵐ) → α) 1 : α) +
          HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) 1 : α) ((unsym : (a : αˢʸᵐ) → α) x : α))) =
    x
rw₁ :
  (sym : (a : α) → αˢʸᵐ)
      (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
        (HMul.hMul (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) (1 : α) +
          HMul.hMul (α := α) (β := α) (1 : α) ((unsym : (a : αˢʸᵐ) → α) x : α))) =
    x
rw₂ :
  (sym : (a : α) → αˢʸᵐ)
      (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
        HAdd.hAdd (α := α) ((unsym : (a : αˢʸᵐ) → α) x : α)
          (HMul.hMul (α := α) (β := α) (1 : α) ((unsym : (a : αˢʸᵐ) → α) x : α))) =
    x
⊢ x * 1 = x
have rw₃ : (sym : (a : α) → αˢʸᵐ)
    (@Invertible.invOf _ Distrib.toMul AddMonoidWithOne.toOne 2 _ *
      HAdd.hAdd (α := α) (β := α) ((unsym : (a : αˢʸᵐ) → α) x : α) ((unsym : (a : αˢʸᵐ) → α) x : α)) =
  x
Tactic: rw [mul_def, unsym_one, mul_one, one_mul, ← two_mul, invOf_mul_cancel_left, sym_unsym]