วิธีการพิสูจน์หลักฐานของคุณ


59

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

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

  1. กรอกรายละเอียด มีข้อผิดพลาดมากมายในสถานที่ที่คุณเขียนว่า "ชัดเจนว่า ... ", "โดยไม่สูญเสียความเป็นไปได้ ... " ฯลฯ
  2. ลองตัวเลข ลองใช้กรณีที่รุนแรงเช่น "จะเกิดอะไรขึ้นเมื่อฉันตั้งค่าหรือ "n = 1,000n=1n=1000
  3. เก็บสมุดบันทึกที่สะอาด เขียนทุกวันและเปรียบเทียบกับโน้ตย่อของคุณ ฉันพยายามเขียนด้วยน้ำยางด้วยฉันพบข้อผิดพลาดมากมายเช่นนี้

กลยุทธ์ทั่วไปที่คุณใช้ในการตรวจสอบหลักฐานของคุณคืออะไร?

วัตถุประสงค์ของคำถามนี้คือทำให้ชุมชนเป็นวิกิ


หากคำถามปรากฏขึ้นเป็นส่วนตัวโปรดช่วยฉันปรับปรุงให้ดีขึ้น
Marcos Villagra

ฉันจะสร้างชุมชน -wiki นี้ได้อย่างไร
Marcos Villagra

1
เฮ้เจ๋ง! ฉันสนใจคำตอบของคำถามนี้จริงๆ นอกจากนี้ฉันสามารถขอบคุณ # 3 ของคุณ (เมื่อฉันคิดเกี่ยวกับมันฉันมีกองกระดาษกระจัดกระจายทุกที่เมื่อฉันตั้งใจทำงานกับปัญหาอย่างตั้งใจซึ่งจะถูกย้ายแบบสุ่ม Yuck.) ฉันพบข้อผิดพลาดก่อนหน้านี้จากปัญหานี้และจบลงด้วยการสูญเสีย เวลาอันดี
Daniel Apon

@Daniel: ฉันมีปัญหาเดียวกัน !! นั่นเป็นเหตุผลว่าทำไมหลังจากที่ฉันฟินน์พร้อมหลักฐานฉันจึงเขียนเวอร์ชั่นลาเท็กซ์ทันที เป็นเรื่องที่ดีที่จะรู้ว่าฉันไม่ใช่คนที่ยุ่งเหยิงเพียงคนเดียวที่เก็บทุกอย่างได้ทุกที่ :-)
Marcos Villagra

1
คุณตั้งค่าสถานะเพื่อความสนใจของผู้ดูแล
Suresh Venkat

คำตอบ:


39

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

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

  1. คำวิเศษณ์ "ชัดเจน", "ชัดเจน" ฯลฯ
  2. อ้างอิงถึงการพิสูจน์ผลลัพธ์ก่อนหน้าแทนการอ้างอิงถึงผลลัพธ์เอง
  3. การใช้ผลที่ไม่คาดคิดกับเงื่อนไขทางเทคนิคจำนวนมาก

นอกจากนี้ยังมีกลิ่นที่ลึกซึ้งยิ่งขึ้น ตัวอย่างเช่นหากการพิสูจน์ใช้ทฤษฎีบททวินามเพื่อขยายการแสดงออกและหลังจากนั้นใช้ทฤษฎีบททวินามเพื่อกลับสู่รูปแบบปิดอาจจะมีการจัดการโดยตรงในรูปแบบปิดที่ให้ผลลัพธ์เดียวกัน

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

หมายเหตุ: ความหวังของฉันในคำตอบนี้คือการให้คำตอบที่เข้มงวดกับคำตอบที่เข้มงวดของ Lamport วิธีการเขียนหลักฐานอ้างอิงในคำตอบของ M. Alaggan


4
ฉันพูดแบบนี้ตลอดเวลากับนักเรียนของฉันและพวกเขาคิดว่าฉันบ้า แน่นอนที่จริงผมเรียกร้องที่ฉันสามารถกลิ่นข้อผิดพลาดซึ่งอาจจะเป็นส่วนหนึ่งของปัญหา;)
Suresh Venkat

7
@Suresh: นักเรียนคนนี้คิดว่าคุณบ้าด้วยเหตุผลที่แตกต่างกัน ;-)
John Moeller

4
ในบันทึกกลิ่นรหัสสิ่งที่ฉันพยายามกลั่นกรองในบทพิสูจน์ของผู้อื่นมักรวมถึงโซ่ที่ไม่เท่าเทียมกัน บ่อยครั้งที่ข้อผิดพลาดพื้นฐานมีนิสัยที่คลานอยู่ในการสืบหาที่ยากขึ้น
John Moeller

23

