File: atom.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 (21 lines) | stat: -rw-r--r-- 405 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
default Order dec
$include <flow.sail>
$include <arith.sail>

val f : forall 'n, 'n >= 0. atom(8 * 'n) -> int

function f(x) = x+1

val g : forall 'n, 'n > 0. atom('n) -> atom(2*'n)
val h : forall 'n, 'n > 1. atom('n) -> int

function h(x) = x

val test : unit -> bool

function test() = {
  /* Using f with Coq would need us to provide/infer witnesses for 'n
  f(0) == 1 & f(8) == 9
  */
  h(g(1)) == 2
}