:: Compactness of the Bounded Closed Subsets of TOP-REAL 2
:: by Artur Korni{\l}owicz
::
:: Received February 19, 1999
:: Copyright (c) 1999 Association of Mizar Users


begin

theorem :: TOPREAL6:1
canceled;

theorem :: TOPREAL6:2
canceled;

theorem :: TOPREAL6:3
canceled;

theorem :: TOPREAL6:4
canceled;

theorem :: TOPREAL6:5
canceled;

theorem Th6: :: TOPREAL6:6
for a, b being real number st 0 <= a & 0 <= b holds
sqrt (a + b) <= (sqrt a) + (sqrt b)
proof end;

theorem Th7: :: TOPREAL6:7
for a, b being real number st 0 <= a & a <= b holds
abs a <= abs b
proof end;

theorem Th8: :: TOPREAL6:8
for b, a being real number st b <= a & a <= 0 holds
abs a <= abs b
proof end;

theorem :: TOPREAL6:9
for r being Real holds Product (0 |-> r) = 1 by RVSUM_1:124;

theorem Th10: :: TOPREAL6:10
for r being Real holds Product (1 |-> r) = r
proof end;

theorem :: TOPREAL6:11
for r being Real holds Product (2 |-> r) = r * r
proof end;

theorem Th12: :: TOPREAL6:12
for r being Real
for n being Element of NAT holds Product ((n + 1) |-> r) = (Product (n |-> r)) * r
proof end;

theorem Th13: :: TOPREAL6:13
for r being Real
for j being Element of NAT holds
( ( j <> 0 & r = 0 ) iff Product (j |-> r) = 0 )
proof end;

