Theorem: Lean4Axiomatic.Rational.between_preserves_close (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 r s : ℚ
⊢ p ⊢ε⊣ q → p ⊢ε⊣ s → q⊣ r ⊢s → p ⊢ε⊣ r
Tactic:
intro (_ : p ⊢ε⊣ q) (_ : p ⊢ε⊣ s) (_ : q⊣ r ⊢s)
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 r s : ℚ
x✝² : p ⊢ε⊣ q
x✝¹ : p ⊢ε⊣ s
x✝ : q⊣ r ⊢s
⊢ p ⊢ε⊣ r

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 r s : ℚ
x✝² : p ⊢ε⊣ q
x✝¹ : p ⊢ε⊣ s
x✝ : q⊣ r ⊢s
⊢ p ⊢ε⊣ r
Tactic:
have : ε ≥ 0 := close_nonneg ‹p ⊢ε⊣ q›
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 r s : ℚ
x✝² : p ⊢ε⊣ q
x✝¹ : p ⊢ε⊣ s
x✝ : q⊣ r ⊢s
this : ε ≥ 0
⊢ p ⊢ε⊣ r

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 r s : ℚ
x✝² : p ⊢ε⊣ q
x✝¹ : p ⊢ε⊣ s
x✝ : q⊣ r ⊢s
this : ε ≥ 0
⊢ p ⊢ε⊣ r
Tactic:
have : p-ε⊣ q ⊢p+ε := between_from_close ‹p ⊢ε⊣ q›
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 r s : ℚ
x✝² : p ⊢ε⊣ q
x✝¹ : p ⊢ε⊣ s
x✝ : q⊣ r ⊢s
this✝ : ε ≥ 0
this : p - ε⊣ q ⊢p + ε
⊢ p ⊢ε⊣ r

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 r s : ℚ
x✝² : p ⊢ε⊣ q
x✝¹ : p ⊢ε⊣ s
x✝ : q⊣ r ⊢s
this✝ : ε ≥ 0
this : p - ε⊣ q ⊢p + ε
⊢ p ⊢ε⊣ r
Tactic:
have : p-ε⊣ s ⊢p+ε := between_from_close ‹p ⊢ε⊣ s›
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 r s : ℚ
x✝² : p ⊢ε⊣ q
x✝¹ : p ⊢ε⊣ s
x✝ : q⊣ r ⊢s
this✝¹ : ε ≥ 0
this✝ : p - ε⊣ q ⊢p + ε
this : p - ε⊣ s ⊢p + ε
⊢ p ⊢ε⊣ r

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 r s : ℚ
x✝² : p ⊢ε⊣ q
x✝¹ : p ⊢ε⊣ s
x✝ : q⊣ r ⊢s
this✝¹ : ε ≥ 0
this✝ : p - ε⊣ q ⊢p + ε
this : p - ε⊣ s ⊢p + ε
⊢ p ⊢ε⊣ r
Tactic:
have : p-ε⊣ r ⊢p+ε := between_trans ‹p-ε⊣ q ⊢p+ε› ‹p-ε⊣ s ⊢p+ε› ‹q⊣ r ⊢s›
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 r s : ℚ
x✝² : p ⊢ε⊣ q
x✝¹ : p ⊢ε⊣ s
x✝ : q⊣ r ⊢s
this✝² : ε ≥ 0
this✝¹ : p - ε⊣ q ⊢p + ε
this✝ : p - ε⊣ s ⊢p + ε
this : p - ε⊣ r ⊢p + ε
⊢ p ⊢ε⊣ r

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 r s : ℚ
x✝² : p ⊢ε⊣ q
x✝¹ : p ⊢ε⊣ s
x✝ : q⊣ r ⊢s
this✝² : ε ≥ 0
this✝¹ : p - ε⊣ q ⊢p + ε
this✝ : p - ε⊣ s ⊢p + ε
this : p - ε⊣ r ⊢p + ε
⊢ p ⊢ε⊣ r
Tactic:
have : p ⊢ε⊣ r := close_from_between ‹ε ≥ 0› ‹p-ε⊣ r ⊢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 r s : ℚ
x✝² : p ⊢ε⊣ q
x✝¹ : p ⊢ε⊣ s
x✝ : q⊣ r ⊢s
this✝³ : ε ≥ 0
this✝² : p - ε⊣ q ⊢p + ε
this✝¹ : p - ε⊣ s ⊢p + ε
this✝ : p - ε⊣ r ⊢p + ε
this : p ⊢ε⊣ r
⊢ p ⊢ε⊣ r

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 r s : ℚ
x✝² : p ⊢ε⊣ q
x✝¹ : p ⊢ε⊣ s
x✝ : q⊣ r ⊢s
this✝³ : ε ≥ 0
this✝² : p - ε⊣ q ⊢p + ε
this✝¹ : p - ε⊣ s ⊢p + ε
this✝ : p - ε⊣ r ⊢p + ε
this : p ⊢ε⊣ r
⊢ p ⊢ε⊣ r
Tactic:
exact this
State after:
no goals