L | M

Transkrypt

L | M
Działania na językach
1. Suma:
n
def
L|M =
o
w w ∈ L lub w ∈ M
2. Złączenie:
L M def
=
n
uv u ∈ L i v ∈ M
o
3. Iteracja (domknięcie Kleenego):
L∗ def
=
n
o
i
n
­
0
u
,
u
,
.
.
.
,
u
∈
L
u1 u2 . . . un 1 2
n
Wykład 7.5, str. 2
Działania na językach
Przykład: (suma)
L | M def
= w w ∈ L lub w ∈ M
M
{nie, chce, mi} | {się, uczyć} = {nie, chce, mi, się, uczyć}
{λ, a, a2 , a3 , . . .} | {λ, b, b2 , b3 , . . .} = {λ, a, b, a2 , b2 , a3 , b3 , . . .}
Działania na językach
L | M def
=
Przykład: (suma)
M
L:
hliczbai ::=
M:
hidenti ::=
L | M:
w w ∈ L lub w ∈ M
hcyfrai hliczbai hcyfrai
hliterai hidenti hliterai hidenti hcyfrai
hliczbo-identi ::=
hliczbai ::=
hidenti ::=
hliczbai hidenti
hcyfrai hliczbai hcyfrai
hliterai hidenti hliterai hidenti hcyfrai
Wykład 7.5, str. 4
Działania na językach
L | M def
=
Przykład: (suma)
M
w w ∈ L lub w ∈ M
✲
✲
automat
dla L
automat
dla M
au
dl tom
a
M at
✲
at
m
to L
au dla
automat dla L | M
Działania na językach
Przykład: (złączenie)
M
L M def
=
uv u ∈ L i v ∈ M
{czerwony, zielony} {dom, kapelusz, rower}
=
(
)
czerwony dom, czerwony kapelusz, czerwony rower,
zielony dom, zielony kapelusz, zielony rower
{λ, a, a2 , a3 , . . .} {λ, b, b2 , b3 , . . .}
= {λ, a, b, aa, ab, bb, aaa, aab, abb, bbb, . . .}
Wykład 7.5, str. 6
Działania na językach
Przykład: (złączenie)
M
L:
L M def
=
uv u ∈ L i v ∈ M
hwyrazi ::=
M:
hliterai hwyrazi hliterai
hliczbai ::=
L M:
hcyfrai hliczbai hcyfrai
hwyrazo-liczbai ::= hwyrazi hliczbai
hwyrazi ::= hliterai hwyrazi hliterai
hliczbai ::= hcyfrai hliczbai hcyfrai
Działania na językach
Przykład: (złączenie)
M
L M def
=
uv u ∈ L i v ∈ M
✲
automat dla L
automat
dla M
...
✲
automat dla L M :
automat dla L
...
automat automat
dla M dla M
...
automat
dla M
Wykład 7.5, str. 8
Działania na językach
Własności działań:
• Łączność:
K | (L | M ) = (K | L) | M
K(LM ) = (KL)M
• Przemienność:
L|M =M |L
Uwaga: złączenie nie jest przemienne!
• Elementy neutralne:
M |∅=M
ΛM = M Λ = M
∅ def
= {} — język pusty
Λ def
= {λ} — język zawierający tylko słowo puste
• Rozdzielność:
K(L | M ) = KL | KM
(L | M )K = LK | M K
Działania na językach
Iteracja:
L∗ def
=
u1 u2 . . . u n u1 , u2 , . . . , u n ∈ L i n ­ 0
L∗ = Λ | L | L2 | L3 | . . . = {λ} | L | LL | LLL | . . .
TWIERDZENIE: (rozwiązywanie równania językowego)
M
Rozwiązaniem równania X = L | XM jest X = LM ∗ .
Dowód:
Jeśli X = LM ∗ to
X = LM ∗ = L (Λ | M | M 2 | M 3 | . . .)
= LΛ | LM | LM 2 | LM 3 | . . .
= L | (LM | LM 2 | LM 3 | . . .)
= L | L (Λ | M | M 2 | . . .) M
= L | LM ∗M = L | XM