Documentation

Analysis.Section_3_4

Аналіз I, Глава 3.4 #

Я (пр.перекл. Терренс Тао) намагався зробити переклад якомога точнішим перефразуванням оригінального тексту. Коли є вибір між більш ідіоматичним рішенням Lean та більш точним перекладом, я зазвичай обирав останній. Зокрема, будуть місця, де код Lean можна було б "підбуцнути", щоб зробити його більш елегантним та ідіоматичним, але я свідомо уникав цього вибору.

Основні конструкції та результати цього розділу:

@[reducible, inline]
abbrev Chapter3.SetTheory.Set.image [SetTheory] {X Y : Set} (f : X.toSubtypeY.toSubtype) (S : Set) :

Визначення 3.4.1. Цікаво, що визначення не вимагає, щоб S було підмножиною X.

Equations
Instances For
    theorem Chapter3.SetTheory.Set.mem_image [SetTheory] {X Y : Set} (f : X.toSubtypeY.toSubtype) (S : Set) (y : Object) :
    y image f S ∃ (x : X.toSubtype), x S (f x) = y

    Визначення 3.4.1

    theorem Chapter3.SetTheory.Set.image_eq_specify [SetTheory] {X Y : Set} (f : X.toSubtypeY.toSubtype) (S : Set) :
    image f S = Y.specify fun (y : Y.toSubtype) => ∃ (x : X.toSubtype), x S f x = y

    Альтернативне визначення зображення використовуючи аксіоми специфікації

    theorem Chapter3.SetTheory.Set.image_eq_image [SetTheory] {X Y : Set} (f : X.toSubtypeY.toSubtype) (S : Set) :
    {x : Object | x image f S} = Subtype.val '' (f '' {x : X.toSubtype | x S})

    Зв'язок з поняттям відображення в Mathlib. Зверніть увагу на необхідність використання приведення Subtype.val для забезпечення узгодженості всіх типів.

    @[reducible, inline]

    Приклад 3.4.2

    Equations
    Instances For
      theorem Chapter3.SetTheory.Set.mem_image_of_eval [SetTheory] {X Y : Set} (f : X.toSubtypeY.toSubtype) (S : Set) (x : X.toSubtype) :
      x S(f x) image f S
      theorem Chapter3.SetTheory.Set.mem_image_of_eval_counter [SetTheory] :
      ∃ (X : Set) (Y : Set) (f : X.toSubtypeY.toSubtype) (S : Set) (x : X.toSubtype), ¬((f x) image f Sx S)
      @[reducible, inline]

      Визначення 3.4.4 (прообрази). Знову ж таки, не обов'язково, щоб U було підмножиною Y.

      Equations
      Instances For
        theorem Chapter3.SetTheory.Set.mem_preimage [SetTheory] {X Y : Set} (f : X.toSubtypeY.toSubtype) (U : Set) (x : X.toSubtype) :
        x preimage f U (f x) U

        Звя'зок із Mathlib-овським поняттям прообразу.

        @[reducible, inline]

        Я не зміг зробити це перетворення через технічну проблему semiOutParam.

        Equations
        Instances For
          @[reducible, inline]

          Приклад 3.4.8

          Equations
          Instances For
            @[reducible, inline]
            noncomputable abbrev Chapter3.f_3_4_8_b [SetTheory] :
            Equations
            Instances For
              @[reducible, inline]
              noncomputable abbrev Chapter3.f_3_4_8_c [SetTheory] :
              Equations
              Instances For
                @[reducible, inline]
                Equations
                Instances For
                  @[reducible, inline]

                  Лема 3.4.9. Тут потрібно надати відповідне визначення множини потужностей.

                  Equations
                  Instances For

                    Аксіома 3.11 (Об'днання)

                    Зв'язок із Mathlib-овським об'єднанням

                    @[reducible, inline]

                    Індексоване об'єднання

                    Equations
                    Instances For
                      theorem Chapter3.SetTheory.Set.mem_iUnion [SetTheory] {I : Set} (A : I.toSubtypeSet) (x : Object) :
                      x I.iUnion A ∃ (α : I.toSubtype), x A α
                      @[reducible, inline]
                      Equations
                      Instances For
                        theorem Chapter3.SetTheory.Set.iUnion_eq [SetTheory] (I : Set) (A : I.toSubtypeSet) :
                        {x : Object | x I.iUnion A} = ⋃ (α : I.toSubtype), {x : Object | x A α}

                        Зв'язок із Mathlib-овським індексованим об'єднанням

                        @[reducible, inline]
                        noncomputable abbrev Chapter3.SetTheory.Set.nonempty_choose [SetTheory] {I : Set} (hI : I ) :

                        Індексований перетин

                        Equations
                        Instances For
                          @[reducible, inline]
                          Equations
                          Instances For
                            @[reducible, inline]
                            noncomputable abbrev Chapter3.SetTheory.Set.iInter [SetTheory] (I : Set) (hI : I ) (A : I.toSubtypeSet) :
                            Equations
                            Instances For
                              theorem Chapter3.SetTheory.Set.mem_iInter [SetTheory] {I : Set} (hI : I ) (A : I.toSubtypeSet) (x : Object) :
                              x I.iInter hI A ∀ (α : I.toSubtype), x A α
                              theorem Chapter3.SetTheory.Set.preimage_eq_image_of_inv [SetTheory] {X Y V : Set} (f : X.toSubtypeY.toSubtype) (f_inv : Y.toSubtypeX.toSubtype) (hf : Function.LeftInverse f_inv f Function.RightInverse f_inv f) (hV : V Y) :
                              image f_inv V = preimage f V

                              Вправа 3.4.1

                              theorem Chapter3.SetTheory.Set.image_of_inter [SetTheory] {X Y : Set} (f : X.toSubtypeY.toSubtype) (A B : Set) :
                              image f (A B) image f A image f B

                              Вправа 3.4.3. Also state and prove an assertion regarding whether can be improved to =.

                              theorem Chapter3.SetTheory.Set.image_of_diff [SetTheory] {X Y : Set} (f : X.toSubtypeY.toSubtype) (A B : Set) :
                              image f A \ image f B image f (A \ B)
                              theorem Chapter3.SetTheory.Set.image_of_union [SetTheory] {X Y : Set} (f : X.toSubtypeY.toSubtype) (A B : Set) :
                              image f (A B) = image f A image f B

                              Вправа 3.4.4

                              Вправа 3.4.5

                              Вправа 3.4.5

                              theorem Chapter3.SetTheory.Set.partial_functions [SetTheory] {X Y : Set} :
                              ∃ (Z : Set), ∀ (F : Object), F Z ∃ (X' : Set) (Y' : Set), X' X Y' Y ∃ (f : X'.toSubtypeY'.toSubtype), F = object_of f

                              Вправа 3.4.7

                              theorem Chapter3.SetTheory.Set.union_pair_exists [SetTheory] (X Y : Set) :
                              ∃ (Z : Set), ∀ (x : Object), x Z x X x Y

                              Вправа 3.4.8. Мета цієї вправи - довести її твердження без використання операції попарного об'єднання .

                              theorem Chapter3.SetTheory.Set.iInter'_insensitive [SetTheory] {I : Set} (β β' : I.toSubtype) (A : I.toSubtypeSet) :
                              I.iInter' β A = I.iInter' β' A

                              Вправа 3.4.9

                              theorem Chapter3.SetTheory.Set.union_iUnion [SetTheory] {I J : Set} (A : (I J).toSubtypeSet) :
                              ((I.iUnion fun (α : I.toSubtype) => A α, ) J.iUnion fun (α : J.toSubtype) => A α, ) = (I J).iUnion A

                              Вправа 3.4.10

                              theorem Chapter3.SetTheory.Set.union_of_nonempty [SetTheory] {I J : Set} (hI : I ) (hJ : J ) :
                              I J

                              Вправа 3.4.10

                              theorem Chapter3.SetTheory.Set.inter_iInter [SetTheory] {I J : Set} (hI : I ) (hJ : J ) (A : (I J).toSubtypeSet) :
                              ((I.iInter hI fun (α : I.toSubtype) => A α, ) J.iInter hJ fun (α : J.toSubtype) => A α, ) = (I J).iInter A

                              Вправа 3.4.10

                              theorem Chapter3.SetTheory.Set.compl_iUnion [SetTheory] {X I : Set} (hI : I ) (A : I.toSubtypeSet) :
                              X \ I.iUnion A = I.iInter hI fun (α : I.toSubtype) => X \ A α

                              Вправа 3.4.11

                              theorem Chapter3.SetTheory.Set.compl_iInter [SetTheory] {X I : Set} (hI : I ) (A : I.toSubtypeSet) :
                              X \ I.iInter hI A = I.iUnion fun (α : I.toSubtype) => X \ A α

                              Вправа 3.4.11