Zulip Chat Archive

Stream: general

Topic: defining computable Epsilon NFAs for regular expressions


Paige Thomas (Jun 07 2024 at 03:37):

I was wondering if anyone might have a suggestion for this. I am attempting to define the construction of nondeterministic finite automata with epsilon translations for regular expressions, and I am creating unique states for combining these automata by using the EpsilonNFA.wrapLeft and EpsilonNFA.wrapRight functions that I have defined. However, proving anything about using these functions seems to turn into a mess. For example, I can't seem to prove the properties of the NFA for the regular expression union operator. Is there maybe a trick to this that I am missing? Was this the wrong approach?

pandaman (Jun 12 2024 at 12:01):

I'm glad to see more people are working on Regex! I would begin with proving properties of simpler constructs like these theorems and then use them to prove the desired one.

example : state  e.epsilon_closure states  (Or.inl state)  (e.wrapLeft σ_r).epsilon_closure (state.map Or.inl)
example : state  e.eval_one states symbol  (Or.inl state)  (e.wrapLeft σ_r).eval_one (state.map Or.inl) symbol

Paige Thomas (Jun 13 2024 at 04:25):

I have made some progress with help since I posted this. Sorry. Thank you though!


Last updated: May 02 2025 at 03:31 UTC