Perché non sono simmetrico il postfix e le espressioni primarie?

-11

Ogni espressione primaria è un'espressione postfissa ma un'espressione postfissa non è un'espressione primaria.

Ma in matematica, l'uguaglianza sembra essere simmetrica. Cioè:

If A is B, then B is A

Perché non è questo il caso per postfix ed espressioni primarie?

    
posta user873521 18.11.2011 - 06:44
fonte

8 risposte

9

But In mathematic sense, when A is B then B is also A

Da una prospettiva logica, il verbo "to be" è sovraccarico. In questa frase, "è" significa "identità", che è una relazione simmetrica, riflessiva, transitiva, quindi A = B < = > B = A. Se Superman è Clark Kent, allora Clark Kent è anche Superman.

Nell'esempio che hai citato, "un'espressione primaria è anche un'espressione postfissa", "è" significa "per ogni x, se x ha la proprietà A allora x ha anche la proprietà B". Questa non è una relazione simmetrica. Ad esempio, ogni umano è mortale, ma non ogni mortale è umano. (A volte, questo è abbreviato in "umani sono mortali" o in questo caso "Un umano è morale, fornito ...")

Un altro uso comune è "x è F" come in "Socrates è umano", dove "è" significa "esemplifica la proprietà" o "ha la proprietà". Questa non è una relazione (non nella logica del primo ordine, comunque), quindi i termini riflettente / simmetrico / transitivo non si applicano realmente, ma non si può dedurre da "Socrate è umano" che "l'umano è Socrate" o da " Socrate è umano e Mike Tyson è umano "che" Socrate è Mike Tyson ".

La differenza è che Socrates, Clark Kent e Superman sono individui (e A e B sono intesi come variabili riferite a individui) mentre "espressione primaria", "espressione postfissa", "umano", "mortale" sono proprietà.

Le cose diventano davvero strane quando si ha una frase come "Socrate era l'insegnante di Platone", perché "l'insegnante di Platone" è una proprietà, ma solo una persona ha (avuto) questa proprietà, quindi può anche essere usata come nome per quell'individuo (infatti, secondo alcune teorie sulla denominazione, nomi propri come "Platone" e "Socrate" sono semplicemente proprietà che sono esemplificate solo da un individuo e nomi di personaggi immaginari come "Clark Kent" e "Superman" sono in realtà proprietà che non sono esemplificati da nulla). Quindi potresti dedurre da "Socrate era il Maestro di Platone" e "l'insegnante di Platone fu avvelenato" che "Socrate fu avvelenato". Ma questo è davvero un caso limite che funziona solo perché Platone aveva un solo insegnante.

    
risposta data 18.11.2011 - 13:19
fonte
4

But In mathematic sense, when A is B then B is also A. I don't get this. How come this is not true? what sort of logic is this or am i missing something here?

Per dargli un senso matematico, devi definire il significato di è nella frase "A is B" in modo preciso e matematico.

D'ora in poi userò lettere minuscole ('' a è b '' anziché '' A è B '') per indicare gli elementi di un insieme e lettere maiuscole per indicare i set.

Prendi un insieme A e una relazione R che è un sottoinsieme di A x A, cioè un insieme di coppie {(a1, b1), (a2, b2) ... | a1, a2, b1, b2, ... in A}. Invece di scrivere "(a1, b1) appartiene a R", scrivi "a1 R b1".

Se la relazione è

  • Riflessivo: per tutti a a in A, abbiamo un R a.
  • Simmetrico: per tutti a, b in A, abbiamo che a R b implica b R a.
  • Transitivo: per tutti a, b, c in A, abbiamo che a R b eb R c implica un R c.

allora R è chiamata una relazione di equivalenza.

Un esempio di relazione di equivalenza è il seguente:

  • A è l'insieme di tutti gli oggetti String Java.
  • Per qualsiasi due stringhe s1, s2, definisci s1 R s2 se e solo se s1.equals (s2)

Una particolare relazione di equivalenza è l'identità. R è l'identificativo di un insieme A, se, per tutti a, b in A, a R b implica a = b. ('=' è uguale in senso matematico). Un esempio in Java è l'operatore == sugli oggetti, cioè per due oggetti o1, o2, sia o1 R o2 se e solo se o1 == o2.

Tornando alla tua domanda: "A è B allora B è anche A" si riferisce ad una relazione simmetrica, ed i due esempi Java sopra (relazioni indotte da equals (), ==) sono un esempio di ciò. In questo caso, una caratteristica del linguaggio di programmazione corrisponde al tuo "significato matematico".

C'è tuttavia un altro uso informale di "A is B". Sia A e B siano due insiemi e A un sottoinsieme di B. In questo caso diciamo "A is B" (es. Una finestra di dialogo è un Widget) che significa "un elemento a di A è anche un elemento di B ". In generale, A è un sottoinsieme di B non implica che B sia un sottoinsieme di A. Questo è solo il caso in cui i due insiemi sono uguali. Nota che la relazione sottoinsieme è una relazione tra insiemi e non tra i loro elementi.

Se A è un sottoinsieme di B ma A non è uguale a B, diciamo che A è un sottoinsieme appropriato di B. Nel tuo esempio, il set di espressioni primarie è un sottoinsieme appropriato dell'insieme di espressioni postfix .

Quindi, secondo il contesto e la definizione precisa di "A", "B", e "è" la tua affermazione "quando A è B allora B è anche A" può essere vero o falso.

    
risposta data 18.11.2011 - 12:10
fonte
1

Puoi cercare esempi di logica nei programmi, ma la domanda che penso tu stia rispondendo non è propriamente appropriata (se la stai chiedendo come un logico), poiché i programmi sono insiemi di istruzioni non logiche dichiarazioni (nel senso logico simbolico).

    
risposta data 18.11.2011 - 12:25
fonte
1

But In mathematic sense, when A is B then B is also A.

Non necessariamente. Qualsiasi relazione asimmetrica fallisce questa equazione.

What kind of logic is applied in programming?

Dipende da cosa viene fatto. La logica matematica si adatterebbe al meglio nell'elaborazione del segnale.

    
risposta data 18.11.2011 - 07:03
fonte
0

La disconnessione che hai descritto può essere risolta dalla logica dei predicati , che tratta delle relazioni tra classi di oggetti. < br> Ad esempio "Tutti gli struzzi sono uccelli" è una vera affermazione, ma "Tutti gli uccelli sono struzzi" è una falsa dichiarazione.
Pertanto in questo ramo della matematica, non è necessariamente vero che ogni relazione è simmetrica ,
per esempio. tutte le A sono B, quindi tutte le B sono A.

    
risposta data 18.11.2011 - 15:23
fonte
0

il valore di A e B è lo stesso, ma la loro posizione nella memoria del computer è diversa

Leggere il concetto di riferimenti potrebbe forse dare soddisfazione alla tua logica dichiarata link )

    
risposta data 18.11.2011 - 15:43
fonte
0

Every primary expression is a postfix expression but a postfix expression is not primary expression.

(Ho i miei dubbi sulla precisione di questa affermazione. Hai trascritto correttamente?)

Ma la risposta è che, poiché l'istruzione usa la frase "è un", si tratta di set e di utilizzo della logica dell'insieme.

La prima parte della frase si traduce in:

ForAll(e In PrimaryExpression | e In PostfixExpression)

la seconda parte non viene analizzata come inglese, quindi non tenterò di tradurla.

    
risposta data 18.11.2011 - 16:07
fonte
0

Quello che hai qui non è un problema con la programmazione o la logica, ma un problema di comprensione in inglese.

Il verbo "essere" ha molti significati diversi in inglese. Le lingue umane spesso omettono connettivi logici come quantificatori. A volte, "essere" esprime un'equivalenza:

A mare is an adult female horse.

In via semi-formale, questa frase significa che la parola "mare" significa la stessa cosa di "cavallo femmina adulto".

A volte, "be" esprime che un concetto è un'istanza o un esempio di un altro concetto.

A horse is an animal.

Stati semi-formalmente, questa frase significa che ogni entità che ha la proprietà di essere un cavallo ha anche la proprietà di essere un animale.

Quale significato è inteso è normalmente chiaro dal contesto. Nelle situazioni quotidiane, gli umani inferiscono automaticamente il giusto contesto quasi sempre; questo è il motivo per cui le lingue tendono ad omettere connettivi logici precisi a meno che non siano realmente necessari. I testi matematici che trattano nozioni un po 'astratte spesso hanno bisogno di rendere i collegamenti logici molto chiari, e quindi usano un linguaggio più preciso, spesso supportato da notazioni matematiche.

L'affermazione "un'espressione primaria è un'espressione postfissa" è del secondo tipo. Ogni espressione che appartiene alla categoria di espressioni primarie appartiene anche alla categoria delle espressioni postfisse. Questa affermazione non implica che ogni espressione postfissa sia un'espressione primaria.

In un commento, suggerisci la frase "l'espressione primaria può essere un'espressione postfissa". Questa affermazione, nell'inglese di tutti i giorni, è sbagliata. Implica che alcune espressioni primarie sono espressioni postfisse e altre no. Questo non è il caso: ogni espressione primaria è un'espressione postfissa. D'altra parte, è vero che un'espressione postfissa può essere un'espressione primaria: ci sono espressioni postfissa che sono anche espressioni primarie e espressioni postfix che non lo sono.

    
risposta data 20.11.2011 - 19:10
fonte

Leggi altre domande sui tag