Metamath Proof Explorer


Theorem icoiccdif

Description: Left-closed right-open interval gotten by a closed iterval taking away the upper bound. (Contributed by Glauco Siliprandi, 11-Dec-2019)

Ref Expression
Assertion icoiccdif ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ* ) → ( 𝐴 [,) 𝐵 ) = ( ( 𝐴 [,] 𝐵 ) ∖ { 𝐵 } ) )

Proof

Step Hyp Ref Expression
1 icossicc ( 𝐴 [,) 𝐵 ) ⊆ ( 𝐴 [,] 𝐵 )
2 1 a1i ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ* ) → ( 𝐴 [,) 𝐵 ) ⊆ ( 𝐴 [,] 𝐵 ) )
3 2 sselda ( ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ* ) ∧ 𝑥 ∈ ( 𝐴 [,) 𝐵 ) ) → 𝑥 ∈ ( 𝐴 [,] 𝐵 ) )
4 elico1 ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ* ) → ( 𝑥 ∈ ( 𝐴 [,) 𝐵 ) ↔ ( 𝑥 ∈ ℝ*𝐴𝑥𝑥 < 𝐵 ) ) )
5 4 biimpa ( ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ* ) ∧ 𝑥 ∈ ( 𝐴 [,) 𝐵 ) ) → ( 𝑥 ∈ ℝ*𝐴𝑥𝑥 < 𝐵 ) )
6 5 simp1d ( ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ* ) ∧ 𝑥 ∈ ( 𝐴 [,) 𝐵 ) ) → 𝑥 ∈ ℝ* )
7 simplr ( ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ* ) ∧ 𝑥 ∈ ( 𝐴 [,) 𝐵 ) ) → 𝐵 ∈ ℝ* )
8 5 simp3d ( ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ* ) ∧ 𝑥 ∈ ( 𝐴 [,) 𝐵 ) ) → 𝑥 < 𝐵 )
9 xrltne ( ( 𝑥 ∈ ℝ*𝐵 ∈ ℝ*𝑥 < 𝐵 ) → 𝐵𝑥 )
10 6 7 8 9 syl3anc ( ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ* ) ∧ 𝑥 ∈ ( 𝐴 [,) 𝐵 ) ) → 𝐵𝑥 )
11 10 necomd ( ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ* ) ∧ 𝑥 ∈ ( 𝐴 [,) 𝐵 ) ) → 𝑥𝐵 )
12 11 neneqd ( ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ* ) ∧ 𝑥 ∈ ( 𝐴 [,) 𝐵 ) ) → ¬ 𝑥 = 𝐵 )
13 velsn ( 𝑥 ∈ { 𝐵 } ↔ 𝑥 = 𝐵 )
14 12 13 sylnibr ( ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ* ) ∧ 𝑥 ∈ ( 𝐴 [,) 𝐵 ) ) → ¬ 𝑥 ∈ { 𝐵 } )
15 3 14 eldifd ( ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ* ) ∧ 𝑥 ∈ ( 𝐴 [,) 𝐵 ) ) → 𝑥 ∈ ( ( 𝐴 [,] 𝐵 ) ∖ { 𝐵 } ) )
16 15 ex ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ* ) → ( 𝑥 ∈ ( 𝐴 [,) 𝐵 ) → 𝑥 ∈ ( ( 𝐴 [,] 𝐵 ) ∖ { 𝐵 } ) ) )
17 16 ssrdv ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ* ) → ( 𝐴 [,) 𝐵 ) ⊆ ( ( 𝐴 [,] 𝐵 ) ∖ { 𝐵 } ) )
18 simpll ( ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ* ) ∧ 𝑥 ∈ ( ( 𝐴 [,] 𝐵 ) ∖ { 𝐵 } ) ) → 𝐴 ∈ ℝ* )
19 simplr ( ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ* ) ∧ 𝑥 ∈ ( ( 𝐴 [,] 𝐵 ) ∖ { 𝐵 } ) ) → 𝐵 ∈ ℝ* )
20 eldifi ( 𝑥 ∈ ( ( 𝐴 [,] 𝐵 ) ∖ { 𝐵 } ) → 𝑥 ∈ ( 𝐴 [,] 𝐵 ) )
21 eliccxr ( 𝑥 ∈ ( 𝐴 [,] 𝐵 ) → 𝑥 ∈ ℝ* )
22 20 21 syl ( 𝑥 ∈ ( ( 𝐴 [,] 𝐵 ) ∖ { 𝐵 } ) → 𝑥 ∈ ℝ* )
23 22 adantl ( ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ* ) ∧ 𝑥 ∈ ( ( 𝐴 [,] 𝐵 ) ∖ { 𝐵 } ) ) → 𝑥 ∈ ℝ* )
24 20 adantl ( ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ* ) ∧ 𝑥 ∈ ( ( 𝐴 [,] 𝐵 ) ∖ { 𝐵 } ) ) → 𝑥 ∈ ( 𝐴 [,] 𝐵 ) )
25 elicc1 ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ* ) → ( 𝑥 ∈ ( 𝐴 [,] 𝐵 ) ↔ ( 𝑥 ∈ ℝ*𝐴𝑥𝑥𝐵 ) ) )
26 25 adantr ( ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ* ) ∧ 𝑥 ∈ ( ( 𝐴 [,] 𝐵 ) ∖ { 𝐵 } ) ) → ( 𝑥 ∈ ( 𝐴 [,] 𝐵 ) ↔ ( 𝑥 ∈ ℝ*𝐴𝑥𝑥𝐵 ) ) )
27 24 26 mpbid ( ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ* ) ∧ 𝑥 ∈ ( ( 𝐴 [,] 𝐵 ) ∖ { 𝐵 } ) ) → ( 𝑥 ∈ ℝ*𝐴𝑥𝑥𝐵 ) )
28 27 simp2d ( ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ* ) ∧ 𝑥 ∈ ( ( 𝐴 [,] 𝐵 ) ∖ { 𝐵 } ) ) → 𝐴𝑥 )
29 eldifsni ( 𝑥 ∈ ( ( 𝐴 [,] 𝐵 ) ∖ { 𝐵 } ) → 𝑥𝐵 )
30 29 necomd ( 𝑥 ∈ ( ( 𝐴 [,] 𝐵 ) ∖ { 𝐵 } ) → 𝐵𝑥 )
31 30 adantl ( ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ* ) ∧ 𝑥 ∈ ( ( 𝐴 [,] 𝐵 ) ∖ { 𝐵 } ) ) → 𝐵𝑥 )
32 27 simp3d ( ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ* ) ∧ 𝑥 ∈ ( ( 𝐴 [,] 𝐵 ) ∖ { 𝐵 } ) ) → 𝑥𝐵 )
33 xrleltne ( ( 𝑥 ∈ ℝ*𝐵 ∈ ℝ*𝑥𝐵 ) → ( 𝑥 < 𝐵𝐵𝑥 ) )
34 23 19 32 33 syl3anc ( ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ* ) ∧ 𝑥 ∈ ( ( 𝐴 [,] 𝐵 ) ∖ { 𝐵 } ) ) → ( 𝑥 < 𝐵𝐵𝑥 ) )
35 31 34 mpbird ( ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ* ) ∧ 𝑥 ∈ ( ( 𝐴 [,] 𝐵 ) ∖ { 𝐵 } ) ) → 𝑥 < 𝐵 )
36 18 19 23 28 35 elicod ( ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ* ) ∧ 𝑥 ∈ ( ( 𝐴 [,] 𝐵 ) ∖ { 𝐵 } ) ) → 𝑥 ∈ ( 𝐴 [,) 𝐵 ) )
37 17 36 eqelssd ( ( 𝐴 ∈ ℝ*𝐵 ∈ ℝ* ) → ( 𝐴 [,) 𝐵 ) = ( ( 𝐴 [,] 𝐵 ) ∖ { 𝐵 } ) )