-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest.ml
More file actions
41 lines (35 loc) · 968 Bytes
/
Copy pathtest.ml
File metadata and controls
41 lines (35 loc) · 968 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
let _ =
assert (not (Term.(var_equals (fresh ()) (fresh ()))));
assert (not (Term.(equals (var (fresh ())) (var (fresh ())))));
Term.reset () ;
let v = Term.fresh () in
let t = Term.make "c" [] in
Term.bind v t ;
assert Term.(equals (var v) t) ;
Term.reset () ;
let v = Term.fresh () in
let t = Term.make "c" [] in
let s = Term.save () in
assert (not Term.(equals (var v) t)) ;
Term.bind v t ;
assert Term.(equals (var v) t) ;
Term.restore s ;
assert (not Term.(equals (var v) t));
Term.reset () ;
Term.bind (Term.fresh ()) (Term.make "c" []) ;
let v = Term.fresh () in
let t = Term.make "c" [] in
let s = Term.save () in
Term.bind v t ;
Term.restore s ;
assert (not Term.(equals (var v) t))
let _ =
let open Term in
reset () ;
let x = var (fresh ()) in
let a = make "a" [] in
let u = make "f" [x;a] in
let v = make "f" [a;x] in
assert (not (equals u v)) ;
Unify.unify u v ;
assert (equals u v)