En un mot
Le nom de fermeture Kleene est clairement destiné à signifier la fermeture
sous une opération de chaîne.
Cependant, une analyse minutieuse (grâce à un commentaire critique de l'OP mallardz), montre que l'étoile Kleene ne peut pas être fermée sous concaténation, ce qui correspond plutôt à l'opérateur Kleene plus.
L'opérateur étoile de Kleene correspond en fait à une fermeture sous l'opération de puissance dérivée de la concaténation.
Le nom étoile Kleene vient de la représentation syntaxique de l'opération avec une étoile *
, tandis que la fermeture est ce qu'elle fait.
Ceci est expliqué plus en détail ci-dessous.
Rappelons que la fermeture en général, et l'étoile de Kleene en particulier, est une opération sur les ensembles, ici sur les ensembles de chaînes, c'est-à-dire sur les langues. Cela sera utilisé dans l'explication.
Clôture d'un sous-ensemble sous une opération toujours définie
Un ensemble est fermé sous une opération n -aire f ssi f est toujours défini pour toutCnFF -tuple d'arguments dans C et
C = { f ( c 1 , … , c n ) ∣ ∀ c 1 , … , c n ∈ C } .nCC= { f( c1, … , Cn)∣∀c1,…,cn∈C}
En étendant à des ensembles de valeurs de la manière habituelle, c'est-à-dire
f ( S 1 , … , S n ) = { f ( s 1 ,f
on peut réécrire la condition comme une équation d'ensemble: C = f ( C , … , C )
f(S1,…,Sn)={f(s1,…,sn)∣∀si∈Si.1≤i≤n}
C=f(C,…,C)
Pour un domaine (ou ensemble) avec une opération f toujours définie sur D , et un ensemble S ⊂ D , la fermeture de S sous f est le plus petit ensemble S f
contenant SDfDS⊂DSfSfS qui satisfait l'équation:
.Sf={f(s1,…,sn)∣∀s1,…,sn∈Sf}
Plus précisément avec une équation établie, la fermeture de sous f peut être définie par:Sf
Sf is the smallest set such that S⊂Sf and Sf=f(Sf,…,Sf)
Il s'agit d'un exemple de définition du point le moins fixe, souvent utilisé en sémantique, et également utilisé dans les langages formels. Une grammaire sans contexte peut être considérée comme un système d'équations de langues (c'est-à-dire des équations de chaînes de caractères), où le non-terminal représente des variables de langue. La solution la moins fixe associe un langage à chaque variable, et le langage ainsi associé au symbole initial est celui défini par la grammaire CF.
Élargir le concept
La fermeture telle que définie ci-dessus est uniquement destinée à étendre un sous-ensemble
dans un ensemble minimal S f de sorte que l'opération f est toujours définie.SSff
Comme le fait remarquer le mallardz OP, ce n'est pas une explication suffisante, car elle ne comprend pas le mot vide dans S f quand il est pas déjà dans S . En effet cette fermeture correspond à la définition de la Kleene plus et non à l'étoile Kleene .ϵSfS+
*
En fait, l'idée de fermeture peut être étendue ou envisagée de différentes manières.
Extension à d'autres propriétés algébriques
En voie de l'étendre (bien qu'elle ne soit plus appelée fermeture ) envisage plus généralement une extension à un ensemble ayant des propriétés algébriques spécifiques par rapport à l'opération f .Sff
Si vous définissez comme le plus petit ensemble contenant S qui est un
monoïde pour la fonction binaire f , alors vous avez besoin à la fois de fermeture et d'un élément neutre qui est le mot vide ϵ .SfSfϵ
Extension via une opération dérivée
Il y a une deuxième voie qui est plus proprement une question de fermeture. Lorsque vous définissez la fermeture de , vous pouvez la considérer par rapport à certains des arguments, tandis que vous autorisez les valeurs de l'ensemble D pour les autres arguments.S⊂DD
En considérant (pour simplifier) une fonction binaire sur D , vous pouvez définir S f , 1 comme le plus petit ensemble contenant S qui satisfait l'équation: S f , 1 = { f ( s 1fDSf,1S
Sf,1={f(s1,s2)∣∀s1∈Sf,1∧∀s2∈D}
ou avec des équations définies:
Sf,1 is the smallest set such that S⊂Sf,1 and Sf,1=f(Sf,1,D)
Cela a également un sens lorsque les arguments n'appartiennent pas au même ensemble. Ensuite, vous pouvez avoir la fermeture par rapport à certains arguments dans un ensemble, tout en considérant toutes les valeurs possibles pour les autres arguments (de nombreuses variantes sont possibles).
Étant donné un monoïde - par exemple le monoïde de chaînes avec concaténation -(M,f,ϵ) −− où est une opération binaire associative sur les éléments de l'ensemble M avec un élément d'identité
ϵ , vous pouvez définir les puissances d'un élément u ∈ M en tant que:
∀ u ∈ M .fMϵu∈M
∀u∈M.u0=ϵ and ∀n∈Nun=f(u,un−1)
Cette exponentiation est une opération qui prend comme argument un élément de M et un entier non négatif de N 0 .unMN0
MnUn={un∣u∈U}unf
{U0={u0∣u∈U}={ϵ}∀n∈N,Un=f(U,Un−1)
fM
U∧,1U⊂M
U∧,1 is the smallest set such that U⊂U∧,1 and U∧,1=f(U∧,1,N0)
Et cela nous donne l'opération étoile de Kleene lorsque la construction est appliquée à l'opération de concaténation du monoïde libre de cordes.
Pour être tout à fait honnête, je ne suis pas sûr de ne pas avoir triché. Mais une définition n'est que ce que vous en faites, et c'est la seule façon que j'ai trouvée de transformer réellement l'étoile Kleene en fermeture. Je fais peut-être trop d'efforts.
Les commentaires sont les bienvenus.
Fermer un ensemble sous une opération qui n'est pas toujours définie
Il s'agit d'une vision et d'une utilisation légèrement différentes du concept de fermeture. Ce point de vue ne répond pas vraiment à la question, mais il semble bon de le garder à l'esprit pour éviter certaines confusions possibles.
fD
Df
D′Df′
DD′ff′
D′f′Df
C'est ainsi que les entiers sont construits à partir de nombres naturels, en considérant l'ensemble des paires de nombres naturels quotientées par une relation d'équivalence (deux paires sont équivalentes si les deux éléments sont dans le même ordre et ont la même différence).
C'est aussi ainsi que les rationnels peuvent être construits à partir des entiers.
Et c'est ainsi que les réels classiques peuvent être construits à partir des rationnels, bien que la construction soit plus complexe.