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

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

State before:
ℕ : Type
inst✝⁵ : Natural ℕ
ℤ : Type
inst✝⁴ : Core ℤ
inst✝³ : Addition ℤ
inst✝² : Multiplication ℤ
inst✝¹ : Negation ℤ
inst✝ : Sign ℤ
a b : ℤ
x✝¹ : Positive a
x✝ : Positive b
⊢ Positive (a + b)
Tactic:
have : sgn a ≃ 1 := sgn_positive.mp ‹Positive a›
State after:
ℕ : Type
inst✝⁵ : Natural ℕ
ℤ : Type
inst✝⁴ : Core ℤ
inst✝³ : Addition ℤ
inst✝² : Multiplication ℤ
inst✝¹ : Negation ℤ
inst✝ : Sign ℤ
a b : ℤ
x✝¹ : Positive a
x✝ : Positive b
this : sgn a ≃ 1
⊢ Positive (a + b)

State before:
ℕ : Type
inst✝⁵ : Natural ℕ
ℤ : Type
inst✝⁴ : Core ℤ
inst✝³ : Addition ℤ
inst✝² : Multiplication ℤ
inst✝¹ : Negation ℤ
inst✝ : Sign ℤ
a b : ℤ
x✝¹ : Positive a
x✝ : Positive b
this : sgn a ≃ 1
⊢ Positive (a + b)
Tactic:
have : sgn b ≃ 1 := sgn_positive.mp ‹Positive b›
State after:
ℕ : Type
inst✝⁵ : Natural ℕ
ℤ : Type
inst✝⁴ : Core ℤ
inst✝³ : Addition ℤ
inst✝² : Multiplication ℤ
inst✝¹ : Negation ℤ
inst✝ : Sign ℤ
a b : ℤ
x✝¹ : Positive a
x✝ : Positive b
this✝ : sgn a ≃ 1
this : sgn b ≃ 1
⊢ Positive (a + b)

State before:
ℕ : Type
inst✝⁵ : Natural ℕ
ℤ : Type
inst✝⁴ : Core ℤ
inst✝³ : Addition ℤ
inst✝² : Multiplication ℤ
inst✝¹ : Negation ℤ
inst✝ : Sign ℤ
a b : ℤ
x✝¹ : Positive a
x✝ : Positive b
this✝ : sgn a ≃ 1
this : sgn b ≃ 1
⊢ Positive (a + b)
Tactic:
have : sgn (a + b) ≃ 1 := add_preserves_sign ‹sgn a ≃ 1› ‹sgn b ≃ 1›
State after:
ℕ : Type
inst✝⁵ : Natural ℕ
ℤ : Type
inst✝⁴ : Core ℤ
inst✝³ : Addition ℤ
inst✝² : Multiplication ℤ
inst✝¹ : Negation ℤ
inst✝ : Sign ℤ
a b : ℤ
x✝¹ : Positive a
x✝ : Positive b
this✝¹ : sgn a ≃ 1
this✝ : sgn b ≃ 1
this : sgn (a + b) ≃ 1
⊢ Positive (a + b)

State before:
ℕ : Type
inst✝⁵ : Natural ℕ
ℤ : Type
inst✝⁴ : Core ℤ
inst✝³ : Addition ℤ
inst✝² : Multiplication ℤ
inst✝¹ : Negation ℤ
inst✝ : Sign ℤ
a b : ℤ
x✝¹ : Positive a
x✝ : Positive b
this✝¹ : sgn a ≃ 1
this✝ : sgn b ≃ 1
this : sgn (a + b) ≃ 1
⊢ Positive (a + b)
Tactic:
have : Positive (a + b) := sgn_positive.mpr this
State after:
ℕ : Type
inst✝⁵ : Natural ℕ
ℤ : Type
inst✝⁴ : Core ℤ
inst✝³ : Addition ℤ
inst✝² : Multiplication ℤ
inst✝¹ : Negation ℤ
inst✝ : Sign ℤ
a b : ℤ
x✝¹ : Positive a
x✝ : Positive b
this✝² : sgn a ≃ 1
this✝¹ : sgn b ≃ 1
this✝ : sgn (a + b) ≃ 1
this : Positive (a + b)
⊢ Positive (a + b)

State before:
ℕ : Type
inst✝⁵ : Natural ℕ
ℤ : Type
inst✝⁴ : Core ℤ
inst✝³ : Addition ℤ
inst✝² : Multiplication ℤ
inst✝¹ : Negation ℤ
inst✝ : Sign ℤ
a b : ℤ
x✝¹ : Positive a
x✝ : Positive b
this✝² : sgn a ≃ 1
this✝¹ : sgn b ≃ 1
this✝ : sgn (a + b) ≃ 1
this : Positive (a + b)
⊢ Positive (a + b)
Tactic:
exact this
State after:
no goals