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
parachutetest suite scaffolding - Implement unit tests for all type classes and methods
- Implement
LATTICEclass and functional interface - Implement
HYPERLATTICEclass and functional interface - Implement
PROBABILISTIC-HYPERLATTICEclass and functional interface - Implement
GENERALIZED-LATTICEclass and dispatching methods - Implement
PROBABILISTIC-LATTICEclass and specialized methods - Implement Generic Function API over
GENERALIZED-LATTICEclass - Refactor
LATTICEclass and functions to inherit fromGENERALIZED-LATTICEclass and use Generic Function API - Refactor
HYPERLATTICEclass and functions to inherit fromLATTICEclass and use Generic Function API - Refactor
PROBABILISTIC-HYPERLATTICEclass and functions to inherit fromHYPERLATTICEandPROBABILISTIC-LATTICEclasses and use Generic Function API - Refactor library to use
BAPHOMETpackage-as-type convention - Publish
hyperlatticeson Ultralisp - Publish
hyperlatticeson 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.