Você está na página 1de 4

Logica Computacional 2016-2

Manual de referencia rapida para Coq


Favio E. Miranda Perea
Susana H. Martn Lunas
Fernando A. Galicia Mendoza
Facultad de ciencias, UNAM
28 de abril del 2016

L
ogica ecuacional

Sean s, t terminos, una sustitucion de terminos y E una ecuacion.


Nombre

Regla

Nombre Coq

Reflexividad

s=s

reflexivity

Simetra

t=s
s=t

symmetry

Transitividad

t=r r=s
t=s

transitivity r

Sustituci
on

H:t=s
t = s

apply H

Rewrite

H : r = s E[s]
E[r]

rewrite H

Rewrite

H : r = s E[r]
E[s]

rewrite <- H

T
acticas intro e intros

En caso de querer realizar una prueba de la forma:


, H : A ` B
`AB
Utilizar la t
atica intro H.
Si es de la forma:
, H1 : A1 , . . . , Hn : An ` B
` A1 An B
Utilizar la t
atica intros H1...Hn.
Donde es un conjunto de hipotesis.

Comandos b
asicos

Todo comando a continuacion presentado es de la forma: Comando nombre :


f
ormula.
Lista de comandos:
Axiom: Define un axioma en el modulo.
Hypothesis: Define una hipotesis en el modulo.
Variable: Define una variable en el modulo.
Lemma: Define un lema en el modulo.
Theorem: Define un teorema en el modulo.
Corollary: Define un corolario en el modulo.
Example: Define un ejemplo en el modulo.
Compute: Realiza el c
omputo del termino dado.

Instrucciones b
asicas
Proof: Inicio de demostracion.
Qed: Demostraci
on finalizada.
forall x:A: Para todo x de tipo A.
t in H: Aplica el termino t en la etiqueta H.
match x: An
alisis de casos de x.**

s with t: Toma el termino s y lo aplica al termino t.**


end: Finaliza un an
alsis de casos.
** Para el an
alisis de casos de una funcion, match y with van de la mano,
una referencia es la instruccion case x of de Haskell.

Funciones recursivas y no recusrivas


Definition: Uno de sus usos es definir una funcion.
Sint
axis: Definition f (x:Dominio) : Imagen := cuerpo.
Fixpoint: Intrucci
on par adefinir una funcion recursiva.
Sint
axis: Fixpoint f (x:Dominio) : Imagen := cuerpo.***
***El comando Fixpoint usualmente se utiliza con match y with.
Ejemplo de Fixpoint

Fixpoint sucesor (n:Natural) :


match n with
| Cero => suc (Cero)
| suc x => suc (sucesor x)
end.

Natural :=

Donde Natural es el tipo de n


umeros naturales.

T
acticas

Estas t
acticas se utilizan dentro de una demostracion.
simpl: Realiza la mayor simplificacion posible.
compute: Realiza u
nicamente los calculos sobre funciones.
unfold H: Devuelve la expresion que representa H.

Ejemplo de unfold
Tenemos la siguiente definicion:
Definition inyectiva (f : X -> Y) := forall (x y :
-> x = y.
Donde X Y:Set, entonces:
.
.
.

X), f x = f y

H: inyectiva f
Ingresan la t
actica: unfold inyectiva in H.
Devuelve:
.
.
.
H: forall (x y :

X), f x = f y -> x = y

La diferencia entre las t


acticas simpl y compute es que la primera a parte
de realizar los c
alculos, realiza las sustituciones de forma exhaustiva.

Você também pode gostar