อะไรคือความแตกต่างทางความหมายระหว่างเซตและประเภท?


33

แก้ไข: ตอนนี้ฉันถามคำถามที่คล้ายกันเกี่ยวกับความแตกต่างระหว่างหมวดหมู่และชุด

เวลาที่ฉันอ่านเกี่ยวกับประเภททฤษฎี (ซึ่งเป็นที่ยอมรับค่อนข้างเป็นทางการ) ทุกฉันไม่สามารถจริงๆเข้าใจว่ามันแตกต่างจากการตั้งทฤษฎีเป็นรูปธรรม

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

ดังนั้นในที่สุดคอนกรีตทางเป็นไปได้ว่าสิ่งที่มันไม่ได้บ่งบอก เกี่ยวกับxจะบอกว่ามันเป็นประเภทTเมื่อเทียบกับบอกว่ามันเป็นองค์ประกอบในชุด ?S

(คุณสามารถเลือกประเภทและชุดที่ทำให้การเปรียบเทียบชัดเจนที่สุด)


บริบทที่คุณใช้ / ได้ยินคำว่า "ประเภท" คืออะไร มันเป็นตามชื่อของคุณภาษาการเขียนโปรแกรม? เพราะฉันคิดว่าคำตอบด้านล่างถือว่าเป็นอย่างอื่น
einpoklum - คืนสถานะโมนิก้า

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

บทบาทของประเภทใด ประเภทที่คุณเห็นในเอกสารทางคณิตศาสตร์ / ตำราหรือประเภทของตัวแปรในโปรแกรมคอมพิวเตอร์?
einpoklum - คืนสถานะโมนิก้า

1
@ einpoklum คำถามนี้เกี่ยวกับสิ่งที่อยู่ในเอกสารทางคณิตศาสตร์ (แม้ว่าฉันจริง ๆ แล้วยังสนใจที่จะทราบถึงความแตกต่างพื้นฐานระหว่างชนิดในคณิตศาสตร์และชนิดในภาษาการเขียนโปรแกรมถ้ามี แต่นั่นไม่ใช่สิ่งที่คำถามนี้เกี่ยวกับ)
user56834

คำตอบ:


29

เพื่อให้เข้าใจถึงความแตกต่างระหว่างชุดและประเภทที่มีคนที่จะกลับไปก่อนความคิด -mathematical ของ "คอลเลกชัน" และ "การก่อสร้าง" และดูว่าชุดและประเภทmathematizeเหล่านี้

มีสเปกตรัมของความเป็นไปได้ในสิ่งที่เกี่ยวกับคณิตศาสตร์ สองสิ่งเหล่านี้คือ:

  1. เราคิดว่าคณิตศาสตร์เป็นกิจกรรมที่วัตถุทางคณิตศาสตร์ถูกสร้างขึ้นตามกฎบางอย่าง (คิดว่ารูปทรงเรขาคณิตเป็นกิจกรรมของการสร้างจุดเส้นและวงกลมด้วยไม้บรรทัดและเข็มทิศ) ดังนั้นวัตถุทางคณิตศาสตร์จะถูกจัดเรียงตามวิธีการสร้างและมีประเภทของการก่อสร้างที่แตกต่างกัน วัตถุทางคณิตศาสตร์ที่สร้างขึ้นเสมอในบางวิธีที่ไม่ซ้ำกันซึ่งกำหนดประเภทที่เป็นเอกลักษณ์

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

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

