Theorem: Lean4Axiomatic.Rational.close_from_between (Lean4Axiomatic/Rational/Metric.lean)

State before:
ℕ ℤ ℚ : Type
inst✝¹² : Natural ℕ
inst✝¹¹ : Integer ℤ
inst✝¹⁰ : Core ℚ
inst✝⁹ : Addition ℚ
inst✝⁸ : Negation ℚ
inst✝⁷ : Subtraction ℚ
inst✝⁶ : Multiplication ℚ
inst✝⁵ : Reciprocation ℚ
inst✝⁴ : Division ℚ
inst✝³ : Sign ℚ
inst✝² : Order ℚ
inst✝¹ : MinMax ℚ
inst✝ : Metric ℚ
ε p q : ℚ
⊢ ε ≥ 0 → p - ε⊣ q ⊢p + ε → p ⊢ε⊣ q
Tactic:
intro (_ : ε ≥ 0) (_ : p-ε⊣ q ⊢p+ε)
State after:
ℕ ℤ ℚ : Type
inst✝¹² : Natural ℕ
inst✝¹¹ : Integer ℤ
inst✝¹⁰ : Core ℚ
inst✝⁹ : Addition ℚ
inst✝⁸ : Negation ℚ
inst✝⁷ : Subtraction ℚ
inst✝⁶ : Multiplication ℚ
inst✝⁵ : Reciprocation ℚ
inst✝⁴ : Division ℚ
inst✝³ : Sign ℚ
inst✝² : Order ℚ
inst✝¹ : MinMax ℚ
inst✝ : Metric ℚ
ε p q : ℚ
x✝¹ : ε ≥ 0
x✝ : p - ε⊣ q ⊢p + ε
⊢ p ⊢ε⊣ q

State before:
ℕ ℤ ℚ : Type
inst✝¹² : Natural ℕ
inst✝¹¹ : Integer ℤ
inst✝¹⁰ : Core ℚ
inst✝⁹ : Addition ℚ
inst✝⁸ : Negation ℚ
inst✝⁷ : Subtraction ℚ
inst✝⁶ : Multiplication ℚ
inst✝⁵ : Reciprocation ℚ
inst✝⁴ : Division ℚ
inst✝³ : Sign ℚ
inst✝² : Order ℚ
inst✝¹ : MinMax ℚ
inst✝ : Metric ℚ
ε p q : ℚ
x✝¹ : ε ≥ 0
x✝ : p - ε⊣ q ⊢p + ε
⊢ p ⊢ε⊣ q
Tactic:
have : -ε ≤ ε := le_neg_nonneg ‹ε ≥ 0›
State after:
ℕ ℤ ℚ : Type
inst✝¹² : Natural ℕ
inst✝¹¹ : Integer ℤ
inst✝¹⁰ : Core ℚ
inst✝⁹ : Addition ℚ
inst✝⁸ : Negation ℚ
inst✝⁷ : Subtraction ℚ
inst✝⁶ : Multiplication ℚ
inst✝⁵ : Reciprocation ℚ
inst✝⁴ : Division ℚ
inst✝³ : Sign ℚ
inst✝² : Order ℚ
inst✝¹ : MinMax ℚ
inst✝ : Metric ℚ
ε p q : ℚ
x✝¹ : ε ≥ 0
x✝ : p - ε⊣ q ⊢p + ε
this : -ε ≤ ε
⊢ p ⊢ε⊣ q

State before:
ℕ ℤ ℚ : Type
inst✝¹² : Natural ℕ
inst✝¹¹ : Integer ℤ
inst✝¹⁰ : Core ℚ
inst✝⁹ : Addition ℚ
inst✝⁸ : Negation ℚ
inst✝⁷ : Subtraction ℚ
inst✝⁶ : Multiplication ℚ
inst✝⁵ : Reciprocation ℚ
inst✝⁴ : Division ℚ
inst✝³ : Sign ℚ
inst✝² : Order ℚ
inst✝¹ : MinMax ℚ
inst✝ : Metric ℚ
ε p q : ℚ
x✝¹ : ε ≥ 0
x✝ : p - ε⊣ q ⊢p + ε
this : -ε ≤ ε
⊢ p ⊢ε⊣ q
Tactic:
have : p-ε ≤ p+ε := calc
  _ ≃ p - ε    := eqv_refl
  _ ≃ p + (-ε) := sub_add_neg
  _ ≤ p + ε    := le_substR_add ‹-ε ≤ ε›
