มันง่ายที่จะสับสนเกี่ยวกับความหมายในการ "แสดง" หรือ "ใช้" จำนวนจริง ในความเป็นจริงเรากำลังเห็นการอภิปรายในความคิดเห็นที่การแสดงนั้นเป็นที่ถกเถียงกัน ขอผมพูดเรื่องนี้ก่อนนะ
เราจะรู้ได้อย่างไรว่าการดำเนินการถูกต้อง?
ทฤษฎีที่อธิบายถึงวิธีการที่จะเป็นตัวแทนสิ่งที่อยู่ในคอมพิวเตอร์จะเข้าใจได้ แนวคิดพื้นฐานคือกำหนดชุดเราจะเลือกประเภทข้อมูลและทุก ๆชุดของค่าประเภทซึ่งรับรู้ได้ เราเขียนเมื่อเป็นค่าที่ตระหนักxตัวอย่างเช่น (ฉันจะใช้ Haskell โดยไม่มีเหตุผล) การใช้งานที่เหมาะสมของอาจเป็นประเภทข้อมูลที่เมื่อประเมินค่าตัวเลข ( โดยเฉพาะอย่างยิ่งτ x ∈ X τ วี⊢ x ∈ X วีx Nวี⊢ k ∈ Nวี¯ k T R ยูอี ⊢ 42 ∈ N F ลิตรs อี ⊢ n ∈ N n ≠ 42Xτx∈Xτv ⊢ x ∈ Xโวลต์xNInteger
v⊢k∈Nvk¯¯¯-42
ไม่ได้แสดงถึงจำนวนธรรมชาติและไม่มีโปรแกรมการแยกความแตกต่าง) แต่โจ๊กเกอร์บางตัวสามารถเดินผ่านและแนะนำให้เราใช้Bool
เพื่อแสดงตัวเลขธรรมชาติด้วยและสำหรับคำถามที่ทำไมสิ่งนี้ถึงไม่ถูกต้อง เราจำเป็นต้องมีเกณฑ์True⊢42∈NFalse⊢n∈Nn≠42
ในกรณีของ "หมายเลขโจ๊กเกอร์" การสังเกตง่าย ๆ คือไม่สามารถเพิ่มการเติมได้ สมมติว่าผมบอกคุณผมมีสองหมายเลขทั้งตัวแทนจาก{} คุณสามารถให้ realizer สำหรับผลรวมของพวกเขา? ขึ้นอยู่กับว่าผลรวมเป็น 42 แต่คุณไม่สามารถบอกได้ เนื่องจากการเพิ่มเป็น "ส่วนสำคัญของตัวเลขธรรมชาติ" จึงไม่สามารถยอมรับได้ กล่าวอีกนัยหนึ่งการใช้งานไม่ได้เกี่ยวกับชุด แต่เกี่ยวกับโครงสร้างกล่าวคือเราต้องแสดงชุดในลักษณะที่เป็นไปได้ที่จะใช้โครงสร้างที่เกี่ยวข้อง ขอให้ฉันเครียด:False
เราใช้โครงสร้างไม่ใช่ชุดเปล่า ดังนั้นเราต้องสามารถใช้โครงสร้างทั้งหมดพร้อมกับการดำเนินการและสัจพจน์ทั้งหมดเพื่อให้การดำเนินการถูกต้อง
หากคุณไม่ปฏิบัติตามหลักการนี้คุณจะต้องแนะนำเกณฑ์ทางคณิตศาสตร์อื่นของความถูกต้อง ฉันไม่รู้จักหนึ่ง
ตัวอย่าง: การแทนค่าตัวเลขธรรมชาติ
สำหรับตัวเลขธรรมชาติโครงสร้างที่เกี่ยวข้องถูกอธิบายโดยสัจพจน์ของ Peano และสัจพจน์ที่สำคัญที่ต้องดำเนินการคือการเหนี่ยวนำ (แต่ยัง , ตัวตายตัวแทน, +และ× ) เราสามารถคำนวณได้โดยใช้ความสามารถในการทำให้เป็นจริงสิ่งที่การนำไปปฏิบัติใช้ในการเหนี่ยวนำทำได้ มันจะกลายเป็นแผนที่ (ซึ่งเป็นประเภทข้อมูลที่ไม่รู้จักซึ่งแสดงถึงจำนวนธรรมชาติ)0+×nat
induction : 'a -> (nat -> 'a -> 'a) -> 'nat -> 'a
ความพึงพอใจและinduction x f zero = x
induction x f (succ n) = f n (induction x f n)
ทั้งหมดนี้มาจากความเป็นจริง เรามีเกณฑ์: การดำเนินการตามจำนวนธรรมชาตินั้นถูกต้องเมื่ออนุญาตให้มีการใช้งานสัจพจน์ของ Peano ผลที่คล้ายกันจะรับได้ถ้าเราใช้ในลักษณะของตัวเลขที่พีชคณิตเริ่มต้นสำหรับ functor XX↦1+X
การใช้งานที่ถูกต้องของจำนวนจริง
ให้เราหันความสนใจไปที่จำนวนจริงและคำถามที่อยู่ในมือ คำถามแรกที่ถามคือ "โครงสร้างที่เกี่ยวข้องของจำนวนจริงคืออะไร" คำตอบคือ: Archimedean Cauchy ข้อมูลสั่งซื้อสมบูรณ์ นี่คือความหมายที่จัดตั้งขึ้นของ "ตัวเลขจริง" คุณไม่ได้เปลี่ยนมันได้รับการแก้ไขโดยคนอื่นสำหรับคุณ (ในกรณีของเราทางเลือก Dedekind reals กลายเป็น isomorphic ไปยัง Cauchy reals ซึ่งเรากำลังพิจารณาอยู่ที่นี่) คุณไม่สามารถนำส่วนใดส่วนหนึ่งของมันไปได้ คุณไม่ได้รับอนุญาตให้พูดว่า "ฉันไม่สนใจเกี่ยวกับการนำไปใช้เพิ่มเติม" หรือ "ฉันไม่สนใจคำสั่งซื้อ" หากคุณทำเช่นนั้นคุณจะต้องไม่เรียกมันว่า "หมายเลขจริง" แต่เป็น "หมายเลขจริงที่เราลืมลำดับเชิงเส้น"
ฉันจะไม่เข้าไปดูรายละเอียดทั้งหมด แต่ให้ฉันอธิบายว่าส่วนต่าง ๆ ของโครงสร้างให้การดำเนินการต่าง ๆ ใน reals:
- Archimedeanความจริงเป็นเรื่องเกี่ยวกับการคำนวณเหตุผลประการของ reals
- โครงสร้างฟิลด์ให้การดำเนินการทางคณิตศาสตร์ตามปกติ
- คำสั่งเชิงเส้นทำให้เรามีกระบวนการsemidecidableสำหรับการทดสอบx<y
lim : (nat -> real) -> real
(xn)nม. , n|xn−xm|≤2min(n,m)m,n
สิ่งที่เราไม่ได้รับคือฟังก์ชั่นทดสอบเพื่อความเท่าเทียมกัน ไม่มีความจริงในสัจพจน์สำหรับ reals ซึ่งถามว่าจะตัดสินใจได้ (ในทางตรงกันข้ามสัจพจน์ของ Peano แปลว่าตัวเลขธรรมชาตินั้นสามารถนำมาคำนวณได้และคุณสามารถพิสูจน์ได้ว่าโดยการใช้เพียงเพื่อการออกกำลังกายที่สนุกสนาน)=eq : nat -> nat -> Bool
induction
มันเป็นความจริงที่การแทนค่าทศนิยมปกติของ reals ที่มนุษยชาติใช้นั้นไม่ดีเพราะด้วยเหตุนี้เราจึงไม่สามารถใช้การเพิ่มได้ จุดลอยตัวกับ mantissa ที่ไม่มีที่สิ้นสุดก็ล้มเหลวเช่นกัน (แบบฝึกหัด: ทำไม?) สิ่งที่ทำงาน แต่มีการลงนามในการเป็นตัวแทนหลักคือหนึ่งในสิ่งที่เราอนุญาตให้ตัวเลขเชิงลบเช่นเดียวกับคนในเชิงบวก หรือเราสามารถใช้ลำดับของการปันส่วนที่เป็นไปตามการทดสอบ Cauchy อย่างรวดเร็วตามที่ระบุไว้ข้างต้น
การเป็นตัวแทนของ Tsuyoshi นั้นได้ดำเนินการบางอย่าง แต่ไม่ใช่R
ขอให้เราพิจารณาการแทนค่าของ reals ต่อไปนี้:แท้จริงถูกแทนด้วยคู่โดยที่เป็นลำดับของ Cauchy อย่างรวดเร็วที่มาบรรจบกับและคือบูลีนที่ระบุว่าเป็นจำนวนเต็ม เพื่อให้สิ่งนี้เป็นตัวแทนของ reals เราจะต้องดำเนินการเพิ่ม แต่เนื่องจากปรากฎว่าเราไม่สามารถคำนวณแฟล็กบูลีนได้ ดังนั้นนี่ไม่ใช่ตัวแทนของ reals แต่มันก็ยังคงเป็นตัวแทนของอะไรบางอย่างกล่าวคือส่วนย่อยของ reals( q , b ) ( q n ) n x b x Z ∪ ( R ∖ Z ) Z ∪ ( R ∖ Z ) Rx(q,b)(qn)nxbxZ∪(R∖Z). อันที่จริงตามการตีความ realizability สหภาพจะดำเนินการด้วยธงระบุว่าส่วนหนึ่งของสหภาพเราอยู่ในวิธีโดยคือไม่เท่ากับถ้าคุณเชื่อในการยกเว้นตรงกลางซึ่งไม่สามารถดำเนินการได้และดังนั้นจึงเป็นเรื่องที่ค่อนข้างไม่เกี่ยวข้องสำหรับการสนทนานี้ เราถูกคอมพิวเตอร์บังคับให้ทำสิ่งต่าง ๆ ด้วยสัญชาตญาณZ∪(R∖Z)R
เราไม่สามารถทดสอบว่าจริงเป็นจำนวนเต็มหรือไม่
สุดท้ายให้ฉันตอบคำถามที่ถาม ตอนนี้เรารู้แล้วว่าการเป็นตัวแทนที่แท้จริงของ reals นั้นเป็นไปตามลำดับของ Cauchy อย่างรวดเร็วของการปันส่วน (ทฤษฎีบทสำคัญกล่าวว่าการแสดงสอง reals ซึ่งยอมรับได้จริง ๆ แล้ว isomorphic)
ทฤษฎีบท:การทดสอบว่าจริงเป็นจำนวนเต็มไม่สามารถตัดสินใจได้
พิสูจน์ สมมติว่าเราสามารถทดสอบได้ว่าของจริงนั้นเป็นจำนวนเต็มหรือไม่ ความคิดที่จะช่วยให้คุณพิสูจน์ทฤษฎีบททั่วไปได้มากขึ้นถ้าคุณต้องการคือการสร้างลำดับ Cauchy อย่างรวดเร็วของจำนวนที่ไม่ใช่จำนวนเต็มซึ่งแปรสภาพเป็นจำนวนเต็ม นี้เป็นเรื่องง่ายเพียงแค่ใช้เวลาn} ถัดไปแก้ไขปัญหาการหยุดพักดังต่อไปนี้ รับเครื่องทัวริงกำหนดลำดับใหม่โดย
นั่นคือลำดับใหม่ดูเหมือนว่าลำดับตราบใดที่x n = 2 - n T ( y n ) n y n = { x n หาก T ไม่ได้หยุดภายใน n ขั้นตอนx m หาก T หยุดในขั้นตอน m และ m ≤ n ( x n ) n T x ม T มT Z = Lim n Y n Z 0(xn)nxn=2−nT(yn)n
yn={xnxmif T has not stopped within n stepsif T stopped in step m and m≤n
(xn)nTวิ่ง แต่แล้วก็จะได้รับการ "ติด" ที่ถ้าหยุดในขั้นตอนม.สำคัญมากลำดับใหม่นี้ยังเป็นลำดับ Cauchy ที่รวดเร็ว (และเราสามารถพิสูจน์ได้โดยไม่ทราบว่าหยุดทำงาน) ดังนั้นเราสามารถคำนวณขีด จำกัด ของได้เพราะการเป็นตัวแทน reals ของเรานั้นถูกต้อง ทดสอบว่าเป็นจำนวนเต็มหรือไม่ ถ้าเป็นเช่นนั้นมันจะต้องเป็นและจะเกิดขึ้นก็ต่อเมื่อทำงานตลอดไป มิฉะนั้นไม่ใช่จำนวนเต็มดังนั้นต้องหยุดทำงาน QED
xmTmTz=limnynz0z TTzT
การออกกำลังกาย: ปรับหลักฐานข้างต้นเพื่อแสดงว่าเราไม่สามารถทดสอบหาจำนวนตรรกยะ จากนั้นปรับใช้เพื่อแสดงว่าเราไม่สามารถทดสอบสิ่งที่ไม่สำคัญ (นี่ยากกว่าเล็กน้อย)
บางครั้งผู้คนสับสนเกี่ยวกับธุรกิจการทดสอบทั้งหมดนี้ พวกเขาคิดว่าเราได้พิสูจน์แล้วว่าเราไม่สามารถทดสอบได้ว่าของจริงเป็นจำนวนเต็มหรือไม่ แต่แน่นอนว่า 42 เป็นของจริงและเราสามารถบอกได้ว่ามันเป็นจำนวนเต็มหรือไม่ ในความเป็นจริงใด ๆโดยเฉพาะอย่างยิ่งจริงเรามากับ , ,ฯลฯ เราสามารถสมบูรณ์ดีบอกได้ว่าพวกเขาเป็นจำนวนเต็ม แม่นยำเราสามารถบอกได้เพราะเรามีข้อมูลเพิ่มเติม: ไม่ได้ให้ reals เหล่านี้กับเราตามลำดับ แต่เป็นการแสดงออกถึงสัญลักษณ์ที่เราสามารถคำนวณบิตของ Tsuyoshi ได้ ทันทีที่มีข้อมูลเพียงอย่างเดียวที่เรามีเกี่ยวกับความจริงก็คือลำดับของการประมาณตามเหตุผลที่มาบรรจบกัน (และฉันทำ88 LN 89 จเธ√sin1188ln89 neπ163√ไม่ได้หมายถึงการแสดงออกเชิงสัญลักษณ์อธิบายลำดับ แต่เป็นกล่องสีดำที่ออกผลลัพธ์เป็นระยะ -th กับการป้อนข้อมูล ) แล้วเราจะเป็นเช่นเดียวกับทำอะไรไม่ถูกเป็นเครื่องnn
คุณธรรมของเรื่องราว
ไม่มีเหตุผลที่จะพูดคุยเกี่ยวกับการนำชุดไปใช้เว้นแต่ว่าเรารู้ว่าการดำเนินการประเภทใดที่เราต้องการจะทำ