;verifica se um numero eh negativo SxS -> {t,nil}
(Defun ehnegativo(x)
    (Cond ((eq x 0)'t)
        ('t(ehneg x x))))

(Defun ehneg(a b)
    (Cond ((eq a 0)'t)
        ((eq b 0)'nil)
        ('t(ehneg (1+ a) (1- b) ))))

;soma dois numeros A+A -> {A}
(Defun soma(a,b)
    (Cond ((eq b 0) a)
        ((eq a 0) b)
        ('t(mais a b))))

(Defun mais(a b)
    (Cond ((eq b 0) a))
        ((ehnegativo b) (mais (1- a) (1+ b))
        ('t (mais (1+ a) (1 -b))))