State after:
ℕ ℤ ℚ : Type
inst✝¹² : Natural ℕ
inst✝¹¹ : Integer ℤ
inst✝¹⁰ : Core ℚ
inst✝⁹ : Addition ℚ
inst✝⁸ : Negation ℚ
inst✝⁷ : Subtraction ℚ
inst✝⁶ : Multiplication ℚ
inst✝⁵ : Reciprocation ℚ
inst✝⁴ : Division ℚ
inst✝³ : Sign ℚ
inst✝² : Order ℚ
inst✝¹ : MinMax ℚ
inst✝ : Metric ℚ
ε p q : ℚ
x✝¹ : ε ≥ 0
x✝ : p - ε⊣ q ⊢p + ε
this✝ : -ε ≤ ε
this : p - ε ≤ p + ε
⊢ p ⊢ε⊣ q

State before:
ℕ ℤ ℚ : Type
inst✝¹² : Natural ℕ
inst✝¹¹ : Integer ℤ
inst✝¹⁰ : Core ℚ
inst✝⁹ : Addition ℚ
inst✝⁸ : Negation ℚ
inst✝⁷ : Subtraction ℚ
inst✝⁶ : Multiplication ℚ
inst✝⁵ : Reciprocation ℚ
inst✝⁴ : Division ℚ
inst✝³ : Sign ℚ
inst✝² : Order ℚ
inst✝¹ : MinMax ℚ
inst✝ : Metric ℚ
ε p q : ℚ
x✝¹ : ε ≥ 0
x✝ : p - ε⊣ q ⊢p + ε
this✝ : -ε ≤ ε
this : p - ε ≤ p + ε
⊢ p ⊢ε⊣ q
Tactic:
have : min (p-ε) (p+ε) ≤ q ∧ q ≤ max (p-ε) (p+ε) :=
  between_min_max.mp ‹p-ε⊣ q ⊢p+ε›
State after:
ℕ ℤ ℚ : Type
inst✝¹² : Natural ℕ
inst✝¹¹ : Integer ℤ
inst✝¹⁰ : Core ℚ
inst✝⁹ : Addition ℚ
inst✝⁸ : Negation ℚ
inst✝⁷ : Subtraction ℚ
inst✝⁶ : Multiplication ℚ
inst✝⁵ : Reciprocation ℚ
inst✝⁴ : Division ℚ
inst✝³ : Sign ℚ
inst✝² : Order ℚ
inst✝¹ : MinMax ℚ
inst✝ : Metric ℚ
ε p q : ℚ
x✝¹ : ε ≥ 0
x✝ : p - ε⊣ q ⊢p + ε
this✝¹ : -ε ≤ ε
this✝ : p - ε ≤ p + ε
this : Ordered.min (p - ε) (p + ε) ≤ q ∧ q ≤ Ordered.max (p - ε) (p + ε)
⊢ p ⊢ε⊣ q

State before:
ℕ ℤ ℚ : Type
inst✝¹² : Natural ℕ
inst✝¹¹ : Integer ℤ
inst✝¹⁰ : Core ℚ
inst✝⁹ : Addition ℚ
inst✝⁸ : Negation ℚ
inst✝⁷ : Subtraction ℚ
inst✝⁶ : Multiplication ℚ
inst✝⁵ : Reciprocation ℚ
inst✝⁴ : Division ℚ
inst✝³ : Sign ℚ
inst✝² : Order ℚ
inst✝¹ : MinMax ℚ
inst✝ : Metric ℚ
ε p q : ℚ
x✝¹ : ε ≥ 0
x✝ : p - ε⊣ q ⊢p + ε
this✝¹ : -ε ≤ ε
this✝ : p - ε ≤ p + ε
this : Ordered.min (p - ε) (p + ε) ≤ q ∧ q ≤ Ordered.max (p - ε) (p + ε)
⊢ p ⊢ε⊣ q
Tactic:
have : p-ε ≤ q ∧ q ≤ p+ε := order_from_min_max this ‹p-ε ≤ p+ε›
State after:
ℕ ℤ ℚ : Type
inst✝¹² : Natural ℕ
inst✝¹¹ : Integer ℤ
inst✝¹⁰ : Core ℚ
inst✝⁹ : Addition ℚ
inst✝⁸ : Negation ℚ
inst✝⁷ : Subtraction ℚ
inst✝⁶ : Multiplication ℚ
inst✝⁵ : Reciprocation ℚ
inst✝⁴ : Division ℚ
inst✝³ : Sign ℚ
inst✝² : Order ℚ
inst✝¹ : MinMax ℚ
inst✝ : Metric ℚ
ε p q : ℚ
x✝¹ : ε ≥ 0
x✝ : p - ε⊣ q ⊢p + ε
this✝² : -ε ≤ ε
this✝¹ : p - ε ≤ p + ε
this✝ : Ordered.min (p - ε) (p + ε) ≤ q ∧ q ≤ Ordered.max (p - ε) (p + ε)
this : p - ε ≤ q ∧ q ≤ p + ε
⊢ p ⊢ε⊣ q

