On Boolean combinations forming piecewise testable languages

Published: 2017, Last Modified: 24 Apr 2025Theor. Comput. Sci. 2017EveryoneRevisionsBibTeXCC BY-SA 4.0
Abstract: A regular language is k-piecewise testable (k-PT) if it is a Boolean combination of languages of the form ⁎⁎⁎⁎⁎La1a2…an=Σ⁎a1Σ⁎a2Σ⁎⋯Σ⁎anΣ⁎<math><msub is="true"><mrow is="true"><mi is="true">L</mi></mrow><mrow is="true"><msub is="true"><mrow is="true"><mi is="true">a</mi></mrow><mrow is="true"><mn is="true">1</mn></mrow></msub><msub is="true"><mrow is="true"><mi is="true">a</mi></mrow><mrow is="true"><mn is="true">2</mn></mrow></msub><mo is="true">…</mo><msub is="true"><mrow is="true"><mi is="true">a</mi></mrow><mrow is="true"><mi is="true">n</mi></mrow></msub></mrow></msub><mo is="true">=</mo><msup is="true"><mrow is="true"><mi mathvariant="normal" is="true">Σ</mi></mrow><mrow is="true"><mo is="true">⁎</mo></mrow></msup><msub is="true"><mrow is="true"><mi is="true">a</mi></mrow><mrow is="true"><mn is="true">1</mn></mrow></msub><msup is="true"><mrow is="true"><mi mathvariant="normal" is="true">Σ</mi></mrow><mrow is="true"><mo is="true">⁎</mo></mrow></msup><msub is="true"><mrow is="true"><mi is="true">a</mi></mrow><mrow is="true"><mn is="true">2</mn></mrow></msub><msup is="true"><mrow is="true"><mi mathvariant="normal" is="true">Σ</mi></mrow><mrow is="true"><mo is="true">⁎</mo></mrow></msup><mo is="true">⋯</mo><msup is="true"><mrow is="true"><mi mathvariant="normal" is="true">Σ</mi></mrow><mrow is="true"><mo is="true">⁎</mo></mrow></msup><msub is="true"><mrow is="true"><mi is="true">a</mi></mrow><mrow is="true"><mi is="true">n</mi></mrow></msub><msup is="true"><mrow is="true"><mi mathvariant="normal" is="true">Σ</mi></mrow><mrow is="true"><mo is="true">⁎</mo></mrow></msup></math>, where ai∈Σ<math><msub is="true"><mrow is="true"><mi is="true">a</mi></mrow><mrow is="true"><mi is="true">i</mi></mrow></msub><mo is="true">∈</mo><mi mathvariant="normal" is="true">Σ</mi></math> and 0≤n≤k<math><mn is="true">0</mn><mo is="true">≤</mo><mi is="true">n</mi><mo is="true">≤</mo><mi is="true">k</mi></math>. Given a finite automaton A<math><mi mathvariant="script" is="true">A</mi></math>, if the language L(A)<math><mi is="true">L</mi><mo stretchy="false" is="true">(</mo><mi mathvariant="script" is="true">A</mi><mo stretchy="false" is="true">)</mo></math> is piecewise testable, we want to express it as a Boolean combination of languages of the above form. The idea is as follows. If the language is k-PT, then there exists a congruence ∼k<math><msub is="true"><mrow is="true"><mo is="true">∼</mo></mrow><mrow is="true"><mi is="true">k</mi></mrow></msub></math> of finite index such that L(A)<math><mi is="true">L</mi><mo stretchy="false" is="true">(</mo><mi mathvariant="script" is="true">A</mi><mo stretchy="false" is="true">)</mo></math> is a finite union of ∼k<math><msub is="true"><mrow is="true"><mo is="true">∼</mo></mrow><mrow is="true"><mi is="true">k</mi></mrow></msub></math>-classes. Every such class is characterized by an intersection of languages of the from Lu<math><msub is="true"><mrow is="true"><mi is="true">L</mi></mrow><mrow is="true"><mi is="true">u</mi></mrow></msub></math>, for |u|≤k<math><mo stretchy="false" is="true">|</mo><mi is="true">u</mi><mo stretchy="false" is="true">|</mo><mo is="true">≤</mo><mi is="true">k</mi></math>, and their complements. To represent the ∼k<math><msub is="true"><mrow is="true"><mo is="true">∼</mo></mrow><mrow is="true"><mi is="true">k</mi></mrow></msub></math>-classes, we make use of the ∼k<math><msub is="true"><mrow is="true"><mo is="true">∼</mo></mrow><mrow is="true"><mi is="true">k</mi></mrow></msub></math>-canonical DFA. We identify the states of the ∼k<math><msub is="true"><mrow is="true"><mo is="true">∼</mo></mrow><mrow is="true"><mi is="true">k</mi></mrow></msub></math>-canonical DFA whose union forms the language L(A)<math><mi is="true">L</mi><mo stretchy="false" is="true">(</mo><mi mathvariant="script" is="true">A</mi><mo stretchy="false" is="true">)</mo></math> and use them to construct the required Boolean combination. We study the computational and descriptional complexity of related problems.
Loading