SlideShare uma empresa Scribd logo
1 de 53
Baixar para ler offline
Panorama de la demostración asistida por ordenador

                   José A. Alonso Jiménez

                 Grupo de Lógica Computacional
         Departamento de Ciencias de la Computación e I.A.
                      Universidad de Sevilla


                  21 de noviembre de 2012
Panorama de la demostración asistida por ordenador
   Razonamiento automático con Prover9/MACE




Presentación de Isabelle . . . y otros sistemas de
razonamiento

  1. Razonamiento automático con Prover9/MACE

  2. Razonamiento automático con ACL2

  3. Razonamiento asistido por PVS

  4. Razonamiento asistido por Isabelle/HOL/Isar

  5. Comentarios finales



                                                     2 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento automático con Prover9/MACE




El sistema Prover9
         Prover9 es un sistema de razonamiento automático para lógica
         de primer orden basado en resolución y paramodulación.
         Desarrollado por William McCune en el ANL (Argonne National
         Laboratory).
         Sucesor de anteriores demostradores de ANL: AURA, ITP y
         OTTER.




                                                                        3 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento automático con Prover9/MACE




Ejemplo de razonamiento automático con Prover9
         Teorema: Sea G un grupo y e su elemento neutro. Si, para todo
         x de G, x 2 = e, entonces G es conmutativo.
         Formalización:
                 Axiomas de grupo:
                     (∀x )[e.x = x ]
                     (∀x )[x .e = x ]
                     (∀x )[x .x −1 = e]
                     (∀x )[x −1 .x = e]
                     (∀x )(∀y )(∀z)[(x .y ).z = x .(y .z)]
                 Hipótesis
                     (∀x )[x .x = e]
                 Conclusión
                     (∀x )(∀y )[x .y = y .x ]



                                                                         4 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento automático con Prover9/MACE




Ejemplo de razonamiento automático con Prover9
         Entrada grupos.in
         formulas(assumptions).
         e * x = x.                 %                Ax.   1
         x * e = x.                 %                Ax.   2
         x' * x = e.                %                Ax.   3
         x * x' = e.                %                Ax.   4
         (x * y) * z = x * (y * z). %                Ax.   5
         x = x.                     %                Ax.   6
         x * x = e.
         end_of_list.

         formulas(goals).
         x * y = y * x.
         end_of_list.
                                                               5 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento automático con Prover9/MACE




Ejemplo de razonamiento automático con Prover9
       Uso de Prover9
       prover9 <grupos.in
       Resultado:
       ============================== PROOF =================================
       1 x * y = y * x               [goal].
       2 e * x = x.                  [assumption].
       3 x * e = x.                  [assumption].
       6 (x * y) * z = x * (y * z). [assumption].
       7 x * x = e.                  [assumption].
       8 c2 * c1 != c1 * c2.         [deny(1)].
       13 x * (x * y) = y.           [para(7(a,1),6(a,1,1)),rewrite([2(2)]),flip(a)].
       14 x * (y * (x * y)) = e.     [para(7(a,1),6(a,1)),flip(a)].
       18 x * (y * x) = y.           [para(14(a,1),13(a,1,2)),rewrite([3(2)]),flip(a)].
       22 x * y = y * x.             [para(18(a,1),13(a,1,2))].
       23 $F.                        [resolve(22,a,8,a)].
       ============================== end of proof ==========================




                                                                                          6 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento automático con Prover9/MACE




Búsqueda de modelos con MACE
         Problema: Buscar un grupo con conmutativo.
         Representación en MACE (grupos2.in):
         formulas(assumptions).
         e * x = x.                   % Ax. 1
         x * e = x.                   % Ax. 2
         x' * x = e.                  % Ax. 3
         x * x' = e.                  % Ax. 4
         (x * y) * z = x * (y * z). % Ax. 5
         end_of_list.

         formulas(goals).
         x * y = y * x.
         end_of_list.

                                                      7 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento automático con Prover9/MACE




Búsqueda de modelos con MACE
      Búsqueda con MACE
      mace4 -p < grupos2.in
      ============================== DOMAIN SIZE 6 =========================

      === Mace4 starting on domain size 6. ===

       e : 0

       c1 : 1

       c2 : 2

       ' :
              0 1 2 3 4 5
          ---------------
              0 1 2 4 3 5

       * :
            | 0 1 2 3 4 5
          --+------------
          0 | 0 1 2 3 4 5
          1 | 1 0 3 2 5 4
          2 | 2 4 0 5 1 3
          3 | 3 5 1 4 0 2
          4 | 4 2 5 0 3 1
          5 | 5 3 4 1 2 0
                                                                               8 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento automático con Prover9/MACE




Teoremas demostrados con Prover9
         Son of BirdBrain II.
         The TPTP Problem Library for Automated Theorem Proving.
         Lista de problemas de TPTP
         Sistemas en TPTP




                                                                   9 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento automático con ACL2




Presentación de Isabelle . . . y otros sistemas de
razonamiento

  1. Razonamiento automático con Prover9/MACE

  2. Razonamiento automático con ACL2

  3. Razonamiento asistido por PVS

  4. Razonamiento asistido por Isabelle/HOL/Isar

  5. Comentarios finales



                                                     10 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento automático con ACL2




El sistema ACL2
         A Computacional Logic for an Applicative Common Lisp.
         Desarrollado por Moore y Kaufmann en la Universidad de Texas.
         Sucesor de Nqthm de Boyer y Moore.
         Tres aspectos de ACL2:
            1. Lenguaje de programación.
            2. Lógica.
            3. Sistema de razonamiento automático.




                                                                         11 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento automático con ACL2




