สัญกรณ์คณิตศาสตร์ที่ไม่ต่อเนื่องส่วนที่คล้ายกันนี้ใช้สำหรับกฎที่เป็นทางการคืออะไร?


18

ในกระดาษ"ประเภทข้อมูล JSON ที่ซ้ำกันอย่างไม่มีข้อขัดแย้ง"ฉันพบสัญกรณ์นี้เพื่อกำหนด "กฎ" อย่างเป็นทางการ:

"กฎ" บางส่วนที่แสดงในกระดาษ] [1

สัญกรณ์นี้เรียกว่าอะไร? ฉันจะอ่านมันได้อย่างไร

ตัวอย่างเช่น:

  • DOCกฎไม่ได้มีอะไรใน "เศษ" ของ - ทำไมไม่?
  • EXECและGETกฎปรากฏว่ามีสองข้อตกลงแยกต่างหากเหนือเส้น, หมายความว่าอะไร?
  • VARกฎยืนออกบิตเช่นกันเนื่องจากในขณะที่กฎระเบียบอื่น ๆ จำนวนมากใช้การจัดเรียงของลูกศรบางส่วน (ซึ่งผมจะใช้เวลาที่จะหมายถึง "หมายถึง") ขึ้นด้านบนนี้เท่านั้นดูเหมือนว่าจะได้รับการบอกว่า x เป็นองค์ประกอบของสิ่งที่
  • เกือบทุกอย่างจะเต็มไปด้วยข้อความเริ่มต้นAp,ซึ่งข้อความอธิบายว่า "สถานะของแบบจำลอง p ถูกอธิบายโดย Ap, ฟังก์ชันอัน จำกัด บางส่วน" - ผู้อ่านที่เข้าใจในสัญกรณ์นี้มีแนวโน้มที่จะ "เห็น" ส่วนใดของกฎทุกข้อ?

ไซต์นี้แนะนำคำถามที่เกี่ยวข้องซึ่งมีสัญกรณ์คล้ายกันมากเกี่ยวกับคำถามความสำคัญของ⟨B, s⟩ -> ⟨B ', s'⟩เป็นกฎเริ่มต้นในคำถามนี้เกี่ยวกับขั้นตอนเล็ก ๆ ความหมาย? - สิ่งนี้ถูกแท็กเป็นซีแมนติกส์เชิงปฏิบัติการและดูเหมือนจะเป็นผู้นำที่แข็งแกร่ง เป็นกรอบที่ฉันควรจะตีความตัวเลขเหล่านี้หรือไม่? คุณสามารถสรุปได้อย่างง่ายดายในรูปแบบ "หลักสูตรผิดพลาด" เพื่อให้แม้ว่าฉันไม่สามารถตรวจสอบความถูกต้องของหลักฐานได้อย่างน้อยที่สุดฉันก็สามารถเข้าใจสิ่งที่พวกเขากำลังพูดถึงในส่วนนี้ได้มากขึ้น?

คำตอบ:


25

นี่คือสัญกรณ์มาตรฐานสำหรับกฎการอนุมาน สถานที่ตั้งอยู่เหนือเส้นแนวนอนและบทสรุปจะอยู่ด้านล่างบรรทัด ดังนั้นจึงดูเหมือนว่าจะเป็น "เศษส่วน" แต่มีข้อเสนอเชิงตรรกะอย่างน้อยหนึ่งข้ออยู่เหนือบรรทัดและมีข้อเสนอเดียวด้านล่างบรรทัด หากคุณเห็นป้ายกำกับ (เช่น "LET" หรือ "VAR" ในตัวอย่างของคุณ) ถัดจากชื่อนั่นเป็นเพียงชื่อที่มนุษย์สามารถอ่านได้เพื่อระบุกฎเฉพาะ

นอกจากนี้คุณยังอาจเห็นนี้เรียกว่าหักธรรมชาติหรือGentzen สไตล์หักธรรมชาติ

นี่เป็นสัญกรณ์ทั่วไปในวรรณคดีภาษาโปรแกรม คุณจะเห็นมันทุกที่ มันสะดวกมากสำหรับข้อสรุปชนิดต่าง ๆ และการพิสูจน์โครงสร้างแบบเรียกซ้ำที่เกิดขึ้นในสาขานั้น

คุณจะเห็นสัญลักษณ์นี้ใช้เพื่อแสดงถึงสัจพจน์ / กฎ คุณสามารถนึกถึงแต่ละสัจพจน์เป็นเทมเพลตที่มี "meta-variables" (เช่นexpr ) คุณสามารถแทนที่ตัวแปรเมตาแต่ละตัวด้วยไวยากรณ์บางส่วนจากภาษาการเขียนโปรแกรม (เช่นนิพจน์ใด ๆ ที่ถูกต้องในภาษาการเขียนโปรแกรม) และคุณจะได้รับตัวอย่างของกฎ กฎการอนุมานสัญญาว่าหากข้อเสนอทั้งหมดอยู่เหนือบรรทัดนั้นเป็นจริง (สำหรับบางตัวอย่างของเทมเพลตที่คุณแทนที่ metavariable แต่ละรายการด้วยค่าเดียวกันตลอดกฎ) อย่างสม่ำเสมอข้อเสนอด้านล่างบรรทัดจะเป็นจริงเช่นกัน .


2
การใช้งานที่โดดเด่นอย่างหนึ่งคือการระบุการอนุมานของ Hindley-Milner: คำตอบนี้ “ ส่วนใดของ Milner-Hindley ที่คุณไม่เข้าใจ?” เดินผ่านวิธีการอ่านและใช้กฎชุดนั้น
DylanSp

หนึ่งในการแก้ไขขนาดเล็ก: สถานที่และข้อสรุปเป็นคำตัดสินไม่ได้ข้อเสนอ ข้อเสนอเป็นรูปแบบเฉพาะของการตัดสิน การตัดสินจะเห็นได้ชัดไม่ใช่ความจริง (เพราะแนวคิดของความจริงนั้นยากที่จะกำหนดและไม่น่าสนใจจริงๆสำหรับความหมายของภาษาโปรแกรม)
Gardenhead

7

นี่คือคำอธิบายที่ไม่เป็นทางการซึ่งอาจช่วยให้ผู้คนที่ไม่คุ้นเคยกับสัญลักษณ์อย่างเป็นทางการเพื่อก้าวเท้าเข้าประตู มันไม่ได้แทนที่คำจำกัดความที่เป็นทางการ!

Apเป็นรัฐของระบบหรือโปรแกรมที่ทำงานของคุณ "รัฐ" อาจมีความหมายหลายอย่าง แต่ในกรณีนี้ดูเหมือนว่าจะรวมรายการตัวแปรท้องถิ่นที่กำหนดไว้ทั้งหมดและค่าของมัน เหตุใดAp จึงเป็นฟังก์ชัน เพราะนั่นคือวิธีที่สะดวกในการแสดงการกำหนดตัวแปร: Ap (x)ให้ค่าของตัวแปรx

ทีนี้ลองนำกฎ EXEC มาเป็นตัวอย่าง มันกำหนดความหมายของการดำเนินการคำสั่งcmd1ตามด้วยคำสั่งCMD2คือสิ่งที่เกิดขึ้นกับรัฐApของระบบเมื่อมีการดำเนินcmd1ตามCMD2

  • เหนือเส้น: นี่คือสถานที่ สิ่งที่พวกเขาพูดว่า: "ให้cmd1เป็นคำสั่งถ้าคุณดำเนินการคำสั่งcmd1เมื่อระบบของคุณอยู่ในสถานะApระบบของคุณจะสิ้นสุดในสถานะApใหม่"
  • ด้านล่างบรรทัด: ที่นี่กฎอธิบายความหมายของการเรียกใช้สองคำสั่งcmd1และcmd2ตามลำดับ สิ่งที่กล่าวว่า: "สมมติว่าระบบของคุณอยู่ในสถานะApดำเนินการcmd1แล้วcmd2หมายถึงเรียกใช้cmd2เมื่อระบบของคุณอยู่ในสถานะAp ' " (จำไว้ว่าAp'เป็นสถานะที่คุณได้รับหลังจากดำเนินการcmd1ตามที่กำหนดไว้ใน สถานที่)

กฎอื่น ๆ จะอธิบายความหมายของคำสั่งและนิพจน์แต่ละรายการ ตัวอย่างเช่นกฎ VAR อธิบายความหมายของ "เรียกใช้งาน" ตัวแปร: ถ้าxเป็นตัวแปรท้องถิ่น (เหนือบรรทัด) ดังนั้นการประเมิน / ดำเนินการตัวแปรxหมายความว่าอย่างไร มันเขียนใต้เส้น: เมื่อโปรแกรมของคุณอยู่ในสถานะApประเมินxช่วยให้คุณมีค่าของxคือAp (x)

ฉันหวังว่าจะช่วย


ขอบคุณนี่เป็นความช่วยเหลือที่ดีในการทำความเข้าใจและสิ่งที่ฉันกำลังมองหา! อย่างไรก็ตามมันจะทำให้คำถามแรกของฉันยังไม่ได้รับคำตอบ: สัญกรณ์นี้มีชื่อโดยทั่วไปและ / หรือในบริบทเฉพาะนี้หรือไม่? ฉันเดาว่า "ซีแมนทิกส์ปฏิบัติการ" แต่คำตอบอื่น ๆ ที่นี่จนถึงตอนนี้บอกว่าพวกเขาเป็นเพียงแค่ "กฎการอนุมาน" ฉันเดาว่าถ้าฉันถามคำถามสองส่วนฉันสมควรที่จะได้คำตอบแยกกัน แต่ตอนนี้ฉันขาดระหว่างที่จะยอมรับ :-)
natevw

1
@natevw พวกเขาเป็นกฎการอนุมาน ความหมายในการดำเนินงานเป็นเพียงหนึ่งในหลาย ๆ สิ่งที่มักแสดงด้วยกฎการอนุมาน
Gilles 'หยุดชั่วร้าย'
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.