Domanda

Se voglio esprimere nella logica del primo ordine che "gli elementi nell'insieme con il raggio più piccolo hanno il valore 0", sarebbe corretto quanto segue?

∀ e 1 ∈ S. ∀ e 2 ∈ S. Raggio e 1 ≤ Raggio e 2 ⇒ Valore e 1 = 0?

Le variabili sono quantificate correttamente?

Grazie

È stato utile?

Soluzione

Giusto per chiarire tra parentesi, quello che hai scritto di solito significa:

\forall e1 \in S. (\forall e2 \in S. (Radius e1 <= Radius e2 --> Value e1 = 0))

Questa affermazione afferma che il valore di ogni elemento è 0. Ecco come: scegli un e1 arbitrario, ora scegli e2 = e1 e abbiamo: Radius e1 <= Radius e1 --> Value e1 = 0. Poiché l'antecedente (cosa prima del -->) è vero, abbiamo Value e1 = 0. E poiché abbiamo creatonessuna ipotesi su e1, abbiamo forall e \in S. Value e = 0.

Il problema è che le tue parentesi sono spente.

\forall e1 \in S. (\forall e2 \in S. Radius e1 <= Radius e2) --> Value e1 = 0

Affinché l'antecedente sia vero ora, il raggio di e1 deve essere inferiore o uguale a ogni (al contrario di qualsiasi) altro raggio, che sembra quello che intendevi.

Altri suggerimenti

Penso che tu voglia un esiste

\\esiste e_1 .(\\forall e_2 raggio(e_1) <= raggio(e_2)) e (raggio(e_1) = 0)

Non sono sicuro della precedenza nella formula, ma ora che penso di aver capito la domanda, forse vuoi (dove M è la condizione di minima radius(e_1) < radius(e_2))

\\pertutto e_1 .((\\forall e_2 .M ) -> valore e_1 = 0)

Penso che la tua formula precedente potrebbe essere sbagliata per il seguente motivo.Supponiamo di avere elementi con raggi { 0, 1, 2 } e valori uguali a raggi.Quindi, avrai un caso in cui 1 <= 2, ma il valore non è zero.Se sto interpretando correttamente la tua formula originale,

\\pertutto e_1 .\\pertutto e_2 .P(e_1, e_2)

Quindi questo controesempio fornisce un caso in cui P è falso, quindi l'intera formula fallisce (ma l'esempio dovrebbe essere vero).

Quello che hai scritto è vero anche se non ci sono elementi con il raggio più piccolo.Se questo è desiderato, hai ragione;in caso contrario, è necessario aggiungere una clausola in tal senso:

(\forall e1 \in S. \forall e2 \in S. Radius e1 <= Radius e2 --> Value e1 = 0) \and (\exists e1 \in S. \forall e2 \in S. Radius e1 <= Radius e2)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top