;;             zero     --  constant 0
;;             (zp x)   --  test for x = 0
;;             (neg x)  --  unary negation
;;             (add x y)--  x + y
;;             (sub x y)--  x - y
;;             (mul x y)--  x * y
;;             (dec x)  --  x - 1
(define zero 0)
(define one 1)

(define zp (lambda (x) (zero? x)))

(define add
  (lambda (x y) (+ x y)))

(define sub 
  (lambda (x y) (- x y)))

(define neg
  (lambda (x) (- x)))

(define mul
  (lambda (x y) (* x y)))

(define dec (lambda (x) (- x 1)))

(define abs (lambda (x) (abs x)))

(define floor (lambda (x) (floor x)))

(define expt (lambda (x y) (expt x y)))

(define lt?
  (lambda (x y) (< x y)))

(define gt?
  (lambda (x y) (> x y)))