Skip to content

KleeneAlgebra axioms don't quite match literature #3003

Description

@Taneb

Pinging @Akshobhya1234 on this one who originally added them, to make sure I'm not missing something and to make sure it's not breaking his use case.

We define StarLeftExpansive as e + x ∙ x * ≈ x * (similarly for StarRightExpansive), and StarLeftDestructive as b + a ∙ x ≈ x → a * ∙ b ≈ x`.

The closest definitions I can find are in Dexter Kozen's lecture notes (cited by Wikipedia), which claims to follow an out of print textbook:

Image

Or e + x ∙ x * ≤ x * and b + a ∙ x ≤ x → a * ∙ b ≤ x in the notation I used earlier. But note! is not . How is it defined? Again, from Dexter Kozen's lecture notes:

Image

Or in our notation, x ≤ y = x + y ≈ y. Rephrasing the laws inlining this definition, we get something like

StarLeftExpansive = e + x ∙ x * + x * ≈ x *
StarLeftDestructive = b + x ∙ a + x ≈ x  a * ∙ b + x ≈ x

I ran into this while trying to implement regular expressions, and finding it impossible to prove StarLeftDestructive. I have not tried to see if my alternate definitions work better for that yet.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions