Prolog ve Mantık Programlamada "atom" un doğru tanımı

Aug 15 2020

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, grandparentvs.

(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 ts terimler ve pbir 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

MostowskiCollapse Aug 15 2020 at 20:44

İ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