1
Fork 0
mirror of https://github.com/Jaxan/ons-hs.git synced 2025-04-27 06:37:44 +02:00
(Mirror) Implementation of the ONS (Ordered Nominal Sets) library in Haskell
Find a file
2017-10-27 18:21:34 +02:00
app Initial commit 2017-10-25 11:59:12 +02:00
src Orbit instance for Support . More documentation . 2017-10-27 18:21:34 +02:00
test Initial commit 2017-10-25 11:59:12 +02:00
.gitignore Initial commit 2017-10-25 11:59:12 +02:00
LICENSE Initial commit 2017-10-25 11:59:12 +02:00
ons-hs.cabal Initial commit 2017-10-25 11:59:12 +02:00
README.md Initial commit 2017-10-25 11:59:12 +02:00
Setup.hs Initial commit 2017-10-25 11:59:12 +02:00
stack.yaml Initial commit 2017-10-25 11:59:12 +02:00

ons-hs

Experimental implemtation of the ONS library in Haskell. It provides the basic notion of nominal sets and maps, and their manipulations (over the total order symmetry). It is implemented by instantiating the known representation theory, which turns out to be quite easy for the total order symmetry.

Nominal sets are structured possibly-infinite sets. They have symmetries which make them finitely representable. They can be used, for example, to define infinite state systems (nominal automata). Consequently, one can then do reachability analysis, minimisation and other automata-theoretic constructions. Here we take nominal sets over the total order symmetry, which means that the data-values come from the rational numbers (or any other dense linear order). The symmetries which act upon the nominal sets are the monotone bijections on the rationals.

The library uses an interface similar to the one provided by ONS. It provides basic instances and also allows custom types to be nominal. It is purely functional.

TODO

This will never be a fully fledged library. It is just for fun. Nevertheless, I wish to do the following:

  • Provide generic instances
  • Figure out the right data-structures (List vs. Sets vs. Seqs vs. ...)
  • Cleanup
  • Examples
  • Tests