theorem
DiscreteGroups.point_group_preserves_lattice
(G : Subgroup M₂)
(A : E2 ≃ₗᵢ[ℝ] E2)
(hA : A ∈ pointGroupSet G)
(v : E2)
(hv : v ∈ translationLattice G)
:
theorem
DiscreteGroups.discrete_subgroup_R2_classification
(G : AddSubgroup E2)
[DiscreteTopology ↥G]
:
G = ⊥ ∨ (∃ (α : E2), α ≠ 0 ∧ G = AddSubgroup.zmultiples α) ∨ ∃ (a : E2) (b : E2), LinearIndependent ℝ ![a, b] ∧ G = AddSubgroup.zmultiples a ⊔ AddSubgroup.zmultiples b