theorem Th14: :: TOPREAL6:14
for r being Real
for j, i being Element of NAT st r <> 0 & j <= i holds
Product ((i -' j) |-> r) = (Product (i |-> r)) / (Product (j |-> r))
proof end;

theorem :: TOPREAL6:15
for r being Real
for j, i being Element of NAT st r <> 0 & j <= i holds
r |^ (i -' j) = (r |^ i) / (r |^ j)
proof end;

theorem Th16: :: TOPREAL6:16
for a, b being Real holds sqr <*a,b*> = <*(a ^2 ),(b ^2 )*>
proof end;

theorem Th17: :: TOPREAL6:17
for a being Real
for i being Nat
for F being FinSequence of REAL st i in dom (abs F) & a = F . i holds
(abs F) . i = abs a
proof end;

theorem :: TOPREAL6:18
for a, b being Real holds abs <*a,b*> = <*(abs a),(abs b)*>
proof end;

theorem :: TOPREAL6:19
for a, b, c, d being real number st a <= b & c <= d holds
(abs (b - a)) + (abs (d - c)) = (b - a) + (d - c)
proof end;

theorem Th20: :: TOPREAL6:20
for a, r being real number st r > 0 holds
a in ].(a - r),(a + r).[
proof end;

theorem :: TOPREAL6:21
for a, r being real number st r >= 0 holds
a in [.(a - r),(a + r).]
proof end;

theorem Th22: :: TOPREAL6:22
for a, b being real number st a < b holds
( inf ].a,b.[ = a & sup ].a,b.[ = b )
proof end;

theorem :: TOPREAL6:23
canceled;

theorem Th24: :: TOPREAL6:24
for A being bounded Subset of REAL holds A c= [.(inf A),(sup A).]
proof end;

begin

registration
let T be TopStruct ;
let A be finite Subset of T;
cluster T | A -> finite ;
coherence
T | A is finite
by PRE_TOPC:29;
end;

registration
let T be TopStruct ;
cluster empty -> connected Element of bool the carrier of T;
coherence
for b1 being Subset of T st b1 is empty holds
b1 is connected
proof end;
end;

theorem Th25: :: TOPREAL6:25
for S, T being TopSpace st S,T are_homeomorphic & S is connected holds
T is connected
proof end;

theorem :: TOPREAL6:26
for T being TopSpace
for F being finite Subset-Family of T st ( for X being Subset of T st X in F holds
X is compact ) holds
union F is compact
proof end;

begin

theorem :: TOPREAL6:27
canceled;

theorem :: TOPREAL6:28
canceled;

theorem Th29: :: TOPREAL6:29
for A, B, C, D, a, b being set st A c= B & C c= D holds
product (a,b --> A,C) c= product (a,b --> B,D)
proof end;

theorem Th30: :: TOPREAL6:30
for A, B being Subset of REAL holds product (1,2 --> A,B) is Subset of (TOP-REAL 2)
proof end;

theorem :: TOPREAL6:31
for a being Real holds
( |.|[0 ,a]|.| = abs a & |.|[a,0 ]|.| = abs a )
proof end;

theorem Th32: :: TOPREAL6:32
for p being Point of (Euclid 2)
for q being Point of (TOP-REAL 2) st p = 0. (TOP-REAL 2) & p = q holds
( q = <*0 ,0 *> & q `1 = 0 & q `2 = 0 )
proof end;

theorem :: TOPREAL6:33
for p, q being Point of (Euclid 2)
for z being Point of (TOP-REAL 2) st p = 0.REAL 2 & q = z holds
dist p,q = |.z.|
proof end;

theorem Th34: :: TOPREAL6:34
for r being Real
for p being Point of (TOP-REAL 2) holds r * p = |[(r * (p `1 )),(r * (p `2 ))]|
proof end;

theorem Th35: :: TOPREAL6:35
for r being Real
for s, p, q being Point of (TOP-REAL 2) st s = ((1 - r) * p) + (r * q) & s <> p & 0 <= r holds
0 < r
proof end;

theorem Th36: :: TOPREAL6:36
for r being Real
for s, p, q being Point of (TOP-REAL 2) st s = ((1 - r) * p) + (r * q) & s <> q & r <= 1 holds
r < 1
proof end;

theorem :: TOPREAL6:37
for s, p, q being Point of (TOP-REAL 2) st s in LSeg p,q & s <> p & s <> q & p `1 < q `1 holds
( p `1 < s `1 & s `1 < q `1 )
proof end;

theorem :: TOPREAL6:38
for s, p, q being Point of (TOP-REAL 2) st s in LSeg p,q & s <> p & s <> q & p `2 < q `2 holds
( p `2 < s `2 & s `2 < q `2 )
proof end;

theorem :: TOPREAL6:39
for D being non empty Subset of (TOP-REAL 2)
for p being Point of (TOP-REAL 2) ex q being Point of (TOP-REAL 2) st
( q `1 < W-bound D & p <> q )
proof end;

theorem :: TOPREAL6:40
for D being non empty Subset of (TOP-REAL 2)
for p being Point of (TOP-REAL 2) ex q being Point of (TOP-REAL 2) st
( q `1 > E-bound D & p <> q )
proof end;

theorem :: TOPREAL6:41
for D being non empty Subset of (TOP-REAL 2)
for p being Point of (TOP-REAL 2) ex q being Point of (TOP-REAL 2) st
( q `2 > N-bound D & p <> q )
proof end;

theorem :: TOPREAL6:42
for D being non empty Subset of (TOP-REAL 2)
for p being Point of (TOP-REAL 2) ex q being Point of (TOP-REAL 2) st
( q `2 < S-bound D & p <> q )
proof end;

registration
cluster non horizontal -> non empty Element of bool the carrier of (TOP-REAL 2);
coherence
for b1 being Subset of (TOP-REAL 2) st not b1 is horizontal holds
not b1 is empty
proof end;
cluster non vertical -> non empty Element of bool the carrier of (TOP-REAL 2);
coherence
for b1 being Subset of (TOP-REAL 2) st not b1 is vertical holds
not b1 is empty
proof end;
cluster being_Region -> open connected Element of bool the carrier of (TOP-REAL 2);
coherence
for b1 being Subset of (TOP-REAL 2) st b1 is being_Region holds
( b1 is open & b1 is connected )
by TOPREAL4:def 3;
cluster open connected -> being_Region Element of bool the carrier of (TOP-REAL 2);
coherence
for b1 being Subset of (TOP-REAL 2) st b1 is open & b1 is connected holds
b1 is being_Region
by TOPREAL4:def 3;
end;

registration
cluster empty -> horizontal Element of bool the carrier of (TOP-REAL 2);
coherence
for b1 being Subset of (TOP-REAL 2) st b1 is empty holds
b1 is horizontal
;
cluster empty -> vertical Element of bool the carrier of (TOP-REAL 2);
coherence
for b1 being Subset of (TOP-REAL 2) st b1 is empty holds
b1 is vertical
;
end;

registration
cluster non empty convex Element of bool the carrier of (TOP-REAL 2);
existence
ex b1 being Subset of (TOP-REAL 2) st
( not b1 is empty & b1 is convex )
proof end;
end;

registration
let a, b be Point of (TOP-REAL 2);
cluster LSeg a,b -> connected ;
coherence
LSeg a,b is connected
;
end;

registration
cluster R^2-unit_square -> connected ;
coherence
R^2-unit_square is connected
proof end;
end;

registration
cluster being_simple_closed_curve -> connected Element of bool the carrier of (TOP-REAL 2);
coherence
for b1 being Subset of (TOP-REAL 2) st b1 is being_simple_closed_curve holds
b1 is connected
proof end;
end;

theorem :: TOPREAL6:43
for P being Subset of (TOP-REAL 2) holds LSeg (NE-corner P),(SE-corner P) c= L~ (SpStSeq P)
proof end;

theorem :: TOPREAL6:44
for P being Subset of (TOP-REAL 2) holds LSeg (SW-corner P),(SE-corner P) c= L~ (SpStSeq P)
proof end;

theorem :: TOPREAL6:45
for P being Subset of (TOP-REAL 2) holds LSeg (SW-corner P),(NW-corner P) c= L~ (SpStSeq P)
proof end;

theorem :: TOPREAL6:46
for C being Subset of (TOP-REAL 2) holds { p where p is Point of (TOP-REAL 2) : p `1 < W-bound C } is non empty connected convex Subset of (TOP-REAL 2)
proof end;

begin

theorem Th47: :: TOPREAL6:47
for q, p being Point of (TOP-REAL 2)
for e being Point of (Euclid 2)
for r being real number st e = q & p in Ball e,r holds
( (q `1 ) - r < p `1 & p `1 < (q `1 ) + r )
proof end;

theorem Th48: :: TOPREAL6:48
for q, p being Point of (TOP-REAL 2)
for e being Point of (Euclid 2)
for r being real number st e = q & p in Ball e,r holds
( (q `2 ) - r < p `2 & p `2 < (q `2 ) + r )
proof end;

theorem Th49: :: TOPREAL6:49
for p being Point of (TOP-REAL 2)
for e being Point of (Euclid 2)
for r being real number st p = e holds
product (1,2 --> ].((p `1 ) - (r / (sqrt 2))),((p `1 ) + (r / (sqrt 2))).[,].((p `2 ) - (r / (sqrt 2))),((p `2 ) + (r / (sqrt 2))).[) c= Ball e,r
proof end;

theorem Th50: :: TOPREAL6:50
for p being Point of (TOP-REAL 2)
for e being Point of (Euclid 2)
for r being real number st p = e holds
Ball e,r c= product (1,2 --> ].((p `1 ) - r),((p `1 ) + r).[,].((p `2 ) - r),((p `2 ) + r).[)
proof end;

theorem Th51: :: TOPREAL6:51
for p being Point of (TOP-REAL 2)
for e being Point of (Euclid 2)
for P being Subset of (TOP-REAL 2)
for r being real number st P = Ball e,r & p = e holds
proj1 .: P = ].((p `1 ) - r),((p `1 ) + r).[
proof end;

theorem Th52: :: TOPREAL6:52
for p being Point of (TOP-REAL 2)
for e being Point of (Euclid 2)
for P being Subset of (TOP-REAL 2)
for r being real number st P = Ball e,r & p = e holds
proj2 .: P = ].((p `2 ) - r),((p `2 ) + r).[
proof end;

theorem :: TOPREAL6:53
for p being Point of (TOP-REAL 2)
for e being Point of (Euclid 2)
for D being non empty Subset of (TOP-REAL 2)
for r being real number st D = Ball e,r & p = e holds
W-bound D = (p `1 ) - r
proof end;

theorem :: TOPREAL6:54
for p being Point of (TOP-REAL 2)
for e being Point of (Euclid 2)
for D being non empty Subset of (TOP-REAL 2)
for r being real number st D = Ball e,r & p = e holds
E-bound D = (p `1 ) + r
proof end;

theorem :: TOPREAL6:55
for p being Point of (TOP-REAL 2)
for e being Point of (Euclid 2)
for D being non empty Subset of (TOP-REAL 2)
for r being real number st D = Ball e,r & p = e holds
S-bound D = (p `2 ) - r
proof end;

theorem :: TOPREAL6:56
for p being Point of (TOP-REAL 2)
for e being Point of (Euclid 2)
for D being non empty Subset of (TOP-REAL 2)
for r being real number st D = Ball e,r & p = e holds
N-bound D = (p `2 ) + r
proof end;

theorem :: TOPREAL6:57
for e being Point of (Euclid 2)
for D being non empty Subset of (TOP-REAL 2)
for r being real number st D = Ball e,r holds
not D is horizontal
proof end;

theorem :: TOPREAL6:58
for e being Point of (Euclid 2)
for D being non empty Subset of (TOP-REAL 2)
for r being real number st D = Ball e,r holds
not D is vertical
proof end;

theorem :: TOPREAL6:59
for a being Real
for f being Point of (Euclid 2)
for x being Point of (TOP-REAL 2) st x in Ball f,a holds
not |[((x `1 ) - (2 * a)),(x `2 )]| in Ball f,a
proof end;

theorem :: TOPREAL6:60
for a being Real
for X being non empty compact Subset of (TOP-REAL 2)
for p being Point of (Euclid 2) st p = 0. (TOP-REAL 2) & a > 0 holds
X c= Ball p,(((((abs (E-bound X)) + (abs (N-bound X))) + (abs (W-bound X))) + (abs (S-bound X))) + a)
proof end;

theorem Th61: :: TOPREAL6:61
for r being real number
for M being non empty Reflexive symmetric triangle MetrStruct
for z being Point of M st r < 0 holds
Sphere z,r = {}
proof end;

theorem :: TOPREAL6:62
for M being non empty Reflexive discerning MetrStruct
for z being Point of M holds Sphere z,0 = {z}
proof end;

theorem :: TOPREAL6:63
for r being real number
for M being non empty Reflexive symmetric triangle MetrStruct
for z being Point of M st r < 0 holds
cl_Ball z,r = {}
proof end;

theorem :: TOPREAL6:64
for M being non empty MetrSpace
for z being Point of M holds cl_Ball z,0 = {z}
proof end;

Lm1: for M being non empty MetrSpace
for z being Point of M
for r being real number
for A being Subset of (TopSpaceMetr M) st A = cl_Ball z,r holds
A ` is open
proof end;

theorem Th65: :: TOPREAL6:65
for M being non empty MetrSpace
for z being Point of M
for r being real number
for A being Subset of (TopSpaceMetr M) st A = cl_Ball z,r holds
A is closed
proof end;

theorem :: TOPREAL6:66
for n being Element of NAT
for w being Point of (Euclid n)
for A being Subset of (TOP-REAL n)
for r being real number st A = cl_Ball w,r holds
A is closed
proof end;

theorem Th67: :: TOPREAL6:67
for r being real number
for M being non empty Reflexive symmetric triangle MetrStruct
for x being Element of M holds cl_Ball x,r is bounded
proof end;

theorem Th68: :: TOPREAL6:68
for M being non empty MetrSpace
for z being Point of M
for r being real number
for A being Subset of (TopSpaceMetr M) st A = Sphere z,r holds
A is closed
proof end;

theorem :: TOPREAL6:69
for n being Element of NAT
for w being Point of (Euclid n)
for A being Subset of (TOP-REAL n)
for r being real number st A = Sphere w,r holds
A is closed
proof end;

theorem :: TOPREAL6:70
for M being non empty MetrSpace
for z being Point of M
for r being real number holds Sphere z,r is bounded
proof end;

theorem Th71: :: TOPREAL6:71
for n being Element of NAT
for A being Subset of (TOP-REAL n) st A is Bounded holds
Cl A is Bounded
proof end;

theorem :: TOPREAL6:72
for M being non empty MetrStruct holds
( M is bounded iff for X being Subset of M holds X is bounded )
proof end;

theorem Th73: :: TOPREAL6:73
for M being non empty Reflexive symmetric triangle MetrStruct
for X, Y being Subset of M st the carrier of M = X \/ Y & not M is bounded & X is bounded holds
not Y is bounded
proof end;

theorem :: TOPREAL6:74
for n being Element of NAT
for X, Y being Subset of (TOP-REAL n) st n >= 1 & the carrier of (TOP-REAL n) = X \/ Y & X is Bounded holds
not Y is Bounded
proof end;

theorem :: TOPREAL6:75
canceled;

theorem Th76: :: TOPREAL6:76
for n being Element of NAT
for A, B being Subset of (TOP-REAL n) st A is Bounded & B is Bounded holds
A \/ B is Bounded
proof end;

begin

registration
let X be non empty Subset of REAL ;
cluster Cl X -> non empty ;
coherence
not Cl X is empty
by PSCOMP_1:33, XBOOLE_1:3;
end;

registration
let D be bounded_below Subset of REAL ;
cluster Cl D -> bounded_below ;
coherence
Cl D is bounded_below
proof end;
end;

registration
let D be bounded_above Subset of REAL ;
cluster Cl D -> bounded_above ;
coherence
Cl D is bounded_above
proof end;
end;

theorem Th77: :: TOPREAL6:77
for D being non empty bounded_below Subset of REAL holds inf D = inf (Cl D)
proof end;

theorem Th78: :: TOPREAL6:78
for D being non empty bounded_above Subset of REAL holds sup D = sup (Cl D)
proof end;

registration
cluster R^1 -> T_2 ;
coherence
R^1 is T_2
by PCOMPS_1:38, TOPMETR:def 7;
end;

Lm2: R^1 = TopStruct(# the carrier of RealSpace ,(Family_open_set RealSpace ) #)
by PCOMPS_1:def 6, TOPMETR:def 7;

theorem Th79: :: TOPREAL6:79
for A being Subset of REAL
for B being Subset of R^1 st A = B holds
( A is closed iff B is closed )
proof end;

theorem :: TOPREAL6:80
for A being Subset of REAL
for B being Subset of R^1 st A = B holds
Cl A = Cl B
proof end;

theorem Th81: :: TOPREAL6:81
for A being Subset of REAL
for B being Subset of R^1 st A = B holds
( A is compact iff B is compact )
proof end;

registration
cluster finite -> compact Element of bool REAL ;
coherence
for b1 being Subset of REAL st b1 is finite holds
b1 is compact
by Th81, TOPMETR:24;
end;

registration
let a, b be real number ;
cluster K217(a,b) -> compact Subset of REAL ;
coherence
for b1 being Subset of REAL st b1 = [.a,b.] holds
b1 is compact
by RCOMP_1:24;
end;

theorem :: TOPREAL6:82
for a, b being real number holds
( a <> b iff Cl ].a,b.[ = [.a,b.] )
proof end;

registration
cluster non empty finite bounded Element of bool REAL ;
existence
ex b1 being Subset of REAL st
( not b1 is empty & b1 is finite & b1 is bounded )
proof end;
end;

theorem Th83: :: TOPREAL6:83
for T being TopStruct
for f being RealMap of T
for g being Function of T,R^1 st f = g holds
( f is continuous iff g is continuous )
proof end;

theorem Th84: :: TOPREAL6:84
for A, B being Subset of REAL
for f being Function of [:R^1 ,R^1 :],(TOP-REAL 2) st ( for x, y being Real holds f . [x,y] = <*x,y*> ) holds
f .: [:A,B:] = product (1,2 --> A,B)
proof end;

theorem Th85: :: TOPREAL6:85
for f being Function of [:R^1 ,R^1 :],(TOP-REAL 2) st ( for x, y being Real holds f . [x,y] = <*x,y*> ) holds
f is being_homeomorphism
proof end;

theorem :: TOPREAL6:86
[:R^1 ,R^1 :], TOP-REAL 2 are_homeomorphic
proof end;

begin

theorem Th87: :: TOPREAL6:87
for A, B being compact Subset of REAL holds product (1,2 --> A,B) is compact Subset of (TOP-REAL 2)
proof end;

theorem Th88: :: TOPREAL6:88
for P being Subset of (TOP-REAL 2) st P is Bounded & P is closed holds
P is compact
proof end;

theorem Th89: :: TOPREAL6:89
for P being Subset of (TOP-REAL 2) st P is Bounded holds
for g being continuous RealMap of (TOP-REAL 2) holds Cl (g .: P) c= g .: (Cl P)
proof end;

theorem Th90: :: TOPREAL6:90
for P being Subset of (TOP-REAL 2) holds proj1 .: (Cl P) c= Cl (proj1 .: P)
proof end;

theorem Th91: :: TOPREAL6:91
for P being Subset of (TOP-REAL 2) holds proj2 .: (Cl P) c= Cl (proj2 .: P)
proof end;

theorem Th92: :: TOPREAL6:92
for P being Subset of (TOP-REAL 2) st P is Bounded holds
Cl (proj1 .: P) = proj1 .: (Cl P)
proof end;

theorem Th93: :: TOPREAL6:93
for P being Subset of (TOP-REAL 2) st P is Bounded holds
Cl (proj2 .: P) = proj2 .: (Cl P)
proof end;

theorem :: TOPREAL6:94
for D being non empty Subset of (TOP-REAL 2) st D is Bounded holds
W-bound D = W-bound (Cl D)
proof end;

theorem :: TOPREAL6:95
for D being non empty Subset of (TOP-REAL 2) st D is Bounded holds
E-bound D = E-bound (Cl D)
proof end;

theorem :: TOPREAL6:96
for D being non empty Subset of (TOP-REAL 2) st D is Bounded holds
N-bound D = N-bound (Cl D)
proof end;

theorem :: TOPREAL6:97
for D being non empty Subset of (TOP-REAL 2) st D is Bounded holds
S-bound D = S-bound (Cl D)
proof end;

theorem Th98: :: TOPREAL6:98
for n being Element of NAT
for A, B being Subset of (TOP-REAL n) st ( A is Bounded or B is Bounded ) holds
A /\ B is Bounded
proof end;

theorem :: TOPREAL6:99
for n being Element of NAT
for A, B being Subset of (TOP-REAL n) st not A is Bounded & B is Bounded holds
not A \ B is Bounded
proof end;

begin

definition
let n be Element of NAT ;
let a, b be Point of (TOP-REAL n);
func dist a,b -> Real means :Def1: :: TOPREAL6:def 1
ex p, q being Point of (Euclid n) st
( p = a & q = b & it = dist p,q );
existence
ex b1 being Real ex p, q being Point of (Euclid n) st
( p = a & q = b & b1 = dist p,q )
proof end;
uniqueness
for b1, b2 being Real st ex p, q being Point of (Euclid n) st
( p = a & q = b & b1 = dist p,q ) & ex p, q being Point of (Euclid n) st
( p = a & q = b & b2 = dist p,q ) holds
b1 = b2
;
commutativity
for b1 being Real
for a, b being Point of (TOP-REAL n) st ex p, q being Point of (Euclid n) st
( p = a & q = b & b1 = dist p,q ) holds
ex p, q being Point of (Euclid n) st
( p = b & q = a & b1 = dist p,q )
;
end;

:: deftheorem Def1 defines dist TOPREAL6:def 1 :
for n being Element of NAT
for a, b being Point of (TOP-REAL n)
for b4 being Real holds
( b4 = dist a,b iff ex p, q being Point of (Euclid n) st
( p = a & q = b & b4 = dist p,q ) );

theorem Th100: :: TOPREAL6:100
for r1, s1, r2, s2 being real number
for u, v being Point of (Euclid 2) st u = |[r1,s1]| & v = |[r2,s2]| holds
dist u,v = sqrt (((r1 - r2) ^2 ) + ((s1 - s2) ^2 ))
proof end;

theorem Th101: :: TOPREAL6:101
for p, q being Point of (TOP-REAL 2) holds dist p,q = sqrt ((((p `1 ) - (q `1 )) ^2 ) + (((p `2 ) - (q `2 )) ^2 ))
proof end;

theorem :: TOPREAL6:102
for n being Element of NAT
for p being Point of (TOP-REAL n) holds dist p,p = 0
proof end;

theorem :: TOPREAL6:103
for n being Element of NAT
for p, q, r being Point of (TOP-REAL n) holds dist p,r <= (dist p,q) + (dist q,r)
proof end;

theorem :: TOPREAL6:104
for x1, x2, y1, y2 being real number
for a, b being Point of (TOP-REAL 2) st x1 <= a `1 & a `1 <= x2 & y1 <= a `2 & a `2 <= y2 & x1 <= b `1 & b `1 <= x2 & y1 <= b `2 & b `2 <= y2 holds
dist a,b <= (x2 - x1) + (y2 - y1)
proof end;