Basit bir yeniden yazma sistemi için izdiham kanıtı


14

Terimlerden oluşan basit bir dilimiz olduğunu varsayın:

  • true
  • false
  • Eğer t1,t2,t3 terimlerdir sonra so ift1thent2elset3

Şimdi aşağıdaki mantıksal değerlendirme kurallarını kabul edin:

iftruethent2elset3t2[E-IfTrue]iffalsethent2elset3t3[E-IfFalse]t1t1ift1thent2elset3ift1thent2elset3[E-If]

Aşağıdaki funky kuralını da eklediğimizi varsayalım:

t2t2ift1thent2elset3ift1thent2elset3[E-IfFunny]

Verilen basit değerlendirme kuralları ile bu basit dil için aşağıdakileri kanıtlamak istiyorum:

Teorem: Eğer ve r t sonra bazı terim yoktur u öyle ki ler u ve t u .rsrtusutu

Bunu yapısına indükleyerek kanıtlıyorum . İşte şimdiye kadarki kanıtım, her şey yolunda gitti, ama son davada sıkışıp kaldım. Görünüşe göre r yapısında indüksiyon yeterli değil, kimse bana yardım edebilir mi?rr

Kanıt. üzerinde indüksiyon ile , r'nin alabileceği tüm formları ayıracağız:rr

  1. bir sabittir, kanıtlanması gereken bir şey yoktur, çünkü normal bir form hiçbir şeyi değerlendirmez.r
  2. doğruysa o zaman r 2 başka r 3 . (a) her iki türev de E-IfTrue kuralı ile yapılmıştır. Bu durumda s = t , yani ispatlanacak bir şey yok. (b) bir türev E-IfTrue kuralıyla, diğeri E-Komik kuralıyla yapılmıştır. R s'nin E-IfTrue ile yapıldığınıvarsayalım, diğer vaka eşit olarak kanıtlanmıştır. Artık s = r 2 olduğunu biliyoruz. Ayrıca t = doğruysa r 2 başka r 3 olduğunu ve bazı türetme r 2 olduğunu biliyoruzr=r2r3s=trss=r2t=r2r3 (öncül). Şimdi u = r 2'yi seçersek, davayı sonuçlandırırız.r2r2u=r2
  3. yanlışsa o zaman r 2 başka r 3 . Yukarıdaki gibi eşit olarak kanıtlanmıştır.r=r2r3
  4. r=r1r2r3r1s=r1r2r3t= r 2 r 3 r 1r 1 r 1r 1 r 1 r 1r 1 r 1r 1 u = r 1 r 2 r 3 s u t ur1r2r3r1r1r1r1(tesislerinde). Şimdi indüksiyon hipotezini , ve olacak şekilde bazı terimleri olduğunu söylemek için kullanabiliriz . Şimdi durumu if sonra else ve E-If kuralıyla ve fark ederek . (b) bir derivasyon E-If kuralı ile ve bir derivasyon E-Komik kuralı ile yapılmıştır.r1r1r1r1r1u=r1r2r3sutu

Bir derivasyonun E-If tarafından, diğerinin E-Funny tarafından yapıldığı bu ikinci durum, eksik olduğum durumdur ... Hipotezleri kullanamıyorum.

Yardım çok takdir edilecektir.


@Gilles düzenleme ile son derece iyi. SE'nin TeX motorunun tüm bunları yapabildiğini bilmiyordum ... :-)
codd

Yanlış mıyım yoksa bu alıştırma Pierce "Türleri ve Programlama Dilleri" nden mi alınmıştır?
Fabio F.

@FabioF. Gerçekten de Pierce'ın Türleri ve Programlama Dilleri kitabından. İndüksiyonu gerçekleştirme şekli nedeniyle belirsiz bulduğumun bir kanıtıdır. Bu yüzden yapıyı indüksiyonla kendim kanıtlamaya çalıştım. Kitaptan olduğunu söylemeyi düşünüyordum, ama bunun önemsiz olacağını düşündüm. Ancak, iyi fark!
codd

Yanıtlar:


7

Tamam, e-If kuralı uygulanarak , türetildiğini ve , E-Komik kuralı uygulanarak türetilmiştir: So burada ve burada . s t s = i fr=ift1thent2elset3stt 1t 1 t = i fs=ift1thent2elset3t1t1t 2t 2t=ift1thent2elset3t2t2

aradığımız olan . kural E-Funny'den, kural E- sonra gelir.u = i fu s u t uu=ift1thent2elset3sutu


Beni döv. İyi iş.
Patrick87

Tanrım, gerçekten çok uzağa bakıyordum ... Teşekkürler!
codd

Ama onları karıştırdın , e-Funny takip ediyor. Yoksa yanlış bir şey mi görüyorum? su
codd

@Jeroen Haklısın - onları karıştırdım. Şimdi düzeltildi.
sepp2k

8

rsrtusutu - eğer bir terim farklı şekillerde azaltılabilirse, ne kadar uzaklaştıkları fark etmeksizin, sonunda geri dönebilirler.

Bu tür endüktif olarak tanımlanmış yeniden yazma kurallarının bir özelliğini kanıtlamanın en iyi yolu, indirgenmiş terimin yapısından ziyade, indirgemenin türetilmesinin yapısının indüklenmesidir. Burada ya çalışır, çünkü kurallar sol terimin yapısını takip eder, ancak kurallar üzerinde muhakeme daha basittir. Terime dalmak yerine, tüm kural çiftlerini alırsınız ve her ikisi için hangi terimin sol taraf olabileceğini görürsünüz. Bu örnekte, sonunda aynı vakaları alacaksınız, ancak biraz daha hızlı.

t1t2t2t1ifr1thenr2elser3

ifr1thenr2elser3[E-If][E-IfFunny]ifr1thenr2elser3ifr1thenr2elser3[E-IfFunny][E-If]ifr1thenr2elser3

Sometimes Bazen türleri ve yeniden yazmayı birlikte görürsünüz, ancak özlerinde dikey kavramlardır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.