Expresar las declaraciones en notación lógica formal

Las preguntas son de Matemáticas para la informática de Albert R. Meyer, Eric Lehman y Frank Thomson Leighton.

La pregunta nos pide que escribamos las siguientes declaraciones en notación lógica formal:

(a) metro es un divisor de norte .

(b) norte es un número primo.

(C) norte es una potencia de primo.

El dominio del discurso es entero no negativo, norte { 0 } . Además de los operadores proposicionales, variables y cuantificadores, podemos definir predicados usando símbolos de suma, multiplicación e igualdad, y constantes no negativas. ( 0 , 1 , ) , pero sin exponenciación (como X y ).

MIS SOLUCIONES:

(a) DIV ( metro , norte ) ::= k : ( k metro = norte )

(b) PRINCIPAL ( norte ) ::= k : [ DIV ( k , norte ) ( k = 1 k = norte ) ] .

(C) PRIMER DE ENERGÍA ( norte ) ::= metro : PRINCIPAL ( metro ) k : [ DIV ( k , norte ) ( DIV ( metro , k ) k = 1 ) ] .

¿Las respuestas son correctas o no? Y me gustaría saber si alguien puede proporcionar soluciones más concisas y alternativas a cualquiera de estas preguntas. Agradecería sus respuestas.

Respuestas (1)

Su solución para (a) es correcta. Tenga en cuenta que, de acuerdo con esta definición, todo número entero no negativo ( 0 incluido) es un divisor de 0 , y 0 no es divisor de ningún otro número no negativo.

Algunos libros de texto excluyen 0 de la definición de divisor (ver aquí para una breve justificación), en ese caso la formalización correcta de " metro es un divisor de norte " sería:

(a')   DIV ( metro , norte )   : metro 0 norte 0 k ( metro k = norte )

La elección entre (a) y (a') depende de la definición de divisor adoptada por su libro de texto o curso. La forma en que formalizas DIV ( metro , norte ) afecta la forma en que formaliza las otras declaraciones.

Tenga en cuenta que metro norte es solo una abreviatura de ¬ ( metro = norte ) , por lo que se puede expresar en su idioma.


Un entero no negativo norte es primo si sus únicos divisores son 1 y norte y es mayor que 1 (ver aquí para una breve discusión sobre las ventajas de excluir 1 de números primos). Desde 0 tiene muchos divisores además de 1 y 0 , es equivalente a decir que un entero no negativo norte es primo si sus únicos divisores son 1 y norte y es diferente de 1 . Entonces, su respuesta es incorrecta, la formalización correcta de " norte es primo" es:

(b)   PRINCIPAL ( norte )   : norte 1 k ( DIV ( k , norte ) ( k = 1 k = norte ) )

La formalización (b) anterior supone que la definición de divisor incluye 0 , es decir DIV ( metro , norte ) se define como en su respuesta (a). Si su definición de divisor excluye 0 , es decir DIV ( metro , norte ) se define como en (a'), entonces DIV ( k , 0 ) es falso para todos k y entonces k ( DIV ( k , 0 ) ( k = 1 k = 0 ) ) es vacuamente cierto , por lo que es necesario excluir explícitamente 0 de la definición de número primo. Por lo tanto, si DIV ( metro , norte ) se define como en (a'), entonces la formalización correcta de " norte es primo" es:

(b')   PRINCIPAL ( norte )   : norte 0 norte 1 k ( DIV ( k , norte ) ( k = 1 k = norte ) )


Su solución para (c) es correcta, si usa (a) como definición de DIV ( metro , norte ) .

Tenga en cuenta que 0 no es potencia de ningún número primo.

Si su definición de divisor excluye 0 , es decir DIV ( metro , norte ) se define como en (a'), entonces DIV ( k , 0 ) es falso para todos k y entonces k ( DIV ( k , 0 ) ( DIV ( metro , k ) k = 1 ) ) es vacuamente cierto , por lo que es necesario excluir explícitamente 0 de la definición de potencia de número primo. Por lo tanto, si DIV ( metro , norte ) se define como en (a'), entonces la formalización correcta de " norte es potencia de un número primo" es:

(C')   POTENCIA_PRIME ( norte )   :

norte 0 metro ( PRINCIPAL ( metro ) k ( DIV ( k , norte ) ( DIV ( metro , k ) k = 1 ) ) ) .