2020年6月23日火曜日

学習環境

解析入門(中) (松坂和夫 数学入門シリーズ 5) (松坂 和夫(著)、岩波書店)の第12章(距離空間の世界)、12.1(位相の基礎的諸概念)、問題8の解答を求めてみる。


  1. x を距離空間 X の部分集合 A と B の共通部分の任意の内点とする。

    x ( A B ) i

    このとき、 ある正の実数

    r > 0

    が存在して、

    B ( x ; r ) A B

    よって、

    B ( x ; r ) A B ( x ; r ) B

    ゆえに、

    x A i x B i

    すなわち

    x A i B i

    なので、

    ( A B ) i A i B i

    が成り立つ。

    x を A の内部と B の内部の共通部分の任意の元とする。

    x A i B i x A i x B i

    このとき、 ある2つの正の実数

    r 1 > 0 , r 2 > 0

    が存在して、

    B ( x ; r 1 ) A B ( x ; r 2 ) B

    ここで

    r = min { r 1 , r 2 }

    とおけば、

    B ( x ; r ) A B ( x ; r ) B
    B ( x ; r ) A B

    よって、 x は A と B の共通部分の内点である。

    x ( A B ) i

    ゆえに

    ( A B ) i A i B i

    以上より、

    ( A B ) i = A i B i

    が成り立つ。

    (証明終)

    x を A と B の和集合の閉包の任意の元とする。

    x A B -

    このとき任意の正の実数

    ε > 0

    に対して

    B ( x ; ε ) ( A B ) = ϕ
    ( B ( x ; ε ) A ) ( B ( x ; ε ) B ) ϕ
    B ( x ; ε ) A ϕ B ( x ; ε ) B ϕ

    よって、

    x A - x B -
    x A - B -

    ゆえに、

    A B - A - B -

    また、 x を A の閉包と B の閉包の共通部分の任意の元とする。

    x A - B -
    x A - x B -

    このとき、 任意の正の実数

    ε > 0

    に対して、

    B ( x ; ε ) A ϕ B ( x ; ε ) B ϕ
    B ( x ; ε ) ( A B ) ϕ

    よって、

    x A B -

    ゆえに

    A B - A - B -

    以上より、

    A B - = A - B -

    (証明終)

コード

#!/usr/bin/env python3
from unittest import TestCase, main
import random
from sympy import Interval, symbols

print('8.')


class Test(TestCase):
    def test_interior_intersect_closure_union(self):
        for _ in range(10):
            a0, a1, b0, b1 = [random.randrange(-10, 11) for _ in range(4)]
            A = Interval(a0, a1)
            B = Interval(b0, b1)
            self.assertEqual((A & B).interior, A.interior & B.interior)
            self.assertEqual((A | B).closure, A.closure | B.closure)
            A = Interval(a0, a1)
            B = Interval.Lopen(b0, b1)
            self.assertEqual((A & B).interior, A.interior & B.interior)
            self.assertEqual((A | B).closure, A.closure | B.closure)
            A = Interval(a0, a1)
            B = Interval.Ropen(b0, b1)
            self.assertEqual((A & B).interior, A.interior & B.interior)
            self.assertEqual((A | B).closure, A.closure | B.closure)
            A = Interval(a0, a1)
            B = Interval.open(b0, b1)
            self.assertEqual((A & B).interior, A.interior & B.interior)
            self.assertEqual((A | B).closure, A.closure | B.closure)
            A = Interval.Lopen(a0, a1)
            B = Interval.Lopen(b0, b1)
            self.assertEqual((A & B).interior, A.interior & B.interior)
            self.assertEqual((A | B).closure, A.closure | B.closure)
            A = Interval.Lopen(a0, a1)
            B = Interval.Ropen(b0, b1)
            self.assertEqual((A & B).interior, A.interior & B.interior)
            self.assertEqual((A | B).closure, A.closure | B.closure)
            A = Interval.Lopen(a0, a1)
            B = Interval.open(b0, b1)
            self.assertEqual((A & B).interior, A.interior & B.interior)
            self.assertEqual((A | B).closure, A.closure | B.closure)
            A = Interval.Ropen(a0, a1)
            B = Interval.Ropen(b0, b1)
            self.assertEqual((A & B).interior, A.interior & B.interior)
            self.assertEqual((A | B).closure, A.closure | B.closure)
            A = Interval.Ropen(a0, a1)
            B = Interval.open(b0, b1)
            self.assertEqual((A & B).interior, A.interior & B.interior)
            self.assertEqual((A | B).closure, A.closure | B.closure)
            A = Interval.open(a0, a1)
            B = Interval.open(b0, b1)
            self.assertEqual((A & B).interior, A.interior & B.interior)
            self.assertEqual((A | B).closure, A.closure | B.closure)


if __name__ == "__main__":
    main()

入出力結果(Zsh、PowerShell、Terminal、Jupyter(IPython))

% ./sample8.py -v
8.
test_interior_intersect_closure_union (__main__.Test) ... ok

----------------------------------------------------------------------
Ran 1 test in 1.247s

OK
%

0 コメント:

コメントを投稿