Metamath Proof Explorer


Theorem ioojoin

Description: Join two open intervals to create a third. (Contributed by NM, 11-Aug-2008) (Proof shortened by Mario Carneiro, 16-Jun-2014)

Ref Expression
Assertion ioojoin ( ( ( 𝐴 ∈ ℝ* ∧ 𝐵 ∈ ℝ* ∧ 𝐶 ∈ ℝ* ) ∧ ( 𝐴 < 𝐵 ∧ 𝐵 < 𝐶 ) ) → ( ( ( 𝐴 (,) 𝐵 ) ∪ { 𝐵 } ) ∪ ( 𝐵 (,) 𝐶 ) ) = ( 𝐴 (,) 𝐶 ) )

Proof

Step Hyp Ref Expression
1 unass ⊢ ( ( ( 𝐴 (,) 𝐵 ) ∪ { 𝐵 } ) ∪ ( 𝐵 (,) 𝐶 ) ) = ( ( 𝐴 (,) 𝐵 ) ∪ ( { 𝐵 } ∪ ( 𝐵 (,) 𝐶 ) ) )
2 snunioo ⊢ ( ( 𝐵 ∈ ℝ* ∧ 𝐶 ∈ ℝ* ∧ 𝐵 < 𝐶 ) → ( { 𝐵 } ∪ ( 𝐵 (,) 𝐶 ) ) = ( 𝐵 [,) 𝐶 ) )
3 2 3expa ⊢ ( ( ( 𝐵 ∈ ℝ* ∧ 𝐶 ∈ ℝ* ) ∧ 𝐵 < 𝐶 ) → ( { 𝐵 } ∪ ( 𝐵 (,) 𝐶 ) ) = ( 𝐵 [,) 𝐶 ) )
4 3 3adantl1 ⊢ ( ( ( 𝐴 ∈ ℝ* ∧ 𝐵 ∈ ℝ* ∧ 𝐶 ∈ ℝ* ) ∧ 𝐵 < 𝐶 ) → ( { 𝐵 } ∪ ( 𝐵 (,) 𝐶 ) ) = ( 𝐵 [,) 𝐶 ) )
5 4 adantrl ⊢ ( ( ( 𝐴 ∈ ℝ* ∧ 𝐵 ∈ ℝ* ∧ 𝐶 ∈ ℝ* ) ∧ ( 𝐴 < 𝐵 ∧ 𝐵 < 𝐶 ) ) → ( { 𝐵 } ∪ ( 𝐵 (,) 𝐶 ) ) = ( 𝐵 [,) 𝐶 ) )
6 5 uneq2d ⊢ ( ( ( 𝐴 ∈ ℝ* ∧ 𝐵 ∈ ℝ* ∧ 𝐶 ∈ ℝ* ) ∧ ( 𝐴 < 𝐵 ∧ 𝐵 < 𝐶 ) ) → ( ( 𝐴 (,) 𝐵 ) ∪ ( { 𝐵 } ∪ ( 𝐵 (,) 𝐶 ) ) ) = ( ( 𝐴 (,) 𝐵 ) ∪ ( 𝐵 [,) 𝐶 ) ) )
7 df-ioo ⊢ (,) = ( 𝑥 ∈ ℝ* , 𝑦 ∈ ℝ* ↦ { 𝑧 ∈ ℝ* ∣ ( 𝑥 < 𝑧 ∧ 𝑧 < 𝑦 ) } )
8 df-ico ⊢ [,) = ( 𝑥 ∈ ℝ* , 𝑦 ∈ ℝ* ↦ { 𝑧 ∈ ℝ* ∣ ( 𝑥 ≤ 𝑧 ∧ 𝑧 < 𝑦 ) } )
9 xrlenlt ⊢ ( ( 𝐵 ∈ ℝ* ∧ 𝑤 ∈ ℝ* ) → ( 𝐵 ≤ 𝑤 ↔ ¬ 𝑤 < 𝐵 ) )
10 xrlttr ⊢ ( ( 𝑤 ∈ ℝ* ∧ 𝐵 ∈ ℝ* ∧ 𝐶 ∈ ℝ* ) → ( ( 𝑤 < 𝐵 ∧ 𝐵 < 𝐶 ) → 𝑤 < 𝐶 ) )
11 xrltletr ⊢ ( ( 𝐴 ∈ ℝ* ∧ 𝐵 ∈ ℝ* ∧ 𝑤 ∈ ℝ* ) → ( ( 𝐴 < 𝐵 ∧ 𝐵 ≤ 𝑤 ) → 𝐴 < 𝑤 ) )
12 7 8 9 7 10 11 ixxun ⊢ ( ( ( 𝐴 ∈ ℝ* ∧ 𝐵 ∈ ℝ* ∧ 𝐶 ∈ ℝ* ) ∧ ( 𝐴 < 𝐵 ∧ 𝐵 < 𝐶 ) ) → ( ( 𝐴 (,) 𝐵 ) ∪ ( 𝐵 [,) 𝐶 ) ) = ( 𝐴 (,) 𝐶 ) )
13 6 12 eqtrd ⊢ ( ( ( 𝐴 ∈ ℝ* ∧ 𝐵 ∈ ℝ* ∧ 𝐶 ∈ ℝ* ) ∧ ( 𝐴 < 𝐵 ∧ 𝐵 < 𝐶 ) ) → ( ( 𝐴 (,) 𝐵 ) ∪ ( { 𝐵 } ∪ ( 𝐵 (,) 𝐶 ) ) ) = ( 𝐴 (,) 𝐶 ) )
14 1 13 eqtrid ⊢ ( ( ( 𝐴 ∈ ℝ* ∧ 𝐵 ∈ ℝ* ∧ 𝐶 ∈ ℝ* ) ∧ ( 𝐴 < 𝐵 ∧ 𝐵 < 𝐶 ) ) → ( ( ( 𝐴 (,) 𝐵 ) ∪ { 𝐵 } ) ∪ ( 𝐵 (,) 𝐶 ) ) = ( 𝐴 (,) 𝐶 ) )