Theorem: Prime.irreducible
File: Mathlib/Algebra/Associated.lean

tactic: simp [Prime] at *
state_before: α : Type u_1
β : Type ?u.97319
γ : Type ?u.97322
δ : Type ?u.97325
inst✝ : CancelCommMonoidWithZero α
a✝ p : α
hp : Prime p
a b : α
hab : p = a * b
x✝ : a * b ∣ a
x : α
hx : a = a * b * x
h : a = 0
⊢ False

tactic: rw [h, zero_mul] at hab
state_before: α : Type u_1
β : Type ?u.97319
γ : Type ?u.97322
δ : Type ?u.97325
inst✝ : CancelCommMonoidWithZero α
a✝ p : α
hp : ¬p = 0 ∧ ¬IsUnit p ∧ ∀ (a b : α), p ∣ a * b → p ∣ a ∨ p ∣ b
a b : α
hab : p = a * b
x✝ : a * b ∣ a
x : α
hx : a = a * b * x
h : a = 0
⊢ False

tactic: have := hp.left
state_before: α : Type u_1
β : Type ?u.97319
γ : Type ?u.97322
δ : Type ?u.97325
inst✝ : CancelCommMonoidWithZero α
a✝ p : α
hp : ¬p = 0 ∧ ¬IsUnit p ∧ ∀ (a b : α), p ∣ a * b → p ∣ a ∨ p ∣ b
a b : α
hab : p = 0
x✝ : a * b ∣ a
x : α
hx : a = a * b * x
h : a = 0
⊢ False

tactic: contradiction
state_before: α : Type u_1
β : Type ?u.97319
γ : Type ?u.97322
δ : Type ?u.97325
inst✝ : CancelCommMonoidWithZero α
a✝ p : α
hp : ¬p = 0 ∧ ¬IsUnit p ∧ ∀ (a b : α), p ∣ a * b → p ∣ a ∨ p ∣ b
a b : α
hab : p = 0
x✝ : a * b ∣ a
x : α
hx : a = a * b * x
h : a = 0
this : ¬p = 0
⊢ False

tactic: conv =>
    lhs
    rw [hx]
state_before: α : Type u_1
β : Type ?u.97319
γ : Type ?u.97322
δ : Type ?u.97325
inst✝ : CancelCommMonoidWithZero α
a✝ p : α
hp : Prime p
a b : α
hab : p = a * b
x✝ : a * b ∣ a
x : α
hx : a = a * b * x
⊢ 1 * a = b * x * a

tactic: simp [mul_comm, mul_assoc, mul_left_comm]
state_before: α : Type u_1
β : Type ?u.97319
γ : Type ?u.97322
δ : Type ?u.97325
inst✝ : CancelCommMonoidWithZero α
a✝ p : α
hp : Prime p
a b : α
hab : p = a * b
x✝ : a * b ∣ a
x : α
hx : a = a * b * x
⊢ 1 * (a * b * x) = b * x * a

tactic: simp [Prime] at *
state_before: α : Type u_1
β : Type ?u.97319
γ : Type ?u.97322
δ : Type ?u.97325
inst✝ : CancelCommMonoidWithZero α
a✝ p : α
hp : Prime p
a b : α
hab : p = a * b
x✝ : a * b ∣ b
x : α
hx : b = a * b * x
h : b = 0
⊢ False

tactic: rw [h, mul_zero] at hab
state_before: α : Type u_1
β : Type ?u.97319
γ : Type ?u.97322
δ : Type ?u.97325
inst✝ : CancelCommMonoidWithZero α
a✝ p : α
hp : ¬p = 0 ∧ ¬IsUnit p ∧ ∀ (a b : α), p ∣ a * b → p ∣ a ∨ p ∣ b
a b : α
hab : p = a * b
x✝ : a * b ∣ b
x : α
hx : b = a * b * x
h : b = 0
⊢ False

tactic: have := hp.left
state_before: α : Type u_1
β : Type ?u.97319
γ : Type ?u.97322
δ : Type ?u.97325
inst✝ : CancelCommMonoidWithZero α
a✝ p : α
hp : ¬p = 0 ∧ ¬IsUnit p ∧ ∀ (a b : α), p ∣ a * b → p ∣ a ∨ p ∣ b
a b : α
hab : p = 0
x✝ : a * b ∣ b
x : α
hx : b = a * b * x
h : b = 0
⊢ False

tactic: contradiction
state_before: α : Type u_1
β : Type ?u.97319
γ : Type ?u.97322
δ : Type ?u.97325
inst✝ : CancelCommMonoidWithZero α
a✝ p : α
hp : ¬p = 0 ∧ ¬IsUnit p ∧ ∀ (a b : α), p ∣ a * b → p ∣ a ∨ p ∣ b
a b : α
hab : p = 0
x✝ : a * b ∣ b
x : α
hx : b = a * b * x
h : b = 0
this : ¬p = 0
⊢ False

tactic: conv =>
    lhs
    rw [hx]
state_before: α : Type u_1
β : Type ?u.97319
γ : Type ?u.97322
δ : Type ?u.97325
inst✝ : CancelCommMonoidWithZero α
a✝ p : α
hp : Prime p
a b : α
hab : p = a * b
x✝ : a * b ∣ b
x : α
hx : b = a * b * x
⊢ 1 * b = a * x * b

tactic: simp [mul_comm, mul_assoc, mul_left_comm]
state_before: α : Type u_1
β : Type ?u.97319
γ : Type ?u.97322
δ : Type ?u.97325
inst✝ : CancelCommMonoidWithZero α
a✝ p : α
hp : Prime p
a b : α
hab : p = a * b
x✝ : a * b ∣ b
x : α
hx : b = a * b * x
⊢ 1 * (a * b * x) = a * x * b