domingo, 29 de julio de 2007

SMT-lib

Descubrí que el demostrador CVC viene con una característica que permite traducir a formato SMT-lib. Este es un formato que usan todos los demostradores SMT en una competencia que se hace una vez por año.

O sea, que ahora puedo escribir en SMT-lib gratis, sin esfuerzo porque el output a CVC ya lo tenía hecho.

Un tema es que varios demostradores, al leer archivos en este formato SMT-lib, sólo le dan bola a la primer propiedad que aparece ahí. Por eso ahora lo que hago es:

  1. Ir acumulando las cosas que sé que son verdad (precondición y los asserts que surgen del flujo del programa).
  2. Cuando encuentro un query lo parto en tantos átomos como elementos de la conjunción que denota.
  3. Para cada átomo genero un archivo con todos los asserts acumulados como axiomas y pregunto si es teorema.
  4. Si es teorema lo agrego al conjunto de axiomas. Sino, no.
  5. Sigo hasta agotar todos los átomos de cada uno de los queries.
Al finalizar eventualmente hay algunas subfórmulas que no pudieron ser probadas.

No hay comentarios.: