Em poucas palavras
O nome de fechamento Kleene pretende claramente significar fechamento
sob alguma operação de cadeia.
No entanto, uma análise cuidadosa (graças a um comentário crítico do OP mallardz) mostra que a estrela Kleene não pode ser fechada sob concatenação, o que corresponde ao operador Kleene plus.
O operador estrela Kleene realmente corresponde a um fechamento sob a operação de energia derivada da concatenação.
O nome estrela Kleene vem da representação sintática da operação com uma estrela *
, enquanto fechamento é o que ela faz.
Isso é explicado mais abaixo.
Lembre-se de que o fechamento em geral, e a estrela Kleene em particular, é uma operação em conjuntos, aqui em conjuntos de strings, ou seja, em idiomas. Isso será usado na explicação.
Fechamento de um subconjunto em uma operação sempre definida
Um conjunto é fechada sob alguns n operação -ary f sse f é sempre definida para qualquer n -tuple de argumentos em C e
C = { f ( c 1 , ... , c n ) | ∀ c 1 , ... , c n ∈ C } .CnffnCC={f(c1,…,cn)∣∀c1,…,cn∈C}
Ao estender para conjuntos de valores da maneira usual, isto é,
f ( S 1 , ... , S n ) = { f ( s 1 , ... , s n ) | ∀ s i ∈ S i . 1 ≤ i ≤ n }
podemos reescrever a condição como uma equação definida: C = f ( C , … , C )f
f(S1,…,Sn)={f(s1,…,sn)∣∀si∈Si.1≤i≤n}
C=f(C,…,C)
Para um domínio (ou conjunto) com uma operação f que é sempre definida em D e um conjunto S ⊂ D , o fechamento de S sob f é o menor conjunto S f que
contém S que satisfaz a equação:
S f = { f ( s 1 , ... , s n ) | ∀ s 1 , ... , s n ∈ s f } .DfDS⊂DSfSfSSf={f(s1,…,sn)∣∀s1,…,sn∈Sf}
De maneira mais concisa com uma equação definida, o fechamento de sob f pode ser definido por:Sf
Sf is the smallest set such that S⊂Sf and Sf=f(Sf,…,Sf)
Este é um exemplo de definição de ponto menos fixo, geralmente usada em semântica e também em linguagens formais. Uma gramática livre de contexto pode ser vista como um sistema de equações de idiomas (isto é, equações de conjunto de strings), onde os não-terminais representam variáveis de idioma. A solução com menos pontos fixos associa um idioma a cada variável, e o idioma assim associado ao símbolo inicial é aquele definido pela gramática CF.
Ampliando o conceito
Fecho tal como definido acima só foi concebido para estender um subconjunto
em um conjunto mínimo S f de tal modo que a operação de f é sempre definida.SSff
Como observado pelo mallardz OP, esta não é uma explicação suficiente, uma vez que não irá incluir a palavra vazia em S f quando ele não estiver em S . De fato, esse fechamento corresponde à definição do Kleene plus e não à estrela Kleene .ϵSfS+
*
Na verdade, a ideia de fechamento pode ser estendida ou considerada de maneiras diferentes.
Extensão a outras propriedades algébricas
Sff
SfSfϵ
Extensão através de uma operação derivada
S⊂DD
fDSf,1S
Sf,1={f(s1,s2)∣∀s1∈Sf,1∧∀s2∈D}
ou com equações definidas:
Sf,1 is the smallest set such that S⊂Sf,1 and Sf,1=f(Sf,1,D)
Isso também faz sentido quando os argumentos não pertencem ao mesmo conjunto. Em seguida, você pode encerrar com relação a alguns argumentos em um conjunto, considerando todos os valores possíveis para os outros argumentos (muitas variações são possíveis).
(M,f,ϵ) −−fMϵu∈M
∀u∈M.u0=ϵ and ∀n∈Nun=f(u,un−1)
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)
E isso nos dá a operação em estrela Kleene quando a construção é aplicada à operação de concatenação do Monoid livre de strings.
Para ser completamente honesto, não tenho certeza se não traí. Mas uma definição é apenas o que você faz, e foi a única maneira que encontrei para transformar a estrela Kleene em um fechamento. Eu posso estar tentando demais.
Comentários são bem-vindos.
Fechar um conjunto em uma operação que nem sempre é definida
Essa é uma visão e uso ligeiramente diferentes do conceito de fechamento. Essa visão não está realmente respondendo à pergunta, mas parece bom manter isso em mente para evitar possíveis confusões.
fD
Df
D′Df′
DD′ff′
D′f′Df
É assim que números inteiros são construídos a partir de números naturais, considerando o conjunto de pares de números naturais quociente por uma relação de equivalência (dois pares são equivalentes se os dois elementos estiverem na mesma ordem e tiverem a mesma diferença).
É também assim que os racionais podem ser construídos a partir dos números inteiros.
E é assim que os reais clássicos podem ser construídos a partir dos racionais, embora a construção seja mais complexa.