• No se han encontrado resultados

Tecnología de la Programación

N/A
N/A
Protected

Academic year: 2021

Share "Tecnología de la Programación"

Copied!
67
0
0

Texto completo

(1)

Tecnología de la Programación

Semántica Operacional

David Cabrero Souto Facultad de Informática Universidade da Coruña

(2)

Verificación formal

Recordar descriptores BOE:

Diseño de algoritmos Análisis de algoritmos

Lenguajes de programación

Diseño de programas: Descomposición modular y documentación

Técnicas de verificación Pruebas de programas

Pruebas de programas:validación

Ejecución de un conjunto de tests generados sintética o manualmente.

Prueba formal de propiedades:verificación Demostración formal de propiedades .

Necesitamos una definición formal del significado (semántica) de los lenguajes de programación.

(3)

Verificación formal

Recordar descriptores BOE:

Diseño de algoritmos Análisis de algoritmos

Lenguajes de programación

Diseño de programas: Descomposición modular y documentación

Técnicas de verificación Pruebas de programas

Pruebas de programas:validación

Ejecución de un conjunto de tests generados sintética o manualmente.

Prueba formal de propiedades:verificación Demostración formal de propiedades .

Necesitamos una definición formal del significado (semántica) de los lenguajes de programación.

(4)

Verificación formal

Recordar descriptores BOE:

Diseño de algoritmos Análisis de algoritmos

Lenguajes de programación

Diseño de programas: Descomposición modular y documentación

Técnicas de verificación Pruebas de programas

Pruebas de programas:validación

Ejecución de un conjunto de tests generados sintética o manualmente.

Prueba formal de propiedades:verificación

Demostración formal de propiedades .

Necesitamos una definición formal del significado (semántica) de los lenguajes de programación.

(5)

Verificación formal

Recordar descriptores BOE:

Diseño de algoritmos Análisis de algoritmos

Lenguajes de programación

Diseño de programas: Descomposición modular y documentación

Técnicas de verificación Pruebas de programas

Pruebas de programas:validación

Ejecución de un conjunto de tests generados sintética o manualmente.

Prueba formal de propiedades:verificación

Demostración formal de propiedades .

Necesitamos una definición formal del significado (semántica) de los lenguajes de programación.

(6)

Verificación formal

Recordar descriptores BOE:

Diseño de algoritmos Análisis de algoritmos

Lenguajes de programación

Diseño de programas: Descomposición modular y documentación

Técnicas de verificación Pruebas de programas

Pruebas de programas:validación

Ejecución de un conjunto de tests generados sintética o manualmente.

Prueba formal de propiedades:verificación

Demostración formal (base matemática) de propiedades .

Necesitamos una definición formal del significado (semántica) de los lenguajes de programación.

(7)

Verificación formal

Recordar descriptores BOE:

Diseño de algoritmos Análisis de algoritmos

Lenguajes de programación

Diseño de programas: Descomposición modular y documentación

Técnicas de verificación Pruebas de programas

Pruebas de programas:validación

Ejecución de un conjunto de tests generados sintética o manualmente.

Prueba formal de propiedades:verificación

Demostración formal (base matemática) de propiedades (para todos los casos).

Necesitamos una definición formal del significado (semántica) de los lenguajes de programación.

(8)

Verificación formal

Recordar descriptores BOE:

Diseño de algoritmos Análisis de algoritmos

Lenguajes de programación

Diseño de programas: Descomposición modular y documentación

Técnicas de verificación Pruebas de programas

Pruebas de programas:validación

Ejecución de un conjunto de tests generados sintética o manualmente.

Prueba formal de propiedades:verificación

Demostración formal (base matemática) de propiedades (para todos los casos).

Necesitamos una definición formal del significado (semántica) de los lenguajes de programación.

(9)

Lenguaje de ejemplo

IMP (IMPerativo) Estructuras básicas: Secuencia Alternativa Repetición

Cambio de estado: variables y asignación. Tipos básicos: enteros, strings.

Tipos compuestos: arrays. Funciones.

(10)

IMP. Sintaxis aproximada

IMP ::= ’eof’ | CMDS ’eof’ CMDS ::= CMD ’;’ | CMD ’;’ CMDS CMD ::= ’skip’

| Type Variable ’:=’ EXP | Variable ’:=’ EXP

| Type Variable ’[’ Exp ’]’ ’:=’ EXP | Variable ’[’ Exp ’]’ ’:=’ EXP

| ’if’ EXP ’then’ CMDS ’else’ CMDS ’fi’ | ’while’ EXP ’do’ CMDS ’done’

(11)

Semántica operacional

Define la semántica de un lenguaje de programación en

función de loscambios de estadoque producen cada una de

las instrucciones del lenguaje.

No es adecuado para todo tipo de lenguajes.

(12)

IMP- Definición

(I)

Conjuntos sintácticos asociados con IMP.

númerosN

BooleanosT ={true,false} Posiciones de memoriaLoc Expresiones aritméticasAexp Expresiones booleanasBexp ComandosCom

(13)

IMP- Definición

(I)

Conjuntos sintácticos asociados con IMP.

númerosN

BooleanosT ={true,false}

Posiciones de memoriaLoc Expresiones aritméticasAexp Expresiones booleanasBexp ComandosCom

(14)

IMP- Definición

(I)

Conjuntos sintácticos asociados con IMP.

númerosN

BooleanosT ={true,false}

Posiciones de memoriaLoc

Expresiones aritméticasAexp Expresiones booleanasBexp ComandosCom

(15)

IMP- Definición

(I)

Conjuntos sintácticos asociados con IMP.

númerosN

BooleanosT ={true,false}

Posiciones de memoriaLoc

Expresiones aritméticasAexp

Expresiones booleanasBexp ComandosCom

(16)

IMP- Definición

(I)

Conjuntos sintácticos asociados con IMP.

númerosN

BooleanosT ={true,false}

Posiciones de memoriaLoc

Expresiones aritméticasAexp

Expresiones booleanasBexp

(17)

IMP- Definición

(I)

Conjuntos sintácticos asociados con IMP.

númerosN

BooleanosT ={true,false}

Posiciones de memoriaLoc

Expresiones aritméticasAexp

Expresiones booleanasBexp

(18)

IMP- Definición

(II)

Convenciones

n,mson variables enN n,m∈N

X,Y son variables enLoc X,Y ∈Loc ai son variables enAexp ai ∈Aexp

bi son variables enBexp bi ∈Bexp

(19)

IMP- Definición

(II)

Convenciones

n,mson variables enN n,m∈N

X,Y son variables enLoc X,Y ∈Loc

ai son variables enAexp ai ∈Aexp

bi son variables enBexp bi ∈Bexp

(20)

IMP- Definición

(II)

Convenciones

n,mson variables enN n,m∈N

X,Y son variables enLoc X,Y ∈Loc

ai son variables enAexp ai ∈Aexp

bi son variables enBexp bi ∈Bexp

(21)

IMP- Definición

(II)

Convenciones

n,mson variables enN n,m∈N

X,Y son variables enLoc X,Y ∈Loc

ai son variables enAexp ai ∈Aexp

bi son variables enBexp bi ∈Bexp

(22)

IMP- Definición

(II)

Convenciones

n,mson variables enN n,m∈N

X,Y son variables enLoc X,Y ∈Loc

ai son variables enAexp ai ∈Aexp

bi son variables enBexp bi ∈Bexp

(23)

IMP- Definición (Aexp)

Expresiones aritméticas Aexp ::= n | X | a0+a1 | a0−a1 | a0∗a1

(24)

IMP- Definición (Bexp)

Expresiones booleanas Bexp ::= true | false | a0=a1 | a0<=a1 | notb | b0andb1 | b0orb1

(25)

IMP- Definición (Comm)

Instrucciones Comm ::= skip | X :=a | c0;c1 | ifbthenc0elsec1fi | whileb doc done

(26)

Estados

