Documentation

BanachTarski.Rot

Here we define and develop basic properties of the parametrized family rot of rotations. We work with both this family and the corresponding family rot_iso of isometries.

It is much easier to work with the isometry representation as much as possible and convert back to matrices at the end (in particular, see lemma same_action).

theorem s2_nonzero (ax : โ†‘S2) :
โ†‘ax โ‰  0
noncomputable def ax_space (ax : โ†‘S2) :
Equations
Instances For
    noncomputable def orth (ax : โ†‘S2) :
    Equations
    Instances For
      instance orth_dim_2 (ax : โ†‘S2) :
      Fact (Module.finrank โ„ โ†ฅ(orth ax) = 2)
      def choice_set (ax : โ†‘S2) :
      Set โ†ฅ(orth ax)
      Equations
      Instances For
        theorem orth_nonempty (ax : โ†‘S2) :
        โˆƒ (y : โ†ฅ(orth ax)), y โˆˆ choice_set ax
        noncomputable def x_B_c (ax : โ†‘S2) :
        โ†‘(choice_set ax)
        Equations
        Instances For
          noncomputable def x_B (ax : โ†‘S2) :
          โ†ฅ(orth ax)
          Equations
          Instances For
            theorem x_B_nz (ax : โ†‘S2) :
            noncomputable def tmp_basis (ax : โ†‘S2) :
            OrthonormalBasis (Fin 2) โ„ โ†ฅ(orth ax)
            Equations
            Instances For
              noncomputable def plane_o (ax : โ†‘S2) :
              Orientation โ„ (โ†ฅ(orth ax)) (Fin 2)
              Equations
              Instances For
                noncomputable def orth_B (ax : โ†‘S2) :
                Module.Basis (Fin 2) โ„ โ†ฅ(orth ax)
                Equations
                Instances For
                  noncomputable def ax_B (ax : โ†‘S2) :
                  Module.Basis (Fin 1) โ„ โ†ฅ(ax_space ax)
                  Equations
                  Instances For
                    noncomputable def rot_iso_plane_equiv (ax : โ†‘S2) (ฮธ : โ„) :
                    โ†ฅ(orth ax) โ‰ƒโ‚—แตข[โ„] โ†ฅ(orth ax)
                    Equations
                    Instances For
                      noncomputable def rot_iso_plane_to_st (ax : โ†‘S2) (ฮธ : โ„) :
                      โ†ฅ(orth ax) โ†’โ‚—แตข[โ„] โ†ฅ(orth ax)
                      Equations
                      Instances For
                        noncomputable def operp (ax : โ†‘S2) (v : R3) :
                        โ†ฅ(orth ax)
                        Equations
                        Instances For
                          noncomputable def spar (ax : โ†‘S2) (v : R3) :
                          Equations
                          Instances For
                            theorem operp_add {u v : R3} (ax : โ†‘S2) :
                            operp ax (u + v) = operp ax u + operp ax v
                            theorem spar_add {u v : R3} (ax : โ†‘S2) :
                            spar ax (u + v) = spar ax u + spar ax v
                            theorem operp_spar {v : R3} (ax : โ†‘S2) :
                            operp ax (spar ax v) = 0
                            theorem spar_spar {v : R3} (ax : โ†‘S2) :
                            spar ax (spar ax v) = spar ax v
                            theorem spar_operp {v : R3} (ax : โ†‘S2) :
                            spar ax โ†‘(operp ax v) = 0
                            theorem spar_of_orth (ax : โ†‘S2) (x : R3) :
                            x โˆˆ orth ax โ†’ spar ax x = 0
                            theorem spar_of_ax_space (ax : โ†‘S2) (x : R3) :
                            x โˆˆ ax_space ax โ†’ spar ax x = x
                            theorem operp_of_ax_space (ax : โ†‘S2) (x : R3) :
                            x โˆˆ ax_space ax โ†’ operp ax x = 0
                            theorem rips_add {S T : โ„} (ax : โ†‘S2) (v : โ†ฅ(orth ax)) :
                            noncomputable def up (ax : โ†‘S2) :
                            Equations
                            Instances For
                              theorem up_mem (ax : โ†‘S2) (v : โ†ฅ(orth ax)) :
                              (up ax) v โˆˆ orth ax
                              theorem operp_up (ax : โ†‘S2) (v : โ†ฅ(orth ax)) :
                              operp ax ((up ax) v) = v
                              theorem operp_up_2 (ax : โ†‘S2) (v : โ†ฅ(orth ax)) :
                              operp ax โ†‘v = v
                              theorem spar_up_2 (ax : โ†‘S2) (v : โ†ฅ(orth ax)) :
                              spar ax โ†‘v = 0
                              theorem spar_up_rot (ax : โ†‘S2) (v : โ†ฅ(orth ax)) :
                              spar ax ((up ax) v) = 0
                              theorem el_by_parts (ax : โ†‘S2) (x : R3) :
                              x = โ†‘(operp ax x) + spar ax x
                              noncomputable def ang_diff (axis : โ†‘S2) (s t : R3) :
                              Equations
                              Instances For
                                noncomputable def rot_by_parts (ax : โ†‘S2) (ฮธ : โ„) (v : R3) :
                                Equations
                                Instances For
                                  theorem rot_by_parts_comp {x : R3} (ax : โ†‘S2) (ฮธ ฯ„ : โ„) :
                                  rot_by_parts ax ฮธ (rot_by_parts ax ฯ„ x) = rot_by_parts ax (ฮธ + ฯ„) x
                                  noncomputable def rot_iso (ax : โ†‘S2) (ฮธ : โ„) :
                                  Equations
                                  • rot_iso ax ฮธ = { toFun := rot_by_parts ax ฮธ, map_add' := โ‹ฏ, map_smul' := โ‹ฏ, invFun := rot_by_parts ax (-ฮธ), left_inv := โ‹ฏ, right_inv := โ‹ฏ, norm_map' := โ‹ฏ }
                                  Instances For
                                    theorem rot_iso_comp {x : R3} (ax : โ†‘S2) (ฮธ ฯ„ : โ„) :
                                    (rot_iso ax ฮธ) ((rot_iso ax ฯ„) x) = (rot_iso ax (ฮธ + ฯ„)) x
                                    theorem rot_iso_fixed_back (axis : โ†‘S2) (v : R3) (k : โ„ค) :
                                    (rot_iso axis (2 * Real.pi * โ†‘k)) v = v
                                    theorem triv_rot_iso (ax : โ†‘S2) :
                                    rot_iso ax 0 = 1
                                    def mod_dim :
                                    Fin 2 โ†’ Type
                                    Equations
                                    Instances For
                                      noncomputable def submods (ax : โ†‘S2) :
                                      Equations
                                      Instances For
                                        noncomputable def sm_bases (ax : โ†‘S2) (i : Fin 2) :
                                        Module.Basis (mod_dim i) โ„ โ†ฅ(submods ax i)
                                        Equations
                                        Instances For
                                          theorem hf {ฮธ : โ„} (ax : โ†‘S2) (i : Fin 2) :
                                          Set.MapsTo โ‡‘โ†‘(rot_iso ax ฮธ).toLinearEquiv โ†‘(submods ax i) โ†‘(submods ax i)
                                          Equations
                                          Instances For
                                            noncomputable def rot_mat_block_1 (ax : โ†‘S2) (ฮธ : โ„) :
                                            Equations
                                            Instances For
                                              noncomputable def rot_mat_block_2 (ax : โ†‘S2) (ฮธ : โ„) :
                                              Equations
                                              Instances For
                                                theorem rot_mat_block_prop (ax : โ†‘S2) (ฮธ : โ„) :
                                                rot_mat_block_1 ax ฮธ = rot_mat_block_2 ax ฮธ
                                                theorem block_1_lem {ฮธ : โ„} (ax : โ†‘S2) :
                                                (LinearMap.toMatrix (sm_bases ax 0) (sm_bases ax 0)) ((โ†‘(rot_iso ax ฮธ).toLinearEquiv).restrict โ‹ฏ) = !![Real.cos ฮธ, -Real.sin ฮธ; Real.sin ฮธ, Real.cos ฮธ]
                                                theorem block_2_lem {ฮธ : โ„} (ax : โ†‘S2) :
                                                (LinearMap.toMatrix (sm_bases ax 1) (sm_bases ax 1)) ((โ†‘(rot_iso ax ฮธ).toLinearEquiv).restrict โ‹ฏ) = !![1]
                                                theorem block_repr (ax : โ†‘S2) (ฮธ : โ„) :
                                                (LinearMap.toMatrix (โ‹ฏ.collectedBasis (sm_bases ax)) (โ‹ฏ.collectedBasis (sm_bases ax))) โ†‘(rot_iso ax ฮธ).toLinearEquiv = Matrix.blockDiagonal' fun (i : Fin 2) => match i with | โŸจ0, isLtโŸฉ => !![Real.cos ฮธ, -Real.sin ฮธ; Real.sin ฮธ, Real.cos ฮธ] | โŸจ1, isLtโŸฉ => !![1]
                                                noncomputable def rot_mat_inner (ฮธ : โ„) :
                                                Equations
                                                Instances For
                                                  noncomputable def rot_mat_inner_trans (ฮธ : โ„) :
                                                  Equations
                                                  Instances For
                                                    noncomputable def finToSigma :
                                                    Fin 3 โ‰ƒ (i : Fin 2) ร— mod_dim i
                                                    Equations
                                                    Instances For
                                                      noncomputable def COB_MB (ax : โ†‘S2) :
                                                      Equations
                                                      Instances For
                                                        noncomputable def COB (ax : โ†‘S2) :
                                                        Equations
                                                        Instances For
                                                          theorem COB_to_basis (ax : โ†‘S2) :
                                                          noncomputable def COB_mat (ax : โ†‘S2) :
                                                          Equations
                                                          Instances For
                                                            noncomputable def rot_mat (ax : โ†‘S2) (ฮธ : โ„) :
                                                            Equations
                                                            Instances For
                                                              theorem rot_mat_is_special (ax : โ†‘S2) (ฮธ : โ„) :
                                                              rot_mat ax ฮธ โˆˆ SO3
                                                              noncomputable def rot (ax : โ†‘S2) (ฮธ : โ„) :
                                                              โ†ฅSO3
                                                              Equations
                                                              Instances For
                                                                theorem triv_rot (ax : โ†‘S2) :
                                                                rot ax 0 = 1
                                                                theorem rot_mat_comp_add (ax : โ†‘S2) (s t : โ„) :
                                                                rot_mat ax s * rot_mat ax t = rot_mat ax (s + t)
                                                                theorem rot_comp_add (ax : โ†‘S2) (s t : โ„) :
                                                                f (rot ax s) โˆ˜ f (rot ax t) = f (rot ax (s + t))
                                                                theorem rot_pow_lemma (ax : โ†‘S2) (ฮธ : โ„) (N : โ„•) :
                                                                (f (rot ax ฮธ))^[N] = f (rot ax (โ†‘N * ฮธ))
                                                                theorem rot_iso_pow_lemma (ax : โ†‘S2) (ฮธ : โ„) (N : โ„•) :
                                                                (โ‡‘(rot_iso ax ฮธ))^[N] = โ‡‘(rot_iso ax (โ†‘N * ฮธ))
                                                                theorem same_action {T : โ„} (ax : โ†‘S2) (s : R3) :
                                                                rot ax T โ€ข s = (rot_iso ax T) s