Metamath Proof Explorer


Theorem iooshf

Description: Shift the arguments of the open interval function. (Contributed by NM, 17-Aug-2008)

Ref Expression
Assertion iooshf ( ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) ∧ ( 𝐶 ∈ ℝ ∧ 𝐷 ∈ ℝ ) ) → ( ( 𝐴𝐵 ) ∈ ( 𝐶 (,) 𝐷 ) ↔ 𝐴 ∈ ( ( 𝐶 + 𝐵 ) (,) ( 𝐷 + 𝐵 ) ) ) )

Proof

Step Hyp Ref Expression
1 ltaddsub ( ( 𝐶 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐴 ∈ ℝ ) → ( ( 𝐶 + 𝐵 ) < 𝐴𝐶 < ( 𝐴𝐵 ) ) )
2 1 3com13 ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ ) → ( ( 𝐶 + 𝐵 ) < 𝐴𝐶 < ( 𝐴𝐵 ) ) )
3 2 3expa ( ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) ∧ 𝐶 ∈ ℝ ) → ( ( 𝐶 + 𝐵 ) < 𝐴𝐶 < ( 𝐴𝐵 ) ) )
4 3 adantrr ( ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) ∧ ( 𝐶 ∈ ℝ ∧ 𝐷 ∈ ℝ ) ) → ( ( 𝐶 + 𝐵 ) < 𝐴𝐶 < ( 𝐴𝐵 ) ) )
5 ltsubadd ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐷 ∈ ℝ ) → ( ( 𝐴𝐵 ) < 𝐷𝐴 < ( 𝐷 + 𝐵 ) ) )
6 5 bicomd ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐷 ∈ ℝ ) → ( 𝐴 < ( 𝐷 + 𝐵 ) ↔ ( 𝐴𝐵 ) < 𝐷 ) )
7 6 3expa ( ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) ∧ 𝐷 ∈ ℝ ) → ( 𝐴 < ( 𝐷 + 𝐵 ) ↔ ( 𝐴𝐵 ) < 𝐷 ) )
8 7 adantrl ( ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) ∧ ( 𝐶 ∈ ℝ ∧ 𝐷 ∈ ℝ ) ) → ( 𝐴 < ( 𝐷 + 𝐵 ) ↔ ( 𝐴𝐵 ) < 𝐷 ) )
9 4 8 anbi12d ( ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) ∧ ( 𝐶 ∈ ℝ ∧ 𝐷 ∈ ℝ ) ) → ( ( ( 𝐶 + 𝐵 ) < 𝐴𝐴 < ( 𝐷 + 𝐵 ) ) ↔ ( 𝐶 < ( 𝐴𝐵 ) ∧ ( 𝐴𝐵 ) < 𝐷 ) ) )
10 readdcl ( ( 𝐶 ∈ ℝ ∧ 𝐵 ∈ ℝ ) → ( 𝐶 + 𝐵 ) ∈ ℝ )
11 10 rexrd ( ( 𝐶 ∈ ℝ ∧ 𝐵 ∈ ℝ ) → ( 𝐶 + 𝐵 ) ∈ ℝ* )
12 11 ad2ant2rl ( ( ( 𝐶 ∈ ℝ ∧ 𝐷 ∈ ℝ ) ∧ ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) ) → ( 𝐶 + 𝐵 ) ∈ ℝ* )
13 readdcl ( ( 𝐷 ∈ ℝ ∧ 𝐵 ∈ ℝ ) → ( 𝐷 + 𝐵 ) ∈ ℝ )
14 13 rexrd ( ( 𝐷 ∈ ℝ ∧ 𝐵 ∈ ℝ ) → ( 𝐷 + 𝐵 ) ∈ ℝ* )
15 14 ad2ant2l ( ( ( 𝐶 ∈ ℝ ∧ 𝐷 ∈ ℝ ) ∧ ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) ) → ( 𝐷 + 𝐵 ) ∈ ℝ* )
16 rexr ( 𝐴 ∈ ℝ → 𝐴 ∈ ℝ* )
17 16 ad2antrl ( ( ( 𝐶 ∈ ℝ ∧ 𝐷 ∈ ℝ ) ∧ ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) ) → 𝐴 ∈ ℝ* )
18 elioo5 ( ( ( 𝐶 + 𝐵 ) ∈ ℝ* ∧ ( 𝐷 + 𝐵 ) ∈ ℝ*𝐴 ∈ ℝ* ) → ( 𝐴 ∈ ( ( 𝐶 + 𝐵 ) (,) ( 𝐷 + 𝐵 ) ) ↔ ( ( 𝐶 + 𝐵 ) < 𝐴𝐴 < ( 𝐷 + 𝐵 ) ) ) )
19 12 15 17 18 syl3anc ( ( ( 𝐶 ∈ ℝ ∧ 𝐷 ∈ ℝ ) ∧ ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) ) → ( 𝐴 ∈ ( ( 𝐶 + 𝐵 ) (,) ( 𝐷 + 𝐵 ) ) ↔ ( ( 𝐶 + 𝐵 ) < 𝐴𝐴 < ( 𝐷 + 𝐵 ) ) ) )
20 19 ancoms ( ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) ∧ ( 𝐶 ∈ ℝ ∧ 𝐷 ∈ ℝ ) ) → ( 𝐴 ∈ ( ( 𝐶 + 𝐵 ) (,) ( 𝐷 + 𝐵 ) ) ↔ ( ( 𝐶 + 𝐵 ) < 𝐴𝐴 < ( 𝐷 + 𝐵 ) ) ) )
21 rexr ( 𝐶 ∈ ℝ → 𝐶 ∈ ℝ* )
22 21 ad2antrl ( ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) ∧ ( 𝐶 ∈ ℝ ∧ 𝐷 ∈ ℝ ) ) → 𝐶 ∈ ℝ* )
23 rexr ( 𝐷 ∈ ℝ → 𝐷 ∈ ℝ* )
24 23 ad2antll ( ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) ∧ ( 𝐶 ∈ ℝ ∧ 𝐷 ∈ ℝ ) ) → 𝐷 ∈ ℝ* )
25 resubcl ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) → ( 𝐴𝐵 ) ∈ ℝ )
26 25 rexrd ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) → ( 𝐴𝐵 ) ∈ ℝ* )
27 26 adantr ( ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) ∧ ( 𝐶 ∈ ℝ ∧ 𝐷 ∈ ℝ ) ) → ( 𝐴𝐵 ) ∈ ℝ* )
28 elioo5 ( ( 𝐶 ∈ ℝ*𝐷 ∈ ℝ* ∧ ( 𝐴𝐵 ) ∈ ℝ* ) → ( ( 𝐴𝐵 ) ∈ ( 𝐶 (,) 𝐷 ) ↔ ( 𝐶 < ( 𝐴𝐵 ) ∧ ( 𝐴𝐵 ) < 𝐷 ) ) )
29 22 24 27 28 syl3anc ( ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) ∧ ( 𝐶 ∈ ℝ ∧ 𝐷 ∈ ℝ ) ) → ( ( 𝐴𝐵 ) ∈ ( 𝐶 (,) 𝐷 ) ↔ ( 𝐶 < ( 𝐴𝐵 ) ∧ ( 𝐴𝐵 ) < 𝐷 ) ) )
30 9 20 29 3bitr4rd ( ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) ∧ ( 𝐶 ∈ ℝ ∧ 𝐷 ∈ ℝ ) ) → ( ( 𝐴𝐵 ) ∈ ( 𝐶 (,) 𝐷 ) ↔ 𝐴 ∈ ( ( 𝐶 + 𝐵 ) (,) ( 𝐷 + 𝐵 ) ) ) )