Beta normal form - Beta normal form
Olarak lambda hesabı , bir terim olan , beta normal formda bir varsa beta indirgeme mümkündür. Ne bir beta indirgemesi ne de bir eta indirgemesi mümkün değilse , bir terim beta-eta normal biçimindedir . Baş pozisyonunda beta-redeks yoksa bir terim baş normal biçimdedir .
Beta indirgeme
Lambda hesabında, bir beta redex şu formdaki bir terimdir:
- .
Bir REDEX olan baş pozisyonunda bir terim olarak ise, aşağıdaki şekle sahiptir (not uygulaması soyutlama daha yüksek bir önceliğe sahip olduğu, ve aşağıdaki formül bir lambda-soyutlama değil, bir uygulama olarak ifade edilmektedir):
- , nerede ve .
Bir beta indirgeme bir dönem içinde ihtiva edilen bir beta REDEX aşağıdaki yeniden yazma kuralının bir uygulamadır:
burada terimi ikame sonucu değişken vadede .
Bir kafa beta indirgeme aşağıdaki biçimde, bir kafa bir konuma uygulanan bir beta indirgeme gibidir:
- , nerede ve .
Diğer herhangi bir indirgeme, dahili beta indirgemesidir.
Bir normal biçimi her beta REDEX, içermeyen bir terimdir , yani daha indirgenemez. Bir baş normal formu , baş pozisyonunda bir beta redeks içermeyen, yani bir kafa küçültme ile daha fazla azaltılamayan bir terimdir . Basit lambda hesabı düşünüldüğünde (yani sabit veya fonksiyon sembolleri eklenmeden, ek delta kuralı ile indirgenmesi amaçlanmıştır), baş normal formları aşağıdaki şeklin terimleridir:
- , değişken nerede ve .
Bir baş normal formu her zaman normal bir form değildir, çünkü uygulanan argümanların normal olması gerekmez. Bununla birlikte, bunun tersi doğrudur: herhangi bir normal form aynı zamanda bir baş normal formdur. Aslında normal biçimler, alt terimlerin kendilerinin normal biçimler olduğu tam olarak baş normal biçimleridir. Bu, normal formların tümevarımlı sözdizimsel bir tanımını verir.
Zayıf kafa normal formu kavramı da vardır : zayıf kafa normal formundaki bir terim ya normal kafa formundaki bir terimdir ya da lambda soyutlamasıdır. Bu, bir lambda gövdesinin içinde bir redeks görünebileceği anlamına gelir.
Azaltma stratejileri
Genel olarak, belirli bir terim birkaç yeniden ifade içerebilir, bu nedenle birkaç farklı beta indirimi uygulanabilir. Hangi redeksin azaltılacağını seçmek için bir strateji belirleyebiliriz.
- Normal sıralı indirgeme , daha fazla böyle bir azalma mümkün olmayana kadar kafa konumunda beta düşürme kuralının sürekli olarak uygulandığı stratejidir. Bu noktada, ortaya çıkan terim, baş normal formdadır. Daha sonra , soldan sağa alt terimlerde kafa küçültme uygulamaya devam edilir. Aksi belirtilirse, normal sıralı indirgeme, her zaman önce en soldaki en dıştaki redex'i azaltan stratejidir.
- Aksine, uygulamalı sipariş azaltmada , kişi önce dahili indirimleri uygular ve ardından yalnızca daha fazla dahili azaltma mümkün olmadığında kafa azaltma uygular.
Normal sıralı indirgeme tamamlanmıştır, yani bir terim normal bir kafa biçimine sahipse, o zaman normal sıra indirgemesi nihayetinde ona ulaşacaktır. Yukarıdaki normal formların sözdizimsel açıklamasıyla, bu, "tamamen" normal bir form için aynı ifadeyi gerektirir (bu, standardizasyon teoremidir ). Aksine, terim normal bir biçime sahip olsa bile, uygulamalı sipariş indirimi sona ermeyebilir. Örneğin, geçerli sipariş indirimi kullanılarak, aşağıdaki indirimler dizisi mümkündür:
Ancak normal sıra indirgeme kullanıldığında, aynı başlangıç noktası hızla normal forma indirgenir:
Sinot'un yönetici dizileri , beta indirgemesinin hesaplama karmaşıklığının optimize edilebileceği bir yöntemdir.