มีกระดาษที่ดีมากโดย Leslie Lamport ( วิธีเขียนหลักฐาน ) จริงๆแล้วมันเป็นข้อเสนอของเขาในรูปแบบของการเขียนบทพิสูจน์ที่มีรายละเอียดในลักษณะที่:

(1) ช่วยให้ตรวจจับข้อผิดพลาดได้อย่างตรงไปตรงมา

(2) ทำให้ชัดเจนว่าสมมติฐานและทฤษฎีบทใดที่ใช้ในส่วนใดซึ่งทำให้ง่ายที่จะเห็นว่าเกิดอะไรขึ้นถ้าคุณต้องการ (ตัวอย่าง) ใช้สมมติฐานที่อ่อนแอกว่า

นอกจากนี้ยังมีประสบการณ์ชุมชนและแรงบันดาลใจความเห็นเกี่ยวกับเทคนิคนี้ใน MO ซึ่งแสดงให้เห็นประสบการณ์โดยทั่วไป (และแหล่งข้อมูลอื่น ๆ เช่นกัน)

ปรับปรุง: มีรุ่นใหม่วิธีการเขียนหลักฐานศตวรรษที่ 21


5
หลักฐานเหล่านี้คล้ายกันมากกับสิ่งที่เราจะเขียนในรายงานการวิจัยของ PL สายโซ่ของตรรกะนั้นชัดเจนมาก หลังจากเรียนรู้วิธีการอ่านและชื่นชมการพิสูจน์แบบ PL ฉันพบว่าการพิสูจน์ทางคณิตศาสตร์แบบ "ปกติ" เป็นเรื่องยาก หลักฐานดังกล่าวมักต้องการให้ผู้อ่านคิดในลักษณะเดียวกับที่ผู้เขียนทำและเมื่อคุณคุ้นเคยกับรูปแบบการพิสูจน์ที่แตกต่างกันนี่ไม่ใช่กรณี (สำหรับฉันอย่างน้อย!)
Christopher Monsanto

2
@Christopher Monsanto: PL ย่อมาจากภาษาโปรแกรม? ฉันอยากจะขอบคุณถ้าคุณสามารถพูดถึงตัวอย่างเช่น (กระดาษดังกล่าว) เพื่อตรวจสอบ :)
เอ็ม Alaggan

5
ฉันมักจะรู้สึกว่าสิ่งที่ Lamport แนะนำไม่เข้ากันได้กับ "A Mathematician's Lament" ของ Paul Lockhart ( maa.org/devlin/LockhartsLament.pdf )
Marcos Villagra


14

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

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

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


คำตอบส่วนใหญ่ของคุณมุ่งเน้นไปที่การตรวจสอบหลักฐานโดยตรวจสอบว่าพวกเขาเป็นเท็จในสถานการณ์ที่พวกเขาควรเป็นเท็จ ไม่ได้ผลเพราะไม่ได้ตรวจสอบว่าทฤษฎีบทนั้นเป็นจริงตรงไหนที่ควรจะเป็นจริง! ตัวอย่างเช่นสมมติว่าฉันได้ "พิสูจน์" ว่าทุกเลขคี่หารด้วยสาม ฉันตรวจสอบว่าการพิสูจน์ของฉันล้มเหลวหากฉันขยายเป็นเลขคู่เช่นกัน: เนื่องจากสี่ไม่หารด้วยสาม ไชโยหลักฐานของฉันจะต้องถูกต้อง!
David Richerby

12

ฉันคิดว่าวิธีที่ปลอดภัยที่สุดวิธีหนึ่งคือการพิสูจน์หลักฐานอิสระหลายอย่าง จากนั้นคุณสามารถมั่นใจได้ว่าผลลัพธ์หลักของคุณนั้นถูกต้องแม้ว่าคุณจะมีข้อผิดพลาดในรายละเอียดของการพิสูจน์


9

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


5
PNP

6

ฉันมักจะตรวจสอบอีกครั้งพิสูจน์ของฉันกับหลักฐานตรวจสอบเช่นCOQหรือISABELLE หากคุณสามารถพิสูจน์หลักฐานของคุณในภาษาการเขียนโปรแกรมเหล่านี้คุณสามารถมั่นใจได้ว่าหลักฐานของคุณถูกต้อง ง่ายเหมือนแลมบ์ดาเทอม;)


ฉันไม่เคยใช้ Coq แต่ฉันควรลอง ในความเป็นจริงฉันกำลังพยายามพิสูจน์ขอบเขตที่ต่ำกว่าด้วย mathematica แต่ฉันไม่พบวิธีที่ถูกต้อง บางทีฉันอาจต้องการแพ็คเกจพิเศษหรืออะไรก็ได้
Marcos Villagra

1
บางทีมันอาจจะยาว แต่ถ้าคุณต้องการพิสูจน์ขอบเขตที่ต่ำกว่าด้วย reals คุณสามารถตรวจสอบไลบรารี่
Gopi

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