State before:
ℕ ℤ ℚ : Type
inst✝¹² : Natural ℕ
inst✝¹¹ : Integer ℤ
inst✝¹⁰ : Core ℚ
inst✝⁹ : Addition ℚ
inst✝⁸ : Negation ℚ
inst✝⁷ : Subtraction ℚ
inst✝⁶ : Multiplication ℚ
inst✝⁵ : Reciprocation ℚ
inst✝⁴ : Division ℚ
inst✝³ : Sign ℚ
inst✝² : Order ℚ
inst✝¹ : MinMax ℚ
inst✝ : Metric ℚ
ε p q : ℚ
x✝¹ : ε ≥ 0
x✝ : p - ε⊣ q ⊢p + ε
this✝² : -ε ≤ ε
this✝¹ : p - ε ≤ p + ε
this✝ : Ordered.min (p - ε) (p + ε) ≤ q ∧ q ≤ Ordered.max (p - ε) (p + ε)
this : p - ε ≤ q ∧ q ≤ p + ε
⊢ p ⊢ε⊣ q
Tactic:
have : p ⊢ε⊣ q := close_endpoints.mpr this
State after:
ℕ ℤ ℚ : Type
inst✝¹² : Natural ℕ
inst✝¹¹ : Integer ℤ
inst✝¹⁰ : Core ℚ
inst✝⁹ : Addition ℚ
inst✝⁸ : Negation ℚ
inst✝⁷ : Subtraction ℚ
inst✝⁶ : Multiplication ℚ
inst✝⁵ : Reciprocation ℚ
inst✝⁴ : Division ℚ
inst✝³ : Sign ℚ
inst✝² : Order ℚ
inst✝¹ : MinMax ℚ
inst✝ : Metric ℚ
ε p q : ℚ
x✝¹ : ε ≥ 0
x✝ : p - ε⊣ q ⊢p + ε
this✝³ : -ε ≤ ε
this✝² : p - ε ≤ p + ε
this✝¹ : Ordered.min (p - ε) (p + ε) ≤ q ∧ q ≤ Ordered.max (p - ε) (p + ε)
this✝ : p - ε ≤ q ∧ q ≤ p + ε
this : p ⊢ε⊣ q
⊢ p ⊢ε⊣ q

State before:
ℕ ℤ ℚ : Type
inst✝¹² : Natural ℕ
inst✝¹¹ : Integer ℤ
inst✝¹⁰ : Core ℚ
inst✝⁹ : Addition ℚ
inst✝⁸ : Negation ℚ
inst✝⁷ : Subtraction ℚ
inst✝⁶ : Multiplication ℚ
inst✝⁵ : Reciprocation ℚ
inst✝⁴ : Division ℚ
inst✝³ : Sign ℚ
inst✝² : Order ℚ
inst✝¹ : MinMax ℚ
inst✝ : Metric ℚ
ε p q : ℚ
x✝¹ : ε ≥ 0
x✝ : p - ε⊣ q ⊢p + ε
this✝³ : -ε ≤ ε
this✝² : p - ε ≤ p + ε
this✝¹ : Ordered.min (p - ε) (p + ε) ≤ q ∧ q ≤ Ordered.max (p - ε) (p + ε)
this✝ : p - ε ≤ q ∧ q ≤ p + ε
this : p ⊢ε⊣ q
⊢ p ⊢ε⊣ q
Tactic:
exact this
State after:
no goals