2015-09-20 35 views
7

Fonksiyon olarak birbirleriyle çakışan birçok Coq taktikleri gördüm. ÖrneğinCoq'da en az bir dizi taktik var mı?

, sen hipotezi kesin sonuca varken, sen assumption, apply, exact, trivial ve belki diğerlerini kullanabilirsiniz. Diğer örnekler, endüktif olmayan tipler (?) Için destruct ve induction içerir.

Sorum şu:

temel taktik (yani auto hariç tutar ve onun benzeri) bu seti herhangi Coq kanıtlamak için kullanılabileceğini anlamda tamamlandığında, bir asgari seti var mı Doğal sayıların fonksiyonları ile ilgili teoremler?

Bu en küçük tamamlanmış kümedeki taktikler ideal olarak basit olacaktır, böylece her biri yalnızca bir (veya iki) işlev gerçekleştirir ve ne yaptığını kolayca anlayabilir.

+3

Köri-Howard İzomorfizmi nedeniyle, bir taktikle yapabileceğiniz her kanıt bir süreye karşılık gelir. Böylece, 'kesin' taktiği herhangi bir hedefi kanıtlamak için yeterlidir. Terimi tek seferde oluşturmak istemiyorsanız, bunun yerine "hassaslaştır" seçeneğini kullanabilirsiniz. –

cevap

6

Coq'taki bir kanıt yalnızca doğru türde bir terimdir. Taktikler, küçük terimleri daha karmaşık olanlara birleştirerek bu terimi oluşturmanıza yardımcı olur. Bu nedenle, asgari temel taktikler grubu sadece Konstantin'den bahsedildiği gibi exact taktiğini içerecektir.

refine taktikleri, doğrudan ispat şartları vermenize, ancak alt hedefler oluşturacak deliklere sahip olmanıza olanak tanır. Temel olarak herhangi bir taktik sadece refine taktiğinin bir örneğidir. İlk taktik, en az sayıda dikkate alınmasını istiyorsanız

Ancak, ben intro{s}, exists, reflexivity, symmetry, apply, rewrite, revert, destruct ve induction ele alacak. inversion da oldukça çabuk kullanışlı olabilir.

+0

'İhtilaflılık 'sadece setoid kullanmıyorsanız eq_refl' uygulanır ve simetri de bir uygulamadır; Var olan 'kurucu ', bu da sadece' it 'olduğunu. Sık sık 'revert' kullanıyor musunuz? Öte yandan, 'yeniden yazmak' ve 'simpl' bu listeye güzel eklemeler olabilir. –

+2

"Yeniden yazmak" ile ilgili söylenenleri söyleyebilirsin, sadece doğru şekilli bir lemma uyguluyor. Söylediğim gibi, her şeyi "hassaslaştırmak" için aşağı doğru bastırın (doğrudan prova ifadesini yazarak). Ama itiraf etmeliyim, listede yeniden yazılmalıdır. Sıklıkla geri dönüşümü kullanıyorum, çünkü bağımlı tiplerle çok fazla indüksiyon yapıyorum ve çok yardımcı oluyor. – Vinz

+2

Ah, bağımlı tipler bir çok 'geri dönüş', gerçekten de 'yeniden yazım' kullanırdı, aslında sadece bir endüktif ilkenin bir uygulamasıdır, ama aslında bunu asla kullanmam. –

İlgili konular