Go backward to Semantic Domains Go up to Top |
Format for presenting semantic domains
Rational Numbers
Domain Rat = (Z × Z)_|_
Operations
makerat: Z => (Z => Rat)
makerat = lambda p.lambda q.(q=0) => _|_ [] (p,q)
addrat: Rat => (Rat => Rat)
addrat = lambda (p1,q1).lambda (p2,q2). ((p1*q2)+(p2*q1), q1*q2)
multrat: Rat => (Rat => Rat)
multrat = lambda (p1,q1).lambda (p2,q2). (p1*p2,q1*q2)
Choice function e1 => e2 [] e3
=> e2, if e1 = true
=> e3, if e1 = false