LtU Forum

Incompleteness Theorems: The Logical Necessity of Inconsistency

Incompleteness theorems prove that there are logically undecidable propositions, i.e., that there are propositions that are neither provable nor disprovable in certain classes of theories.

Incompleteness of Principia Mathematica was proved informally using proof by contradiction in a stratified metatheory by Gödel [1931] with restrictive conditions. Then Rosser [1936] informally proved incompleteness using proof by contradiction in a stratified metatheory assuming consistency of Principia Mathematica.

However, information on the modern Internet is pervasively inconsistent and restricting reasoning to use only stratified metatheories is impractical. Consequently Direct Logic has been developed which is inconsistency tolerant and does without stratified metatheories. And incompleteness has been formally self-proved for every theory of Direct Logic without requiring the hypothesis of consistency. Moreover, because incompleteness is self-proved, logically necessary inconsistency immediately follows.

Contents

 

Go's proposed panic/recover exception-like mechanism

Here it is: Proposal for an exception-like mechanism by Rob Pike.

As I understand it, he means panic/recover primary as a way to shield the whole program execution from "truly exceptional situations" like out of bounds array access, etc. in "submodules". Like bug in request handling code taking the whole web server down.

What do you think about such hybrid "panic/recover (rarely) + error codes all over the place" error handling model?

From type systems to language systems?

As a matter of "kick-start" to a discussion about something I'm sort of "obsessed" with (*), lately :

* What if from our current "successful" OO type systems coming out-of-the-box in the execution platform, with reflective capabilities (see Java, .NET, ...) and metadata-based patterns of thought for problem solving (1,2) ... we would slowly but surely end up --we like it or not (3)-- entering a new paradigm, where DSLs have become first class citizens of the new platforms, much like types today? (type systems-centric logic vs. language/modeling systems-centric logic) ?

* Assumption/question : I reckon, that would likely be nothing really new, actually, just a matter of applying a raise in abstraction of how we bake artifacts (documents, code, end-user results, etc). More specifically, that would be yet another use of reification thinking processes and alike/related. But then... couldn't or SHOULDn't we draw useful lessons, from those reflection-enabled type systems (which seemingly tend to ease the implementation of loosely coupled architecture designs) and Berners Lee's and Fielding's (4) works regarding scalability?

I do think we should, but thanks in advance for sharing your thoughts, much welcome.

(*) http://www.ysharp.net/the.language/design/?p=93
(1) http://en.wikipedia.org/wiki/Reification_(computer_science)
(2) http://en.wikipedia.org/wiki/Out-of-band_signaling
(3) http://www.douglaspurdy.com/2009/11/10/from-oslo-to-sql-server-modeling/
(4) http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm

Small is Beautiful: the design of Lua

Roberto Ierusalimschy discusses the ideas behind the design of Lua specially on the pervasive use of tables and coroutines.

Video, Slides[PDF] and Talk Abstract.

Note: The video is in Windows Media format but it works with Quicktime Player on the Mac if you have Flip4Mac WMV installed. I can open the video using File->Open URL.

Fantom language discussion ; what are your thoughts ?

I was very surprised that a search on LtU did not find any discussion on Fantom ( http://fantom.org/ ). It seems elegant and the home page gives a good summary. So this thread is to 'kick-start' the discussion.

Tcl the Misunderstood

Tcl the Misunderstood is an old article, but I haven't seen it discussed here before:

I am not going to show you every single Tcl feature, but I want to give an idea of advanced programming tasks that are solved in a very nice way with Tcl. I want to stress that I think Tcl has a number of faults, but most of them are not in the main ideas of the language itself. I think there is room for a Tcl-derived language that can compete with Ruby, Lisp and Python today in interesting domains like web programming, network programming, GUI development, DSL and as scripting language.

Syntax design brainstorming session

Hi LtU,

I've started another brainstorming topic on the Mist discussion group. (Design discussion: If you would like to respond, please do it there, not here.)

I must admit, I'm not sure LtU is the proper target for this discussion, since it has a relatively strong bike-shed coloring taste to it. I think such discussions are important too, in the design of a programming language. Nonetheless, please tell me if (links to) such discussions are taboo here.

Off topic: Thanks for your interesting replies to my last post! I've gained some insight. And I've purchased Types and Programming Languages by Pierce. It's a good read so far. I'm sure it will clear up many things for me.

Will data-intensive computing revolutionize programming languages?

The EAPLS (European Association for Programming Languages and Systems) is looking for new board members. I have placed my candidacy with the following statement:

The field of computer science is changing profoundly. Computing systems now have the processing power, storage capacity, and networking ability to easily handle enormous data sets. Data-intensive computing using large-scale distributed algorithms is realizing one by one the old dreams of artificial intelligence. Traditional research in programming languages and systems has solved most of the problems of computing with small data sets. It must now grow up and address computing with large data sets, for which programming languages at a much higher level of abstraction are needed. This is already happening: data-intensive language abstractions (of which map-reduce and its relatives are just the tip of the iceberg) are already catalyzing the new computer science. As a member of the EAPLS board, I will encourage programming language research to move in this direction, as a key part of the new computer science.

I happen to believe that most of the important problems of programming languages "in the small" are solved and that we are on the brink of a new revolution that will have a profound effect on programming languages. I would very much like to hear what LtU members think about this!

Jean put dire comment on tape

C’est à dire, Jeanne a placé un commentaire affreux sur ruban. A pretty neat example of double coding, if you ask me.

Saw it mentioned in A Box, Darkly: Obfuscation, Weird Languages, and Code Aesthetics, an amusing piece of new-media scholarship that reëxamines the notion of beautiful code by surveying a spectrum of weirdo languages ranging from the relatively pleasant (if rather ancient) INTERCAL or Chef to the downright hellish C++ [PDF, 10MB] and Malbolge.

The authors reserve the more conventional term esoteric for such weird (but soon-to-become-dominant) languages as Prolog and ML, and prefer the term weird for such esoteric languages as Brainfuck. The paper builds on earlier attempts to apply the techniques of literary theory to the task of defining programming as an aesthetic practice. Previous such attempts were apparently too narrow in scope, for they failed to explain why anyone would spend years of their life trying to write a program in a language that is best approached as a cryptosystem and whose Turing-completeness remained in question for a few years.

Ada Lovelace Day

Hi Everyone,

March 24, 2010 is Ada Lovelace Day. This means that almost 2000 of us have made a pledge to blog about a woman in science of technology.

I've picked a more quite member of the Array language community Ferranti's Girl

Happy Ada Lovelace Day!

XML feed