hyperlattices

2023-10-21

Generalized Lattice algebraic datatypes, incl., LATTICE, HYPERLATTICE, PROBABILISTIC-LATTICE, and PROBABILISTIC-HYPERLATTICE.

Upstream URL

github.com/thephoeron/hyperlattices

Author

"the Phoeron" Colin J.E. Lupton

License

MIT
README

HYPERLATTICES

Quicklisp MIT License

Generalized Lattice data-types for Common Lisp, including Algebraic Lattices, Hyperlattices, and Probabilistic Hyperlattices, which intends to follow the packages-as-types convention (as defined by the BAPHOMET library).

:warning: This library is a work in progress. Things will be added. Things will be removed. Things will change. Things will blow up. Embrace the uncertainty.

Overview

Class Hierarchy

graph TB
    A[GENERALIZED-LATTICE] --> B[LATTICE]
    B --> C[HYPERLATTICE]
    C --> D[PROBABILISTIC-HYPERLATTICE]
    B --> E[PROBABILISTIC-LATTICE]
    E --> D
    F[POSET] --> A

Generic Function API

supremum

infimum

join

meet

element-of

relation-of

supremum-of

infimum-of

member-p

closure

cover

dimension

chain

antichain

slice

merge

longest-chain-p

largest-antichain-p

homomorphic-p

isomorphic-p

congruent-p

Documentation

Documentation for the hyperlattices library is available at:

https://thephoeron.github.io/hyperlattices/

To Do

  • Add parachute test suite scaffolding
  • Implement unit tests for all type classes and methods
  • Implement LATTICE class and functional interface
  • Implement HYPERLATTICE class and functional interface
  • Implement PROBABILISTIC-HYPERLATTICE class and functional interface
  • Implement GENERALIZED-LATTICE class and dispatching methods
  • Implement PROBABILISTIC-LATTICE class and specialized methods
  • Implement Generic Function API over GENERALIZED-LATTICE class
  • Refactor LATTICE class and functions to inherit from GENERALIZED-LATTICE class and use Generic Function API
  • Refactor HYPERLATTICE class and functions to inherit from LATTICE class and use Generic Function API
  • Refactor PROBABILISTIC-HYPERLATTICE class and functions to inherit from HYPERLATTICE and PROBABILISTIC-LATTICE classes and use Generic Function API
  • Refactor library to use BAPHOMET package-as-type convention
  • Publish hyperlattices on Ultralisp
  • Publish hyperlattices on Quicklisp

Supported Implementations

The hyperlattices library has been developed and tested on macOS for the following Common Lisp implementations:

Credits

Authors

Created with

References

General Lattice Theory, Second Edition, by George A. Grätzer. 2003, Birkhäuser Verlag Basel/Switzerland

Introduction to Lattice Theory with Computer Science Applications, by Vijay K. Garg. 2015, John Wiley & Sons, Inc.

Probabilistic Lattices: With Applications to Psychology, by Louis Narens. Advanced Series on Mathematical Psychology, Vol. 5. 2015, World Scientific Publishing Co.

Theory of Nonlinear Lattices, Second Enlarged Edition, by Morikazu Toda. Springer Series in Solid-State Sciences, Vol. 20. 1989, Springer-Verlag Berlin Heidelberg.

License

Copyright © 2023, "the Phoeron" Colin J.E. Lupton.

Released under the MIT License. See LICENSE for details.

Dependencies (5)

  • alexandria
  • closer-mop
  • parachute
  • serapeum
  • trivial-types

Dependents (0)

    • GitHub
    • Quicklisp