มันเป็นธรรมชาติที่จะใช้ชนิดและจินตนาการคอลเลกชันของทุกสิ่งที่เราสามารถสร้างโดยใช้กฎของT นี่คือส่วนขยายของTและไม่ใช่ตัวT ตัวอย่างเช่นต่อไปนี้เป็นสองประเภทที่มีกฎการก่อสร้างต่างกัน แต่มีนามสกุลเหมือนกัน:TTT T

  1. ประเภทคู่ที่nมีการก่อสร้างเป็นจำนวนธรรมชาติและหน้าจะสร้างเป็นหลักฐานแสดงให้เห็นว่าnเป็นจำนวนคู่ที่สำคัญมีขนาดใหญ่กว่า3(n,p)npn3

  2. ประเภทของคู่โดยที่mถูกสร้างเป็นจำนวนธรรมชาติและqถูกสร้างขึ้นเพื่อเป็นหลักฐานแสดงให้เห็นว่าmนั้นมีขนาดเล็กกว่า2เท่า(m,q)mqm2

ใช่สิ่งเหล่านี้เป็นเพียงตัวอย่างเล็กน้อย แต่ประเด็นก็คือทั้งสองประเภทไม่มีส่วนขยายใด ๆ แต่มีกฎการก่อสร้างที่แตกต่างกัน ในทางตรงกันข้ามชุด และ { เมตรN | เมตร  เป็นคี่สำคัญมีขนาดเล็กกว่า  2 }มีความเท่าเทียมกันเพราะพวกเขามีองค์ประกอบเดียวกัน

{nNn is an even prime larger than 3}
{mNm is an odd prime smaller than 2}

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


1
สวยขอบคุณ! คุณช่วยอธิบายรายละเอียดหนึ่งข้อได้ไหม เมื่อคุณแสดงรายการทั้งสองประเภทซึ่งส่วนขยายว่างเปล่าทั้งคู่คุณพูดว่า "ประเภทที่มีองค์ประกอบคือ ... " เพื่อความชัดเจนของฉันนี่เป็นวิธีที่ถูกต้อง 100% ในการพูดหรือไม่? คุณพูดในประโยคก่อนหน้าว่าประเภทไม่ใช่คอลเลกชันดังนั้นจึงดูเหมือนว่าจะไม่มี "องค์ประกอบ" (ซึ่งฉันเชื่อมโยงกับชุด) โดยพื้นฐานแล้ววิธีที่คุณเขียนตอนนี้มันเหมือนกับว่าคุณกำหนดประเภทตามชุดที่เป็นส่วนขยาย หากคุณไม่ได้ตั้งใจทำเช่นนี้คุณสามารถเรียบเรียงพวกเขาให้แม่นยำยิ่งขึ้นเพื่อรวบรวมแนวคิดของพวกเขาเป็นประเภทหรือไม่?
user56834

ส่วนขยายของชนิดเป็นแนวคิดที่มีประโยชน์มากและเนื่องจากมันเป็นชนิดของคอลเลกชันที่เราสามารถพูดว่า "องค์ประกอบของส่วนขยายของชนิด" นี่เป็นเรื่องยุ่งยากดังนั้นจึงมักจะยากที่จะ "องค์ประกอบของประเภท" ฉันลบถ้อยคำเพื่อลดความเป็นไปได้ของความสับสน แต่ระวังนั่นเป็นคำศัพท์ทั่วไป
Andrej Bauer

ขอบคุณสิ่งนี้ชัดเจน ดังนั้นเพื่อติดตามมันถูกต้องที่จะพูดต่อไปนี้? ในการบอกว่าวัตถุคือ "ชนิด T" หมายถึงสิ่งเดียวกันขณะที่วัตถุคือ "องค์ประกอบของส่วนขยายของ T" เพื่อให้มีการโต้เถียงตามธรรมชาติจากประเภทการตั้งค่า แต่การสนทนาไม่ได้ถือไว้เพราะชุดใด ๆ สามารถสร้างได้หลายวิธี โดยพื้นฐานแล้วความแตกต่างระหว่างชุดและประเภทไม่สำคัญจากมุมมองของวัตถุเฉพาะในแง่ที่ว่า: x : Tและx X T (โดยที่X Tคือส่วนขยายของT ) ให้ข้อมูลเดียวกันเกี่ยวกับx . อย่างไรก็ตามxx:TxXTXTTx
user56834

