Documentation

BanachTarski.GeometricUtils

def IccT :

Here we define orbit, the Bad set, and the parametrized families rot and rot_iso (defined and developed in the module Rot.lean) and skew_rot Crucially we prove that there are only countably many "Bad" "rot"s and "skew_rot"s. We work with rot_iso whenever possible, and only convert to a statement about rot at the end (using the same_action lemma).

We also define as well as some geometric objects used by the main theorems like ball and cone, and the group G3 of isometries.

We also prove some "obvious" things like that SO(3) is contained in G3 (the group of isometries) and some lemmas about cardinality of sets.

Equations
Instances For
    noncomputable def to_s2_r3 :
    IccT โ†’ R3
    Equations
    Instances For
      def is_s2 (ฮธ : IccT) :
      Equations
      • โ‹ฏ = โ‹ฏ
      Instances For
        noncomputable def to_s2 :
        IccT โ†’ โ†‘S2
        Equations
        Instances For
          @[reducible, inline]
          abbrev MAT1 :
          Equations
          Instances For
            def v2m (v : R3_raw) :
            Equations
            • v2m v = !![v 0; v 1; v 2]
            Instances For
              theorem so3_cancel_lem {g : โ†ฅSO3} :
              (โ†‘g).transpose * โ†‘g = 1
              theorem triv_so3 :
              f 1 = fun (x : R3) => x
              def orbit {X : Type u_1} {G : Type u_2} [Group G] [MulAction G X] (g : G) (S : Set X) :
              Set X
              Equations
              Instances For
                theorem rot_containment_S2 {axis : โ†‘S2} {ฮธ : โ„} :
                f (rot axis ฮธ) '' S2 โІ S2
                theorem rot_containment_general {S : Set R3} (axis : โ†‘S2) (subset_of_s2 : S โІ S2) (r : โ„) :
                orbit (rot axis r) S โІ S2
                def BadEl {X : Type u_1} {G : Type u_2} [Group G] [MulAction G X] (g : G) (S : Set X) :
                Equations
                Instances For
                  def Bad {X : Type u_1} {G : Type u_2} [Group G] [MulAction G X] (F : โ„ โ†’ G) (S : Set X) :
                  Equations
                  Instances For
                    theorem collapse_iter {X : Type u_1} {G : Type u_2} [Group G] [MulAction G X] (g h : G) (n : โ„•) :
                    theorem conj_bad_el {X : Type u_1} {G : Type u_2} [Group G] [MulAction G X] (g h : G) (S : Set X) :
                    BadEl g S โ†” BadEl (h * g * hโปยน) (f h '' S)
                    def BadAtN {X : Type u_1} {G : Type u_2} [Group G] [MulAction G X] (F : โ„ โ†’ G) (S : Set X) (s t : โ†‘S) (n : โ„•) :
                    Equations
                    Instances For
                      def BadAtN_rot (ax : โ†‘S2) (S : Set R3) (s t : โ†‘S) (n : โ„•) :
                      Equations
                      Instances For
                        def BadAtN_rot_iso (ax : โ†‘S2) (S : Set R3) (s t : โ†‘S) (n : โ„•) :
                        Equations
                        Instances For
                          theorem rot_iso_comp_add (ax : โ†‘S2) (t1 t2 : โ„) :
                          โ‡‘(rot_iso ax t1) โˆ˜ โ‡‘(rot_iso ax t2) = โ‡‘(rot_iso ax (t1 + t2))
                          theorem rot_iso_power_lemma (axis : โ†‘S2) (r : โ„) (n : โ„•) :
                          (โ‡‘(rot_iso axis r))^[n] = โ‡‘(rot_iso axis (โ†‘n * r))
                          theorem rot_iso_fixed_gen {t : โ„} (axis : โ†‘S2) (v w : R3) :
                          operp axis v โ‰  0 โˆง (rot_iso axis t) v = w โ†’ โˆƒ (k : โ„ค), t = (ang_diff axis v w).toReal + โ†‘k * 2 * Real.pi
                          theorem rot_iso_fixed {t : โ„} (axis : โ†‘S2) (v : R3) :
                          operp axis v โ‰  0 โˆง (rot_iso axis t) v = v โ†’ โˆƒ (k : โ„ค), t = โ†‘k * 2 * Real.pi
                          theorem BadAtN_rot_iso_equiv (axis : โ†‘S2) (S : Set R3) (s t : โ†‘S) (n : โ„•) :
                          S โІ S2 โ†’ operp axis โ†‘s โ‰  0 โ†’ BadAtN_rot_iso axis S s t n โІ {ฮธ : โ„ | โˆƒ (k : โ„ค), (โ†‘n + 1) * ฮธ = โ†‘k * (2 * Real.pi) + (ang_diff axis โ†‘s โ†‘t).toReal}
                          theorem same_bad (ax : โ†‘S2) (S : Set R3) (s t : โ†‘S) (n : โ„•) :
                          BadAtN_rot ax S s t n = BadAtN_rot_iso ax S s t n
                          def BadAt {X : Type u_1} {G : Type u_2} [Group G] [MulAction G X] (F : โ„ โ†’ G) (S : Set X) (s t : โ†‘S) :
                          Equations
                          Instances For
                            theorem bad_as_union {X : Type u_1} {G : Type u_2} [Group G] [MulAction G X] (F : โ„ โ†’ G) (S : Set X) :
                            Bad F S = โ‹ƒ (s : โ†‘S), โ‹ƒ (t : โ†‘S), BadAt F S s t
                            theorem bad_as_union_rot (axis : โ†‘S2) (S : Set R3) :
                            S โІ S2 โ†’ Bad (rot axis) S = โ‹ƒ (s : โ†‘S), โ‹ƒ (t : โ†‘S), โ‹ƒ (n : โ„•), BadAtN (rot axis) S s t n
                            theorem BadAtN_rot_iso_countable {n : โ„•} (axis : โ†‘S2) (S : Set R3) (s t : โ†‘S) :
                            S โІ S2 โˆง โ†‘axis โˆ‰ S โˆง -โ†‘axis โˆ‰ S โ†’ (BadAtN_rot_iso axis S s t n).Countable
                            theorem countable_bad_rots (S : Set R3) (axis : โ†‘S2) :
                            S โІ S2 โˆง Countable โ†‘S โˆง โ†‘axis โˆ‰ S โˆง -โ†‘axis โˆ‰ S โ†’ Countable โ†‘(Bad (rot axis) S)
                            def ToEquivSO3 (g : โ†ฅSO3) :
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              @[reducible, inline]
                              abbrev G3 :
                              Equations
                              Instances For
                                theorem so3_diff_lin (g : โ†ฅSO3) (x y : R3) :
                                g โ€ข x - g โ€ข y = g โ€ข (x - y)
                                def SO3_into_G3 :
                                โ†ฅSO3 โ†’ G3
                                Equations
                                Instances For
                                  Equations
                                  Instances For
                                    def hmo :
                                    โ†ฅSO3 โ†’* โ†ฅSO3_in_G3
                                    Equations
                                    Instances For
                                      Equations
                                      def B3 :
                                      Equations
                                      Instances For
                                        def B3min :
                                        Equations
                                        Instances For
                                          Equations
                                          Instances For
                                            def cone (S : S2_sub) :
                                            Equations
                                            Instances For
                                              theorem trunc_cone_lemma (S : S2_sub) (x : R3) :
                                              x โˆˆ trunc_cone S โ†’ normed x โˆˆ โ†‘S
                                              theorem disj_lemma (n : โ„•) (fam : Fin n โ†’ S2_sub) (disj : โˆ€ (i j : Fin n), i โ‰  j โ†’ Disjoint โ†‘(fam i) โ†‘(fam j)) (i j : Fin n) :
                                              i โ‰  j โ†’ Disjoint (trunc_cone (fam i)) (trunc_cone (fam j))
                                              theorem cover_lemma (n : โ„•) (fam : Fin n โ†’ S2_sub) (T : S2_sub) (cover : โ‹ƒ (i : Fin n), โ†‘(fam i) = โ†‘T) :
                                              โ‹ƒ (i : Fin n), trunc_cone (fam i) = trunc_cone T
                                              theorem map_lemma (n : โ„•) (map : Fin n โ†’ โ†ฅSO3) (famA famB : Fin n โ†’ S2_sub) (map_prop : โˆ€ (i : Fin n), f (map i) '' โ†‘(famA i) = โ†‘(famB i)) (i : Fin n) :
                                              f (map i) '' trunc_cone (famA i) = trunc_cone (famB i)
                                              noncomputable def skew_rot (ฮธ : โ„) :
                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              Instances For
                                                theorem skew_rot_comp_add (t1 t2 : โ„) :
                                                โ‡‘(skew_rot t1) โˆ˜ โ‡‘(skew_rot t2) = โ‡‘(skew_rot (t1 + t2))
                                                theorem skew_rot_power_lemma {n : โ„•} (r : โ„) :
                                                (โ‡‘(skew_rot r))^[n] = โ‡‘(skew_rot (โ†‘n * r))
                                                theorem BadAtN_skew_rot {n : โ„•} :
                                                BadAtN skew_rot {origin} origin_in_s origin_in_s n = {ฮธ : โ„ | โˆƒ (k : โ„ค), (โ†‘n + 1) * ฮธ / (2 * Real.pi) = โ†‘k}