Prolog ve Mantık Programlamada "atom" un doğru tanımı
Bu soruyu SWI Prolog Discourse forumunda yayınladım ve bazı yararlı yorumlar aldım, ancak buradaki insanların da bu konu hakkında bazı fikirleri olabilir.
Yazmakta olduğumuz bir makalede “atom” kelimesini nasıl kullanacağım konusunda biraz kafam karıştı.
(1) Prolog'da bir atomun "Metinsel sabit" olduğu söylenir. Sabitleri veya metni temsil etmek için bileşik terimler için ad olarak kullanılır. ”. Buraya bakın . Bu duruma göre, bu atomlarıdır: john
, grandparent
vs.
(2) Mantık programlamasıyla ilgili metinlerde, örneğin Riguzzi (2018) ve Baral ve Gelfond (1994) , "atomların" formla terimler olduğu söylenir p(t1, t2, ..., tn)
, burada t
s terimler ve p
bir yüklem sembolüdür. Bu, klasik birinci dereceden mantıkta "atom" kullanımına karşılık gelir.
Prolog hakkında konuşurken (1) 'in doğru tanım olduğunu ve (2)' nin mantık programlamasından bahsederken "atom" için doğru tanım olduğunu varsaymakta haklı mıyım? Bence kafa karışıklığımın bir nedeni, Prolog'u mantık programlamanın bir örneği olarak düşünmem.
Şerefe / JC
2020-08-18 DÜZENLE ******************************************** **
LP terminolojisini kullanırken birleştirmeyi açıklamak biraz zordu; bir girişimde bulundum.
Tipik Prolog terminolojisiyle birleştirme:
- Atomlar, sayılar, değişkenler ve bileşikler terimlerdir
- Atom = küçük harfle başlayan dize
- Sayı = bir sayı
- Değişken = büyük harfle başlayan dize
- Bileşik = p (t1, t2, ..., tn) burada p bir yüklem sembolü ve ts terimlerdir.
Birleştirme:
- Aynı iseler iki atom birleşir
- Aynı iseler iki sayı birleşir
- Bir değişken herhangi bir terimle birleşir
- (1) aynı ada sahiplerse, (2) aynı sayıda argümana sahiplerse, (3) tüm argümanları birleşirse, (4) değişkenleri tutarlı bir şekilde örneklenebilirse iki bileşik birleşir
Tipik LP terminolojisiyle birleştirme:
- Sabitler, değişkenler ve işlevler terimlerdir
- Sabit = küçük harf veya sayı ile başlayan bir dize
- Değişken = büyük harfle başlayan bir dize
- İşlev = f (t1, t3, ..., tn) burada f bir işlev sembolü ve ts terimlerdir
- Atomik formül = p (t1, t2, ..., tn) burada p bir yüklem sembolü ve ts terimlerdir
Birleştirme:
- Aynı iseler iki sabit birleşir
- Bir değişken herhangi bir terimle birleşir
- İki atomik formül veya iki işlev, (1) aynı ada sahiplerse, (2) aynı sayıda bağımsız değişkene sahiplerse, (3) tüm bağımsız değişkenleri birleşirse, (4) değişkenleri tutarlı bir şekilde başlatılabilirse birleşir
Yanıtlar
İsim çatışmasını önlemek için asal formüller
veya pozitif harflerden bahsedebilirsiniz , ancak bu 3 tanesi aynıdır:
https://en.wiktionary.org/wiki/prime_formula
https://en.wikipedia.org/wiki/Literal_(mathematical_logic)
https://en.wikipedia.org/wiki/Atomic_formula