Định nghĩa đúng về “nguyên tử” trong Lập trình Prolog và Logic

Aug 15 2020

Tôi đã đăng câu hỏi này trên diễn đàn SWI Prolog Discourse và nhận được một số nhận xét hữu ích, nhưng có lẽ mọi người ở đây cũng có thể có một số ý tưởng về chủ đề này.

Tôi hơi bối rối về cách sử dụng từ “nguyên tử” trong bài báo mà chúng tôi đang viết.

(1) Trong Prolog, một nguyên tử được cho là “Hằng số dạng văn bản. Được sử dụng làm tên cho các thuật ngữ ghép, để biểu thị các hằng số hoặc văn bản. ”. Xem tại đây . Theo đó đây là những nguyên tử: john, grandparentvv

(2) Trong các văn bản về lập trình logic, ví dụ như Riguzzi (2018) và Baral và Gelfond (1994) , “nguyên tử” được cho là các thuật ngữ có dạng p(t1, t2, ..., tn), trong đó các ts là các thuật ngữ và plà một biểu tượng vị từ. Điều này tương ứng với việc sử dụng "nguyên tử" trong logic bậc nhất cổ điển.

Tôi có đúng khi giả định rằng (1) là định nghĩa thích hợp cho “nguyên tử” khi nói về Prolog, và (2) là định nghĩa thích hợp cho “nguyên tử” khi nói về lập trình logic? Tôi nghĩ rằng một lý do cho sự nhầm lẫn của tôi là tôi nghĩ về Prolog như một ví dụ của lập trình logic.

Cheers / JC

CHỈNH SỬA 2020-08-18 ******************************************** **

Hơi khó để giải thích sự thống nhất khi sử dụng thuật ngữ LP; tôi đã cố gắng.

Hợp nhất với thuật ngữ Prolog điển hình:

  • Nguyên tử, số, biến và hợp chất là các số
  • Atom = chuỗi bắt đầu bằng chữ thường
  • Number = một số
  • Biến = chuỗi bắt đầu bằng chữ in hoa
  • Hợp chất = p (t1, t2, ..., tn) trong đó p là ký hiệu vị từ và ts là số hạng.

Hợp nhất:

  • Hai nguyên tử hợp nhất nếu chúng giống nhau
  • Hai số thống nhất nếu chúng giống nhau
  • Một biến thống nhất với bất kỳ loại thuật ngữ nào
  • Hai hợp chất thống nhất nếu (1) chúng có cùng tên, (2) cùng số đối số, (3) tất cả các đối số của chúng đồng nhất, (4) các biến của chúng có thể được khởi tạo nhất quán

Hợp nhất với thuật ngữ LP điển hình:

  • Hằng, biến và hàm là các thuật ngữ
  • Constant = một chuỗi bắt đầu bằng chữ thường hoặc một số
  • Biến = một chuỗi bắt đầu bằng chữ hoa
  • Hàm = f (t1, t3, ..., tn) trong đó f là ký hiệu hàm và ts là số hạng
  • Công thức nguyên tử = p (t1, t2, ..., tn) trong đó p là ký hiệu vị từ và ts là số hạng

Hợp nhất:

  • Hai hằng số hợp nhất nếu chúng giống nhau
  • Một biến thống nhất với bất kỳ loại thuật ngữ nào
  • Hai công thức nguyên tử, hoặc hai hàm, thống nhất nếu (1) chúng có cùng tên, (2) cùng số đối số, (3) tất cả các đối số của chúng thống nhất, (4) các biến của chúng có thể được khởi tạo nhất quán

Trả lời

MostowskiCollapse Aug 15 2020 at 20:44

Để tránh đụng độ tên, bạn có thể nói về công thức nguyên tố
hoặc nghĩa đen dương, nhưng 3 cái này đều giống nhau:

https://en.wiktionary.org/wiki/prime_formula

https://en.wikipedia.org/wiki/Literal_(mathematical_logic)

https://en.wikipedia.org/wiki/Atomic_formula