Not signed in (Sign In)

Vanilla 1.1.9 is a product of Lussumo. More Information: Documentation, Community Support.


    What to do about this one?

    Consequences of technically proving anything in Coq (on at least Linux) exploiting a bug?

    I'm tempted to close --- this should just be a bug report on the coq bug tracker.


    I'm also a little annoyed at the immediate crossposting with M.SE.

    • CommentAuthorMariano
    • CommentTimeMay 3rd 2011

    Well, the phrase «Hostile ocaml plugins» amused me a little, so not all is bad :)

    Not to forget the radioactive banana in the answer!

    But, kidding aside, I found the answer not only funny but also informative and am happy it was given (and possible to give it, i.e. not closed).

    I really don't understand the motivation behind the question. As far as I can tell, the OP is leaving things unsaid because he/she thinks they are obvious (e.g. "this is a huge problem because _______") and is coming from a very different background than mine. Are ships going to sink and airplanes going to fall out of the sky if Coq proves things that are false? (Not a rhetorical question; I really don't know.)

    I also find the answer more informative than the question, but the trouble is that some influential papers in what can be seen as core topology are now being written in the hostile syntax of Coq,

    @Qiaochu Yuan: Depending on why that would happen with Coq, it might be worse (or more interesting) than ZFC proving things that are false: see the above link and

    So perhaps the question itself ("What are the consequences of technically proving anything in Coq?") is just as legitimate as those on potential contradictions in ZFC or on false proofs of e.g. the Riemann hypothesis. Of course it would read smoother if the Coq code was replaced by a human-readable explanation.
    Sergey: I guess you are saying "if Coq proves something false then this might be because ZF proves something false". That's true, but I don't think one can deduce from this that "if Coq proves something false then it is worth talking about on MO" because there might be other far more mundane reasons.

    The MO thread as it currently stands simply says "if you put garbage in to a computer program then you get garbage out". One can philosophise about other reasons for getting garbage out but I don't think that justifies the existence of the MO question.
    I think the problem is that the OP is considering Coq as a security system, while it really is a safety system. But of course, if people start misusing it as a former in future (a misconception that seems hard to avoid, given the "100% sure" clichée of mathematical proof that most of the populace has), questions like this will become way more urgent, and I am pretty sure somebody will find much simpler attacks than the one shown in the OP.
    • CommentAuthorneelk
    • CommentTimeMay 4th 2011

    I also find the answer more informative than the question, but the trouble is that some influential papers in what can be seen as core topology are now being written in the hostile syntax of Coq,

    As a type theorist, I find Coq syntax an incredibly friendly way of making certain parts of core topology much more accessible to me. :)

    (I should also add that regardless of whether it is really core topology or not, HTT is first-rate work on type theory.)


    I clicked through on the other answer to find the FAQ which included this gem (emphasis mine):

    4 What are the other theorem provers?
    Many other theorem provers are available for use nowadays. Isabelle, HOL, HOL Light, Lego, Nuprl, PVS are examples of provers that are fairly similar to Coq by the way they interact with the user. Other relatives of Coq are ACL2, Agda/Alfa, Twelf, Kiv, Mizar, NqThm, Omega...

    Perhaps you have to be someone far more familiar with small children than automatic proof checkers to understand ...

    • CommentAuthoran_mo_user
    • CommentTimeMay 4th 2011 edited
    Sorry for going super off-topic now:
    I was under the impression that Lego (not the proof-checker) is essentially universally known.
    Is this just a more local thing than I thought (I am not too far away from Denmark so...)?
    Or did I miss a more subtle point.