Termine, logica dei predicati.

NawtFound
Questa è la traccia del progetto: "Scrivere un programma ANSI C che acquisisce da tastiera un termine (non una formula) di logica dei predicati assieme a due sostituzioni e stampa a video il termine risultante dall'applicazione della
composizione delle due sostituzioni."

In poche parole da come ho capito, dovrei far acquisire al programma un termine e due sostituzioni, calcolare la composizione delle due sostituzioni, andare ad applicare quest'ultima al mio termine, e stampare il termine risultante.

Il mio dubbio sorge proprio all'inizio della questione. Che cosa si intende con "termine (non una formula)" di preciso? Non sarebbe un solo "valore" (variabili-costanti). Posso (rappresentarlo) farlo vedere al programma come una lettera minuscola (a,b,c,...,z) ?

Ps spero sia la sessione giusta, visto che la mia domanda tocca due diversi topic. Non sapevo dove scrivere :-)

Grazie in anticipo!

Risposte
vict85
L’argomento è immagino di confine, siccome i tuoi dubbi sono specialmente collegati alla logica, ma dato che il progetto è di programmazione sposto lì (tra gli informatici ci sono molti appassionati di logica).

[xdom="vict85"]Sposto in informatica.[/xdom]

vict85
Veniamo ora al tuo problema. Per prima cosa ti rimando a queste dispense di logica.

Con termine si intende una successione di variabili, costanti e simboli di funzione. Una formula invece include relazioni e simboli logici vari. Di fatto puoi pensare un termine come una successione di lettere che possono essere interpretati. Quello che devi fare è sostituire alcune particolari lettere con delle successioni di simboli.

NawtFound
Dispense molto comode, grazie. Ma sono rimasto con alcuni dubbi, riguardo al corpo di un termine. Esso può essere formato dalla stessa variabile (o costante) ripetuta due o più volte? Cioè, se x è una variabile, l'espressione xx, è un termine? Oppure non è consentito?

adaBTTLS1
mi fa pensare alle regole di riscrittura: me ne sono occupata un secolo fa per la tesi, ma solo come "informatica teorica"; in ogni caso, ho trovato nel web un paio di file che forse possono esserti utili:
http://lia.deis.unibo.it/Courses/AI/Lucidi/logica.pdf
http://filosofia.dafist.unige.it/epi/hp ... 4/pred.pdf
ciao.

NawtFound
Avevo già letto quei due pdf. Purtroppo però nessuna dispensa letta finora risolve il mio dubbio, in quanto da nessuna parte viene specificato se un termine della logica dei predicati può essere composto dalla sola variabile (o costante) ripetuta. Gli esempi fatti in tutte le dispense sono sempre, più o meno, completi di variabili, costanti e simboli di funzione; quindi non mi resta che supporre di no.

vict85
Non può esserlo, leggiti bene le regole. Ma per esempio +xx ha senso.

apatriarca
Basandomi sulla definizione nella dispensa fornita da vict85, sembrerebbe che la risposta alla tua domanda sia no. I termini sono infatti costruiti a partire dalle singole costanti e dalle variabili "applicando funzioni". È in effetti l'unica tra le regole nella definizione ad essere in qualche modo costruttiva. Per cui credo che fxx sia un termine (supposto che f sia una funzione binaria) ma xx no. Ma ne so molto poco di questo argomento.

NawtFound
"apatriarca":
Per cui credo che fxx sia un termine (supposto che f sia una funzione binaria) ma xx no. Ma ne so molto poco di questo argomento.


Infatti pensavo la stessa cosa. L'espressione fxx, sarebbe f(xx), e avrebbe molto più senso a livello matematico, che l'espressione xx, tutt'altro che convincente.

E grazie di nuovo a tutti :)

SgtBenson
Scusate ho il progetto uguale anche io, ma ho un domanda differente da fare: che diavolo è "la risultante dell'applicazione della composizione delle due sostituzioni"? Cosa devo fare?
Non ho capito questa parte.. :snakeman: :? :twisted: :shock:

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.