1) Implemente algo que representa uma arvore de busca binaria. A arvore vai armazenar ``coisas''. Implemente o predicado: inclue(ARV_VELHA,DADO,ARV_NOVA,TESTE) que é verdade quando ARV_VELHA é uma arvore binaria, DADO é uma coisa, TESTE é o predicado de 3 argumentos que compara coisas (mais abaixo), e ARV_NOVA é ARV_VELHA se DADO ja esta armazenado na arvore ou é o resultado de incluir DADO em ARV_VELHA. O predicado TESTE é um predicado de 3 argumentos de tal forma que teste(D1,D2,X) unificará X com -1 se D1 for menor que D2, com 0 se D1 = D2, e +1 se D1 > D2. 2) Escreva o predicado separa(X,Y), onde X é uma lista que ontem atomos e listas, e Y contem os mesmos elementos de X mas os atomos aparecem antes que as listas, mas na sua ordem original. ?- separa([a,b,[2],d,[3,4],[5,6],e], Y). Y = [a,b,d,e,[2],[3,4],[5,6]] 3)Assuma um banco de dados com os predicados casou(HOMEM,MULHER,ANO) separou(HOMEM,MULHER,ANO) faleceu(PESSOA,ANO) que significam que HOMEM e MULHER casaram-se no ano ANO, e que HOMEM e MULHER se separaram no ano ANO, e que PESSOA morreu no ano ANO, respectivamente. Assuma que uma pessoa so se casa no maximo uma vez por ano. Escreva os predicados: * erro que é verdadeiro se existir alguem que se casou, se separou, ou faleceu, em algum ano posterior a sua morte. * bigamo(X) se X é um homem que durante algum ano estava casado com 2 mulheres diferentes (verifique que ele não se separou de uma naquele ano). * solitarios(L) que é verdadeiro se L é a lista de todas as pessoas que ja morreram e nunca se casaram. 4) leia 50 numeros do arquivo "xx.txt" e imprima o maior deles.