File: mutrec.sail

package info (click to toggle)
sail-ocaml 0.19.1%2Bdfsg5-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 18,008 kB
  • sloc: ml: 75,941; ansic: 8,848; python: 1,342; exp: 560; sh: 474; makefile: 218; cpp: 36
file content (23 lines) | stat: -rw-r--r-- 402 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
default Order dec

$include <prelude.sail>

val f : (int, int) -> int
val g : (int, int) -> int

function f(x,y) = {
  if x == 0 then 0 else
  if x < 0 then -1 else g(y,x - 1)
}

function g(y,x) = {
  if x == 0 then 0 else
  if x < 0 then -1 else f(x - 1,y)
}

termination_measure f(x,y) = abs_int(x)
termination_measure g(x,y) = abs_int(y)

val test : int -> bool

function test(x) = f(x,4) == g(5,x)