Yol sıralaması (terim yeniden yazma) - Path ordering (term rewriting)

İçinde teorik bilgisayar bilimi özellikle terim yeniden yazma, bir yol sıralaması bir sağlam temelli kesin toplam sipariş (>) tüm sette şartlar öyle ki

f(...) > g(s1,...,sn) Eğer f .> g ve f(...) > sben için ben=1,...,n,

nerede (.>) kullanıcı tarafından verilir toplam öncelik sırası hepsinin setinde fonksiyon sembolleri.

Sezgisel olarak, bir terim f(...) herhangi bir terimden daha büyüktür g[...) şartlardan inşa edilmiştir sben daha küçük f[...) daha düşük öncelikli kök sembolü kullanarak gÖzellikle, yapısal indüksiyon, bir terim f[...) yalnızca şundan küçük sembolleri içeren herhangi bir terimden daha büyüktür f.

Yol sıralaması genellikle şu şekilde kullanılır: indirim siparişi terim yeniden yazmada, özellikle Knuth – Bendix tamamlama algoritması Örnek olarak, "yeniden yazma sistemi" terimiçarpmak "matematiksel ifadeler bir kural içerebilir x*(y+z) → (x*y) + (x*z). Kanıtlamak için sonlandırma, bir indirim siparişi (>) terim ile ilgili bulunmalıdır x*(y+z) terimden daha büyüktür (x*y)+(x*z). Önceki terim, ikincisinden hem daha az işlev sembolü hem de daha az değişken içerdiğinden, bu önemsiz değildir. Ancak, önceliği ayarlama (*) .> (+), bir yol sıralaması kullanılabilir, çünkü her ikisi de x*(y+z) > x*y ve x*(y+z) > x*z elde etmesi kolaydır.

İki terim verildiğinde s ve t, bir kök simgesiyle f ve gsırasıyla, ilişkilerine karar vermek için önce kök sembolleri karşılaştırılır.

  • Eğer f <. g, sonra s hakim olabilir t sadece biri s 'alt terimleri yapar.
  • Eğer f .> g, sonra s hakim t Eğer s her birine hakim t 's alt terimleri.
  • Eğer f = g, sonra hemen alt terimler nın-nin s ve t özyinelemeli olarak karşılaştırılması gerekir. Belirli yönteme bağlı olarak, farklı yol sıralaması varyasyonları mevcuttur.[1][2]

İkinci varyasyonlar şunları içerir:

  • çok kümeli yol sıralaması (mpo), başlangıçta yinelemeli yol sıralaması (rpo)[3]
  • sözlükbilimsel yol sıralaması (lpo)[4]
  • mpo ve lpo'nun bir kombinasyonu, adı verilen yinelemeli yol sıralaması Dershowitz, Jouannaud (1990)[5][6][7]

Dershowitz, Okada (1988) daha fazla varyant listeliyor ve bunları Ackermann sistemi sıra sayıları.

Biçimsel tanımlar

çok kümeli yol sıralaması (>) şu şekilde tanımlanabilir:[8]

s = f(s1,...,sm) > t = g(t1,...,tn)Eğer
f.>gves>tjher biri içinj∈{1,...,n},    veya
sbentbazıben∈{1,...,m},veya
f=gve{ s1,...,sm } >> { t1,...,tn }

nerede

  • (≥), dönüşlü kapanma mpo (>),
  • { s1,...,sm } gösterir çoklu set nın-nin sİçin benzer alt terimleri t, ve
  • (>>), (>) 'nin çoklu kümeli uzantısını belirtir. { s1,...,sm } >> { t1,...,tn } Eğer { t1,...,tn } şuradan elde edilebilir { s1,...,sm }
    • en az bir öğeyi silerek veya
    • bir öğeyi kesinlikle daha küçük (mpo w.r.t.) öğelerden oluşan bir çoklu kümeyle değiştirerek.[9]

Daha genel olarak bir sipariş işlevsel bir işlev Ö bir siparişi başka bir siparişe eşlemek ve aşağıdaki özellikleri yerine getirmek:[10]

  • Eğer (>) ise geçişli Öyleyse öyle Ö(>).
  • Eğer (>) ise yansımasız Öyleyse öyle Ö(>).
  • Eğer s > t, sonra f(...,s,...) Ö(>) f(...,t,...).
  • Ö dır-dir sürekli ilişkilerde, yani eğer R0, R1, R2, R3, ... sonsuz bir ilişkiler dizisidir, o zaman Ö(∪
    ben=0
    Rben) = ∪
    ben=0
    Ö(Rben).

Çoklu kümeli uzantı, yukarıdaki (>) ile (>>) arasındaki eşleme işlevsel bir sipariş örneğidir: (>>) =Ö(>). İşlevsel olan başka bir düzen, alfabetik sırayla uzantı, yol açar sözlükbilimsel yol sıralaması.

Referanslar

  1. ^ Nachum Dershowitz, Jean-Pierre Jouannaud (1990). Jan van Leeuwen (ed.). Yeniden Yazma Sistemleri. Teorik Bilgisayar Bilimi El Kitabı. B. Elsevier. s. 243–320. Burada: bölüm 5.3, s. 275
  2. ^ Gerard Huet (Mayıs 1986). Hesaplama ve Tümdengelim için Biçimsel Yapılar. Programlama Mantığı ve Kesikli Tasarım Hesabı Uluslararası Yaz Okulu. Arşivlenen orijinal 2014-07-14 tarihinde. Burada: bölüm 4, s. 55-64
  3. ^ N. Dershowitz (1982). "Dönem Yeniden Yazma Sistemleri Sıralaması" (PDF). Teorik. Bilgisayar. Sci. 17 (3): 279–301.
  4. ^ S. Kamin, J.-J. Levy (1980). Yinelemeli Yol Sıralamasının İki Genellemesi (Teknik rapor). Üniv. Illinois, Urbana / IL.
  5. ^ Kamin, Levy (1980)
  6. ^ N. Dershowitz, M. Okada (1988). "Terim Yeniden Yazım Teorisi için İspat-Teorik Teknikler". Proc. 3. IEEE Symp. Bilgisayar Bilimlerinde Mantık Üzerine (PDF). sayfa 104–111.
  7. ^ Mitsuhiro Okada, Adam Steele (1988). "Sıralama Yapıları ve Knuth – Bendix Tamamlama Algoritması". Proc. Allerton Conf. İletişim, Kontrol ve Bilgi İşlem Hakkında.
  8. ^ Huet (1986), bölüm 4.3, bölüm 1, s.57
  9. ^ Huet (1986), bölüm 4.1.3, s. 56
  10. ^ Huet (1986), bölüm 4.3, s. 58