Step |
Hyp |
Ref |
Expression |
1 |
|
xmulgt0 |
|- ( ( ( A e. RR* /\ 0 < A ) /\ ( B e. RR* /\ 0 < B ) ) -> 0 < ( A *e B ) ) |
2 |
1
|
an4s |
|- ( ( ( A e. RR* /\ B e. RR* ) /\ ( 0 < A /\ 0 < B ) ) -> 0 < ( A *e B ) ) |
3 |
|
0xr |
|- 0 e. RR* |
4 |
|
xmulcl |
|- ( ( A e. RR* /\ B e. RR* ) -> ( A *e B ) e. RR* ) |
5 |
4
|
adantr |
|- ( ( ( A e. RR* /\ B e. RR* ) /\ ( 0 < A /\ 0 < B ) ) -> ( A *e B ) e. RR* ) |
6 |
|
xrltle |
|- ( ( 0 e. RR* /\ ( A *e B ) e. RR* ) -> ( 0 < ( A *e B ) -> 0 <_ ( A *e B ) ) ) |
7 |
3 5 6
|
sylancr |
|- ( ( ( A e. RR* /\ B e. RR* ) /\ ( 0 < A /\ 0 < B ) ) -> ( 0 < ( A *e B ) -> 0 <_ ( A *e B ) ) ) |
8 |
2 7
|
mpd |
|- ( ( ( A e. RR* /\ B e. RR* ) /\ ( 0 < A /\ 0 < B ) ) -> 0 <_ ( A *e B ) ) |
9 |
8
|
ex |
|- ( ( A e. RR* /\ B e. RR* ) -> ( ( 0 < A /\ 0 < B ) -> 0 <_ ( A *e B ) ) ) |
10 |
9
|
ad2ant2r |
|- ( ( ( A e. RR* /\ 0 <_ A ) /\ ( B e. RR* /\ 0 <_ B ) ) -> ( ( 0 < A /\ 0 < B ) -> 0 <_ ( A *e B ) ) ) |
11 |
10
|
impl |
|- ( ( ( ( ( A e. RR* /\ 0 <_ A ) /\ ( B e. RR* /\ 0 <_ B ) ) /\ 0 < A ) /\ 0 < B ) -> 0 <_ ( A *e B ) ) |
12 |
|
0le0 |
|- 0 <_ 0 |
13 |
|
oveq2 |
|- ( 0 = B -> ( A *e 0 ) = ( A *e B ) ) |
14 |
13
|
eqcomd |
|- ( 0 = B -> ( A *e B ) = ( A *e 0 ) ) |
15 |
|
xmul01 |
|- ( A e. RR* -> ( A *e 0 ) = 0 ) |
16 |
15
|
ad2antrr |
|- ( ( ( A e. RR* /\ 0 <_ A ) /\ ( B e. RR* /\ 0 <_ B ) ) -> ( A *e 0 ) = 0 ) |
17 |
14 16
|
sylan9eqr |
|- ( ( ( ( A e. RR* /\ 0 <_ A ) /\ ( B e. RR* /\ 0 <_ B ) ) /\ 0 = B ) -> ( A *e B ) = 0 ) |
18 |
12 17
|
breqtrrid |
|- ( ( ( ( A e. RR* /\ 0 <_ A ) /\ ( B e. RR* /\ 0 <_ B ) ) /\ 0 = B ) -> 0 <_ ( A *e B ) ) |
19 |
18
|
adantlr |
|- ( ( ( ( ( A e. RR* /\ 0 <_ A ) /\ ( B e. RR* /\ 0 <_ B ) ) /\ 0 < A ) /\ 0 = B ) -> 0 <_ ( A *e B ) ) |
20 |
|
xrleloe |
|- ( ( 0 e. RR* /\ B e. RR* ) -> ( 0 <_ B <-> ( 0 < B \/ 0 = B ) ) ) |
21 |
3 20
|
mpan |
|- ( B e. RR* -> ( 0 <_ B <-> ( 0 < B \/ 0 = B ) ) ) |
22 |
21
|
biimpa |
|- ( ( B e. RR* /\ 0 <_ B ) -> ( 0 < B \/ 0 = B ) ) |
23 |
22
|
ad2antlr |
|- ( ( ( ( A e. RR* /\ 0 <_ A ) /\ ( B e. RR* /\ 0 <_ B ) ) /\ 0 < A ) -> ( 0 < B \/ 0 = B ) ) |
24 |
11 19 23
|
mpjaodan |
|- ( ( ( ( A e. RR* /\ 0 <_ A ) /\ ( B e. RR* /\ 0 <_ B ) ) /\ 0 < A ) -> 0 <_ ( A *e B ) ) |
25 |
|
oveq1 |
|- ( 0 = A -> ( 0 *e B ) = ( A *e B ) ) |
26 |
25
|
eqcomd |
|- ( 0 = A -> ( A *e B ) = ( 0 *e B ) ) |
27 |
|
xmul02 |
|- ( B e. RR* -> ( 0 *e B ) = 0 ) |
28 |
27
|
ad2antrl |
|- ( ( ( A e. RR* /\ 0 <_ A ) /\ ( B e. RR* /\ 0 <_ B ) ) -> ( 0 *e B ) = 0 ) |
29 |
26 28
|
sylan9eqr |
|- ( ( ( ( A e. RR* /\ 0 <_ A ) /\ ( B e. RR* /\ 0 <_ B ) ) /\ 0 = A ) -> ( A *e B ) = 0 ) |
30 |
12 29
|
breqtrrid |
|- ( ( ( ( A e. RR* /\ 0 <_ A ) /\ ( B e. RR* /\ 0 <_ B ) ) /\ 0 = A ) -> 0 <_ ( A *e B ) ) |
31 |
|
xrleloe |
|- ( ( 0 e. RR* /\ A e. RR* ) -> ( 0 <_ A <-> ( 0 < A \/ 0 = A ) ) ) |
32 |
3 31
|
mpan |
|- ( A e. RR* -> ( 0 <_ A <-> ( 0 < A \/ 0 = A ) ) ) |
33 |
32
|
biimpa |
|- ( ( A e. RR* /\ 0 <_ A ) -> ( 0 < A \/ 0 = A ) ) |
34 |
33
|
adantr |
|- ( ( ( A e. RR* /\ 0 <_ A ) /\ ( B e. RR* /\ 0 <_ B ) ) -> ( 0 < A \/ 0 = A ) ) |
35 |
24 30 34
|
mpjaodan |
|- ( ( ( A e. RR* /\ 0 <_ A ) /\ ( B e. RR* /\ 0 <_ B ) ) -> 0 <_ ( A *e B ) ) |