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