# Differences

This shows you the differences between two versions of the page.

Next revision | Previous revision | ||

expressing_regular_expressions_in_msol_over_strings [2007/05/06 20:59] vkuncak created |
expressing_regular_expressions_in_msol_over_strings [2007/05/06 21:04] vkuncak |
||
---|---|---|---|

Line 1: | Line 1: | ||

====== Expressing regular expressions in MSOL over strings ====== | ====== Expressing regular expressions in MSOL over strings ====== | ||

- | Idea: for each regular expression $r$ of alphabet with inputs $v_1,\ldots,v_n$ associate a formula $F$ with free variables $v_1,\ldots,v_n,p,q$ such that $F$ is valid precisely for whose sets of numbers for which | + | Idea: for each regular expression $r$ of a [[regular expressions for automata with parallel inputs|automaton for parallel inputs]] $v_1,\ldots,v_n$ associate a formula $F$ with free variables $v_1,\ldots,v_n,p,q$ such that $F$ is valid precisely for whose sets of numbers for which |

* $p$ and $q$ are singletons | * $p$ and $q$ are singletons | ||

* the strings given by the parts of $v_1,\ldots,v_n$ that start at position $p$ and end at position $q$ satisfy regular expression $F(r)$ | * the strings given by the parts of $v_1,\ldots,v_n$ that start at position $p$ and end at position $q$ satisfy regular expression $F(r)$ | ||

Line 10: | Line 10: | ||

... ... ... ... | ... ... ... ... | ||

... apn ... aqn ... | ... apn ... aqn ... | ||

+ | |||

+ | The construction is by induction on the structure of regular expressions and resembles the description of parsing the string given by a regular expression: | ||

+ | * base cases are easy | ||

+ | * union is disjunction | ||

+ | * concatenation existentially quantifies over middle position | ||

+ | * iteration in $r^*$ quantifies over a set of positions between $p$ and $q$ at which a string can be broken into strings that satisfy $r$ | ||