Asisten bukti untuk menulis matematika


12

Saya ingin menulis bukti matematika menggunakan beberapa asisten bukti. Semuanya akan ditulis menggunakan logika orde pertama (dengan kesetaraan) dan deduksi alami. Latar belakangnya adalah set theory (ZF). Misalnya, bagaimana saya bisa menulis bukti berikut?

Aksioma: xy(x=yz(zxzy))

Teorema: xy(z(zx)z(zy)x=y)

Artinya, set kosong itu unik.

Ini sepele bagi saya untuk menyelesaikannya dengan menggunakan kertas dan pena, tetapi yang benar-benar saya butuhkan adalah perangkat lunak untuk membantu saya memeriksa bukti kebenaran.

Terima kasih.


11
Pertama, Anda perlu memilih asisten bukti. Coq adalah apa yang saya gunakan, tetapi ada banyak lainnya . Beberapa di antaranya didasarkan pada logika urutan pertama, sehingga akan lebih sesuai dengan kebutuhan Anda. Maka Anda perlu berkomitmen untuk mempelajari asisten bukti. Dalam beberapa hari Anda harus dapat menyandikan teorema sederhana, seperti yang di atas, dan membuktikannya. Jangan berharap kami akan melakukan ini untuk Anda. Anda tidak akan belajar apa-apa seperti itu.
Dave Clarke

5
Jika Anda tertarik pada teori himpunan, bukan tipe teori maka Isabelle mungkin adalah sistem yang paling mudah. Coq akan tampak aneh dan membingungkan.
Mark Reitblatt

2
xyz

9
@Sadeq: Di ZF, bagaimanapun, tidak menetapkan elemen dasar alam semesta? Jadi Anda harus bisa mengatakan hal-hal seperti "untuk semua set" dalam logika urutan pertama, yang merupakan apa yang dilakukan dalam aksioma itu.
Robin Kothari

9
ZFZF

Jawaban:


13

Coq dan Isabelle dapat melakukan ini.

[Coq] Berikut adalah makalah yang membahas cara menyandikan ZFC di CIC, yang menjadi dasar Coq.

Benjamin Werner: Set dalam Jenis, Jenis dalam Set (1997). http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.55.1709

[Isabelle] Ada perpustakaan untuk ZF.

http://www.cl.cam.ac.uk/research/hvg/Isabelle/dist/library/ZF/index.html


3
Walaupun makalah ini cukup bagus, saya pikir akan lebih pragmatis untuk hanya menambahkan spesies (tipe variabel) dan aksioma untuk secara langsung menyandikan teori aksiomatik ZF, kemudian melakukan pembuktian dengan menarik langsung aksioma ini. Pengkodean lebih untuk menunjukkan bahwa teori terkait dalam kekuatan ekspresif.
cody

2
Saya harus menambahkan bahwa ada implementasi dari ide-ide ini, oleh Bruno Barras: lix.polytechnique.fr/~barras/proofs/sets/index.html
cody

9

Pindah dari komentar atas saran Kaveh

Pertama, Anda perlu memilih asisten bukti. Coq adalah apa yang saya gunakan, tetapi ada banyak lainnya . Coq didasarkan pada logika tingkat tinggi (apa yang disebut Calculus of Inductive Constructions). Asisten pembuktian lainnya didasarkan pada logika urutan pertama, jadi mungkin lebih cocok dengan kebutuhan Anda (modulo komentar di atas).

Maka Anda perlu berkomitmen untuk mempelajari asisten bukti. Dokumen yang ditautkan adalah tutorial untuk memahami Coq. Menjadi seorang ahli Coq membutuhkan dedikasi dan praktik bertahun-tahun, tetapi teorema sederhana dapat dibuktikan dalam satu sore. Kunci untuk belajar Coq atau asisten bukti lainnya adalah melakukan bukti, seperti yang ada di kertas yang ditautkan. Hanya membaca makalah akan sangat sedikit membantu, karena seluruh pengalaman berinteraksi dengan asisten bukti tidak dapat disampaikan dengan baik di atas kertas.

Dalam beberapa hari Anda harus dapat menyandikan teorema sederhana, seperti yang di atas, dan membuktikannya. Jangan berharap kami akan melakukan ini untuk Anda. Anda tidak akan belajar apa-apa seperti itu.

Ketika Anda berhasil membuktikan teorema ini, jangan ragu untuk mengirimkan jawaban Anda di sini dan mungkin meninggalkan beberapa komentar tentang pengalaman Anda.

Apakah Anda siap menghadapi tantangan?


4
Coq adalah pilihan yang masuk akal; Namun, jika xddz5 benar-benar ingin bekerja dalam teori set ZF daripada teori tipe, maka mungkin Mizar lebih cocok.
Timothy Chow


5

Dave Clarke menyarankan Coq, tapi sebenarnya Isabelle sepertinya ide yang jauh lebih baik, karena memiliki perpustakaan untuk ZF . Isabelle juga sangat dewasa dan memiliki beragam taktik dan ekstensi.

Saya belum pernah menggunakan Mizar secara pribadi, tetapi mungkin juga bagus.


2

bagaimana saya bisa menulis bukti berikut?

Di Isabelle / ZF Anda dapat menulis sesuatu seperti ini

theory csthquestion imports Main

begin

theorem empty_unique:
shows "\<forall> x.\<forall>y.(\<forall>z. (z\<notin>x)) \<and> (\<forall>z.(z\<notin>y)) \<longrightarrow> x=y"
    by auto

end

Seperti yang Anda lihat, Isabelle membuktikan ini secara otomatis. Tentu saja Anda dapat menulis bukti yang lebih rinci jika Anda benar-benar menginginkannya.


2

Teorema ini adalah contoh yang dikerjakan (lihat Contoh 11) dalam tutorial yang disertakan dengan perangkat lunak DC Proof 2.0 saya. Unduh secara gratis di situs web saya http://www.dcproof.com


1
Ini sedikit menjual-ish untuk situs ini. Bisakah Anda menyajikan beberapa informasi dengan cara yang adil untuk mengatakan dengan cara apa perangkat lunak Anda cocok untuk masalah tersebut? Mungkin tautan ke video atau tangkapan layar derivasi ini sedang dilakukan?
Charles Stewart

1
Ini buktinya: dcproof.com/EmptySetUnique.htm Ada video di situs web saya yang menunjukkan cara kerja sistem.
Dan Christensen
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.