Advertisement
Beatgodes

Untitled

Apr 19th, 2013
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.44 KB | None | 0 0
  1. /*@
  2. requires \exists integer i; Length_of_str_is(s,i);
  3. assigns \nothing;
  4. ensures \exists integer i; Length_of_str_is(s,i) && \result == i;
  5. @*/
  6. int strlen(const char *s) {
  7. const char *ss = s;
  8. /*@
  9. loop invariant s <= ss <= s+Length(s);
  10. loop invariant \forall integer i; 0 <= i < (ss-s) ==> s[i] != 0;
  11. loop assigns ss;
  12. loop variant Length(s) - (ss-s);
  13. @*/
  14. while (*ss)
  15. ss++;
  16. return ss - s;
  17. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement