À propos de la génération de quelques exemples:
En nous appuyant sur la réponse de @shreesh, nous pouvons prouver que chaque langage anti-palindrome doit être de la forme
pourcertainescommandes totales strictes < .
L={x | x<xR}(∗)
<
En effet, compte tenu de tout anti-palindrome , on peut définir un < associé comme suit. Nous commençons par prendre n'importe quelle énumération x 0 , x 1 , … de { 0 , 1 } ∗ , où chaque mot apparaît exactement une fois. Ensuite, nous modifions l'énumération: pour chaque paire de non-palindromes x , x R , nous échangeons leur position afin de faire apparaître celle qui appartient à L avant l'autre. La nouvelle énumération induit un ordre total < satisfaisant ( ∗ ) .L<x0,x1,…{0,1}∗x,xRL<(∗)
Que chaque défini comme ( ∗ ) est non palindrome est trivial, donc ( ∗ ) est une caractérisation complète des langages non palindromes.L(∗)(∗)
En répondant à la question initiale, nous savons maintenant que nous pouvons obtenir plusieurs exemples de langages anti-palindromes en créant des ordonnances < . Nous savons également qu'en faisant cela, nous ne nous limitons pas à une sous-classe de langues, en perdant la généralité.L<
A propos de la question "ces langues peuvent-elles être régulières?":
Pour prouver que tout anti-palindrome n'est pas régulier, supposons par contradiction qu'il est régulier.L
- La régularité étant préservée par retournement , est également régulière.LR
- La régularité étant préservée par l'union, , qui est l'ensemble de tous les non-palindromes, est également régulier.L∪LR
- La régularité étant préservée par le complément, l'ensemble de tous les palindromes est régulier.
De la dernière déclaration, nous pouvons tirer une contradiction en pompant. (Voir par exemple ici pour une solution)