NATEXPEQ on page 39
of Algebraic Semantics, give two Sigma-algebras where the first
equation (0 + X = X) does not hold.
FLOAT,
which includes the function sqrt.
N x N x x . y = z x|| . y|| = z
--- ------ ----- ----------- -------------
N N x| x . = x . y| = xz z
What does this system do? Hint: It can be described in just three
words (or even one if you cheat a bit).
f(a,x) f(b,x)
f(a,x) g(a,b)
f(a,x) f(a,y)
f(a,b) f(a,b)
f(a,x) f(a,h(x))
g(f(a,b),h(x,y)) g(f(z,b),h(b,b))
g(f(a,x),h(x,b)) g(f(a,b),h(a,b))
g(f(a,x),h(x,b)) g(f(a,b),h(b,b))
g(f(a,x),h(y,b)) g(z,y)
g(f(a,x),h(y,b)) g(z,x)
where x, y, z are variables, and the rest are constants.
S K = K I
S (K I) = B I
S I (K K) = C I K
where Kxy = x, Sxyz = (xz)(yz), Ix =
x, Bxyz = x(yz), Cxyz = xzy, and equality
means alpha,beta-equivalence (see Combinators
in OBJ).
Standard ML of New Jersey, version 110.0.6 is available on all CSE unix
machines at
/net/cs/class/development/elkan/cse230/sml-110/bin/sml, which
you can either define as an alias for sml, or else you can add
the path for its directory to the PATH variable of your
environment. You should actually run your ML code for all of the ML
programming problems, and turn in your code along with its output.
Binary for BinProlog 4.00 for Solaris machines (such as the CSE instructional machines beowulf, bintijua, kongo, or the machines in the APE lab) can be found at /net/cs/class/wi99/cse230/prolog/bp, and also as a backup, at /net/cat/disk1/prolog/bp; the latter directory also contains some other files, including some relevant to exercises, so that you don't have to do all the typing yourself. Some basic notes on using BinProlog 4.00 are at binpro.html.