hyperlattices
2023-10-21
Generalized Lattice algebraic datatypes, incl., LATTICE, HYPERLATTICE, PROBABILISTIC-LATTICE, and PROBABILISTIC-HYPERLATTICE.
HYPERLATTICES
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 fromGENERALIZED-LATTICE
class and use Generic Function API - Refactor
HYPERLATTICE
class and functions to inherit fromLATTICE
class and use Generic Function API - Refactor
PROBABILISTIC-HYPERLATTICE
class and functions to inherit fromHYPERLATTICE
andPROBABILISTIC-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:
- LispWorks 8.0.1 (64-bit)
- Allegro CL 10.1
- SBCL 2.3.4
- ABCL 1.9.2
- ECL 21.2.1
- CLISP 2.49.92
- CLASP CL 2.3.0-38-gd5637675b
- Clozure CL 1.12.1
Credits
Authors
Created with
- GitHub Copilot Chat (Private Beta)
- Alive (the Average Lisp VS Code Environment)
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.