Skip to content

A minimal, law-driven implementation of core algebraic structures in Scala, connecting modules, algebras, representations, and linear maps.

License

Notifications You must be signed in to change notification settings

SakigamiYang/algebrix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Algebrix

Algebrix is a personal practice project for implementing algebraic abstractions in Scala 3 using a typeclass-oriented design.

The goal is not to build a production-ready math library, but to practice modeling algebraic structures cleanly and explicitly.


What this project is

  • A Scala 3 playground for abstract algebra
  • Focused on Semigroup → Ring → Module → Action
  • Uses modern Scala 3 features (given, using, extension methods)
  • Emphasizes clarity over performance or completeness

What this project is not

  • Not a general-purpose algebra library
  • Not API-stable or extensible
  • Not optimized or benchmark-driven
  • Not intended for third-party use

Project Structure (high level)

  • algebrix.core – algebraic typeclasses, laws, and syntax
  • algebrix.structures – concrete mathematical objects
  • algebrix.instances – instances for existing Scala / Java types
  • algebrix.examples – small demos and sanity checks

See docs/ARCHITECTURE.md for details.


Motivation

This project exists purely as a learning exercise:

  • to connect mathematical abstractions with Scala’s type system
  • to understand how algebraic hierarchies compose in real code
  • to explore Scala 3’s expressiveness for this style of modeling

Status

Actively evolving, structure-first, experiment-driven.

About

A minimal, law-driven implementation of core algebraic structures in Scala, connecting modules, algebras, representations, and linear maps.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages