คำถามติดแท็ก formal-methods

เทคนิคเฉพาะทางคณิตศาสตร์สำหรับข้อกำหนดการพัฒนาและการตรวจสอบซอฟต์แวร์และระบบฮาร์ดแวร์

2
การผลิตเหรียญคืออะไร
ฉันเคยได้ยินเรื่องการเหนี่ยวนำ ช่วยให้คุณสามารถสร้างโครงสร้าง จำกัด จากวัตถุขนาดเล็กและให้หลักการพิสูจน์สำหรับการให้เหตุผลเกี่ยวกับโครงสร้างดังกล่าว ความคิดนั้นชัดเจนเพียงพอ แต่สิ่งที่เกี่ยวกับการผลิตเหรียญ? มันทำงานยังไง? เราจะพูดอะไรข้อสรุปเกี่ยวกับโครงสร้างอนันต์ มีอย่างน้อยสองมุมที่จะกล่าวคือการทำเงินเป็นวิธีการกำหนดสิ่งต่าง ๆ และเป็นเทคนิคการพิสูจน์ เกี่ยวกับการจ่ายเงินเป็นเทคนิคการพิสูจน์ความสัมพันธ์ระหว่างการจ่ายเงินกับการแบ่งเงิน bisimulation คืออะไร?

2
ความเท่าเทียมกันของBüchiออโตมาตะและเชิงเส้น -calculus
มันเป็นความจริงที่รู้กันว่าทุกสูตร LTL สามารถแสดงได้โดยBüchi -automaton แต่เห็นได้ชัดว่าBüchiออโตมาตาเป็นโมเดลที่ทรงพลังและแสดงออกได้มากกว่า ฉันเคยได้ยินที่ไหนที่Büchiออโตมาจะเทียบเคียงกับ linear-time -calculus (นั่นคือ -calculus ที่มี fixpoint ปกติและโอเปอเรเตอร์ชั่วคราวเพียงหนึ่ง )μ μ Xωω\omegaμμ\muμμ\muXX\mathbf{X} มีอัลกอริทึม (การพิสูจน์เชิงสร้างสรรค์) ของความเท่าเทียมกันนี้หรือไม่?

6
อัลกอริทึมในการแก้ปัญหา“ การหยุดชะงัก” ของทัวริง
คำถามนี้ถูกย้ายจาก Theoretical Computer Science Exchange Exchange เนื่องจากสามารถตอบได้ใน Computer Science Stack Exchange อพยพ 7 ปีที่ผ่านมา "Alan Turing พิสูจน์แล้วในปี 1936 ว่าอัลกอริทึมทั่วไปเพื่อแก้ปัญหาการหยุดชะงักสำหรับคู่อินพุตโปรแกรมที่เป็นไปได้ทั้งหมดไม่มีอยู่" ฉันสามารถหาอัลกอริทึมทั่วไปเพื่อแก้ปัญหาการหยุดพักสำหรับบางคู่ที่เป็นไปได้ของโปรแกรมหรือไม่ ฉันสามารถหาภาษาโปรแกรม (หรือภาษา) ที่ฉันใช้กับโปรแกรมทุกประเภทในภาษานี้ได้หรือไม่มันสามารถตัดสินใจได้ว่าโปรแกรมจะหยุดทำงานหรือรันตลอดไปหรือไม่?

3
เส้นทางไปยังวิธีการที่เป็นทางการ
ไม่ใช่เรื่องแปลกที่จะเห็นนักเรียนเริ่มปริญญาเอกด้วยพื้นฐานที่ จำกัด ในวิชาคณิตศาสตร์และด้านวิทยาศาสตร์คอมพิวเตอร์อย่างเป็นทางการ เห็นได้ชัดว่ามันยากมากสำหรับนักเรียนที่จะกลายเป็นนักวิทยาศาสตร์คอมพิวเตอร์เชิงทฤษฎี แต่มันจะดีถ้าพวกเขาสามารถเข้าใจด้วยการใช้วิธีการที่เป็นทางการและการอ่านเอกสารที่มีวิธีการที่เป็นทางการ เส้นทางระยะสั้นที่ดีที่เริ่มต้นนักศึกษาปริญญาเอกสามารถทำตามเพื่อให้ได้รับการเปิดเผยเพื่อให้พวกเขาอ่านเอกสารที่เกี่ยวข้องกับวิธีการที่เป็นทางการและในที่สุดการเขียนเอกสารที่ใช้วิธีการทางการดังกล่าว? ในแง่ของบริบทฉันคิดมากขึ้นในแง่ของทฤษฎี B และการตรวจสอบอย่างเป็นทางการว่าเป็นสิ่งที่พวกเขาควรเรียนรู้ แต่ยังมีหัวข้อ TCS แบบคลาสสิกเช่นทฤษฎีออโตมาตะ

3
เมื่อใดที่การจำลองทั้งสองไม่ได้เป็นการแบ่งครึ่ง
เมื่อได้รับการเปลี่ยนระบบ โดยที่คือชุดของรัฐเป็นชุดของป้ายกำกับและเป็นความสัมพันธ์แบบไตรภาค ตามปกติการเขียนสำหรับ(P,การเปลี่ยนเลเบลแสดงว่าระบบในสถานะเปลี่ยนสถานะเป็นด้วยเลเบลซึ่งหมายความว่าเป็นการกระทำที่สังเกตได้ซึ่งทำให้เกิดการเปลี่ยนแปลงสถานะS Λ → ⊆ S × Λ × S P α → Q ( P , α , Q ) ∈ → P α →คิวพีคิวα α( S, Λ , → )(S,Λ,→)(S,\Lambda,\to)SSSΛΛ\Lambda→ ⊆ S× Λ × S→⊆S×Λ×S\to\subseteq S\times\Lambda\times Sp →αQp→αqp \stackrel\alpha\rightarrow q( p , α , q) ∈ →(p,α,q)∈→(p,\alpha,q)\in\top …

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

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

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

2
โปรแกรมความถูกต้องสเปค
จากวิกิพีเดีย: ในทางวิทยาการคอมพิวเตอร์เชิงทฤษฎีความถูกต้องของอัลกอริทึมถูกยืนยันเมื่อมีการกล่าวว่าอัลกอริทึมนั้นถูกต้องตามข้อกำหนด แต่ปัญหาคือการได้สเปค "ที่เหมาะสม" ไม่ใช่งานที่ไม่สำคัญและไม่มีวิธีการที่ถูกต้อง 100% (เท่าที่ฉันรู้) เพื่อให้ได้สิ่งที่ถูกต้องมันเป็นเพียงการประมาณดังนั้นถ้าเราจะ ใช้เพรดิเคตเป็นสเปคเพียงเพราะมัน "ดูเหมือน" เหมือน "หนึ่ง" ทำไมไม่ลองใช้โปรแกรมให้ถูกต้องเพียงเพราะมัน "ดู" ถูกต้อง?

2
คำถามเกี่ยวกับเครื่องจักรทัวริงที่ไม่มีประโยชน์
ตกลงดังนั้นนี่คือคำถามจากการทดสอบที่ผ่านมาในระดับทฤษฎีการคำนวณของฉัน: สถานะที่ไร้ประโยชน์ใน TM คือสถานะที่ไม่เคยป้อนลงในสตริงอินพุตใด ๆ ปล่อย พิสูจน์ว่านั้นไม่สามารถตัดสินใจได้U S E L E S S T MUSELESSTM={⟨M,q⟩∣q is a useless state in M}.USELESSTM={⟨M,q⟩∣q is a useless state in M}.\mathrm{USELESS}_{\mathrm{TM}} = \{\langle M, q \rangle \mid q \text{ is a useless state in }M\}.USELESSTMUSELESSTM\mathrm{USELESS}_{\mathrm{TM}} ฉันคิดว่าฉันมีคำตอบ แต่ฉันไม่แน่ใจว่าถูกต้องหรือไม่ จะรวมไว้ในส่วนคำตอบ

3
เหตุใดรัฐจึงไม่เปลี่ยนแปลงในซีแมนทิกส์การปฏิบัติการขั้นตอนเล็ก ๆ ของการวนรอบสักครู่?
ฉันมักจะเห็นว่าในการเป็นตัวแทนความหมายการดำเนินงานโครงสร้างสำหรับห่วงขณะที่สถานะของโปรแกรมจะไม่เปลี่ยนแปลง: ( w h i l eBdโอS, σ) → ( ฉันfBt h e nS; ( w h i l eBdโอS)e l s eSKผมP, σ)(whileBdoS,σ)→(ifBthenS;(whileBdoS)elseSKIP,σ)(while \> B \> do \>S, \sigma) \rightarrow (if \>B \> then \>S; (while \> B \> do \>S) \> else \> SKIP, \sigma) สำหรับฉันแล้วสิ่งนี้ไม่ง่ายหากสถานะไม่เปลี่ยนแปลง (เช่นสถานะของหน่วยความจำยังคงเหมือนเดิม) จากนั้น …

2
แนะนำการตรวจสอบลอจิกลำดับแรก
ฉันพยายามสอนวิธีการต่าง ๆ ในการตรวจสอบซอฟต์แวร์ด้วยตนเอง ฉันได้อ่านบทความ เท่าที่ฉันเรียนรู้ตรรกะเชิงประพจน์ที่มีชั่วขณะมักใช้การตรวจสอบแบบจำลองกับนักแก้ปัญหา SAT (ในระบบที่ตอบโต้ต่อเนื่อง) แต่ตรรกะอันดับหนึ่งเกี่ยวกับโลกชั่วคราวเป็นอย่างไร มันใช้ตัวพิสูจน์บทหรือไม่? หรือมันสามารถใช้ SAT ได้ด้วย? พอยน์เตอร์ใด ๆ สำหรับหนังสือหรือบทความสำหรับผู้เริ่มต้นในเรื่องนี้ชื่นชมมาก
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.