Theorem: LO.FirstOrder.Arith.Model.hash_two_mul (Arithmetization/OmegaOne/Basic.lean)

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀ + 𝛀₁
a b : M
pos : 0 < b
⊢ a # (2 * b) = a # b * a # 1
Tactic:
have h₁ : Exponential (‖a‖ * ‖b‖ + ‖a‖) (a # (2 * b)) := by
  simpa [length_two_mul_of_pos pos, mul_add] using exponential_hash a (2 * b)
State after:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀ + 𝛀₁
a b : M
pos : 0 < b
h₁ : Exponential (‖a‖ * ‖b‖ + ‖a‖) (a # (2 * b))
⊢ a # (2 * b) = a # b * a # 1

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀ + 𝛀₁
a b : M
pos : 0 < b
h₁ : Exponential (‖a‖ * ‖b‖ + ‖a‖) (a # (2 * b))
⊢ a # (2 * b) = a # b * a # 1
Tactic:
have h₂ : Exponential (‖a‖ * ‖b‖ + ‖a‖) (a # b * a # 1) := (exponential_hash a b).add_mul (exponential_hash_one a)
State after:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀ + 𝛀₁
a b : M
pos : 0 < b
h₁ : Exponential (‖a‖ * ‖b‖ + ‖a‖) (a # (2 * b))
h₂ : Exponential (‖a‖ * ‖b‖ + ‖a‖) (a # b * a # 1)
⊢ a # (2 * b) = a # b * a # 1

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀ + 𝛀₁
a b : M
pos : 0 < b
h₁ : Exponential (‖a‖ * ‖b‖ + ‖a‖) (a # (2 * b))
h₂ : Exponential (‖a‖ * ‖b‖ + ‖a‖) (a # b * a # 1)
⊢ a # (2 * b) = a # b * a # 1
Tactic:
exact h₁.uniq h₂
State after:
no goals

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀ + 𝛀₁
a b : M
pos : 0 < b
⊢ Exponential (‖a‖ * ‖b‖ + ‖a‖) (a # (2 * b))
Tactic:
simpa [length_two_mul_of_pos pos, mul_add] using exponential_hash a (2 * b)
State after:
no goals