Giter Site home page Giter Site logo

pradneshsanderan / tool-to-explore-monoidal-categories Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 3.12 MB

A tool used to validate whether a given multiplication table (representing a category ass defined in category theory) is a valid finite monoidal category or not

Java 100.00%
category-theory finite-state-machine java monoidal-categories

tool-to-explore-monoidal-categories's Introduction

Tool To Explore Finite Monoidal Categories

About

Category theory is the general theory of mathematical structures. Monoidal categories is a subsection of category theory which generalises finite monoids. While monoidal categories are more generally represented as a collection of objects, morphisms and a tensor product, if we regard them as a combinatorial object, they can be represented purely in terms of a multiplication table. This tool's function is to validate whether a given multiplication table is a valid monoidal category or not.

Technology Used

  • Java
  • Java Swing

How It Works

The tool first queries the user for the size of the table before displaying 2 tables for the user to fill with the categories multiplication table and the tensor product table. The tool then checks if the category satisfies the category properties and monoidal properties before displaying the results.

Future Work

  • User testing and evaluation: Not much user testing was carried out due to time constraints. A more thorough evaluation with looser time constraints would result in a more user-friendly product.
  • Updating the User Interface to React.JS: Integrating React.JS as the user interface instead of Java Swing would allow the tool to be used as a web app and have a more responsive, interactive and aesthetically pleasing interface.
  • Extending the project to accept and validate finite 2-Categories: A finite 2-category is a category enriched over the category of categories, meaning that for every pair of objects in the category, there is a category of morphisms between them. Besides the composition of morphisms, the finite 2-category has the horizontal composition property which allows 2 parallel morphisms to be composed, subject to certain coherence conditions such as the interchange law. finite 2-Categories can be thought of as a more structured finite monoidal category hence it would make sense to extend the tool to accept and validate these categories also
  • Extend the project to check whether two elements of a given multiplication table are adjoint: The project can be extended to check if 2 multiplication tables are adjoint by checking if there exist 2 morphisms that satisfy the adjointness properties. This could be done by implementing an algorithm or by using category-theoretic methods such as the Hom-Tensor adjunction theorem.
  • Extending the project to complete partially filled tables: The project can be extended to check if a partially filled table can be filled to be a valid category and if so, should be able to display the filled table.

Diagrams

The GUI queries the user for the size of the tables

The GUI displays 2 tables for the user to fill up. The top table is to be filled up with the category multiplication table and the bottom table is to be filled up with the tensor product table.

The tool takes the tables as input and validates them based on the category properties and monoidal properties. It then outputs the results below.

tool-to-explore-monoidal-categories's People

Contributors

pradneshsanderan avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.