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

Theorem trirec0 15089
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 15088). (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 8620 . . . . . 6 (((๐‘ฅ โˆˆ โ„ โˆง โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ)) โˆง ๐‘ฅ < 0) โ†’ ๐‘ฅ # 0)
4 rerecclap 8701 . . . . . . 7 ((๐‘ฅ โˆˆ โ„ โˆง ๐‘ฅ # 0) โ†’ (1 / ๐‘ฅ) โˆˆ โ„)
5 recn 7958 . . . . . . . 8 (๐‘ฅ โˆˆ โ„ โ†’ ๐‘ฅ โˆˆ โ„‚)
6 recidap 8657 . . . . . . . 8 ((๐‘ฅ โˆˆ โ„‚ โˆง ๐‘ฅ # 0) โ†’ (๐‘ฅ ยท (1 / ๐‘ฅ)) = 1)
75, 6sylan 283 . . . . . . 7 ((๐‘ฅ โˆˆ โ„ โˆง ๐‘ฅ # 0) โ†’ (๐‘ฅ ยท (1 / ๐‘ฅ)) = 1)
8 oveq2 5896 . . . . . . . . 9 (๐‘ง = (1 / ๐‘ฅ) โ†’ (๐‘ฅ ยท ๐‘ง) = (๐‘ฅ ยท (1 / ๐‘ฅ)))
98eqeq1d 2196 . . . . . . . 8 (๐‘ง = (1 / ๐‘ฅ) โ†’ ((๐‘ฅ ยท ๐‘ง) = 1 โ†” (๐‘ฅ ยท (1 / ๐‘ฅ)) = 1))
109rspcev 2853 . . . . . . 7 (((1 / ๐‘ฅ) โˆˆ โ„ โˆง (๐‘ฅ ยท (1 / ๐‘ฅ)) = 1) โ†’ โˆƒ๐‘ง โˆˆ โ„ (๐‘ฅ ยท ๐‘ง) = 1)
114, 7, 10syl2anc 411 . . . . . 6 ((๐‘ฅ โˆˆ โ„ โˆง ๐‘ฅ # 0) โ†’ โˆƒ๐‘ง โˆˆ โ„ (๐‘ฅ ยท ๐‘ง) = 1)
121, 3, 11syl2anc 411 . . . . 5 (((๐‘ฅ โˆˆ โ„ โˆง โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ)) โˆง ๐‘ฅ < 0) โ†’ โˆƒ๐‘ง โˆˆ โ„ (๐‘ฅ ยท ๐‘ง) = 1)
1312orcd 734 . . . 4 (((๐‘ฅ โˆˆ โ„ โˆง โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ)) โˆง ๐‘ฅ < 0) โ†’ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ฅ ยท ๐‘ง) = 1 โˆจ ๐‘ฅ = 0))
14 simpr 110 . . . . 5 (((๐‘ฅ โˆˆ โ„ โˆง โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ)) โˆง ๐‘ฅ = 0) โ†’ ๐‘ฅ = 0)
1514olcd 735 . . . 4 (((๐‘ฅ โˆˆ โ„ โˆง โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ)) โˆง ๐‘ฅ = 0) โ†’ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ฅ ยท ๐‘ง) = 1 โˆจ ๐‘ฅ = 0))
16 simpll 527 . . . . . 6 (((๐‘ฅ โˆˆ โ„ โˆง โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ)) โˆง 0 < ๐‘ฅ) โ†’ ๐‘ฅ โˆˆ โ„)
17 simpr 110 . . . . . . 7 (((๐‘ฅ โˆˆ โ„ โˆง โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ)) โˆง 0 < ๐‘ฅ) โ†’ 0 < ๐‘ฅ)
1816, 17gt0ap0d 8600 . . . . . 6 (((๐‘ฅ โˆˆ โ„ โˆง โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ)) โˆง 0 < ๐‘ฅ) โ†’ ๐‘ฅ # 0)
1916, 18, 11syl2anc 411 . . . . 5 (((๐‘ฅ โˆˆ โ„ โˆง โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ)) โˆง 0 < ๐‘ฅ) โ†’ โˆƒ๐‘ง โˆˆ โ„ (๐‘ฅ ยท ๐‘ง) = 1)
2019orcd 734 . . . 4 (((๐‘ฅ โˆˆ โ„ โˆง โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ)) โˆง 0 < ๐‘ฅ) โ†’ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ฅ ยท ๐‘ง) = 1 โˆจ ๐‘ฅ = 0))
21 0re 7971 . . . . . 6 0 โˆˆ โ„
22 breq2 4019 . . . . . . . 8 (๐‘ฆ = 0 โ†’ (๐‘ฅ < ๐‘ฆ โ†” ๐‘ฅ < 0))
23 eqeq2 2197 . . . . . . . 8 (๐‘ฆ = 0 โ†’ (๐‘ฅ = ๐‘ฆ โ†” ๐‘ฅ = 0))
24 breq1 4018 . . . . . . . 8 (๐‘ฆ = 0 โ†’ (๐‘ฆ < ๐‘ฅ โ†” 0 < ๐‘ฅ))
2522, 23, 243orbi123d 1321 . . . . . . 7 (๐‘ฆ = 0 โ†’ ((๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ) โ†” (๐‘ฅ < 0 โˆจ ๐‘ฅ = 0 โˆจ 0 < ๐‘ฅ)))
2625rspcv 2849 . . . . . 6 (0 โˆˆ โ„ โ†’ (โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ) โ†’ (๐‘ฅ < 0 โˆจ ๐‘ฅ = 0 โˆจ 0 < ๐‘ฅ)))
2721, 26ax-mp 5 . . . . 5 (โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ) โ†’ (๐‘ฅ < 0 โˆจ ๐‘ฅ = 0 โˆจ 0 < ๐‘ฅ))
2827adantl 277 . . . 4 ((๐‘ฅ โˆˆ โ„ โˆง โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ)) โ†’ (๐‘ฅ < 0 โˆจ ๐‘ฅ = 0 โˆจ 0 < ๐‘ฅ))
2913, 15, 20, 28mpjao3dan 1317 . . 3 ((๐‘ฅ โˆˆ โ„ โˆง โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ)) โ†’ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ฅ ยท ๐‘ง) = 1 โˆจ ๐‘ฅ = 0))
3029ralimiaa 2549 . 2 (โˆ€๐‘ฅ โˆˆ โ„ โˆ€๐‘ฆ โˆˆ โ„ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ) โ†’ โˆ€๐‘ฅ โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ฅ ยท ๐‘ง) = 1 โˆจ ๐‘ฅ = 0))
31 oveq1 5895 . . . . . . 7 (๐‘ฅ = ๐‘ค โ†’ (๐‘ฅ ยท ๐‘ง) = (๐‘ค ยท ๐‘ง))
3231eqeq1d 2196 . . . . . 6 (๐‘ฅ = ๐‘ค โ†’ ((๐‘ฅ ยท ๐‘ง) = 1 โ†” (๐‘ค ยท ๐‘ง) = 1))
3332rexbidv 2488 . . . . 5 (๐‘ฅ = ๐‘ค โ†’ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ฅ ยท ๐‘ง) = 1 โ†” โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1))
34 eqeq1 2194 . . . . 5 (๐‘ฅ = ๐‘ค โ†’ (๐‘ฅ = 0 โ†” ๐‘ค = 0))
3533, 34orbi12d 794 . . . 4 (๐‘ฅ = ๐‘ค โ†’ ((โˆƒ๐‘ง โˆˆ โ„ (๐‘ฅ ยท ๐‘ง) = 1 โˆจ ๐‘ฅ = 0) โ†” (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0)))
3635cbvralv 2715 . . 3 (โˆ€๐‘ฅ โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ฅ ยท ๐‘ง) = 1 โˆจ ๐‘ฅ = 0) โ†” โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0))
37 nfcv 2329 . . . . . . . . 9 โ„ฒ๐‘งโ„
38 nfre1 2530 . . . . . . . . . 10 โ„ฒ๐‘งโˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1
39 nfv 1538 . . . . . . . . . 10 โ„ฒ๐‘ง ๐‘ค = 0
4038, 39nfor 1584 . . . . . . . . 9 โ„ฒ๐‘ง(โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0)
4137, 40nfralya 2527 . . . . . . . 8 โ„ฒ๐‘งโˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0)
42 nfv 1538 . . . . . . . 8 โ„ฒ๐‘ง(๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)
4341, 42nfan 1575 . . . . . . 7 โ„ฒ๐‘ง(โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„))
44 nfv 1538 . . . . . . 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 8541 . . . . . . . . . . 11 (((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โˆง (๐‘ฆ โˆ’ ๐‘ฅ) < 0) โ†’ ((๐‘ฆ โˆ’ ๐‘ฅ) < 0 โ†” ๐‘ฆ < ๐‘ฅ))
5345, 52mpbid 147 . . . . . . . . . 10 (((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โˆง (๐‘ฆ โˆ’ ๐‘ฅ) < 0) โ†’ ๐‘ฆ < ๐‘ฅ)
54533mix3d 1175 . . . . . . . . 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 8503 . . . . . . . . . . 11 (((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โˆง 0 < (๐‘ฆ โˆ’ ๐‘ฅ)) โ†’ (๐‘ฅ < ๐‘ฆ โ†” 0 < (๐‘ฆ โˆ’ ๐‘ฅ)))
5955, 58mpbird 167 . . . . . . . . . 10 (((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โˆง 0 < (๐‘ฆ โˆ’ ๐‘ฅ)) โ†’ ๐‘ฅ < ๐‘ฆ)
60593mix1d 1173 . . . . . . . . 9 (((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โˆง 0 < (๐‘ฆ โˆ’ ๐‘ฅ)) โ†’ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ))
6147recnd 8000 . . . . . . . . . . . 12 ((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โ†’ ๐‘ฆ โˆˆ โ„‚)
6250recnd 8000 . . . . . . . . . . . 12 ((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โ†’ ๐‘ฅ โˆˆ โ„‚)
6361, 62subcld 8282 . . . . . . . . . . 11 ((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โ†’ (๐‘ฆ โˆ’ ๐‘ฅ) โˆˆ โ„‚)
64 simplr 528 . . . . . . . . . . . 12 ((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โ†’ ๐‘ง โˆˆ โ„)
6564recnd 8000 . . . . . . . . . . 11 ((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โ†’ ๐‘ง โˆˆ โ„‚)
66 simpr 110 . . . . . . . . . . . 12 ((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โ†’ ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1)
67 1ap0 8561 . . . . . . . . . . . 12 1 # 0
6866, 67eqbrtrdi 4054 . . . . . . . . . . 11 ((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โ†’ ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) # 0)
6963, 65, 68mulap0bad 8630 . . . . . . . . . 10 ((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โ†’ (๐‘ฆ โˆ’ ๐‘ฅ) # 0)
7046, 49resubcld 8352 . . . . . . . . . . . 12 ((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โ†’ (๐‘ฆ โˆ’ ๐‘ฅ) โˆˆ โ„)
7170ad2antrr 488 . . . . . . . . . . 11 ((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โ†’ (๐‘ฆ โˆ’ ๐‘ฅ) โˆˆ โ„)
72 reaplt 8559 . . . . . . . . . . 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 799 . . . . . . . 8 ((((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง ๐‘ง โˆˆ โ„) โˆง ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โ†’ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ))
7675exp31 364 . . . . . . 7 ((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โ†’ (๐‘ง โˆˆ โ„ โ†’ (((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1 โ†’ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ))))
7743, 44, 76rexlimd 2601 . . . . . 6 ((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โ†’ (โˆƒ๐‘ง โˆˆ โ„ ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1 โ†’ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ)))
7877imp 124 . . . . 5 (((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง โˆƒ๐‘ง โˆˆ โ„ ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1) โ†’ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ))
7946recnd 8000 . . . . . . . . 9 ((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โ†’ ๐‘ฆ โˆˆ โ„‚)
8079adantr 276 . . . . . . . 8 (((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง (๐‘ฆ โˆ’ ๐‘ฅ) = 0) โ†’ ๐‘ฆ โˆˆ โ„‚)
8149recnd 8000 . . . . . . . . 9 ((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โ†’ ๐‘ฅ โˆˆ โ„‚)
8281adantr 276 . . . . . . . 8 (((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง (๐‘ฆ โˆ’ ๐‘ฅ) = 0) โ†’ ๐‘ฅ โˆˆ โ„‚)
83 simpr 110 . . . . . . . 8 (((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง (๐‘ฆ โˆ’ ๐‘ฅ) = 0) โ†’ (๐‘ฆ โˆ’ ๐‘ฅ) = 0)
8480, 82, 83subeq0d 8290 . . . . . . 7 (((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง (๐‘ฆ โˆ’ ๐‘ฅ) = 0) โ†’ ๐‘ฆ = ๐‘ฅ)
8584equcomd 1717 . . . . . 6 (((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง (๐‘ฆ โˆ’ ๐‘ฅ) = 0) โ†’ ๐‘ฅ = ๐‘ฆ)
86853mix2d 1174 . . . . 5 (((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โˆง (๐‘ฆ โˆ’ ๐‘ฅ) = 0) โ†’ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ))
87 oveq1 5895 . . . . . . . . 9 (๐‘ค = (๐‘ฆ โˆ’ ๐‘ฅ) โ†’ (๐‘ค ยท ๐‘ง) = ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง))
8887eqeq1d 2196 . . . . . . . 8 (๐‘ค = (๐‘ฆ โˆ’ ๐‘ฅ) โ†’ ((๐‘ค ยท ๐‘ง) = 1 โ†” ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1))
8988rexbidv 2488 . . . . . . 7 (๐‘ค = (๐‘ฆ โˆ’ ๐‘ฅ) โ†’ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โ†” โˆƒ๐‘ง โˆˆ โ„ ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1))
90 eqeq1 2194 . . . . . . 7 (๐‘ค = (๐‘ฆ โˆ’ ๐‘ฅ) โ†’ (๐‘ค = 0 โ†” (๐‘ฆ โˆ’ ๐‘ฅ) = 0))
9189, 90orbi12d 794 . . . . . 6 (๐‘ค = (๐‘ฆ โˆ’ ๐‘ฅ) โ†’ ((โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โ†” (โˆƒ๐‘ง โˆˆ โ„ ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1 โˆจ (๐‘ฆ โˆ’ ๐‘ฅ) = 0)))
92 simpl 109 . . . . . 6 ((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โ†’ โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0))
9391, 92, 70rspcdva 2858 . . . . 5 ((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โ†’ (โˆƒ๐‘ง โˆˆ โ„ ((๐‘ฆ โˆ’ ๐‘ฅ) ยท ๐‘ง) = 1 โˆจ (๐‘ฆ โˆ’ ๐‘ฅ) = 0))
9478, 86, 93mpjaodan 799 . . . 4 ((โˆ€๐‘ค โˆˆ โ„ (โˆƒ๐‘ง โˆˆ โ„ (๐‘ค ยท ๐‘ง) = 1 โˆจ ๐‘ค = 0) โˆง (๐‘ฅ โˆˆ โ„ โˆง ๐‘ฆ โˆˆ โ„)) โ†’ (๐‘ฅ < ๐‘ฆ โˆจ ๐‘ฅ = ๐‘ฆ โˆจ ๐‘ฆ < ๐‘ฅ))
9594ralrimivva 2569 . . 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 709   โˆจ w3o 978   = wceq 1363   โˆˆ wcel 2158  โˆ€wral 2465  โˆƒwrex 2466   class class class wbr 4015  (class class class)co 5888  โ„‚cc 7823  โ„cr 7824  0cc0 7825  1c1 7826   ยท cmul 7830   < clt 8006   โˆ’ cmin 8142   # cap 8552   / cdiv 8643
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 615  ax-in2 616  ax-io 710  ax-5 1457  ax-7 1458  ax-gen 1459  ax-ie1 1503  ax-ie2 1504  ax-8 1514  ax-10 1515  ax-11 1516  ax-i12 1517  ax-bndl 1519  ax-4 1520  ax-17 1536  ax-i9 1540  ax-ial 1544  ax-i5r 1545  ax-13 2160  ax-14 2161  ax-ext 2169  ax-sep 4133  ax-pow 4186  ax-pr 4221  ax-un 4445  ax-setind 4548  ax-cnex 7916  ax-resscn 7917  ax-1cn 7918  ax-1re 7919  ax-icn 7920  ax-addcl 7921  ax-addrcl 7922  ax-mulcl 7923  ax-mulrcl 7924  ax-addcom 7925  ax-mulcom 7926  ax-addass 7927  ax-mulass 7928  ax-distr 7929  ax-i2m1 7930  ax-0lt1 7931  ax-1rid 7932  ax-0id 7933  ax-rnegex 7934  ax-precex 7935  ax-cnre 7936  ax-pre-ltirr 7937  ax-pre-ltwlin 7938  ax-pre-lttrn 7939  ax-pre-apti 7940  ax-pre-ltadd 7941  ax-pre-mulgt0 7942  ax-pre-mulext 7943
This theorem depends on definitions:  df-bi 117  df-3or 980  df-3an 981  df-tru 1366  df-fal 1369  df-nf 1471  df-sb 1773  df-eu 2039  df-mo 2040  df-clab 2174  df-cleq 2180  df-clel 2183  df-nfc 2318  df-ne 2358  df-nel 2453  df-ral 2470  df-rex 2471  df-reu 2472  df-rmo 2473  df-rab 2474  df-v 2751  df-sbc 2975  df-dif 3143  df-un 3145  df-in 3147  df-ss 3154  df-pw 3589  df-sn 3610  df-pr 3611  df-op 3613  df-uni 3822  df-br 4016  df-opab 4077  df-id 4305  df-po 4308  df-iso 4309  df-xp 4644  df-rel 4645  df-cnv 4646  df-co 4647  df-dm 4648  df-iota 5190  df-fun 5230  df-fv 5236  df-riota 5844  df-ov 5891  df-oprab 5892  df-mpo 5893  df-pnf 8008  df-mnf 8009  df-xr 8010  df-ltxr 8011  df-le 8012  df-sub 8144  df-neg 8145  df-reap 8546  df-ap 8553  df-div 8644
This theorem is referenced by:  trirec0xor  15090
  Copyright terms: Public domain W3C validator