Verità in un Modello Herbrandt Per costruire il mondo corrente, con Universo U e interpretazione di herbandt H: makeUniverso(U) asserisce individuo(I) per ogni I in U. makeHM(H) asserisce iHerbrandt(F) per ogni fatto F in H. Le formule si costruiscono con: :- op(180, xfy, v). /* vel :- op(170, xfy, &). /* e :- op(160, fy, n). /* non :- op(100, fx, exi). /* esiste :- op(190,xfx,:). /* sintassi exi x: Formula vera(F,Perche), falsa(F,Perche) spiegano perché F è vera o falsa nel mondo corrente; per semplicità, scartare n exi X: Formula Definire la verità delle implicazioni e biimplicazioni
Alberi binari quasi bilanciati isa(X,tree(T)): X è un albero binario con elementi di tipo T. isa(X,btree(T)): X è un albero binario quasi bilanciato se –Base: T è nil –Passo: T ha sottoalbero sinistro S e sottoalbero destro D e numNodi(S)=numNodi(D) o numNodi(S)=numNodi(D)+1 S e D sono, ricorsivamente, btree(T)
Alberi binari quasi ordinati isa(X,qotree(T)): X è un albero quasi ordinato con elementi di un tipo T totalmente ordinato da una relazione leq(X,Y) se –Base: X è nil –Passo X ha radice R, sottoalbero sinistro S, sottoalbero destro D e: S è un qotree con radice RS D è un qotree con radice RD leq(R,RS) e leq(R,RD) Theo. isa(X,qotree(T)) la radice di T è il minimo
Alberi di priorità isa(X,priority(T)) se X è quasi bilanciato e quasi ordinato
Inserimento in alberi di priorità ins(X,T1,T2): T2 = T1 unito X e, se T1 è di priorità, lo è anche T2. –Trovare base e passo –NB: gli inserimenti devono conservare il quasi bilanciamento e il quasi ordinamento.
Alberi con sbilanciamento ed estrazione della radice I costruttori sono: –nil –t(D,R,S,D), dove D è numNodi(S)-numNodi(D); Dare loperazione di inserimento di un nodo e di estrazione della radice, ricalcolando D solo lungo un cammino. Se lalbero è quasi bilanciato, 0 <= D <=1 in ogni nodo; è possibile lestrazione della radice mantenendo il quasi bilanciamento?