Metamath Proof Explorer


Theorem iocunico

Description: Split an open interval into two pieces at point B, Co-author TA. (Contributed by Jon Pennant, 8-Jun-2019)

Ref Expression
Assertion iocunico ( ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ*𝐶 ∈ ℝ* ) ∧ ( 𝐴 < 𝐵𝐵 < 𝐶 ) ) → ( ( 𝐴 (,] 𝐵 ) ∪ ( 𝐵 [,) 𝐶 ) ) = ( 𝐴 (,) 𝐶 ) )

Proof

Step Hyp Ref Expression
1 un23 ( ( ( 𝐴 (,) 𝐵 ) ∪ { 𝐵 } ) ∪ ( 𝐵 (,) 𝐶 ) ) = ( ( ( 𝐴 (,) 𝐵 ) ∪ ( 𝐵 (,) 𝐶 ) ) ∪ { 𝐵 } )
2 unundir ( ( ( 𝐴 (,) 𝐵 ) ∪ ( 𝐵 (,) 𝐶 ) ) ∪ { 𝐵 } ) = ( ( ( 𝐴 (,) 𝐵 ) ∪ { 𝐵 } ) ∪ ( ( 𝐵 (,) 𝐶 ) ∪ { 𝐵 } ) )
3 uncom ( ( 𝐵 (,) 𝐶 ) ∪ { 𝐵 } ) = ( { 𝐵 } ∪ ( 𝐵 (,) 𝐶 ) )
4 3 uneq2i ( ( ( 𝐴 (,) 𝐵 ) ∪ { 𝐵 } ) ∪ ( ( 𝐵 (,) 𝐶 ) ∪ { 𝐵 } ) ) = ( ( ( 𝐴 (,) 𝐵 ) ∪ { 𝐵 } ) ∪ ( { 𝐵 } ∪ ( 𝐵 (,) 𝐶 ) ) )
5 1 2 4 3eqtrri ( ( ( 𝐴 (,) 𝐵 ) ∪ { 𝐵 } ) ∪ ( { 𝐵 } ∪ ( 𝐵 (,) 𝐶 ) ) ) = ( ( ( 𝐴 (,) 𝐵 ) ∪ { 𝐵 } ) ∪ ( 𝐵 (,) 𝐶 ) )
6 simpl1 ( ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ*𝐶 ∈ ℝ* ) ∧ ( 𝐴 < 𝐵𝐵 < 𝐶 ) ) → 𝐴 ∈ ℝ* )
7 simpl2 ( ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ*𝐶 ∈ ℝ* ) ∧ ( 𝐴 < 𝐵𝐵 < 𝐶 ) ) → 𝐵 ∈ ℝ* )
8 simprl ( ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ*𝐶 ∈ ℝ* ) ∧ ( 𝐴 < 𝐵𝐵 < 𝐶 ) ) → 𝐴 < 𝐵 )
9 ioounsn ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ*𝐴 < 𝐵 ) → ( ( 𝐴 (,) 𝐵 ) ∪ { 𝐵 } ) = ( 𝐴 (,] 𝐵 ) )
10 6 7 8 9 syl3anc ( ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ*𝐶 ∈ ℝ* ) ∧ ( 𝐴 < 𝐵𝐵 < 𝐶 ) ) → ( ( 𝐴 (,) 𝐵 ) ∪ { 𝐵 } ) = ( 𝐴 (,] 𝐵 ) )
11 simpl3 ( ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ*𝐶 ∈ ℝ* ) ∧ ( 𝐴 < 𝐵𝐵 < 𝐶 ) ) → 𝐶 ∈ ℝ* )
12 simprr ( ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ*𝐶 ∈ ℝ* ) ∧ ( 𝐴 < 𝐵𝐵 < 𝐶 ) ) → 𝐵 < 𝐶 )
13 snunioo ( ( 𝐵 ∈ ℝ*𝐶 ∈ ℝ*𝐵 < 𝐶 ) → ( { 𝐵 } ∪ ( 𝐵 (,) 𝐶 ) ) = ( 𝐵 [,) 𝐶 ) )
14 7 11 12 13 syl3anc ( ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ*𝐶 ∈ ℝ* ) ∧ ( 𝐴 < 𝐵𝐵 < 𝐶 ) ) → ( { 𝐵 } ∪ ( 𝐵 (,) 𝐶 ) ) = ( 𝐵 [,) 𝐶 ) )
15 10 14 uneq12d ( ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ*𝐶 ∈ ℝ* ) ∧ ( 𝐴 < 𝐵𝐵 < 𝐶 ) ) → ( ( ( 𝐴 (,) 𝐵 ) ∪ { 𝐵 } ) ∪ ( { 𝐵 } ∪ ( 𝐵 (,) 𝐶 ) ) ) = ( ( 𝐴 (,] 𝐵 ) ∪ ( 𝐵 [,) 𝐶 ) ) )
16 ioojoin ( ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ*𝐶 ∈ ℝ* ) ∧ ( 𝐴 < 𝐵𝐵 < 𝐶 ) ) → ( ( ( 𝐴 (,) 𝐵 ) ∪ { 𝐵 } ) ∪ ( 𝐵 (,) 𝐶 ) ) = ( 𝐴 (,) 𝐶 ) )
17 5 15 16 3eqtr3a ( ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ*𝐶 ∈ ℝ* ) ∧ ( 𝐴 < 𝐵𝐵 < 𝐶 ) ) → ( ( 𝐴 (,] 𝐵 ) ∪ ( 𝐵 [,) 𝐶 ) ) = ( 𝐴 (,) 𝐶 ) )