Example of a Semantic Algebra
Rational Numbers - Domain Rat = (Z x Z) ?
Operations
- makerat : Z ? (Z ? Rat)
- makerat = ? p.? q.(q = 0) ? ? [] (p, q)
- addrat : Rat ? (Rat ? Rat)
- addrat = ? (p1 , q1 ): ? (p2 , q2 ):((p1 * q2 )+(p2 * q1 ), q1 * q2)
- multrat : Rat ? (Rat ? Rat)
- multrat = ? (p1 , q1 ): ? (p2 , q2 ):(p1 * p2 , q1 * q 2 )
Notes:
1. Choice function e1 ? e2 [] e3 ? e2 , if e1 = true,
? e3 , if e1 = false
2. (p,q) represents p/q