let X be non empty TopSpace; :: thesis: for X1, X2 being non empty SubSpace of X st X1 meets X2 holds
( ( X1 is SubSpace of X2 implies X1 meet X2 = TopStruct(# the carrier of X1, the topology of X1 #) ) & ( X1 meet X2 = TopStruct(# the carrier of X1, the topology of X1 #) implies X1 is SubSpace of X2 ) & ( X2 is SubSpace of X1 implies X1 meet X2 = TopStruct(# the carrier of X2, the topology of X2 #) ) & ( X1 meet X2 = TopStruct(# the carrier of X2, the topology of X2 #) implies X2 is SubSpace of X1 ) )

let X1, X2 be non empty SubSpace of X; :: thesis: ( X1 meets X2 implies ( ( X1 is SubSpace of X2 implies X1 meet X2 = TopStruct(# the carrier of X1, the topology of X1 #) ) & ( X1 meet X2 = TopStruct(# the carrier of X1, the topology of X1 #) implies X1 is SubSpace of X2 ) & ( X2 is SubSpace of X1 implies X1 meet X2 = TopStruct(# the carrier of X2, the topology of X2 #) ) & ( X1 meet X2 = TopStruct(# the carrier of X2, the topology of X2 #) implies X2 is SubSpace of X1 ) ) )
set A1 = the carrier of X1;
set A2 = the carrier of X2;
assume A1: X1 meets X2 ; :: thesis: ( ( X1 is SubSpace of X2 implies X1 meet X2 = TopStruct(# the carrier of X1, the topology of X1 #) ) & ( X1 meet X2 = TopStruct(# the carrier of X1, the topology of X1 #) implies X1 is SubSpace of X2 ) & ( X2 is SubSpace of X1 implies X1 meet X2 = TopStruct(# the carrier of X2, the topology of X2 #) ) & ( X1 meet X2 = TopStruct(# the carrier of X2, the topology of X2 #) implies X2 is SubSpace of X1 ) )
thus ( X1 is SubSpace of X2 iff X1 meet X2 = TopStruct(# the carrier of X1, the topology of X1 #) ) :: thesis: ( X2 is SubSpace of X1 iff X1 meet X2 = TopStruct(# the carrier of X2, the topology of X2 #) )
proof
thus ( X1 is SubSpace of X2 implies X1 meet X2 = TopStruct(# the carrier of X1, the topology of X1 #) ) :: thesis: ( X1 meet X2 = TopStruct(# the carrier of X1, the topology of X1 #) implies X1 is SubSpace of X2 )
proof
assume X1 is SubSpace of X2 ; :: thesis: X1 meet X2 = TopStruct(# the carrier of X1, the topology of X1 #)
then A2: the carrier of X1 /\ the carrier of X2 = the carrier of TopStruct(# the carrier of X1, the topology of X1 #) by BORSUK_1:1, XBOOLE_1:28;
TopStruct(# the carrier of X1, the topology of X1 #) is strict SubSpace of X by Lm3;
hence X1 meet X2 = TopStruct(# the carrier of X1, the topology of X1 #) by A1, A2, Def4; :: thesis: verum
end;
assume X1 meet X2 = TopStruct(# the carrier of X1, the topology of X1 #) ; :: thesis: X1 is SubSpace of X2
then the carrier of X1 /\ the carrier of X2 = the carrier of X1 by A1, Def4;
then the carrier of X1 c= the carrier of X2 by XBOOLE_1:17;
hence X1 is SubSpace of X2 by Th4; :: thesis: verum
end;
thus ( X2 is SubSpace of X1 iff X1 meet X2 = TopStruct(# the carrier of X2, the topology of X2 #) ) :: thesis: verum
proof
thus ( X2 is SubSpace of X1 implies X1 meet X2 = TopStruct(# the carrier of X2, the topology of X2 #) ) :: thesis: ( X1 meet X2 = TopStruct(# the carrier of X2, the topology of X2 #) implies X2 is SubSpace of X1 )
proof
assume X2 is SubSpace of X1 ; :: thesis: X1 meet X2 = TopStruct(# the carrier of X2, the topology of X2 #)
then A3: the carrier of X1 /\ the carrier of X2 = the carrier of TopStruct(# the carrier of X2, the topology of X2 #) by BORSUK_1:1, XBOOLE_1:28;
TopStruct(# the carrier of X2, the topology of X2 #) is strict SubSpace of X by Lm3;
hence X1 meet X2 = TopStruct(# the carrier of X2, the topology of X2 #) by A1, A3, Def4; :: thesis: verum
end;
assume X1 meet X2 = TopStruct(# the carrier of X2, the topology of X2 #) ; :: thesis: X2 is SubSpace of X1
then the carrier of X1 /\ the carrier of X2 = the carrier of X2 by A1, Def4;
then the carrier of X2 c= the carrier of X1 by XBOOLE_1:17;
hence X2 is SubSpace of X1 by Th4; :: thesis: verum
end;