1symbolic;
2
3on1 'assert;
4
5struct Tag;
6struct PosNumber asserted by PosNumberP;
7
8procedure PosNumberP(s);
9   numberp s and s > 0;
10
11asserted procedure hugo(x1: Number, x2: PosNumber, x3: Tag): DottedPair;
12   x3 . (x1 + x2);
13
14hugo(1, 1, 'y);
15hugo(1, -1, 'y);
16
17assert_install hugo;
18
19hugo(1, 1, 'y);
20hugo(1, -1, 'y);
21
22assert_uninstall hugo;
23
24declare addf: (SF, SF) -> SF;
25declare addsq: (SQ, SQ) -> SQ;
26
27assert_install addf, addsq;
28
29addsq(simp 'x, numr simp 'x);
30
31algebraic;
32
33assert_analyze();
34
35assert_uninstall_all;
36
37end;
38