LCF gerçekten tüm bu sistemlerin büyük babasıdır: ML programlama dili de dahil olmak üzere Coq, Isabelle, HOL'ler (bugün OCaml, SML ve F # olarak görüyoruz). Evet, Coq'u daha büyük LCF ailesinin bir üyesi olarak dahil ediyorum. ABD-Amerikan ispat asistanlarıyla (özellikle ACL2) ya da tamamen alakasız Mizar'la karşılaştırıldığında, Coq kültürel olarak Isabelle ve HOL'lere, özellikle de paylaşılan taktikler fikri nedeniyle oldukça yakındır .
Öyleyse, yeniden yazma, dönüşüm, bağdaştırıcı tanıtımı veya ortadan kaldırılması ile ilgili yanlışlıkla yapılan gözlemlerden sıyrılan taktikler neler?
Buradaki ana katmanlama prensibi Milner'ın LCF'sinden miras alınmıştır:
thm
Özgün çıkarımlar (ileri akıl yürütme), ya orijinal LCF yaklaşımında soyut veri türü olarak ya da ailenin Tip-Teori dalında ispat terimlerinin ayrı ayrı kontrol edilmesiyle (Coq, Matita). Bu , kanıtlayıcının teorem olarak kabul ettiği sonuçlar için size mantıklı bir temel sağlar. Böylece, ⊢ A ve ⊢ B alan ve size ⊢ A ∧ B veren ilkel bir çıkarımız olabilir. Başka bir ilkel çıkarım size beta t = u verir, burada u normal t şeklidir. Bu mekanizmaların hiçbiri taktik değil, standart mantıkta olduğu gibi çıkarım kuralları .
Hedefe yönelik kanıt (geriye doğru muhakeme). Fikir, rafine ederek, "çözülene kadar, daha fazla alt-ambarlara, alt-gazları kapatmaya", "hedef durum" kavramına odaklanmandır. Hedef durumunu bitirmek, işlemden çıkacak belli bir teoremi ortaya koyacaktır. LCF hala HOL'lerde bulunan hedefler için bazı ekstra mantıksal altyapı sunmuştur: taktik bir amacı geliştiren ve iyileştirme için bazı gerekçeler üreten bir ML işlevidir. İspatın en sonunda, yukarıda çizilen ilkel çıkarımlara göre ileri doğru bir kanıt üretmek için gerekçeler ters sırada tekrarlanır.
Coq ve Matita hala bu LCF ilkesine oldukça yakın. Isabelle burada farklı: 1989'un başlarında, Larry Paulson, burada Isabelle'in "Saf" mantıksal çerçevesi olan mantığa daha yakın olmaları için hedef ve taktik kavramlarını değiştirdi. Isabelle / Pure, implikasyon ==> ve nicelik belirteci ile minimum düzeyde sipariş mantığı sağlar! hem doğal kesinti kurallarının yapısını hem de hedef durumlarını gösterir.
Örneğin, ⊢ A ==> B ==> A ∧ B, mantıksal çerçevenin teoremi olarak birleşik giriş kuralıdır (nesne mantığının).
Hedef durumları, aynı zamanda, C, claim X ==> Y ==> Z ==> C olan, orta seviyelerde ⊢ X ==> Y ==> Z ==> C olarak rafine edilmiş olan, ilk isteminiz C için ⊢ C ==> C ile başlayan teoremlerdir. Geçerli alt hedefler ve işlem ⊢ C ile bitiyor (alt hedef yok).
Şimdi, tüm bu kanıtlar için daha tekdüze olan taktiklere geri dönelim: bir miktar gol durumu kavramı (örneğin yukarıdaki Isabelle), taktik bir hedef durumu (0, 1 veya daha fazla) izlemeye yönlendiren bir fonksiyondur. hedef durumları. Ayrıca, bir taktik , örneğin sıralı kompozisyonu, seçimi, tekrarı vb. İfade etmek için bu taktik fonksiyonların bir birleştiricisidir. Aslında, taktiklerin ve taktiklerin dili, ayrıştırıcı birleştiricilerin "başarı listesi" yaklaşımıyla ilgilidir.
Taktikler, belirli hedef iyileştirme stratejilerini sistematik olarak tanımlamayı sağlar. 1970/80-lerdeki LCF'deki icatlarından bu yana oldukça başarılı oldular, ancak meşhurce okunamayan ispat senaryoları ürettiler.
Taktik dillerin bazı yönlerine kısa bir genel bakış, makalede A. Asperti ve arkadaşları, PLMMS 2009 tarafından verilmiştir, atölye çalışmaları için bkz .
Mizar ve Isabelle / Isar, insan tarafından okunabilir yapılandırılmış mantığa alternatif yaklaşımlar olarak bahsedilmiştir ve bu anlamda taktiklere dayanmazlar. Mizar, LCF ailesi ile ilişkili değildir, bu yüzden bu taktik terminolojiyi bilmiyor. Isabelle / Isar taktik geleneği bir dereceye kadar içeriyor, ancak ispat yöntemi kavramı biraz daha yapılandırılmış (açık Isar kanıtı bağlamı, zincirleme gerçeklerin açıkça gösterilmesi ve muhakeme sürecinde iç hedef saldırılarının önlenmesi ile).
Geçtiğimiz yıllarda çok daha fazla reform ve taktiksel dilin yeniden gözden geçirilmesi gerçekleşti. Örneğin, son zamanlarda Coq topluluğunun bir kolu, geleneksel Ltac yerine SSReflect'i (G. Gonthier) destekliyor.