Desen lambda hesabında Eta genişlemesi


12

Klop, van Oostrom ve de Vrijer'in lambda hesabı üzerinde desenleri olan bir makalesi var.

http://www.sciencedirect.com/science/article/pii/S0304397508000571

Bir anlamda, bir model bir değişkenler ağacıdır - bunu sadece iç içe geçmiş bir değişkenler kümesi olarak düşünüyorum, örneğin, ((x, y), z), (t, s)).

Makalede, eğer modeller doğrusalsa, bir desendeki hiçbir değişkenin tekrarlanmadığı anlamında, kuralın

(\p . m) n = m [n/p]

burada p değişken bir modeldir ve n, p ile tam olarak aynı şekle sahip bir terim demetidir.

Literatürde lambda hesabı için kalıplar ve ek eta kuralı (genişleme, azaltma veya sadece eşitlik) ile benzer gelişmeler olup olmadığını merak ediyorum.

Özellikle eta ile kastediyorum

m = \lambda p . m p

Daha doğrudan, böyle bir lambda hesabının hangi özelliklere sahip olacağını merak ediyorum. Örneğin konfluent midir?

Sınıflandırma kategorisini kapatılmaya zorlar, çünkü

m p = n p implies m = n 

Aradaki \ xi kuralını kullanarak. Ama belki bir şeyler ters gidebilir?


Ne demek istediğini yazabilir misin? Çok garip olmadığı sürece, toplamları kullanarak kodlayabilmeli ve bir simülasyon argümanı yapabilmelisiniz.
Yeni

2
@ MaxNew: Görünmeyen hesap soruyor gibi görünüyor. Desenlerle ilgili her şey türlerle mükemmel çalışır (Ah-so-mütevazı bir şekilde kendi Desen Eşleştirmeye Odaklanmayı öneririm ), ancak tiplenmemiş lambda hesabı, kanıtlar yapmadan cevaplamaya cesaret edemediğim LC türünden (özellikle wrt eta) yeterince farklıdır. .
Neel Krishnaswami

@ MaxNew: Toplamlar tarafından kodlama ne gerektirir?
Jonathan Gallagher

@NeelKrishnaswami: Aslında her ikisiyle de ilgileniyorum. Bence eta kuralı ile birlikte bir ürün tipi değişkenine sahip olduğum için gerginim Bunun dicosmo.org/Articles/JFP96.pdf gibi yapıldığını düşünüyorum . Ama yanılıyorsam, lütfen beni düzeltin. Sonra \ lambda x .mx = m = \ lambda (p, q) gibi eşitliklere sahipsiniz. m (p, q) gibi. Makalenize bağlantı için teşekkürler!
Jonathan Gallagher

Yanıtlar:


7

Bu tam bir cevap değil; çok büyük bir yorum.

Tipik lambda hesabını projektif eliminatörlü ürünlerle (yani ürün eliminatörleri fst(e)ve snd(e)) genişletirseniz , temelde herhangi bir sorun yoktur. Anlaması çok uzun sürmesinin nedeni , eta azaltmalarından ziyade eta genişletmeleri yapmak daha doğal olduğu için . Bkz. Barry Jay'in Eta Genişlemesinin Faziletleri .

Ürünlerin desen stili bir eliminatöre sahip olmasını istiyorsanız

let (a,b) = e in t 

O zaman meseleler daha karmaşıktır. Örüntü eşleştirme ile ilgili temel zorluk, işe gidip gelme dönüşümleridir . Yani, bu matematik denklemi var

C[let (a,b) = e in t] === let (a,b) = e in C[t]

ve (a) hangi bağlamın C[-]kullanılacağını ve (b) bu ​​denklemin nasıl yönlendirileceğini bulmak zorlaşır. Yeniden yazma tarzı yaklaşımlar için son teknoloji olan IMO, Sam Lindley'in Sums ile Geniş Kapsamlı Yeniden Yazımı ve Gabriel Scherer'in Sums ve Boş Tip ile Kararlı Eşitliği, her ikisi de hem ürün hem de toplamlarla yazılan lambda hesabını düşünüyor.

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.