El conjunto de estadosΣestá formado por las funciones:

σ:Loc−>N

(Sólo variables enteras)

Dado un estadoσ, representaremos el valor de la posicionX

como: σ(X) Y la extensión de un estadoσ[X ←m]: σ[X ←m](Y) = ( m Y =X , σ(Y) siY 6=X . Indistintamente σ[X ←m] ó σ[m/X]

(27)

Evaluación

Evaluación de una expresión aritméticaaen un estadoσ

<a, σ >→n

Evaluación de una expresión booleanaben un estadoσ

<b, σ >→ {true,false}

Ejecución de una instrucciónc en un estadoσ

(28)

Secuentes

Si las premisas son ciertas, se puede deducir la conclusión.

<premisas > <conclusion>

F1. . .Fn G1. . .Gm

F1. . .Fn→G1. . .Gm

(29)

Evaluación de expresiones aritméticas

Constantes <n, σ >→n Variables <X, σ >→σ(X) Suma <a0, σ >→n <a1, σ >→m <a0+a1, σ >→n+m Resta <a0, σ >→n <a1, σ >→m <a0−a1, σ >→n−m Multiplicación <a0, σ >→n <a1, σ >→m <a0∗a1, σ >→n∗m

(30)

Evaluación de expresiones aritméticas

Constantes <n, σ >→n Variables <X, σ >→σ(X) Suma <a0, σ >→n <a1, σ >→m <a0+a1, σ >→n+m Resta <a0, σ >→n <a1, σ >→m <a0−a1, σ >→n−m Multiplicación <a0, σ >→n <a1, σ >→m <a0∗a1, σ >→n∗m

(31)

Evaluación de expresiones aritméticas

Constantes <n, σ >→n Variables <X, σ >→σ(X) Suma <a0, σ >→n <a1, σ >→m <a0+a1, σ >→n+m Resta <a0, σ >→n <a1, σ >→m <a0−a1, σ >→n−m Multiplicación <a0, σ >→n <a1, σ >→m <a0∗a1, σ >→n∗m

(32)

Evaluación de expresiones aritméticas

Constantes <n, σ >→n Variables <X, σ >→σ(X) Suma <a0, σ >→n <a1, σ >→m <a0+a1, σ >→n+m Resta <a0, σ >→n <a1, σ >→m <a0−a1, σ >→n−m Multiplicación <a0, σ >→n <a1, σ >→m <a0∗a1, σ >→n∗m

(33)

Evaluación de expresiones aritméticas

Constantes <n, σ >→n Variables <X, σ >→σ(X) Suma <a0, σ >→n <a1, σ >→m <a0+a1, σ >→n+m Resta <a0, σ >→n <a1, σ >→m <a0−a1, σ >→n−m Multiplicación <a0, σ >→n <a1, σ >→m <a0∗a1, σ >→n∗m

(34)

Evaluación de expresiones booleanas

(I)

Constantes

<true, σ >→true <false, σ >→false

Comparación aritmética <a0, σ >→n <a1, σ >→m <a0=a1, σ >→true n=m <a0, σ >→n <a1, σ >→m <a0=a1, σ >→false n6=m <a0, σ >→n <a1, σ >→m <a0<=a1, σ >→true n<=m <a0, σ >→n <a1, σ >→m <a0<=a1, σ >→false n>m

(35)

Evaluación de expresiones booleanas

(I)

Constantes

<true, σ >→true <false, σ >→false

Comparación aritmética <a0, σ >→n <a1, σ >→m <a0=a1, σ >→true n=m <a0, σ >→n <a1, σ >→m <a0=a1, σ >→false n6=m <a0, σ >→n <a1, σ >→m <a0<=a1, σ >→true n<=m <a0, σ >→n <a1, σ >→m <a0<=a1, σ >→false n>m

(36)

Evaluación de expresiones booleanas

(II) Negación <b, σ >→true <notb, σ >→false <b, σ >→false <notb, σ >→true Conectivas lógicas <b0, σ >→t0 <b1, σ >→t1 <b0andb1, σ >→t t =t0∧t1 <b0, σ >→t0 <b1, σ >→t1 <b0orb1, σ >→t t =t0∨t1

(37)

Evaluación de expresiones booleanas

(II) Negación <b, σ >→true <notb, σ >→false <b, σ >→false <notb, σ >→true Conectivas lógicas <b0, σ >→t0 <b1, σ >→t1 <b0andb1, σ >→t t =t0∧t1 <b0, σ >→t0 <b1, σ >→t1 <b0orb1, σ >→t t =t0∨t1

(38)

Evaluación de

and

optimizada

Implementación habitual <b0, σ >→false <b0andb1, σ >→false <b0, σ >→true <b1, σ >→false <b0andb1, σ >→false <b0, σ >→true <b1, σ >→true <b0andb1, σ >→true

(39)

Ejecución de instrucciones

(I) Skip <skip, σ >→σ Asignación <a, σ >→m <X :=a, σ >→σ[X ←m] Secuencia <c0, σ >→σ00 <c1, σ00>→σ0 <c0;c1, σ >→σ0

(40)

Ejecución de instrucciones

(I) Skip <skip, σ >→σ Asignación <a, σ >→m <X :=a, σ >→σ[X ←m] Secuencia <c0, σ >→σ00 <c1, σ00>→σ0 <c0;c1, σ >→σ0

(41)

Ejecución de instrucciones

(I) Skip <skip, σ >→σ Asignación <a, σ >→m <X :=a, σ >→σ[X ←m] Secuencia <c0, σ >→σ00 <c1, σ00>→σ0 <c0;c1, σ >→σ0

(42)

Ejecución de instrucciones

(II) If <b, σ >→true <c0, σ >→σ0 <ifbthenc0elsec1fi, σ >→σ0 <b, σ >→false <c1, σ >→σ0 <ifbthenc0elsec1fi, σ >→σ0 While <b, σ >→false <whilebdocdone, σ >→σ <b, σ >→true <c, σ >→σ00 <whilebdocdone, σ00>→σ0 <whilebdoc done, σ >→σ0

(43)

Ejecución de instrucciones

(II) If <b, σ >→true <c0, σ >→σ0 <ifbthenc0elsec1fi, σ >→σ0 <b, σ >→false <c1, σ >→σ0 <ifbthenc0elsec1fi, σ >→σ0 While <b, σ >→false <whilebdocdone, σ >→σ <b, σ >→true <c, σ >→σ00 <whilebdocdone, σ00>→σ0 <whilebdoc done, σ >→σ0

(44)

Derivaciones

Derivación. Secuencia de aplicación de reglas. Axioma. Regla sin premisas.

Instancia de un regla. Sustituimos las metavariables por valores concretos.

Las derivaciones representan ejecuciones de las instrucciones o evaluaciones de las expresiones.

Ejemplo.a≡(X+5) + (7+9)yσ0={X ←0} ¿<a, σ0>? <X, σ0>→0 <5, σ0>→5 <(X+5), σ0>→5 <7, σ0>→7 <9, σ0>→9 <(7+9), σ0>→16 <(X+5) + (7+9), σ0>→21>

(45)

Terminación

Siw ≡while true do skip, ¿∀σ,∃σ0t.q. <w, σ >→σ0?

(46)

Preguntas

¿ Son iguales ? skip ∼ b := 1 > 2; x := 1; while b do x := x *2; b := x < 500; done

Después de este código, ¿ X es par ? while x < 3000 do

x := x * 2; done

(47)

Relaciones de equivalencia

a0∼a1 iff (∀n∈ N,∀σ∈Σ, <a0, σ >→n⇐⇒<a1, σ >→n) b0∼b1 iff (∀t∀σ∈Σ, <b0, σ >→t⇐⇒<b1, σ >→t) c0∼c1 iff (∀σ, σ0∈Σ, <c0, σ >→σ0 ⇐⇒<c1, σ >→σ0)

(48)

Prueba simple

Proposición

Seaw ≡whilebdoc doneconb∈Bexp,c∈Comm entonces:

w ∼ifbthenc;w else skip fi Demostración.

(49)

Inducción matemática

SeaP(n)una propiedad de los números naturales.

El principio de inducción matemática dice que para demostrar

queP(n)es cierto para todos los números naturales es

suficiente con demostrar que:

P(0)es cierto.

SiP(m)es cierto, entonces también lo esP(m+1), para cualquier número naturalm.

Es decir,

(P(0) & (∀m∈ω.P(m)⇒P(m+1)))⇒ ∀n∈ω.P(n) Ejercicio. Demostrar que la propiedad P(n) se cumple para los números naturales.

P(n) ⇐⇒ n X

i=1

(50)

Inducción estructural

¿ Cómo demostramos que la evaluación de expresiones aritméticas en IMP es determinista ?

<a, σ >→m & <a, σ >→m0 ⇒m=m0

SeaP(a)una propiedad de las expresiones aritméticas. Para demostrar que(P(a)se cumple para todas las expresiones artiméticas es suficiente con demostrar que:

Se cumple para todos los númeroP(m). Se cumple para todas la variablesP(X).

Para todas la expresiones aritméticasa0,a1, siP(a0)yP(a1) se cumplen, entonces también se cumpleP(a0+a1).

Para todas la expresiones aritméticasa0,a1, siP(a0)yP(a1) se cumplen, entonces también se cumpleP(a0−a1).

Para todas la expresiones aritméticasa0,a1, siP(a0)yP(a1) se cumplen, entonces también se cumpleP(a0×a1).

(51)

Inducción estructural

¿ Cómo demostramos que la evaluación de expresiones aritméticas en IMP es determinista ?

<a, σ >→m & <a, σ >→m0 ⇒m=m0

SeaP(a)una propiedad de las expresiones aritméticas.

Para demostrar que(P(a)se cumple para todas las

expresiones artiméticas es suficiente con demostrar que:

Se cumple para todos los númeroP(m). Se cumple para todas la variablesP(X).

Para todas la expresiones aritméticasa0,a1, siP(a0)yP(a1)

se cumplen, entonces también se cumpleP(a0+a1).

Para todas la expresiones aritméticasa0,a1, siP(a0)yP(a1)

se cumplen, entonces también se cumpleP(a0−a1).

Para todas la expresiones aritméticasa0,a1, siP(a0)yP(a1)

(52)

Inducción estructural

cont.

(∀m∈N.P(m)) & (∀X ∈Loc.P(X))

& (∀a0,a1∈Aexp.P(a0)yP(a1)⇒P(a0+a1)) & (∀a0,a1∈Aexp.P(a0)yP(a1)⇒P(a0−a1)) & (∀a0,a1∈Aexp.P(a0)yP(a1)⇒P(a0∗a1))

(53)

Inducción estructural

cont.

Proposición Para toda expresión aritméticaay númerosmym0

<a, σ >→m & <a, σ >→m0 ⇒m=m0

(54)

Inducción bien fundada

Las anteriores son casos particulares.

Relación bien fundada Es una relación binaria≺sobre un

conjuntoAtal que no hay cadenas descendientes infinitas · · · ≺ai≺ · · · ≺a1≺a0

Sia≺bdecimos queaes unpredecesordeb. Esirreflexiva.6 ∃a/a≺a

ab ⇐⇒ a=b o a≺b

Proposición Sea≺una relación binaria en el conjuntoA. La

relacion≺está bien fundada iff todos los

subconjuntos no vacíosQdeAtienen un elemento minimal, i.e. un elementomtal que

(55)

Inducción bien fundada

Las anteriores son casos particulares.

Relación bien fundada Es una relación binaria≺sobre un

conjuntoAtal que no hay cadenas descendientes

infinitas · · · ≺ai≺ · · · ≺a1≺a0

Sia≺bdecimos queaes unpredecesordeb.

Esirreflexiva.6 ∃a/a≺a ab ⇐⇒ a=b o a≺b

Proposición Sea≺una relación binaria en el conjuntoA. La

relacion≺está bien fundada iff todos los

subconjuntos no vacíosQdeAtienen un elemento minimal, i.e. un elementomtal que

(56)

Inducción bien fundada

Las anteriores son casos particulares.

Relación bien fundada Es una relación binaria≺sobre un

conjuntoAtal que no hay cadenas descendientes

infinitas · · · ≺ai≺ · · · ≺a1≺a0

Sia≺bdecimos queaes unpredecesordeb.

Esirreflexiva.6 ∃a/a≺a ab ⇐⇒ a=b o a≺b

Proposición Sea≺una relación binaria en el conjuntoA. La

relacion≺está bien fundada iff todos los

subconjuntos no vacíosQdeAtienen un elemento

minimal, i.e. un elementomtal que

(57)

Inducción bien fundada

(cont.) Demostración

≺está bien fundada⇐m∈Q&∀b≺m.b6∈Q

Supongamos que todo conjunto no vacio deAtiene un elemento minimal. Si...≺ai ≺...≺a1≺a0es una cadena infinita

descendente, entonces el conjuntoQ={ai |i ∈w}sería no vacío

sin un elemento minimal. Por lo tanto≺está bien fundada.

≺está bien fundada⇒m∈Q&∀b≺m.b6∈Q

Suponer queQes un subconjunto no vacío deA. Construimos una cadena de elementos de esta forma: tomamos un elementoa0de Q. Inductivamente, asumimos que hemos construido enQuna cadena de elememntosan≺...≺a0. Si no existe unb∈Qt.q. b≺anparar la construcción. En caso contrario tomaran+1=b.

Como≺es bien fundada la cadena...≺ai ≺...≺a1...≺a0no

puede ser infinita. Si es finita, de la formaan≺...≺a0con

(58)

El principio de Inducción bien fundada

Sea≺una relacion bien fundada en un conjuntoA. SeaP

una propiedad. Entonces∀a∈A.P(a)iff:

∀a∈A.([∀b≺a.P(b)]⇒P(a)) Prueba

La prueba se basa en la observación de que cualquier subconjunto no vacíoQde un conjuntoAcon una relación bien fundada≺tiene un elemento minimal.

⇒ Trivial ⇐

Asumimos∀a∈A.([∀b≺a.P(b)]⇒P(a))y producimos una contradicción suponiendo que¬P(a)para algúna∈A. Entonces, tiene que existir un elemento minimalmpara el conjunto{a∈A| ¬P(a)}. Pero entonces¬P(m)y sin embargo∀b≺m.P(m), lo cual contradice la asumción.

(59)

El principio de Inducción bien fundada

Sea≺una relacion bien fundada en un conjuntoA. SeaP

una propiedad. Entonces∀a∈A.P(a)iff:

∀a∈A.([∀b≺a.P(b)]⇒P(a)) Prueba

La prueba se basa en la observación de que cualquier

subconjunto no vacíoQde un conjuntoAcon una relación

bien fundada≺tiene un elemento minimal.

⇒ Trivial ⇐

Asumimos∀a∈A.([∀b≺a.P(b)]⇒P(a))y producimos una contradicción suponiendo que¬P(a)para algúna∈A. Entonces, tiene que existir un elemento minimalmpara el conjunto{a∈A| ¬P(a)}. Pero entonces¬P(m)y sin embargo∀b≺m.P(m), lo cual contradice la asumción.

(60)

El principio de Inducción bien fundada

Sea≺una relacion bien fundada en un conjuntoA. SeaP

una propiedad. Entonces∀a∈A.P(a)iff:

∀a∈A.([∀b≺a.P(b)]⇒P(a)) Prueba

La prueba se basa en la observación de que cualquier

subconjunto no vacíoQde un conjuntoAcon una relación

bien fundada≺tiene un elemento minimal.

⇒ Trivial

Asumimos∀a∈A.([∀b≺a.P(b)]⇒P(a))y producimos una contradicción suponiendo que¬P(a)para algúna∈A. Entonces, tiene que existir un elemento minimalmpara el conjunto{a∈A| ¬P(a)}. Pero entonces¬P(m)y sin embargo∀b≺m.P(m), lo cual contradice la asumción.

(61)

El principio de Inducción bien fundada

Sea≺una relacion bien fundada en un conjuntoA. SeaP

una propiedad. Entonces∀a∈A.P(a)iff:

∀a∈A.([∀b≺a.P(b)]⇒P(a)) Prueba

La prueba se basa en la observación de que cualquier

subconjunto no vacíoQde un conjuntoAcon una relación

bien fundada≺tiene un elemento minimal.

⇒ Trivial ⇐

Asumimos∀a∈A.([∀b≺a.P(b)]⇒P(a))y producimos una contradicción suponiendo que¬P(a)para algúna∈A. Entonces, tiene que existir un elemento minimalmpara el conjunto{a∈A| ¬P(a)}. Pero entonces¬P(m)y sin embargo∀b≺m.P(m), lo cual contradice la asumción.

(62)

Ejemplos

Inducción matemática

n≺m ⇐⇒ m=n+1 Inducción estructural

(63)

Ejemplos

Inducción matemática

n≺m ⇐⇒ m=n+1 Inducción estructural

(64)

Ejercicio

Algoritmo de Euclides (máximo común divisor)

Euclid ≡ while (not (M = N)) do if (M <= N) then N := N - M; else M := M - N; fi done

Teorema (Terminación). Para todos los estadosσ

(65)

Ejercicio

Algoritmo de Euclides (máximo común divisor)

Euclid ≡ while (not (M = N)) do if (M <= N) then N := N - M; else M := M - N; fi done

Teorema (Terminación). Para todos los estadosσ

(66)

Ejercicio. Prueba

Deseamos probar que la propiedad

P(σ)⇔ ∃σ0. <Euclid, σ >→σ0

se cumple∀σ ∈S={σ∈Σ|σ(M)≥1&σ(N)≥1}

Usaremos inducción bien fundada sobre la relación:

σ‘≺σ iff (σ0(M)≤σ(M) & σ0(N)≤σ(N)) & (σ0(M)6=σ(M) o σ0(N)6=σ(N))

(67)

Ejercicio. Prueba

Deseamos probar que la propiedad

P(σ)⇔ ∃σ0. <Euclid, σ >→σ0

se cumple∀σ ∈S={σ∈Σ|σ(M)≥1&σ(N)≥1}

Usaremos inducción bien fundada sobre la relación:

σ‘≺σ iff (σ0(M)≤σ(M) & σ0(N)≤σ(N)) & (σ0(M)6=σ(M) o σ0(N)6=σ(N))

Referencias

Documento similar

EDUCACIÓN FILOSOFÍA Y CIENCIAS HISTÓRICO SOCIALES DISEÑO Y GESTIÓN DE PROYECTOS OBLIGATORIO PRESENCIAL..

Se llega así a una doctrina de la autonomía en el ejercicio de los derechos que es, en mi opinión, cuanto menos paradójica: el paternalismo sería siempre una discriminación cuando

Así mismo si el planteamiento de la actividad requiere de la exposición en el aula ante el grupo, la decisión sobre la parte que corresponde exponer a cada uno de los

Búsqueda de información sobre los diferentes equipos y sistemas que integra el vehículo, así como de los lenguajes de programación más adecuados para la integración de

E Clamades andaua sienpre sobre el caua- 11o de madera, y en poco tienpo fue tan lexos, que el no sabia en donde estaña; pero el tomo muy gran esfuergo en si, y pensó yendo assi

Según datos de la Dirección General de Telecomunicaciones de Bolivia (TORRICO, 1992: 46), a principios de la década de 1990 Bolivia contaba con un canal estatal con

La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de

• “SistemaDeCaptación.bas”: Este módulo ya presenta una complejidad adicional a los anteriores, si bien se ha utilizado también una sección de declaración de variables