I am a student working on network protocols. Now I have a rough idea
to use mathematical tools, e.g. formal methods, to examine or even
build the model of protocols.
As I have no in-depth concept of these tools, I would like now ask
some naive questions:
1. What is the relationship between formal methods and type theory, as
some papers mentioned that they are inter-related.
2. What is lamda calculus and its relationship with formal methods.
1. Type checking proves properties about the code. The compiler proves your assertion that your function returns an int, or that it returns something whose type depends on the types of the arguments in some way. They can also prove other claims you make about your functions, like whether they throw any exceptions (which Java supports) or what side effects the functions may have (which Haskell supports, albeit without any granularity). Regarding network I/O, searching for things like "monad", "linear types", "uniqueness types", and maybe "session types" might reveal some more information.
2. You can read about lambda calculus on Wikipedia, and I don't know its relationship to formal methods.
y:f(x)->x+1 is, um "nonstandard" notation. (Meaning: Where the heck did you come up with that?)
The lambda calculus notation for a function such as that would be
\x.x+1
where \ is meant to be the lambda character (but I don't have a unicode keyboard handy).
No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.