52 karma · joined February 18, 2008
GitHub: https://github.com/ntc2
https://www.microsoft.com/en-us/research/publication/the-imp...
It has two chapters on pattern matching, two chapters on type checking, and several chapters related to execution.
I have not read it.
Some comments:
* the operations in the mathematical spec are mostly well defined, but e.g. division by zero is not defined. However, the verification handles this by checking that all operations are well-defined on all possible inputs.
* yes, identifying the "edge cases" is not something you can do easily, and hard to make formal. In some sense, the fact the non-edge-case inputs are treated in a uniform way is probably what allows the verification to succeed at all.
* a short summary of the answer you already found in the third blog post: what we actually verify is the LLVM assembly that Clang produces when compiling the C program. Much of the potentially undefined behavior in a C program is translated away by the compiler on the way to LLVM assembly. For any potential undefined behavior that remains in the LLVM assembly, the verification checks that it cannot happen at runtime.
8^(64 + 1000) =
772229093352564060021182203061704429810699485400692901921197 543030601797302324658889178066005708227773161814337173682980 065612522479316644103460638515687114933331680544961552375412 914711698479251875125441335427310394080188149008724146221306 402242642191159219745353079189135871713826154087180913177991 135554545843425504232155742364801022614341625532175948198587 539576566458760517446126909555225085347521013376171505426231 008775737688282539095967230536510936329489906183630574979494 541005574981802619546120394597788656899688609063922312837993 473534655739423794995816974687759952971465473538229880976237 137410666755636310464327792929854669852851716265627988045993 010404521026728809660275537200281773360887456757531693050082 473180078568595877659952113273156104380151800825339034988199 020562681928372626978536148813617979584497069978086989075685 756621893032191527888867820144068182725496496585643739551119 7590300209437142003442599950379602277911674788208191414992896
tests, which would take "forever" to verify by direct testing.
We did not prove any properties of our mathematical specification in Cryptol, but the claim is that it's close enough to the official FIPS mathematical specification for HMAC [1] that it's easy to believe that it's correct. However, a group at Princeton has also verified HMAC in the past, and gone further than us by not only proving that the imperative C code is input/output equivalent to their mathematical spec in Coq, but also proving that their mathematical spec has the security properties of a secure hash function [2].
[1] http://csrc.nist.gov/publications/fips/fips198-1/FIPS-198-1_...
[2] https://www.cs.princeton.edu/~appel/papers/verified-hmac.pdf
in other words, why require a sign-up instead of just posting the questions on your site?
Email from prof:
"I need to apologize to everyone in CS 367 for providing data sets containing offensive material. I had not looked at the contents of the large and huge data sets until well after the assignment had been released. Had I realized what the data sets contained, I never would have used them. I am sorry that this happened. "
Full assignment:
http://pages.cs.wisc.edu/~hasti/cs367-common/assignments/p5/...
http://stackin.hauntedshit.com/wp-content/uploads/2009/03/20...
:)
If you aren't familiar with SuperHappyDevHouse see http://superhappydevhouse.org/.
Funding
Innovation Works will invest $25,000 in each AlphaLab company in
return for 3% of the common stock of the company. This funding
should support company operations during the AlphaLab program. As
Innovation Works utilizes funds from the Commonwealth of
Pennsylvania, each company receiving funding is expected to
maintain a significant presence in Pennsylvania after the
program.
and from http://www.alphalab.org/faqs.aspx: 14) Do we have to stay in Pittsburgh after the program ends?
Companies are expected to remain in Pittsburgh after the end of the
AlphaLab program. Our goal is to help you build a successful
technology company and to add to the critical mass of flourishing tech
companies in the Pittsburgh region. We believe that Pittsburgh is a
great place to build a company and after your experience at AlphaLab
we are confident that you will agree.
As I understand it, the state money imposes the condition that companies stay in PA. It's been a long time since I looked at our contract/agreement, but I think the technical details for this round were (roughly) that companies must maintain a "significant presence" in PA for at least 5 years after receiving the money. If a company fails to maintain this "significant presence" they must return the $25,000 invested, but IW retains their 3% equity in the company. So, I'd say they're pretty serious, but if it were essential for your company to cut ties with PA at some point it wouldn't be the end of the world.I don't get around that much myself, but can add: The AlphaLab office space is on the South Side, which is the big "night life" area, with a bunch of bars, clubs, restaurants, and for some reason a tattoo parlor on every other block (maybe drunk people are more likely to spontaneously get tattoos?). Overall Pittsburgh kind of reminds of Portland, OR, since it's green, cheap, and has a big river (two actually) running through the downtown. It's also supposed to rain a lot like Portland, but that hasn't started yet ...
* each team gets a one-on-one meeting with the AlphaLab team every week, and when something urgent comes up they can usually make time for another meeting or discuss it on the spot.
* between the AlphaLab program advisors and Innovation Works (the parent company) there are a bunch of experienced business people and entrepreneurs to get advice from and network with.
Together these people have helped us with all sorts of stuff, from developing business documents like executive summaries and seeking further investment to setting up focus groups to test and discuss our product.
I don't have experience with YC's program first hand, but anecdotally AlphaLab blows YC away in terms of amount hands on business help you get. Makes sense when the program only includes six start ups and is backed by a mature investment firm. For teams like ours with a lot of technical experience but very little business experience this seems pretty important.
* includes office space
* more money for less equity
* longer program
* cheaper city to live in"We have a wonderful ability here to choose the right tool for the job. We have components that are written in Java, in C++, in Python, and Ruby and Perl. [Python is] definitely viewed internally here by some of the best computer scientists in the world, people from MITs AI [artificial intelligence] and CS [computer science] labs, as enterprise worthy," he said.
No indication that they're replacing any of the hard core algorithmic stuff that's discussed here: