they should turn it into a platform for electronic payments between people, a Facebook electronic currency. you prepay an amount to Facebook, then you can transfer money between facebook accounts using NFC or barcode scanning.
Singularity (or better, sing#) formally describes the communication between subsystems. At the code level there are still "black boxes" of code that are not specified or verified.
only if you want to prove it automatically. this proof is constructed by hand, with some automatical steps in between, and then *verified* automatically. to manage the complexity of the proof, the proof is done in a more abstract formal specification language , then refined two times (haskel, C) . the correctness of the refinements are formally proven by the Isabelle system.
you dont have to "get around Godel's Incompleteness Theorem". (from wikipedia:): "Any effectively generated theory capable of expressing elementary arithmetic cannot be both consistent and complete. In particular, for any consistent, effectively generated formal theory that proves certain basic arithmetic truths, there is an arithmetical statement that is true, but not provable in the theory". it says "a statement" not "every statement". So, you can make formal theories where a lot of statements are provable, including a large class of computer programs.