Theorem: Lean4Axiomatic.Integer.negative_subst (Lean4Axiomatic/Integer/Sign.lean)

State before:
ℕ : Type
inst✝⁵ : Natural ℕ
ℤ : Type
inst✝⁴ : Core ℤ
inst✝³ : Addition ℤ
inst✝² : Multiplication ℤ
inst✝¹ : Negation ℤ
inst✝ : Sign ℤ
a₁ a₂ : ℤ
⊢ a₁ ≃ a₂ → Negative a₁ → Negative a₂
Tactic:
intro (_ : a₁ ≃ a₂) (_ : Negative a₁)
State after:
ℕ : Type
inst✝⁵ : Natural ℕ
ℤ : Type
inst✝⁴ : Core ℤ
inst✝³ : Addition ℤ
inst✝² : Multiplication ℤ
inst✝¹ : Negation ℤ
inst✝ : Sign ℤ
a₁ a₂ : ℤ
x✝¹ : a₁ ≃ a₂
x✝ : Negative a₁
⊢ Negative a₂

State before:
ℕ : Type
inst✝⁵ : Natural ℕ
ℤ : Type
inst✝⁴ : Core ℤ
inst✝³ : Addition ℤ
inst✝² : Multiplication ℤ
inst✝¹ : Negation ℤ
inst✝ : Sign ℤ
a₁ a₂ : ℤ
x✝¹ : a₁ ≃ a₂
x✝ : Negative a₁
⊢ Negative a₂
Tactic:
have (NonzeroWithSign.intro (m : ℕ) (_ : Positive m) (_ : a₁ ≃ -1 * ↑m)) :=
  negative_iff_sign_neg1.mp ‹Negative a₁›
State after:
ℕ : Type
inst✝⁵ : Natural ℕ
ℤ : Type
inst✝⁴ : Core ℤ
inst✝³ : Addition ℤ
inst✝² : Multiplication ℤ
inst✝¹ : Negation ℤ
inst✝ : Sign ℤ
a₁ a₂ : ℤ
x✝¹ : a₁ ≃ a₂
x✝ : Negative a₁
m : ℕ
pos✝ : Positive m
eqv✝ : a₁ ≃ -1 * coe m
⊢ Negative a₂

State before:
ℕ : Type
inst✝⁵ : Natural ℕ
ℤ : Type
inst✝⁴ : Core ℤ
inst✝³ : Addition ℤ
inst✝² : Multiplication ℤ
inst✝¹ : Negation ℤ
inst✝ : Sign ℤ
a₁ a₂ : ℤ
x✝¹ : a₁ ≃ a₂
x✝ : Negative a₁
m : ℕ
pos✝ : Positive m
eqv✝ : a₁ ≃ -1 * coe m
⊢ Negative a₂
Tactic:
have : a₂ ≃ -1 * ↑m := Rel.trans (Rel.symm ‹a₁ ≃ a₂›) ‹a₁ ≃ -1 * ↑m›
State after:
ℕ : Type
inst✝⁵ : Natural ℕ
ℤ : Type
inst✝⁴ : Core ℤ
inst✝³ : Addition ℤ
inst✝² : Multiplication ℤ
inst✝¹ : Negation ℤ
inst✝ : Sign ℤ
a₁ a₂ : ℤ
x✝¹ : a₁ ≃ a₂
x✝ : Negative a₁
m : ℕ
pos✝ : Positive m
eqv✝ : a₁ ≃ -1 * coe m
this : a₂ ≃ -1 * coe m
⊢ Negative a₂

State before:
ℕ : Type
inst✝⁵ : Natural ℕ
ℤ : Type
inst✝⁴ : Core ℤ
inst✝³ : Addition ℤ
inst✝² : Multiplication ℤ
inst✝¹ : Negation ℤ
inst✝ : Sign ℤ
a₁ a₂ : ℤ
x✝¹ : a₁ ≃ a₂
x✝ : Negative a₁
m : ℕ
pos✝ : Positive m
eqv✝ : a₁ ≃ -1 * coe m
this : a₂ ≃ -1 * coe m
⊢ Negative a₂
Tactic:
have : NonzeroWithSign a₂ (-1) :=
  NonzeroWithSign.intro m ‹Positive m› ‹a₂ ≃ -1 * ↑m›
State after:
ℕ : Type
inst✝⁵ : Natural ℕ
ℤ : Type
inst✝⁴ : Core ℤ
inst✝³ : Addition ℤ
inst✝² : Multiplication ℤ
inst✝¹ : Negation ℤ
inst✝ : Sign ℤ
a₁ a₂ : ℤ
x✝¹ : a₁ ≃ a₂
x✝ : Negative a₁
m : ℕ
pos✝ : Positive m
eqv✝ : a₁ ≃ -1 * coe m
this✝ : a₂ ≃ -1 * coe m
this : NonzeroWithSign a₂ (-1)
⊢ Negative a₂

State before:
ℕ : Type
inst✝⁵ : Natural ℕ
ℤ : Type
inst✝⁴ : Core ℤ
inst✝³ : Addition ℤ
inst✝² : Multiplication ℤ
inst✝¹ : Negation ℤ
inst✝ : Sign ℤ
a₁ a₂ : ℤ
x✝¹ : a₁ ≃ a₂
x✝ : Negative a₁
m : ℕ
pos✝ : Positive m
eqv✝ : a₁ ≃ -1 * coe m
this✝ : a₂ ≃ -1 * coe m
this : NonzeroWithSign a₂ (-1)
⊢ Negative a₂
Tactic:
have : Negative a₂ := negative_iff_sign_neg1.mpr ‹NonzeroWithSign a₂ (-1)›
State after:
ℕ : Type
inst✝⁵ : Natural ℕ
ℤ : Type
inst✝⁴ : Core ℤ
inst✝³ : Addition ℤ
inst✝² : Multiplication ℤ
inst✝¹ : Negation ℤ
inst✝ : Sign ℤ
a₁ a₂ : ℤ
x✝¹ : a₁ ≃ a₂
x✝ : Negative a₁
m : ℕ
pos✝ : Positive m
eqv✝ : a₁ ≃ -1 * coe m
this✝¹ : a₂ ≃ -1 * coe m
this✝ : NonzeroWithSign a₂ (-1)
this : Negative a₂
⊢ Negative a₂

State before:
ℕ : Type
inst✝⁵ : Natural ℕ
ℤ : Type
inst✝⁴ : Core ℤ
inst✝³ : Addition ℤ
inst✝² : Multiplication ℤ
inst✝¹ : Negation ℤ
inst✝ : Sign ℤ
a₁ a₂ : ℤ
x✝¹ : a₁ ≃ a₂
x✝ : Negative a₁
m : ℕ
pos✝ : Positive m
eqv✝ : a₁ ≃ -1 * coe m
this✝¹ : a₂ ≃ -1 * coe m
this✝ : NonzeroWithSign a₂ (-1)
this : Negative a₂
⊢ Negative a₂
Tactic:
exact this
State after:
no goals