1. Asistentes de Pruebas para Lógicos y Matemáticos I

Slides:



Advertisements
Presentaciones similares
Capítulo 2 Algoritmos.
Advertisements

Análisis Sintáctico Capítulo 4.
Diseño y análisis de algoritmos
Diseño y análisis de algoritmos
LENGUAJES DE DESCRIPCION DE HARDWARE (HDL)
Algoritmos de Minería Los métodos básicos.
Estructuras de Decisión I IF - THEN - ELSE
Mercedes Alonso, Luciana Pierangeli 1ºB
Iteración La iteración permite modelar problemas en los cuales una secuencia de instrucciones debe ejecutarse varias veces. La cantidad de iteraciones.
Seminario de Actualización - Excel Avanzado y Macros
Estructuras de Control
Variaciones sobre un evaluador Objetivo: Mostrar cómo un estilo de programación monádica puede capturar similitudes entre distintas variaciones de un elemental.
Programación monádica
Un buen comienzo para un buen futuro FUNCIONES CONDICIONALES II TRIMESTRE – AREA INFORMATICA Fecha: Enero 17/2012.
Estructuras de control
SENTENCIA CONDICIONAL if
Métodos de integración por cuadraturas:
Operaciones combinadas en los números reales Sesión 1.1 UNIVERSIDAD PERUANA DE CIENCIAS APLICADAS Área de Ciencias Introducción a la matemática universitaria.
Operaciones combinadas en los números reales
Lic. Gregorio Bautista Oblitas
Recursión Se dice que un método es recursivo si forma parte de sí mismo o se define en función de sí mismo. La recursión es un medio particularmente poderoso.
4: Control de flujo Condicionales y bucles
Teoría de lenguajes y compiladores
Estructuras de Control
Analisis y Diseño de Algoritmos Tema: Grafos 3ra Parte
Ejercicios de funciones
Probabilidad condicional
Brazos Bloque IF Permite que se ejecuten una serie de tareas si y sólo si una expresión lógica es verdadera. IF(logical_exp) then sentencia1 sentencia2.
Recursión en programación
FUNCIONES LOGICAS SI(PL;V_V;V_F)
Grupo de investigación de Ingeniería Electrónica
CONCEPTOS BÁSICOS: Números Naturales
Sintaxis.
Tablas de verdad en PHP Programación en Internet II.
Sesión 5 Sentencias de Selección y repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
ESCUELAS FILOSOFICAS Y CAMBIOS PARADIGMATICOS II
Introducción a la Programación “El lenguaje C” Manuel Crisosto M., Claudio Gutiérrez S., Christian Vidal C.
Material de apoyo Unidad 4 Estructura de datos
Campus Estado de México—Raúl Monroy Resolución, la regla de inferencia y el cálculo Raúl Monroy.
¿ INDUCCION MATEMATICA ?
Conversión de Temperatura Centígrados Fahrenheit
Semantica.
Lógica de predicados. La lógica de predicados no es mas que la logica de enunciados pero con variables y cuantificadores. Eje: “Beto es un niño”
4.  Métodos matemáticos.
ALGORITMOS.
TPPSFVerificación de programas funcionales Verificación de programas funcionales.
Control de Flujo.
Base de datos Francisco Castro. Creación de una tabla drop table TABLA cascade constraints; /*==============================================================*/
Recursividad Un objeto se dice que es recursivo si él mismo forma parte de su definición. Ejemplos de objetos recursivos: Una locomotora es un tren Un.
1. Asistentes de Pruebas para Lógicos y Matemáticos I
Departamento de Informática Universidad Técnica Federico Santa María Ejercicios Certamen 1: Programación de Computadores (IWI-131) Luis Pizarro Q.
Do Una o más instrucciones Loop until expresión lógica Tema 9. Estructuras de repetición “Repetir Hasta” Sintaxis de la estructura “repetir hasta” en Visual.
PSEUDOCÓDIGO.
Semana 12 herramientas de visual basic
El razonamiento: La lógica
Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos.
Programación Orientada a Objetos.  Un método es una función, segmento, rutina, subrutina o subalgoritmo que puede ser definido dentro de una clase con.
MODELOS DE RAZONAMIENTO.
Unidad V Recursión. Objetivos del Aprendizaje Explicar el concepto de recursión. Discutir las diferentes condiciones que deben ser satisfechas para que.
QUINTA CONFERENCIA Lugar: Oficinas Generales Fecha: 15 de Diciembre de 2007 Conferencista: Prof. Carlos Betancourt Monroy Centro de Estudios Científicos.
CREAR PROCEDIMIENTO DE COMBOBOX LLENAR EDAD Private Sub Cargar_Edad( ) cboEdad.AddItem ("5") cboEdad.AddItem ("6") cboEdad.AddItem ("7") cboEdad.AddItem.
Operatoria de logaritmos
Mean, Median, Mode, and Range La Sra. Kuiper 31 de agosto, 2015.
CREAR PROCEDIMIENTO DE COMBOBOX LLENAR EDAD Private Sub Cargar_Edad( ) cboEdad.AddItem ("5") cboEdad.AddItem ("6") cboEdad.AddItem ("7") cboEdad.AddItem.
PRUEBA.
División. Segundo paso 9 ?
Resolución de problemas y algoritmos
Dfsfdsfs sfdsdfsf. prueba dfdsffss Prueba 3.
Prueba.
Transcripción de la presentación:

1. Asistentes de Pruebas para Lógicos y Matemáticos I 1. Asistentes de Pruebas para Lógicos y Matemáticos I. Lógica Proposicional TPPSF