ความแตกต่างมีความเกี่ยวข้องเมื่อเราต้องการพูดคุยเกี่ยวกับประเภทและชุดและคุณสมบัติและความสัมพันธ์ ดังนั้นในคำอื่น ๆ ข้อมูลที่เราสูญเสียเมื่อเราพูดมากกว่าx : Tไม่ได้บอกอะไรเราที่เกี่ยวข้องกับxแต่สิ่งเดียวกันอาจไม่ถือถ้าเราต้องการพูดถึง superset-subset หรือ type- ความสัมพันธ์ย่อย ถูกต้องหรือไม่ xXTx:Tx
user56834

4
ใช่หนึ่งสิ่งมหัศจรรย์ที่หนังสือเหล่านี้อยู่ บางคนควรเขียนมัน
Andrej Bauer

11

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

เมื่อรัฐจิ้งจกไม่ต่อเนื่องประเภท (และเรียงลำดับ) ให้บริการฟังก์ชั่นวากยสัมพันธ์ การเรียงลำดับ / ชนิดทำงานเป็นหมวดหมู่ประโยค ช่วยให้เราทราบว่าสำนวนใดที่มีรูปแบบที่ดี สำหรับตัวอย่างง่ายๆที่ใช้การเรียงลำดับสมมุติว่าเราอธิบายทฤษฎีของปริภูมิเวกเตอร์เหนือสนามโดยพลการเป็นทฤษฎีที่เรียง 2 เรามีการจัดเรียงสำหรับสเกลา, , และจัดเรียงสำหรับเวกเตอร์, V เหนือสิ่งอื่น ๆ อีกมากมายที่เราจะต้องดำเนินการสำหรับการปรับใช้งาน: s ลิตรE : S × V V สิ่งนี้ทำให้เรารู้ว่าs c a l e ( s c a l e)SVscale:S×VVไม่ใช่คำที่มีรูปแบบที่ถูกต้อง ในบริบทของทฤษฎีประเภทการแสดงออกเช่น F ( x )ต้องจะมีประเภท X Yสำหรับบางชนิด XและY ถ้า fไม่ได้มีประเภทของฟังก์ชั่นแล้ว f ( x )ก็ไม่ใช่การแสดงออกที่ดีขึ้น ไม่ว่าจะเป็นการแสดงออกของการเรียงลำดับหรือมีบางประเภทเป็นคำสั่งเมตาตรรกะ มันไม่มีเหตุผลที่จะเขียนสิ่งที่ชอบ: ( x : X )scale(scale(s,v),v)f(x)fXYXYff(x) 3 อย่างแรก, x : Xไม่ใช่สูตร, และอย่างที่สอง, มันไม่ได้มีเหตุผลที่เข้าใจได้เพราะประเภท / ประเภทเป็นสิ่งที่แจ้งให้เราทราบว่าสูตรใดมีรูปแบบที่ดี เราพิจารณาคุณค่าของความจริงของสูตรที่มีรูปแบบที่ดีดังนั้นเมื่อถึงเวลาที่เราพิจารณาว่ามีสูตรบางสูตรอยู่หรือไม่เราก็รู้ดีว่ามันมีรูปร่างดีขึ้นแล้ว!(x:X)y=3x:X

