Formalny opis rachunku lambda i nie tylko, kolejna wersja
Formalny opis rachunku lambda i nie tylko, kolejna wersja
Formalny opis rachunku lambda i nie tylko, kolejna wersja
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Na chwilę pomalujmy na czerwono redeks R i . Powoduje to, że wszystkie termy<br />
z redukcji od C k do B i zawierają po jednym czerwonym redeksie. W termie B i<br />
czerwonym redeksem jest Q i . Redukując go otrzymujemy B i+1 , term bez zielonych<br />
oraz bez czerwonych redeksów. Term B i+1 jest więc postacią normalną termu<br />
C k dla redukcji kolorowych redeksów. Do postaci normalnej dochodzimy zawsze,<br />
redukując kolorowe redeksy w dowolnej kolejności. Możemy więc najpierw w termie<br />
C k zredukować redeks czerwony (otrzymujemy A i+1 ), a następ<strong>nie</strong> redukować<br />
redeksy zielone zawsze biorąc pierwszy redeks od lewej. Redukując w ten sposób<br />
też otrzymamy postać normalną. W szczególności, ist<strong>nie</strong>je normalna dla zielonych<br />
redeksów redukcja termu A i+1 do B i+1 i standardowa od C k do B i+1 .<br />
Znowu są możliwe dwa przypadki:<br />
Przypadek 2.2.1: k > 0.<br />
W tym przypadku redukcja prowadząca od A 0 do A i , dalej od A i (oznaczanego<br />
też C 0 ) do C k i na ko<strong>nie</strong>c do A i+1 otrzymanego z termu C k przez redukcję redeksu<br />
R i jest standardowa. Jej standardowość wynika z definicji k.<br />
Dodając do <strong>nie</strong>j standardową redukcję prowadzącą od C k do B i+1 otrzymujemy<br />
standardową redukcję od A 0 do B i+1 .<br />
Przypadek 2.2.2: k = 0. Teraz mamy dwie redukcje od A 0 do A i oraz od A i do<br />
A i+1 i dalej do B i+1 , obie standardowe, ale <strong>nie</strong> jest jasne, czy łącząc je otrzymamy<br />
redukcję standardową. Sytuacja została przedstawiona na poniższym rysunku:<br />
C ′ 0 → β C ′ 1 → β C ′ 2 → β . . . → β C ′ n → β B i−1<br />
R i−1 ↓ β<br />
A i<br />
Z 0<br />
−→β C 1<br />
Z 1<br />
−→β C 2<br />
Z 2<br />
−→β . . .<br />
R i ↓ β<br />
Z m−1<br />
−→β C m<br />
Z m<br />
−→β<br />
Q i−1 ↓ β<br />
B i<br />
Q i ↓ β<br />
A i+1 → β . . . → β B i+1<br />
Redeks R i−1 (zgod<strong>nie</strong> z oznaczeniami z rysunku) jest równy p ∗ C ′ 0 ,B i−1 (Q i−1), a redeks<br />
R i = p ∗ A i ,B i<br />
(Q i ). Konstrukcja tych redeksów gwarantuje rów<strong>nie</strong>ż, że leżą one na<br />
lewo od zielonych redeksów w odpowiednich termach.<br />
Aby wspomniane redukcje po połączeniu dały redukcję standardową, redeks<br />
R i−1 powi<strong>nie</strong>n być po lewej stro<strong>nie</strong> redeksu p C ′<br />
0 ,A i<br />
(R i ). Są to różne redeksy. Dla<br />
dowodu <strong>nie</strong> wprost załóżmy, że R i−1 jest po prawej stro<strong>nie</strong> p C ′<br />
0 ,A i<br />
(R i ), a więc słowo<br />
pref C ′<br />
0<br />
(p C ′<br />
0 ,A i<br />
(R i )) samo jest prefiksem pref C ′<br />
0<br />
(R i−1 ).<br />
Na mocy lematu 9.9 zachodzi równość<br />
pref Ai<br />
(R i ) = pref Ai<br />
(p ∗ A i ,B i<br />
(Q i )) = pref Bi<br />
(Q i ).<br />
Z tego samego powodu zachodzi też równość<br />
pref C ′<br />
0<br />
(R i−1 ) = pref C ′<br />
0<br />
(p ∗ C ′ 0 ,B i−1 (Q i−1)) = pref Bi−1<br />
(Q i−1 ).<br />
Z z założenia dowodu <strong>nie</strong> wprost i lematu 8.6 otrzymujemy, że<br />
pref C ′<br />
0<br />
(p C ′<br />
0 ,A i<br />
(R i )) = pref Ai<br />
(R i ).<br />
Teraz do redukcji od C ′ 0 do B i−1 i p C ′<br />
0 ,A i<br />
(R i ) zastosujmy lemat 9.8. Wynika z <strong>nie</strong>go,<br />
że dla pewnego podtermu N wyrażenia B i−1 mamy<br />
pref C ′<br />
0<br />
(p C ′<br />
0 ,A i<br />
(R i )) = pref Bi−1<br />
(N).<br />
23