Discussioni su Algebra astratta, Logica Matematica, Teoria dei Numeri, Matematica Discreta, Teoria dei Codici, Algebra degli insiemi finiti, Crittografia.

Regole del forum

Consulta il nostro regolamento e la guida per scrivere le formule
Rispondi al messaggio

Problemi di logica matematica (implicazioni, predicati)

30/05/2023, 11:56

Buongiorno, sto preparando un esame di software engineering dove viene richiesto, a partire da un testo scritto, di scrivere un enunciato in termini logici. (Spero di non offendere nessuno se uso termini tecnici in modo inappropriato, non ho mai dato un esame di logica pura, spero che comunque il senso venga colto).
Ho però difficoltà nel capire quando la mia soluzione è o meno in disaccordo con quella del professore, quindi vi propongo un esempio per capire se c'è effettivamente un'equivalenza di soluzione o le mie risposte sono sbagliate.

Esempio
testo:
Specify the pre- and post-conditions of a program that takes as input a non-empty
sequence (i.e., an array A) of integers that are all multiple of 5

mia soluzione:
∀ i,k ( 1<i<A.lenght AND A[i] = 5k)

soluzione del prof:
∀i ( 1<i<A.lenght → ∃k ( A[i] = 5k) )

nota: 1<i<A.lenght serve per indicare che il vettore non sia nullo

come vedete io utilizzo un quantificatore universale e un and mentre il prof un quantificatore universale, un quantificatore esistenziale e un'implicazione logica. Vorrei sapere se per voi le soluzioni sono equivalenti e se c'è un modo semplice per convertire un'espressione nell'altra o viceversa

Re: Problemi di logica matematica (implicazioni, predicati)

30/05/2023, 13:34

length!

Stai dicendo che $A[i]=5k$ per ogni valore di $k$ simultaneamente. Come funziona?

Re: Problemi di logica matematica (implicazioni, predicati)

30/05/2023, 16:22

Si effettivamente a pensarci un attimo non ha molto senso.
Propongo un altro caso dove proprio non capisco il senso nella soluzione del prof.
E' molto semplice ma mi deve sfuggire qualcosa. Come prima mostro la mia soluzione e quella del prof.

Traccia:
a program that takes as input a nonempty array A , of integers that all belong to range [0, 9]

soluzione (ovvero la condizione a cui devono sottostare gli input) del prof:

∀i ( 1<i<A.length → 0<A[i]<9 )

mia soluzione:

∀i ( 1<i<A.length AND 0<A[i]<9 )

nella mia testa quello che ho scritto io significa: predicato vero se per qualunque i appartenente al range, l'A[i] corrispondente è compreso tra 0 e 9.
Quello che invece scrive il prof (per me) significa: Per ogni i, se i appartiene al range, allora anche A[i] appartiene al suo range. Cosa concettualmente sbagliata visto che sono io a dover imporre ciò non avvenga, manca il nesso causa effetto tra le due cose.
Eppure questo tipo di soluzione è presente in molti casi analoghi quindi dubito sia un errore e vorrei capire cosa mi sfugge.
Spero di essermi spiegato
Rispondi al messaggio


Skuola.net News è una testata giornalistica iscritta al Registro degli Operatori della Comunicazione.
Registrazione: n° 20792 del 23/12/2010.
©2000— Skuola Network s.r.l. Tutti i diritti riservati. — P.I. 10404470014.