ในการตั้งทฤษฎีและโดยเฉพาะอย่างยิ่ง ZFC สัญลักษณ์เพียงคนเดียวไม่ใช่ตรรกะที่ทุกคนเป็นสัญลักษณ์ความสัมพันธ์สำหรับการเป็นสมาชิกชุด∈ดังนั้นx yจึงเป็นสูตรที่มีรูปแบบที่ดีพร้อมค่าความจริง ไม่มีคำศัพท์อื่นใดนอกจากตัวแปร สัญกรณ์ปกติของทฤษฎีเซตทั้งหมดเป็นส่วนขยายที่ชัดเจนของสิ่งนี้ ยกตัวอย่างเช่นสูตรเช่นF ( x ) = y ที่มักจะถูกนำไปเป็นชวเลข( x , Y ) ที่ตัวเองอาจจะถูกนำมาเป็นชวเลขพี p f p = ( xxyf(x)=y(x,y)fซึ่งเป็นชวเลขพี p f ( z . z pp.pfp=(x,y) ในทุกๆ ชุดสามารถใช้แทน fและทุกอย่างเป็นชุด! เมื่อฉันชี้ให้เห็นในคำถามที่แตกต่างเมื่อเร็ว ๆ นี้ π ( 7 ) = 3โดยที่ π

p.pf(z.zp[z=x(w.wzw=y)])
fπ(7)=3πคือจำนวนจริงคือการแสดงออกทางทฤษฎีเซตที่ถูกต้องและมีความหมาย (และอาจเป็นจริง) โดยพื้นฐานแล้วสิ่งที่คุณเขียนว่าการแยกวิเคราะห์ในทฤษฎีเซตสามารถให้ความหมายบางอย่างได้ มันอาจจะเป็นความหมายที่ปลอมอย่างสมบูรณ์ แต่ก็มีหนึ่งความหมาย เซตยังเป็นวัตถุ "ชั้นหนึ่ง" ในทฤษฎีเซต (พวกมันควรจะดีกว่าเพราะมันเป็นเพียงวัตถุเท่านั้น ) ฟังก์ชันเช่น
f(x)={N,if x=17,if x=QxRR,if x=(Z,N)
เป็นฟังก์ชันที่ถูกต้องตามกฎหมายในทฤษฎีเซต ไม่มีอะไรที่คล้ายคลึงกับทฤษฎีประเภทนี้จากระยะไกล สิ่งที่ใกล้เคียงที่สุดคือการใช้รหัสสำหรับจักรวาล Tarskian เซตคือวัตถุของทฤษฎีเซต ประเภทไม่ใช่วัตถุของทฤษฎีประเภท

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

ทฤษฎีเซตและทฤษฎีประเภทนั้นไม่เหมือนกันเลย


1
มันเป็นเท็จว่าประเภทเป็นเพียงหน่วยงานวากยสัมพันธ์
Andrej Bauer

1
สิ่งนี้มีประโยชน์มาก แต่ประเด็นหลักข้อหนึ่งในคำตอบของคุณทำให้ฉันรำคาญ ฉันคิดว่ามันเป็นความผิดพลาด (ซึ่งหลาย ๆ คนทำหรือไม่ผิดและฉันผิด) ที่จะพูดว่า "ชุดไม่ใช่ชุดของสิ่งต่าง ๆ " ฉันจะบอกว่าชุด IS เป็นชุดของสิ่งต่าง ๆ นั่นคือคุณสมบัติที่สำคัญที่สุดของชุด ในความเป็นจริงแล้วเราจะรู้ได้อย่างไรว่าเช่น ZFC เป็นสัจพจน์ที่ถูกต้องในการเลือก (แทนที่จะเป็นสูตรโดยพลการอย่างสมบูรณ์) โดยที่ไม่สามารถบอกได้ว่าพวกเขาเป็นจริงเนื่องจากเซตที่เป็นชุดของวัตถุ แน่นอนฉันเข้าใจว่า ...
user56834

ทฤษฎีเซตเชิงสัจพจน์ถือว่าเซตเป็นวัตถุและเป็นเพียงสัญลักษณ์เพราะทฤษฎีเซตจริงซึ่งไม่ได้เป็นโครงสร้างทางคณิตศาสตร์ในความรู้สึกตรรกะทางคณิตศาสตร์
user56834

1
@ Programmer2134 เพื่อตอบว่าเราจะต้องเข้าใจความหมายของคำว่า "คอลเลกชัน" เราไม่สามารถแน่ใจได้ว่าพวกเขาเป็น "ถูกต้อง" เว้นแต่คุณจะใช้เวลาในการกำหนดความหมายที่ถูกต้อง อย่างไรก็ตามสิ่งที่เราสามารถพูดได้คือ "เซต" เป็นผลมาจากนักคณิตศาสตร์กว่าร้อยปีที่เต้นตามแนวคิดของคอลเล็กชั่นโดยมองหาระบบที่สอดคล้องกันซึ่งตรงกับแนวคิดที่ใช้งานง่ายของคอลเลกชัน เพื่อให้บรรลุความสอดคล้องนั้นพวกเขาต้องตัดสินใจ ตัวอย่างเช่นชุดไม่ใช่ชุดสะสมเฉพาะในวิชาคณิตศาสตร์ "คลาส" ยังอธิบายถึงคอลเลกชัน
Cort Ammon

1
@ AndrejBauer ฉันกำลังแสดงท่าทางที่ไม่เกี่ยวกับปรัชญา (ส่วนใหญ่) และไม่พยายามอธิบายว่า "จริง ๆ " ประเภทใด แต่มีมากกว่าวิธีที่พวกเขาใช้ (ฉันบอกว่า "ทำหน้าที่เป็น" และ "ทำงานเป็น" ที่จุดเริ่มต้น แต่ฉันแอบเข้าไปใน "คือ" ในตอนท้าย) มีความเสี่ยงที่จะคิดว่าตัวแปรเป็นประเภทTหมายถึง "ค่า" เท่านั้น ที่xสามารถ "ใช้" เป็น (ปิดสมมุติ) แง่ของประเภทT สิ่งนี้ไม่เป็นความจริงและไม่ได้บอกเป็นนัยกับสิ่งที่ฉันพูดด้านบน ฉันยอมรับว่าคุณสามารถเห็นประเภทเป็นมากกว่าเอนทิตีทางวากยสัมพันธ์ แต่ฉันคิดว่าการเล่นประเภทบทบาททางวากยสัมพันธ์แตกต่างกันทำให้เกิดความแตกต่างอย่างชัดเจน xTxT
Derek Elkins

9

ในทางปฏิบัติโดยอ้างว่าเป็นประเภทTมักจะถูกนำมาใช้เพื่ออธิบายไวยากรณ์ในขณะที่อ้างว่าxอยู่ในชุดSจะมักจะใช้ในการบ่งบอกถึงความหมายของสถานที่ให้บริการ ฉันจะยกตัวอย่างเพื่ออธิบายความแตกต่างนี้ในการใช้งานประเภทและเซต สำหรับความแตกต่างในสิ่งที่ประเภทและชุดจริงเป็นผมหมายถึงคำตอบของอังเดรย์บาวเออร์xT xS

ตัวอย่าง

เพื่อชี้แจงความแตกต่างนี้ผมจะใช้ตัวอย่างที่ให้ไว้ในเฮอร์แมน Geuvers' เอกสารประกอบการบรรยาย ก่อนอื่นเราลองมาดูตัวอย่างของการใช้งานประเภท:

และเป็นตัวอย่างของการเป็นสมาชิกของชุดที่ใช้งาน: 3 { n N | x , Y , Z N + ( x n + Y nZ n ) }

3+(78)5:Nat,
3{nNx,y,zN+(xn+ynzn)}

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

อย่างไรก็ตามสำหรับตัวอย่างที่สองของชุดเราจะต้องกำหนดความหมายเชิงความหมายของในบริบทของชุด สำหรับฉากนี้มันค่อนข้างยาก: สมาชิก3 คนของชุดนี้เทียบเท่ากับการพิสูจน์ทฤษฎีบทสุดท้ายของแฟร์มาต์! โปรดทราบว่าตามที่ระบุในบันทึกย่อความแตกต่างระหว่างไวยากรณ์และความหมายไม่สามารถวาดได้อย่างชัดเจน (และคุณอาจจะโต้แย้งว่าแม้ตัวอย่างนี้จะไม่ชัดเจนเช่นที่โปรแกรมเมอร์ 2356 กล่าวถึงในความคิดเห็น)33

อัลกอริทึมเทียบกับการพิสูจน์

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

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

แรงจูงใจในการตีความที่เข้มงวด

มีการตีความหลายความหมายของชุดและประเภทความหมาย ในขณะที่ภายใต้ความแตกต่างของประเภทและประเภท extensional ที่นี่กับการตรวจสอบประเภท undecidable (เช่นที่ใช้ใน NuPRL ตามที่ระบุไว้ในความคิดเห็น) จะไม่เป็น 'ประเภท' คนอื่น ๆ มีอิสระที่จะเรียกพวกเขาเช่น ตามที่พวกเขาเรียกพวกเขาอย่างอื่นตราบใดที่คำจำกัดความของพวกเขาพอดี)

อย่างไรก็ตามเรา (Herman Geuvers และ I) ชอบที่จะไม่โยนการตีความนี้ออกไปนอกหน้าต่างซึ่งฉัน (ไม่ใช่ Herman แม้ว่าเขาจะเห็นด้วย) มีแรงจูงใจต่อไปนี้:

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

ดังนั้นข้อดีของคำอธิบายที่เข้มงวดยิ่งขึ้นของเราคือทำให้แยกง่ายขึ้นเพื่อให้ได้ความแตกต่างที่เกี่ยวข้องโดยตรงกับการใช้งานจริงทั่วไป วิธีนี้ใช้งานได้ดีตราบใดที่คุณไม่ต้องการหรือต้องการคลายการใช้งานตามที่คุณต้องการเช่น NuPRL


3
การตรวจสอบประเภทไม่จำเป็นต้องตัดสินใจได้ (แม้ว่าจะเป็นที่ต้องการอย่างแน่นอน) ตัวอย่างเช่น NuPRL กำหนดให้ผู้ใช้ต้องแสดงหลักฐานว่าคำนั้นมีประเภท
Derek Elkins

3
ขอขอบคุณ. สิ่งต่าง ๆ ชัดเจนมากขึ้น นี่คือสิ่งที่ฉันยังสงสัย: ไม่มีองค์ประกอบทางความหมายในการพิมพ์ทฤษฎีและองค์ประกอบทางไวยากรณ์เพื่อกำหนดทฤษฎีหรือไม่ ตัวอย่างเช่นเราสามารถแทนที่จะเห็น "ของคุณ"3...

1
@DerekElkins ฉันไม่คุ้นเคยกับ NuPRL แต่เช่นผู้ช่วยพิสูจน์ Coq จะทำการตรวจสอบด้วยตัวเองอย่างแน่นอนที่สุด (กล่าวคือเป็นคำที่ระบุไว้ใน NuPRL จะตรวจสอบความถูกต้องของหลักฐานได้อย่างไรหากผู้ใช้ต้อง 'พิสูจน์' ข้อเท็จจริงว่าคำศัพท์บางประเภทเป็นอย่างไร (กล่าวอีกนัยหนึ่งฟังดูเหมือน NuPRL ไม่ได้ใช้การติดต่อกับ Curry-Howard ดังนั้นมันใช้อะไรได้บ้าง)
จิ้งจกที่ไม่ต่อเนื่อง

1
@Discretelizard ฉันไม่ได้บอกว่า NuPRL เป็นเรื่องปกติ เป็นกรณีปกติสำหรับการตรวจสอบประเภทที่จะตัดสินใจได้ ฉันขอแนะนำให้ทำความคุ้นเคยกับมันเพียงเพราะใช้เส้นทางที่ค่อนข้างแตกต่าง NuPRL เป็นรูปแบบแกงมากกว่าแคลคูลัสสไตล์โบสถ์ซึ่งทำให้เป็นระบบการปรับแต่งประเภท ไม่ว่าจะด้วยวิธีใดก็ตามแทนที่จะเขียนคำศัพท์ (หรือกลวิธีที่สร้างคำศัพท์) คุณจะต้องมีระบบพิสูจน์แบบ LCF สำหรับพิมพ์ตัวเอง arguably, derivations เป็นสิ่งที่สำคัญและเป็นบิตของ "บังเอิญ" ที่เราสามารถอนุมานพวกเขาจากแง่
Derek Elkins

3
"
Andrej Bauer

4

ฉันเชื่อว่าหนึ่งในความแตกต่างที่เป็นรูปธรรมมากที่สุดเกี่ยวกับชุดและประเภทคือความแตกต่างในวิธีที่ "สิ่งต่าง ๆ " ในใจของคุณถูกเข้ารหัสเป็นภาษาทางการ

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

B={จริง,เท็จ}ยังไม่มีข้อความ={0,1,...}จริง=1

0[0]={}n+1[n+1]={[n]}[n]จริงเท็จจริง=1จริง1

a=a มีประเภทเดียวกันนั่นคือมีการเข้ารหัสในลักษณะเดียวกันซึ่งห้ามไม่ให้มีคำถามเช่น จริง=1. คุณยังคงต้องการที่จะมีขนาดใหญ่S ซึ่งทั้งคู่ B และ ยังไม่มีข้อความ สามารถเข้ารหัสได้จากนั้นให้การเข้ารหัสสองครั้ง ιB:BS และ ιN:NS, you could ask whether ιB(จริง)=ιยังไม่มีข้อความ(1) แต่ความจริงที่ว่าคำถามนี้ขึ้นอยู่กับการเข้ารหัส (และการเลือกการเข้ารหัส) ตอนนี้ชัดเจน

โปรดทราบว่าในกรณีเหล่านี้คำถามที่เข้าใจง่ายหรือไม่ แต่จริง ๆ แล้วอาจยากกว่านี้ตัวอย่างเช่น (ถ้าvery_hard_questionแล้วก็1อื่นจริง)=1.

โดยสรุปชุดช่วยให้คุณถามคำถามใด ๆ ที่คุณต้องการ แต่ประเภทบังคับให้คุณเข้ารหัสอย่างชัดเจนเมื่อคำตอบอาจขึ้นอยู่กับพวกเขา


คุณอาจนึกถึงทฤษฎีเซตที่เฉพาะเจาะจงประเภทหนึ่ง (บางอย่างตามทฤษฎีเรียงเดี่ยว a la ZFC) อย่างไรก็ตามมีทฤษฎีเซตอื่น ๆที่ต้องใช้การตรวจสอบมากมายที่เหมาะสม และวิธีที่ทฤษฎีเซตใช้ในทางปฏิบัตินั้นใกล้เคียงกับทฤษฎีเซตอื่น ๆ เหล่านี้มาก คุณคิดว่านักเรียนจะถามว่า "เป็นหรือไม่R องค์ประกอบของ บาป(2)ความแตกต่างระหว่างทฤษฎีชนิดและทฤษฎีเซตไม่ได้อยู่ในพิธีการ แต่เป็นความหมาย
Andrej Bauer

@AndrejBauer Right. Would you agree that this answer gives a differences between single-sorted theories (including most set theories, or at least the most common ones), and multi-sorted theories (including all (?) type theories)?
xavierm02

แม้ในทฤษฎีที่เรียงลำดับเดียวคุณต้องแยกแยะคำศัพท์จากสูตร ...
Andrej Bauer

@AndrejBauer I don't understand your second comment.
xavierm02

A single-sorted first-order theory has two syntactic categories: logical formulas and terms. One has to make sure they're not mixed up, or else you could end up writing "(xX.ϕ(x))N".
Andrej Bauer
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.