ACL2 como lenguaje de programación
         Definición:
         (defun concatena (x y)
           (if (endp x) y
                (cons (car x) (concatena (cdr x) y))))

         (defun inversa (x)
           (if (endp x) nil
                (concatena (inversa (cdr x)) (list (car x)))))
         Evaluación:
         ACL2 !> (concatena '(a b) '(c d e))
         (A B C D E)
         ACL2 !> (inversa '(a b c))
         (C B A)
         ACL2 !> (inversa (inversa '(a b c)))
         (A B C)                                                 12 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento automático con ACL2




ACL2 como lógica
         ACL2 es una lógica de primer orden con igualdad sin
         cuantificadores de la parte aplicativa de Common Lisp.
         Ejemplo de definiciones de la teoría de listas:
         (defun true-listp (x)
           (if (consp x) (true-listp (cdr x))
                            (eq x nil)))
         Ejemplo de axiomas de la teoría de lista:
         (defaxiom car-cdr-elim
           (implies (consp x)
                      (equal (cons (car x) (cdr x)) x)))
         (defaxiom car-cons (equal (car (cons x y)) x))
         (defaxiom cdr-cons (equal (cdr (cons x y)) y))
         Mediante defun se extiende la lógica de manera conservativa. Se
         necesitan condiciones de admisibilidad.
                                                                           13 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento automático con ACL2




ACL2 como lógica: Admisibilidad
         Ejemplo 1:
         ACL2 !> (defun f (x) y)

         ACL2 Error in (DEFUN F ...): The body of F contains
         a free occurrence of the variable symbol Y.
         Ejemplo 2:
         ACL2 !> (defun f (x) (+ (f x) 1))

         ACL2 Error in (DEFUN F ...): No :measure was
         supplied with the definition of F. Our heuristics
         for guessing one have not made any suggestions.
         No argument of the function is tested along every
         branch and occurs as a proper subterm at the same
         argument position in every recursive call. You must
         specify a :measure.                                   14 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento automático con ACL2




ACL2 como lógica: Admisibilidad
         Ejemplo 3:
         ACL2 !> (defun inversa (x)
                    (if (endp x)
                        nil
                        (concatena (inversa (cdr x))
                                   (list (car x)))))

         The admission of INVERSA is trivial, using the relation
         E0-ORD-< (which is known to be well-founded on the
         domain recognized by E0-ORDINALP) and the measure
         (ACL2-COUNT X). We observe that the type of INVERSA is
         described by the theorem
         (OR (CONSP (INVERSA X)) (EQUAL (INVERSA X) NIL)).
         We used primitive type reasoning and the
         :type-prescription rule CONCATENA.                    15 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento automático con ACL2




ACL2 como SRA (sistema de razonamiento automático)




                                                     16 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento automático con ACL2




ACL2 como SRA: Inducción
  ACL2 !> (defthm inversa-inversa
            (implies (true-listp x)
                     (equal (inversa (inversa x)) x)))

     Name the formula above *1.
     Perhaps we can prove *1 by induction. Two induction schemes
  are suggested by this conjecture. These merge into one
  derived induction scheme.
     We will induct according to a scheme suggested by (INVERSA
  X). If we let (:P X) denote *1 above then the induction
  scheme we'll use is
  (AND (IMPLIES (AND (NOT (ENDP X)) (:P (CDR X)))
                (:P X))
       (IMPLIES (ENDP X) (:P X))).
                                                            17 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento automático con ACL2




El papel del usuario
         Frecuentemente los primeros intentos de demostración de
         resultados no triviales fallan.
         Ello significa que el demostrador necesita demostrar lemas
         previos.
         Estos lemas se obtienen:
                 de una demostración preconcebida a mano o
                 del anális del fallo del intento de prueba.
         Por tanto, el papel del usuario es:
                 Formalizar la teoría en la lógica.
                 Implementar una estrategia de la prueba, mediante una sucesión
                 de lemas.
         El resultado es un fichero con definiciones y teoremas
                 Un libro en la terminología de ACL2.
                 El libro puede certificarse y usarse en otros libros.
                                                                                  18 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento automático con ACL2




Teorías formalizadas en ACL2
         Lista de teorías en ACL2.
         Congresos de ACL2




                                                     19 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento asistido por PVS




Presentación de Isabelle . . . y otros sistemas de
razonamiento

  1. Razonamiento automático con Prover9/MACE

  2. Razonamiento automático con ACL2

  3. Razonamiento asistido por PVS

  4. Razonamiento asistido por Isabelle/HOL/Isar

  5. Comentarios finales



                                                     20 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento asistido por PVS




Historia de PVS
         PVS:
                 Nombre: Prototype Verification System
                 Autores: N. Shankar, S. Owre y J.M. Rushby en el SRI (Stanford
                 Research Institute).
                 Def: “PVS is a verification system: that is, a specification
                 language integrated with support tools and a theorem prover”
                 Historia: HDM (1970), EHDM (1984), PVS (1991), PVS 4.2
                 (2008).
         Propósitos:
                 The primary purpose of PVS is to provide formal support for
                 conceptualization and debugging in the early stages of the
                 lifecycle of the design of a hardware or software system
                 The primary emphasis in the PVS proof checker is on supporting
                 the construction of readable proofs


                                                                                  21 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento asistido por PVS




El problema de las monedas
         Enunciado: Demostrar que con monedas de 3 y 5 se puede
         obtener cualquier cantidad que sea mayor o igual a 8.
         Especificación
         monedas : THEORY
         BEGIN
          n, a, b: VAR nat
          monedas: LEMA
            (FORALL n: (EXISTS a, b: n+8 = 3*a + 5*b))
         END monedas




                                                                  22 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento asistido por PVS




El problema de las monedas
         Demostración manual: Por inducción en n
                 Base n = 0: 0 + 8 = 3 × 1 + 5 × 1. Basta elegir a = b = 1
                 Paso n + 1: Supongamos que existen a y b tales que
                 n + 8 = 3 × a + 5 × b. Vamos a distinguir dos casos según que
                 b = 0.
                 Caso 1 Sea b = 0, entonces n + 8 = 3 × a, a > 3 y
                               (n + 1) + 8 = 3 × (a − 3) + 5 × 2
                 Caso 2 Sea b = 0, entonces
                               (n + 1) + 8 = 3 × (a + 2) + 5 × (b − 1)




                                                                                 23 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento asistido por PVS




El problema de las monedas
        Demostración con PVS
        monedas :

          |-------
        {1} (FORALL n: (EXISTS a, b: n + 8 = 3 * a + 5 * b))

        Rule? (induct "n")
        Inducting on n on formula 1, this yields     2 subgoals:
        monedas.1 :

          |-------
        {1} EXISTS a, b: 0 + 8 = 3 * a + 5 * b

        Rule? (inst 1 1 1)
        Instantiating the top quantifier in 1 with the terms: 1, 1,
        this simplifies to:
                                                                      24 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento asistido por PVS




El problema de las monedas
        monedas.1 :

          |-------
        {1} 0 + 8 = 3 * 1 + 5 * 1

        Rule? (assert)
        Simplifying, rewriting, and recording with decision procedures,
        This completes the proof of monedas.1.

        monedas.2 :

          |-------
        {1} FORALL j:
                (EXISTS a, b: j + 8 = 3 * a + 5 * b) IMPLIES
                 (EXISTS a, b: j + 1 + 8 = 3 * a + 5 * b)

        Rule? (skosimp*)
        Repeatedly Skolemizing and flattening, this simplifies to:
                                                                          25 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento asistido por PVS




El problema de las monedas
        monedas.2 :
        {-1} j!1 + 8 = 3 * a!1 + 5 * b!1
          |-------
        {1} EXISTS a, b: j!1 + 1 + 8 = 3 * a + 5 * b

        Rule? (case "b!1=0")
        Case splitting on b!1 = 0, this yields 2 subgoals:
        monedas.2.1 :
        {-1} b!1 = 0
        [-2] j!1 + 8 = 3 * a!1 + 5 * b!1
          |-------
        [1] EXISTS a, b: j!1 + 1 + 8 = 3 * a + 5 * b

        Rule? (inst 1 "a!1-3" "2")
        Instantiating the top quantifier in 1 with the terms:
        a!1-3, 2, this yields 2 subgoals:
                                                                26 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento asistido por PVS




El problema de las monedas
         monedas.2.1.1 :
         [-1] b!1 = 0
         [-2] j!1 + 8 = 3 * a!1 + 5 * b!1
           |-------
         {1} j!1 + 1 + 8 = 3 * (a!1 - 3) + 5 * 2

         Rule? (assert)
         Simplifying, rewriting, and recording with decision procedures

         This completes the proof of monedas.2.1.1.




                                                                  27 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento asistido por PVS




El problema de las monedas
         monedas.2.1.2 (TCC):
         [-1] b!1 = 0
         [-2] j!1 + 8 = 3 * a!1 + 5 * b!1
           |-------
         {1} a!1 - 3 >= 0

         Rule? (assert)
         Simplifying, rewriting, and recording with decision procedures
         This completes the proof of monedas.2.1.2.
         This completes the proof of monedas.2.1.




                                                                  28 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento asistido por PVS




El problema de las monedas
         monedas.2.2 :
         [-1] j!1 + 8 = 3 * a!1 + 5 * b!1
           |-------
         {1} b!1 = 0
         [2] EXISTS a, b: j!1 + 1 + 8 = 3 * a + 5 * b

         Rule? (inst 2 "a!1+2" "b!1-1")
         Instantiating the top quantifier in 2 with the terms:
         a!1+2, b!1-1, this yields 2 subgoals:




                                                                 29 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento asistido por PVS




El problema de las monedas
         monedas.2.2.1 :
         [-1] j!1 + 8 = 3 * a!1 + 5 * b!1
           |-------
         [1] b!1 = 0
         {2} j!1 + 1 + 8 = 3 * (a!1 + 2) + 5 * (b!1 - 1)

         Rule? (assert)
         Simplifying, rewriting, and recording with decision procedures

         This completes the proof of monedas.2.2.1.




                                                                  30 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento asistido por PVS




El problema de las monedas
        monedas.2.2.2 (TCC):

        [-1] j!1 + 8 = 3 * a!1 + 5 * b!1
          |-------
        {1} b!1 - 1 >= 0
        [2] b!1 = 0

        Rule? (assert)
        Simplifying, rewriting, and recording with decision procedures,

        This completes the proof of monedas.2.2.2.

        This completes the proof of monedas.2.2.

        This completes the proof of monedas.2.
        Q.E.D.
                                                                      31 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento asistido por PVS




Demostración PVS
         Llamada: M-x edit-proof
         Demostración
         (""
          (INDUCT "n")
          (("1" (INST 1 1 1) (ASSERT))
            ("2"
             (SKOSIMP*)
             (CASE "b!1=0")
             (("1" (INST 1 "a!1-3" "2") (("1" (ASSERT)) ("2" (ASSERT))))
              ("2" (INST 2 "a!1+2" "b!1-1") (("1" (ASSERT)) ("2" (ASSERT)))




                                                                      32 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento asistido por PVS




Procedimientos de decisión en PVS
  Ejemplos de teoremas demostrados con los procedimientos de decisión
  de la aritmética lineal con la orden (reduce)
  procedimientos_de_decision: THEORY
   BEGIN
    x,y,z: VAR real
    ej1: THEOREM x < 2*y AND y < 3*z IMPLIES 3*x < 18*z

      i,j,k: VAR int
      ej2: THEOREM i > 0 AND 2*i < 6 IMPLIES i = 1 OR i = 2

      f: [real -> real]
      g: [real, real -> real]
      ej3: THEOREM x = f(y) IMPLIES g(f(y + 2 - 2), x + 2) = g(x,

    END procedimientos_de_decision                                      33 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento asistido por PVS




Ejemplo de teorema de la aritmética no lineal
         Ejemplo del teorema
         aritmetica_no_lineal: THEORY
          BEGIN
           x, y: VAR real
           aritm_no_lineal: THEOREM x<0 AND y<0 IMPLIES x*y>0
          END aritmetica_no_lineal
         No se demuestra sólo con los procedimientos de decisión.
         Se demuestra usando la teoría de los números reales de PVS:
             (grind :theories "real_props")




                                                                       34 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento asistido por PVS




Teorías formalizadas en PVS
  The PVS prelude y NASA Langley PVS Libraries (17–Agosto–2010)




                                                                  35 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento asistido por Isabelle/HOL/Isar




Presentación de Isabelle . . . y otros sistemas de
razonamiento

  1. Razonamiento automático con Prover9/MACE

  2. Razonamiento automático con ACL2

  3. Razonamiento asistido por PVS

  4. Razonamiento asistido por Isabelle/HOL/Isar

  5. Comentarios finales



                                                     36 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento asistido por Isabelle/HOL/Isar




El sistema Isabelle/HOL/Isar
         Isabelle es un marco lógico basado en lógica de orden superior.
         Isabelle/HOL es la especialización de Isabelle para HOL
         (Higher-Order Logic).
         Isar (Intelligible semi–automated reasoning) es un lenguaje de
         pruebas para Isabelle.
         Isabelle/HOL se ha desarrollado en la Universidad de Cambridge
         (Larry Paulson) y la Universidad de Munich (Tobias Nipkow).
         Isar se ha desarrollado en Universidad de Munich (Markus
         Wenzel).




                                                                           37 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento asistido por Isabelle/HOL/Isar




Ejemplo de prueba en Isabelle/Isar
         Teorema de Cantor: Sea X cualquier conjunto y ℘(X ) su
         conjunto potencia. Entonces no existen aplicaciones suprayectivas
         de X en ℘(X ).
         Teorema de Cantor: Para cualquier función f de X en ℘(X ),
         existe un conjunto S tal que S ∈ rango(f ).
                                        /
         Representación en Isabelle:
                 theorem Cantor:
                  fixes f :: "’α ⇒ ’α set"
                  shows "∃ S. S ∈ range f"
                                 /




                                                                             38 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento asistido por Isabelle/HOL/Isar




Ejemplo de prueba en Isabelle/Isar
         Teorema de Cantor: Sea X cualquier conjunto y ℘(X ) su
         conjunto potencia. Entonces no existen aplicaciones suprayectivas
         de X en ℘(X ).
         Teorema de Cantor: Para cualquier función f de X en ℘(X ),
         existe un conjunto S tal que S ∈ rango(f ).
                                        /
         Representación en Isabelle:
                 theorem Cantor:
                  fixes f :: "’α ⇒ ’α set"
                  shows "∃ S. S ∈ range f"
                                 /




                                                                             38 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento asistido por Isabelle/HOL/Isar




Ejemplo de prueba en Isabelle/Isar
         Teorema de Cantor: Sea X cualquier conjunto y ℘(X ) su
         conjunto potencia. Entonces no existen aplicaciones suprayectivas
         de X en ℘(X ).
         Teorema de Cantor: Para cualquier función f de X en ℘(X ),
         existe un conjunto S tal que S ∈ rango(f ).
                                        /
         Representación en Isabelle:
                 theorem Cantor:
                  fixes f :: "’α ⇒ ’α set"
                  shows "∃ S. S ∈ range f"
                                 /




                                                                             38 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento asistido por Isabelle/HOL/Isar




Demostración a nivel de primero de Matemáticas
  Demostración natural
         Sea A = {x .x ∈ f (x )}. Vamos a demostrar que A ∈ rango(f ). Lo
                        /                                   /
         haremos por reducción al absurdo. Supongamos que
         A ∈ rango(f ), entonces existe un b tal que A = f (b). Vamos a
         demostrar una contradición distinguiendo dos casos:
         Caso 1: Supongamos que b ∈ A. Entonces, b ∈ f (b) (por la
                                                      /
         definición de A) y b ∈ A (por la definición de b). Contradicción
                             /
         con b ∈ A.
         Caso 2: Supongamos que b ∈ A. Entonces, b ∈ f (b) (por la
                                    /
         definición de A) y b ∈ A (por la definición de b). Contradicción
         con b ∈ A.
               /



                                                                            39 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento asistido por Isabelle/HOL/Isar




Demostración a nivel de primero de Matemáticas
  Demostración verificada en Isabelle/Isar
       proof
        let ?A = "{x. x ∈ f x}"
                          /
        show "?A ∈ range f"
                   /
        proof
          assume "?A ∈ range f"
          then obtain b where "?A = f b" ..
          show False
          proof cases
           assume "b ∈ ?A"
           hence "b ∈ f b" by simp
                      /
           hence "b ∈ ?A" using ‘?A = f b‘ by simp
                      /
           thus False using ‘b ∈ ?A‘ by contradiction
          next
           assume "b ∈ ?A"
                        /
           hence "b ∈ f b" by simp
           hence "b ∈ ?A" using ‘?A = f b‘ by simp
           thus False using ‘b ∈ ?A‘ by contradiction
                                /
          qed
        qed
       qed
                                                        40 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento asistido por Isabelle/HOL/Isar




Demostración a nivel de tercero de Matemáticas
  Demostración natural
         Consideremos el conjunto A = {x .x ∈ f (x )}. Vamos a demostrar
                                             /
         que A ∈ rango(f ). Lo haremos por reducción al absurdo.
                /
         Supongamos que A ∈ rango(f ), entonces existe un b tal que
         A = f (b). Se obtiene una contradición distinguiendo dos casos
         según que b ∈ A.




                                                                           41 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento asistido por Isabelle/HOL/Isar




Demostración a nivel de tercero de Matemáticas
  Demostración verificada en Isabelle/Isar
     proof
       let ?A = "{x. x ∈ f x}"
                        /
       show "?A ∈ range f"
                  /
       proof
         assume "?A ∈ range f"
         then obtain a where "?A = f a" ..
         show False
         proof cases
            assume "a ∈ ?A"
            show False using ‘?A = f a‘ by blast
          next
           assume "a ∈ ?A"
                      /
           show False using ‘?A = f a‘ by blast
         qed                                         42 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento asistido por Isabelle/HOL/Isar




Demostración a nivel de quinto de Matemáticas
         Teorema de Cantor: Para cualquier función f de X en ℘(X ),
         existe un conjunto S tal que S ∈ rango(f ).
                                        /
         Demostración natural:
         Trivial.
         Teorema y demostración verificada en Isabelle/Isar
         theorem Cantor_3:
          fixes f :: "’α ⇒ ’α set"
          shows "∃ A. A ∈ range f"
                         /
         by best




                                                                      43 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento asistido por Isabelle/HOL/Isar




Demostración a nivel de quinto de Matemáticas
         Teorema de Cantor: Para cualquier función f de X en ℘(X ),
         existe un conjunto S tal que S ∈ rango(f ).
                                        /
         Demostración natural:
         Trivial.
         Teorema y demostración verificada en Isabelle/Isar
         theorem Cantor_3:
          fixes f :: "’α ⇒ ’α set"
          shows "∃ A. A ∈ range f"
                         /
         by best




                                                                      43 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento asistido por Isabelle/HOL/Isar




Ejemplo de razonamiento inductivo
         Teorema: Para todo número natural n se tiene que

                                      1 + 3 + · · · + (2n − 1) = n × n

         Definición:
         primrec sumaImpares :: "nat ⇒ nat" where
           "sumaImpares 0 = 0"
         | "sumaImpares (Suc n) = (2 * (Suc n) - 1) + sumaImpares n"
         Demostración por inducción y simplificación:
         lemma "sumaImpares n = n * n"
         by (induct n) simp_all




                                                                         44 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento asistido por Isabelle/HOL/Isar




Ejemplo de razonamiento inductivo
         Demostración con patrones:
         lemma "sumaImpares n = n * n" (is "?P n")
         proof (induct n)
           show "?P 0" by simp
         next
           fix n assume "?P n"
           thus "?P(Suc n)" by simp
         qed




                                                     45 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento asistido por Isabelle/HOL/Isar




Ejemplo de razonamiento inductivo
         Demostración con patrones y razonamiento ecuacional:
         lemma "sumaImpares n = n * n" (is "?P n")
         proof (induct n)
           show "?P 0" by simp
         next
           fix n assume HI: "?P n"
           have "sumaImpares (Suc n) = (2 * (Suc n) - 1) + sumaImpares n"
            by simp
           also have ". . . = (2 * (Suc n) - 1) + n * n" using HI by simp
           also have ". . . = n * n + 2 * n + 1" by simp
           finally show "?P(Suc n)" by simp
         qed



                                                                            46 / 50
Panorama de la demostración asistida por ordenador
   Razonamiento asistido por Isabelle/HOL/Isar




Teorías formalizadas en Isabelle
         Teorías de Isabelle/HOL:
                 Índice de teorías de Isabelle/HOL
                 Grafo de dependencias de teorías de Isabelle/HOL
                 Documentación de las teorías de Isabelle/HOL
         The Archive of Formal Proofs
                 Perfect Number Theorem
                 Ordinals and Cardinals
                 An Example of a Cofinitary Group in Isabelle/HOL
                 Sums of Two and Four Squares
                 Fermat’s Last Theorem for Exponents 3 and 4 and the
                 Parametrisation of Pythagorean Triples
         Isabelle Top 100
         IsarMathLib (A library of formalized mathematics for Isabelle/ZF
         theorem proving environment).

                                                                            47 / 50
Panorama de la demostración asistida por ordenador
   Comentarios finales




Presentación de Isabelle . . . y otros sistemas de
razonamiento

  1. Razonamiento automático con Prover9/MACE

  2. Razonamiento automático con ACL2

  3. Razonamiento asistido por PVS

  4. Razonamiento asistido por Isabelle/HOL/Isar

  5. Comentarios finales



                                                     48 / 50
Panorama de la demostración asistida por ordenador
   Comentarios finales




Logros actuales en la automatización del razonamiento
         Demostradores automáticos potentes:
                 SAT, procedimientos de decisión, SMT, primer orden
         Extensiones lógicas para modelización:
                 clases de tipos, locales, lógica nominal, reflexión, HOL–Omega.
         Nuevas metodologías para las demostraciones interactivas:
                 demostraciones declarativas, QuickCheck, refutación con SAT.
         Demostración de teoremas importantes:
                 cuatro colores, curva de Jordan, teorema fundamental del cálculo.
         Verificación de aplicaciones industriales:
                 protocolos de seguridad, control de tráfico aéreo.
         Uso de los demostradores como plataformas de programación
                 Programación en los demostradores.
                 Enlaces a herramientas externas.

                                                                                     49 / 50
Panorama de la demostración asistida por ordenador
   Comentarios finales




El futuro del razonamiento automático
         Programación en lógica
                 Uso de los demostradores como nuevos IDE.
                 Generación de código certificado.
                 Conexiones con sistemas externos (SAT, SMT, FOL, . . . ).
         Ampliación de las lógica de los demostradores:
                 HOL2P, HOL–Omega
                 teoría de conjunto
         Ampliación de las aplicacione de los demostradores:
                 Verificación de propiedades profundas de sistemas reales.
                 Uso de demostradores en la enseñanza como “tutores inteligentes”.
         Una matemática, muchos sistemas:
                 ampliación de la matemática formalmente verificada (FM, AFP)
                 procesamiento del conocimiento formalizado (MKM)
                 conexiones de sistemas vía una biblioteca universal de teorías.

                                                                                     50 / 50

Mais conteúdo relacionado

Mais procurados

Funciones resueltos
Funciones resueltosFunciones resueltos
Funciones resueltos
Elvis Valera
 
S1 4 ejercicios_integrales_basicas
S1 4 ejercicios_integrales_basicasS1 4 ejercicios_integrales_basicas
S1 4 ejercicios_integrales_basicas
jesquerrev1
 
Biblioteca java.util por gio
Biblioteca java.util por gioBiblioteca java.util por gio
Biblioteca java.util por gio
Robert Wolf
 
Convolucion Tiempo Discreto
Convolucion Tiempo DiscretoConvolucion Tiempo Discreto
Convolucion Tiempo Discreto
guest1e528d
 

Mais procurados (20)

S1 1 derivadas
S1 1 derivadasS1 1 derivadas
S1 1 derivadas
 
Ejemplos java
Ejemplos javaEjemplos java
Ejemplos java
 
Concavidad puntos de inflexión asintotas
Concavidad puntos de inflexión asintotasConcavidad puntos de inflexión asintotas
Concavidad puntos de inflexión asintotas
 
Tema 0 Repaso Programación en Java
Tema 0 Repaso Programación en JavaTema 0 Repaso Programación en Java
Tema 0 Repaso Programación en Java
 
Clase integracion matlab
Clase integracion matlabClase integracion matlab
Clase integracion matlab
 
Funciones resueltos
Funciones resueltosFunciones resueltos
Funciones resueltos
 
S1 4 ejercicios_integrales_basicas
S1 4 ejercicios_integrales_basicasS1 4 ejercicios_integrales_basicas
S1 4 ejercicios_integrales_basicas
 
Funciones
FuncionesFunciones
Funciones
 
LAS FUNCIONES POLINOMIALES
LAS FUNCIONES POLINOMIALESLAS FUNCIONES POLINOMIALES
LAS FUNCIONES POLINOMIALES
 
Tipos basicos
Tipos basicosTipos basicos
Tipos basicos
 
Biblioteca java.util por gio
Biblioteca java.util por gioBiblioteca java.util por gio
Biblioteca java.util por gio
 
Descubriendo scala
Descubriendo scalaDescubriendo scala
Descubriendo scala
 
Parte2
Parte2Parte2
Parte2
 
Tema 10: Evaluación perezosa en Haskell
Tema 10: Evaluación perezosa en HaskellTema 10: Evaluación perezosa en Haskell
Tema 10: Evaluación perezosa en Haskell
 
Tema 6: Definiciones por recursión en Haskell
Tema 6: Definiciones por recursión en Haskell Tema 6: Definiciones por recursión en Haskell
Tema 6: Definiciones por recursión en Haskell
 
Tic9°
Tic9°Tic9°
Tic9°
 
Tema 7: Funciones de orden superior en Haskell
Tema 7: Funciones de orden superior en HaskellTema 7: Funciones de orden superior en Haskell
Tema 7: Funciones de orden superior en Haskell
 
Funcion Polinomial
Funcion PolinomialFuncion Polinomial
Funcion Polinomial
 
Convolucion Tiempo Discreto
Convolucion Tiempo DiscretoConvolucion Tiempo Discreto
Convolucion Tiempo Discreto
 
Tema 11: Aplicaciones de la programación funcional con Haskell
Tema 11: Aplicaciones de la programación funcional con HaskellTema 11: Aplicaciones de la programación funcional con Haskell
Tema 11: Aplicaciones de la programación funcional con Haskell
 

Destaque

LMF-T5: Resolución proposicional
LMF-T5: Resolución proposicionalLMF-T5: Resolución proposicional
LMF-T5: Resolución proposicional
José A. Alonso
 
LI-T12: LI2011-12: Introducción a la programación lógica con Prolog
LI-T12: LI2011-12: Introducción a la programación lógica con PrologLI-T12: LI2011-12: Introducción a la programación lógica con Prolog
LI-T12: LI2011-12: Introducción a la programación lógica con Prolog
José A. Alonso
 
Panorama del razonamiento automático
Panorama del razonamiento automáticoPanorama del razonamiento automático
Panorama del razonamiento automático
José A. Alonso
 
LMF-T6: Sintaxis y semántica de la lógica de primer orden
LMF-T6: Sintaxis y semántica de la lógica de primer ordenLMF-T6: Sintaxis y semántica de la lógica de primer orden
LMF-T6: Sintaxis y semántica de la lógica de primer orden
José A. Alonso
 
LMF-T2: Deducción natural proposicional
LMF-T2: Deducción natural proposicionalLMF-T2: Deducción natural proposicional
LMF-T2: Deducción natural proposicional
José A. Alonso
 

Destaque (20)

I1M-T21: El TAD de los polinomios en Haskell
I1M-T21: El TAD de los polinomios en HaskellI1M-T21: El TAD de los polinomios en Haskell
I1M-T21: El TAD de los polinomios en Haskell
 
LMF-T4: Formas normales
LMF-T4: Formas normalesLMF-T4: Formas normales
LMF-T4: Formas normales
 
I1M2010-T18: El TAD de las tablas en Haskell
I1M2010-T18: El TAD de las tablas en HaskellI1M2010-T18: El TAD de las tablas en Haskell
I1M2010-T18: El TAD de las tablas en Haskell
 
I1M2010-T14: El tipo abstracto de datos de las pilas en Haskell
I1M2010-T14: El tipo abstracto de datos de las pilas en HaskellI1M2010-T14: El tipo abstracto de datos de las pilas en Haskell
I1M2010-T14: El tipo abstracto de datos de las pilas en Haskell
 
I1M2010-T15: El tipo abstracto de datos de las colas en Haskell
I1M2010-T15: El tipo abstracto de datos de las colas en HaskellI1M2010-T15: El tipo abstracto de datos de las colas en Haskell
I1M2010-T15: El tipo abstracto de datos de las colas en Haskell
 
I1M2010-T20: El tipo abstracto de los montículos en Haskell
I1M2010-T20: El tipo abstracto de los montículos en Haskell I1M2010-T20: El tipo abstracto de los montículos en Haskell
I1M2010-T20: El tipo abstracto de los montículos en Haskell
 
LMF-T5: Resolución proposicional
LMF-T5: Resolución proposicionalLMF-T5: Resolución proposicional
LMF-T5: Resolución proposicional
 
LI-T12: LI2011-12: Introducción a la programación lógica con Prolog
LI-T12: LI2011-12: Introducción a la programación lógica con PrologLI-T12: LI2011-12: Introducción a la programación lógica con Prolog
LI-T12: LI2011-12: Introducción a la programación lógica con Prolog
 
I1M-T19: El TAD de los árboles de búsqueda
I1M-T19: El TAD de los árboles de búsquedaI1M-T19: El TAD de los árboles de búsqueda
I1M-T19: El TAD de los árboles de búsqueda
 
I1M2010-T23: Técnicas de diseño descendente de algoritmos.
I1M2010-T23: Técnicas de diseño descendente de algoritmos.I1M2010-T23: Técnicas de diseño descendente de algoritmos.
I1M2010-T23: Técnicas de diseño descendente de algoritmos.
 
Panorama del razonamiento automático
Panorama del razonamiento automáticoPanorama del razonamiento automático
Panorama del razonamiento automático
 
Tema 2: Introducción a la programación con Haskell
Tema 2: Introducción a la programación con HaskellTema 2: Introducción a la programación con Haskell
Tema 2: Introducción a la programación con Haskell
 
LMF-T6: Sintaxis y semántica de la lógica de primer orden
LMF-T6: Sintaxis y semántica de la lógica de primer ordenLMF-T6: Sintaxis y semántica de la lógica de primer orden
LMF-T6: Sintaxis y semántica de la lógica de primer orden
 
Tema 12: Analizadores sintácticos funcionales.
Tema 12: Analizadores sintácticos funcionales.Tema 12: Analizadores sintácticos funcionales.
Tema 12: Analizadores sintácticos funcionales.
 
I1M2010-T22: Algoritmos sobre grafos en Haskell
I1M2010-T22: Algoritmos sobre grafos en HaskellI1M2010-T22: Algoritmos sobre grafos en Haskell
I1M2010-T22: Algoritmos sobre grafos en Haskell
 
LMF-T1: Sintaxis y semántica de la lógica proposicional
LMF-T1: Sintaxis y semántica de la lógica proposicionalLMF-T1: Sintaxis y semántica de la lógica proposicional
LMF-T1: Sintaxis y semántica de la lógica proposicional
 
LI-T5b: Algoritmos para SAT. Aplicaciones
LI-T5b: Algoritmos para SAT. AplicacionesLI-T5b: Algoritmos para SAT. Aplicaciones
LI-T5b: Algoritmos para SAT. Aplicaciones
 
LMF-T2: Deducción natural proposicional
LMF-T2: Deducción natural proposicionalLMF-T2: Deducción natural proposicional
LMF-T2: Deducción natural proposicional
 
LI2011-T7: Deducción natural en lógica de primer orden
LI2011-T7: Deducción natural en lógica de primer ordenLI2011-T7: Deducción natural en lógica de primer orden
LI2011-T7: Deducción natural en lógica de primer orden
 
LI2011-T11: Resolución en lógica de primer orden
LI2011-T11: Resolución en lógica de primer ordenLI2011-T11: Resolución en lógica de primer orden
LI2011-T11: Resolución en lógica de primer orden
 

Semelhante a Panorama de la demostración asistida por ordenador

Semelhante a Panorama de la demostración asistida por ordenador (20)

Mas_de_400_ejercicios_de_programacion_en (2).pdf
Mas_de_400_ejercicios_de_programacion_en (2).pdfMas_de_400_ejercicios_de_programacion_en (2).pdf
Mas_de_400_ejercicios_de_programacion_en (2).pdf
 
Mas_de_400_ejercicios_de_programacion_en (1).pdf
Mas_de_400_ejercicios_de_programacion_en (1).pdfMas_de_400_ejercicios_de_programacion_en (1).pdf
Mas_de_400_ejercicios_de_programacion_en (1).pdf
 
Aprendizaje de Maquina y Aplicaciones
Aprendizaje de Maquina y AplicacionesAprendizaje de Maquina y Aplicaciones
Aprendizaje de Maquina y Aplicaciones
 
Ingenieria de-control-febrero-2012
Ingenieria de-control-febrero-2012Ingenieria de-control-febrero-2012
Ingenieria de-control-febrero-2012
 
..Expresiones Algebraicas Racionales.pdf
..Expresiones Algebraicas Racionales.pdf..Expresiones Algebraicas Racionales.pdf
..Expresiones Algebraicas Racionales.pdf
 
Practica 5 simulink-5156
Practica 5 simulink-5156Practica 5 simulink-5156
Practica 5 simulink-5156
 
Unidad3.pdf
Unidad3.pdfUnidad3.pdf
Unidad3.pdf
 
Tutorial matlab
Tutorial matlabTutorial matlab
Tutorial matlab
 
resumen matlab
resumen matlabresumen matlab
resumen matlab
 
AEP19. Presentación 2: Teoría de las Probabilidades
AEP19. Presentación 2: Teoría de las ProbabilidadesAEP19. Presentación 2: Teoría de las Probabilidades
AEP19. Presentación 2: Teoría de las Probabilidades
 
2 teoria de_probabilidades
2 teoria de_probabilidades2 teoria de_probabilidades
2 teoria de_probabilidades
 
Uni3 estructura-general-de-un-programa-cont
Uni3 estructura-general-de-un-programa-contUni3 estructura-general-de-un-programa-cont
Uni3 estructura-general-de-un-programa-cont
 
Int_Octave_II_2021.pptx
Int_Octave_II_2021.pptxInt_Octave_II_2021.pptx
Int_Octave_II_2021.pptx
 
INTERPOLACIÓN.pdf
INTERPOLACIÓN.pdfINTERPOLACIÓN.pdf
INTERPOLACIÓN.pdf
 
algoritmos en R Studio
algoritmos en R Studioalgoritmos en R Studio
algoritmos en R Studio
 
clase de matlab
clase  de   matlabclase  de   matlab
clase de matlab
 
Metodos iterativos
Metodos iterativosMetodos iterativos
Metodos iterativos
 
Introducción a Scala
Introducción a ScalaIntroducción a Scala
Introducción a Scala
 
Aplicaciones ruffini
Aplicaciones ruffiniAplicaciones ruffini
Aplicaciones ruffini
 
Ejercicios raíces de funciones
Ejercicios raíces de funciones Ejercicios raíces de funciones
Ejercicios raíces de funciones
 

Mais de José A. Alonso

LMF-T6: Sintaxis y semántica de la lógica de primer orden
LMF-T6: Sintaxis y semántica de la lógica de primer ordenLMF-T6: Sintaxis y semántica de la lógica de primer orden
LMF-T6: Sintaxis y semántica de la lógica de primer orden
José A. Alonso
 
LMF-T3: Tableros semánticos
LMF-T3: Tableros semánticosLMF-T3: Tableros semánticos
LMF-T3: Tableros semánticos
José A. Alonso
 
LI-T6: Sintaxis y semántica de la lógica de primer orden
LI-T6: Sintaxis y semántica de la lógica de primer ordenLI-T6: Sintaxis y semántica de la lógica de primer orden
LI-T6: Sintaxis y semántica de la lógica de primer orden
José A. Alonso
 
LI -T5: Resolución proposicional
LI -T5: Resolución proposicionalLI -T5: Resolución proposicional
LI -T5: Resolución proposicional
José A. Alonso
 

Mais de José A. Alonso (10)

LMF-T6: Sintaxis y semántica de la lógica de primer orden
LMF-T6: Sintaxis y semántica de la lógica de primer ordenLMF-T6: Sintaxis y semántica de la lógica de primer orden
LMF-T6: Sintaxis y semántica de la lógica de primer orden
 
LMF-T5b: Aplicaciones de la lógica proposicional
LMF-T5b: Aplicaciones de la lógica proposicionalLMF-T5b: Aplicaciones de la lógica proposicional
LMF-T5b: Aplicaciones de la lógica proposicional
 
LMF-T3: Tableros semánticos
LMF-T3: Tableros semánticosLMF-T3: Tableros semánticos
LMF-T3: Tableros semánticos
 
LI-T6: Sintaxis y semántica de la lógica de primer orden
LI-T6: Sintaxis y semántica de la lógica de primer ordenLI-T6: Sintaxis y semántica de la lógica de primer orden
LI-T6: Sintaxis y semántica de la lógica de primer orden
 
LI -T5: Resolución proposicional
LI -T5: Resolución proposicionalLI -T5: Resolución proposicional
LI -T5: Resolución proposicional
 
I1M2010-T24: Programación dinámica en Haskell
I1M2010-T24: Programación dinámica en HaskellI1M2010-T24: Programación dinámica en Haskell
I1M2010-T24: Programación dinámica en Haskell
 
LI2011-T9: Formas normales de Skolem y cláusulas
LI2011-T9: Formas normales de Skolem y cláusulasLI2011-T9: Formas normales de Skolem y cláusulas
LI2011-T9: Formas normales de Skolem y cláusulas
 
LIT4: Formales normales conjuntivas y disyuntivas
LIT4: Formales normales conjuntivas y disyuntivasLIT4: Formales normales conjuntivas y disyuntivas
LIT4: Formales normales conjuntivas y disyuntivas
 
I1M2010-T16: El tipo abstracto de las colas de prioridad en Haskell
I1M2010-T16: El tipo abstracto de las colas de prioridad en HaskellI1M2010-T16: El tipo abstracto de las colas de prioridad en Haskell
I1M2010-T16: El tipo abstracto de las colas de prioridad en Haskell
 
LI2011-T3: Tableros semánticos proposicionales
LI2011-T3: Tableros semánticos proposicionalesLI2011-T3: Tableros semánticos proposicionales
LI2011-T3: Tableros semánticos proposicionales
 

Último

🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
NadiaMartnez11
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
UPTAIDELTACHIRA
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
patriciaines1993
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
El Fortí
 

Último (20)

ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
Diapositivas de animales reptiles secundaria
Diapositivas de animales reptiles secundariaDiapositivas de animales reptiles secundaria
Diapositivas de animales reptiles secundaria
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 

Panorama de la demostración asistida por ordenador

  • 1. Panorama de la demostración asistida por ordenador José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla 21 de noviembre de 2012
  • 2. Panorama de la demostración asistida por ordenador Razonamiento automático con Prover9/MACE Presentación de Isabelle . . . y otros sistemas de razonamiento 1. Razonamiento automático con Prover9/MACE 2. Razonamiento automático con ACL2 3. Razonamiento asistido por PVS 4. Razonamiento asistido por Isabelle/HOL/Isar 5. Comentarios finales 2 / 50
  • 3. Panorama de la demostración asistida por ordenador Razonamiento automático con Prover9/MACE El sistema Prover9 Prover9 es un sistema de razonamiento automático para lógica de primer orden basado en resolución y paramodulación. Desarrollado por William McCune en el ANL (Argonne National Laboratory). Sucesor de anteriores demostradores de ANL: AURA, ITP y OTTER. 3 / 50
  • 4. Panorama de la demostración asistida por ordenador Razonamiento automático con Prover9/MACE Ejemplo de razonamiento automático con Prover9 Teorema: Sea G un grupo y e su elemento neutro. Si, para todo x de G, x 2 = e, entonces G es conmutativo. Formalización: Axiomas de grupo: (∀x )[e.x = x ] (∀x )[x .e = x ] (∀x )[x .x −1 = e] (∀x )[x −1 .x = e] (∀x )(∀y )(∀z)[(x .y ).z = x .(y .z)] Hipótesis (∀x )[x .x = e] Conclusión (∀x )(∀y )[x .y = y .x ] 4 / 50
  • 5. Panorama de la demostración asistida por ordenador Razonamiento automático con Prover9/MACE Ejemplo de razonamiento automático con Prover9 Entrada grupos.in formulas(assumptions). e * x = x. % Ax. 1 x * e = x. % Ax. 2 x' * x = e. % Ax. 3 x * x' = e. % Ax. 4 (x * y) * z = x * (y * z). % Ax. 5 x = x. % Ax. 6 x * x = e. end_of_list. formulas(goals). x * y = y * x. end_of_list. 5 / 50
  • 6. Panorama de la demostración asistida por ordenador Razonamiento automático con Prover9/MACE Ejemplo de razonamiento automático con Prover9 Uso de Prover9 prover9 <grupos.in Resultado: ============================== PROOF ================================= 1 x * y = y * x [goal]. 2 e * x = x. [assumption]. 3 x * e = x. [assumption]. 6 (x * y) * z = x * (y * z). [assumption]. 7 x * x = e. [assumption]. 8 c2 * c1 != c1 * c2. [deny(1)]. 13 x * (x * y) = y. [para(7(a,1),6(a,1,1)),rewrite([2(2)]),flip(a)]. 14 x * (y * (x * y)) = e. [para(7(a,1),6(a,1)),flip(a)]. 18 x * (y * x) = y. [para(14(a,1),13(a,1,2)),rewrite([3(2)]),flip(a)]. 22 x * y = y * x. [para(18(a,1),13(a,1,2))]. 23 $F. [resolve(22,a,8,a)]. ============================== end of proof ========================== 6 / 50
  • 7. Panorama de la demostración asistida por ordenador Razonamiento automático con Prover9/MACE Búsqueda de modelos con MACE Problema: Buscar un grupo con conmutativo. Representación en MACE (grupos2.in): formulas(assumptions). e * x = x. % Ax. 1 x * e = x. % Ax. 2 x' * x = e. % Ax. 3 x * x' = e. % Ax. 4 (x * y) * z = x * (y * z). % Ax. 5 end_of_list. formulas(goals). x * y = y * x. end_of_list. 7 / 50
  • 8. Panorama de la demostración asistida por ordenador Razonamiento automático con Prover9/MACE Búsqueda de modelos con MACE Búsqueda con MACE mace4 -p < grupos2.in ============================== DOMAIN SIZE 6 ========================= === Mace4 starting on domain size 6. === e : 0 c1 : 1 c2 : 2 ' : 0 1 2 3 4 5 --------------- 0 1 2 4 3 5 * : | 0 1 2 3 4 5 --+------------ 0 | 0 1 2 3 4 5 1 | 1 0 3 2 5 4 2 | 2 4 0 5 1 3 3 | 3 5 1 4 0 2 4 | 4 2 5 0 3 1 5 | 5 3 4 1 2 0 8 / 50
  • 9. Panorama de la demostración asistida por ordenador Razonamiento automático con Prover9/MACE Teoremas demostrados con Prover9 Son of BirdBrain II. The TPTP Problem Library for Automated Theorem Proving. Lista de problemas de TPTP Sistemas en TPTP 9 / 50
  • 10. Panorama de la demostración asistida por ordenador Razonamiento automático con ACL2 Presentación de Isabelle . . . y otros sistemas de razonamiento 1. Razonamiento automático con Prover9/MACE 2. Razonamiento automático con ACL2 3. Razonamiento asistido por PVS 4. Razonamiento asistido por Isabelle/HOL/Isar 5. Comentarios finales 10 / 50
  • 11. Panorama de la demostración asistida por ordenador Razonamiento automático con ACL2 El sistema ACL2 A Computacional Logic for an Applicative Common Lisp. Desarrollado por Moore y Kaufmann en la Universidad de Texas. Sucesor de Nqthm de Boyer y Moore. Tres aspectos de ACL2: 1. Lenguaje de programación. 2. Lógica. 3. Sistema de razonamiento automático. 11 / 50
  • 12. Panorama de la demostración asistida por ordenador Razonamiento automático con ACL2 ACL2 como lenguaje de programación Definición: (defun concatena (x y) (if (endp x) y (cons (car x) (concatena (cdr x) y)))) (defun inversa (x) (if (endp x) nil (concatena (inversa (cdr x)) (list (car x))))) Evaluación: ACL2 !> (concatena '(a b) '(c d e)) (A B C D E) ACL2 !> (inversa '(a b c)) (C B A) ACL2 !> (inversa (inversa '(a b c))) (A B C) 12 / 50
  • 13. Panorama de la demostración asistida por ordenador Razonamiento automático con ACL2 ACL2 como lógica ACL2 es una lógica de primer orden con igualdad sin cuantificadores de la parte aplicativa de Common Lisp. Ejemplo de definiciones de la teoría de listas: (defun true-listp (x) (if (consp x) (true-listp (cdr x)) (eq x nil))) Ejemplo de axiomas de la teoría de lista: (defaxiom car-cdr-elim (implies (consp x) (equal (cons (car x) (cdr x)) x))) (defaxiom car-cons (equal (car (cons x y)) x)) (defaxiom cdr-cons (equal (cdr (cons x y)) y)) Mediante defun se extiende la lógica de manera conservativa. Se necesitan condiciones de admisibilidad. 13 / 50
  • 14. Panorama de la demostración asistida por ordenador Razonamiento automático con ACL2 ACL2 como lógica: Admisibilidad Ejemplo 1: ACL2 !> (defun f (x) y) ACL2 Error in (DEFUN F ...): The body of F contains a free occurrence of the variable symbol Y. Ejemplo 2: ACL2 !> (defun f (x) (+ (f x) 1)) ACL2 Error in (DEFUN F ...): No :measure was supplied with the definition of F. Our heuristics for guessing one have not made any suggestions. No argument of the function is tested along every branch and occurs as a proper subterm at the same argument position in every recursive call. You must specify a :measure. 14 / 50
  • 15. Panorama de la demostración asistida por ordenador Razonamiento automático con ACL2 ACL2 como lógica: Admisibilidad Ejemplo 3: ACL2 !> (defun inversa (x) (if (endp x) nil (concatena (inversa (cdr x)) (list (car x))))) The admission of INVERSA is trivial, using the relation E0-ORD-< (which is known to be well-founded on the domain recognized by E0-ORDINALP) and the measure (ACL2-COUNT X). We observe that the type of INVERSA is described by the theorem (OR (CONSP (INVERSA X)) (EQUAL (INVERSA X) NIL)). We used primitive type reasoning and the :type-prescription rule CONCATENA. 15 / 50
  • 16. Panorama de la demostración asistida por ordenador Razonamiento automático con ACL2 ACL2 como SRA (sistema de razonamiento automático) 16 / 50
  • 17. Panorama de la demostración asistida por ordenador Razonamiento automático con ACL2 ACL2 como SRA: Inducción ACL2 !> (defthm inversa-inversa (implies (true-listp x) (equal (inversa (inversa x)) x))) Name the formula above *1. Perhaps we can prove *1 by induction. Two induction schemes are suggested by this conjecture. These merge into one derived induction scheme. We will induct according to a scheme suggested by (INVERSA X). If we let (:P X) denote *1 above then the induction scheme we'll use is (AND (IMPLIES (AND (NOT (ENDP X)) (:P (CDR X))) (:P X)) (IMPLIES (ENDP X) (:P X))). 17 / 50
  • 18. Panorama de la demostración asistida por ordenador Razonamiento automático con ACL2 El papel del usuario Frecuentemente los primeros intentos de demostración de resultados no triviales fallan. Ello significa que el demostrador necesita demostrar lemas previos. Estos lemas se obtienen: de una demostración preconcebida a mano o del anális del fallo del intento de prueba. Por tanto, el papel del usuario es: Formalizar la teoría en la lógica. Implementar una estrategia de la prueba, mediante una sucesión de lemas. El resultado es un fichero con definiciones y teoremas Un libro en la terminología de ACL2. El libro puede certificarse y usarse en otros libros. 18 / 50
  • 19. Panorama de la demostración asistida por ordenador Razonamiento automático con ACL2 Teorías formalizadas en ACL2 Lista de teorías en ACL2. Congresos de ACL2 19 / 50
  • 20. Panorama de la demostración asistida por ordenador Razonamiento asistido por PVS Presentación de Isabelle . . . y otros sistemas de razonamiento 1. Razonamiento automático con Prover9/MACE 2. Razonamiento automático con ACL2 3. Razonamiento asistido por PVS 4. Razonamiento asistido por Isabelle/HOL/Isar 5. Comentarios finales 20 / 50
  • 21. Panorama de la demostración asistida por ordenador Razonamiento asistido por PVS Historia de PVS PVS: Nombre: Prototype Verification System Autores: N. Shankar, S. Owre y J.M. Rushby en el SRI (Stanford Research Institute). Def: “PVS is a verification system: that is, a specification language integrated with support tools and a theorem prover” Historia: HDM (1970), EHDM (1984), PVS (1991), PVS 4.2 (2008). Propósitos: The primary purpose of PVS is to provide formal support for conceptualization and debugging in the early stages of the lifecycle of the design of a hardware or software system The primary emphasis in the PVS proof checker is on supporting the construction of readable proofs 21 / 50
  • 22. Panorama de la demostración asistida por ordenador Razonamiento asistido por PVS El problema de las monedas Enunciado: Demostrar que con monedas de 3 y 5 se puede obtener cualquier cantidad que sea mayor o igual a 8. Especificación monedas : THEORY BEGIN n, a, b: VAR nat monedas: LEMA (FORALL n: (EXISTS a, b: n+8 = 3*a + 5*b)) END monedas 22 / 50
  • 23. Panorama de la demostración asistida por ordenador Razonamiento asistido por PVS El problema de las monedas Demostración manual: Por inducción en n Base n = 0: 0 + 8 = 3 × 1 + 5 × 1. Basta elegir a = b = 1 Paso n + 1: Supongamos que existen a y b tales que n + 8 = 3 × a + 5 × b. Vamos a distinguir dos casos según que b = 0. Caso 1 Sea b = 0, entonces n + 8 = 3 × a, a > 3 y (n + 1) + 8 = 3 × (a − 3) + 5 × 2 Caso 2 Sea b = 0, entonces (n + 1) + 8 = 3 × (a + 2) + 5 × (b − 1) 23 / 50
  • 24. Panorama de la demostración asistida por ordenador Razonamiento asistido por PVS El problema de las monedas Demostración con PVS monedas : |------- {1} (FORALL n: (EXISTS a, b: n + 8 = 3 * a + 5 * b)) Rule? (induct "n") Inducting on n on formula 1, this yields 2 subgoals: monedas.1 : |------- {1} EXISTS a, b: 0 + 8 = 3 * a + 5 * b Rule? (inst 1 1 1) Instantiating the top quantifier in 1 with the terms: 1, 1, this simplifies to: 24 / 50
  • 25. Panorama de la demostración asistida por ordenador Razonamiento asistido por PVS El problema de las monedas monedas.1 : |------- {1} 0 + 8 = 3 * 1 + 5 * 1 Rule? (assert) Simplifying, rewriting, and recording with decision procedures, This completes the proof of monedas.1. monedas.2 : |------- {1} FORALL j: (EXISTS a, b: j + 8 = 3 * a + 5 * b) IMPLIES (EXISTS a, b: j + 1 + 8 = 3 * a + 5 * b) Rule? (skosimp*) Repeatedly Skolemizing and flattening, this simplifies to: 25 / 50
  • 26. Panorama de la demostración asistida por ordenador Razonamiento asistido por PVS El problema de las monedas monedas.2 : {-1} j!1 + 8 = 3 * a!1 + 5 * b!1 |------- {1} EXISTS a, b: j!1 + 1 + 8 = 3 * a + 5 * b Rule? (case "b!1=0") Case splitting on b!1 = 0, this yields 2 subgoals: monedas.2.1 : {-1} b!1 = 0 [-2] j!1 + 8 = 3 * a!1 + 5 * b!1 |------- [1] EXISTS a, b: j!1 + 1 + 8 = 3 * a + 5 * b Rule? (inst 1 "a!1-3" "2") Instantiating the top quantifier in 1 with the terms: a!1-3, 2, this yields 2 subgoals: 26 / 50
  • 27. Panorama de la demostración asistida por ordenador Razonamiento asistido por PVS El problema de las monedas monedas.2.1.1 : [-1] b!1 = 0 [-2] j!1 + 8 = 3 * a!1 + 5 * b!1 |------- {1} j!1 + 1 + 8 = 3 * (a!1 - 3) + 5 * 2 Rule? (assert) Simplifying, rewriting, and recording with decision procedures This completes the proof of monedas.2.1.1. 27 / 50
  • 28. Panorama de la demostración asistida por ordenador Razonamiento asistido por PVS El problema de las monedas monedas.2.1.2 (TCC): [-1] b!1 = 0 [-2] j!1 + 8 = 3 * a!1 + 5 * b!1 |------- {1} a!1 - 3 >= 0 Rule? (assert) Simplifying, rewriting, and recording with decision procedures This completes the proof of monedas.2.1.2. This completes the proof of monedas.2.1. 28 / 50
  • 29. Panorama de la demostración asistida por ordenador Razonamiento asistido por PVS El problema de las monedas monedas.2.2 : [-1] j!1 + 8 = 3 * a!1 + 5 * b!1 |------- {1} b!1 = 0 [2] EXISTS a, b: j!1 + 1 + 8 = 3 * a + 5 * b Rule? (inst 2 "a!1+2" "b!1-1") Instantiating the top quantifier in 2 with the terms: a!1+2, b!1-1, this yields 2 subgoals: 29 / 50
  • 30. Panorama de la demostración asistida por ordenador Razonamiento asistido por PVS El problema de las monedas monedas.2.2.1 : [-1] j!1 + 8 = 3 * a!1 + 5 * b!1 |------- [1] b!1 = 0 {2} j!1 + 1 + 8 = 3 * (a!1 + 2) + 5 * (b!1 - 1) Rule? (assert) Simplifying, rewriting, and recording with decision procedures This completes the proof of monedas.2.2.1. 30 / 50
  • 31. Panorama de la demostración asistida por ordenador Razonamiento asistido por PVS El problema de las monedas monedas.2.2.2 (TCC): [-1] j!1 + 8 = 3 * a!1 + 5 * b!1 |------- {1} b!1 - 1 >= 0 [2] b!1 = 0 Rule? (assert) Simplifying, rewriting, and recording with decision procedures, This completes the proof of monedas.2.2.2. This completes the proof of monedas.2.2. This completes the proof of monedas.2. Q.E.D. 31 / 50
  • 32. Panorama de la demostración asistida por ordenador Razonamiento asistido por PVS Demostración PVS Llamada: M-x edit-proof Demostración ("" (INDUCT "n") (("1" (INST 1 1 1) (ASSERT)) ("2" (SKOSIMP*) (CASE "b!1=0") (("1" (INST 1 "a!1-3" "2") (("1" (ASSERT)) ("2" (ASSERT)))) ("2" (INST 2 "a!1+2" "b!1-1") (("1" (ASSERT)) ("2" (ASSERT))) 32 / 50
  • 33. Panorama de la demostración asistida por ordenador Razonamiento asistido por PVS Procedimientos de decisión en PVS Ejemplos de teoremas demostrados con los procedimientos de decisión de la aritmética lineal con la orden (reduce) procedimientos_de_decision: THEORY BEGIN x,y,z: VAR real ej1: THEOREM x < 2*y AND y < 3*z IMPLIES 3*x < 18*z i,j,k: VAR int ej2: THEOREM i > 0 AND 2*i < 6 IMPLIES i = 1 OR i = 2 f: [real -> real] g: [real, real -> real] ej3: THEOREM x = f(y) IMPLIES g(f(y + 2 - 2), x + 2) = g(x, END procedimientos_de_decision 33 / 50
  • 34. Panorama de la demostración asistida por ordenador Razonamiento asistido por PVS Ejemplo de teorema de la aritmética no lineal Ejemplo del teorema aritmetica_no_lineal: THEORY BEGIN x, y: VAR real aritm_no_lineal: THEOREM x<0 AND y<0 IMPLIES x*y>0 END aritmetica_no_lineal No se demuestra sólo con los procedimientos de decisión. Se demuestra usando la teoría de los números reales de PVS: (grind :theories "real_props") 34 / 50
  • 35. Panorama de la demostración asistida por ordenador Razonamiento asistido por PVS Teorías formalizadas en PVS The PVS prelude y NASA Langley PVS Libraries (17–Agosto–2010) 35 / 50
  • 36. Panorama de la demostración asistida por ordenador Razonamiento asistido por Isabelle/HOL/Isar Presentación de Isabelle . . . y otros sistemas de razonamiento 1. Razonamiento automático con Prover9/MACE 2. Razonamiento automático con ACL2 3. Razonamiento asistido por PVS 4. Razonamiento asistido por Isabelle/HOL/Isar 5. Comentarios finales 36 / 50
  • 37. Panorama de la demostración asistida por ordenador Razonamiento asistido por Isabelle/HOL/Isar El sistema Isabelle/HOL/Isar Isabelle es un marco lógico basado en lógica de orden superior. Isabelle/HOL es la especialización de Isabelle para HOL (Higher-Order Logic). Isar (Intelligible semi–automated reasoning) es un lenguaje de pruebas para Isabelle. Isabelle/HOL se ha desarrollado en la Universidad de Cambridge (Larry Paulson) y la Universidad de Munich (Tobias Nipkow). Isar se ha desarrollado en Universidad de Munich (Markus Wenzel). 37 / 50
  • 38. Panorama de la demostración asistida por ordenador Razonamiento asistido por Isabelle/HOL/Isar Ejemplo de prueba en Isabelle/Isar Teorema de Cantor: Sea X cualquier conjunto y ℘(X ) su conjunto potencia. Entonces no existen aplicaciones suprayectivas de X en ℘(X ). Teorema de Cantor: Para cualquier función f de X en ℘(X ), existe un conjunto S tal que S ∈ rango(f ). / Representación en Isabelle: theorem Cantor: fixes f :: "’α ⇒ ’α set" shows "∃ S. S ∈ range f" / 38 / 50
  • 39. Panorama de la demostración asistida por ordenador Razonamiento asistido por Isabelle/HOL/Isar Ejemplo de prueba en Isabelle/Isar Teorema de Cantor: Sea X cualquier conjunto y ℘(X ) su conjunto potencia. Entonces no existen aplicaciones suprayectivas de X en ℘(X ). Teorema de Cantor: Para cualquier función f de X en ℘(X ), existe un conjunto S tal que S ∈ rango(f ). / Representación en Isabelle: theorem Cantor: fixes f :: "’α ⇒ ’α set" shows "∃ S. S ∈ range f" / 38 / 50
  • 40. Panorama de la demostración asistida por ordenador Razonamiento asistido por Isabelle/HOL/Isar Ejemplo de prueba en Isabelle/Isar Teorema de Cantor: Sea X cualquier conjunto y ℘(X ) su conjunto potencia. Entonces no existen aplicaciones suprayectivas de X en ℘(X ). Teorema de Cantor: Para cualquier función f de X en ℘(X ), existe un conjunto S tal que S ∈ rango(f ). / Representación en Isabelle: theorem Cantor: fixes f :: "’α ⇒ ’α set" shows "∃ S. S ∈ range f" / 38 / 50
  • 41. Panorama de la demostración asistida por ordenador Razonamiento asistido por Isabelle/HOL/Isar Demostración a nivel de primero de Matemáticas Demostración natural Sea A = {x .x ∈ f (x )}. Vamos a demostrar que A ∈ rango(f ). Lo / / haremos por reducción al absurdo. Supongamos que A ∈ rango(f ), entonces existe un b tal que A = f (b). Vamos a demostrar una contradición distinguiendo dos casos: Caso 1: Supongamos que b ∈ A. Entonces, b ∈ f (b) (por la / definición de A) y b ∈ A (por la definición de b). Contradicción / con b ∈ A. Caso 2: Supongamos que b ∈ A. Entonces, b ∈ f (b) (por la / definición de A) y b ∈ A (por la definición de b). Contradicción con b ∈ A. / 39 / 50
  • 42. Panorama de la demostración asistida por ordenador Razonamiento asistido por Isabelle/HOL/Isar Demostración a nivel de primero de Matemáticas Demostración verificada en Isabelle/Isar proof let ?A = "{x. x ∈ f x}" / show "?A ∈ range f" / proof assume "?A ∈ range f" then obtain b where "?A = f b" .. show False proof cases assume "b ∈ ?A" hence "b ∈ f b" by simp / hence "b ∈ ?A" using ‘?A = f b‘ by simp / thus False using ‘b ∈ ?A‘ by contradiction next assume "b ∈ ?A" / hence "b ∈ f b" by simp hence "b ∈ ?A" using ‘?A = f b‘ by simp thus False using ‘b ∈ ?A‘ by contradiction / qed qed qed 40 / 50
  • 43. Panorama de la demostración asistida por ordenador Razonamiento asistido por Isabelle/HOL/Isar Demostración a nivel de tercero de Matemáticas Demostración natural Consideremos el conjunto A = {x .x ∈ f (x )}. Vamos a demostrar / que A ∈ rango(f ). Lo haremos por reducción al absurdo. / Supongamos que A ∈ rango(f ), entonces existe un b tal que A = f (b). Se obtiene una contradición distinguiendo dos casos según que b ∈ A. 41 / 50
  • 44. Panorama de la demostración asistida por ordenador Razonamiento asistido por Isabelle/HOL/Isar Demostración a nivel de tercero de Matemáticas Demostración verificada en Isabelle/Isar proof let ?A = "{x. x ∈ f x}" / show "?A ∈ range f" / proof assume "?A ∈ range f" then obtain a where "?A = f a" .. show False proof cases assume "a ∈ ?A" show False using ‘?A = f a‘ by blast next assume "a ∈ ?A" / show False using ‘?A = f a‘ by blast qed 42 / 50
  • 45. Panorama de la demostración asistida por ordenador Razonamiento asistido por Isabelle/HOL/Isar Demostración a nivel de quinto de Matemáticas Teorema de Cantor: Para cualquier función f de X en ℘(X ), existe un conjunto S tal que S ∈ rango(f ). / Demostración natural: Trivial. Teorema y demostración verificada en Isabelle/Isar theorem Cantor_3: fixes f :: "’α ⇒ ’α set" shows "∃ A. A ∈ range f" / by best 43 / 50
  • 46. Panorama de la demostración asistida por ordenador Razonamiento asistido por Isabelle/HOL/Isar Demostración a nivel de quinto de Matemáticas Teorema de Cantor: Para cualquier función f de X en ℘(X ), existe un conjunto S tal que S ∈ rango(f ). / Demostración natural: Trivial. Teorema y demostración verificada en Isabelle/Isar theorem Cantor_3: fixes f :: "’α ⇒ ’α set" shows "∃ A. A ∈ range f" / by best 43 / 50
  • 47. Panorama de la demostración asistida por ordenador Razonamiento asistido por Isabelle/HOL/Isar Ejemplo de razonamiento inductivo Teorema: Para todo número natural n se tiene que 1 + 3 + · · · + (2n − 1) = n × n Definición: primrec sumaImpares :: "nat ⇒ nat" where "sumaImpares 0 = 0" | "sumaImpares (Suc n) = (2 * (Suc n) - 1) + sumaImpares n" Demostración por inducción y simplificación: lemma "sumaImpares n = n * n" by (induct n) simp_all 44 / 50
  • 48. Panorama de la demostración asistida por ordenador Razonamiento asistido por Isabelle/HOL/Isar Ejemplo de razonamiento inductivo Demostración con patrones: lemma "sumaImpares n = n * n" (is "?P n") proof (induct n) show "?P 0" by simp next fix n assume "?P n" thus "?P(Suc n)" by simp qed 45 / 50
  • 49. Panorama de la demostración asistida por ordenador Razonamiento asistido por Isabelle/HOL/Isar Ejemplo de razonamiento inductivo Demostración con patrones y razonamiento ecuacional: lemma "sumaImpares n = n * n" (is "?P n") proof (induct n) show "?P 0" by simp next fix n assume HI: "?P n" have "sumaImpares (Suc n) = (2 * (Suc n) - 1) + sumaImpares n" by simp also have ". . . = (2 * (Suc n) - 1) + n * n" using HI by simp also have ". . . = n * n + 2 * n + 1" by simp finally show "?P(Suc n)" by simp qed 46 / 50
  • 50. Panorama de la demostración asistida por ordenador Razonamiento asistido por Isabelle/HOL/Isar Teorías formalizadas en Isabelle Teorías de Isabelle/HOL: Índice de teorías de Isabelle/HOL Grafo de dependencias de teorías de Isabelle/HOL Documentación de las teorías de Isabelle/HOL The Archive of Formal Proofs Perfect Number Theorem Ordinals and Cardinals An Example of a Cofinitary Group in Isabelle/HOL Sums of Two and Four Squares Fermat’s Last Theorem for Exponents 3 and 4 and the Parametrisation of Pythagorean Triples Isabelle Top 100 IsarMathLib (A library of formalized mathematics for Isabelle/ZF theorem proving environment). 47 / 50
  • 51. Panorama de la demostración asistida por ordenador Comentarios finales Presentación de Isabelle . . . y otros sistemas de razonamiento 1. Razonamiento automático con Prover9/MACE 2. Razonamiento automático con ACL2 3. Razonamiento asistido por PVS 4. Razonamiento asistido por Isabelle/HOL/Isar 5. Comentarios finales 48 / 50
  • 52. Panorama de la demostración asistida por ordenador Comentarios finales Logros actuales en la automatización del razonamiento Demostradores automáticos potentes: SAT, procedimientos de decisión, SMT, primer orden Extensiones lógicas para modelización: clases de tipos, locales, lógica nominal, reflexión, HOL–Omega. Nuevas metodologías para las demostraciones interactivas: demostraciones declarativas, QuickCheck, refutación con SAT. Demostración de teoremas importantes: cuatro colores, curva de Jordan, teorema fundamental del cálculo. Verificación de aplicaciones industriales: protocolos de seguridad, control de tráfico aéreo. Uso de los demostradores como plataformas de programación Programación en los demostradores. Enlaces a herramientas externas. 49 / 50
  • 53. Panorama de la demostración asistida por ordenador Comentarios finales El futuro del razonamiento automático Programación en lógica Uso de los demostradores como nuevos IDE. Generación de código certificado. Conexiones con sistemas externos (SAT, SMT, FOL, . . . ). Ampliación de las lógica de los demostradores: HOL2P, HOL–Omega teoría de conjunto Ampliación de las aplicacione de los demostradores: Verificación de propiedades profundas de sistemas reales. Uso de demostradores en la enseñanza como “tutores inteligentes”. Una matemática, muchos sistemas: ampliación de la matemática formalmente verificada (FM, AFP) procesamiento del conocimiento formalizado (MKM) conexiones de sistemas vía una biblioteca universal de teorías. 50 / 50