We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
e.g. given
type t = { x : unit list; y : unit list } let length a = List.length a.x + List.length a.y let rec g xs = match xs.x, xs.y with | _::x, y when List.length xs.x > List.length xs.y -> Some {x;y} | x,_::y -> g {x;y} | _ -> None
we can do
lemma g_len xs = match g xs with | None -> true | Some xs' -> length xs' < length xs [@@fc] [@@auto] let rec f xs = match g xs with | None -> () | Some xs -> f xs [@@measure Ordinal.of_int (length xs)] [@@disable length]
or
let rec f xs = match g xs with | None -> () | Some xs -> f xs [@@measure Ordinal.of_int (length xs)] [@@validate_induct]
The text was updated successfully, but these errors were encountered:
No branches or pull requests
e.g. given
we can do
or
The text was updated successfully, but these errors were encountered: