Problemi di logica matematica (implicazioni, predicati)

Messaggioda suchpuz » 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
suchpuz
Starting Member
Starting Member
 
Messaggio: 1 di 2
Iscritto il: 30/05/2023, 11:40

Re: Problemi di logica matematica (implicazioni, predicati)

Messaggioda ghira » 30/05/2023, 13:34

length!

Stai dicendo che $A[i]=5k$ per ogni valore di $k$ simultaneamente. Come funziona?
Avatar utente
ghira
Cannot live without
Cannot live without
 
Messaggio: 2380 di 4307
Iscritto il: 11/09/2019, 09:36

Re: Problemi di logica matematica (implicazioni, predicati)

Messaggioda suchpuz » 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
suchpuz
Starting Member
Starting Member
 
Messaggio: 2 di 2
Iscritto il: 30/05/2023, 11:40


Torna a Algebra, logica, teoria dei numeri e matematica discreta

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite