Skip to Content.
Sympa Menu

coq-club - [Coq-Club] Simulating lambda terms in lambda calculus

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

[Coq-Club] Simulating lambda terms in lambda calculus


Chronological Thread 
  • From: Helmut Brandl <helmut.brandl AT gmx.net>
  • To: coq-club AT inria.fr
  • Subject: [Coq-Club] Simulating lambda terms in lambda calculus
  • Date: Tue, 24 Sep 2024 09:47:08 +0200
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=helmut.brandl AT gmx.net; spf=Pass smtp.mailfrom=helmut.brandl AT gmx.net; spf=None smtp.helo=postmaster AT mout.gmx.net
  • Ironport-data: A9a23:PbdzL652dgXci+YpmAbnWgxRtCfGchMFZxGqfqrLsTDasY5as4F+v jMXCGmEbPaJN2Cheo0ibI7i9kwOuZXVz4Q3TlM4/CgzZn8b8sCt6faxfh6hZXvKRiHgZBs6t JtGMoGowOQcFCK0SsKFa+C5xZVE/fjUAOC6UoYoAwgpLSd8UiAtlBl/rOAwh49skLCRDhiE0 T/Ii5S31GSNhXgtagr414rZ8Ekz5KWo5GtC1rADTakjUGH2xyF94K03fvnZw0vQGuF8AuO8T uDf+7C1lkuxE8AFV7tJOp6iGqE7aua60Tqm0hK6aID+6vR2nRHe545gXBYqhei7vB3S9zx54 I0lWZVd0m7FNIWU8AgWe0Ew/y2TocSqUVIISJSymZX78qHIT5fj66pwFEo4FtFIwPpQWm18s tw6GSsBSznW0opawJrjIgVtrsEkMdWtM4YP/Hdt0Vk1D958GMqFGf+Vo4YFmm5t7ixNNa62i 84xaTdraQncJRdVM1EbDLoxmffugHTjG9FdgAvF+fVsuTWJkGSd1pDoLv3uX+aJAv5nsRiY/ z/f42XCO0szYYn3JT2ttyjEavX0tSj8QccZEKCy3uV7hUWagG0VEhwfE1WhycRVkWa7XM9Db UMR6mwooLRaGFGXc+QRliaQ+Bas1iPwkfIJewGXwFjlJnb8i+pYOoQFctKFQNkhqdNwSjk6k FmEg7sFwNCpXKK9ERqgGnW89Fte+hT56UcNYD9CSwYZizUmiJ9mlQrBF76PD4bs5uAY2ljML /Sioy0uwbMekabnEkl9EU/v21qRm3QCcuL5Csg7kI5oAsOVqbNJv7CV1GU=
  • Ironport-hdrordr: A9a23:HVQBKKwAx4w/SiYpe+qdKrPwGr1zdoMgy1knxilNoH1uHfBw8v rEoB11737JYVoqNE3I5+rwW5VoMEmzyXcd2+B4UItKNzOHhILHFvAB0aLf43nHBzD08PJb2J xtaq5kFbTLfD5HZL7BkWyF+81L+qjizElEv5a485/nIDsBV51d
  • Ironport-phdr: A9a23:UqBpdRPUbaUkXSZN+IEl6nZGBxdPi9zP1u491JMrhvp0f7i5+Ny6Z QqDvq0r1geQFtSDo9t/yMPo8InYGlY8qa6bt34DdJEeHzQksu4x2zIaPcieFEfgJ+TrZSFpV O5LVVti4m3peRMNQJW2aFLduGC94iAPERvjKwV1Ov71GonPhMiryuy+4ZLebgtUiDanf79+M Ai6oQrVu8UKnIBvNrs/xhzVr3RHfOhb2XlmKVWPkRji+8y+5oRj8yNeu/Ig885PT6D3dLkmQ LJbETorLXk76NXkuhffQwSP4GAcUngNnRpTHwfF9hD6UYzvvSb8q+FwxTOVPczyTbAzRDSi8 6JmQwLmhSsbKzI09nzchcttgqJGuxKhvwJwzJLIYI+bM/p+e7nSfdIcRWFcWspcWChMDoa6Y oASDeQOIPxYopH9qVQSohSwCxSiCuDxxDFPnXL5x7E20+E7HAHGwAAtHdQDu2nUotXvM6cSV Pi4wqvWwjXHavNWxCv945XVfxA7u/6MW69/cc7MwkQoFwPKkFGQqYn4PzOJzOgCqHKb4PBmV e2yj24qsA5xoj2gx8s2jInGmJ4Vx0nC+C5kz4k7Oce2R1RnYd64DpRQrSeaOpNyT84jXmxlv CI3x6AbtZKmYiUEx4oryhrfZfGIc4WF/hbuWPiRLDplmn5ofK6zihmu/EavyuDwStW53UpUo iZZlNTHq34D1xvW6sedS/t9+F+s2TmO1wDP6uFEPFs7mbDaK54mxLM7i5kdsVzbEyPohUn6k rWaels69uWq8ejrf7XrqoWBO4J0kg3zNqQjlta8DOk8KAQCQmaW9Oum2LH98kD0QLNHheAon 6ndrZDaPtgbqbCjAwFI04Yi6giwAi+63NkegHIJNkhKeAidgIjsI1zOIO73DfO4g1m0lTdrw O3GPqH7DpXCK3jCn63tfbBj5E5A0AYzzNZf6IxICrwZPv7/R1H9uMbGAhMnMQG42fvrBdVn2 o8DWW+DGqqZP7nTsV+M6OIvOe6MZIoNtTb9Nfcl4/vujWIlmVMHZqapx4EYaHalEfRiOEiZb n/sg9gbHWcMoAU+UPTmiFuZXjFLfXa9Q7o85i0nCIKhFYrPW5ihgKad0yejAp1WemdGB0iQH nfvboWIQusDaCaPIsB6iTEETrigS4o51R60rgP6yrxnLvDV+iICr57j2sJ1tKXvkkQ58iUxB MCA2UmMSXt1lyUGXWwYxqd69GxwzlKezeBSmfVeGdgbs/NEVgInKdjW1eV8B9TaVQfRONGEV AD1EZ2dHTgtQ4dpkJc1aEFnFoD+33grvgKvCr4RzfmQAYAst7jb1D73Ltp8zHDP0O8giUMnS 41BLz7unbZxoi7UAYOBiECFj+Cyb61J3CPJ8Xqfi2CUtUdUVCZ/VLWDW30DNQPNtdqs3krZV Pe1DKg/dA5IyMqMMKxPP93kiVBbWLHpIt3Yb2aZlGKgQxCF2uDEd5LkLkMa2iiVE00Yi0YT8 HKBYBA5HTukqnnCASZGEFXyfwXj9Pk4rn6nJqMt5yeNaUApl7+8+xpPwOeZV+tWxLUP/iEot zRzGl+5mdPQEduJ4QR7Lu1aZpsm7VFL2Hi81UQ1N4G8L61kml8Vchhm90Lo2RJtD4xckM8s5 Ho0xQt2IKic3RtPbTSdlZz3P7TWLCH18nXNI+bW11XbzcrQ8L0G7vg8g1rmrEevG1Zju3Rr3 t9J0meNs43QBVlaWpbwX0Arshli8uuDOG9nvdySjCAqaPTn112Kk8gkD+Yk1Bu6KtJWMafeU RT3D9VfHc+lbuojh1muaBsAeuFU7q89ec28JJ7kkOamOvhtmDW+gCFJ+od4hwiM+i55V/KO1 YwMxf2c9gSCR3H6gUvr4aWV0chUICofGGay032uBINVY7BuO4wRAGGiJ+W4w8U4gZPxES09l hbrFxYN38mnfgCXZlr20FhL1EgZlnegnDOx0z1+lzxBQrO35CXV2KyicRMGPjQOX2x+lRL2J oPyidkGXU+uZgxvlR2/5E+8ybIJ7Kh4KmDSRw9PcU2UZyliX6+1q6bEadRG7p8smSpSQKK6b EzSRrPmohQc2j/uBCMEnWp9LWv1/Myk2UUnwGuGZG5+tn/YZd19yXK9rJTHSPhd0yBHDCh0h D/LB0Statyg/NGajZDG4ai1U2OsUIEWcDG+l9ra8nHhuiszXFvmwqPW+JWvCwUx3C7l2sM/U CzJqEy5eYz3z+GgNukheEB0BVj64s48G4dkk4J2iotDvBpSzpiT43cDln/+dNtB3qerJnoAQ TsW35jf+gHj1ElLIXeZgYT0Sj/Op6kpL8n/eW4Q1i8nuopKBaOR8aAClzF8pFa8hQ3Ucb57k ytXmp5MoDYKxuoOvgQq1CCUBLsfSFJZMSLbnBON99mira9TaTXnYf2q2UF5h9zkEKCar1QWR iPiYpl7V3wVjI03IBfW3Xb08I2hZNTAcYdZqEiPixmZx+EHLZUsirwFgDohP2/h9XR3zukmk Vl+05ago4GdJyNi+bL/BBNEU1+9L8pB/zbwkeNUmduQ1I3pEZBxXDMGQNPhH/evDS5Xvu/tK gKNVmQ1rHvCX7HYGGr9oA9v/XfIDozuPGqcI2MBi4xrQhXEYkdYhUgCVTE+1PbVDyiMw8rsO Ad87zEVvBvjrwdUj/hvPF/5W3veowGhbnE1ToKeJVxY9FMK4UCdKsGY4u9pekMQtpS8sAyAL HCabAVUHCkIXEKDHVXqIrip45HJ7eGZAuO0K/aGb6+JrKRSUPKBxJTn1YUDnX7ELsKUInxrF OE2wGJGWm1lXcvci3MJRjBW3yPBYsiHpQutry16qsfslZajEAnr5IaJF/5TKYA1okrw2/3cc bfNwn8kelM6ntsWyHTFyaYSxgsXgiBqLXy2FKgY8DTKR+TWk7NWCBgSb2VyMtFJ5uQyxFooW 4aTh9Xr27p/lvNwBU1CUAmrmsytYNEWZWunPVXLAG6EMaTAIzDXiZKSA+v0WfhLgeNYugfl8 y6cCFPmNy+fmiPBUheyLadDiTHdOhFC8tLYEF4lGS3oS9TobQe+Odl8gGgtwLE6sXjNMHYVL Tl2d04lRli44iZIxPNyBz4ZhpKKBeaBi2Cf4vWKc/7+UNNuBTlo0e1f8DI8xqcHtEl5
  • Ironport-sdr: 66f26e91_n0vSQcnoG2NqrCyOy+AWE1LI67kkbNECTq9xCzHw9bvcGSI eVCgnhknDNM7WpdCmJYwFoyk0HF53BJfL1cbpKg==
  • Ui-outboundreport: notjunk:1;M01:P0:yx6SN+G9w8s=;zkAFBONl8c4MyQMzKv1D437teQT RrQnhex2YWiVoc3uHixYP2VcK8+LkzDKN4mNxFbSaRfWhSCVke/ZyGoOOoGwQNcYnWemIHgJ+ 79pw1T6m0aqzaA6Ir/mNpOFDD+EHcM4WdOIUtO73AYQtKxT3vH7iL/h3fORm/2o4yRFzUVf9x ZHa+7oDLkgONPQv3ct4qs3EKatUUIXYhtxR9LhUFPcwDTr9YKs1iYRWuj1yGt26XTsIv72VWP nqtjqk4f2OphHVEndXpjCzClDh7fH6YZZNqONA3ltsu3hqZOfJPCOw9yVj+RfPtpg4A3K+qmA oGPZc7twV7/Ayb1drMM0WMFRDXebP/iBU9XMlXznEPRhu7/73O1E/dhttruoA3t15LWIh0hhp +zxgOuIIJTFGA7X1C611lhOhF3gBtedF9TmRvq1jnycUjbxhHBY0PV7iOyXJt/FtldvqAQ34x 3Riz3oz4tEKbY0X3FtaVmBdZRAT3kPkBs4q+oWgH6r4pFBMnmVBH5Jx1S2iKVloemp3lBKlk/ zF2ZD0plxvyAoPRnUpFgINA4XmNdMmOKYeF7nQRFBP5W/lIgtdfwKJ1ainn6b0lPwPusPROsb fv3joOaxNholsN+tp5Af/zCrYlRSM8MH+VJ2csLFQO6gS+MrG59lE6OznMp/OGINy/Sitgvbq k2Kk8tSqry+9szXel3XOEEyOmtsvte6tU1XhRh5Vas0S7bDSgRl5YOIJD4nDZ6RERYdUL2/Pw reUCzVDBbQtcqbYmtAj6SqowrDQIApAi4u+fS/bN7oOeWpa1Nsjo/Kxij18opy4jlsvpn3pA8 Bf+osT9Iws8pFxrueI5JANkg==

Lambda calculus is the theoretical basis for functional programming languages like Ocaml, Haskell, etc. Therefore as a coq user it is an interesting topic for me.

Since Church's lambda calculus, Gödel's recursive functions and Turing's automatic machines are equivalent, I was curious to find the analogue of a *universal turing machine* expressed in lambda calculus. I have found a quite simple *universal lambda term* which does the job.

I have documented the construction of a *universal lambda term* in this  paper

https://hbr.github.io/Lambda-Calculus/lam-simu/index.html

It gives a short introduction to lambda calculus. Then it introduces a programming notation for lambda calculus similar to Haskell/Ocaml in order to make lambda calculus more readable for functional programmers.

In this notation some basic functions for booleans, pairs, numbers and optional values are introduced.

In order to encode lambda terms the usual Gödel numbering has been avoided. Instead of Gödel numbers the basic idea of algebraic data types has been used.

Based on the structure of an encoded lambda term, a lambda term is constructed which reduces an encoded lambda term to normal form or loops infinitely in case no normal form exists.



Archive powered by MHonArc 2.6.19+.

Top of Page