Step |
Hyp |
Ref |
Expression |
1 |
|
xpnz |
⊢ ( ( 𝐴 ≠ ∅ ∧ 𝐵 ≠ ∅ ) ↔ ( 𝐴 × 𝐵 ) ≠ ∅ ) |
2 |
|
dmxp |
⊢ ( 𝐵 ≠ ∅ → dom ( 𝐴 × 𝐵 ) = 𝐴 ) |
3 |
2
|
adantl |
⊢ ( ( 𝐴 ≠ ∅ ∧ 𝐵 ≠ ∅ ) → dom ( 𝐴 × 𝐵 ) = 𝐴 ) |
4 |
1 3
|
sylbir |
⊢ ( ( 𝐴 × 𝐵 ) ≠ ∅ → dom ( 𝐴 × 𝐵 ) = 𝐴 ) |
5 |
4
|
adantr |
⊢ ( ( ( 𝐴 × 𝐵 ) ≠ ∅ ∧ ( 𝐴 × 𝐵 ) ⊆ ( 𝐶 × 𝐷 ) ) → dom ( 𝐴 × 𝐵 ) = 𝐴 ) |
6 |
|
dmss |
⊢ ( ( 𝐴 × 𝐵 ) ⊆ ( 𝐶 × 𝐷 ) → dom ( 𝐴 × 𝐵 ) ⊆ dom ( 𝐶 × 𝐷 ) ) |
7 |
6
|
adantl |
⊢ ( ( ( 𝐴 × 𝐵 ) ≠ ∅ ∧ ( 𝐴 × 𝐵 ) ⊆ ( 𝐶 × 𝐷 ) ) → dom ( 𝐴 × 𝐵 ) ⊆ dom ( 𝐶 × 𝐷 ) ) |
8 |
5 7
|
eqsstrrd |
⊢ ( ( ( 𝐴 × 𝐵 ) ≠ ∅ ∧ ( 𝐴 × 𝐵 ) ⊆ ( 𝐶 × 𝐷 ) ) → 𝐴 ⊆ dom ( 𝐶 × 𝐷 ) ) |
9 |
|
dmxpss |
⊢ dom ( 𝐶 × 𝐷 ) ⊆ 𝐶 |
10 |
8 9
|
sstrdi |
⊢ ( ( ( 𝐴 × 𝐵 ) ≠ ∅ ∧ ( 𝐴 × 𝐵 ) ⊆ ( 𝐶 × 𝐷 ) ) → 𝐴 ⊆ 𝐶 ) |
11 |
|
rnxp |
⊢ ( 𝐴 ≠ ∅ → ran ( 𝐴 × 𝐵 ) = 𝐵 ) |
12 |
11
|
adantr |
⊢ ( ( 𝐴 ≠ ∅ ∧ 𝐵 ≠ ∅ ) → ran ( 𝐴 × 𝐵 ) = 𝐵 ) |
13 |
1 12
|
sylbir |
⊢ ( ( 𝐴 × 𝐵 ) ≠ ∅ → ran ( 𝐴 × 𝐵 ) = 𝐵 ) |
14 |
13
|
adantr |
⊢ ( ( ( 𝐴 × 𝐵 ) ≠ ∅ ∧ ( 𝐴 × 𝐵 ) ⊆ ( 𝐶 × 𝐷 ) ) → ran ( 𝐴 × 𝐵 ) = 𝐵 ) |
15 |
|
rnss |
⊢ ( ( 𝐴 × 𝐵 ) ⊆ ( 𝐶 × 𝐷 ) → ran ( 𝐴 × 𝐵 ) ⊆ ran ( 𝐶 × 𝐷 ) ) |
16 |
15
|
adantl |
⊢ ( ( ( 𝐴 × 𝐵 ) ≠ ∅ ∧ ( 𝐴 × 𝐵 ) ⊆ ( 𝐶 × 𝐷 ) ) → ran ( 𝐴 × 𝐵 ) ⊆ ran ( 𝐶 × 𝐷 ) ) |
17 |
14 16
|
eqsstrrd |
⊢ ( ( ( 𝐴 × 𝐵 ) ≠ ∅ ∧ ( 𝐴 × 𝐵 ) ⊆ ( 𝐶 × 𝐷 ) ) → 𝐵 ⊆ ran ( 𝐶 × 𝐷 ) ) |
18 |
|
rnxpss |
⊢ ran ( 𝐶 × 𝐷 ) ⊆ 𝐷 |
19 |
17 18
|
sstrdi |
⊢ ( ( ( 𝐴 × 𝐵 ) ≠ ∅ ∧ ( 𝐴 × 𝐵 ) ⊆ ( 𝐶 × 𝐷 ) ) → 𝐵 ⊆ 𝐷 ) |
20 |
10 19
|
jca |
⊢ ( ( ( 𝐴 × 𝐵 ) ≠ ∅ ∧ ( 𝐴 × 𝐵 ) ⊆ ( 𝐶 × 𝐷 ) ) → ( 𝐴 ⊆ 𝐶 ∧ 𝐵 ⊆ 𝐷 ) ) |
21 |
20
|
ex |
⊢ ( ( 𝐴 × 𝐵 ) ≠ ∅ → ( ( 𝐴 × 𝐵 ) ⊆ ( 𝐶 × 𝐷 ) → ( 𝐴 ⊆ 𝐶 ∧ 𝐵 ⊆ 𝐷 ) ) ) |
22 |
|
xpss12 |
⊢ ( ( 𝐴 ⊆ 𝐶 ∧ 𝐵 ⊆ 𝐷 ) → ( 𝐴 × 𝐵 ) ⊆ ( 𝐶 × 𝐷 ) ) |
23 |
21 22
|
impbid1 |
⊢ ( ( 𝐴 × 𝐵 ) ≠ ∅ → ( ( 𝐴 × 𝐵 ) ⊆ ( 𝐶 × 𝐷 ) ↔ ( 𝐴 ⊆ 𝐶 ∧ 𝐵 ⊆ 𝐷 ) ) ) |