15.11.2014 Views

con Isabelle/Isar - Dpto. Ciencias de la Computación e Inteligencia ...

con Isabelle/Isar - Dpto. Ciencias de la Computación e Inteligencia ...

con Isabelle/Isar - Dpto. Ciencias de la Computación e Inteligencia ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

10 Capítulo 1. <strong>Isabelle</strong> como un lenguaje funcional<br />

by simp<br />

lemma ¬ True = (False::bool)<br />

by simp<br />

lemma False −→ True<br />

by simp<br />

lemma ∀ x. x = x<br />

by simp<br />

lemma ∃ x. x = 1<br />

by simp<br />

1.3 Definiciones no recursivas<br />

Definición 1.3.1 (Ejemplo <strong>de</strong> <strong>de</strong>finición no recursiva). La disyunción exclusiva <strong>de</strong> A y B se<br />

verifica si una es verda<strong>de</strong>ra y <strong>la</strong> otra no lo es.<br />

<strong>de</strong>finition xor :: bool ⇒ bool ⇒ bool where<br />

xor A B ≡ (A ∧ ¬ B) ∨ (¬ A ∧ B)<br />

Lema 1.3.2 (Ejemplo <strong>de</strong> <strong>de</strong>mostración <strong>con</strong> <strong>de</strong>finiciones no recursivas). La disyunción exclusiva<br />

<strong>de</strong> dos fórmu<strong>la</strong>s verda<strong>de</strong>ras es falsa.<br />

Demostración: Por simplificación, usando <strong>la</strong> <strong>de</strong>finición <strong>de</strong> <strong>la</strong> disyunción exclusiva.<br />

lemma xor True True = False<br />

by (simp add: xor-<strong>de</strong>f )<br />

□<br />

Nota 1.3.3 (Ejemplo <strong>de</strong> ampliación <strong>de</strong> <strong>la</strong>s reg<strong>la</strong>s <strong>de</strong> simplificación). Se aña<strong>de</strong> <strong>la</strong> <strong>de</strong>finición<br />

<strong>de</strong> <strong>la</strong> disyunción exlusiva al <strong>con</strong>junto <strong>de</strong> reg<strong>la</strong>s <strong>de</strong> simplificación automáticas.<br />

<strong>de</strong>c<strong>la</strong>re xor-<strong>de</strong>f [simp]<br />

1.4 Definiciones locales<br />

Nota 1.4.1 (Variables locales). Se pue<strong>de</strong> asignar valores a variables locales mediante ’let’<br />

y usarlo en <strong>la</strong>s expresiones <strong>de</strong>ntro <strong>de</strong> ’in’.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!