1. Ejemplo: División Sean a y b  N, b0. Calculamos a div b y a mod b simultáneamente haciendo recursión en a: 0 divmod b = <0,0> (n+1) divmod b = let <q,r> = n divmod b in if r < b-1 then <q,r+1> else <q+1,0> TPPSF

División: especificación Especificación: Para todos a,b  N tq. b0 existen q y r tq. a=b.q+r y r < b. Prueba de que el programa es correcto: por inducción en a: 0 divmod b = <0,0>  (n+1) divmod b = let <q,r> = n divmod b in if r < b-1 then <q,r+1> else <q+1,0> 0 = b.0 + 0 y 0 < b  supongamos n=b.q+r y r < b. luego, si r < b - 1 entonces n+1 = b.q+(r+1) y r+1<b sino n+1 = b.(q+1)+0 y 0<b   TPPSF

2. Lógica proposicional Lógica como herramienta para especificar y probar corrección de programas. Cálculo proposicional Sintaxis variables de proposición: A,B,C,.... conectivos: , ,  , , ~,  Semántica noción de verdad: existencia de prueba TPPSF

Lógica proposicional en Coq Prop es la familia de proposiciones Declaración de variables de proposición: Variable A,B,C: Prop Conectivos: ,  ,  son primitivos ~ := (  )    := (  )  (  )  se escribe False TPPSF

Construcción de pruebas en Coq Para comenzar: queremos probar cierta fórmula objetivo (goal) para ello, utilizaremos diferentes tácticas que transforman al objetivo original e introducen hipótesis adicionales TPPSF

Desarrollo de pruebas lógicas Situación general: existen varios objetivos a probar, cada uno a partir de ciertas hipótesis: 1 1 2 2 n n ... donde: cada i es un conjunto de fórmulas (hipótesis) de la forma: H0: g0, H1: g1,... Hk: gk. i es una fórmula cada i debe ser probada a partir de i TPPSF

Tácticas = Reglas de inferencia Una táctica transforma un secuente de la forma: en cero o más secuentes: tales que probar los últimos es suficiente para construir una prueba del secuente original i i i1 i1 i2 i2 in in ... TPPSF

Tácticas caso trivial  H:  a Assumption Probado! TPPSF

Tácticas (II) Reglas de introducción  H:  b  b Intro H el identificador H es opcional variantes: Intros, Intros H1,...Hn TPPSF

Tácticas (III) Reglas de introducción (cont.) introducción  (Izq.)    b Left   introducción  (Der.)    b Right  b TPPSF

Tácticas (IV) Reglas de introducción (cont.)  b Split    b “introducción”   False    ~a Absurd  TPPSF

Tácticas (V) Reglas de eliminación  H:  b b  H:  b a Apply H en general:  H: 12... b b  H: ... a1  H: ... a2 Apply H ... TPPSF

Tácticas (VI) Reglas de eliminación (cont.)  H: b s  H: b a  H: b b  Elim H eliminación   H: b s  H: b a b  Elim H TPPSF

Tácticas (VII) Reglas de eliminación (cont.)  H: False s Elim H Probado! TPPSF

Tácticas (VIII) Otras tácticas Utilización de lema intermediario  b a  b  a Cut  Explicitación de la prueba:  a Exact t Probado! condición: t debe ser una prueba de a (que figura en las hipótesis  o es un lema ya probado) TPPSF

Tácticas (IX) Eliminación de definiciones Eliminación de definición  a False  ~a Unfold not Eliminación de definición  (  )  (  )     Unfold iff variante: Unfold nom in h TPPSF

Observaciones En general: si term es una prueba de una proposición , Elim term, aplica la regla de eliminación del conectivo principal de . Apply no se aplica solamente a una hipótesis H sino también a un lema previamente demostrados. TPPSF

Esquemas de proposición Si demostramos Variable A:Prop. Lemma L1 : A A. Proof. … Qed. La prueba es análoga para cualquier proposición. Un esquema de proposición se expresa como: Para toda proposición A, se cumple A A. En Coq este esquema se expresa: (A:Prop) A A TPPSF

Esquemas de proposición Instanciación Ejemplo: Si ya demostramos en Coq Lemma L2 : (A:Prop) A A Proof. … Qed. Para demostrar ~False  ~False podemos hacer Exact (L2 ~False). TPPSF

3. Lógica proposicional clásica Axioma del tercero excluído: Para toda proposición P, se cumple P ~P En lógica constructiva, una proposición es verdadera si y sólo si podemos exhibir una prueba. Sabemos probar instancias de este axioma, pero no sabemos probar el esquema pues para cada proposición deberíamos exhibir una prueba de ella o de su negación (¿como haríamos con las conjeturas y resultados indecidibles?). Ejemplo: sabemos probar 1=0  ~1=0 no sabemos (hoy) probar P=NP  ~P=NP TPPSF

Lógica proposicional clásica El axioma del tercero excluído no se demuestra en lógica constructiva. En Coq este axioma está declarado en el módulo Classical y se llama classic. Require Classical. ... Check (classic A). (classic A) : (A \/ ~A) TPPSF

4. Razonamiento automatizado Tautologías constructivas  a Tauto Probado! Tauto implementa una estrategia de construcción de pruebas de tautologías constructivas. Esta estrategia tiene éxito cuando a es una tautología cuya prueba no usa el tercero excluído. No es un procedimiento de decisión, pues construye una prueba. [Muñoz94] TPPSF

Táctica (Semi)Automática Aplicación (hacia atrás) de lemas e hipótesis  a Auto Probado! O bien G a  a Auto Auto implementa una estrategia de construcción de pruebas similar a la de Prolog (razonamiento hacia atrás) aplicando lemas e hipótesis. Considera únicamente aquellos lemas declarados como Hint. No es un procedimiento de decisión pues construye una prueba. TPPSF