Users' Mathboxes Mathbox for Jim Kingdon < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  ILE Home  >  Th. List  >   Mathboxes  >  trirec0 GIF version

Theorem trirec0 14933
Description: Every real number having a reciprocal or equaling zero is equivalent to real number trichotomy.

This is the key part of the definition of what is known as a discrete field, so "the real numbers are a discrete field" can be taken as an equivalent way to state real trichotomy (see further discussion at trilpo 14932). (Contributed by Jim Kingdon, 10-Jun-2024.)

Assertion
Ref Expression
trirec0 (โˆ€๐‘ฅ โˆˆ โ„ โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ) โ†” โˆ€๐‘ฅ โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ฅ ยท ๐‘ง) = 1 โˆจ ๐‘ฅ = 0))
Distinct variable group:   ๐‘ฅ,๐‘ฆ,๐‘ง

Proof of Theorem trirec0
Dummy variable ๐‘ค is distinct from all other variables.
StepHypRef Expression
1 simpll 527 . . . . . 6 (((๐‘ฅ โˆˆ โ„ โˆง โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ)) โˆง ๐‘ฅ < 0) โ†’ ๐‘ฅ โˆˆ โ„)
2 simpr 110 . . . . . . 7 (((๐‘ฅ โˆˆ โ„ โˆง โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ)) โˆง ๐‘ฅ < 0) โ†’ ๐‘ฅ < 0)
31, 2lt0ap0d 8609 . . . . . 6 (((๐‘ฅ โˆˆ โ„ โˆง โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ)) โˆง ๐‘ฅ < 0) โ†’ ๐‘ฅ # 0)
4 rerecclap 8690 . . . . . . 7 ((๐‘ฅ โˆˆ โ„ โˆง ๐‘ฅ # 0) โ†’ (1 / ๐‘ฅ) โˆˆ โ„)
5 recn 7947 . . . . . . . 8 (๐‘ฅ โˆˆ โ„ โ†’ ๐‘ฅ โˆˆ โ„‚)
6 recidap 8646 . . . . . . . 8 ((๐‘ฅ โˆˆ โ„‚ โˆง ๐‘ฅ # 0) โ†’ (๐‘ฅ ยท (1 / ๐‘ฅ)) = 1)
75, 6sylan 283 . . . . . . 7 ((๐‘ฅ โˆˆ โ„ โˆง ๐‘ฅ # 0) โ†’ (๐‘ฅ ยท (1 / ๐‘ฅ)) = 1)
8 oveq2 5886 . . . . . . . . 9 (๐‘ง = (1 / ๐‘ฅ) โ†’ (๐‘ฅ ยท ๐‘ง) = (๐‘ฅ ยท (1 / ๐‘ฅ)))
98eqeq1d 2186 . . . . . . . 8 (๐‘ง = (1 / ๐‘ฅ) โ†’ ((๐‘ฅ ยท ๐‘ง) = 1 โ†” (๐‘ฅ ยท (1 / ๐‘ฅ)) = 1))
109rspcev 2843 . . . . . . 7 (((1 / ๐‘ฅ) โˆˆ โ„ โˆง (๐‘ฅ ยท (1 / ๐‘ฅ)) = 1) โ†’ โˆƒ๐‘ง โˆˆ โ„ (๐‘ฅ ยท ๐‘ง) = 1)
114, 7, 10syl2anc 411 . . . . . 6 ((๐‘ฅ โˆˆ โ„ โˆง ๐‘ฅ # 0) โ†’ โˆƒ๐‘ง โˆˆ โ„ (๐‘ฅ ยท ๐‘ง) = 1)
121, 3, 11syl2anc 411 . . . . 5 (((๐‘ฅ โˆˆ โ„ โˆง โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ)) โˆง ๐‘ฅ < 0) โ†’ โˆƒ๐‘ง โˆˆ โ„ (๐‘ฅ ยท ๐‘ง) = 1)
1312orcd 733 . . . 4 (((๐‘ฅ โˆˆ โ„ โˆง โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ)) โˆง ๐‘ฅ < 0) โ†’ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ฅ ยท ๐‘ง) = 1 โˆจ ๐‘ฅ = 0))
14 simpr 110 . . . . 5 (((๐‘ฅ โˆˆ โ„ โˆง โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ)) โˆง ๐‘ฅ = 0) โ†’ ๐‘ฅ = 0)
1514olcd 734 . . . 4 (((๐‘ฅ โˆˆ โ„ โˆง โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ)) โˆง ๐‘ฅ = 0) โ†’ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ฅ ยท ๐‘ง) = 1 โˆจ ๐‘ฅ = 0))
16 simpll 527 . . . . . 6 (((๐‘ฅ โˆˆ โ„ โˆง โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ)) โˆง 0 < ๐‘ฅ) โ†’ ๐‘ฅ โˆˆ โ„)
17 simpr 110 . . . . . . 7 (((๐‘ฅ โˆˆ โ„ โˆง โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ)) โˆง 0 < ๐‘ฅ) โ†’ 0 < ๐‘ฅ)
1816, 17gt0ap0d 8589 . . . . . 6 (((๐‘ฅ โˆˆ โ„ โˆง โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ)) โˆง 0 < ๐‘ฅ) โ†’ ๐‘ฅ # 0)
1916, 18, 11syl2anc 411 . . . . 5 (((๐‘ฅ โˆˆ โ„ โˆง โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ)) โˆง 0 < ๐‘ฅ) โ†’ โˆƒ๐‘ง โˆˆ โ„ (๐‘ฅ ยท ๐‘ง) = 1)
2019orcd 733 . . . 4 (((๐‘ฅ โˆˆ โ„ โˆง โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ)) โˆง 0 < ๐‘ฅ) โ†’ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ฅ ยท ๐‘ง) = 1 โˆจ ๐‘ฅ = 0))
21 0re 7960 . . . . . 6 0 โˆˆ โ„
22 breq2 4009 . . . . . . . 8 (๐‘ฆ = 0 โ†’ (๐‘ฅ < ๐‘ฆ โ†” ๐‘ฅ < 0))
23 eqeq2 2187 . . . . . . . 8 (๐‘ฆ = 0 โ†’ (๐‘ฅ = ๐‘ฆ โ†” ๐‘ฅ = 0))
24 breq1 4008 . . . . . . . 8 (๐‘ฆ = 0 โ†’ (๐‘ฆ < ๐‘ฅ โ†” 0 < ๐‘ฅ))
2522, 23, 243orbi123d 1311 . . . . . . 7 (๐‘ฆ = 0 โ†’ ((๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ) โ†” (๐‘ฅ < 0 โˆจ ๐‘ฅ = 0 โˆจ 0 < ๐‘ฅ)))
2625rspcv 2839 . . . . . 6 (0 โˆˆ โ„ โ†’ (โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ) โ†’ (๐‘ฅ < 0 โˆจ ๐‘ฅ = 0 โˆจ 0 < ๐‘ฅ)))
2721, 26ax-mp 5 . . . . 5 (โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ) โ†’ (๐‘ฅ < 0 โˆจ ๐‘ฅ = 0 โˆจ 0 < ๐‘ฅ))
2827adantl 277 . . . 4 ((๐‘ฅ โˆˆ โ„ โˆง โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ)) โ†’ (๐‘ฅ < 0 โˆจ ๐‘ฅ = 0 โˆจ 0 < ๐‘ฅ))
2913, 15, 20, 28mpjao3dan 1307 . . 3 ((๐‘ฅ โˆˆ โ„ โˆง โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ)) โ†’ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ฅ ยท ๐‘ง) = 1 โˆจ ๐‘ฅ = 0))
3029ralimiaa 2539 . 2 (โˆ€๐‘ฅ โˆˆ โ„ โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ) โ†’ โˆ€๐‘ฅ โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ฅ ยท ๐‘ง) = 1 โˆจ ๐‘ฅ = 0))
31 oveq1 5885 . . . . . . 7 (๐‘ฅ = ๐‘ค โ†’ (๐‘ฅ ยท ๐‘ง) = (๐‘ค ยท ๐‘ง))
3231eqeq1d 2186 . . . . . 6 (๐‘ฅ = ๐‘ค โ†’ ((๐‘ฅ ยท ๐‘ง) = 1 โ†” (๐‘ค ยท ๐‘ง) = 1))
3332rexbidv 2478 . . . . 5 (๐‘ฅ = ๐‘ค โ†’ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ฅ ยท ๐‘ง) = 1 โ†” โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1))
34 eqeq1 2184 . . . . 5 (๐‘ฅ = ๐‘ค โ†’ (๐‘ฅ = 0 โ†” ๐‘ค = 0))
3533, 34orbi12d 793 . . . 4 (๐‘ฅ = ๐‘ค โ†’ ((โˆƒ๐‘ง โˆˆ โ„ (๐‘ฅ ยท ๐‘ง) = 1 โˆจ ๐‘ฅ = 0) โ†” (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0)))
3635cbvralv 2705 . . 3 (โˆ€๐‘ฅ โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ฅ ยท ๐‘ง) = 1 โˆจ ๐‘ฅ = 0) โ†” โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0))
37 nfcv 2319 . . . . . . . . 9 โ„ฒ๐‘งโ„
38 nfre1 2520 . . . . . . . . . 10 โ„ฒ๐‘งโˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1
39 nfv 1528 . . . . . . . . . 10 โ„ฒ๐‘ง ๐‘ค = 0
4038, 39nfor 1574 . . . . . . . . 9 โ„ฒ๐‘ง(โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0)
4137, 40nfralya 2517 . . . . . . . 8 โ„ฒ๐‘งโˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0)
42 nfv 1528 . . . . . . . 8 โ„ฒ๐‘ง(๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)
4341, 42nfan 1565 . . . . . . 7 โ„ฒ๐‘ง(โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„))
44 nfv 1528 . . . . . . 7 โ„ฒ๐‘ง(๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ)
45 simpr 110 . . . . . . . . . . 11 (((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โˆง (๐‘ฆ โˆ’ ๐‘ฅ) < 0) โ†’ (๐‘ฆ โˆ’ ๐‘ฅ) < 0)
46 simprr 531 . . . . . . . . . . . . . 14 ((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โ†’ ๐‘ฆ โˆˆ โ„)
4746ad2antrr 488 . . . . . . . . . . . . 13 ((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โ†’ ๐‘ฆ โˆˆ โ„)
4847adantr 276 . . . . . . . . . . . 12 (((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โˆง (๐‘ฆ โˆ’ ๐‘ฅ) < 0) โ†’ ๐‘ฆ โˆˆ โ„)
49 simprl 529 . . . . . . . . . . . . . 14 ((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โ†’ ๐‘ฅ โˆˆ โ„)
5049ad2antrr 488 . . . . . . . . . . . . 13 ((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โ†’ ๐‘ฅ โˆˆ โ„)
5150adantr 276 . . . . . . . . . . . 12 (((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โˆง (๐‘ฆ โˆ’ ๐‘ฅ) < 0) โ†’ ๐‘ฅ โˆˆ โ„)
5248, 51sublt0d 8530 . . . . . . . . . . 11 (((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โˆง (๐‘ฆ โˆ’ ๐‘ฅ) < 0) โ†’ ((๐‘ฆ โˆ’ ๐‘ฅ) < 0 โ†” ๐‘ฆ < ๐‘ฅ))
5345, 52mpbid 147 . . . . . . . . . 10 (((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โˆง (๐‘ฆ โˆ’ ๐‘ฅ) < 0) โ†’ ๐‘ฆ < ๐‘ฅ)
54533mix3d 1174 . . . . . . . . 9 (((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โˆง (๐‘ฆ โˆ’ ๐‘ฅ) < 0) โ†’ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ))
55 simpr 110 . . . . . . . . . . 11 (((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โˆง 0 < (๐‘ฆ โˆ’ ๐‘ฅ)) โ†’ 0 < (๐‘ฆ โˆ’ ๐‘ฅ))
5650adantr 276 . . . . . . . . . . . 12 (((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โˆง 0 < (๐‘ฆ โˆ’ ๐‘ฅ)) โ†’ ๐‘ฅ โˆˆ โ„)
5747adantr 276 . . . . . . . . . . . 12 (((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โˆง 0 < (๐‘ฆ โˆ’ ๐‘ฅ)) โ†’ ๐‘ฆ โˆˆ โ„)
5856, 57posdifd 8492 . . . . . . . . . . 11 (((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โˆง 0 < (๐‘ฆ โˆ’ ๐‘ฅ)) โ†’ (๐‘ฅ < ๐‘ฆ โ†” 0 < (๐‘ฆ โˆ’ ๐‘ฅ)))
5955, 58mpbird 167 . . . . . . . . . 10 (((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โˆง 0 < (๐‘ฆ โˆ’ ๐‘ฅ)) โ†’ ๐‘ฅ < ๐‘ฆ)
60593mix1d 1172 . . . . . . . . 9 (((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โˆง 0 < (๐‘ฆ โˆ’ ๐‘ฅ)) โ†’ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ))
6147recnd 7989 . . . . . . . . . . . 12 ((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โ†’ ๐‘ฆ โˆˆ โ„‚)
6250recnd 7989 . . . . . . . . . . . 12 ((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โ†’ ๐‘ฅ โˆˆ โ„‚)
6361, 62subcld 8271 . . . . . . . . . . 11 ((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โ†’ (๐‘ฆ โˆ’ ๐‘ฅ) โˆˆ โ„‚)
64 simplr 528 . . . . . . . . . . . 12 ((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โ†’ ๐‘ง โˆˆ โ„)
6564recnd 7989 . . . . . . . . . . 11 ((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โ†’ ๐‘ง โˆˆ โ„‚)
66 simpr 110 . . . . . . . . . . . 12 ((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โ†’ ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1)
67 1ap0 8550 . . . . . . . . . . . 12 1 # 0
6866, 67eqbrtrdi 4044 . . . . . . . . . . 11 ((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โ†’ ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) # 0)
6963, 65, 68mulap0bad 8619 . . . . . . . . . 10 ((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โ†’ (๐‘ฆ โˆ’ ๐‘ฅ) # 0)
7046, 49resubcld 8341 . . . . . . . . . . . 12 ((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โ†’ (๐‘ฆ โˆ’ ๐‘ฅ) โˆˆ โ„)
7170ad2antrr 488 . . . . . . . . . . 11 ((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โ†’ (๐‘ฆ โˆ’ ๐‘ฅ) โˆˆ โ„)
72 reaplt 8548 . . . . . . . . . . 11 (((๐‘ฆ โˆ’ ๐‘ฅ) โˆˆ โ„ โˆง 0 โˆˆ โ„) โ†’ ((๐‘ฆ โˆ’ ๐‘ฅ) # 0 โ†” ((๐‘ฆ โˆ’ ๐‘ฅ) < 0 โˆจ 0 < (๐‘ฆ โˆ’ ๐‘ฅ))))
7371, 21, 72sylancl 413 . . . . . . . . . 10 ((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โ†’ ((๐‘ฆ โˆ’ ๐‘ฅ) # 0 โ†” ((๐‘ฆ โˆ’ ๐‘ฅ) < 0 โˆจ 0 < (๐‘ฆ โˆ’ ๐‘ฅ))))
7469, 73mpbid 147 . . . . . . . . 9 ((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โ†’ ((๐‘ฆ โˆ’ ๐‘ฅ) < 0 โˆจ 0 < (๐‘ฆ โˆ’ ๐‘ฅ)))
7554, 60, 74mpjaodan 798 . . . . . . . 8 ((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โ†’ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ))
7675exp31 364 . . . . . . 7 ((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โ†’ (๐‘ง โˆˆ โ„ โ†’ (((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1 โ†’ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ))))
7743, 44, 76rexlimd 2591 . . . . . 6 ((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โ†’ (โˆƒ๐‘ง โˆˆ โ„ ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1 โ†’ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ)))
7877imp 124 . . . . 5 (((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง โˆƒ๐‘ง โˆˆ โ„ ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โ†’ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ))
7946recnd 7989 . . . . . . . . 9 ((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โ†’ ๐‘ฆ โˆˆ โ„‚)
8079adantr 276 . . . . . . . 8 (((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง (๐‘ฆ โˆ’ ๐‘ฅ) = 0) โ†’ ๐‘ฆ โˆˆ โ„‚)
8149recnd 7989 . . . . . . . . 9 ((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โ†’ ๐‘ฅ โˆˆ โ„‚)
8281adantr 276 . . . . . . . 8 (((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง (๐‘ฆ โˆ’ ๐‘ฅ) = 0) โ†’ ๐‘ฅ โˆˆ โ„‚)
83 simpr 110 . . . . . . . 8 (((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง (๐‘ฆ โˆ’ ๐‘ฅ) = 0) โ†’ (๐‘ฆ โˆ’ ๐‘ฅ) = 0)
8480, 82, 83subeq0d 8279 . . . . . . 7 (((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง (๐‘ฆ โˆ’ ๐‘ฅ) = 0) โ†’ ๐‘ฆ = ๐‘ฅ)
8584equcomd 1707 . . . . . 6 (((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง (๐‘ฆ โˆ’ ๐‘ฅ) = 0) โ†’ ๐‘ฅ = ๐‘ฆ)
86853mix2d 1173 . . . . 5 (((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง (๐‘ฆ โˆ’ ๐‘ฅ) = 0) โ†’ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ))
87 oveq1 5885 . . . . . . . . 9 (๐‘ค = (๐‘ฆ โˆ’ ๐‘ฅ) โ†’ (๐‘ค ยท ๐‘ง) = ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง))
8887eqeq1d 2186 . . . . . . . 8 (๐‘ค = (๐‘ฆ โˆ’ ๐‘ฅ) โ†’ ((๐‘ค ยท ๐‘ง) = 1 โ†” ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1))
8988rexbidv 2478 . . . . . . 7 (๐‘ค = (๐‘ฆ โˆ’ ๐‘ฅ) โ†’ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โ†” โˆƒ๐‘ง โˆˆ โ„ ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1))
90 eqeq1 2184 . . . . . . 7 (๐‘ค = (๐‘ฆ โˆ’ ๐‘ฅ) โ†’ (๐‘ค = 0 โ†” (๐‘ฆ โˆ’ ๐‘ฅ) = 0))
9189, 90orbi12d 793 . . . . . 6 (๐‘ค = (๐‘ฆ โˆ’ ๐‘ฅ) โ†’ ((โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โ†” (โˆƒ๐‘ง โˆˆ โ„ ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1 โˆจ (๐‘ฆ โˆ’ ๐‘ฅ) = 0)))
92 simpl 109 . . . . . 6 ((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โ†’ โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0))
9391, 92, 70rspcdva 2848 . . . . 5 ((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โ†’ (โˆƒ๐‘ง โˆˆ โ„ ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1 โˆจ (๐‘ฆ โˆ’ ๐‘ฅ) = 0))
9478, 86, 93mpjaodan 798 . . . 4 ((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โ†’ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ))
9594ralrimivva 2559 . . 3 (โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โ†’ โˆ€๐‘ฅ โˆˆ โ„ โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ))
9636, 95sylbi 121 . 2 (โˆ€๐‘ฅ โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ฅ ยท ๐‘ง) = 1 โˆจ ๐‘ฅ = 0) โ†’ โˆ€๐‘ฅ โˆˆ โ„ โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ))
9730, 96impbii 126 1 (โˆ€๐‘ฅ โˆˆ โ„ โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ) โ†” โˆ€๐‘ฅ โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ฅ ยท ๐‘ง) = 1 โˆจ ๐‘ฅ = 0))
Colors of variables: wff set class
Syntax hints:   โ†’ wi 4   โˆง wa 104   โ†” wb 105   โˆจ wo 708   โˆจ w3o 977   = wceq 1353   โˆˆ wcel 2148  โˆ€wral 2455  โˆƒwrex 2456   class class class wbr 4005  (class class class)co 5878  โ„‚cc 7812  โ„cr 7813  0cc0 7814  1c1 7815   ยท cmul 7819   < clt 7995   โˆ’ cmin 8131   # cap 8541   / cdiv 8632
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-ia1 106  ax-ia2 107  ax-ia3 108  ax-in1 614  ax-in2 615  ax-io 709  ax-5 1447  ax-7 1448  ax-gen 1449  ax-ie1 1493  ax-ie2 1494  ax-8 1504  ax-10 1505  ax-11 1506  ax-i12 1507  ax-bndl 1509  ax-4 1510  ax-17 1526  ax-i9 1530  ax-ial 1534  ax-i5r 1535  ax-13 2150  ax-14 2151  ax-ext 2159  ax-sep 4123  ax-pow 4176  ax-pr 4211  ax-un 4435  ax-setind 4538  ax-cnex 7905  ax-resscn 7906  ax-1cn 7907  ax-1re 7908  ax-icn 7909  ax-addcl 7910  ax-addrcl 7911  ax-mulcl 7912  ax-mulrcl 7913  ax-addcom 7914  ax-mulcom 7915  ax-addass 7916  ax-mulass 7917  ax-distr 7918  ax-i2m1 7919  ax-0lt1 7920  ax-1rid 7921  ax-0id 7922  ax-rnegex 7923  ax-precex 7924  ax-cnre 7925  ax-pre-ltirr 7926  ax-pre-ltwlin 7927  ax-pre-lttrn 7928  ax-pre-apti 7929  ax-pre-ltadd 7930  ax-pre-mulgt0 7931  ax-pre-mulext 7932
This theorem depends on definitions:  df-bi 117  df-3or 979  df-3an 980  df-tru 1356  df-fal 1359  df-nf 1461  df-sb 1763  df-eu 2029  df-mo 2030  df-clab 2164  df-cleq 2170  df-clel 2173  df-nfc 2308  df-ne 2348  df-nel 2443  df-ral 2460  df-rex 2461  df-reu 2462  df-rmo 2463  df-rab 2464  df-v 2741  df-sbc 2965  df-dif 3133  df-un 3135  df-in 3137  df-ss 3144  df-pw 3579  df-sn 3600  df-pr 3601  df-op 3603  df-uni 3812  df-br 4006  df-opab 4067  df-id 4295  df-po 4298  df-iso 4299  df-xp 4634  df-rel 4635  df-cnv 4636  df-co 4637  df-dm 4638  df-iota 5180  df-fun 5220  df-fv 5226  df-riota 5834  df-ov 5881  df-oprab 5882  df-mpo 5883  df-pnf 7997  df-mnf 7998  df-xr 7999  df-ltxr 8000  df-le 8001  df-sub 8133  df-neg 8134  df-reap 8535  df-ap 8542  df-div 8633
This theorem is referenced by:  trirec0xor  14934
  Copyright terms: Public domain W3C validator