Skip to content

Alphabet reduction / compression #40

@jn1z

Description

@jn1z

If multiple symbols behave the same on all transitions, it is possible to "quotient" the symbols and work with simpler automata, in particular allowing for lower storage and smaller Cartesian products.

Depending on how much you want to save, this can be tricky, as even storage of the equivalences can lead to blowup. (Essentially, you're allowed at most one "sparse" or one "dense" equivalence relation.)

Additionally, dealing with things like quantifier elimination is tricky.

But here is an example case where this can be extremely useful:
Evaluating "x1 = 0 & x2 = 0 & ... " leads to an exponentially large alphabet with precisely one nontrivial path.
This means that the trivial paths behave the same on all transitions.
If implemented properly, this case could be done in effectively linear storage and processing.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions