new: Added some algebraic structures

This commit is contained in:
Sayantan Santra 2024-02-07 15:08:03 -06:00
parent 522424f97f
commit a91eef1132
Signed by: SinTan1729
GPG key ID: EB3E68BFBA25C85F
2 changed files with 43 additions and 0 deletions

View file

@ -4,3 +4,5 @@ import «LeanTalkSP24».basics
import «LeanTalkSP24».basics2
import «LeanTalkSP24».infinitely_many_primes
import «LeanTalkSP24».polynomial_over_field_dim_one
import «LeanTalkSP24».alg_structures

View file

@ -0,0 +1,41 @@
import Mathlib.Data.Real.Basic
class Group₁ (α : Type _) where
mul : ααα
one : α
inv : αα
mul_assoc : ∀ x y z : α, mul (mul x y) z = mul x (mul y z)
mul_one : ∀ x : α, mul x one = x
one_mul : ∀ x : α, mul one x = x
mul_left_inv : ∀ x : α, mul (inv x) x = one
@[ext]
structure Point where
x :
y :
z :
namespace Point
def add (a b : Point) : Point :=
⟨a.x + b.x, a.y + b.y, a.z + b.z⟩
def neg (a : Point) : Point := ⟨-a.x, -a.y, -a.z⟩
def zero : Point := ⟨0,0,0⟩
instance add_group_point: Group₁ Point where
mul := add
one := zero
inv := neg
mul_assoc := by simp [add, add_assoc]
mul_one := by simp [add, zero]
one_mul := by simp [add, zero]
mul_left_inv := by simp [add, neg, zero]
end Point
instance hasMulGroup₁ {α : Type _} [Group₁ α] : Add α := ⟨Group₁.mul⟩
def v : Point := ⟨1,1,1⟩
#check v+v