| Hi, I am/was from the interactive theorem proving community, and I like powerful languages :-)
I used to program a lot in SML (Standard ML). Now, what I miss from Lisp and Arc is the ability of defining "safe" types; I don't mind if they are dynamic... For example, I would like to introduce a type "theorem", and then have operations on this type that ensure that I can create only "true" theorems. Like, say I have a theorem A saying "P", and another one, B, saying "P -> Q", then I can combine them with "(modus_ponens A B)", resulting in a theorem saying "Q". Any idea of how this concept could be integrated in Arc ? I mean, one could certainly hard code such a type, but how do I define my own? I don't know too much about Lisp, so maybe there is already a way of achieving it, I'd like to hear about this, too! |