<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://www.glc.us.es/~jalonso/RA2019/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jalonso</id>
	<title>Razonamiento automático (2019-20) - Contribuciones del usuario [es]</title>
	<link rel="self" type="application/atom+xml" href="https://www.glc.us.es/~jalonso/RA2019/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jalonso"/>
	<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php/Especial:Contribuciones/Jalonso"/>
	<updated>2026-07-18T11:15:54Z</updated>
	<subtitle>Contribuciones del usuario</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Sistemas&amp;diff=1078</id>
		<title>Sistemas</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Sistemas&amp;diff=1078"/>
		<updated>2022-02-08T17:31:49Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* Editores de pruebas por secuentes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En esta página se irá escribiendo enlaces a los sistemas utilizados en el curso&lt;br /&gt;
&lt;br /&gt;
== Asistentes de demostración ==&lt;br /&gt;
* [http://www.cl.cam.ac.uk/research/hvg/Isabelle/index.html Isabelle/HOL].&lt;br /&gt;
&lt;br /&gt;
== Editores de pruebas por deducción natural ==&lt;br /&gt;
* [http://www.doc.ic.ac.uk/pandora/newpandora Pandora]&lt;br /&gt;
&lt;br /&gt;
== Editores de pruebas por secuentes ==&lt;br /&gt;
* [http://logitext.mit.edu/main Logitext] (un demostrador interactivo basado en el cálculo de secuentes).&lt;br /&gt;
&lt;br /&gt;
== Formalización ==&lt;br /&gt;
* [http://protosmart.uhu.es/apli2/login APLI2 (APLIcación de Ayuda Para Lógica Informática)].&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Sistemas&amp;diff=1077</id>
		<title>Sistemas</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Sistemas&amp;diff=1077"/>
		<updated>2022-02-08T17:31:35Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* Editores de pruebas por deducción natural */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En esta página se irá escribiendo enlaces a los sistemas utilizados en el curso&lt;br /&gt;
&lt;br /&gt;
== Asistentes de demostración ==&lt;br /&gt;
* [http://www.cl.cam.ac.uk/research/hvg/Isabelle/index.html Isabelle/HOL].&lt;br /&gt;
&lt;br /&gt;
== Editores de pruebas por deducción natural ==&lt;br /&gt;
* [http://www.doc.ic.ac.uk/pandora/newpandora Pandora]&lt;br /&gt;
&lt;br /&gt;
== Editores de pruebas por secuentes ==&lt;br /&gt;
* [http://www.uni-kassel.de/eecs/fachgebiete/fmv/projects/sequent-calculus-trainer.html Sequent Calculus Trainer] (un demostrador para el cálculo de secuentes).&lt;br /&gt;
* [http://logitext.mit.edu/main Logitext] (un demostrador interactivo basado en el cálculo de secuentes).&lt;br /&gt;
&lt;br /&gt;
== Formalización ==&lt;br /&gt;
* [http://protosmart.uhu.es/apli2/login APLI2 (APLIcación de Ayuda Para Lógica Informática)].&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1076</id>
		<title>Documentación</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1076"/>
		<updated>2022-02-08T17:08:41Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* Ofertas de trabajo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En esta página se recogen en enlaces que sirven de documentación al curso de &amp;quot;Razonamiento automático&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Vídeos ==&lt;br /&gt;
&lt;br /&gt;
* Vídeos de deducción natural con Pandora: [http://bit.ly/1tqZIOe ejemplo 1] y [http://bit.ly/1nWAVp4 ejemplo 2].&lt;br /&gt;
&lt;br /&gt;
== Visiones generales de la DAO ==&lt;br /&gt;
&lt;br /&gt;
# J.A. Alonso. [http://goo.gl/NWk7b Razonamiento formalizado: Del sueño a la realidad de las pruebas]. &lt;br /&gt;
# J.M. Aransay y C. Domínguez. [http://gaceta.rsme.es/abrir.php?id=1057 Demostración asistida por ordenador]. &lt;br /&gt;
# A. Asperti. [https://arxiv.org/abs/1701.03602 Automatic verification and interactive theorem proving]. &lt;br /&gt;
# A. Asperti. [http://www.cs.unibo.it/~asperti/SLIDES/itp.pdf A survey on interactive theorem proving]. &lt;br /&gt;
# J. Avigad. [http://bit.ly/1hsA8Ew Formal verification, interactive theorem proving, and automated reasoning].&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/icerm.pdf Interactive theorem proving, automated reasoning, and mathematical computation]. ICERM, 14 de diciembre de 2012.&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/london.pdf Automated reasoning for the working mathematician].&lt;br /&gt;
# J. Avigad, J. Harrison. [https://www.cl.cam.ac.uk/~jrh13/papers/cacm.pdf Formally verified Mathematics]. &lt;br /&gt;
# H. Barendregt y F. Wiedijk. [http://ftp.science.ru.nl/CSI/CompMath.Found/Barendregt-Wiedijk.pdf The challenge of computer mathematics].&lt;br /&gt;
# K. Buzzard. [http://wwwf.imperial.ac.uk/~buzzard/one_off_lectures/msr.pdf The future of mathematics?]&lt;br /&gt;
# C.S. Calude y C. Müller [https://www.cs.auckland.ac.nz/~cristian/crispapers/56250217.pdf Formal proof: reconciling correctness and understanding].&lt;br /&gt;
# R. David. [http://www.lama.univ-savoie.fr/~david/ftp/amphis.pdf Peut-on faire des Mathématiques avec un ordinateur?]&lt;br /&gt;
# R. David y C. Raffalli. [http://www.lama.univ-savoie.fr/~david/ftp/amphi07.pdf Peut-on avoir confiance en l’informatique?]&lt;br /&gt;
# M. Davis. [http://www.cs.nyu.edu/cs/faculty/davism/early.ps The early history of automated deduction].&lt;br /&gt;
# J.P. Delahaye [http://interstices.info/jcms/int_63417/du-reve-a-la-realite-des-preuves Du rêve à la réalité des preuves]. &amp;#039;&amp;#039;Interstices&amp;#039;&amp;#039;, 8 de julio de 2012.&lt;br /&gt;
# J. Germoni [http://images.math.cnrs.fr/Coq-et-caracteres.html Coq et caractères: Preuve formelle du théorème de Feit et Thompson]. &amp;#039;&amp;#039;Images des Mathématiques&amp;#039;&amp;#039;, CNRS, 23 de noviembre de 2012. &lt;br /&gt;
# H. Geuvers [http://www.ias.ac.in/article/fulltext/sadh/034/01/0003-0025 Proof assistants: History, ideas and future]. &amp;#039;&amp;#039;Sadhana&amp;#039;&amp;#039;, Vol. 34-1, pp. 3-25, février 2009.&lt;br /&gt;
# H. Geuvers. [http://www.cs.ru.nl/~herman/ictopen.pdf Can the computer really help us to prove theorems?]&lt;br /&gt;
# G. Gonthier [http://www.ams.org/notices/200811/tx081101382p.pdf The four-color theorem]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1382-1393, 2008.&lt;br /&gt;
# T. Hales. [http://www.ams.org/notices/200811/tx081101370p.pdf Formal proof]. &amp;#039;&amp;#039;Notices of AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) pp. 1370-1380.&lt;br /&gt;
# J. Harrison. [http://www.cl.cam.ac.uk/~jrh13/papers/ab.html A short survey of automated reasoning]. &amp;#039;&amp;#039;Lecture Notes in Computer Science&amp;#039;&amp;#039;, Vol. 4545, pp. 334-349, 2007.&lt;br /&gt;
# J. Harrison. [http://www.ams.org/notices/200811/tx081101395p.pdf Formal proof: Theory and practice]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) p.1395-1406. &lt;br /&gt;
# J. Harrison, J. Urban y F. Wiedijk [http://www.cl.cam.ac.uk/~jrh13/papers/joerg.pdf History of interactive theorem proving].&lt;br /&gt;
# A. Koutsoukou-Argyraki. [https://www.researchgate.net/profile/Angeliki_Koutsoukou-Argyraki/publication/334549483_FORMALISING_MATHEMATICS_-IN_PRAXIS_A_MATHEMATICIAN%27S_VERY_FIRST_EXPERIENCES_WITH_ISABELLEHOL/links/5d30f782299bf1547cc25f63/FORMALISING-MATHEMATICS-IN-PRAXIS-A-MATHEMATICIANS-VERY-FIRST-EXPERIENCES-WITH-ISABELLE-HOL.pdf Formalising Mathematics-in praxis; A mathematician&amp;#039;s very first experiences with Isabelle/HOL]]. &lt;br /&gt;
# G. Kolata. [http://www.nytimes.com/library/cyber/week/1210math.html Computer math proof shows reasoning power]. &amp;#039;&amp;#039;The New York Times&amp;#039;&amp;#039;, 10 de diciembre de 1996.&lt;br /&gt;
# A. Mahboubi [https://jncf2018.lip6.fr/files/lecture-notes/jncf2018-mahboubi.pdf Calcul formel et preuves formelles].&lt;br /&gt;
# A. Mahboubi. [http://bit.ly/2ch3xEa Machine-checked mathematics]. &lt;br /&gt;
# A. Mahboubi. [http://bit.ly/1qLTVBm Un ordinateur pour vérifier les preuves mathématiques]. &lt;br /&gt;
# D. MacKenzie [https://backspaces.net/temp/Spring2010Seminar/18%20unconventional%20essays%20on%20the%20nature%20of%20mathematics.pdf#page=147 Computers and the sociology of mathematical proof].&lt;br /&gt;
# C. Nalon. [https://www.mat.ufrn.br/cade-27/wp-content/uploads/2019/09/2019CN-CADE.pdf Machine-oriented reasoning].&lt;br /&gt;
# J. Narboux. [https://hal.inria.fr/hal-00809448/document Les assistants de preuve, ou comment avoir confiance en ses démonstrations].&lt;br /&gt;
# L.C. Paulson. [https://www.cl.cam.ac.uk/~lp15/papers/Formath/Sophia2017.pdf Proof assistants: from symbolic logic to real mathematics?] &lt;br /&gt;
# L.C. Paulson, T. Nipkow y M. Wenzel. [https://arxiv.org/abs/1907.02836 From LCF to Isabelle/HOL].&lt;br /&gt;
# T. Ringer et als. [https://arxiv.org/abs/2003.06458 QED at large: A survey of engineering of formally verified software].  &lt;br /&gt;
# P. Schnider. [http://bit.ly/1Gxxmx6 An introduction to proof assistants]. &lt;br /&gt;
# J. Schöpf y S. Widauer [http://cl-informatik.uibk.ac.at/teaching/ws17/vs/reports/SWreport.pdf History of interactive theorem proving].&lt;br /&gt;
# F.R. Villatoro. [http://francis.naukas.com/2017/07/29/la-demostracion-matematica-mas-larga La demostración matemática más larga]. &lt;br /&gt;
# F. Wiedijk [http://www.cs.ru.nl/~freek/100/ Formalizing the «top 100» of mathematical theorems].&lt;br /&gt;
# F. Wiedijk [http://www.ams.org/notices/200811/tx081101408p.pdf Formal proof - Getting started]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1408-1414, 2008.&lt;br /&gt;
# F. Wiedijk, [http://mizar.org/trybulec65/8.pdf The QED manifesto revisited]. &amp;#039;&amp;#039;Studies in Logic, Grammar and Rhetoric&amp;#039;&amp;#039;, Vol. 10(23), pp. 121-133, 2007.&lt;br /&gt;
&lt;br /&gt;
== Referencias sobre Isabelle/HOL ==&lt;br /&gt;
# B. Blumson [https://philpapers.org/go.pl?id=BLUIFP&amp;amp;u=https%3A%2F%2Fphilpapers.org%2Farchive%2FBLUIFP.pdf Isabelle for philosophers]. &lt;br /&gt;
# B. Grechuk [https://web.cs.wpi.edu/~dd/resources_isabelle/isabelle_primer_mathematicians.pdf Isabelle primer for mathematicians].&lt;br /&gt;
# T. Nipkow [https://isabelle.in.tum.de/doc/prog-prove.pdf Programming and proving in Isabelle/HOL]. &lt;br /&gt;
# T. Nipkow, M. Wenzel y L.C. Paulson [http://isabelle.in.tum.de/doc/tutorial.pdf A proof assistant for higher-order logic].&lt;br /&gt;
# A. Steen [https://git.imp.fu-berlin.de/leo-iii/compmeta_pub/raw/master/exercises/resources/Isabelle_ND_cheatsheet.pdf Mapping of ND proof templates to Isabelle formalization].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/dist/library/HOL/HOL/document.pdf Isabelle/HOL — Higher-Order Logic]. &lt;br /&gt;
# M. Wenzel [http://isabelle.in.tum.de/doc/isar-ref.pdf The Isabelle/Isar Reference Manual]. &lt;br /&gt;
# M. Wenzel [http://typessummerschool07.cs.unibo.it/courses/wenzel-isar-quickref.pdf The Isabelle/Isar quick reference].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/documentation.html Tutorials and manuals for Isabelle].&lt;br /&gt;
&lt;br /&gt;
== Lecturas complementarias ==&lt;br /&gt;
=== Programación funcional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/i1m-19/temas/2019-20-I1M-temas-PF.pdf Temas de &amp;quot;Programación funcional&amp;quot;]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2019.&lt;br /&gt;
# J.A. Alonso y M.J. Hidalgo [http://www.cs.us.es/~jalonso/publicaciones/Piensa_en_Haskell.pdf Piensa en Haskell (Ejercicios de programación funcional con Haskell)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2012.&lt;br /&gt;
# G. Hutton [http://bit.ly/2pQofC2 Programming in Haskell]. Cambridge University Press, 2007. &lt;br /&gt;
# M. Lipovača [http://aprendehaskell.es ¡Aprende Haskell por el bien de todos!].&lt;br /&gt;
# M. Lipovaca y J. Brock [https://mybinder.org/v2/gh/jamesdbrock/learn-you-a-haskell-notebook/master?urlpath=lab/tree/learn_you_a_haskell/00-preface.ipynb Learn you a Haskell for great good!]&lt;br /&gt;
# T. Nipkow [https://www21.in.tum.de/teaching/fpv/WS1920/slides.pdf Functional programmingand verification]. TUM, 2019.&lt;br /&gt;
&lt;br /&gt;
=== Lógica computacional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/li-15/temas/temas-LI-2015-16.pdf Temas de &amp;quot;Lógica informática&amp;quot; (2015-16)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2015.&lt;br /&gt;
# K. Broda, S. Eisenbach, H. Khoshnevisan y S. Vickers [https://www.doc.ic.ac.uk/~susan/firstyearbook.pdf Reasoned programming]. Imperial College, 1994.&lt;br /&gt;
# M. Huth y M. Ryan [http://bit.ly/2e8dFEm Logic in computer science: Modelling and reasoning about systems]. Cambridge University Press, 2004. (Incluye el [http://www.cs.bham.ac.uk/research/lics/tutor/index.html tutor en la Red]).&lt;br /&gt;
&lt;br /&gt;
== Cursos relacionados ==&lt;br /&gt;
=== Cursos con Isabelle/HOL ===&lt;br /&gt;
# Clemens Ballarin. [http://cl-informatik.uibk.ac.at/teaching/ss08/atp/introduction.php Automatic Deduction]. (Univ de Innsbruck, 2008).&lt;br /&gt;
# Clemens Ballarin y Gerwin Klein [http://isabelle.in.tum.de/coursematerial/IJCAR04 Introduction to the Isabelle Proof Assistant]. (en el IJCAR-2004).&lt;br /&gt;
# Clemens Ballarin y Tjark Weber. [http://cl-informatik.uibk.ac.at/teaching/ws06/atp/introduction.php Automated Theorem Proving in Isabelle/HOL]. (Univ. de Innsbruck, 2006-07).&lt;br /&gt;
# A.D. Brucker, D. Basin, J.G. Smaus y B. Wolff. [http://archiv.infsec.ethz.ch/education/permanent/csmr.html Computer-supported Modeling and Reasoning]. (ETH Zurich, 2011).&lt;br /&gt;
# Mads Dam. [http://www.csc.kth.se/utbildning/kth/kurser/DD2453/aform07/ Advanced formal methods]. (KTH Royal Institute of Technology, 2007).&lt;br /&gt;
# Jacques Fleuriot. [http://www.inf.ed.ac.uk/teaching/courses/ar Automated reasoning]. (Univ. de Edimburgo, 2016-17).&lt;br /&gt;
# Thomas Genet [http://www.irisa.fr/celtique/genet/ACF Software formal analysis and design]. (Univ. de Rennes)&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~kleing/teaching/thprv-04 Theorem Proving - Principles, Techniques, Applications]. (NICTA, 2004).&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~cs4161/index.html Advanced Topics in Software Verification]. (NICTA, 2012).&lt;br /&gt;
# Joao Marcos. [http://www.dimap.ufrn.br/~jmarcos/courses/LC/Ementa.htm Lógica computacional: Demonstração assistida e semi-automática de teoremas].(UFRN, 2000).&lt;br /&gt;
# Tobias Nipkow. [http://www21.in.tum.de/teaching/semantik/WS1617/ Semantics of programming languages]. (Univ. de Munich, 2012-13).&lt;br /&gt;
# Tobias Nipkow. [http://isabelle.in.tum.de/coursematerial/PSV2009-1 Theorem Proving with Isabelle/HOL An Intensive Course]. &lt;br /&gt;
# Larry Paulson. [http://www.cl.cam.ac.uk/teaching/0910/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2009-10).&lt;br /&gt;
# Arnd Poetzsch-Heffter. [https://softech.informatik.uni-kl.de/homepage/de/teaching/SVHOL14/ Specification and Verification with Higher-Order Logic]. &lt;br /&gt;
# Jan-Georg Smaus. [http://www.informatik.uni-freiburg.de/~ki/teaching/ws0910/csmr/lecture.html Computer-supported modeling and reasoning]. (Univ. de Feiburgo, 2009).&lt;br /&gt;
# Christian Sternagel [http://cl-informatik.uibk.ac.at/teaching/ss11/eve/content.php Experiments in Verification – Introduction to Isabelle/HOL]. (Univ. de Innsbruck, 2011-12).&lt;br /&gt;
# Tjark Weber. [http://www.cl.cam.ac.uk/teaching/1011/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2010-11).&lt;br /&gt;
&lt;br /&gt;
=== Cursos con Coq ===&lt;br /&gt;
# Yves Bertot, Pierre Casteran, Benjamin Gregoire, Pierre Letouzey y Assia Mahboubi [http://www.di.ens.fr/~zappa/teaching/coq/ecole11 Modelling and verifying algorithms in Coq: an introduction]. (INRIA Paris-Rocquencourt, 14-18 noviembre 2011).&lt;br /&gt;
# Adam Chlipala [http://stellar.mit.edu/S/course/6/fa11/6.892/ Interactive computer theorem proving]. (MIT, 2012-13).&lt;br /&gt;
# Adam Chlipala y Armando Solar Lezama [https://stellar.mit.edu/S/course/6/fa13/6.820/index.html Foundations of program analysis]. (MIT, 2013-14).&lt;br /&gt;
# M. Greenberg [http://www.cs.pomona.edu/~michael/courses/csci054s18/ Discrete mathematics and functional programming]. &lt;br /&gt;
# Benjamin C. Pierce et als. [https://softwarefoundations.cis.upenn.edu/lf-current/index.html Software foundations (Vol. 1: Logical foundations)].&lt;br /&gt;
# Benjamin C. Pierce [https://www.seas.upenn.edu/~cis500/current/index.html Software foundations] (Univ. de Pensilvania, 2018).&lt;br /&gt;
# G. Smolka [https://courses.ps.uni-saarland.de/icl_18/2/Resources Introduction to computational logic] (Univ. de Sarre, 2018).&lt;br /&gt;
&lt;br /&gt;
=== Otros cursos ===&lt;br /&gt;
# José A. Alonso [http://www.cs.us.es/~jalonso/cursos/li-12/ Lógica informática] (Univ. de Sevilla, 2012-13).&lt;br /&gt;
# Thorsten Altenkirch y Peter Morris [http://www.cs.nott.ac.uk/~txa/g52ifr Introduction to formal reasoning] (Univ. de Nottingham, 2010-11).&lt;br /&gt;
# J. Blanchette y J. Höltz [https://lean-forward.github.io/logical-verification/2018 Logical verification]. (Vrije Universiteit Amsterdam, 2018-19). &lt;br /&gt;
# Pierre Castéran [http://www.labri.fr/perso/casteran/FM/Logique/index.html Logic (Master In Verification)] (Univ. de Burdeos, 2011-12).&lt;br /&gt;
# Robby Findler [http://www.eecs.northwestern.edu/~robby/courses/395-495-2013-fall Certified programming with dependent types]. (Northwestern, 2013-14).&lt;br /&gt;
# Carlos Luna y Gustavo Betarte. [https://eva.fing.edu.uy/course/view.php?id=363 Construcción formal de programas en teoría de tipos]. (Univ. de la República, Uruguay, 2013-14).&lt;br /&gt;
# Ian Hodkinson [http://www.doc.ic.ac.uk/~imh/teaching/140_logic/logic.html Logic] (Imperial College, Londres, 2010-11).&lt;br /&gt;
# Peter Lucas [http://www.cs.ru.nl/~peterl/teaching/KeR/ Knowledge Representation and Reasoning] (Radboud University # egen, 2011-12).&lt;br /&gt;
# Larry Paulson [http://www.cl.cam.ac.uk/Teaching/current/LogicProof/ Logic and Proof] (Univ. de Cambridge, 2011-12).&lt;br /&gt;
&lt;br /&gt;
== Bibliotecas de ejemplos de verificación ==&lt;br /&gt;
# [http://afp.sourceforge.net Archive of Formal Proofs].&lt;br /&gt;
# [http://www.cs.ru.nl/~freek/100 Formalizing 100 Theorems].&lt;br /&gt;
# [http://toccata.lri.fr/gallery Gallery of verified programs].&lt;br /&gt;
# [http://www.tptp.org/ The TPTP Problem Library for Automated Theorem Proving].&lt;br /&gt;
&lt;br /&gt;
== Artículos recientes ==&lt;br /&gt;
&lt;br /&gt;
Hay dos listas de artículos recientes:&lt;br /&gt;
&lt;br /&gt;
* en [https://twitter.com/search?f=tweets&amp;amp;q=%23ITP%20OR%20%23IsabelleHOL%20OR%20%23Coq%20OR%20%23Agda%20OR%20%23LeanProver%20OR%20%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd Twitter] que contiene enlaces a los artículos de razonamiento automático y demostración asistida por ordenador que se están publicando y&lt;br /&gt;
* en [https://www.glc.us.es/~jalonso/vestigium/category/resena/ Vestigium] que contiene una reseña de los más destacados.&lt;br /&gt;
&lt;br /&gt;
== Ofertas de trabajo ==&lt;br /&gt;
&lt;br /&gt;
En [https://github.com/jaalonso/Trabajos-MULCIA/blob/master/README.org GitHub] se encuentra una recopilaciónn las ofertas de trabajo de interés para los estudiantes del Máster Universitario en Lógica, Computación e Inteligencia Artificial de la Universidad de Sevilla.&lt;br /&gt;
&lt;br /&gt;
Están en orden cronológico inverso por la fecha de su publicación en [https://twitter.com/search?l=&amp;amp;q=%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd&amp;amp;lang=es Twitter].&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1075</id>
		<title>Documentación</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1075"/>
		<updated>2022-02-08T17:08:08Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* Ofertas de trabajo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En esta página se recogen en enlaces que sirven de documentación al curso de &amp;quot;Razonamiento automático&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Vídeos ==&lt;br /&gt;
&lt;br /&gt;
* Vídeos de deducción natural con Pandora: [http://bit.ly/1tqZIOe ejemplo 1] y [http://bit.ly/1nWAVp4 ejemplo 2].&lt;br /&gt;
&lt;br /&gt;
== Visiones generales de la DAO ==&lt;br /&gt;
&lt;br /&gt;
# J.A. Alonso. [http://goo.gl/NWk7b Razonamiento formalizado: Del sueño a la realidad de las pruebas]. &lt;br /&gt;
# J.M. Aransay y C. Domínguez. [http://gaceta.rsme.es/abrir.php?id=1057 Demostración asistida por ordenador]. &lt;br /&gt;
# A. Asperti. [https://arxiv.org/abs/1701.03602 Automatic verification and interactive theorem proving]. &lt;br /&gt;
# A. Asperti. [http://www.cs.unibo.it/~asperti/SLIDES/itp.pdf A survey on interactive theorem proving]. &lt;br /&gt;
# J. Avigad. [http://bit.ly/1hsA8Ew Formal verification, interactive theorem proving, and automated reasoning].&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/icerm.pdf Interactive theorem proving, automated reasoning, and mathematical computation]. ICERM, 14 de diciembre de 2012.&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/london.pdf Automated reasoning for the working mathematician].&lt;br /&gt;
# J. Avigad, J. Harrison. [https://www.cl.cam.ac.uk/~jrh13/papers/cacm.pdf Formally verified Mathematics]. &lt;br /&gt;
# H. Barendregt y F. Wiedijk. [http://ftp.science.ru.nl/CSI/CompMath.Found/Barendregt-Wiedijk.pdf The challenge of computer mathematics].&lt;br /&gt;
# K. Buzzard. [http://wwwf.imperial.ac.uk/~buzzard/one_off_lectures/msr.pdf The future of mathematics?]&lt;br /&gt;
# C.S. Calude y C. Müller [https://www.cs.auckland.ac.nz/~cristian/crispapers/56250217.pdf Formal proof: reconciling correctness and understanding].&lt;br /&gt;
# R. David. [http://www.lama.univ-savoie.fr/~david/ftp/amphis.pdf Peut-on faire des Mathématiques avec un ordinateur?]&lt;br /&gt;
# R. David y C. Raffalli. [http://www.lama.univ-savoie.fr/~david/ftp/amphi07.pdf Peut-on avoir confiance en l’informatique?]&lt;br /&gt;
# M. Davis. [http://www.cs.nyu.edu/cs/faculty/davism/early.ps The early history of automated deduction].&lt;br /&gt;
# J.P. Delahaye [http://interstices.info/jcms/int_63417/du-reve-a-la-realite-des-preuves Du rêve à la réalité des preuves]. &amp;#039;&amp;#039;Interstices&amp;#039;&amp;#039;, 8 de julio de 2012.&lt;br /&gt;
# J. Germoni [http://images.math.cnrs.fr/Coq-et-caracteres.html Coq et caractères: Preuve formelle du théorème de Feit et Thompson]. &amp;#039;&amp;#039;Images des Mathématiques&amp;#039;&amp;#039;, CNRS, 23 de noviembre de 2012. &lt;br /&gt;
# H. Geuvers [http://www.ias.ac.in/article/fulltext/sadh/034/01/0003-0025 Proof assistants: History, ideas and future]. &amp;#039;&amp;#039;Sadhana&amp;#039;&amp;#039;, Vol. 34-1, pp. 3-25, février 2009.&lt;br /&gt;
# H. Geuvers. [http://www.cs.ru.nl/~herman/ictopen.pdf Can the computer really help us to prove theorems?]&lt;br /&gt;
# G. Gonthier [http://www.ams.org/notices/200811/tx081101382p.pdf The four-color theorem]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1382-1393, 2008.&lt;br /&gt;
# T. Hales. [http://www.ams.org/notices/200811/tx081101370p.pdf Formal proof]. &amp;#039;&amp;#039;Notices of AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) pp. 1370-1380.&lt;br /&gt;
# J. Harrison. [http://www.cl.cam.ac.uk/~jrh13/papers/ab.html A short survey of automated reasoning]. &amp;#039;&amp;#039;Lecture Notes in Computer Science&amp;#039;&amp;#039;, Vol. 4545, pp. 334-349, 2007.&lt;br /&gt;
# J. Harrison. [http://www.ams.org/notices/200811/tx081101395p.pdf Formal proof: Theory and practice]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) p.1395-1406. &lt;br /&gt;
# J. Harrison, J. Urban y F. Wiedijk [http://www.cl.cam.ac.uk/~jrh13/papers/joerg.pdf History of interactive theorem proving].&lt;br /&gt;
# A. Koutsoukou-Argyraki. [https://www.researchgate.net/profile/Angeliki_Koutsoukou-Argyraki/publication/334549483_FORMALISING_MATHEMATICS_-IN_PRAXIS_A_MATHEMATICIAN%27S_VERY_FIRST_EXPERIENCES_WITH_ISABELLEHOL/links/5d30f782299bf1547cc25f63/FORMALISING-MATHEMATICS-IN-PRAXIS-A-MATHEMATICIANS-VERY-FIRST-EXPERIENCES-WITH-ISABELLE-HOL.pdf Formalising Mathematics-in praxis; A mathematician&amp;#039;s very first experiences with Isabelle/HOL]]. &lt;br /&gt;
# G. Kolata. [http://www.nytimes.com/library/cyber/week/1210math.html Computer math proof shows reasoning power]. &amp;#039;&amp;#039;The New York Times&amp;#039;&amp;#039;, 10 de diciembre de 1996.&lt;br /&gt;
# A. Mahboubi [https://jncf2018.lip6.fr/files/lecture-notes/jncf2018-mahboubi.pdf Calcul formel et preuves formelles].&lt;br /&gt;
# A. Mahboubi. [http://bit.ly/2ch3xEa Machine-checked mathematics]. &lt;br /&gt;
# A. Mahboubi. [http://bit.ly/1qLTVBm Un ordinateur pour vérifier les preuves mathématiques]. &lt;br /&gt;
# D. MacKenzie [https://backspaces.net/temp/Spring2010Seminar/18%20unconventional%20essays%20on%20the%20nature%20of%20mathematics.pdf#page=147 Computers and the sociology of mathematical proof].&lt;br /&gt;
# C. Nalon. [https://www.mat.ufrn.br/cade-27/wp-content/uploads/2019/09/2019CN-CADE.pdf Machine-oriented reasoning].&lt;br /&gt;
# J. Narboux. [https://hal.inria.fr/hal-00809448/document Les assistants de preuve, ou comment avoir confiance en ses démonstrations].&lt;br /&gt;
# L.C. Paulson. [https://www.cl.cam.ac.uk/~lp15/papers/Formath/Sophia2017.pdf Proof assistants: from symbolic logic to real mathematics?] &lt;br /&gt;
# L.C. Paulson, T. Nipkow y M. Wenzel. [https://arxiv.org/abs/1907.02836 From LCF to Isabelle/HOL].&lt;br /&gt;
# T. Ringer et als. [https://arxiv.org/abs/2003.06458 QED at large: A survey of engineering of formally verified software].  &lt;br /&gt;
# P. Schnider. [http://bit.ly/1Gxxmx6 An introduction to proof assistants]. &lt;br /&gt;
# J. Schöpf y S. Widauer [http://cl-informatik.uibk.ac.at/teaching/ws17/vs/reports/SWreport.pdf History of interactive theorem proving].&lt;br /&gt;
# F.R. Villatoro. [http://francis.naukas.com/2017/07/29/la-demostracion-matematica-mas-larga La demostración matemática más larga]. &lt;br /&gt;
# F. Wiedijk [http://www.cs.ru.nl/~freek/100/ Formalizing the «top 100» of mathematical theorems].&lt;br /&gt;
# F. Wiedijk [http://www.ams.org/notices/200811/tx081101408p.pdf Formal proof - Getting started]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1408-1414, 2008.&lt;br /&gt;
# F. Wiedijk, [http://mizar.org/trybulec65/8.pdf The QED manifesto revisited]. &amp;#039;&amp;#039;Studies in Logic, Grammar and Rhetoric&amp;#039;&amp;#039;, Vol. 10(23), pp. 121-133, 2007.&lt;br /&gt;
&lt;br /&gt;
== Referencias sobre Isabelle/HOL ==&lt;br /&gt;
# B. Blumson [https://philpapers.org/go.pl?id=BLUIFP&amp;amp;u=https%3A%2F%2Fphilpapers.org%2Farchive%2FBLUIFP.pdf Isabelle for philosophers]. &lt;br /&gt;
# B. Grechuk [https://web.cs.wpi.edu/~dd/resources_isabelle/isabelle_primer_mathematicians.pdf Isabelle primer for mathematicians].&lt;br /&gt;
# T. Nipkow [https://isabelle.in.tum.de/doc/prog-prove.pdf Programming and proving in Isabelle/HOL]. &lt;br /&gt;
# T. Nipkow, M. Wenzel y L.C. Paulson [http://isabelle.in.tum.de/doc/tutorial.pdf A proof assistant for higher-order logic].&lt;br /&gt;
# A. Steen [https://git.imp.fu-berlin.de/leo-iii/compmeta_pub/raw/master/exercises/resources/Isabelle_ND_cheatsheet.pdf Mapping of ND proof templates to Isabelle formalization].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/dist/library/HOL/HOL/document.pdf Isabelle/HOL — Higher-Order Logic]. &lt;br /&gt;
# M. Wenzel [http://isabelle.in.tum.de/doc/isar-ref.pdf The Isabelle/Isar Reference Manual]. &lt;br /&gt;
# M. Wenzel [http://typessummerschool07.cs.unibo.it/courses/wenzel-isar-quickref.pdf The Isabelle/Isar quick reference].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/documentation.html Tutorials and manuals for Isabelle].&lt;br /&gt;
&lt;br /&gt;
== Lecturas complementarias ==&lt;br /&gt;
=== Programación funcional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/i1m-19/temas/2019-20-I1M-temas-PF.pdf Temas de &amp;quot;Programación funcional&amp;quot;]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2019.&lt;br /&gt;
# J.A. Alonso y M.J. Hidalgo [http://www.cs.us.es/~jalonso/publicaciones/Piensa_en_Haskell.pdf Piensa en Haskell (Ejercicios de programación funcional con Haskell)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2012.&lt;br /&gt;
# G. Hutton [http://bit.ly/2pQofC2 Programming in Haskell]. Cambridge University Press, 2007. &lt;br /&gt;
# M. Lipovača [http://aprendehaskell.es ¡Aprende Haskell por el bien de todos!].&lt;br /&gt;
# M. Lipovaca y J. Brock [https://mybinder.org/v2/gh/jamesdbrock/learn-you-a-haskell-notebook/master?urlpath=lab/tree/learn_you_a_haskell/00-preface.ipynb Learn you a Haskell for great good!]&lt;br /&gt;
# T. Nipkow [https://www21.in.tum.de/teaching/fpv/WS1920/slides.pdf Functional programmingand verification]. TUM, 2019.&lt;br /&gt;
&lt;br /&gt;
=== Lógica computacional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/li-15/temas/temas-LI-2015-16.pdf Temas de &amp;quot;Lógica informática&amp;quot; (2015-16)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2015.&lt;br /&gt;
# K. Broda, S. Eisenbach, H. Khoshnevisan y S. Vickers [https://www.doc.ic.ac.uk/~susan/firstyearbook.pdf Reasoned programming]. Imperial College, 1994.&lt;br /&gt;
# M. Huth y M. Ryan [http://bit.ly/2e8dFEm Logic in computer science: Modelling and reasoning about systems]. Cambridge University Press, 2004. (Incluye el [http://www.cs.bham.ac.uk/research/lics/tutor/index.html tutor en la Red]).&lt;br /&gt;
&lt;br /&gt;
== Cursos relacionados ==&lt;br /&gt;
=== Cursos con Isabelle/HOL ===&lt;br /&gt;
# Clemens Ballarin. [http://cl-informatik.uibk.ac.at/teaching/ss08/atp/introduction.php Automatic Deduction]. (Univ de Innsbruck, 2008).&lt;br /&gt;
# Clemens Ballarin y Gerwin Klein [http://isabelle.in.tum.de/coursematerial/IJCAR04 Introduction to the Isabelle Proof Assistant]. (en el IJCAR-2004).&lt;br /&gt;
# Clemens Ballarin y Tjark Weber. [http://cl-informatik.uibk.ac.at/teaching/ws06/atp/introduction.php Automated Theorem Proving in Isabelle/HOL]. (Univ. de Innsbruck, 2006-07).&lt;br /&gt;
# A.D. Brucker, D. Basin, J.G. Smaus y B. Wolff. [http://archiv.infsec.ethz.ch/education/permanent/csmr.html Computer-supported Modeling and Reasoning]. (ETH Zurich, 2011).&lt;br /&gt;
# Mads Dam. [http://www.csc.kth.se/utbildning/kth/kurser/DD2453/aform07/ Advanced formal methods]. (KTH Royal Institute of Technology, 2007).&lt;br /&gt;
# Jacques Fleuriot. [http://www.inf.ed.ac.uk/teaching/courses/ar Automated reasoning]. (Univ. de Edimburgo, 2016-17).&lt;br /&gt;
# Thomas Genet [http://www.irisa.fr/celtique/genet/ACF Software formal analysis and design]. (Univ. de Rennes)&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~kleing/teaching/thprv-04 Theorem Proving - Principles, Techniques, Applications]. (NICTA, 2004).&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~cs4161/index.html Advanced Topics in Software Verification]. (NICTA, 2012).&lt;br /&gt;
# Joao Marcos. [http://www.dimap.ufrn.br/~jmarcos/courses/LC/Ementa.htm Lógica computacional: Demonstração assistida e semi-automática de teoremas].(UFRN, 2000).&lt;br /&gt;
# Tobias Nipkow. [http://www21.in.tum.de/teaching/semantik/WS1617/ Semantics of programming languages]. (Univ. de Munich, 2012-13).&lt;br /&gt;
# Tobias Nipkow. [http://isabelle.in.tum.de/coursematerial/PSV2009-1 Theorem Proving with Isabelle/HOL An Intensive Course]. &lt;br /&gt;
# Larry Paulson. [http://www.cl.cam.ac.uk/teaching/0910/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2009-10).&lt;br /&gt;
# Arnd Poetzsch-Heffter. [https://softech.informatik.uni-kl.de/homepage/de/teaching/SVHOL14/ Specification and Verification with Higher-Order Logic]. &lt;br /&gt;
# Jan-Georg Smaus. [http://www.informatik.uni-freiburg.de/~ki/teaching/ws0910/csmr/lecture.html Computer-supported modeling and reasoning]. (Univ. de Feiburgo, 2009).&lt;br /&gt;
# Christian Sternagel [http://cl-informatik.uibk.ac.at/teaching/ss11/eve/content.php Experiments in Verification – Introduction to Isabelle/HOL]. (Univ. de Innsbruck, 2011-12).&lt;br /&gt;
# Tjark Weber. [http://www.cl.cam.ac.uk/teaching/1011/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2010-11).&lt;br /&gt;
&lt;br /&gt;
=== Cursos con Coq ===&lt;br /&gt;
# Yves Bertot, Pierre Casteran, Benjamin Gregoire, Pierre Letouzey y Assia Mahboubi [http://www.di.ens.fr/~zappa/teaching/coq/ecole11 Modelling and verifying algorithms in Coq: an introduction]. (INRIA Paris-Rocquencourt, 14-18 noviembre 2011).&lt;br /&gt;
# Adam Chlipala [http://stellar.mit.edu/S/course/6/fa11/6.892/ Interactive computer theorem proving]. (MIT, 2012-13).&lt;br /&gt;
# Adam Chlipala y Armando Solar Lezama [https://stellar.mit.edu/S/course/6/fa13/6.820/index.html Foundations of program analysis]. (MIT, 2013-14).&lt;br /&gt;
# M. Greenberg [http://www.cs.pomona.edu/~michael/courses/csci054s18/ Discrete mathematics and functional programming]. &lt;br /&gt;
# Benjamin C. Pierce et als. [https://softwarefoundations.cis.upenn.edu/lf-current/index.html Software foundations (Vol. 1: Logical foundations)].&lt;br /&gt;
# Benjamin C. Pierce [https://www.seas.upenn.edu/~cis500/current/index.html Software foundations] (Univ. de Pensilvania, 2018).&lt;br /&gt;
# G. Smolka [https://courses.ps.uni-saarland.de/icl_18/2/Resources Introduction to computational logic] (Univ. de Sarre, 2018).&lt;br /&gt;
&lt;br /&gt;
=== Otros cursos ===&lt;br /&gt;
# José A. Alonso [http://www.cs.us.es/~jalonso/cursos/li-12/ Lógica informática] (Univ. de Sevilla, 2012-13).&lt;br /&gt;
# Thorsten Altenkirch y Peter Morris [http://www.cs.nott.ac.uk/~txa/g52ifr Introduction to formal reasoning] (Univ. de Nottingham, 2010-11).&lt;br /&gt;
# J. Blanchette y J. Höltz [https://lean-forward.github.io/logical-verification/2018 Logical verification]. (Vrije Universiteit Amsterdam, 2018-19). &lt;br /&gt;
# Pierre Castéran [http://www.labri.fr/perso/casteran/FM/Logique/index.html Logic (Master In Verification)] (Univ. de Burdeos, 2011-12).&lt;br /&gt;
# Robby Findler [http://www.eecs.northwestern.edu/~robby/courses/395-495-2013-fall Certified programming with dependent types]. (Northwestern, 2013-14).&lt;br /&gt;
# Carlos Luna y Gustavo Betarte. [https://eva.fing.edu.uy/course/view.php?id=363 Construcción formal de programas en teoría de tipos]. (Univ. de la República, Uruguay, 2013-14).&lt;br /&gt;
# Ian Hodkinson [http://www.doc.ic.ac.uk/~imh/teaching/140_logic/logic.html Logic] (Imperial College, Londres, 2010-11).&lt;br /&gt;
# Peter Lucas [http://www.cs.ru.nl/~peterl/teaching/KeR/ Knowledge Representation and Reasoning] (Radboud University # egen, 2011-12).&lt;br /&gt;
# Larry Paulson [http://www.cl.cam.ac.uk/Teaching/current/LogicProof/ Logic and Proof] (Univ. de Cambridge, 2011-12).&lt;br /&gt;
&lt;br /&gt;
== Bibliotecas de ejemplos de verificación ==&lt;br /&gt;
# [http://afp.sourceforge.net Archive of Formal Proofs].&lt;br /&gt;
# [http://www.cs.ru.nl/~freek/100 Formalizing 100 Theorems].&lt;br /&gt;
# [http://toccata.lri.fr/gallery Gallery of verified programs].&lt;br /&gt;
# [http://www.tptp.org/ The TPTP Problem Library for Automated Theorem Proving].&lt;br /&gt;
&lt;br /&gt;
== Artículos recientes ==&lt;br /&gt;
&lt;br /&gt;
Hay dos listas de artículos recientes:&lt;br /&gt;
&lt;br /&gt;
* en [https://twitter.com/search?f=tweets&amp;amp;q=%23ITP%20OR%20%23IsabelleHOL%20OR%20%23Coq%20OR%20%23Agda%20OR%20%23LeanProver%20OR%20%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd Twitter] que contiene enlaces a los artículos de razonamiento automático y demostración asistida por ordenador que se están publicando y&lt;br /&gt;
* en [https://www.glc.us.es/~jalonso/vestigium/category/resena/ Vestigium] que contiene una reseña de los más destacados.&lt;br /&gt;
&lt;br /&gt;
== Ofertas de trabajo ==&lt;br /&gt;
&lt;br /&gt;
En [https://github.com/jaalonso/Trabajos-MULCIA GitHub] se encuentra una recopilaciónn las ofertas de trabajo de interés para los estudiantes del Máster Universitario en Lógica, Computación e Inteligencia Artificial de la Universidad de Sevilla.&lt;br /&gt;
&lt;br /&gt;
Están en orden cronológico inverso por la fecha de su publicación en [https://twitter.com/search?l=&amp;amp;q=%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd&amp;amp;lang=es Twitter].&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1074</id>
		<title>Documentación</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1074"/>
		<updated>2022-02-08T17:07:37Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* Ofertas de trabajo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En esta página se recogen en enlaces que sirven de documentación al curso de &amp;quot;Razonamiento automático&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Vídeos ==&lt;br /&gt;
&lt;br /&gt;
* Vídeos de deducción natural con Pandora: [http://bit.ly/1tqZIOe ejemplo 1] y [http://bit.ly/1nWAVp4 ejemplo 2].&lt;br /&gt;
&lt;br /&gt;
== Visiones generales de la DAO ==&lt;br /&gt;
&lt;br /&gt;
# J.A. Alonso. [http://goo.gl/NWk7b Razonamiento formalizado: Del sueño a la realidad de las pruebas]. &lt;br /&gt;
# J.M. Aransay y C. Domínguez. [http://gaceta.rsme.es/abrir.php?id=1057 Demostración asistida por ordenador]. &lt;br /&gt;
# A. Asperti. [https://arxiv.org/abs/1701.03602 Automatic verification and interactive theorem proving]. &lt;br /&gt;
# A. Asperti. [http://www.cs.unibo.it/~asperti/SLIDES/itp.pdf A survey on interactive theorem proving]. &lt;br /&gt;
# J. Avigad. [http://bit.ly/1hsA8Ew Formal verification, interactive theorem proving, and automated reasoning].&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/icerm.pdf Interactive theorem proving, automated reasoning, and mathematical computation]. ICERM, 14 de diciembre de 2012.&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/london.pdf Automated reasoning for the working mathematician].&lt;br /&gt;
# J. Avigad, J. Harrison. [https://www.cl.cam.ac.uk/~jrh13/papers/cacm.pdf Formally verified Mathematics]. &lt;br /&gt;
# H. Barendregt y F. Wiedijk. [http://ftp.science.ru.nl/CSI/CompMath.Found/Barendregt-Wiedijk.pdf The challenge of computer mathematics].&lt;br /&gt;
# K. Buzzard. [http://wwwf.imperial.ac.uk/~buzzard/one_off_lectures/msr.pdf The future of mathematics?]&lt;br /&gt;
# C.S. Calude y C. Müller [https://www.cs.auckland.ac.nz/~cristian/crispapers/56250217.pdf Formal proof: reconciling correctness and understanding].&lt;br /&gt;
# R. David. [http://www.lama.univ-savoie.fr/~david/ftp/amphis.pdf Peut-on faire des Mathématiques avec un ordinateur?]&lt;br /&gt;
# R. David y C. Raffalli. [http://www.lama.univ-savoie.fr/~david/ftp/amphi07.pdf Peut-on avoir confiance en l’informatique?]&lt;br /&gt;
# M. Davis. [http://www.cs.nyu.edu/cs/faculty/davism/early.ps The early history of automated deduction].&lt;br /&gt;
# J.P. Delahaye [http://interstices.info/jcms/int_63417/du-reve-a-la-realite-des-preuves Du rêve à la réalité des preuves]. &amp;#039;&amp;#039;Interstices&amp;#039;&amp;#039;, 8 de julio de 2012.&lt;br /&gt;
# J. Germoni [http://images.math.cnrs.fr/Coq-et-caracteres.html Coq et caractères: Preuve formelle du théorème de Feit et Thompson]. &amp;#039;&amp;#039;Images des Mathématiques&amp;#039;&amp;#039;, CNRS, 23 de noviembre de 2012. &lt;br /&gt;
# H. Geuvers [http://www.ias.ac.in/article/fulltext/sadh/034/01/0003-0025 Proof assistants: History, ideas and future]. &amp;#039;&amp;#039;Sadhana&amp;#039;&amp;#039;, Vol. 34-1, pp. 3-25, février 2009.&lt;br /&gt;
# H. Geuvers. [http://www.cs.ru.nl/~herman/ictopen.pdf Can the computer really help us to prove theorems?]&lt;br /&gt;
# G. Gonthier [http://www.ams.org/notices/200811/tx081101382p.pdf The four-color theorem]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1382-1393, 2008.&lt;br /&gt;
# T. Hales. [http://www.ams.org/notices/200811/tx081101370p.pdf Formal proof]. &amp;#039;&amp;#039;Notices of AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) pp. 1370-1380.&lt;br /&gt;
# J. Harrison. [http://www.cl.cam.ac.uk/~jrh13/papers/ab.html A short survey of automated reasoning]. &amp;#039;&amp;#039;Lecture Notes in Computer Science&amp;#039;&amp;#039;, Vol. 4545, pp. 334-349, 2007.&lt;br /&gt;
# J. Harrison. [http://www.ams.org/notices/200811/tx081101395p.pdf Formal proof: Theory and practice]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) p.1395-1406. &lt;br /&gt;
# J. Harrison, J. Urban y F. Wiedijk [http://www.cl.cam.ac.uk/~jrh13/papers/joerg.pdf History of interactive theorem proving].&lt;br /&gt;
# A. Koutsoukou-Argyraki. [https://www.researchgate.net/profile/Angeliki_Koutsoukou-Argyraki/publication/334549483_FORMALISING_MATHEMATICS_-IN_PRAXIS_A_MATHEMATICIAN%27S_VERY_FIRST_EXPERIENCES_WITH_ISABELLEHOL/links/5d30f782299bf1547cc25f63/FORMALISING-MATHEMATICS-IN-PRAXIS-A-MATHEMATICIANS-VERY-FIRST-EXPERIENCES-WITH-ISABELLE-HOL.pdf Formalising Mathematics-in praxis; A mathematician&amp;#039;s very first experiences with Isabelle/HOL]]. &lt;br /&gt;
# G. Kolata. [http://www.nytimes.com/library/cyber/week/1210math.html Computer math proof shows reasoning power]. &amp;#039;&amp;#039;The New York Times&amp;#039;&amp;#039;, 10 de diciembre de 1996.&lt;br /&gt;
# A. Mahboubi [https://jncf2018.lip6.fr/files/lecture-notes/jncf2018-mahboubi.pdf Calcul formel et preuves formelles].&lt;br /&gt;
# A. Mahboubi. [http://bit.ly/2ch3xEa Machine-checked mathematics]. &lt;br /&gt;
# A. Mahboubi. [http://bit.ly/1qLTVBm Un ordinateur pour vérifier les preuves mathématiques]. &lt;br /&gt;
# D. MacKenzie [https://backspaces.net/temp/Spring2010Seminar/18%20unconventional%20essays%20on%20the%20nature%20of%20mathematics.pdf#page=147 Computers and the sociology of mathematical proof].&lt;br /&gt;
# C. Nalon. [https://www.mat.ufrn.br/cade-27/wp-content/uploads/2019/09/2019CN-CADE.pdf Machine-oriented reasoning].&lt;br /&gt;
# J. Narboux. [https://hal.inria.fr/hal-00809448/document Les assistants de preuve, ou comment avoir confiance en ses démonstrations].&lt;br /&gt;
# L.C. Paulson. [https://www.cl.cam.ac.uk/~lp15/papers/Formath/Sophia2017.pdf Proof assistants: from symbolic logic to real mathematics?] &lt;br /&gt;
# L.C. Paulson, T. Nipkow y M. Wenzel. [https://arxiv.org/abs/1907.02836 From LCF to Isabelle/HOL].&lt;br /&gt;
# T. Ringer et als. [https://arxiv.org/abs/2003.06458 QED at large: A survey of engineering of formally verified software].  &lt;br /&gt;
# P. Schnider. [http://bit.ly/1Gxxmx6 An introduction to proof assistants]. &lt;br /&gt;
# J. Schöpf y S. Widauer [http://cl-informatik.uibk.ac.at/teaching/ws17/vs/reports/SWreport.pdf History of interactive theorem proving].&lt;br /&gt;
# F.R. Villatoro. [http://francis.naukas.com/2017/07/29/la-demostracion-matematica-mas-larga La demostración matemática más larga]. &lt;br /&gt;
# F. Wiedijk [http://www.cs.ru.nl/~freek/100/ Formalizing the «top 100» of mathematical theorems].&lt;br /&gt;
# F. Wiedijk [http://www.ams.org/notices/200811/tx081101408p.pdf Formal proof - Getting started]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1408-1414, 2008.&lt;br /&gt;
# F. Wiedijk, [http://mizar.org/trybulec65/8.pdf The QED manifesto revisited]. &amp;#039;&amp;#039;Studies in Logic, Grammar and Rhetoric&amp;#039;&amp;#039;, Vol. 10(23), pp. 121-133, 2007.&lt;br /&gt;
&lt;br /&gt;
== Referencias sobre Isabelle/HOL ==&lt;br /&gt;
# B. Blumson [https://philpapers.org/go.pl?id=BLUIFP&amp;amp;u=https%3A%2F%2Fphilpapers.org%2Farchive%2FBLUIFP.pdf Isabelle for philosophers]. &lt;br /&gt;
# B. Grechuk [https://web.cs.wpi.edu/~dd/resources_isabelle/isabelle_primer_mathematicians.pdf Isabelle primer for mathematicians].&lt;br /&gt;
# T. Nipkow [https://isabelle.in.tum.de/doc/prog-prove.pdf Programming and proving in Isabelle/HOL]. &lt;br /&gt;
# T. Nipkow, M. Wenzel y L.C. Paulson [http://isabelle.in.tum.de/doc/tutorial.pdf A proof assistant for higher-order logic].&lt;br /&gt;
# A. Steen [https://git.imp.fu-berlin.de/leo-iii/compmeta_pub/raw/master/exercises/resources/Isabelle_ND_cheatsheet.pdf Mapping of ND proof templates to Isabelle formalization].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/dist/library/HOL/HOL/document.pdf Isabelle/HOL — Higher-Order Logic]. &lt;br /&gt;
# M. Wenzel [http://isabelle.in.tum.de/doc/isar-ref.pdf The Isabelle/Isar Reference Manual]. &lt;br /&gt;
# M. Wenzel [http://typessummerschool07.cs.unibo.it/courses/wenzel-isar-quickref.pdf The Isabelle/Isar quick reference].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/documentation.html Tutorials and manuals for Isabelle].&lt;br /&gt;
&lt;br /&gt;
== Lecturas complementarias ==&lt;br /&gt;
=== Programación funcional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/i1m-19/temas/2019-20-I1M-temas-PF.pdf Temas de &amp;quot;Programación funcional&amp;quot;]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2019.&lt;br /&gt;
# J.A. Alonso y M.J. Hidalgo [http://www.cs.us.es/~jalonso/publicaciones/Piensa_en_Haskell.pdf Piensa en Haskell (Ejercicios de programación funcional con Haskell)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2012.&lt;br /&gt;
# G. Hutton [http://bit.ly/2pQofC2 Programming in Haskell]. Cambridge University Press, 2007. &lt;br /&gt;
# M. Lipovača [http://aprendehaskell.es ¡Aprende Haskell por el bien de todos!].&lt;br /&gt;
# M. Lipovaca y J. Brock [https://mybinder.org/v2/gh/jamesdbrock/learn-you-a-haskell-notebook/master?urlpath=lab/tree/learn_you_a_haskell/00-preface.ipynb Learn you a Haskell for great good!]&lt;br /&gt;
# T. Nipkow [https://www21.in.tum.de/teaching/fpv/WS1920/slides.pdf Functional programmingand verification]. TUM, 2019.&lt;br /&gt;
&lt;br /&gt;
=== Lógica computacional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/li-15/temas/temas-LI-2015-16.pdf Temas de &amp;quot;Lógica informática&amp;quot; (2015-16)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2015.&lt;br /&gt;
# K. Broda, S. Eisenbach, H. Khoshnevisan y S. Vickers [https://www.doc.ic.ac.uk/~susan/firstyearbook.pdf Reasoned programming]. Imperial College, 1994.&lt;br /&gt;
# M. Huth y M. Ryan [http://bit.ly/2e8dFEm Logic in computer science: Modelling and reasoning about systems]. Cambridge University Press, 2004. (Incluye el [http://www.cs.bham.ac.uk/research/lics/tutor/index.html tutor en la Red]).&lt;br /&gt;
&lt;br /&gt;
== Cursos relacionados ==&lt;br /&gt;
=== Cursos con Isabelle/HOL ===&lt;br /&gt;
# Clemens Ballarin. [http://cl-informatik.uibk.ac.at/teaching/ss08/atp/introduction.php Automatic Deduction]. (Univ de Innsbruck, 2008).&lt;br /&gt;
# Clemens Ballarin y Gerwin Klein [http://isabelle.in.tum.de/coursematerial/IJCAR04 Introduction to the Isabelle Proof Assistant]. (en el IJCAR-2004).&lt;br /&gt;
# Clemens Ballarin y Tjark Weber. [http://cl-informatik.uibk.ac.at/teaching/ws06/atp/introduction.php Automated Theorem Proving in Isabelle/HOL]. (Univ. de Innsbruck, 2006-07).&lt;br /&gt;
# A.D. Brucker, D. Basin, J.G. Smaus y B. Wolff. [http://archiv.infsec.ethz.ch/education/permanent/csmr.html Computer-supported Modeling and Reasoning]. (ETH Zurich, 2011).&lt;br /&gt;
# Mads Dam. [http://www.csc.kth.se/utbildning/kth/kurser/DD2453/aform07/ Advanced formal methods]. (KTH Royal Institute of Technology, 2007).&lt;br /&gt;
# Jacques Fleuriot. [http://www.inf.ed.ac.uk/teaching/courses/ar Automated reasoning]. (Univ. de Edimburgo, 2016-17).&lt;br /&gt;
# Thomas Genet [http://www.irisa.fr/celtique/genet/ACF Software formal analysis and design]. (Univ. de Rennes)&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~kleing/teaching/thprv-04 Theorem Proving - Principles, Techniques, Applications]. (NICTA, 2004).&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~cs4161/index.html Advanced Topics in Software Verification]. (NICTA, 2012).&lt;br /&gt;
# Joao Marcos. [http://www.dimap.ufrn.br/~jmarcos/courses/LC/Ementa.htm Lógica computacional: Demonstração assistida e semi-automática de teoremas].(UFRN, 2000).&lt;br /&gt;
# Tobias Nipkow. [http://www21.in.tum.de/teaching/semantik/WS1617/ Semantics of programming languages]. (Univ. de Munich, 2012-13).&lt;br /&gt;
# Tobias Nipkow. [http://isabelle.in.tum.de/coursematerial/PSV2009-1 Theorem Proving with Isabelle/HOL An Intensive Course]. &lt;br /&gt;
# Larry Paulson. [http://www.cl.cam.ac.uk/teaching/0910/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2009-10).&lt;br /&gt;
# Arnd Poetzsch-Heffter. [https://softech.informatik.uni-kl.de/homepage/de/teaching/SVHOL14/ Specification and Verification with Higher-Order Logic]. &lt;br /&gt;
# Jan-Georg Smaus. [http://www.informatik.uni-freiburg.de/~ki/teaching/ws0910/csmr/lecture.html Computer-supported modeling and reasoning]. (Univ. de Feiburgo, 2009).&lt;br /&gt;
# Christian Sternagel [http://cl-informatik.uibk.ac.at/teaching/ss11/eve/content.php Experiments in Verification – Introduction to Isabelle/HOL]. (Univ. de Innsbruck, 2011-12).&lt;br /&gt;
# Tjark Weber. [http://www.cl.cam.ac.uk/teaching/1011/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2010-11).&lt;br /&gt;
&lt;br /&gt;
=== Cursos con Coq ===&lt;br /&gt;
# Yves Bertot, Pierre Casteran, Benjamin Gregoire, Pierre Letouzey y Assia Mahboubi [http://www.di.ens.fr/~zappa/teaching/coq/ecole11 Modelling and verifying algorithms in Coq: an introduction]. (INRIA Paris-Rocquencourt, 14-18 noviembre 2011).&lt;br /&gt;
# Adam Chlipala [http://stellar.mit.edu/S/course/6/fa11/6.892/ Interactive computer theorem proving]. (MIT, 2012-13).&lt;br /&gt;
# Adam Chlipala y Armando Solar Lezama [https://stellar.mit.edu/S/course/6/fa13/6.820/index.html Foundations of program analysis]. (MIT, 2013-14).&lt;br /&gt;
# M. Greenberg [http://www.cs.pomona.edu/~michael/courses/csci054s18/ Discrete mathematics and functional programming]. &lt;br /&gt;
# Benjamin C. Pierce et als. [https://softwarefoundations.cis.upenn.edu/lf-current/index.html Software foundations (Vol. 1: Logical foundations)].&lt;br /&gt;
# Benjamin C. Pierce [https://www.seas.upenn.edu/~cis500/current/index.html Software foundations] (Univ. de Pensilvania, 2018).&lt;br /&gt;
# G. Smolka [https://courses.ps.uni-saarland.de/icl_18/2/Resources Introduction to computational logic] (Univ. de Sarre, 2018).&lt;br /&gt;
&lt;br /&gt;
=== Otros cursos ===&lt;br /&gt;
# José A. Alonso [http://www.cs.us.es/~jalonso/cursos/li-12/ Lógica informática] (Univ. de Sevilla, 2012-13).&lt;br /&gt;
# Thorsten Altenkirch y Peter Morris [http://www.cs.nott.ac.uk/~txa/g52ifr Introduction to formal reasoning] (Univ. de Nottingham, 2010-11).&lt;br /&gt;
# J. Blanchette y J. Höltz [https://lean-forward.github.io/logical-verification/2018 Logical verification]. (Vrije Universiteit Amsterdam, 2018-19). &lt;br /&gt;
# Pierre Castéran [http://www.labri.fr/perso/casteran/FM/Logique/index.html Logic (Master In Verification)] (Univ. de Burdeos, 2011-12).&lt;br /&gt;
# Robby Findler [http://www.eecs.northwestern.edu/~robby/courses/395-495-2013-fall Certified programming with dependent types]. (Northwestern, 2013-14).&lt;br /&gt;
# Carlos Luna y Gustavo Betarte. [https://eva.fing.edu.uy/course/view.php?id=363 Construcción formal de programas en teoría de tipos]. (Univ. de la República, Uruguay, 2013-14).&lt;br /&gt;
# Ian Hodkinson [http://www.doc.ic.ac.uk/~imh/teaching/140_logic/logic.html Logic] (Imperial College, Londres, 2010-11).&lt;br /&gt;
# Peter Lucas [http://www.cs.ru.nl/~peterl/teaching/KeR/ Knowledge Representation and Reasoning] (Radboud University # egen, 2011-12).&lt;br /&gt;
# Larry Paulson [http://www.cl.cam.ac.uk/Teaching/current/LogicProof/ Logic and Proof] (Univ. de Cambridge, 2011-12).&lt;br /&gt;
&lt;br /&gt;
== Bibliotecas de ejemplos de verificación ==&lt;br /&gt;
# [http://afp.sourceforge.net Archive of Formal Proofs].&lt;br /&gt;
# [http://www.cs.ru.nl/~freek/100 Formalizing 100 Theorems].&lt;br /&gt;
# [http://toccata.lri.fr/gallery Gallery of verified programs].&lt;br /&gt;
# [http://www.tptp.org/ The TPTP Problem Library for Automated Theorem Proving].&lt;br /&gt;
&lt;br /&gt;
== Artículos recientes ==&lt;br /&gt;
&lt;br /&gt;
Hay dos listas de artículos recientes:&lt;br /&gt;
&lt;br /&gt;
* en [https://twitter.com/search?f=tweets&amp;amp;q=%23ITP%20OR%20%23IsabelleHOL%20OR%20%23Coq%20OR%20%23Agda%20OR%20%23LeanProver%20OR%20%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd Twitter] que contiene enlaces a los artículos de razonamiento automático y demostración asistida por ordenador que se están publicando y&lt;br /&gt;
* en [https://www.glc.us.es/~jalonso/vestigium/category/resena/ Vestigium] que contiene una reseña de los más destacados.&lt;br /&gt;
&lt;br /&gt;
== Ofertas de trabajo ==&lt;br /&gt;
&lt;br /&gt;
En [https://github.com/jaalonso/Trabajos-MULCIA/README.org GitHub] se encuentra una recopilaciónn las ofertas de trabajo de interés para los estudiantes del Máster Universitario en Lógica, Computación e Inteligencia Artificial de la Universidad de Sevilla.&lt;br /&gt;
&lt;br /&gt;
Están en orden cronológico inverso por la fecha de su publicación en [https://twitter.com/search?l=&amp;amp;q=%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd&amp;amp;lang=es Twitter].&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1073</id>
		<title>Documentación</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1073"/>
		<updated>2022-02-08T17:06:41Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* Bibliotecas de ejemplos de verificación */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En esta página se recogen en enlaces que sirven de documentación al curso de &amp;quot;Razonamiento automático&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Vídeos ==&lt;br /&gt;
&lt;br /&gt;
* Vídeos de deducción natural con Pandora: [http://bit.ly/1tqZIOe ejemplo 1] y [http://bit.ly/1nWAVp4 ejemplo 2].&lt;br /&gt;
&lt;br /&gt;
== Visiones generales de la DAO ==&lt;br /&gt;
&lt;br /&gt;
# J.A. Alonso. [http://goo.gl/NWk7b Razonamiento formalizado: Del sueño a la realidad de las pruebas]. &lt;br /&gt;
# J.M. Aransay y C. Domínguez. [http://gaceta.rsme.es/abrir.php?id=1057 Demostración asistida por ordenador]. &lt;br /&gt;
# A. Asperti. [https://arxiv.org/abs/1701.03602 Automatic verification and interactive theorem proving]. &lt;br /&gt;
# A. Asperti. [http://www.cs.unibo.it/~asperti/SLIDES/itp.pdf A survey on interactive theorem proving]. &lt;br /&gt;
# J. Avigad. [http://bit.ly/1hsA8Ew Formal verification, interactive theorem proving, and automated reasoning].&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/icerm.pdf Interactive theorem proving, automated reasoning, and mathematical computation]. ICERM, 14 de diciembre de 2012.&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/london.pdf Automated reasoning for the working mathematician].&lt;br /&gt;
# J. Avigad, J. Harrison. [https://www.cl.cam.ac.uk/~jrh13/papers/cacm.pdf Formally verified Mathematics]. &lt;br /&gt;
# H. Barendregt y F. Wiedijk. [http://ftp.science.ru.nl/CSI/CompMath.Found/Barendregt-Wiedijk.pdf The challenge of computer mathematics].&lt;br /&gt;
# K. Buzzard. [http://wwwf.imperial.ac.uk/~buzzard/one_off_lectures/msr.pdf The future of mathematics?]&lt;br /&gt;
# C.S. Calude y C. Müller [https://www.cs.auckland.ac.nz/~cristian/crispapers/56250217.pdf Formal proof: reconciling correctness and understanding].&lt;br /&gt;
# R. David. [http://www.lama.univ-savoie.fr/~david/ftp/amphis.pdf Peut-on faire des Mathématiques avec un ordinateur?]&lt;br /&gt;
# R. David y C. Raffalli. [http://www.lama.univ-savoie.fr/~david/ftp/amphi07.pdf Peut-on avoir confiance en l’informatique?]&lt;br /&gt;
# M. Davis. [http://www.cs.nyu.edu/cs/faculty/davism/early.ps The early history of automated deduction].&lt;br /&gt;
# J.P. Delahaye [http://interstices.info/jcms/int_63417/du-reve-a-la-realite-des-preuves Du rêve à la réalité des preuves]. &amp;#039;&amp;#039;Interstices&amp;#039;&amp;#039;, 8 de julio de 2012.&lt;br /&gt;
# J. Germoni [http://images.math.cnrs.fr/Coq-et-caracteres.html Coq et caractères: Preuve formelle du théorème de Feit et Thompson]. &amp;#039;&amp;#039;Images des Mathématiques&amp;#039;&amp;#039;, CNRS, 23 de noviembre de 2012. &lt;br /&gt;
# H. Geuvers [http://www.ias.ac.in/article/fulltext/sadh/034/01/0003-0025 Proof assistants: History, ideas and future]. &amp;#039;&amp;#039;Sadhana&amp;#039;&amp;#039;, Vol. 34-1, pp. 3-25, février 2009.&lt;br /&gt;
# H. Geuvers. [http://www.cs.ru.nl/~herman/ictopen.pdf Can the computer really help us to prove theorems?]&lt;br /&gt;
# G. Gonthier [http://www.ams.org/notices/200811/tx081101382p.pdf The four-color theorem]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1382-1393, 2008.&lt;br /&gt;
# T. Hales. [http://www.ams.org/notices/200811/tx081101370p.pdf Formal proof]. &amp;#039;&amp;#039;Notices of AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) pp. 1370-1380.&lt;br /&gt;
# J. Harrison. [http://www.cl.cam.ac.uk/~jrh13/papers/ab.html A short survey of automated reasoning]. &amp;#039;&amp;#039;Lecture Notes in Computer Science&amp;#039;&amp;#039;, Vol. 4545, pp. 334-349, 2007.&lt;br /&gt;
# J. Harrison. [http://www.ams.org/notices/200811/tx081101395p.pdf Formal proof: Theory and practice]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) p.1395-1406. &lt;br /&gt;
# J. Harrison, J. Urban y F. Wiedijk [http://www.cl.cam.ac.uk/~jrh13/papers/joerg.pdf History of interactive theorem proving].&lt;br /&gt;
# A. Koutsoukou-Argyraki. [https://www.researchgate.net/profile/Angeliki_Koutsoukou-Argyraki/publication/334549483_FORMALISING_MATHEMATICS_-IN_PRAXIS_A_MATHEMATICIAN%27S_VERY_FIRST_EXPERIENCES_WITH_ISABELLEHOL/links/5d30f782299bf1547cc25f63/FORMALISING-MATHEMATICS-IN-PRAXIS-A-MATHEMATICIANS-VERY-FIRST-EXPERIENCES-WITH-ISABELLE-HOL.pdf Formalising Mathematics-in praxis; A mathematician&amp;#039;s very first experiences with Isabelle/HOL]]. &lt;br /&gt;
# G. Kolata. [http://www.nytimes.com/library/cyber/week/1210math.html Computer math proof shows reasoning power]. &amp;#039;&amp;#039;The New York Times&amp;#039;&amp;#039;, 10 de diciembre de 1996.&lt;br /&gt;
# A. Mahboubi [https://jncf2018.lip6.fr/files/lecture-notes/jncf2018-mahboubi.pdf Calcul formel et preuves formelles].&lt;br /&gt;
# A. Mahboubi. [http://bit.ly/2ch3xEa Machine-checked mathematics]. &lt;br /&gt;
# A. Mahboubi. [http://bit.ly/1qLTVBm Un ordinateur pour vérifier les preuves mathématiques]. &lt;br /&gt;
# D. MacKenzie [https://backspaces.net/temp/Spring2010Seminar/18%20unconventional%20essays%20on%20the%20nature%20of%20mathematics.pdf#page=147 Computers and the sociology of mathematical proof].&lt;br /&gt;
# C. Nalon. [https://www.mat.ufrn.br/cade-27/wp-content/uploads/2019/09/2019CN-CADE.pdf Machine-oriented reasoning].&lt;br /&gt;
# J. Narboux. [https://hal.inria.fr/hal-00809448/document Les assistants de preuve, ou comment avoir confiance en ses démonstrations].&lt;br /&gt;
# L.C. Paulson. [https://www.cl.cam.ac.uk/~lp15/papers/Formath/Sophia2017.pdf Proof assistants: from symbolic logic to real mathematics?] &lt;br /&gt;
# L.C. Paulson, T. Nipkow y M. Wenzel. [https://arxiv.org/abs/1907.02836 From LCF to Isabelle/HOL].&lt;br /&gt;
# T. Ringer et als. [https://arxiv.org/abs/2003.06458 QED at large: A survey of engineering of formally verified software].  &lt;br /&gt;
# P. Schnider. [http://bit.ly/1Gxxmx6 An introduction to proof assistants]. &lt;br /&gt;
# J. Schöpf y S. Widauer [http://cl-informatik.uibk.ac.at/teaching/ws17/vs/reports/SWreport.pdf History of interactive theorem proving].&lt;br /&gt;
# F.R. Villatoro. [http://francis.naukas.com/2017/07/29/la-demostracion-matematica-mas-larga La demostración matemática más larga]. &lt;br /&gt;
# F. Wiedijk [http://www.cs.ru.nl/~freek/100/ Formalizing the «top 100» of mathematical theorems].&lt;br /&gt;
# F. Wiedijk [http://www.ams.org/notices/200811/tx081101408p.pdf Formal proof - Getting started]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1408-1414, 2008.&lt;br /&gt;
# F. Wiedijk, [http://mizar.org/trybulec65/8.pdf The QED manifesto revisited]. &amp;#039;&amp;#039;Studies in Logic, Grammar and Rhetoric&amp;#039;&amp;#039;, Vol. 10(23), pp. 121-133, 2007.&lt;br /&gt;
&lt;br /&gt;
== Referencias sobre Isabelle/HOL ==&lt;br /&gt;
# B. Blumson [https://philpapers.org/go.pl?id=BLUIFP&amp;amp;u=https%3A%2F%2Fphilpapers.org%2Farchive%2FBLUIFP.pdf Isabelle for philosophers]. &lt;br /&gt;
# B. Grechuk [https://web.cs.wpi.edu/~dd/resources_isabelle/isabelle_primer_mathematicians.pdf Isabelle primer for mathematicians].&lt;br /&gt;
# T. Nipkow [https://isabelle.in.tum.de/doc/prog-prove.pdf Programming and proving in Isabelle/HOL]. &lt;br /&gt;
# T. Nipkow, M. Wenzel y L.C. Paulson [http://isabelle.in.tum.de/doc/tutorial.pdf A proof assistant for higher-order logic].&lt;br /&gt;
# A. Steen [https://git.imp.fu-berlin.de/leo-iii/compmeta_pub/raw/master/exercises/resources/Isabelle_ND_cheatsheet.pdf Mapping of ND proof templates to Isabelle formalization].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/dist/library/HOL/HOL/document.pdf Isabelle/HOL — Higher-Order Logic]. &lt;br /&gt;
# M. Wenzel [http://isabelle.in.tum.de/doc/isar-ref.pdf The Isabelle/Isar Reference Manual]. &lt;br /&gt;
# M. Wenzel [http://typessummerschool07.cs.unibo.it/courses/wenzel-isar-quickref.pdf The Isabelle/Isar quick reference].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/documentation.html Tutorials and manuals for Isabelle].&lt;br /&gt;
&lt;br /&gt;
== Lecturas complementarias ==&lt;br /&gt;
=== Programación funcional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/i1m-19/temas/2019-20-I1M-temas-PF.pdf Temas de &amp;quot;Programación funcional&amp;quot;]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2019.&lt;br /&gt;
# J.A. Alonso y M.J. Hidalgo [http://www.cs.us.es/~jalonso/publicaciones/Piensa_en_Haskell.pdf Piensa en Haskell (Ejercicios de programación funcional con Haskell)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2012.&lt;br /&gt;
# G. Hutton [http://bit.ly/2pQofC2 Programming in Haskell]. Cambridge University Press, 2007. &lt;br /&gt;
# M. Lipovača [http://aprendehaskell.es ¡Aprende Haskell por el bien de todos!].&lt;br /&gt;
# M. Lipovaca y J. Brock [https://mybinder.org/v2/gh/jamesdbrock/learn-you-a-haskell-notebook/master?urlpath=lab/tree/learn_you_a_haskell/00-preface.ipynb Learn you a Haskell for great good!]&lt;br /&gt;
# T. Nipkow [https://www21.in.tum.de/teaching/fpv/WS1920/slides.pdf Functional programmingand verification]. TUM, 2019.&lt;br /&gt;
&lt;br /&gt;
=== Lógica computacional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/li-15/temas/temas-LI-2015-16.pdf Temas de &amp;quot;Lógica informática&amp;quot; (2015-16)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2015.&lt;br /&gt;
# K. Broda, S. Eisenbach, H. Khoshnevisan y S. Vickers [https://www.doc.ic.ac.uk/~susan/firstyearbook.pdf Reasoned programming]. Imperial College, 1994.&lt;br /&gt;
# M. Huth y M. Ryan [http://bit.ly/2e8dFEm Logic in computer science: Modelling and reasoning about systems]. Cambridge University Press, 2004. (Incluye el [http://www.cs.bham.ac.uk/research/lics/tutor/index.html tutor en la Red]).&lt;br /&gt;
&lt;br /&gt;
== Cursos relacionados ==&lt;br /&gt;
=== Cursos con Isabelle/HOL ===&lt;br /&gt;
# Clemens Ballarin. [http://cl-informatik.uibk.ac.at/teaching/ss08/atp/introduction.php Automatic Deduction]. (Univ de Innsbruck, 2008).&lt;br /&gt;
# Clemens Ballarin y Gerwin Klein [http://isabelle.in.tum.de/coursematerial/IJCAR04 Introduction to the Isabelle Proof Assistant]. (en el IJCAR-2004).&lt;br /&gt;
# Clemens Ballarin y Tjark Weber. [http://cl-informatik.uibk.ac.at/teaching/ws06/atp/introduction.php Automated Theorem Proving in Isabelle/HOL]. (Univ. de Innsbruck, 2006-07).&lt;br /&gt;
# A.D. Brucker, D. Basin, J.G. Smaus y B. Wolff. [http://archiv.infsec.ethz.ch/education/permanent/csmr.html Computer-supported Modeling and Reasoning]. (ETH Zurich, 2011).&lt;br /&gt;
# Mads Dam. [http://www.csc.kth.se/utbildning/kth/kurser/DD2453/aform07/ Advanced formal methods]. (KTH Royal Institute of Technology, 2007).&lt;br /&gt;
# Jacques Fleuriot. [http://www.inf.ed.ac.uk/teaching/courses/ar Automated reasoning]. (Univ. de Edimburgo, 2016-17).&lt;br /&gt;
# Thomas Genet [http://www.irisa.fr/celtique/genet/ACF Software formal analysis and design]. (Univ. de Rennes)&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~kleing/teaching/thprv-04 Theorem Proving - Principles, Techniques, Applications]. (NICTA, 2004).&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~cs4161/index.html Advanced Topics in Software Verification]. (NICTA, 2012).&lt;br /&gt;
# Joao Marcos. [http://www.dimap.ufrn.br/~jmarcos/courses/LC/Ementa.htm Lógica computacional: Demonstração assistida e semi-automática de teoremas].(UFRN, 2000).&lt;br /&gt;
# Tobias Nipkow. [http://www21.in.tum.de/teaching/semantik/WS1617/ Semantics of programming languages]. (Univ. de Munich, 2012-13).&lt;br /&gt;
# Tobias Nipkow. [http://isabelle.in.tum.de/coursematerial/PSV2009-1 Theorem Proving with Isabelle/HOL An Intensive Course]. &lt;br /&gt;
# Larry Paulson. [http://www.cl.cam.ac.uk/teaching/0910/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2009-10).&lt;br /&gt;
# Arnd Poetzsch-Heffter. [https://softech.informatik.uni-kl.de/homepage/de/teaching/SVHOL14/ Specification and Verification with Higher-Order Logic]. &lt;br /&gt;
# Jan-Georg Smaus. [http://www.informatik.uni-freiburg.de/~ki/teaching/ws0910/csmr/lecture.html Computer-supported modeling and reasoning]. (Univ. de Feiburgo, 2009).&lt;br /&gt;
# Christian Sternagel [http://cl-informatik.uibk.ac.at/teaching/ss11/eve/content.php Experiments in Verification – Introduction to Isabelle/HOL]. (Univ. de Innsbruck, 2011-12).&lt;br /&gt;
# Tjark Weber. [http://www.cl.cam.ac.uk/teaching/1011/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2010-11).&lt;br /&gt;
&lt;br /&gt;
=== Cursos con Coq ===&lt;br /&gt;
# Yves Bertot, Pierre Casteran, Benjamin Gregoire, Pierre Letouzey y Assia Mahboubi [http://www.di.ens.fr/~zappa/teaching/coq/ecole11 Modelling and verifying algorithms in Coq: an introduction]. (INRIA Paris-Rocquencourt, 14-18 noviembre 2011).&lt;br /&gt;
# Adam Chlipala [http://stellar.mit.edu/S/course/6/fa11/6.892/ Interactive computer theorem proving]. (MIT, 2012-13).&lt;br /&gt;
# Adam Chlipala y Armando Solar Lezama [https://stellar.mit.edu/S/course/6/fa13/6.820/index.html Foundations of program analysis]. (MIT, 2013-14).&lt;br /&gt;
# M. Greenberg [http://www.cs.pomona.edu/~michael/courses/csci054s18/ Discrete mathematics and functional programming]. &lt;br /&gt;
# Benjamin C. Pierce et als. [https://softwarefoundations.cis.upenn.edu/lf-current/index.html Software foundations (Vol. 1: Logical foundations)].&lt;br /&gt;
# Benjamin C. Pierce [https://www.seas.upenn.edu/~cis500/current/index.html Software foundations] (Univ. de Pensilvania, 2018).&lt;br /&gt;
# G. Smolka [https://courses.ps.uni-saarland.de/icl_18/2/Resources Introduction to computational logic] (Univ. de Sarre, 2018).&lt;br /&gt;
&lt;br /&gt;
=== Otros cursos ===&lt;br /&gt;
# José A. Alonso [http://www.cs.us.es/~jalonso/cursos/li-12/ Lógica informática] (Univ. de Sevilla, 2012-13).&lt;br /&gt;
# Thorsten Altenkirch y Peter Morris [http://www.cs.nott.ac.uk/~txa/g52ifr Introduction to formal reasoning] (Univ. de Nottingham, 2010-11).&lt;br /&gt;
# J. Blanchette y J. Höltz [https://lean-forward.github.io/logical-verification/2018 Logical verification]. (Vrije Universiteit Amsterdam, 2018-19). &lt;br /&gt;
# Pierre Castéran [http://www.labri.fr/perso/casteran/FM/Logique/index.html Logic (Master In Verification)] (Univ. de Burdeos, 2011-12).&lt;br /&gt;
# Robby Findler [http://www.eecs.northwestern.edu/~robby/courses/395-495-2013-fall Certified programming with dependent types]. (Northwestern, 2013-14).&lt;br /&gt;
# Carlos Luna y Gustavo Betarte. [https://eva.fing.edu.uy/course/view.php?id=363 Construcción formal de programas en teoría de tipos]. (Univ. de la República, Uruguay, 2013-14).&lt;br /&gt;
# Ian Hodkinson [http://www.doc.ic.ac.uk/~imh/teaching/140_logic/logic.html Logic] (Imperial College, Londres, 2010-11).&lt;br /&gt;
# Peter Lucas [http://www.cs.ru.nl/~peterl/teaching/KeR/ Knowledge Representation and Reasoning] (Radboud University # egen, 2011-12).&lt;br /&gt;
# Larry Paulson [http://www.cl.cam.ac.uk/Teaching/current/LogicProof/ Logic and Proof] (Univ. de Cambridge, 2011-12).&lt;br /&gt;
&lt;br /&gt;
== Bibliotecas de ejemplos de verificación ==&lt;br /&gt;
# [http://afp.sourceforge.net Archive of Formal Proofs].&lt;br /&gt;
# [http://www.cs.ru.nl/~freek/100 Formalizing 100 Theorems].&lt;br /&gt;
# [http://toccata.lri.fr/gallery Gallery of verified programs].&lt;br /&gt;
# [http://www.tptp.org/ The TPTP Problem Library for Automated Theorem Proving].&lt;br /&gt;
&lt;br /&gt;
== Artículos recientes ==&lt;br /&gt;
&lt;br /&gt;
Hay dos listas de artículos recientes:&lt;br /&gt;
&lt;br /&gt;
* en [https://twitter.com/search?f=tweets&amp;amp;q=%23ITP%20OR%20%23IsabelleHOL%20OR%20%23Coq%20OR%20%23Agda%20OR%20%23LeanProver%20OR%20%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd Twitter] que contiene enlaces a los artículos de razonamiento automático y demostración asistida por ordenador que se están publicando y&lt;br /&gt;
* en [https://www.glc.us.es/~jalonso/vestigium/category/resena/ Vestigium] que contiene una reseña de los más destacados.&lt;br /&gt;
&lt;br /&gt;
== Ofertas de trabajo ==&lt;br /&gt;
&lt;br /&gt;
En [https://github.com/jaalonso/Trabajos-MULCIA GitHub] se encuentra una recopilaciónn las ofertas de trabajo de interés para los estudiantes del Máster Universitario en Lógica, Computación e Inteligencia Artificial de la Universidad de Sevilla.&lt;br /&gt;
&lt;br /&gt;
Están en orden cronológico inverso por la fecha de su publicación en [https://twitter.com/search?l=&amp;amp;q=%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd&amp;amp;lang=es Twitter].&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1072</id>
		<title>Documentación</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1072"/>
		<updated>2022-02-08T17:05:08Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* Otros cursos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En esta página se recogen en enlaces que sirven de documentación al curso de &amp;quot;Razonamiento automático&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Vídeos ==&lt;br /&gt;
&lt;br /&gt;
* Vídeos de deducción natural con Pandora: [http://bit.ly/1tqZIOe ejemplo 1] y [http://bit.ly/1nWAVp4 ejemplo 2].&lt;br /&gt;
&lt;br /&gt;
== Visiones generales de la DAO ==&lt;br /&gt;
&lt;br /&gt;
# J.A. Alonso. [http://goo.gl/NWk7b Razonamiento formalizado: Del sueño a la realidad de las pruebas]. &lt;br /&gt;
# J.M. Aransay y C. Domínguez. [http://gaceta.rsme.es/abrir.php?id=1057 Demostración asistida por ordenador]. &lt;br /&gt;
# A. Asperti. [https://arxiv.org/abs/1701.03602 Automatic verification and interactive theorem proving]. &lt;br /&gt;
# A. Asperti. [http://www.cs.unibo.it/~asperti/SLIDES/itp.pdf A survey on interactive theorem proving]. &lt;br /&gt;
# J. Avigad. [http://bit.ly/1hsA8Ew Formal verification, interactive theorem proving, and automated reasoning].&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/icerm.pdf Interactive theorem proving, automated reasoning, and mathematical computation]. ICERM, 14 de diciembre de 2012.&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/london.pdf Automated reasoning for the working mathematician].&lt;br /&gt;
# J. Avigad, J. Harrison. [https://www.cl.cam.ac.uk/~jrh13/papers/cacm.pdf Formally verified Mathematics]. &lt;br /&gt;
# H. Barendregt y F. Wiedijk. [http://ftp.science.ru.nl/CSI/CompMath.Found/Barendregt-Wiedijk.pdf The challenge of computer mathematics].&lt;br /&gt;
# K. Buzzard. [http://wwwf.imperial.ac.uk/~buzzard/one_off_lectures/msr.pdf The future of mathematics?]&lt;br /&gt;
# C.S. Calude y C. Müller [https://www.cs.auckland.ac.nz/~cristian/crispapers/56250217.pdf Formal proof: reconciling correctness and understanding].&lt;br /&gt;
# R. David. [http://www.lama.univ-savoie.fr/~david/ftp/amphis.pdf Peut-on faire des Mathématiques avec un ordinateur?]&lt;br /&gt;
# R. David y C. Raffalli. [http://www.lama.univ-savoie.fr/~david/ftp/amphi07.pdf Peut-on avoir confiance en l’informatique?]&lt;br /&gt;
# M. Davis. [http://www.cs.nyu.edu/cs/faculty/davism/early.ps The early history of automated deduction].&lt;br /&gt;
# J.P. Delahaye [http://interstices.info/jcms/int_63417/du-reve-a-la-realite-des-preuves Du rêve à la réalité des preuves]. &amp;#039;&amp;#039;Interstices&amp;#039;&amp;#039;, 8 de julio de 2012.&lt;br /&gt;
# J. Germoni [http://images.math.cnrs.fr/Coq-et-caracteres.html Coq et caractères: Preuve formelle du théorème de Feit et Thompson]. &amp;#039;&amp;#039;Images des Mathématiques&amp;#039;&amp;#039;, CNRS, 23 de noviembre de 2012. &lt;br /&gt;
# H. Geuvers [http://www.ias.ac.in/article/fulltext/sadh/034/01/0003-0025 Proof assistants: History, ideas and future]. &amp;#039;&amp;#039;Sadhana&amp;#039;&amp;#039;, Vol. 34-1, pp. 3-25, février 2009.&lt;br /&gt;
# H. Geuvers. [http://www.cs.ru.nl/~herman/ictopen.pdf Can the computer really help us to prove theorems?]&lt;br /&gt;
# G. Gonthier [http://www.ams.org/notices/200811/tx081101382p.pdf The four-color theorem]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1382-1393, 2008.&lt;br /&gt;
# T. Hales. [http://www.ams.org/notices/200811/tx081101370p.pdf Formal proof]. &amp;#039;&amp;#039;Notices of AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) pp. 1370-1380.&lt;br /&gt;
# J. Harrison. [http://www.cl.cam.ac.uk/~jrh13/papers/ab.html A short survey of automated reasoning]. &amp;#039;&amp;#039;Lecture Notes in Computer Science&amp;#039;&amp;#039;, Vol. 4545, pp. 334-349, 2007.&lt;br /&gt;
# J. Harrison. [http://www.ams.org/notices/200811/tx081101395p.pdf Formal proof: Theory and practice]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) p.1395-1406. &lt;br /&gt;
# J. Harrison, J. Urban y F. Wiedijk [http://www.cl.cam.ac.uk/~jrh13/papers/joerg.pdf History of interactive theorem proving].&lt;br /&gt;
# A. Koutsoukou-Argyraki. [https://www.researchgate.net/profile/Angeliki_Koutsoukou-Argyraki/publication/334549483_FORMALISING_MATHEMATICS_-IN_PRAXIS_A_MATHEMATICIAN%27S_VERY_FIRST_EXPERIENCES_WITH_ISABELLEHOL/links/5d30f782299bf1547cc25f63/FORMALISING-MATHEMATICS-IN-PRAXIS-A-MATHEMATICIANS-VERY-FIRST-EXPERIENCES-WITH-ISABELLE-HOL.pdf Formalising Mathematics-in praxis; A mathematician&amp;#039;s very first experiences with Isabelle/HOL]]. &lt;br /&gt;
# G. Kolata. [http://www.nytimes.com/library/cyber/week/1210math.html Computer math proof shows reasoning power]. &amp;#039;&amp;#039;The New York Times&amp;#039;&amp;#039;, 10 de diciembre de 1996.&lt;br /&gt;
# A. Mahboubi [https://jncf2018.lip6.fr/files/lecture-notes/jncf2018-mahboubi.pdf Calcul formel et preuves formelles].&lt;br /&gt;
# A. Mahboubi. [http://bit.ly/2ch3xEa Machine-checked mathematics]. &lt;br /&gt;
# A. Mahboubi. [http://bit.ly/1qLTVBm Un ordinateur pour vérifier les preuves mathématiques]. &lt;br /&gt;
# D. MacKenzie [https://backspaces.net/temp/Spring2010Seminar/18%20unconventional%20essays%20on%20the%20nature%20of%20mathematics.pdf#page=147 Computers and the sociology of mathematical proof].&lt;br /&gt;
# C. Nalon. [https://www.mat.ufrn.br/cade-27/wp-content/uploads/2019/09/2019CN-CADE.pdf Machine-oriented reasoning].&lt;br /&gt;
# J. Narboux. [https://hal.inria.fr/hal-00809448/document Les assistants de preuve, ou comment avoir confiance en ses démonstrations].&lt;br /&gt;
# L.C. Paulson. [https://www.cl.cam.ac.uk/~lp15/papers/Formath/Sophia2017.pdf Proof assistants: from symbolic logic to real mathematics?] &lt;br /&gt;
# L.C. Paulson, T. Nipkow y M. Wenzel. [https://arxiv.org/abs/1907.02836 From LCF to Isabelle/HOL].&lt;br /&gt;
# T. Ringer et als. [https://arxiv.org/abs/2003.06458 QED at large: A survey of engineering of formally verified software].  &lt;br /&gt;
# P. Schnider. [http://bit.ly/1Gxxmx6 An introduction to proof assistants]. &lt;br /&gt;
# J. Schöpf y S. Widauer [http://cl-informatik.uibk.ac.at/teaching/ws17/vs/reports/SWreport.pdf History of interactive theorem proving].&lt;br /&gt;
# F.R. Villatoro. [http://francis.naukas.com/2017/07/29/la-demostracion-matematica-mas-larga La demostración matemática más larga]. &lt;br /&gt;
# F. Wiedijk [http://www.cs.ru.nl/~freek/100/ Formalizing the «top 100» of mathematical theorems].&lt;br /&gt;
# F. Wiedijk [http://www.ams.org/notices/200811/tx081101408p.pdf Formal proof - Getting started]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1408-1414, 2008.&lt;br /&gt;
# F. Wiedijk, [http://mizar.org/trybulec65/8.pdf The QED manifesto revisited]. &amp;#039;&amp;#039;Studies in Logic, Grammar and Rhetoric&amp;#039;&amp;#039;, Vol. 10(23), pp. 121-133, 2007.&lt;br /&gt;
&lt;br /&gt;
== Referencias sobre Isabelle/HOL ==&lt;br /&gt;
# B. Blumson [https://philpapers.org/go.pl?id=BLUIFP&amp;amp;u=https%3A%2F%2Fphilpapers.org%2Farchive%2FBLUIFP.pdf Isabelle for philosophers]. &lt;br /&gt;
# B. Grechuk [https://web.cs.wpi.edu/~dd/resources_isabelle/isabelle_primer_mathematicians.pdf Isabelle primer for mathematicians].&lt;br /&gt;
# T. Nipkow [https://isabelle.in.tum.de/doc/prog-prove.pdf Programming and proving in Isabelle/HOL]. &lt;br /&gt;
# T. Nipkow, M. Wenzel y L.C. Paulson [http://isabelle.in.tum.de/doc/tutorial.pdf A proof assistant for higher-order logic].&lt;br /&gt;
# A. Steen [https://git.imp.fu-berlin.de/leo-iii/compmeta_pub/raw/master/exercises/resources/Isabelle_ND_cheatsheet.pdf Mapping of ND proof templates to Isabelle formalization].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/dist/library/HOL/HOL/document.pdf Isabelle/HOL — Higher-Order Logic]. &lt;br /&gt;
# M. Wenzel [http://isabelle.in.tum.de/doc/isar-ref.pdf The Isabelle/Isar Reference Manual]. &lt;br /&gt;
# M. Wenzel [http://typessummerschool07.cs.unibo.it/courses/wenzel-isar-quickref.pdf The Isabelle/Isar quick reference].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/documentation.html Tutorials and manuals for Isabelle].&lt;br /&gt;
&lt;br /&gt;
== Lecturas complementarias ==&lt;br /&gt;
=== Programación funcional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/i1m-19/temas/2019-20-I1M-temas-PF.pdf Temas de &amp;quot;Programación funcional&amp;quot;]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2019.&lt;br /&gt;
# J.A. Alonso y M.J. Hidalgo [http://www.cs.us.es/~jalonso/publicaciones/Piensa_en_Haskell.pdf Piensa en Haskell (Ejercicios de programación funcional con Haskell)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2012.&lt;br /&gt;
# G. Hutton [http://bit.ly/2pQofC2 Programming in Haskell]. Cambridge University Press, 2007. &lt;br /&gt;
# M. Lipovača [http://aprendehaskell.es ¡Aprende Haskell por el bien de todos!].&lt;br /&gt;
# M. Lipovaca y J. Brock [https://mybinder.org/v2/gh/jamesdbrock/learn-you-a-haskell-notebook/master?urlpath=lab/tree/learn_you_a_haskell/00-preface.ipynb Learn you a Haskell for great good!]&lt;br /&gt;
# T. Nipkow [https://www21.in.tum.de/teaching/fpv/WS1920/slides.pdf Functional programmingand verification]. TUM, 2019.&lt;br /&gt;
&lt;br /&gt;
=== Lógica computacional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/li-15/temas/temas-LI-2015-16.pdf Temas de &amp;quot;Lógica informática&amp;quot; (2015-16)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2015.&lt;br /&gt;
# K. Broda, S. Eisenbach, H. Khoshnevisan y S. Vickers [https://www.doc.ic.ac.uk/~susan/firstyearbook.pdf Reasoned programming]. Imperial College, 1994.&lt;br /&gt;
# M. Huth y M. Ryan [http://bit.ly/2e8dFEm Logic in computer science: Modelling and reasoning about systems]. Cambridge University Press, 2004. (Incluye el [http://www.cs.bham.ac.uk/research/lics/tutor/index.html tutor en la Red]).&lt;br /&gt;
&lt;br /&gt;
== Cursos relacionados ==&lt;br /&gt;
=== Cursos con Isabelle/HOL ===&lt;br /&gt;
# Clemens Ballarin. [http://cl-informatik.uibk.ac.at/teaching/ss08/atp/introduction.php Automatic Deduction]. (Univ de Innsbruck, 2008).&lt;br /&gt;
# Clemens Ballarin y Gerwin Klein [http://isabelle.in.tum.de/coursematerial/IJCAR04 Introduction to the Isabelle Proof Assistant]. (en el IJCAR-2004).&lt;br /&gt;
# Clemens Ballarin y Tjark Weber. [http://cl-informatik.uibk.ac.at/teaching/ws06/atp/introduction.php Automated Theorem Proving in Isabelle/HOL]. (Univ. de Innsbruck, 2006-07).&lt;br /&gt;
# A.D. Brucker, D. Basin, J.G. Smaus y B. Wolff. [http://archiv.infsec.ethz.ch/education/permanent/csmr.html Computer-supported Modeling and Reasoning]. (ETH Zurich, 2011).&lt;br /&gt;
# Mads Dam. [http://www.csc.kth.se/utbildning/kth/kurser/DD2453/aform07/ Advanced formal methods]. (KTH Royal Institute of Technology, 2007).&lt;br /&gt;
# Jacques Fleuriot. [http://www.inf.ed.ac.uk/teaching/courses/ar Automated reasoning]. (Univ. de Edimburgo, 2016-17).&lt;br /&gt;
# Thomas Genet [http://www.irisa.fr/celtique/genet/ACF Software formal analysis and design]. (Univ. de Rennes)&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~kleing/teaching/thprv-04 Theorem Proving - Principles, Techniques, Applications]. (NICTA, 2004).&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~cs4161/index.html Advanced Topics in Software Verification]. (NICTA, 2012).&lt;br /&gt;
# Joao Marcos. [http://www.dimap.ufrn.br/~jmarcos/courses/LC/Ementa.htm Lógica computacional: Demonstração assistida e semi-automática de teoremas].(UFRN, 2000).&lt;br /&gt;
# Tobias Nipkow. [http://www21.in.tum.de/teaching/semantik/WS1617/ Semantics of programming languages]. (Univ. de Munich, 2012-13).&lt;br /&gt;
# Tobias Nipkow. [http://isabelle.in.tum.de/coursematerial/PSV2009-1 Theorem Proving with Isabelle/HOL An Intensive Course]. &lt;br /&gt;
# Larry Paulson. [http://www.cl.cam.ac.uk/teaching/0910/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2009-10).&lt;br /&gt;
# Arnd Poetzsch-Heffter. [https://softech.informatik.uni-kl.de/homepage/de/teaching/SVHOL14/ Specification and Verification with Higher-Order Logic]. &lt;br /&gt;
# Jan-Georg Smaus. [http://www.informatik.uni-freiburg.de/~ki/teaching/ws0910/csmr/lecture.html Computer-supported modeling and reasoning]. (Univ. de Feiburgo, 2009).&lt;br /&gt;
# Christian Sternagel [http://cl-informatik.uibk.ac.at/teaching/ss11/eve/content.php Experiments in Verification – Introduction to Isabelle/HOL]. (Univ. de Innsbruck, 2011-12).&lt;br /&gt;
# Tjark Weber. [http://www.cl.cam.ac.uk/teaching/1011/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2010-11).&lt;br /&gt;
&lt;br /&gt;
=== Cursos con Coq ===&lt;br /&gt;
# Yves Bertot, Pierre Casteran, Benjamin Gregoire, Pierre Letouzey y Assia Mahboubi [http://www.di.ens.fr/~zappa/teaching/coq/ecole11 Modelling and verifying algorithms in Coq: an introduction]. (INRIA Paris-Rocquencourt, 14-18 noviembre 2011).&lt;br /&gt;
# Adam Chlipala [http://stellar.mit.edu/S/course/6/fa11/6.892/ Interactive computer theorem proving]. (MIT, 2012-13).&lt;br /&gt;
# Adam Chlipala y Armando Solar Lezama [https://stellar.mit.edu/S/course/6/fa13/6.820/index.html Foundations of program analysis]. (MIT, 2013-14).&lt;br /&gt;
# M. Greenberg [http://www.cs.pomona.edu/~michael/courses/csci054s18/ Discrete mathematics and functional programming]. &lt;br /&gt;
# Benjamin C. Pierce et als. [https://softwarefoundations.cis.upenn.edu/lf-current/index.html Software foundations (Vol. 1: Logical foundations)].&lt;br /&gt;
# Benjamin C. Pierce [https://www.seas.upenn.edu/~cis500/current/index.html Software foundations] (Univ. de Pensilvania, 2018).&lt;br /&gt;
# G. Smolka [https://courses.ps.uni-saarland.de/icl_18/2/Resources Introduction to computational logic] (Univ. de Sarre, 2018).&lt;br /&gt;
&lt;br /&gt;
=== Otros cursos ===&lt;br /&gt;
# José A. Alonso [http://www.cs.us.es/~jalonso/cursos/li-12/ Lógica informática] (Univ. de Sevilla, 2012-13).&lt;br /&gt;
# Thorsten Altenkirch y Peter Morris [http://www.cs.nott.ac.uk/~txa/g52ifr Introduction to formal reasoning] (Univ. de Nottingham, 2010-11).&lt;br /&gt;
# J. Blanchette y J. Höltz [https://lean-forward.github.io/logical-verification/2018 Logical verification]. (Vrije Universiteit Amsterdam, 2018-19). &lt;br /&gt;
# Pierre Castéran [http://www.labri.fr/perso/casteran/FM/Logique/index.html Logic (Master In Verification)] (Univ. de Burdeos, 2011-12).&lt;br /&gt;
# Robby Findler [http://www.eecs.northwestern.edu/~robby/courses/395-495-2013-fall Certified programming with dependent types]. (Northwestern, 2013-14).&lt;br /&gt;
# Carlos Luna y Gustavo Betarte. [https://eva.fing.edu.uy/course/view.php?id=363 Construcción formal de programas en teoría de tipos]. (Univ. de la República, Uruguay, 2013-14).&lt;br /&gt;
# Ian Hodkinson [http://www.doc.ic.ac.uk/~imh/teaching/140_logic/logic.html Logic] (Imperial College, Londres, 2010-11).&lt;br /&gt;
# Peter Lucas [http://www.cs.ru.nl/~peterl/teaching/KeR/ Knowledge Representation and Reasoning] (Radboud University # egen, 2011-12).&lt;br /&gt;
# Larry Paulson [http://www.cl.cam.ac.uk/Teaching/current/LogicProof/ Logic and Proof] (Univ. de Cambridge, 2011-12).&lt;br /&gt;
&lt;br /&gt;
== Bibliotecas de ejemplos de verificación ==&lt;br /&gt;
# [http://afp.sourceforge.net Archive of Formal Proofs].&lt;br /&gt;
# [http://www.cs.ru.nl/~freek/100 Formalizing 100 Theorems].&lt;br /&gt;
# [http://toccata.lri.fr/gallery Gallery of verified programs].&lt;br /&gt;
# [http://automatedreasoning.net/ Larry Wos&amp;#039; Notebooks].&lt;br /&gt;
# [http://www.cs.miami.edu/~tptp/ The TPTP Problem Library for Automated Theorem Proving].&lt;br /&gt;
# [http://www.macs.hw.ac.uk/vstte10/Competition.html The 1st Verified Software Competition].&lt;br /&gt;
# [https://sites.google.com/site/vstte2012/compet The 2nd Verified Software Competition].&lt;br /&gt;
# [http://verifythis.cost-ic0701.org VerifyThis (A collection of verification benchmarks].&lt;br /&gt;
&lt;br /&gt;
== Artículos recientes ==&lt;br /&gt;
&lt;br /&gt;
Hay dos listas de artículos recientes:&lt;br /&gt;
&lt;br /&gt;
* en [https://twitter.com/search?f=tweets&amp;amp;q=%23ITP%20OR%20%23IsabelleHOL%20OR%20%23Coq%20OR%20%23Agda%20OR%20%23LeanProver%20OR%20%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd Twitter] que contiene enlaces a los artículos de razonamiento automático y demostración asistida por ordenador que se están publicando y&lt;br /&gt;
* en [https://www.glc.us.es/~jalonso/vestigium/category/resena/ Vestigium] que contiene una reseña de los más destacados.&lt;br /&gt;
&lt;br /&gt;
== Ofertas de trabajo ==&lt;br /&gt;
&lt;br /&gt;
En [https://github.com/jaalonso/Trabajos-MULCIA GitHub] se encuentra una recopilaciónn las ofertas de trabajo de interés para los estudiantes del Máster Universitario en Lógica, Computación e Inteligencia Artificial de la Universidad de Sevilla.&lt;br /&gt;
&lt;br /&gt;
Están en orden cronológico inverso por la fecha de su publicación en [https://twitter.com/search?l=&amp;amp;q=%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd&amp;amp;lang=es Twitter].&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1071</id>
		<title>Documentación</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1071"/>
		<updated>2022-02-08T17:03:44Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* Otros cursos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En esta página se recogen en enlaces que sirven de documentación al curso de &amp;quot;Razonamiento automático&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Vídeos ==&lt;br /&gt;
&lt;br /&gt;
* Vídeos de deducción natural con Pandora: [http://bit.ly/1tqZIOe ejemplo 1] y [http://bit.ly/1nWAVp4 ejemplo 2].&lt;br /&gt;
&lt;br /&gt;
== Visiones generales de la DAO ==&lt;br /&gt;
&lt;br /&gt;
# J.A. Alonso. [http://goo.gl/NWk7b Razonamiento formalizado: Del sueño a la realidad de las pruebas]. &lt;br /&gt;
# J.M. Aransay y C. Domínguez. [http://gaceta.rsme.es/abrir.php?id=1057 Demostración asistida por ordenador]. &lt;br /&gt;
# A. Asperti. [https://arxiv.org/abs/1701.03602 Automatic verification and interactive theorem proving]. &lt;br /&gt;
# A. Asperti. [http://www.cs.unibo.it/~asperti/SLIDES/itp.pdf A survey on interactive theorem proving]. &lt;br /&gt;
# J. Avigad. [http://bit.ly/1hsA8Ew Formal verification, interactive theorem proving, and automated reasoning].&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/icerm.pdf Interactive theorem proving, automated reasoning, and mathematical computation]. ICERM, 14 de diciembre de 2012.&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/london.pdf Automated reasoning for the working mathematician].&lt;br /&gt;
# J. Avigad, J. Harrison. [https://www.cl.cam.ac.uk/~jrh13/papers/cacm.pdf Formally verified Mathematics]. &lt;br /&gt;
# H. Barendregt y F. Wiedijk. [http://ftp.science.ru.nl/CSI/CompMath.Found/Barendregt-Wiedijk.pdf The challenge of computer mathematics].&lt;br /&gt;
# K. Buzzard. [http://wwwf.imperial.ac.uk/~buzzard/one_off_lectures/msr.pdf The future of mathematics?]&lt;br /&gt;
# C.S. Calude y C. Müller [https://www.cs.auckland.ac.nz/~cristian/crispapers/56250217.pdf Formal proof: reconciling correctness and understanding].&lt;br /&gt;
# R. David. [http://www.lama.univ-savoie.fr/~david/ftp/amphis.pdf Peut-on faire des Mathématiques avec un ordinateur?]&lt;br /&gt;
# R. David y C. Raffalli. [http://www.lama.univ-savoie.fr/~david/ftp/amphi07.pdf Peut-on avoir confiance en l’informatique?]&lt;br /&gt;
# M. Davis. [http://www.cs.nyu.edu/cs/faculty/davism/early.ps The early history of automated deduction].&lt;br /&gt;
# J.P. Delahaye [http://interstices.info/jcms/int_63417/du-reve-a-la-realite-des-preuves Du rêve à la réalité des preuves]. &amp;#039;&amp;#039;Interstices&amp;#039;&amp;#039;, 8 de julio de 2012.&lt;br /&gt;
# J. Germoni [http://images.math.cnrs.fr/Coq-et-caracteres.html Coq et caractères: Preuve formelle du théorème de Feit et Thompson]. &amp;#039;&amp;#039;Images des Mathématiques&amp;#039;&amp;#039;, CNRS, 23 de noviembre de 2012. &lt;br /&gt;
# H. Geuvers [http://www.ias.ac.in/article/fulltext/sadh/034/01/0003-0025 Proof assistants: History, ideas and future]. &amp;#039;&amp;#039;Sadhana&amp;#039;&amp;#039;, Vol. 34-1, pp. 3-25, février 2009.&lt;br /&gt;
# H. Geuvers. [http://www.cs.ru.nl/~herman/ictopen.pdf Can the computer really help us to prove theorems?]&lt;br /&gt;
# G. Gonthier [http://www.ams.org/notices/200811/tx081101382p.pdf The four-color theorem]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1382-1393, 2008.&lt;br /&gt;
# T. Hales. [http://www.ams.org/notices/200811/tx081101370p.pdf Formal proof]. &amp;#039;&amp;#039;Notices of AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) pp. 1370-1380.&lt;br /&gt;
# J. Harrison. [http://www.cl.cam.ac.uk/~jrh13/papers/ab.html A short survey of automated reasoning]. &amp;#039;&amp;#039;Lecture Notes in Computer Science&amp;#039;&amp;#039;, Vol. 4545, pp. 334-349, 2007.&lt;br /&gt;
# J. Harrison. [http://www.ams.org/notices/200811/tx081101395p.pdf Formal proof: Theory and practice]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) p.1395-1406. &lt;br /&gt;
# J. Harrison, J. Urban y F. Wiedijk [http://www.cl.cam.ac.uk/~jrh13/papers/joerg.pdf History of interactive theorem proving].&lt;br /&gt;
# A. Koutsoukou-Argyraki. [https://www.researchgate.net/profile/Angeliki_Koutsoukou-Argyraki/publication/334549483_FORMALISING_MATHEMATICS_-IN_PRAXIS_A_MATHEMATICIAN%27S_VERY_FIRST_EXPERIENCES_WITH_ISABELLEHOL/links/5d30f782299bf1547cc25f63/FORMALISING-MATHEMATICS-IN-PRAXIS-A-MATHEMATICIANS-VERY-FIRST-EXPERIENCES-WITH-ISABELLE-HOL.pdf Formalising Mathematics-in praxis; A mathematician&amp;#039;s very first experiences with Isabelle/HOL]]. &lt;br /&gt;
# G. Kolata. [http://www.nytimes.com/library/cyber/week/1210math.html Computer math proof shows reasoning power]. &amp;#039;&amp;#039;The New York Times&amp;#039;&amp;#039;, 10 de diciembre de 1996.&lt;br /&gt;
# A. Mahboubi [https://jncf2018.lip6.fr/files/lecture-notes/jncf2018-mahboubi.pdf Calcul formel et preuves formelles].&lt;br /&gt;
# A. Mahboubi. [http://bit.ly/2ch3xEa Machine-checked mathematics]. &lt;br /&gt;
# A. Mahboubi. [http://bit.ly/1qLTVBm Un ordinateur pour vérifier les preuves mathématiques]. &lt;br /&gt;
# D. MacKenzie [https://backspaces.net/temp/Spring2010Seminar/18%20unconventional%20essays%20on%20the%20nature%20of%20mathematics.pdf#page=147 Computers and the sociology of mathematical proof].&lt;br /&gt;
# C. Nalon. [https://www.mat.ufrn.br/cade-27/wp-content/uploads/2019/09/2019CN-CADE.pdf Machine-oriented reasoning].&lt;br /&gt;
# J. Narboux. [https://hal.inria.fr/hal-00809448/document Les assistants de preuve, ou comment avoir confiance en ses démonstrations].&lt;br /&gt;
# L.C. Paulson. [https://www.cl.cam.ac.uk/~lp15/papers/Formath/Sophia2017.pdf Proof assistants: from symbolic logic to real mathematics?] &lt;br /&gt;
# L.C. Paulson, T. Nipkow y M. Wenzel. [https://arxiv.org/abs/1907.02836 From LCF to Isabelle/HOL].&lt;br /&gt;
# T. Ringer et als. [https://arxiv.org/abs/2003.06458 QED at large: A survey of engineering of formally verified software].  &lt;br /&gt;
# P. Schnider. [http://bit.ly/1Gxxmx6 An introduction to proof assistants]. &lt;br /&gt;
# J. Schöpf y S. Widauer [http://cl-informatik.uibk.ac.at/teaching/ws17/vs/reports/SWreport.pdf History of interactive theorem proving].&lt;br /&gt;
# F.R. Villatoro. [http://francis.naukas.com/2017/07/29/la-demostracion-matematica-mas-larga La demostración matemática más larga]. &lt;br /&gt;
# F. Wiedijk [http://www.cs.ru.nl/~freek/100/ Formalizing the «top 100» of mathematical theorems].&lt;br /&gt;
# F. Wiedijk [http://www.ams.org/notices/200811/tx081101408p.pdf Formal proof - Getting started]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1408-1414, 2008.&lt;br /&gt;
# F. Wiedijk, [http://mizar.org/trybulec65/8.pdf The QED manifesto revisited]. &amp;#039;&amp;#039;Studies in Logic, Grammar and Rhetoric&amp;#039;&amp;#039;, Vol. 10(23), pp. 121-133, 2007.&lt;br /&gt;
&lt;br /&gt;
== Referencias sobre Isabelle/HOL ==&lt;br /&gt;
# B. Blumson [https://philpapers.org/go.pl?id=BLUIFP&amp;amp;u=https%3A%2F%2Fphilpapers.org%2Farchive%2FBLUIFP.pdf Isabelle for philosophers]. &lt;br /&gt;
# B. Grechuk [https://web.cs.wpi.edu/~dd/resources_isabelle/isabelle_primer_mathematicians.pdf Isabelle primer for mathematicians].&lt;br /&gt;
# T. Nipkow [https://isabelle.in.tum.de/doc/prog-prove.pdf Programming and proving in Isabelle/HOL]. &lt;br /&gt;
# T. Nipkow, M. Wenzel y L.C. Paulson [http://isabelle.in.tum.de/doc/tutorial.pdf A proof assistant for higher-order logic].&lt;br /&gt;
# A. Steen [https://git.imp.fu-berlin.de/leo-iii/compmeta_pub/raw/master/exercises/resources/Isabelle_ND_cheatsheet.pdf Mapping of ND proof templates to Isabelle formalization].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/dist/library/HOL/HOL/document.pdf Isabelle/HOL — Higher-Order Logic]. &lt;br /&gt;
# M. Wenzel [http://isabelle.in.tum.de/doc/isar-ref.pdf The Isabelle/Isar Reference Manual]. &lt;br /&gt;
# M. Wenzel [http://typessummerschool07.cs.unibo.it/courses/wenzel-isar-quickref.pdf The Isabelle/Isar quick reference].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/documentation.html Tutorials and manuals for Isabelle].&lt;br /&gt;
&lt;br /&gt;
== Lecturas complementarias ==&lt;br /&gt;
=== Programación funcional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/i1m-19/temas/2019-20-I1M-temas-PF.pdf Temas de &amp;quot;Programación funcional&amp;quot;]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2019.&lt;br /&gt;
# J.A. Alonso y M.J. Hidalgo [http://www.cs.us.es/~jalonso/publicaciones/Piensa_en_Haskell.pdf Piensa en Haskell (Ejercicios de programación funcional con Haskell)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2012.&lt;br /&gt;
# G. Hutton [http://bit.ly/2pQofC2 Programming in Haskell]. Cambridge University Press, 2007. &lt;br /&gt;
# M. Lipovača [http://aprendehaskell.es ¡Aprende Haskell por el bien de todos!].&lt;br /&gt;
# M. Lipovaca y J. Brock [https://mybinder.org/v2/gh/jamesdbrock/learn-you-a-haskell-notebook/master?urlpath=lab/tree/learn_you_a_haskell/00-preface.ipynb Learn you a Haskell for great good!]&lt;br /&gt;
# T. Nipkow [https://www21.in.tum.de/teaching/fpv/WS1920/slides.pdf Functional programmingand verification]. TUM, 2019.&lt;br /&gt;
&lt;br /&gt;
=== Lógica computacional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/li-15/temas/temas-LI-2015-16.pdf Temas de &amp;quot;Lógica informática&amp;quot; (2015-16)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2015.&lt;br /&gt;
# K. Broda, S. Eisenbach, H. Khoshnevisan y S. Vickers [https://www.doc.ic.ac.uk/~susan/firstyearbook.pdf Reasoned programming]. Imperial College, 1994.&lt;br /&gt;
# M. Huth y M. Ryan [http://bit.ly/2e8dFEm Logic in computer science: Modelling and reasoning about systems]. Cambridge University Press, 2004. (Incluye el [http://www.cs.bham.ac.uk/research/lics/tutor/index.html tutor en la Red]).&lt;br /&gt;
&lt;br /&gt;
== Cursos relacionados ==&lt;br /&gt;
=== Cursos con Isabelle/HOL ===&lt;br /&gt;
# Clemens Ballarin. [http://cl-informatik.uibk.ac.at/teaching/ss08/atp/introduction.php Automatic Deduction]. (Univ de Innsbruck, 2008).&lt;br /&gt;
# Clemens Ballarin y Gerwin Klein [http://isabelle.in.tum.de/coursematerial/IJCAR04 Introduction to the Isabelle Proof Assistant]. (en el IJCAR-2004).&lt;br /&gt;
# Clemens Ballarin y Tjark Weber. [http://cl-informatik.uibk.ac.at/teaching/ws06/atp/introduction.php Automated Theorem Proving in Isabelle/HOL]. (Univ. de Innsbruck, 2006-07).&lt;br /&gt;
# A.D. Brucker, D. Basin, J.G. Smaus y B. Wolff. [http://archiv.infsec.ethz.ch/education/permanent/csmr.html Computer-supported Modeling and Reasoning]. (ETH Zurich, 2011).&lt;br /&gt;
# Mads Dam. [http://www.csc.kth.se/utbildning/kth/kurser/DD2453/aform07/ Advanced formal methods]. (KTH Royal Institute of Technology, 2007).&lt;br /&gt;
# Jacques Fleuriot. [http://www.inf.ed.ac.uk/teaching/courses/ar Automated reasoning]. (Univ. de Edimburgo, 2016-17).&lt;br /&gt;
# Thomas Genet [http://www.irisa.fr/celtique/genet/ACF Software formal analysis and design]. (Univ. de Rennes)&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~kleing/teaching/thprv-04 Theorem Proving - Principles, Techniques, Applications]. (NICTA, 2004).&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~cs4161/index.html Advanced Topics in Software Verification]. (NICTA, 2012).&lt;br /&gt;
# Joao Marcos. [http://www.dimap.ufrn.br/~jmarcos/courses/LC/Ementa.htm Lógica computacional: Demonstração assistida e semi-automática de teoremas].(UFRN, 2000).&lt;br /&gt;
# Tobias Nipkow. [http://www21.in.tum.de/teaching/semantik/WS1617/ Semantics of programming languages]. (Univ. de Munich, 2012-13).&lt;br /&gt;
# Tobias Nipkow. [http://isabelle.in.tum.de/coursematerial/PSV2009-1 Theorem Proving with Isabelle/HOL An Intensive Course]. &lt;br /&gt;
# Larry Paulson. [http://www.cl.cam.ac.uk/teaching/0910/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2009-10).&lt;br /&gt;
# Arnd Poetzsch-Heffter. [https://softech.informatik.uni-kl.de/homepage/de/teaching/SVHOL14/ Specification and Verification with Higher-Order Logic]. &lt;br /&gt;
# Jan-Georg Smaus. [http://www.informatik.uni-freiburg.de/~ki/teaching/ws0910/csmr/lecture.html Computer-supported modeling and reasoning]. (Univ. de Feiburgo, 2009).&lt;br /&gt;
# Christian Sternagel [http://cl-informatik.uibk.ac.at/teaching/ss11/eve/content.php Experiments in Verification – Introduction to Isabelle/HOL]. (Univ. de Innsbruck, 2011-12).&lt;br /&gt;
# Tjark Weber. [http://www.cl.cam.ac.uk/teaching/1011/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2010-11).&lt;br /&gt;
&lt;br /&gt;
=== Cursos con Coq ===&lt;br /&gt;
# Yves Bertot, Pierre Casteran, Benjamin Gregoire, Pierre Letouzey y Assia Mahboubi [http://www.di.ens.fr/~zappa/teaching/coq/ecole11 Modelling and verifying algorithms in Coq: an introduction]. (INRIA Paris-Rocquencourt, 14-18 noviembre 2011).&lt;br /&gt;
# Adam Chlipala [http://stellar.mit.edu/S/course/6/fa11/6.892/ Interactive computer theorem proving]. (MIT, 2012-13).&lt;br /&gt;
# Adam Chlipala y Armando Solar Lezama [https://stellar.mit.edu/S/course/6/fa13/6.820/index.html Foundations of program analysis]. (MIT, 2013-14).&lt;br /&gt;
# M. Greenberg [http://www.cs.pomona.edu/~michael/courses/csci054s18/ Discrete mathematics and functional programming]. &lt;br /&gt;
# Benjamin C. Pierce et als. [https://softwarefoundations.cis.upenn.edu/lf-current/index.html Software foundations (Vol. 1: Logical foundations)].&lt;br /&gt;
# Benjamin C. Pierce [https://www.seas.upenn.edu/~cis500/current/index.html Software foundations] (Univ. de Pensilvania, 2018).&lt;br /&gt;
# G. Smolka [https://courses.ps.uni-saarland.de/icl_18/2/Resources Introduction to computational logic] (Univ. de Sarre, 2018).&lt;br /&gt;
&lt;br /&gt;
=== Otros cursos ===&lt;br /&gt;
# José A. Alonso [http://www.cs.us.es/~jalonso/cursos/li-12/ Lógica informática] (Univ. de Sevilla, 2012-13).&lt;br /&gt;
# Thorsten Altenkirch y Peter Morris [http://www.cs.nott.ac.uk/~txa/g52ifr Introduction to formal reasoning] (Univ. de Nottingham, 2010-11).&lt;br /&gt;
# J. Blanchette y J. Höltz [https://lean-forward.github.io/logical-verification/2018 Logical verification]. (Vrije Universiteit Amsterdam, 2018-19). &lt;br /&gt;
# Pierre Castéran [http://www.labri.fr/perso/casteran/FM/Logique/index.html Logic (Master In Verification)] (Univ. de Burdeos, 2011-12).&lt;br /&gt;
# Robby Findler [http://www.eecs.northwestern.edu/~robby/courses/395-495-2013-fall Certified programming with dependent types]. (Northwestern, 2013-14).&lt;br /&gt;
# Carlos Luna y Gustavo Betarte. [https://eva.fing.edu.uy/course/view.php?id=363 Construcción formal de programas en teoría de tipos]. (Univ. de la República, Uruguay, 2013-14).&lt;br /&gt;
# Ian Hodkinson [http://www.doc.ic.ac.uk/~imh/teaching/140_logic/logic.html Logic] (Imperial College, Londres, 2010-11).&lt;br /&gt;
# Peter Lucas [http://www.cs.ru.nl/~peterl/teaching/KeR/ Knowledge Representation and Reasoning] (Radboud University # egen, 2011-12).&lt;br /&gt;
# Larry Paulson [http://www.cl.cam.ac.uk/Teaching/current/LogicProof/ Logic and Proof] (Univ. de Cambridge, 2011-12).&lt;br /&gt;
# David Pichardie [http://www.irisa.fr/celtique/pichardie/teaching/M2/MDV/ Méthode de vérification] (Universidad de Rennes, 2006-07).&lt;br /&gt;
&lt;br /&gt;
== Bibliotecas de ejemplos de verificación ==&lt;br /&gt;
# [http://afp.sourceforge.net Archive of Formal Proofs].&lt;br /&gt;
# [http://www.cs.ru.nl/~freek/100 Formalizing 100 Theorems].&lt;br /&gt;
# [http://toccata.lri.fr/gallery Gallery of verified programs].&lt;br /&gt;
# [http://automatedreasoning.net/ Larry Wos&amp;#039; Notebooks].&lt;br /&gt;
# [http://www.cs.miami.edu/~tptp/ The TPTP Problem Library for Automated Theorem Proving].&lt;br /&gt;
# [http://www.macs.hw.ac.uk/vstte10/Competition.html The 1st Verified Software Competition].&lt;br /&gt;
# [https://sites.google.com/site/vstte2012/compet The 2nd Verified Software Competition].&lt;br /&gt;
# [http://verifythis.cost-ic0701.org VerifyThis (A collection of verification benchmarks].&lt;br /&gt;
&lt;br /&gt;
== Artículos recientes ==&lt;br /&gt;
&lt;br /&gt;
Hay dos listas de artículos recientes:&lt;br /&gt;
&lt;br /&gt;
* en [https://twitter.com/search?f=tweets&amp;amp;q=%23ITP%20OR%20%23IsabelleHOL%20OR%20%23Coq%20OR%20%23Agda%20OR%20%23LeanProver%20OR%20%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd Twitter] que contiene enlaces a los artículos de razonamiento automático y demostración asistida por ordenador que se están publicando y&lt;br /&gt;
* en [https://www.glc.us.es/~jalonso/vestigium/category/resena/ Vestigium] que contiene una reseña de los más destacados.&lt;br /&gt;
&lt;br /&gt;
== Ofertas de trabajo ==&lt;br /&gt;
&lt;br /&gt;
En [https://github.com/jaalonso/Trabajos-MULCIA GitHub] se encuentra una recopilaciónn las ofertas de trabajo de interés para los estudiantes del Máster Universitario en Lógica, Computación e Inteligencia Artificial de la Universidad de Sevilla.&lt;br /&gt;
&lt;br /&gt;
Están en orden cronológico inverso por la fecha de su publicación en [https://twitter.com/search?l=&amp;amp;q=%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd&amp;amp;lang=es Twitter].&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1070</id>
		<title>Documentación</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1070"/>
		<updated>2022-02-08T17:01:16Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* Cursos con Isabelle/HOL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En esta página se recogen en enlaces que sirven de documentación al curso de &amp;quot;Razonamiento automático&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Vídeos ==&lt;br /&gt;
&lt;br /&gt;
* Vídeos de deducción natural con Pandora: [http://bit.ly/1tqZIOe ejemplo 1] y [http://bit.ly/1nWAVp4 ejemplo 2].&lt;br /&gt;
&lt;br /&gt;
== Visiones generales de la DAO ==&lt;br /&gt;
&lt;br /&gt;
# J.A. Alonso. [http://goo.gl/NWk7b Razonamiento formalizado: Del sueño a la realidad de las pruebas]. &lt;br /&gt;
# J.M. Aransay y C. Domínguez. [http://gaceta.rsme.es/abrir.php?id=1057 Demostración asistida por ordenador]. &lt;br /&gt;
# A. Asperti. [https://arxiv.org/abs/1701.03602 Automatic verification and interactive theorem proving]. &lt;br /&gt;
# A. Asperti. [http://www.cs.unibo.it/~asperti/SLIDES/itp.pdf A survey on interactive theorem proving]. &lt;br /&gt;
# J. Avigad. [http://bit.ly/1hsA8Ew Formal verification, interactive theorem proving, and automated reasoning].&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/icerm.pdf Interactive theorem proving, automated reasoning, and mathematical computation]. ICERM, 14 de diciembre de 2012.&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/london.pdf Automated reasoning for the working mathematician].&lt;br /&gt;
# J. Avigad, J. Harrison. [https://www.cl.cam.ac.uk/~jrh13/papers/cacm.pdf Formally verified Mathematics]. &lt;br /&gt;
# H. Barendregt y F. Wiedijk. [http://ftp.science.ru.nl/CSI/CompMath.Found/Barendregt-Wiedijk.pdf The challenge of computer mathematics].&lt;br /&gt;
# K. Buzzard. [http://wwwf.imperial.ac.uk/~buzzard/one_off_lectures/msr.pdf The future of mathematics?]&lt;br /&gt;
# C.S. Calude y C. Müller [https://www.cs.auckland.ac.nz/~cristian/crispapers/56250217.pdf Formal proof: reconciling correctness and understanding].&lt;br /&gt;
# R. David. [http://www.lama.univ-savoie.fr/~david/ftp/amphis.pdf Peut-on faire des Mathématiques avec un ordinateur?]&lt;br /&gt;
# R. David y C. Raffalli. [http://www.lama.univ-savoie.fr/~david/ftp/amphi07.pdf Peut-on avoir confiance en l’informatique?]&lt;br /&gt;
# M. Davis. [http://www.cs.nyu.edu/cs/faculty/davism/early.ps The early history of automated deduction].&lt;br /&gt;
# J.P. Delahaye [http://interstices.info/jcms/int_63417/du-reve-a-la-realite-des-preuves Du rêve à la réalité des preuves]. &amp;#039;&amp;#039;Interstices&amp;#039;&amp;#039;, 8 de julio de 2012.&lt;br /&gt;
# J. Germoni [http://images.math.cnrs.fr/Coq-et-caracteres.html Coq et caractères: Preuve formelle du théorème de Feit et Thompson]. &amp;#039;&amp;#039;Images des Mathématiques&amp;#039;&amp;#039;, CNRS, 23 de noviembre de 2012. &lt;br /&gt;
# H. Geuvers [http://www.ias.ac.in/article/fulltext/sadh/034/01/0003-0025 Proof assistants: History, ideas and future]. &amp;#039;&amp;#039;Sadhana&amp;#039;&amp;#039;, Vol. 34-1, pp. 3-25, février 2009.&lt;br /&gt;
# H. Geuvers. [http://www.cs.ru.nl/~herman/ictopen.pdf Can the computer really help us to prove theorems?]&lt;br /&gt;
# G. Gonthier [http://www.ams.org/notices/200811/tx081101382p.pdf The four-color theorem]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1382-1393, 2008.&lt;br /&gt;
# T. Hales. [http://www.ams.org/notices/200811/tx081101370p.pdf Formal proof]. &amp;#039;&amp;#039;Notices of AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) pp. 1370-1380.&lt;br /&gt;
# J. Harrison. [http://www.cl.cam.ac.uk/~jrh13/papers/ab.html A short survey of automated reasoning]. &amp;#039;&amp;#039;Lecture Notes in Computer Science&amp;#039;&amp;#039;, Vol. 4545, pp. 334-349, 2007.&lt;br /&gt;
# J. Harrison. [http://www.ams.org/notices/200811/tx081101395p.pdf Formal proof: Theory and practice]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) p.1395-1406. &lt;br /&gt;
# J. Harrison, J. Urban y F. Wiedijk [http://www.cl.cam.ac.uk/~jrh13/papers/joerg.pdf History of interactive theorem proving].&lt;br /&gt;
# A. Koutsoukou-Argyraki. [https://www.researchgate.net/profile/Angeliki_Koutsoukou-Argyraki/publication/334549483_FORMALISING_MATHEMATICS_-IN_PRAXIS_A_MATHEMATICIAN%27S_VERY_FIRST_EXPERIENCES_WITH_ISABELLEHOL/links/5d30f782299bf1547cc25f63/FORMALISING-MATHEMATICS-IN-PRAXIS-A-MATHEMATICIANS-VERY-FIRST-EXPERIENCES-WITH-ISABELLE-HOL.pdf Formalising Mathematics-in praxis; A mathematician&amp;#039;s very first experiences with Isabelle/HOL]]. &lt;br /&gt;
# G. Kolata. [http://www.nytimes.com/library/cyber/week/1210math.html Computer math proof shows reasoning power]. &amp;#039;&amp;#039;The New York Times&amp;#039;&amp;#039;, 10 de diciembre de 1996.&lt;br /&gt;
# A. Mahboubi [https://jncf2018.lip6.fr/files/lecture-notes/jncf2018-mahboubi.pdf Calcul formel et preuves formelles].&lt;br /&gt;
# A. Mahboubi. [http://bit.ly/2ch3xEa Machine-checked mathematics]. &lt;br /&gt;
# A. Mahboubi. [http://bit.ly/1qLTVBm Un ordinateur pour vérifier les preuves mathématiques]. &lt;br /&gt;
# D. MacKenzie [https://backspaces.net/temp/Spring2010Seminar/18%20unconventional%20essays%20on%20the%20nature%20of%20mathematics.pdf#page=147 Computers and the sociology of mathematical proof].&lt;br /&gt;
# C. Nalon. [https://www.mat.ufrn.br/cade-27/wp-content/uploads/2019/09/2019CN-CADE.pdf Machine-oriented reasoning].&lt;br /&gt;
# J. Narboux. [https://hal.inria.fr/hal-00809448/document Les assistants de preuve, ou comment avoir confiance en ses démonstrations].&lt;br /&gt;
# L.C. Paulson. [https://www.cl.cam.ac.uk/~lp15/papers/Formath/Sophia2017.pdf Proof assistants: from symbolic logic to real mathematics?] &lt;br /&gt;
# L.C. Paulson, T. Nipkow y M. Wenzel. [https://arxiv.org/abs/1907.02836 From LCF to Isabelle/HOL].&lt;br /&gt;
# T. Ringer et als. [https://arxiv.org/abs/2003.06458 QED at large: A survey of engineering of formally verified software].  &lt;br /&gt;
# P. Schnider. [http://bit.ly/1Gxxmx6 An introduction to proof assistants]. &lt;br /&gt;
# J. Schöpf y S. Widauer [http://cl-informatik.uibk.ac.at/teaching/ws17/vs/reports/SWreport.pdf History of interactive theorem proving].&lt;br /&gt;
# F.R. Villatoro. [http://francis.naukas.com/2017/07/29/la-demostracion-matematica-mas-larga La demostración matemática más larga]. &lt;br /&gt;
# F. Wiedijk [http://www.cs.ru.nl/~freek/100/ Formalizing the «top 100» of mathematical theorems].&lt;br /&gt;
# F. Wiedijk [http://www.ams.org/notices/200811/tx081101408p.pdf Formal proof - Getting started]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1408-1414, 2008.&lt;br /&gt;
# F. Wiedijk, [http://mizar.org/trybulec65/8.pdf The QED manifesto revisited]. &amp;#039;&amp;#039;Studies in Logic, Grammar and Rhetoric&amp;#039;&amp;#039;, Vol. 10(23), pp. 121-133, 2007.&lt;br /&gt;
&lt;br /&gt;
== Referencias sobre Isabelle/HOL ==&lt;br /&gt;
# B. Blumson [https://philpapers.org/go.pl?id=BLUIFP&amp;amp;u=https%3A%2F%2Fphilpapers.org%2Farchive%2FBLUIFP.pdf Isabelle for philosophers]. &lt;br /&gt;
# B. Grechuk [https://web.cs.wpi.edu/~dd/resources_isabelle/isabelle_primer_mathematicians.pdf Isabelle primer for mathematicians].&lt;br /&gt;
# T. Nipkow [https://isabelle.in.tum.de/doc/prog-prove.pdf Programming and proving in Isabelle/HOL]. &lt;br /&gt;
# T. Nipkow, M. Wenzel y L.C. Paulson [http://isabelle.in.tum.de/doc/tutorial.pdf A proof assistant for higher-order logic].&lt;br /&gt;
# A. Steen [https://git.imp.fu-berlin.de/leo-iii/compmeta_pub/raw/master/exercises/resources/Isabelle_ND_cheatsheet.pdf Mapping of ND proof templates to Isabelle formalization].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/dist/library/HOL/HOL/document.pdf Isabelle/HOL — Higher-Order Logic]. &lt;br /&gt;
# M. Wenzel [http://isabelle.in.tum.de/doc/isar-ref.pdf The Isabelle/Isar Reference Manual]. &lt;br /&gt;
# M. Wenzel [http://typessummerschool07.cs.unibo.it/courses/wenzel-isar-quickref.pdf The Isabelle/Isar quick reference].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/documentation.html Tutorials and manuals for Isabelle].&lt;br /&gt;
&lt;br /&gt;
== Lecturas complementarias ==&lt;br /&gt;
=== Programación funcional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/i1m-19/temas/2019-20-I1M-temas-PF.pdf Temas de &amp;quot;Programación funcional&amp;quot;]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2019.&lt;br /&gt;
# J.A. Alonso y M.J. Hidalgo [http://www.cs.us.es/~jalonso/publicaciones/Piensa_en_Haskell.pdf Piensa en Haskell (Ejercicios de programación funcional con Haskell)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2012.&lt;br /&gt;
# G. Hutton [http://bit.ly/2pQofC2 Programming in Haskell]. Cambridge University Press, 2007. &lt;br /&gt;
# M. Lipovača [http://aprendehaskell.es ¡Aprende Haskell por el bien de todos!].&lt;br /&gt;
# M. Lipovaca y J. Brock [https://mybinder.org/v2/gh/jamesdbrock/learn-you-a-haskell-notebook/master?urlpath=lab/tree/learn_you_a_haskell/00-preface.ipynb Learn you a Haskell for great good!]&lt;br /&gt;
# T. Nipkow [https://www21.in.tum.de/teaching/fpv/WS1920/slides.pdf Functional programmingand verification]. TUM, 2019.&lt;br /&gt;
&lt;br /&gt;
=== Lógica computacional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/li-15/temas/temas-LI-2015-16.pdf Temas de &amp;quot;Lógica informática&amp;quot; (2015-16)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2015.&lt;br /&gt;
# K. Broda, S. Eisenbach, H. Khoshnevisan y S. Vickers [https://www.doc.ic.ac.uk/~susan/firstyearbook.pdf Reasoned programming]. Imperial College, 1994.&lt;br /&gt;
# M. Huth y M. Ryan [http://bit.ly/2e8dFEm Logic in computer science: Modelling and reasoning about systems]. Cambridge University Press, 2004. (Incluye el [http://www.cs.bham.ac.uk/research/lics/tutor/index.html tutor en la Red]).&lt;br /&gt;
&lt;br /&gt;
== Cursos relacionados ==&lt;br /&gt;
=== Cursos con Isabelle/HOL ===&lt;br /&gt;
# Clemens Ballarin. [http://cl-informatik.uibk.ac.at/teaching/ss08/atp/introduction.php Automatic Deduction]. (Univ de Innsbruck, 2008).&lt;br /&gt;
# Clemens Ballarin y Gerwin Klein [http://isabelle.in.tum.de/coursematerial/IJCAR04 Introduction to the Isabelle Proof Assistant]. (en el IJCAR-2004).&lt;br /&gt;
# Clemens Ballarin y Tjark Weber. [http://cl-informatik.uibk.ac.at/teaching/ws06/atp/introduction.php Automated Theorem Proving in Isabelle/HOL]. (Univ. de Innsbruck, 2006-07).&lt;br /&gt;
# A.D. Brucker, D. Basin, J.G. Smaus y B. Wolff. [http://archiv.infsec.ethz.ch/education/permanent/csmr.html Computer-supported Modeling and Reasoning]. (ETH Zurich, 2011).&lt;br /&gt;
# Mads Dam. [http://www.csc.kth.se/utbildning/kth/kurser/DD2453/aform07/ Advanced formal methods]. (KTH Royal Institute of Technology, 2007).&lt;br /&gt;
# Jacques Fleuriot. [http://www.inf.ed.ac.uk/teaching/courses/ar Automated reasoning]. (Univ. de Edimburgo, 2016-17).&lt;br /&gt;
# Thomas Genet [http://www.irisa.fr/celtique/genet/ACF Software formal analysis and design]. (Univ. de Rennes)&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~kleing/teaching/thprv-04 Theorem Proving - Principles, Techniques, Applications]. (NICTA, 2004).&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~cs4161/index.html Advanced Topics in Software Verification]. (NICTA, 2012).&lt;br /&gt;
# Joao Marcos. [http://www.dimap.ufrn.br/~jmarcos/courses/LC/Ementa.htm Lógica computacional: Demonstração assistida e semi-automática de teoremas].(UFRN, 2000).&lt;br /&gt;
# Tobias Nipkow. [http://www21.in.tum.de/teaching/semantik/WS1617/ Semantics of programming languages]. (Univ. de Munich, 2012-13).&lt;br /&gt;
# Tobias Nipkow. [http://isabelle.in.tum.de/coursematerial/PSV2009-1 Theorem Proving with Isabelle/HOL An Intensive Course]. &lt;br /&gt;
# Larry Paulson. [http://www.cl.cam.ac.uk/teaching/0910/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2009-10).&lt;br /&gt;
# Arnd Poetzsch-Heffter. [https://softech.informatik.uni-kl.de/homepage/de/teaching/SVHOL14/ Specification and Verification with Higher-Order Logic]. &lt;br /&gt;
# Jan-Georg Smaus. [http://www.informatik.uni-freiburg.de/~ki/teaching/ws0910/csmr/lecture.html Computer-supported modeling and reasoning]. (Univ. de Feiburgo, 2009).&lt;br /&gt;
# Christian Sternagel [http://cl-informatik.uibk.ac.at/teaching/ss11/eve/content.php Experiments in Verification – Introduction to Isabelle/HOL]. (Univ. de Innsbruck, 2011-12).&lt;br /&gt;
# Tjark Weber. [http://www.cl.cam.ac.uk/teaching/1011/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2010-11).&lt;br /&gt;
&lt;br /&gt;
=== Cursos con Coq ===&lt;br /&gt;
# Yves Bertot, Pierre Casteran, Benjamin Gregoire, Pierre Letouzey y Assia Mahboubi [http://www.di.ens.fr/~zappa/teaching/coq/ecole11 Modelling and verifying algorithms in Coq: an introduction]. (INRIA Paris-Rocquencourt, 14-18 noviembre 2011).&lt;br /&gt;
# Adam Chlipala [http://stellar.mit.edu/S/course/6/fa11/6.892/ Interactive computer theorem proving]. (MIT, 2012-13).&lt;br /&gt;
# Adam Chlipala y Armando Solar Lezama [https://stellar.mit.edu/S/course/6/fa13/6.820/index.html Foundations of program analysis]. (MIT, 2013-14).&lt;br /&gt;
# M. Greenberg [http://www.cs.pomona.edu/~michael/courses/csci054s18/ Discrete mathematics and functional programming]. &lt;br /&gt;
# Benjamin C. Pierce et als. [https://softwarefoundations.cis.upenn.edu/lf-current/index.html Software foundations (Vol. 1: Logical foundations)].&lt;br /&gt;
# Benjamin C. Pierce [https://www.seas.upenn.edu/~cis500/current/index.html Software foundations] (Univ. de Pensilvania, 2018).&lt;br /&gt;
# G. Smolka [https://courses.ps.uni-saarland.de/icl_18/2/Resources Introduction to computational logic] (Univ. de Sarre, 2018).&lt;br /&gt;
&lt;br /&gt;
=== Otros cursos ===&lt;br /&gt;
# José A. Alonso [http://www.cs.us.es/~jalonso/cursos/li/ Lógica informática] (Univ. de Sevilla, 2012-13).&lt;br /&gt;
# Thorsten Altenkirch y Peter Morris [http://www.cs.nott.ac.uk/~txa/g52ifr Introduction to formal reasoning] (Univ. de Nottingham, 2010-11).&lt;br /&gt;
# J. Blanchette y J. Höltz [https://lean-forward.github.io/logical-verification/2018 Logical verification]. (Vrije Universiteit Amsterdam, 2018-19). &lt;br /&gt;
# Pierre Castéran [http://www.labri.fr/perso/casteran/FM/Logique/index.html Logic (Master In Verification)] (Univ. de Burdeos, 2011-12).&lt;br /&gt;
# Robby Findler [http://www.eecs.northwestern.edu/~robby/courses/395-495-2013-fall Certified programming with dependent types]. (Northwestern, 2013-14).&lt;br /&gt;
# Carlos Luna y Gustavo Betarte. [https://eva.fing.edu.uy/course/view.php?id=363 Construcción formal de programas en teoría de tipos]. (Univ. de la República, Uruguay, 2013-14).&lt;br /&gt;
# Ian Hodkinson [http://www.doc.ic.ac.uk/~imh/teaching/140_logic/logic.html Logic] (Imperial College, Londres, 2010-11).&lt;br /&gt;
# Peter Lucas [http://www.cs.ru.nl/~peterl/teaching/KeR/ Knowledge Representation and Reasoning] (Radboud University # egen, 2011-12).&lt;br /&gt;
# Larry Paulson [http://www.cl.cam.ac.uk/Teaching/current/LogicProof/ Logic and Proof] (Univ. de Cambridge, 2011-12).&lt;br /&gt;
# David Pichardie [http://www.irisa.fr/celtique/pichardie/teaching/M2/MDV/ Méthode de vérification] (Universidad de Rennes, 2006-07).&lt;br /&gt;
&lt;br /&gt;
== Bibliotecas de ejemplos de verificación ==&lt;br /&gt;
# [http://afp.sourceforge.net Archive of Formal Proofs].&lt;br /&gt;
# [http://www.cs.ru.nl/~freek/100 Formalizing 100 Theorems].&lt;br /&gt;
# [http://toccata.lri.fr/gallery Gallery of verified programs].&lt;br /&gt;
# [http://automatedreasoning.net/ Larry Wos&amp;#039; Notebooks].&lt;br /&gt;
# [http://www.cs.miami.edu/~tptp/ The TPTP Problem Library for Automated Theorem Proving].&lt;br /&gt;
# [http://www.macs.hw.ac.uk/vstte10/Competition.html The 1st Verified Software Competition].&lt;br /&gt;
# [https://sites.google.com/site/vstte2012/compet The 2nd Verified Software Competition].&lt;br /&gt;
# [http://verifythis.cost-ic0701.org VerifyThis (A collection of verification benchmarks].&lt;br /&gt;
&lt;br /&gt;
== Artículos recientes ==&lt;br /&gt;
&lt;br /&gt;
Hay dos listas de artículos recientes:&lt;br /&gt;
&lt;br /&gt;
* en [https://twitter.com/search?f=tweets&amp;amp;q=%23ITP%20OR%20%23IsabelleHOL%20OR%20%23Coq%20OR%20%23Agda%20OR%20%23LeanProver%20OR%20%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd Twitter] que contiene enlaces a los artículos de razonamiento automático y demostración asistida por ordenador que se están publicando y&lt;br /&gt;
* en [https://www.glc.us.es/~jalonso/vestigium/category/resena/ Vestigium] que contiene una reseña de los más destacados.&lt;br /&gt;
&lt;br /&gt;
== Ofertas de trabajo ==&lt;br /&gt;
&lt;br /&gt;
En [https://github.com/jaalonso/Trabajos-MULCIA GitHub] se encuentra una recopilaciónn las ofertas de trabajo de interés para los estudiantes del Máster Universitario en Lógica, Computación e Inteligencia Artificial de la Universidad de Sevilla.&lt;br /&gt;
&lt;br /&gt;
Están en orden cronológico inverso por la fecha de su publicación en [https://twitter.com/search?l=&amp;amp;q=%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd&amp;amp;lang=es Twitter].&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1069</id>
		<title>Documentación</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1069"/>
		<updated>2022-02-08T16:59:17Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* Cursos con Isabelle/HOL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En esta página se recogen en enlaces que sirven de documentación al curso de &amp;quot;Razonamiento automático&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Vídeos ==&lt;br /&gt;
&lt;br /&gt;
* Vídeos de deducción natural con Pandora: [http://bit.ly/1tqZIOe ejemplo 1] y [http://bit.ly/1nWAVp4 ejemplo 2].&lt;br /&gt;
&lt;br /&gt;
== Visiones generales de la DAO ==&lt;br /&gt;
&lt;br /&gt;
# J.A. Alonso. [http://goo.gl/NWk7b Razonamiento formalizado: Del sueño a la realidad de las pruebas]. &lt;br /&gt;
# J.M. Aransay y C. Domínguez. [http://gaceta.rsme.es/abrir.php?id=1057 Demostración asistida por ordenador]. &lt;br /&gt;
# A. Asperti. [https://arxiv.org/abs/1701.03602 Automatic verification and interactive theorem proving]. &lt;br /&gt;
# A. Asperti. [http://www.cs.unibo.it/~asperti/SLIDES/itp.pdf A survey on interactive theorem proving]. &lt;br /&gt;
# J. Avigad. [http://bit.ly/1hsA8Ew Formal verification, interactive theorem proving, and automated reasoning].&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/icerm.pdf Interactive theorem proving, automated reasoning, and mathematical computation]. ICERM, 14 de diciembre de 2012.&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/london.pdf Automated reasoning for the working mathematician].&lt;br /&gt;
# J. Avigad, J. Harrison. [https://www.cl.cam.ac.uk/~jrh13/papers/cacm.pdf Formally verified Mathematics]. &lt;br /&gt;
# H. Barendregt y F. Wiedijk. [http://ftp.science.ru.nl/CSI/CompMath.Found/Barendregt-Wiedijk.pdf The challenge of computer mathematics].&lt;br /&gt;
# K. Buzzard. [http://wwwf.imperial.ac.uk/~buzzard/one_off_lectures/msr.pdf The future of mathematics?]&lt;br /&gt;
# C.S. Calude y C. Müller [https://www.cs.auckland.ac.nz/~cristian/crispapers/56250217.pdf Formal proof: reconciling correctness and understanding].&lt;br /&gt;
# R. David. [http://www.lama.univ-savoie.fr/~david/ftp/amphis.pdf Peut-on faire des Mathématiques avec un ordinateur?]&lt;br /&gt;
# R. David y C. Raffalli. [http://www.lama.univ-savoie.fr/~david/ftp/amphi07.pdf Peut-on avoir confiance en l’informatique?]&lt;br /&gt;
# M. Davis. [http://www.cs.nyu.edu/cs/faculty/davism/early.ps The early history of automated deduction].&lt;br /&gt;
# J.P. Delahaye [http://interstices.info/jcms/int_63417/du-reve-a-la-realite-des-preuves Du rêve à la réalité des preuves]. &amp;#039;&amp;#039;Interstices&amp;#039;&amp;#039;, 8 de julio de 2012.&lt;br /&gt;
# J. Germoni [http://images.math.cnrs.fr/Coq-et-caracteres.html Coq et caractères: Preuve formelle du théorème de Feit et Thompson]. &amp;#039;&amp;#039;Images des Mathématiques&amp;#039;&amp;#039;, CNRS, 23 de noviembre de 2012. &lt;br /&gt;
# H. Geuvers [http://www.ias.ac.in/article/fulltext/sadh/034/01/0003-0025 Proof assistants: History, ideas and future]. &amp;#039;&amp;#039;Sadhana&amp;#039;&amp;#039;, Vol. 34-1, pp. 3-25, février 2009.&lt;br /&gt;
# H. Geuvers. [http://www.cs.ru.nl/~herman/ictopen.pdf Can the computer really help us to prove theorems?]&lt;br /&gt;
# G. Gonthier [http://www.ams.org/notices/200811/tx081101382p.pdf The four-color theorem]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1382-1393, 2008.&lt;br /&gt;
# T. Hales. [http://www.ams.org/notices/200811/tx081101370p.pdf Formal proof]. &amp;#039;&amp;#039;Notices of AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) pp. 1370-1380.&lt;br /&gt;
# J. Harrison. [http://www.cl.cam.ac.uk/~jrh13/papers/ab.html A short survey of automated reasoning]. &amp;#039;&amp;#039;Lecture Notes in Computer Science&amp;#039;&amp;#039;, Vol. 4545, pp. 334-349, 2007.&lt;br /&gt;
# J. Harrison. [http://www.ams.org/notices/200811/tx081101395p.pdf Formal proof: Theory and practice]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) p.1395-1406. &lt;br /&gt;
# J. Harrison, J. Urban y F. Wiedijk [http://www.cl.cam.ac.uk/~jrh13/papers/joerg.pdf History of interactive theorem proving].&lt;br /&gt;
# A. Koutsoukou-Argyraki. [https://www.researchgate.net/profile/Angeliki_Koutsoukou-Argyraki/publication/334549483_FORMALISING_MATHEMATICS_-IN_PRAXIS_A_MATHEMATICIAN%27S_VERY_FIRST_EXPERIENCES_WITH_ISABELLEHOL/links/5d30f782299bf1547cc25f63/FORMALISING-MATHEMATICS-IN-PRAXIS-A-MATHEMATICIANS-VERY-FIRST-EXPERIENCES-WITH-ISABELLE-HOL.pdf Formalising Mathematics-in praxis; A mathematician&amp;#039;s very first experiences with Isabelle/HOL]]. &lt;br /&gt;
# G. Kolata. [http://www.nytimes.com/library/cyber/week/1210math.html Computer math proof shows reasoning power]. &amp;#039;&amp;#039;The New York Times&amp;#039;&amp;#039;, 10 de diciembre de 1996.&lt;br /&gt;
# A. Mahboubi [https://jncf2018.lip6.fr/files/lecture-notes/jncf2018-mahboubi.pdf Calcul formel et preuves formelles].&lt;br /&gt;
# A. Mahboubi. [http://bit.ly/2ch3xEa Machine-checked mathematics]. &lt;br /&gt;
# A. Mahboubi. [http://bit.ly/1qLTVBm Un ordinateur pour vérifier les preuves mathématiques]. &lt;br /&gt;
# D. MacKenzie [https://backspaces.net/temp/Spring2010Seminar/18%20unconventional%20essays%20on%20the%20nature%20of%20mathematics.pdf#page=147 Computers and the sociology of mathematical proof].&lt;br /&gt;
# C. Nalon. [https://www.mat.ufrn.br/cade-27/wp-content/uploads/2019/09/2019CN-CADE.pdf Machine-oriented reasoning].&lt;br /&gt;
# J. Narboux. [https://hal.inria.fr/hal-00809448/document Les assistants de preuve, ou comment avoir confiance en ses démonstrations].&lt;br /&gt;
# L.C. Paulson. [https://www.cl.cam.ac.uk/~lp15/papers/Formath/Sophia2017.pdf Proof assistants: from symbolic logic to real mathematics?] &lt;br /&gt;
# L.C. Paulson, T. Nipkow y M. Wenzel. [https://arxiv.org/abs/1907.02836 From LCF to Isabelle/HOL].&lt;br /&gt;
# T. Ringer et als. [https://arxiv.org/abs/2003.06458 QED at large: A survey of engineering of formally verified software].  &lt;br /&gt;
# P. Schnider. [http://bit.ly/1Gxxmx6 An introduction to proof assistants]. &lt;br /&gt;
# J. Schöpf y S. Widauer [http://cl-informatik.uibk.ac.at/teaching/ws17/vs/reports/SWreport.pdf History of interactive theorem proving].&lt;br /&gt;
# F.R. Villatoro. [http://francis.naukas.com/2017/07/29/la-demostracion-matematica-mas-larga La demostración matemática más larga]. &lt;br /&gt;
# F. Wiedijk [http://www.cs.ru.nl/~freek/100/ Formalizing the «top 100» of mathematical theorems].&lt;br /&gt;
# F. Wiedijk [http://www.ams.org/notices/200811/tx081101408p.pdf Formal proof - Getting started]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1408-1414, 2008.&lt;br /&gt;
# F. Wiedijk, [http://mizar.org/trybulec65/8.pdf The QED manifesto revisited]. &amp;#039;&amp;#039;Studies in Logic, Grammar and Rhetoric&amp;#039;&amp;#039;, Vol. 10(23), pp. 121-133, 2007.&lt;br /&gt;
&lt;br /&gt;
== Referencias sobre Isabelle/HOL ==&lt;br /&gt;
# B. Blumson [https://philpapers.org/go.pl?id=BLUIFP&amp;amp;u=https%3A%2F%2Fphilpapers.org%2Farchive%2FBLUIFP.pdf Isabelle for philosophers]. &lt;br /&gt;
# B. Grechuk [https://web.cs.wpi.edu/~dd/resources_isabelle/isabelle_primer_mathematicians.pdf Isabelle primer for mathematicians].&lt;br /&gt;
# T. Nipkow [https://isabelle.in.tum.de/doc/prog-prove.pdf Programming and proving in Isabelle/HOL]. &lt;br /&gt;
# T. Nipkow, M. Wenzel y L.C. Paulson [http://isabelle.in.tum.de/doc/tutorial.pdf A proof assistant for higher-order logic].&lt;br /&gt;
# A. Steen [https://git.imp.fu-berlin.de/leo-iii/compmeta_pub/raw/master/exercises/resources/Isabelle_ND_cheatsheet.pdf Mapping of ND proof templates to Isabelle formalization].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/dist/library/HOL/HOL/document.pdf Isabelle/HOL — Higher-Order Logic]. &lt;br /&gt;
# M. Wenzel [http://isabelle.in.tum.de/doc/isar-ref.pdf The Isabelle/Isar Reference Manual]. &lt;br /&gt;
# M. Wenzel [http://typessummerschool07.cs.unibo.it/courses/wenzel-isar-quickref.pdf The Isabelle/Isar quick reference].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/documentation.html Tutorials and manuals for Isabelle].&lt;br /&gt;
&lt;br /&gt;
== Lecturas complementarias ==&lt;br /&gt;
=== Programación funcional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/i1m-19/temas/2019-20-I1M-temas-PF.pdf Temas de &amp;quot;Programación funcional&amp;quot;]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2019.&lt;br /&gt;
# J.A. Alonso y M.J. Hidalgo [http://www.cs.us.es/~jalonso/publicaciones/Piensa_en_Haskell.pdf Piensa en Haskell (Ejercicios de programación funcional con Haskell)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2012.&lt;br /&gt;
# G. Hutton [http://bit.ly/2pQofC2 Programming in Haskell]. Cambridge University Press, 2007. &lt;br /&gt;
# M. Lipovača [http://aprendehaskell.es ¡Aprende Haskell por el bien de todos!].&lt;br /&gt;
# M. Lipovaca y J. Brock [https://mybinder.org/v2/gh/jamesdbrock/learn-you-a-haskell-notebook/master?urlpath=lab/tree/learn_you_a_haskell/00-preface.ipynb Learn you a Haskell for great good!]&lt;br /&gt;
# T. Nipkow [https://www21.in.tum.de/teaching/fpv/WS1920/slides.pdf Functional programmingand verification]. TUM, 2019.&lt;br /&gt;
&lt;br /&gt;
=== Lógica computacional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/li-15/temas/temas-LI-2015-16.pdf Temas de &amp;quot;Lógica informática&amp;quot; (2015-16)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2015.&lt;br /&gt;
# K. Broda, S. Eisenbach, H. Khoshnevisan y S. Vickers [https://www.doc.ic.ac.uk/~susan/firstyearbook.pdf Reasoned programming]. Imperial College, 1994.&lt;br /&gt;
# M. Huth y M. Ryan [http://bit.ly/2e8dFEm Logic in computer science: Modelling and reasoning about systems]. Cambridge University Press, 2004. (Incluye el [http://www.cs.bham.ac.uk/research/lics/tutor/index.html tutor en la Red]).&lt;br /&gt;
&lt;br /&gt;
== Cursos relacionados ==&lt;br /&gt;
=== Cursos con Isabelle/HOL ===&lt;br /&gt;
# Clemens Ballarin. [http://cl-informatik.uibk.ac.at/teaching/ss08/atp/introduction.php Automatic Deduction]. (Univ de Innsbruck, 2008).&lt;br /&gt;
# Clemens Ballarin y Gerwin Klein [http://isabelle.in.tum.de/coursematerial/IJCAR04 Introduction to the Isabelle Proof Assistant]. (en el IJCAR-2004).&lt;br /&gt;
# Clemens Ballarin y Tjark Weber. [http://cl-informatik.uibk.ac.at/teaching/ws06/atp/introduction.php Automated Theorem Proving in Isabelle/HOL]. (Univ. de Innsbruck, 2006-07).&lt;br /&gt;
# A.D. Brucker, D. Basin, J.G. Smaus y B. Wolff. [http://archiv.infsec.ethz.ch/education/permanent/csmr.html Computer-supported Modeling and Reasoning]. (ETH Zurich, 2011).&lt;br /&gt;
# Mads Dam. [http://www.csc.kth.se/utbildning/kth/kurser/DD2453/aform07/ Advanced formal methods]. (KTH Royal Institute of Technology, 2007).&lt;br /&gt;
# Jacques Fleuriot. [http://www.inf.ed.ac.uk/teaching/courses/ar Automated reasoning]. (Univ. de Edimburgo, 2016-17).&lt;br /&gt;
# Thomas Genet [http://www.irisa.fr/celtique/genet/ACF Software formal analysis and design]. (Univ. de Rennes)&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~kleing/teaching/thprv-04 Theorem Proving - Principles, Techniques, Applications]. (NICTA, 2004).&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~cs4161/index.html Advanced Topics in Software Verification]. (NICTA, 2012).&lt;br /&gt;
# Joao Marcos. [http://www.dimap.ufrn.br/~jmarcos/courses/LC/Ementa.htm Lógica computacional: Demonstração assistida e semi-automática de teoremas].(UFRN, 2000).&lt;br /&gt;
# Tobias Nipkow. [http://www21.in.tum.de/teaching/semantik/WS1617/ Semantics of programming languages]. (Univ. de Munich, 2012-13).&lt;br /&gt;
# Tobias Nipkow. [http://isabelle.in.tum.de/coursematerial/PSV2009-1 Theorem Proving with Isabelle/HOL An Intensive Course]. &lt;br /&gt;
# Larry Paulson. [http://www.cl.cam.ac.uk/teaching/0910/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2009-10).&lt;br /&gt;
# Arnd Poetzsch-Heffter. [https://softech.informatik.uni-kl.de/homepage/de/teaching/SVHOL14/ Specification and Verification with Higher-Order Logic]. &lt;br /&gt;
# Jeremy G. Siek. [http://www.cs.colorado.edu/~siek/7000/spring07/ Practical Theorem Proving with Isabelle/Isar]. (Univ. de Colorado, 2007).&lt;br /&gt;
# Jeremy G. Siek. [http://ecee.colorado.edu/~siek/ecen5013/spring11/ Theorem proving in Isabelle]. (Univ. de Colorado, 2011).&lt;br /&gt;
# Jan-Georg Smaus. [http://www.informatik.uni-freiburg.de/~ki/teaching/ws0910/csmr/lecture.html Computer-supported modeling and reasoning]. (Univ. de Feiburgo, 2009).&lt;br /&gt;
# Christian Sternagel [http://cl-informatik.uibk.ac.at/teaching/ss11/eve/content.php Experiments in Verification – Introduction to Isabelle/HOL]. (Univ. de Innsbruck, 2011-12).&lt;br /&gt;
# Tjark Weber. [http://www.cl.cam.ac.uk/teaching/1011/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2010-11).&lt;br /&gt;
&lt;br /&gt;
=== Cursos con Coq ===&lt;br /&gt;
# Yves Bertot, Pierre Casteran, Benjamin Gregoire, Pierre Letouzey y Assia Mahboubi [http://www.di.ens.fr/~zappa/teaching/coq/ecole11 Modelling and verifying algorithms in Coq: an introduction]. (INRIA Paris-Rocquencourt, 14-18 noviembre 2011).&lt;br /&gt;
# Adam Chlipala [http://stellar.mit.edu/S/course/6/fa11/6.892/ Interactive computer theorem proving]. (MIT, 2012-13).&lt;br /&gt;
# Adam Chlipala y Armando Solar Lezama [https://stellar.mit.edu/S/course/6/fa13/6.820/index.html Foundations of program analysis]. (MIT, 2013-14).&lt;br /&gt;
# M. Greenberg [http://www.cs.pomona.edu/~michael/courses/csci054s18/ Discrete mathematics and functional programming]. &lt;br /&gt;
# Benjamin C. Pierce et als. [https://softwarefoundations.cis.upenn.edu/lf-current/index.html Software foundations (Vol. 1: Logical foundations)].&lt;br /&gt;
# Benjamin C. Pierce [https://www.seas.upenn.edu/~cis500/current/index.html Software foundations] (Univ. de Pensilvania, 2018).&lt;br /&gt;
# G. Smolka [https://courses.ps.uni-saarland.de/icl_18/2/Resources Introduction to computational logic] (Univ. de Sarre, 2018).&lt;br /&gt;
&lt;br /&gt;
=== Otros cursos ===&lt;br /&gt;
# José A. Alonso [http://www.cs.us.es/~jalonso/cursos/li/ Lógica informática] (Univ. de Sevilla, 2012-13).&lt;br /&gt;
# Thorsten Altenkirch y Peter Morris [http://www.cs.nott.ac.uk/~txa/g52ifr Introduction to formal reasoning] (Univ. de Nottingham, 2010-11).&lt;br /&gt;
# J. Blanchette y J. Höltz [https://lean-forward.github.io/logical-verification/2018 Logical verification]. (Vrije Universiteit Amsterdam, 2018-19). &lt;br /&gt;
# Pierre Castéran [http://www.labri.fr/perso/casteran/FM/Logique/index.html Logic (Master In Verification)] (Univ. de Burdeos, 2011-12).&lt;br /&gt;
# Robby Findler [http://www.eecs.northwestern.edu/~robby/courses/395-495-2013-fall Certified programming with dependent types]. (Northwestern, 2013-14).&lt;br /&gt;
# Carlos Luna y Gustavo Betarte. [https://eva.fing.edu.uy/course/view.php?id=363 Construcción formal de programas en teoría de tipos]. (Univ. de la República, Uruguay, 2013-14).&lt;br /&gt;
# Ian Hodkinson [http://www.doc.ic.ac.uk/~imh/teaching/140_logic/logic.html Logic] (Imperial College, Londres, 2010-11).&lt;br /&gt;
# Peter Lucas [http://www.cs.ru.nl/~peterl/teaching/KeR/ Knowledge Representation and Reasoning] (Radboud University # egen, 2011-12).&lt;br /&gt;
# Larry Paulson [http://www.cl.cam.ac.uk/Teaching/current/LogicProof/ Logic and Proof] (Univ. de Cambridge, 2011-12).&lt;br /&gt;
# David Pichardie [http://www.irisa.fr/celtique/pichardie/teaching/M2/MDV/ Méthode de vérification] (Universidad de Rennes, 2006-07).&lt;br /&gt;
&lt;br /&gt;
== Bibliotecas de ejemplos de verificación ==&lt;br /&gt;
# [http://afp.sourceforge.net Archive of Formal Proofs].&lt;br /&gt;
# [http://www.cs.ru.nl/~freek/100 Formalizing 100 Theorems].&lt;br /&gt;
# [http://toccata.lri.fr/gallery Gallery of verified programs].&lt;br /&gt;
# [http://automatedreasoning.net/ Larry Wos&amp;#039; Notebooks].&lt;br /&gt;
# [http://www.cs.miami.edu/~tptp/ The TPTP Problem Library for Automated Theorem Proving].&lt;br /&gt;
# [http://www.macs.hw.ac.uk/vstte10/Competition.html The 1st Verified Software Competition].&lt;br /&gt;
# [https://sites.google.com/site/vstte2012/compet The 2nd Verified Software Competition].&lt;br /&gt;
# [http://verifythis.cost-ic0701.org VerifyThis (A collection of verification benchmarks].&lt;br /&gt;
&lt;br /&gt;
== Artículos recientes ==&lt;br /&gt;
&lt;br /&gt;
Hay dos listas de artículos recientes:&lt;br /&gt;
&lt;br /&gt;
* en [https://twitter.com/search?f=tweets&amp;amp;q=%23ITP%20OR%20%23IsabelleHOL%20OR%20%23Coq%20OR%20%23Agda%20OR%20%23LeanProver%20OR%20%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd Twitter] que contiene enlaces a los artículos de razonamiento automático y demostración asistida por ordenador que se están publicando y&lt;br /&gt;
* en [https://www.glc.us.es/~jalonso/vestigium/category/resena/ Vestigium] que contiene una reseña de los más destacados.&lt;br /&gt;
&lt;br /&gt;
== Ofertas de trabajo ==&lt;br /&gt;
&lt;br /&gt;
En [https://github.com/jaalonso/Trabajos-MULCIA GitHub] se encuentra una recopilaciónn las ofertas de trabajo de interés para los estudiantes del Máster Universitario en Lógica, Computación e Inteligencia Artificial de la Universidad de Sevilla.&lt;br /&gt;
&lt;br /&gt;
Están en orden cronológico inverso por la fecha de su publicación en [https://twitter.com/search?l=&amp;amp;q=%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd&amp;amp;lang=es Twitter].&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1068</id>
		<title>Documentación</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1068"/>
		<updated>2022-02-08T16:58:28Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* Cursos con Isabelle/HOL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En esta página se recogen en enlaces que sirven de documentación al curso de &amp;quot;Razonamiento automático&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Vídeos ==&lt;br /&gt;
&lt;br /&gt;
* Vídeos de deducción natural con Pandora: [http://bit.ly/1tqZIOe ejemplo 1] y [http://bit.ly/1nWAVp4 ejemplo 2].&lt;br /&gt;
&lt;br /&gt;
== Visiones generales de la DAO ==&lt;br /&gt;
&lt;br /&gt;
# J.A. Alonso. [http://goo.gl/NWk7b Razonamiento formalizado: Del sueño a la realidad de las pruebas]. &lt;br /&gt;
# J.M. Aransay y C. Domínguez. [http://gaceta.rsme.es/abrir.php?id=1057 Demostración asistida por ordenador]. &lt;br /&gt;
# A. Asperti. [https://arxiv.org/abs/1701.03602 Automatic verification and interactive theorem proving]. &lt;br /&gt;
# A. Asperti. [http://www.cs.unibo.it/~asperti/SLIDES/itp.pdf A survey on interactive theorem proving]. &lt;br /&gt;
# J. Avigad. [http://bit.ly/1hsA8Ew Formal verification, interactive theorem proving, and automated reasoning].&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/icerm.pdf Interactive theorem proving, automated reasoning, and mathematical computation]. ICERM, 14 de diciembre de 2012.&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/london.pdf Automated reasoning for the working mathematician].&lt;br /&gt;
# J. Avigad, J. Harrison. [https://www.cl.cam.ac.uk/~jrh13/papers/cacm.pdf Formally verified Mathematics]. &lt;br /&gt;
# H. Barendregt y F. Wiedijk. [http://ftp.science.ru.nl/CSI/CompMath.Found/Barendregt-Wiedijk.pdf The challenge of computer mathematics].&lt;br /&gt;
# K. Buzzard. [http://wwwf.imperial.ac.uk/~buzzard/one_off_lectures/msr.pdf The future of mathematics?]&lt;br /&gt;
# C.S. Calude y C. Müller [https://www.cs.auckland.ac.nz/~cristian/crispapers/56250217.pdf Formal proof: reconciling correctness and understanding].&lt;br /&gt;
# R. David. [http://www.lama.univ-savoie.fr/~david/ftp/amphis.pdf Peut-on faire des Mathématiques avec un ordinateur?]&lt;br /&gt;
# R. David y C. Raffalli. [http://www.lama.univ-savoie.fr/~david/ftp/amphi07.pdf Peut-on avoir confiance en l’informatique?]&lt;br /&gt;
# M. Davis. [http://www.cs.nyu.edu/cs/faculty/davism/early.ps The early history of automated deduction].&lt;br /&gt;
# J.P. Delahaye [http://interstices.info/jcms/int_63417/du-reve-a-la-realite-des-preuves Du rêve à la réalité des preuves]. &amp;#039;&amp;#039;Interstices&amp;#039;&amp;#039;, 8 de julio de 2012.&lt;br /&gt;
# J. Germoni [http://images.math.cnrs.fr/Coq-et-caracteres.html Coq et caractères: Preuve formelle du théorème de Feit et Thompson]. &amp;#039;&amp;#039;Images des Mathématiques&amp;#039;&amp;#039;, CNRS, 23 de noviembre de 2012. &lt;br /&gt;
# H. Geuvers [http://www.ias.ac.in/article/fulltext/sadh/034/01/0003-0025 Proof assistants: History, ideas and future]. &amp;#039;&amp;#039;Sadhana&amp;#039;&amp;#039;, Vol. 34-1, pp. 3-25, février 2009.&lt;br /&gt;
# H. Geuvers. [http://www.cs.ru.nl/~herman/ictopen.pdf Can the computer really help us to prove theorems?]&lt;br /&gt;
# G. Gonthier [http://www.ams.org/notices/200811/tx081101382p.pdf The four-color theorem]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1382-1393, 2008.&lt;br /&gt;
# T. Hales. [http://www.ams.org/notices/200811/tx081101370p.pdf Formal proof]. &amp;#039;&amp;#039;Notices of AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) pp. 1370-1380.&lt;br /&gt;
# J. Harrison. [http://www.cl.cam.ac.uk/~jrh13/papers/ab.html A short survey of automated reasoning]. &amp;#039;&amp;#039;Lecture Notes in Computer Science&amp;#039;&amp;#039;, Vol. 4545, pp. 334-349, 2007.&lt;br /&gt;
# J. Harrison. [http://www.ams.org/notices/200811/tx081101395p.pdf Formal proof: Theory and practice]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) p.1395-1406. &lt;br /&gt;
# J. Harrison, J. Urban y F. Wiedijk [http://www.cl.cam.ac.uk/~jrh13/papers/joerg.pdf History of interactive theorem proving].&lt;br /&gt;
# A. Koutsoukou-Argyraki. [https://www.researchgate.net/profile/Angeliki_Koutsoukou-Argyraki/publication/334549483_FORMALISING_MATHEMATICS_-IN_PRAXIS_A_MATHEMATICIAN%27S_VERY_FIRST_EXPERIENCES_WITH_ISABELLEHOL/links/5d30f782299bf1547cc25f63/FORMALISING-MATHEMATICS-IN-PRAXIS-A-MATHEMATICIANS-VERY-FIRST-EXPERIENCES-WITH-ISABELLE-HOL.pdf Formalising Mathematics-in praxis; A mathematician&amp;#039;s very first experiences with Isabelle/HOL]]. &lt;br /&gt;
# G. Kolata. [http://www.nytimes.com/library/cyber/week/1210math.html Computer math proof shows reasoning power]. &amp;#039;&amp;#039;The New York Times&amp;#039;&amp;#039;, 10 de diciembre de 1996.&lt;br /&gt;
# A. Mahboubi [https://jncf2018.lip6.fr/files/lecture-notes/jncf2018-mahboubi.pdf Calcul formel et preuves formelles].&lt;br /&gt;
# A. Mahboubi. [http://bit.ly/2ch3xEa Machine-checked mathematics]. &lt;br /&gt;
# A. Mahboubi. [http://bit.ly/1qLTVBm Un ordinateur pour vérifier les preuves mathématiques]. &lt;br /&gt;
# D. MacKenzie [https://backspaces.net/temp/Spring2010Seminar/18%20unconventional%20essays%20on%20the%20nature%20of%20mathematics.pdf#page=147 Computers and the sociology of mathematical proof].&lt;br /&gt;
# C. Nalon. [https://www.mat.ufrn.br/cade-27/wp-content/uploads/2019/09/2019CN-CADE.pdf Machine-oriented reasoning].&lt;br /&gt;
# J. Narboux. [https://hal.inria.fr/hal-00809448/document Les assistants de preuve, ou comment avoir confiance en ses démonstrations].&lt;br /&gt;
# L.C. Paulson. [https://www.cl.cam.ac.uk/~lp15/papers/Formath/Sophia2017.pdf Proof assistants: from symbolic logic to real mathematics?] &lt;br /&gt;
# L.C. Paulson, T. Nipkow y M. Wenzel. [https://arxiv.org/abs/1907.02836 From LCF to Isabelle/HOL].&lt;br /&gt;
# T. Ringer et als. [https://arxiv.org/abs/2003.06458 QED at large: A survey of engineering of formally verified software].  &lt;br /&gt;
# P. Schnider. [http://bit.ly/1Gxxmx6 An introduction to proof assistants]. &lt;br /&gt;
# J. Schöpf y S. Widauer [http://cl-informatik.uibk.ac.at/teaching/ws17/vs/reports/SWreport.pdf History of interactive theorem proving].&lt;br /&gt;
# F.R. Villatoro. [http://francis.naukas.com/2017/07/29/la-demostracion-matematica-mas-larga La demostración matemática más larga]. &lt;br /&gt;
# F. Wiedijk [http://www.cs.ru.nl/~freek/100/ Formalizing the «top 100» of mathematical theorems].&lt;br /&gt;
# F. Wiedijk [http://www.ams.org/notices/200811/tx081101408p.pdf Formal proof - Getting started]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1408-1414, 2008.&lt;br /&gt;
# F. Wiedijk, [http://mizar.org/trybulec65/8.pdf The QED manifesto revisited]. &amp;#039;&amp;#039;Studies in Logic, Grammar and Rhetoric&amp;#039;&amp;#039;, Vol. 10(23), pp. 121-133, 2007.&lt;br /&gt;
&lt;br /&gt;
== Referencias sobre Isabelle/HOL ==&lt;br /&gt;
# B. Blumson [https://philpapers.org/go.pl?id=BLUIFP&amp;amp;u=https%3A%2F%2Fphilpapers.org%2Farchive%2FBLUIFP.pdf Isabelle for philosophers]. &lt;br /&gt;
# B. Grechuk [https://web.cs.wpi.edu/~dd/resources_isabelle/isabelle_primer_mathematicians.pdf Isabelle primer for mathematicians].&lt;br /&gt;
# T. Nipkow [https://isabelle.in.tum.de/doc/prog-prove.pdf Programming and proving in Isabelle/HOL]. &lt;br /&gt;
# T. Nipkow, M. Wenzel y L.C. Paulson [http://isabelle.in.tum.de/doc/tutorial.pdf A proof assistant for higher-order logic].&lt;br /&gt;
# A. Steen [https://git.imp.fu-berlin.de/leo-iii/compmeta_pub/raw/master/exercises/resources/Isabelle_ND_cheatsheet.pdf Mapping of ND proof templates to Isabelle formalization].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/dist/library/HOL/HOL/document.pdf Isabelle/HOL — Higher-Order Logic]. &lt;br /&gt;
# M. Wenzel [http://isabelle.in.tum.de/doc/isar-ref.pdf The Isabelle/Isar Reference Manual]. &lt;br /&gt;
# M. Wenzel [http://typessummerschool07.cs.unibo.it/courses/wenzel-isar-quickref.pdf The Isabelle/Isar quick reference].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/documentation.html Tutorials and manuals for Isabelle].&lt;br /&gt;
&lt;br /&gt;
== Lecturas complementarias ==&lt;br /&gt;
=== Programación funcional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/i1m-19/temas/2019-20-I1M-temas-PF.pdf Temas de &amp;quot;Programación funcional&amp;quot;]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2019.&lt;br /&gt;
# J.A. Alonso y M.J. Hidalgo [http://www.cs.us.es/~jalonso/publicaciones/Piensa_en_Haskell.pdf Piensa en Haskell (Ejercicios de programación funcional con Haskell)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2012.&lt;br /&gt;
# G. Hutton [http://bit.ly/2pQofC2 Programming in Haskell]. Cambridge University Press, 2007. &lt;br /&gt;
# M. Lipovača [http://aprendehaskell.es ¡Aprende Haskell por el bien de todos!].&lt;br /&gt;
# M. Lipovaca y J. Brock [https://mybinder.org/v2/gh/jamesdbrock/learn-you-a-haskell-notebook/master?urlpath=lab/tree/learn_you_a_haskell/00-preface.ipynb Learn you a Haskell for great good!]&lt;br /&gt;
# T. Nipkow [https://www21.in.tum.de/teaching/fpv/WS1920/slides.pdf Functional programmingand verification]. TUM, 2019.&lt;br /&gt;
&lt;br /&gt;
=== Lógica computacional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/li-15/temas/temas-LI-2015-16.pdf Temas de &amp;quot;Lógica informática&amp;quot; (2015-16)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2015.&lt;br /&gt;
# K. Broda, S. Eisenbach, H. Khoshnevisan y S. Vickers [https://www.doc.ic.ac.uk/~susan/firstyearbook.pdf Reasoned programming]. Imperial College, 1994.&lt;br /&gt;
# M. Huth y M. Ryan [http://bit.ly/2e8dFEm Logic in computer science: Modelling and reasoning about systems]. Cambridge University Press, 2004. (Incluye el [http://www.cs.bham.ac.uk/research/lics/tutor/index.html tutor en la Red]).&lt;br /&gt;
&lt;br /&gt;
== Cursos relacionados ==&lt;br /&gt;
=== Cursos con Isabelle/HOL ===&lt;br /&gt;
# Clemens Ballarin. [http://cl-informatik.uibk.ac.at/teaching/ss08/atp/introduction.php Automatic Deduction]. (Univ de Innsbruck, 2008).&lt;br /&gt;
# Clemens Ballarin y Gerwin Klein [http://isabelle.in.tum.de/coursematerial/IJCAR04 Introduction to the Isabelle Proof Assistant]. (en el IJCAR-2004).&lt;br /&gt;
# Clemens Ballarin y Tjark Weber. [http://cl-informatik.uibk.ac.at/teaching/ws06/atp/introduction.php Automated Theorem Proving in Isabelle/HOL]. (Univ. de Innsbruck, 2006-07).&lt;br /&gt;
# Jasmin Blanchette, Mathias Fleury y Daniel Wand [http://people.mpi-inf.mpg.de/~jblanche/cswi/ss2015/ Concrete semantics with Isabelle/HOL]. (Univ. del Sarre, 2015-16).&lt;br /&gt;
# A.D. Brucker, D. Basin, J.G. Smaus y B. Wolff. [http://archiv.infsec.ethz.ch/education/permanent/csmr.html Computer-supported Modeling and Reasoning]. (ETH Zurich, 2011).&lt;br /&gt;
# Mads Dam. [http://www.csc.kth.se/utbildning/kth/kurser/DD2453/aform07/ Advanced formal methods]. (KTH Royal Institute of Technology, 2007).&lt;br /&gt;
# Jacques Fleuriot. [http://www.inf.ed.ac.uk/teaching/courses/ar Automated reasoning]. (Univ. de Edimburgo, 2016-17).&lt;br /&gt;
# Thomas Genet [http://www.irisa.fr/celtique/genet/ACF Software formal analysis and design]. (Univ. de Rennes)&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~kleing/teaching/thprv-04 Theorem Proving - Principles, Techniques, Applications]. (NICTA, 2004).&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~cs4161/index.html Advanced Topics in Software Verification]. (NICTA, 2012).&lt;br /&gt;
# Joao Marcos. [http://www.dimap.ufrn.br/~jmarcos/courses/LC/Ementa.htm Lógica computacional: Demonstração assistida e semi-automática de teoremas].(UFRN, 2000).&lt;br /&gt;
# Tobias Nipkow. [http://www21.in.tum.de/teaching/semantik/WS1617/ Semantics of programming languages]. (Univ. de Munich, 2012-13).&lt;br /&gt;
# Tobias Nipkow. [http://isabelle.in.tum.de/coursematerial/PSV2009-1 Theorem Proving with Isabelle/HOL An Intensive Course]. &lt;br /&gt;
# Larry Paulson. [http://www.cl.cam.ac.uk/teaching/0910/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2009-10).&lt;br /&gt;
# Arnd Poetzsch-Heffter. [https://softech.informatik.uni-kl.de/homepage/de/teaching/SVHOL14/ Specification and Verification with Higher-Order Logic]. &lt;br /&gt;
# Jeremy G. Siek. [http://www.cs.colorado.edu/~siek/7000/spring07/ Practical Theorem Proving with Isabelle/Isar]. (Univ. de Colorado, 2007).&lt;br /&gt;
# Jeremy G. Siek. [http://ecee.colorado.edu/~siek/ecen5013/spring11/ Theorem proving in Isabelle]. (Univ. de Colorado, 2011).&lt;br /&gt;
# Jan-Georg Smaus. [http://www.informatik.uni-freiburg.de/~ki/teaching/ws0910/csmr/lecture.html Computer-supported modeling and reasoning]. (Univ. de Feiburgo, 2009).&lt;br /&gt;
# Christian Sternagel [http://cl-informatik.uibk.ac.at/teaching/ss11/eve/content.php Experiments in Verification – Introduction to Isabelle/HOL]. (Univ. de Innsbruck, 2011-12).&lt;br /&gt;
# Tjark Weber. [http://www.cl.cam.ac.uk/teaching/1011/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2010-11).&lt;br /&gt;
&lt;br /&gt;
=== Cursos con Coq ===&lt;br /&gt;
# Yves Bertot, Pierre Casteran, Benjamin Gregoire, Pierre Letouzey y Assia Mahboubi [http://www.di.ens.fr/~zappa/teaching/coq/ecole11 Modelling and verifying algorithms in Coq: an introduction]. (INRIA Paris-Rocquencourt, 14-18 noviembre 2011).&lt;br /&gt;
# Adam Chlipala [http://stellar.mit.edu/S/course/6/fa11/6.892/ Interactive computer theorem proving]. (MIT, 2012-13).&lt;br /&gt;
# Adam Chlipala y Armando Solar Lezama [https://stellar.mit.edu/S/course/6/fa13/6.820/index.html Foundations of program analysis]. (MIT, 2013-14).&lt;br /&gt;
# M. Greenberg [http://www.cs.pomona.edu/~michael/courses/csci054s18/ Discrete mathematics and functional programming]. &lt;br /&gt;
# Benjamin C. Pierce et als. [https://softwarefoundations.cis.upenn.edu/lf-current/index.html Software foundations (Vol. 1: Logical foundations)].&lt;br /&gt;
# Benjamin C. Pierce [https://www.seas.upenn.edu/~cis500/current/index.html Software foundations] (Univ. de Pensilvania, 2018).&lt;br /&gt;
# G. Smolka [https://courses.ps.uni-saarland.de/icl_18/2/Resources Introduction to computational logic] (Univ. de Sarre, 2018).&lt;br /&gt;
&lt;br /&gt;
=== Otros cursos ===&lt;br /&gt;
# José A. Alonso [http://www.cs.us.es/~jalonso/cursos/li/ Lógica informática] (Univ. de Sevilla, 2012-13).&lt;br /&gt;
# Thorsten Altenkirch y Peter Morris [http://www.cs.nott.ac.uk/~txa/g52ifr Introduction to formal reasoning] (Univ. de Nottingham, 2010-11).&lt;br /&gt;
# J. Blanchette y J. Höltz [https://lean-forward.github.io/logical-verification/2018 Logical verification]. (Vrije Universiteit Amsterdam, 2018-19). &lt;br /&gt;
# Pierre Castéran [http://www.labri.fr/perso/casteran/FM/Logique/index.html Logic (Master In Verification)] (Univ. de Burdeos, 2011-12).&lt;br /&gt;
# Robby Findler [http://www.eecs.northwestern.edu/~robby/courses/395-495-2013-fall Certified programming with dependent types]. (Northwestern, 2013-14).&lt;br /&gt;
# Carlos Luna y Gustavo Betarte. [https://eva.fing.edu.uy/course/view.php?id=363 Construcción formal de programas en teoría de tipos]. (Univ. de la República, Uruguay, 2013-14).&lt;br /&gt;
# Ian Hodkinson [http://www.doc.ic.ac.uk/~imh/teaching/140_logic/logic.html Logic] (Imperial College, Londres, 2010-11).&lt;br /&gt;
# Peter Lucas [http://www.cs.ru.nl/~peterl/teaching/KeR/ Knowledge Representation and Reasoning] (Radboud University # egen, 2011-12).&lt;br /&gt;
# Larry Paulson [http://www.cl.cam.ac.uk/Teaching/current/LogicProof/ Logic and Proof] (Univ. de Cambridge, 2011-12).&lt;br /&gt;
# David Pichardie [http://www.irisa.fr/celtique/pichardie/teaching/M2/MDV/ Méthode de vérification] (Universidad de Rennes, 2006-07).&lt;br /&gt;
&lt;br /&gt;
== Bibliotecas de ejemplos de verificación ==&lt;br /&gt;
# [http://afp.sourceforge.net Archive of Formal Proofs].&lt;br /&gt;
# [http://www.cs.ru.nl/~freek/100 Formalizing 100 Theorems].&lt;br /&gt;
# [http://toccata.lri.fr/gallery Gallery of verified programs].&lt;br /&gt;
# [http://automatedreasoning.net/ Larry Wos&amp;#039; Notebooks].&lt;br /&gt;
# [http://www.cs.miami.edu/~tptp/ The TPTP Problem Library for Automated Theorem Proving].&lt;br /&gt;
# [http://www.macs.hw.ac.uk/vstte10/Competition.html The 1st Verified Software Competition].&lt;br /&gt;
# [https://sites.google.com/site/vstte2012/compet The 2nd Verified Software Competition].&lt;br /&gt;
# [http://verifythis.cost-ic0701.org VerifyThis (A collection of verification benchmarks].&lt;br /&gt;
&lt;br /&gt;
== Artículos recientes ==&lt;br /&gt;
&lt;br /&gt;
Hay dos listas de artículos recientes:&lt;br /&gt;
&lt;br /&gt;
* en [https://twitter.com/search?f=tweets&amp;amp;q=%23ITP%20OR%20%23IsabelleHOL%20OR%20%23Coq%20OR%20%23Agda%20OR%20%23LeanProver%20OR%20%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd Twitter] que contiene enlaces a los artículos de razonamiento automático y demostración asistida por ordenador que se están publicando y&lt;br /&gt;
* en [https://www.glc.us.es/~jalonso/vestigium/category/resena/ Vestigium] que contiene una reseña de los más destacados.&lt;br /&gt;
&lt;br /&gt;
== Ofertas de trabajo ==&lt;br /&gt;
&lt;br /&gt;
En [https://github.com/jaalonso/Trabajos-MULCIA GitHub] se encuentra una recopilaciónn las ofertas de trabajo de interés para los estudiantes del Máster Universitario en Lógica, Computación e Inteligencia Artificial de la Universidad de Sevilla.&lt;br /&gt;
&lt;br /&gt;
Están en orden cronológico inverso por la fecha de su publicación en [https://twitter.com/search?l=&amp;amp;q=%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd&amp;amp;lang=es Twitter].&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1067</id>
		<title>Documentación</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1067"/>
		<updated>2022-02-08T16:58:02Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* Cursos con Isabelle/HOL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En esta página se recogen en enlaces que sirven de documentación al curso de &amp;quot;Razonamiento automático&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Vídeos ==&lt;br /&gt;
&lt;br /&gt;
* Vídeos de deducción natural con Pandora: [http://bit.ly/1tqZIOe ejemplo 1] y [http://bit.ly/1nWAVp4 ejemplo 2].&lt;br /&gt;
&lt;br /&gt;
== Visiones generales de la DAO ==&lt;br /&gt;
&lt;br /&gt;
# J.A. Alonso. [http://goo.gl/NWk7b Razonamiento formalizado: Del sueño a la realidad de las pruebas]. &lt;br /&gt;
# J.M. Aransay y C. Domínguez. [http://gaceta.rsme.es/abrir.php?id=1057 Demostración asistida por ordenador]. &lt;br /&gt;
# A. Asperti. [https://arxiv.org/abs/1701.03602 Automatic verification and interactive theorem proving]. &lt;br /&gt;
# A. Asperti. [http://www.cs.unibo.it/~asperti/SLIDES/itp.pdf A survey on interactive theorem proving]. &lt;br /&gt;
# J. Avigad. [http://bit.ly/1hsA8Ew Formal verification, interactive theorem proving, and automated reasoning].&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/icerm.pdf Interactive theorem proving, automated reasoning, and mathematical computation]. ICERM, 14 de diciembre de 2012.&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/london.pdf Automated reasoning for the working mathematician].&lt;br /&gt;
# J. Avigad, J. Harrison. [https://www.cl.cam.ac.uk/~jrh13/papers/cacm.pdf Formally verified Mathematics]. &lt;br /&gt;
# H. Barendregt y F. Wiedijk. [http://ftp.science.ru.nl/CSI/CompMath.Found/Barendregt-Wiedijk.pdf The challenge of computer mathematics].&lt;br /&gt;
# K. Buzzard. [http://wwwf.imperial.ac.uk/~buzzard/one_off_lectures/msr.pdf The future of mathematics?]&lt;br /&gt;
# C.S. Calude y C. Müller [https://www.cs.auckland.ac.nz/~cristian/crispapers/56250217.pdf Formal proof: reconciling correctness and understanding].&lt;br /&gt;
# R. David. [http://www.lama.univ-savoie.fr/~david/ftp/amphis.pdf Peut-on faire des Mathématiques avec un ordinateur?]&lt;br /&gt;
# R. David y C. Raffalli. [http://www.lama.univ-savoie.fr/~david/ftp/amphi07.pdf Peut-on avoir confiance en l’informatique?]&lt;br /&gt;
# M. Davis. [http://www.cs.nyu.edu/cs/faculty/davism/early.ps The early history of automated deduction].&lt;br /&gt;
# J.P. Delahaye [http://interstices.info/jcms/int_63417/du-reve-a-la-realite-des-preuves Du rêve à la réalité des preuves]. &amp;#039;&amp;#039;Interstices&amp;#039;&amp;#039;, 8 de julio de 2012.&lt;br /&gt;
# J. Germoni [http://images.math.cnrs.fr/Coq-et-caracteres.html Coq et caractères: Preuve formelle du théorème de Feit et Thompson]. &amp;#039;&amp;#039;Images des Mathématiques&amp;#039;&amp;#039;, CNRS, 23 de noviembre de 2012. &lt;br /&gt;
# H. Geuvers [http://www.ias.ac.in/article/fulltext/sadh/034/01/0003-0025 Proof assistants: History, ideas and future]. &amp;#039;&amp;#039;Sadhana&amp;#039;&amp;#039;, Vol. 34-1, pp. 3-25, février 2009.&lt;br /&gt;
# H. Geuvers. [http://www.cs.ru.nl/~herman/ictopen.pdf Can the computer really help us to prove theorems?]&lt;br /&gt;
# G. Gonthier [http://www.ams.org/notices/200811/tx081101382p.pdf The four-color theorem]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1382-1393, 2008.&lt;br /&gt;
# T. Hales. [http://www.ams.org/notices/200811/tx081101370p.pdf Formal proof]. &amp;#039;&amp;#039;Notices of AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) pp. 1370-1380.&lt;br /&gt;
# J. Harrison. [http://www.cl.cam.ac.uk/~jrh13/papers/ab.html A short survey of automated reasoning]. &amp;#039;&amp;#039;Lecture Notes in Computer Science&amp;#039;&amp;#039;, Vol. 4545, pp. 334-349, 2007.&lt;br /&gt;
# J. Harrison. [http://www.ams.org/notices/200811/tx081101395p.pdf Formal proof: Theory and practice]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) p.1395-1406. &lt;br /&gt;
# J. Harrison, J. Urban y F. Wiedijk [http://www.cl.cam.ac.uk/~jrh13/papers/joerg.pdf History of interactive theorem proving].&lt;br /&gt;
# A. Koutsoukou-Argyraki. [https://www.researchgate.net/profile/Angeliki_Koutsoukou-Argyraki/publication/334549483_FORMALISING_MATHEMATICS_-IN_PRAXIS_A_MATHEMATICIAN%27S_VERY_FIRST_EXPERIENCES_WITH_ISABELLEHOL/links/5d30f782299bf1547cc25f63/FORMALISING-MATHEMATICS-IN-PRAXIS-A-MATHEMATICIANS-VERY-FIRST-EXPERIENCES-WITH-ISABELLE-HOL.pdf Formalising Mathematics-in praxis; A mathematician&amp;#039;s very first experiences with Isabelle/HOL]]. &lt;br /&gt;
# G. Kolata. [http://www.nytimes.com/library/cyber/week/1210math.html Computer math proof shows reasoning power]. &amp;#039;&amp;#039;The New York Times&amp;#039;&amp;#039;, 10 de diciembre de 1996.&lt;br /&gt;
# A. Mahboubi [https://jncf2018.lip6.fr/files/lecture-notes/jncf2018-mahboubi.pdf Calcul formel et preuves formelles].&lt;br /&gt;
# A. Mahboubi. [http://bit.ly/2ch3xEa Machine-checked mathematics]. &lt;br /&gt;
# A. Mahboubi. [http://bit.ly/1qLTVBm Un ordinateur pour vérifier les preuves mathématiques]. &lt;br /&gt;
# D. MacKenzie [https://backspaces.net/temp/Spring2010Seminar/18%20unconventional%20essays%20on%20the%20nature%20of%20mathematics.pdf#page=147 Computers and the sociology of mathematical proof].&lt;br /&gt;
# C. Nalon. [https://www.mat.ufrn.br/cade-27/wp-content/uploads/2019/09/2019CN-CADE.pdf Machine-oriented reasoning].&lt;br /&gt;
# J. Narboux. [https://hal.inria.fr/hal-00809448/document Les assistants de preuve, ou comment avoir confiance en ses démonstrations].&lt;br /&gt;
# L.C. Paulson. [https://www.cl.cam.ac.uk/~lp15/papers/Formath/Sophia2017.pdf Proof assistants: from symbolic logic to real mathematics?] &lt;br /&gt;
# L.C. Paulson, T. Nipkow y M. Wenzel. [https://arxiv.org/abs/1907.02836 From LCF to Isabelle/HOL].&lt;br /&gt;
# T. Ringer et als. [https://arxiv.org/abs/2003.06458 QED at large: A survey of engineering of formally verified software].  &lt;br /&gt;
# P. Schnider. [http://bit.ly/1Gxxmx6 An introduction to proof assistants]. &lt;br /&gt;
# J. Schöpf y S. Widauer [http://cl-informatik.uibk.ac.at/teaching/ws17/vs/reports/SWreport.pdf History of interactive theorem proving].&lt;br /&gt;
# F.R. Villatoro. [http://francis.naukas.com/2017/07/29/la-demostracion-matematica-mas-larga La demostración matemática más larga]. &lt;br /&gt;
# F. Wiedijk [http://www.cs.ru.nl/~freek/100/ Formalizing the «top 100» of mathematical theorems].&lt;br /&gt;
# F. Wiedijk [http://www.ams.org/notices/200811/tx081101408p.pdf Formal proof - Getting started]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1408-1414, 2008.&lt;br /&gt;
# F. Wiedijk, [http://mizar.org/trybulec65/8.pdf The QED manifesto revisited]. &amp;#039;&amp;#039;Studies in Logic, Grammar and Rhetoric&amp;#039;&amp;#039;, Vol. 10(23), pp. 121-133, 2007.&lt;br /&gt;
&lt;br /&gt;
== Referencias sobre Isabelle/HOL ==&lt;br /&gt;
# B. Blumson [https://philpapers.org/go.pl?id=BLUIFP&amp;amp;u=https%3A%2F%2Fphilpapers.org%2Farchive%2FBLUIFP.pdf Isabelle for philosophers]. &lt;br /&gt;
# B. Grechuk [https://web.cs.wpi.edu/~dd/resources_isabelle/isabelle_primer_mathematicians.pdf Isabelle primer for mathematicians].&lt;br /&gt;
# T. Nipkow [https://isabelle.in.tum.de/doc/prog-prove.pdf Programming and proving in Isabelle/HOL]. &lt;br /&gt;
# T. Nipkow, M. Wenzel y L.C. Paulson [http://isabelle.in.tum.de/doc/tutorial.pdf A proof assistant for higher-order logic].&lt;br /&gt;
# A. Steen [https://git.imp.fu-berlin.de/leo-iii/compmeta_pub/raw/master/exercises/resources/Isabelle_ND_cheatsheet.pdf Mapping of ND proof templates to Isabelle formalization].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/dist/library/HOL/HOL/document.pdf Isabelle/HOL — Higher-Order Logic]. &lt;br /&gt;
# M. Wenzel [http://isabelle.in.tum.de/doc/isar-ref.pdf The Isabelle/Isar Reference Manual]. &lt;br /&gt;
# M. Wenzel [http://typessummerschool07.cs.unibo.it/courses/wenzel-isar-quickref.pdf The Isabelle/Isar quick reference].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/documentation.html Tutorials and manuals for Isabelle].&lt;br /&gt;
&lt;br /&gt;
== Lecturas complementarias ==&lt;br /&gt;
=== Programación funcional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/i1m-19/temas/2019-20-I1M-temas-PF.pdf Temas de &amp;quot;Programación funcional&amp;quot;]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2019.&lt;br /&gt;
# J.A. Alonso y M.J. Hidalgo [http://www.cs.us.es/~jalonso/publicaciones/Piensa_en_Haskell.pdf Piensa en Haskell (Ejercicios de programación funcional con Haskell)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2012.&lt;br /&gt;
# G. Hutton [http://bit.ly/2pQofC2 Programming in Haskell]. Cambridge University Press, 2007. &lt;br /&gt;
# M. Lipovača [http://aprendehaskell.es ¡Aprende Haskell por el bien de todos!].&lt;br /&gt;
# M. Lipovaca y J. Brock [https://mybinder.org/v2/gh/jamesdbrock/learn-you-a-haskell-notebook/master?urlpath=lab/tree/learn_you_a_haskell/00-preface.ipynb Learn you a Haskell for great good!]&lt;br /&gt;
# T. Nipkow [https://www21.in.tum.de/teaching/fpv/WS1920/slides.pdf Functional programmingand verification]. TUM, 2019.&lt;br /&gt;
&lt;br /&gt;
=== Lógica computacional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/li-15/temas/temas-LI-2015-16.pdf Temas de &amp;quot;Lógica informática&amp;quot; (2015-16)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2015.&lt;br /&gt;
# K. Broda, S. Eisenbach, H. Khoshnevisan y S. Vickers [https://www.doc.ic.ac.uk/~susan/firstyearbook.pdf Reasoned programming]. Imperial College, 1994.&lt;br /&gt;
# M. Huth y M. Ryan [http://bit.ly/2e8dFEm Logic in computer science: Modelling and reasoning about systems]. Cambridge University Press, 2004. (Incluye el [http://www.cs.bham.ac.uk/research/lics/tutor/index.html tutor en la Red]).&lt;br /&gt;
&lt;br /&gt;
== Cursos relacionados ==&lt;br /&gt;
=== Cursos con Isabelle/HOL ===&lt;br /&gt;
# Clemens Ballarin. [http://cl-informatik.uibk.ac.at/teaching/ss08/atp/introduction.php Automatic Deduction]. (Univ de Innsbruck, 2008).&lt;br /&gt;
# Clemens Ballarin. [http://www4.in.tum.de/~ballarin/belgrade08-tut/ Introduction to the Isabelle Proof Assistant]. (Belgrado, 2008). &lt;br /&gt;
# Clemens Ballarin y Gerwin Klein [http://isabelle.in.tum.de/coursematerial/IJCAR04 Introduction to the Isabelle Proof Assistant]. (en el IJCAR-2004).&lt;br /&gt;
# Clemens Ballarin y Tjark Weber. [http://cl-informatik.uibk.ac.at/teaching/ws06/atp/introduction.php Automated Theorem Proving in Isabelle/HOL]. (Univ. de Innsbruck, 2006-07).&lt;br /&gt;
# Jasmin Blanchette, Mathias Fleury y Daniel Wand [http://people.mpi-inf.mpg.de/~jblanche/cswi/ss2015/ Concrete semantics with Isabelle/HOL]. (Univ. del Sarre, 2015-16).&lt;br /&gt;
# A.D. Brucker, D. Basin, J.G. Smaus y B. Wolff. [http://archiv.infsec.ethz.ch/education/permanent/csmr.html Computer-supported Modeling and Reasoning]. (ETH Zurich, 2011).&lt;br /&gt;
# Mads Dam. [http://www.csc.kth.se/utbildning/kth/kurser/DD2453/aform07/ Advanced formal methods]. (KTH Royal Institute of Technology, 2007).&lt;br /&gt;
# Jacques Fleuriot. [http://www.inf.ed.ac.uk/teaching/courses/ar Automated reasoning]. (Univ. de Edimburgo, 2016-17).&lt;br /&gt;
# Thomas Genet [http://www.irisa.fr/celtique/genet/ACF Software formal analysis and design]. (Univ. de Rennes)&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~kleing/teaching/thprv-04 Theorem Proving - Principles, Techniques, Applications]. (NICTA, 2004).&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~cs4161/index.html Advanced Topics in Software Verification]. (NICTA, 2012).&lt;br /&gt;
# Joao Marcos. [http://www.dimap.ufrn.br/~jmarcos/courses/LC/Ementa.htm Lógica computacional: Demonstração assistida e semi-automática de teoremas].(UFRN, 2000).&lt;br /&gt;
# Tobias Nipkow. [http://www21.in.tum.de/teaching/semantik/WS1617/ Semantics of programming languages]. (Univ. de Munich, 2012-13).&lt;br /&gt;
# Tobias Nipkow. [http://isabelle.in.tum.de/coursematerial/PSV2009-1 Theorem Proving with Isabelle/HOL An Intensive Course]. &lt;br /&gt;
# Larry Paulson. [http://www.cl.cam.ac.uk/teaching/0910/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2009-10).&lt;br /&gt;
# Arnd Poetzsch-Heffter. [https://softech.informatik.uni-kl.de/homepage/de/teaching/SVHOL14/ Specification and Verification with Higher-Order Logic]. &lt;br /&gt;
# Jeremy G. Siek. [http://www.cs.colorado.edu/~siek/7000/spring07/ Practical Theorem Proving with Isabelle/Isar]. (Univ. de Colorado, 2007).&lt;br /&gt;
# Jeremy G. Siek. [http://ecee.colorado.edu/~siek/ecen5013/spring11/ Theorem proving in Isabelle]. (Univ. de Colorado, 2011).&lt;br /&gt;
# Jan-Georg Smaus. [http://www.informatik.uni-freiburg.de/~ki/teaching/ws0910/csmr/lecture.html Computer-supported modeling and reasoning]. (Univ. de Feiburgo, 2009).&lt;br /&gt;
# Christian Sternagel [http://cl-informatik.uibk.ac.at/teaching/ss11/eve/content.php Experiments in Verification – Introduction to Isabelle/HOL]. (Univ. de Innsbruck, 2011-12).&lt;br /&gt;
# Tjark Weber. [http://www.cl.cam.ac.uk/teaching/1011/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2010-11).&lt;br /&gt;
&lt;br /&gt;
=== Cursos con Coq ===&lt;br /&gt;
# Yves Bertot, Pierre Casteran, Benjamin Gregoire, Pierre Letouzey y Assia Mahboubi [http://www.di.ens.fr/~zappa/teaching/coq/ecole11 Modelling and verifying algorithms in Coq: an introduction]. (INRIA Paris-Rocquencourt, 14-18 noviembre 2011).&lt;br /&gt;
# Adam Chlipala [http://stellar.mit.edu/S/course/6/fa11/6.892/ Interactive computer theorem proving]. (MIT, 2012-13).&lt;br /&gt;
# Adam Chlipala y Armando Solar Lezama [https://stellar.mit.edu/S/course/6/fa13/6.820/index.html Foundations of program analysis]. (MIT, 2013-14).&lt;br /&gt;
# M. Greenberg [http://www.cs.pomona.edu/~michael/courses/csci054s18/ Discrete mathematics and functional programming]. &lt;br /&gt;
# Benjamin C. Pierce et als. [https://softwarefoundations.cis.upenn.edu/lf-current/index.html Software foundations (Vol. 1: Logical foundations)].&lt;br /&gt;
# Benjamin C. Pierce [https://www.seas.upenn.edu/~cis500/current/index.html Software foundations] (Univ. de Pensilvania, 2018).&lt;br /&gt;
# G. Smolka [https://courses.ps.uni-saarland.de/icl_18/2/Resources Introduction to computational logic] (Univ. de Sarre, 2018).&lt;br /&gt;
&lt;br /&gt;
=== Otros cursos ===&lt;br /&gt;
# José A. Alonso [http://www.cs.us.es/~jalonso/cursos/li/ Lógica informática] (Univ. de Sevilla, 2012-13).&lt;br /&gt;
# Thorsten Altenkirch y Peter Morris [http://www.cs.nott.ac.uk/~txa/g52ifr Introduction to formal reasoning] (Univ. de Nottingham, 2010-11).&lt;br /&gt;
# J. Blanchette y J. Höltz [https://lean-forward.github.io/logical-verification/2018 Logical verification]. (Vrije Universiteit Amsterdam, 2018-19). &lt;br /&gt;
# Pierre Castéran [http://www.labri.fr/perso/casteran/FM/Logique/index.html Logic (Master In Verification)] (Univ. de Burdeos, 2011-12).&lt;br /&gt;
# Robby Findler [http://www.eecs.northwestern.edu/~robby/courses/395-495-2013-fall Certified programming with dependent types]. (Northwestern, 2013-14).&lt;br /&gt;
# Carlos Luna y Gustavo Betarte. [https://eva.fing.edu.uy/course/view.php?id=363 Construcción formal de programas en teoría de tipos]. (Univ. de la República, Uruguay, 2013-14).&lt;br /&gt;
# Ian Hodkinson [http://www.doc.ic.ac.uk/~imh/teaching/140_logic/logic.html Logic] (Imperial College, Londres, 2010-11).&lt;br /&gt;
# Peter Lucas [http://www.cs.ru.nl/~peterl/teaching/KeR/ Knowledge Representation and Reasoning] (Radboud University # egen, 2011-12).&lt;br /&gt;
# Larry Paulson [http://www.cl.cam.ac.uk/Teaching/current/LogicProof/ Logic and Proof] (Univ. de Cambridge, 2011-12).&lt;br /&gt;
# David Pichardie [http://www.irisa.fr/celtique/pichardie/teaching/M2/MDV/ Méthode de vérification] (Universidad de Rennes, 2006-07).&lt;br /&gt;
&lt;br /&gt;
== Bibliotecas de ejemplos de verificación ==&lt;br /&gt;
# [http://afp.sourceforge.net Archive of Formal Proofs].&lt;br /&gt;
# [http://www.cs.ru.nl/~freek/100 Formalizing 100 Theorems].&lt;br /&gt;
# [http://toccata.lri.fr/gallery Gallery of verified programs].&lt;br /&gt;
# [http://automatedreasoning.net/ Larry Wos&amp;#039; Notebooks].&lt;br /&gt;
# [http://www.cs.miami.edu/~tptp/ The TPTP Problem Library for Automated Theorem Proving].&lt;br /&gt;
# [http://www.macs.hw.ac.uk/vstte10/Competition.html The 1st Verified Software Competition].&lt;br /&gt;
# [https://sites.google.com/site/vstte2012/compet The 2nd Verified Software Competition].&lt;br /&gt;
# [http://verifythis.cost-ic0701.org VerifyThis (A collection of verification benchmarks].&lt;br /&gt;
&lt;br /&gt;
== Artículos recientes ==&lt;br /&gt;
&lt;br /&gt;
Hay dos listas de artículos recientes:&lt;br /&gt;
&lt;br /&gt;
* en [https://twitter.com/search?f=tweets&amp;amp;q=%23ITP%20OR%20%23IsabelleHOL%20OR%20%23Coq%20OR%20%23Agda%20OR%20%23LeanProver%20OR%20%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd Twitter] que contiene enlaces a los artículos de razonamiento automático y demostración asistida por ordenador que se están publicando y&lt;br /&gt;
* en [https://www.glc.us.es/~jalonso/vestigium/category/resena/ Vestigium] que contiene una reseña de los más destacados.&lt;br /&gt;
&lt;br /&gt;
== Ofertas de trabajo ==&lt;br /&gt;
&lt;br /&gt;
En [https://github.com/jaalonso/Trabajos-MULCIA GitHub] se encuentra una recopilaciónn las ofertas de trabajo de interés para los estudiantes del Máster Universitario en Lógica, Computación e Inteligencia Artificial de la Universidad de Sevilla.&lt;br /&gt;
&lt;br /&gt;
Están en orden cronológico inverso por la fecha de su publicación en [https://twitter.com/search?l=&amp;amp;q=%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd&amp;amp;lang=es Twitter].&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1066</id>
		<title>Documentación</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1066"/>
		<updated>2022-02-08T16:57:32Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* Lógica computacional */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En esta página se recogen en enlaces que sirven de documentación al curso de &amp;quot;Razonamiento automático&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Vídeos ==&lt;br /&gt;
&lt;br /&gt;
* Vídeos de deducción natural con Pandora: [http://bit.ly/1tqZIOe ejemplo 1] y [http://bit.ly/1nWAVp4 ejemplo 2].&lt;br /&gt;
&lt;br /&gt;
== Visiones generales de la DAO ==&lt;br /&gt;
&lt;br /&gt;
# J.A. Alonso. [http://goo.gl/NWk7b Razonamiento formalizado: Del sueño a la realidad de las pruebas]. &lt;br /&gt;
# J.M. Aransay y C. Domínguez. [http://gaceta.rsme.es/abrir.php?id=1057 Demostración asistida por ordenador]. &lt;br /&gt;
# A. Asperti. [https://arxiv.org/abs/1701.03602 Automatic verification and interactive theorem proving]. &lt;br /&gt;
# A. Asperti. [http://www.cs.unibo.it/~asperti/SLIDES/itp.pdf A survey on interactive theorem proving]. &lt;br /&gt;
# J. Avigad. [http://bit.ly/1hsA8Ew Formal verification, interactive theorem proving, and automated reasoning].&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/icerm.pdf Interactive theorem proving, automated reasoning, and mathematical computation]. ICERM, 14 de diciembre de 2012.&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/london.pdf Automated reasoning for the working mathematician].&lt;br /&gt;
# J. Avigad, J. Harrison. [https://www.cl.cam.ac.uk/~jrh13/papers/cacm.pdf Formally verified Mathematics]. &lt;br /&gt;
# H. Barendregt y F. Wiedijk. [http://ftp.science.ru.nl/CSI/CompMath.Found/Barendregt-Wiedijk.pdf The challenge of computer mathematics].&lt;br /&gt;
# K. Buzzard. [http://wwwf.imperial.ac.uk/~buzzard/one_off_lectures/msr.pdf The future of mathematics?]&lt;br /&gt;
# C.S. Calude y C. Müller [https://www.cs.auckland.ac.nz/~cristian/crispapers/56250217.pdf Formal proof: reconciling correctness and understanding].&lt;br /&gt;
# R. David. [http://www.lama.univ-savoie.fr/~david/ftp/amphis.pdf Peut-on faire des Mathématiques avec un ordinateur?]&lt;br /&gt;
# R. David y C. Raffalli. [http://www.lama.univ-savoie.fr/~david/ftp/amphi07.pdf Peut-on avoir confiance en l’informatique?]&lt;br /&gt;
# M. Davis. [http://www.cs.nyu.edu/cs/faculty/davism/early.ps The early history of automated deduction].&lt;br /&gt;
# J.P. Delahaye [http://interstices.info/jcms/int_63417/du-reve-a-la-realite-des-preuves Du rêve à la réalité des preuves]. &amp;#039;&amp;#039;Interstices&amp;#039;&amp;#039;, 8 de julio de 2012.&lt;br /&gt;
# J. Germoni [http://images.math.cnrs.fr/Coq-et-caracteres.html Coq et caractères: Preuve formelle du théorème de Feit et Thompson]. &amp;#039;&amp;#039;Images des Mathématiques&amp;#039;&amp;#039;, CNRS, 23 de noviembre de 2012. &lt;br /&gt;
# H. Geuvers [http://www.ias.ac.in/article/fulltext/sadh/034/01/0003-0025 Proof assistants: History, ideas and future]. &amp;#039;&amp;#039;Sadhana&amp;#039;&amp;#039;, Vol. 34-1, pp. 3-25, février 2009.&lt;br /&gt;
# H. Geuvers. [http://www.cs.ru.nl/~herman/ictopen.pdf Can the computer really help us to prove theorems?]&lt;br /&gt;
# G. Gonthier [http://www.ams.org/notices/200811/tx081101382p.pdf The four-color theorem]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1382-1393, 2008.&lt;br /&gt;
# T. Hales. [http://www.ams.org/notices/200811/tx081101370p.pdf Formal proof]. &amp;#039;&amp;#039;Notices of AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) pp. 1370-1380.&lt;br /&gt;
# J. Harrison. [http://www.cl.cam.ac.uk/~jrh13/papers/ab.html A short survey of automated reasoning]. &amp;#039;&amp;#039;Lecture Notes in Computer Science&amp;#039;&amp;#039;, Vol. 4545, pp. 334-349, 2007.&lt;br /&gt;
# J. Harrison. [http://www.ams.org/notices/200811/tx081101395p.pdf Formal proof: Theory and practice]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) p.1395-1406. &lt;br /&gt;
# J. Harrison, J. Urban y F. Wiedijk [http://www.cl.cam.ac.uk/~jrh13/papers/joerg.pdf History of interactive theorem proving].&lt;br /&gt;
# A. Koutsoukou-Argyraki. [https://www.researchgate.net/profile/Angeliki_Koutsoukou-Argyraki/publication/334549483_FORMALISING_MATHEMATICS_-IN_PRAXIS_A_MATHEMATICIAN%27S_VERY_FIRST_EXPERIENCES_WITH_ISABELLEHOL/links/5d30f782299bf1547cc25f63/FORMALISING-MATHEMATICS-IN-PRAXIS-A-MATHEMATICIANS-VERY-FIRST-EXPERIENCES-WITH-ISABELLE-HOL.pdf Formalising Mathematics-in praxis; A mathematician&amp;#039;s very first experiences with Isabelle/HOL]]. &lt;br /&gt;
# G. Kolata. [http://www.nytimes.com/library/cyber/week/1210math.html Computer math proof shows reasoning power]. &amp;#039;&amp;#039;The New York Times&amp;#039;&amp;#039;, 10 de diciembre de 1996.&lt;br /&gt;
# A. Mahboubi [https://jncf2018.lip6.fr/files/lecture-notes/jncf2018-mahboubi.pdf Calcul formel et preuves formelles].&lt;br /&gt;
# A. Mahboubi. [http://bit.ly/2ch3xEa Machine-checked mathematics]. &lt;br /&gt;
# A. Mahboubi. [http://bit.ly/1qLTVBm Un ordinateur pour vérifier les preuves mathématiques]. &lt;br /&gt;
# D. MacKenzie [https://backspaces.net/temp/Spring2010Seminar/18%20unconventional%20essays%20on%20the%20nature%20of%20mathematics.pdf#page=147 Computers and the sociology of mathematical proof].&lt;br /&gt;
# C. Nalon. [https://www.mat.ufrn.br/cade-27/wp-content/uploads/2019/09/2019CN-CADE.pdf Machine-oriented reasoning].&lt;br /&gt;
# J. Narboux. [https://hal.inria.fr/hal-00809448/document Les assistants de preuve, ou comment avoir confiance en ses démonstrations].&lt;br /&gt;
# L.C. Paulson. [https://www.cl.cam.ac.uk/~lp15/papers/Formath/Sophia2017.pdf Proof assistants: from symbolic logic to real mathematics?] &lt;br /&gt;
# L.C. Paulson, T. Nipkow y M. Wenzel. [https://arxiv.org/abs/1907.02836 From LCF to Isabelle/HOL].&lt;br /&gt;
# T. Ringer et als. [https://arxiv.org/abs/2003.06458 QED at large: A survey of engineering of formally verified software].  &lt;br /&gt;
# P. Schnider. [http://bit.ly/1Gxxmx6 An introduction to proof assistants]. &lt;br /&gt;
# J. Schöpf y S. Widauer [http://cl-informatik.uibk.ac.at/teaching/ws17/vs/reports/SWreport.pdf History of interactive theorem proving].&lt;br /&gt;
# F.R. Villatoro. [http://francis.naukas.com/2017/07/29/la-demostracion-matematica-mas-larga La demostración matemática más larga]. &lt;br /&gt;
# F. Wiedijk [http://www.cs.ru.nl/~freek/100/ Formalizing the «top 100» of mathematical theorems].&lt;br /&gt;
# F. Wiedijk [http://www.ams.org/notices/200811/tx081101408p.pdf Formal proof - Getting started]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1408-1414, 2008.&lt;br /&gt;
# F. Wiedijk, [http://mizar.org/trybulec65/8.pdf The QED manifesto revisited]. &amp;#039;&amp;#039;Studies in Logic, Grammar and Rhetoric&amp;#039;&amp;#039;, Vol. 10(23), pp. 121-133, 2007.&lt;br /&gt;
&lt;br /&gt;
== Referencias sobre Isabelle/HOL ==&lt;br /&gt;
# B. Blumson [https://philpapers.org/go.pl?id=BLUIFP&amp;amp;u=https%3A%2F%2Fphilpapers.org%2Farchive%2FBLUIFP.pdf Isabelle for philosophers]. &lt;br /&gt;
# B. Grechuk [https://web.cs.wpi.edu/~dd/resources_isabelle/isabelle_primer_mathematicians.pdf Isabelle primer for mathematicians].&lt;br /&gt;
# T. Nipkow [https://isabelle.in.tum.de/doc/prog-prove.pdf Programming and proving in Isabelle/HOL]. &lt;br /&gt;
# T. Nipkow, M. Wenzel y L.C. Paulson [http://isabelle.in.tum.de/doc/tutorial.pdf A proof assistant for higher-order logic].&lt;br /&gt;
# A. Steen [https://git.imp.fu-berlin.de/leo-iii/compmeta_pub/raw/master/exercises/resources/Isabelle_ND_cheatsheet.pdf Mapping of ND proof templates to Isabelle formalization].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/dist/library/HOL/HOL/document.pdf Isabelle/HOL — Higher-Order Logic]. &lt;br /&gt;
# M. Wenzel [http://isabelle.in.tum.de/doc/isar-ref.pdf The Isabelle/Isar Reference Manual]. &lt;br /&gt;
# M. Wenzel [http://typessummerschool07.cs.unibo.it/courses/wenzel-isar-quickref.pdf The Isabelle/Isar quick reference].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/documentation.html Tutorials and manuals for Isabelle].&lt;br /&gt;
&lt;br /&gt;
== Lecturas complementarias ==&lt;br /&gt;
=== Programación funcional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/i1m-19/temas/2019-20-I1M-temas-PF.pdf Temas de &amp;quot;Programación funcional&amp;quot;]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2019.&lt;br /&gt;
# J.A. Alonso y M.J. Hidalgo [http://www.cs.us.es/~jalonso/publicaciones/Piensa_en_Haskell.pdf Piensa en Haskell (Ejercicios de programación funcional con Haskell)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2012.&lt;br /&gt;
# G. Hutton [http://bit.ly/2pQofC2 Programming in Haskell]. Cambridge University Press, 2007. &lt;br /&gt;
# M. Lipovača [http://aprendehaskell.es ¡Aprende Haskell por el bien de todos!].&lt;br /&gt;
# M. Lipovaca y J. Brock [https://mybinder.org/v2/gh/jamesdbrock/learn-you-a-haskell-notebook/master?urlpath=lab/tree/learn_you_a_haskell/00-preface.ipynb Learn you a Haskell for great good!]&lt;br /&gt;
# T. Nipkow [https://www21.in.tum.de/teaching/fpv/WS1920/slides.pdf Functional programmingand verification]. TUM, 2019.&lt;br /&gt;
&lt;br /&gt;
=== Lógica computacional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/li-15/temas/temas-LI-2015-16.pdf Temas de &amp;quot;Lógica informática&amp;quot; (2015-16)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2015.&lt;br /&gt;
# K. Broda, S. Eisenbach, H. Khoshnevisan y S. Vickers [https://www.doc.ic.ac.uk/~susan/firstyearbook.pdf Reasoned programming]. Imperial College, 1994.&lt;br /&gt;
# M. Huth y M. Ryan [http://bit.ly/2e8dFEm Logic in computer science: Modelling and reasoning about systems]. Cambridge University Press, 2004. (Incluye el [http://www.cs.bham.ac.uk/research/lics/tutor/index.html tutor en la Red]).&lt;br /&gt;
&lt;br /&gt;
== Cursos relacionados ==&lt;br /&gt;
=== Cursos con Isabelle/HOL ===&lt;br /&gt;
# Jeremy Avigad. [http://www.phil.cmu.edu/~avigad/formal/ Logic and Formal Verification]. (Carnegie Mellon, 2009).&lt;br /&gt;
# Clemens Ballarin. [http://cl-informatik.uibk.ac.at/teaching/ss08/atp/introduction.php Automatic Deduction]. (Univ de Innsbruck, 2008).&lt;br /&gt;
# Clemens Ballarin. [http://www4.in.tum.de/~ballarin/belgrade08-tut/ Introduction to the Isabelle Proof Assistant]. (Belgrado, 2008). &lt;br /&gt;
# Clemens Ballarin y Gerwin Klein [http://isabelle.in.tum.de/coursematerial/IJCAR04 Introduction to the Isabelle Proof Assistant]. (en el IJCAR-2004).&lt;br /&gt;
# Clemens Ballarin y Tjark Weber. [http://cl-informatik.uibk.ac.at/teaching/ws06/atp/introduction.php Automated Theorem Proving in Isabelle/HOL]. (Univ. de Innsbruck, 2006-07).&lt;br /&gt;
# Jasmin Blanchette, Mathias Fleury y Daniel Wand [http://people.mpi-inf.mpg.de/~jblanche/cswi/ss2015/ Concrete semantics with Isabelle/HOL]. (Univ. del Sarre, 2015-16).&lt;br /&gt;
# A.D. Brucker, D. Basin, J.G. Smaus y B. Wolff. [http://archiv.infsec.ethz.ch/education/permanent/csmr.html Computer-supported Modeling and Reasoning]. (ETH Zurich, 2011).&lt;br /&gt;
# Mads Dam. [http://www.csc.kth.se/utbildning/kth/kurser/DD2453/aform07/ Advanced formal methods]. (KTH Royal Institute of Technology, 2007).&lt;br /&gt;
# Jacques Fleuriot. [http://www.inf.ed.ac.uk/teaching/courses/ar Automated reasoning]. (Univ. de Edimburgo, 2016-17).&lt;br /&gt;
# Thomas Genet [http://www.irisa.fr/celtique/genet/ACF Software formal analysis and design]. (Univ. de Rennes)&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~kleing/teaching/thprv-04 Theorem Proving - Principles, Techniques, Applications]. (NICTA, 2004).&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~cs4161/index.html Advanced Topics in Software Verification]. (NICTA, 2012).&lt;br /&gt;
# Joao Marcos. [http://www.dimap.ufrn.br/~jmarcos/courses/LC/Ementa.htm Lógica computacional: Demonstração assistida e semi-automática de teoremas].(UFRN, 2000).&lt;br /&gt;
# Tobias Nipkow. [http://www21.in.tum.de/teaching/semantik/WS1617/ Semantics of programming languages]. (Univ. de Munich, 2012-13).&lt;br /&gt;
# Tobias Nipkow. [http://isabelle.in.tum.de/coursematerial/PSV2009-1 Theorem Proving with Isabelle/HOL An Intensive Course]. &lt;br /&gt;
# Larry Paulson. [http://www.cl.cam.ac.uk/teaching/0910/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2009-10).&lt;br /&gt;
# Arnd Poetzsch-Heffter. [https://softech.informatik.uni-kl.de/homepage/de/teaching/SVHOL14/ Specification and Verification with Higher-Order Logic]. &lt;br /&gt;
# Jeremy G. Siek. [http://www.cs.colorado.edu/~siek/7000/spring07/ Practical Theorem Proving with Isabelle/Isar]. (Univ. de Colorado, 2007).&lt;br /&gt;
# Jeremy G. Siek. [http://ecee.colorado.edu/~siek/ecen5013/spring11/ Theorem proving in Isabelle]. (Univ. de Colorado, 2011).&lt;br /&gt;
# Jan-Georg Smaus. [http://www.informatik.uni-freiburg.de/~ki/teaching/ws0910/csmr/lecture.html Computer-supported modeling and reasoning]. (Univ. de Feiburgo, 2009).&lt;br /&gt;
# Christian Sternagel [http://cl-informatik.uibk.ac.at/teaching/ss11/eve/content.php Experiments in Verification – Introduction to Isabelle/HOL]. (Univ. de Innsbruck, 2011-12).&lt;br /&gt;
# Tjark Weber. [http://www.cl.cam.ac.uk/teaching/1011/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2010-11).&lt;br /&gt;
&lt;br /&gt;
=== Cursos con Coq ===&lt;br /&gt;
# Yves Bertot, Pierre Casteran, Benjamin Gregoire, Pierre Letouzey y Assia Mahboubi [http://www.di.ens.fr/~zappa/teaching/coq/ecole11 Modelling and verifying algorithms in Coq: an introduction]. (INRIA Paris-Rocquencourt, 14-18 noviembre 2011).&lt;br /&gt;
# Adam Chlipala [http://stellar.mit.edu/S/course/6/fa11/6.892/ Interactive computer theorem proving]. (MIT, 2012-13).&lt;br /&gt;
# Adam Chlipala y Armando Solar Lezama [https://stellar.mit.edu/S/course/6/fa13/6.820/index.html Foundations of program analysis]. (MIT, 2013-14).&lt;br /&gt;
# M. Greenberg [http://www.cs.pomona.edu/~michael/courses/csci054s18/ Discrete mathematics and functional programming]. &lt;br /&gt;
# Benjamin C. Pierce et als. [https://softwarefoundations.cis.upenn.edu/lf-current/index.html Software foundations (Vol. 1: Logical foundations)].&lt;br /&gt;
# Benjamin C. Pierce [https://www.seas.upenn.edu/~cis500/current/index.html Software foundations] (Univ. de Pensilvania, 2018).&lt;br /&gt;
# G. Smolka [https://courses.ps.uni-saarland.de/icl_18/2/Resources Introduction to computational logic] (Univ. de Sarre, 2018).&lt;br /&gt;
&lt;br /&gt;
=== Otros cursos ===&lt;br /&gt;
# José A. Alonso [http://www.cs.us.es/~jalonso/cursos/li/ Lógica informática] (Univ. de Sevilla, 2012-13).&lt;br /&gt;
# Thorsten Altenkirch y Peter Morris [http://www.cs.nott.ac.uk/~txa/g52ifr Introduction to formal reasoning] (Univ. de Nottingham, 2010-11).&lt;br /&gt;
# J. Blanchette y J. Höltz [https://lean-forward.github.io/logical-verification/2018 Logical verification]. (Vrije Universiteit Amsterdam, 2018-19). &lt;br /&gt;
# Pierre Castéran [http://www.labri.fr/perso/casteran/FM/Logique/index.html Logic (Master In Verification)] (Univ. de Burdeos, 2011-12).&lt;br /&gt;
# Robby Findler [http://www.eecs.northwestern.edu/~robby/courses/395-495-2013-fall Certified programming with dependent types]. (Northwestern, 2013-14).&lt;br /&gt;
# Carlos Luna y Gustavo Betarte. [https://eva.fing.edu.uy/course/view.php?id=363 Construcción formal de programas en teoría de tipos]. (Univ. de la República, Uruguay, 2013-14).&lt;br /&gt;
# Ian Hodkinson [http://www.doc.ic.ac.uk/~imh/teaching/140_logic/logic.html Logic] (Imperial College, Londres, 2010-11).&lt;br /&gt;
# Peter Lucas [http://www.cs.ru.nl/~peterl/teaching/KeR/ Knowledge Representation and Reasoning] (Radboud University # egen, 2011-12).&lt;br /&gt;
# Larry Paulson [http://www.cl.cam.ac.uk/Teaching/current/LogicProof/ Logic and Proof] (Univ. de Cambridge, 2011-12).&lt;br /&gt;
# David Pichardie [http://www.irisa.fr/celtique/pichardie/teaching/M2/MDV/ Méthode de vérification] (Universidad de Rennes, 2006-07).&lt;br /&gt;
&lt;br /&gt;
== Bibliotecas de ejemplos de verificación ==&lt;br /&gt;
# [http://afp.sourceforge.net Archive of Formal Proofs].&lt;br /&gt;
# [http://www.cs.ru.nl/~freek/100 Formalizing 100 Theorems].&lt;br /&gt;
# [http://toccata.lri.fr/gallery Gallery of verified programs].&lt;br /&gt;
# [http://automatedreasoning.net/ Larry Wos&amp;#039; Notebooks].&lt;br /&gt;
# [http://www.cs.miami.edu/~tptp/ The TPTP Problem Library for Automated Theorem Proving].&lt;br /&gt;
# [http://www.macs.hw.ac.uk/vstte10/Competition.html The 1st Verified Software Competition].&lt;br /&gt;
# [https://sites.google.com/site/vstte2012/compet The 2nd Verified Software Competition].&lt;br /&gt;
# [http://verifythis.cost-ic0701.org VerifyThis (A collection of verification benchmarks].&lt;br /&gt;
&lt;br /&gt;
== Artículos recientes ==&lt;br /&gt;
&lt;br /&gt;
Hay dos listas de artículos recientes:&lt;br /&gt;
&lt;br /&gt;
* en [https://twitter.com/search?f=tweets&amp;amp;q=%23ITP%20OR%20%23IsabelleHOL%20OR%20%23Coq%20OR%20%23Agda%20OR%20%23LeanProver%20OR%20%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd Twitter] que contiene enlaces a los artículos de razonamiento automático y demostración asistida por ordenador que se están publicando y&lt;br /&gt;
* en [https://www.glc.us.es/~jalonso/vestigium/category/resena/ Vestigium] que contiene una reseña de los más destacados.&lt;br /&gt;
&lt;br /&gt;
== Ofertas de trabajo ==&lt;br /&gt;
&lt;br /&gt;
En [https://github.com/jaalonso/Trabajos-MULCIA GitHub] se encuentra una recopilaciónn las ofertas de trabajo de interés para los estudiantes del Máster Universitario en Lógica, Computación e Inteligencia Artificial de la Universidad de Sevilla.&lt;br /&gt;
&lt;br /&gt;
Están en orden cronológico inverso por la fecha de su publicación en [https://twitter.com/search?l=&amp;amp;q=%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd&amp;amp;lang=es Twitter].&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1065</id>
		<title>Documentación</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1065"/>
		<updated>2022-02-08T16:56:19Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* Lógica computacional */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En esta página se recogen en enlaces que sirven de documentación al curso de &amp;quot;Razonamiento automático&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Vídeos ==&lt;br /&gt;
&lt;br /&gt;
* Vídeos de deducción natural con Pandora: [http://bit.ly/1tqZIOe ejemplo 1] y [http://bit.ly/1nWAVp4 ejemplo 2].&lt;br /&gt;
&lt;br /&gt;
== Visiones generales de la DAO ==&lt;br /&gt;
&lt;br /&gt;
# J.A. Alonso. [http://goo.gl/NWk7b Razonamiento formalizado: Del sueño a la realidad de las pruebas]. &lt;br /&gt;
# J.M. Aransay y C. Domínguez. [http://gaceta.rsme.es/abrir.php?id=1057 Demostración asistida por ordenador]. &lt;br /&gt;
# A. Asperti. [https://arxiv.org/abs/1701.03602 Automatic verification and interactive theorem proving]. &lt;br /&gt;
# A. Asperti. [http://www.cs.unibo.it/~asperti/SLIDES/itp.pdf A survey on interactive theorem proving]. &lt;br /&gt;
# J. Avigad. [http://bit.ly/1hsA8Ew Formal verification, interactive theorem proving, and automated reasoning].&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/icerm.pdf Interactive theorem proving, automated reasoning, and mathematical computation]. ICERM, 14 de diciembre de 2012.&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/london.pdf Automated reasoning for the working mathematician].&lt;br /&gt;
# J. Avigad, J. Harrison. [https://www.cl.cam.ac.uk/~jrh13/papers/cacm.pdf Formally verified Mathematics]. &lt;br /&gt;
# H. Barendregt y F. Wiedijk. [http://ftp.science.ru.nl/CSI/CompMath.Found/Barendregt-Wiedijk.pdf The challenge of computer mathematics].&lt;br /&gt;
# K. Buzzard. [http://wwwf.imperial.ac.uk/~buzzard/one_off_lectures/msr.pdf The future of mathematics?]&lt;br /&gt;
# C.S. Calude y C. Müller [https://www.cs.auckland.ac.nz/~cristian/crispapers/56250217.pdf Formal proof: reconciling correctness and understanding].&lt;br /&gt;
# R. David. [http://www.lama.univ-savoie.fr/~david/ftp/amphis.pdf Peut-on faire des Mathématiques avec un ordinateur?]&lt;br /&gt;
# R. David y C. Raffalli. [http://www.lama.univ-savoie.fr/~david/ftp/amphi07.pdf Peut-on avoir confiance en l’informatique?]&lt;br /&gt;
# M. Davis. [http://www.cs.nyu.edu/cs/faculty/davism/early.ps The early history of automated deduction].&lt;br /&gt;
# J.P. Delahaye [http://interstices.info/jcms/int_63417/du-reve-a-la-realite-des-preuves Du rêve à la réalité des preuves]. &amp;#039;&amp;#039;Interstices&amp;#039;&amp;#039;, 8 de julio de 2012.&lt;br /&gt;
# J. Germoni [http://images.math.cnrs.fr/Coq-et-caracteres.html Coq et caractères: Preuve formelle du théorème de Feit et Thompson]. &amp;#039;&amp;#039;Images des Mathématiques&amp;#039;&amp;#039;, CNRS, 23 de noviembre de 2012. &lt;br /&gt;
# H. Geuvers [http://www.ias.ac.in/article/fulltext/sadh/034/01/0003-0025 Proof assistants: History, ideas and future]. &amp;#039;&amp;#039;Sadhana&amp;#039;&amp;#039;, Vol. 34-1, pp. 3-25, février 2009.&lt;br /&gt;
# H. Geuvers. [http://www.cs.ru.nl/~herman/ictopen.pdf Can the computer really help us to prove theorems?]&lt;br /&gt;
# G. Gonthier [http://www.ams.org/notices/200811/tx081101382p.pdf The four-color theorem]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1382-1393, 2008.&lt;br /&gt;
# T. Hales. [http://www.ams.org/notices/200811/tx081101370p.pdf Formal proof]. &amp;#039;&amp;#039;Notices of AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) pp. 1370-1380.&lt;br /&gt;
# J. Harrison. [http://www.cl.cam.ac.uk/~jrh13/papers/ab.html A short survey of automated reasoning]. &amp;#039;&amp;#039;Lecture Notes in Computer Science&amp;#039;&amp;#039;, Vol. 4545, pp. 334-349, 2007.&lt;br /&gt;
# J. Harrison. [http://www.ams.org/notices/200811/tx081101395p.pdf Formal proof: Theory and practice]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) p.1395-1406. &lt;br /&gt;
# J. Harrison, J. Urban y F. Wiedijk [http://www.cl.cam.ac.uk/~jrh13/papers/joerg.pdf History of interactive theorem proving].&lt;br /&gt;
# A. Koutsoukou-Argyraki. [https://www.researchgate.net/profile/Angeliki_Koutsoukou-Argyraki/publication/334549483_FORMALISING_MATHEMATICS_-IN_PRAXIS_A_MATHEMATICIAN%27S_VERY_FIRST_EXPERIENCES_WITH_ISABELLEHOL/links/5d30f782299bf1547cc25f63/FORMALISING-MATHEMATICS-IN-PRAXIS-A-MATHEMATICIANS-VERY-FIRST-EXPERIENCES-WITH-ISABELLE-HOL.pdf Formalising Mathematics-in praxis; A mathematician&amp;#039;s very first experiences with Isabelle/HOL]]. &lt;br /&gt;
# G. Kolata. [http://www.nytimes.com/library/cyber/week/1210math.html Computer math proof shows reasoning power]. &amp;#039;&amp;#039;The New York Times&amp;#039;&amp;#039;, 10 de diciembre de 1996.&lt;br /&gt;
# A. Mahboubi [https://jncf2018.lip6.fr/files/lecture-notes/jncf2018-mahboubi.pdf Calcul formel et preuves formelles].&lt;br /&gt;
# A. Mahboubi. [http://bit.ly/2ch3xEa Machine-checked mathematics]. &lt;br /&gt;
# A. Mahboubi. [http://bit.ly/1qLTVBm Un ordinateur pour vérifier les preuves mathématiques]. &lt;br /&gt;
# D. MacKenzie [https://backspaces.net/temp/Spring2010Seminar/18%20unconventional%20essays%20on%20the%20nature%20of%20mathematics.pdf#page=147 Computers and the sociology of mathematical proof].&lt;br /&gt;
# C. Nalon. [https://www.mat.ufrn.br/cade-27/wp-content/uploads/2019/09/2019CN-CADE.pdf Machine-oriented reasoning].&lt;br /&gt;
# J. Narboux. [https://hal.inria.fr/hal-00809448/document Les assistants de preuve, ou comment avoir confiance en ses démonstrations].&lt;br /&gt;
# L.C. Paulson. [https://www.cl.cam.ac.uk/~lp15/papers/Formath/Sophia2017.pdf Proof assistants: from symbolic logic to real mathematics?] &lt;br /&gt;
# L.C. Paulson, T. Nipkow y M. Wenzel. [https://arxiv.org/abs/1907.02836 From LCF to Isabelle/HOL].&lt;br /&gt;
# T. Ringer et als. [https://arxiv.org/abs/2003.06458 QED at large: A survey of engineering of formally verified software].  &lt;br /&gt;
# P. Schnider. [http://bit.ly/1Gxxmx6 An introduction to proof assistants]. &lt;br /&gt;
# J. Schöpf y S. Widauer [http://cl-informatik.uibk.ac.at/teaching/ws17/vs/reports/SWreport.pdf History of interactive theorem proving].&lt;br /&gt;
# F.R. Villatoro. [http://francis.naukas.com/2017/07/29/la-demostracion-matematica-mas-larga La demostración matemática más larga]. &lt;br /&gt;
# F. Wiedijk [http://www.cs.ru.nl/~freek/100/ Formalizing the «top 100» of mathematical theorems].&lt;br /&gt;
# F. Wiedijk [http://www.ams.org/notices/200811/tx081101408p.pdf Formal proof - Getting started]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1408-1414, 2008.&lt;br /&gt;
# F. Wiedijk, [http://mizar.org/trybulec65/8.pdf The QED manifesto revisited]. &amp;#039;&amp;#039;Studies in Logic, Grammar and Rhetoric&amp;#039;&amp;#039;, Vol. 10(23), pp. 121-133, 2007.&lt;br /&gt;
&lt;br /&gt;
== Referencias sobre Isabelle/HOL ==&lt;br /&gt;
# B. Blumson [https://philpapers.org/go.pl?id=BLUIFP&amp;amp;u=https%3A%2F%2Fphilpapers.org%2Farchive%2FBLUIFP.pdf Isabelle for philosophers]. &lt;br /&gt;
# B. Grechuk [https://web.cs.wpi.edu/~dd/resources_isabelle/isabelle_primer_mathematicians.pdf Isabelle primer for mathematicians].&lt;br /&gt;
# T. Nipkow [https://isabelle.in.tum.de/doc/prog-prove.pdf Programming and proving in Isabelle/HOL]. &lt;br /&gt;
# T. Nipkow, M. Wenzel y L.C. Paulson [http://isabelle.in.tum.de/doc/tutorial.pdf A proof assistant for higher-order logic].&lt;br /&gt;
# A. Steen [https://git.imp.fu-berlin.de/leo-iii/compmeta_pub/raw/master/exercises/resources/Isabelle_ND_cheatsheet.pdf Mapping of ND proof templates to Isabelle formalization].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/dist/library/HOL/HOL/document.pdf Isabelle/HOL — Higher-Order Logic]. &lt;br /&gt;
# M. Wenzel [http://isabelle.in.tum.de/doc/isar-ref.pdf The Isabelle/Isar Reference Manual]. &lt;br /&gt;
# M. Wenzel [http://typessummerschool07.cs.unibo.it/courses/wenzel-isar-quickref.pdf The Isabelle/Isar quick reference].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/documentation.html Tutorials and manuals for Isabelle].&lt;br /&gt;
&lt;br /&gt;
== Lecturas complementarias ==&lt;br /&gt;
=== Programación funcional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/i1m-19/temas/2019-20-I1M-temas-PF.pdf Temas de &amp;quot;Programación funcional&amp;quot;]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2019.&lt;br /&gt;
# J.A. Alonso y M.J. Hidalgo [http://www.cs.us.es/~jalonso/publicaciones/Piensa_en_Haskell.pdf Piensa en Haskell (Ejercicios de programación funcional con Haskell)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2012.&lt;br /&gt;
# G. Hutton [http://bit.ly/2pQofC2 Programming in Haskell]. Cambridge University Press, 2007. &lt;br /&gt;
# M. Lipovača [http://aprendehaskell.es ¡Aprende Haskell por el bien de todos!].&lt;br /&gt;
# M. Lipovaca y J. Brock [https://mybinder.org/v2/gh/jamesdbrock/learn-you-a-haskell-notebook/master?urlpath=lab/tree/learn_you_a_haskell/00-preface.ipynb Learn you a Haskell for great good!]&lt;br /&gt;
# T. Nipkow [https://www21.in.tum.de/teaching/fpv/WS1920/slides.pdf Functional programmingand verification]. TUM, 2019.&lt;br /&gt;
&lt;br /&gt;
=== Lógica computacional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/li-15/temas/temas-LI-2015-16.pdf Temas de &amp;quot;Lógica informática&amp;quot; (2015-16)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2015.&lt;br /&gt;
# K. Broda, S. Eisenbach, H. Khoshnevisan y S. Vickers [http://pubs.doc.ic.ac.uk/reasoned-programming/reasoned-programming.pdf Reasoned programming]. Imperial College, 1994.&lt;br /&gt;
# M. Huth y M. Ryan [http://bit.ly/2e8dFEm Logic in computer science: Modelling and reasoning about systems]. Cambridge University Press, 2004. (Incluye el [http://www.cs.bham.ac.uk/research/lics/tutor/index.html tutor en la Red]).&lt;br /&gt;
&lt;br /&gt;
== Cursos relacionados ==&lt;br /&gt;
=== Cursos con Isabelle/HOL ===&lt;br /&gt;
# Jeremy Avigad. [http://www.phil.cmu.edu/~avigad/formal/ Logic and Formal Verification]. (Carnegie Mellon, 2009).&lt;br /&gt;
# Clemens Ballarin. [http://cl-informatik.uibk.ac.at/teaching/ss08/atp/introduction.php Automatic Deduction]. (Univ de Innsbruck, 2008).&lt;br /&gt;
# Clemens Ballarin. [http://www4.in.tum.de/~ballarin/belgrade08-tut/ Introduction to the Isabelle Proof Assistant]. (Belgrado, 2008). &lt;br /&gt;
# Clemens Ballarin y Gerwin Klein [http://isabelle.in.tum.de/coursematerial/IJCAR04 Introduction to the Isabelle Proof Assistant]. (en el IJCAR-2004).&lt;br /&gt;
# Clemens Ballarin y Tjark Weber. [http://cl-informatik.uibk.ac.at/teaching/ws06/atp/introduction.php Automated Theorem Proving in Isabelle/HOL]. (Univ. de Innsbruck, 2006-07).&lt;br /&gt;
# Jasmin Blanchette, Mathias Fleury y Daniel Wand [http://people.mpi-inf.mpg.de/~jblanche/cswi/ss2015/ Concrete semantics with Isabelle/HOL]. (Univ. del Sarre, 2015-16).&lt;br /&gt;
# A.D. Brucker, D. Basin, J.G. Smaus y B. Wolff. [http://archiv.infsec.ethz.ch/education/permanent/csmr.html Computer-supported Modeling and Reasoning]. (ETH Zurich, 2011).&lt;br /&gt;
# Mads Dam. [http://www.csc.kth.se/utbildning/kth/kurser/DD2453/aform07/ Advanced formal methods]. (KTH Royal Institute of Technology, 2007).&lt;br /&gt;
# Jacques Fleuriot. [http://www.inf.ed.ac.uk/teaching/courses/ar Automated reasoning]. (Univ. de Edimburgo, 2016-17).&lt;br /&gt;
# Thomas Genet [http://www.irisa.fr/celtique/genet/ACF Software formal analysis and design]. (Univ. de Rennes)&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~kleing/teaching/thprv-04 Theorem Proving - Principles, Techniques, Applications]. (NICTA, 2004).&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~cs4161/index.html Advanced Topics in Software Verification]. (NICTA, 2012).&lt;br /&gt;
# Joao Marcos. [http://www.dimap.ufrn.br/~jmarcos/courses/LC/Ementa.htm Lógica computacional: Demonstração assistida e semi-automática de teoremas].(UFRN, 2000).&lt;br /&gt;
# Tobias Nipkow. [http://www21.in.tum.de/teaching/semantik/WS1617/ Semantics of programming languages]. (Univ. de Munich, 2012-13).&lt;br /&gt;
# Tobias Nipkow. [http://isabelle.in.tum.de/coursematerial/PSV2009-1 Theorem Proving with Isabelle/HOL An Intensive Course]. &lt;br /&gt;
# Larry Paulson. [http://www.cl.cam.ac.uk/teaching/0910/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2009-10).&lt;br /&gt;
# Arnd Poetzsch-Heffter. [https://softech.informatik.uni-kl.de/homepage/de/teaching/SVHOL14/ Specification and Verification with Higher-Order Logic]. &lt;br /&gt;
# Jeremy G. Siek. [http://www.cs.colorado.edu/~siek/7000/spring07/ Practical Theorem Proving with Isabelle/Isar]. (Univ. de Colorado, 2007).&lt;br /&gt;
# Jeremy G. Siek. [http://ecee.colorado.edu/~siek/ecen5013/spring11/ Theorem proving in Isabelle]. (Univ. de Colorado, 2011).&lt;br /&gt;
# Jan-Georg Smaus. [http://www.informatik.uni-freiburg.de/~ki/teaching/ws0910/csmr/lecture.html Computer-supported modeling and reasoning]. (Univ. de Feiburgo, 2009).&lt;br /&gt;
# Christian Sternagel [http://cl-informatik.uibk.ac.at/teaching/ss11/eve/content.php Experiments in Verification – Introduction to Isabelle/HOL]. (Univ. de Innsbruck, 2011-12).&lt;br /&gt;
# Tjark Weber. [http://www.cl.cam.ac.uk/teaching/1011/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2010-11).&lt;br /&gt;
&lt;br /&gt;
=== Cursos con Coq ===&lt;br /&gt;
# Yves Bertot, Pierre Casteran, Benjamin Gregoire, Pierre Letouzey y Assia Mahboubi [http://www.di.ens.fr/~zappa/teaching/coq/ecole11 Modelling and verifying algorithms in Coq: an introduction]. (INRIA Paris-Rocquencourt, 14-18 noviembre 2011).&lt;br /&gt;
# Adam Chlipala [http://stellar.mit.edu/S/course/6/fa11/6.892/ Interactive computer theorem proving]. (MIT, 2012-13).&lt;br /&gt;
# Adam Chlipala y Armando Solar Lezama [https://stellar.mit.edu/S/course/6/fa13/6.820/index.html Foundations of program analysis]. (MIT, 2013-14).&lt;br /&gt;
# M. Greenberg [http://www.cs.pomona.edu/~michael/courses/csci054s18/ Discrete mathematics and functional programming]. &lt;br /&gt;
# Benjamin C. Pierce et als. [https://softwarefoundations.cis.upenn.edu/lf-current/index.html Software foundations (Vol. 1: Logical foundations)].&lt;br /&gt;
# Benjamin C. Pierce [https://www.seas.upenn.edu/~cis500/current/index.html Software foundations] (Univ. de Pensilvania, 2018).&lt;br /&gt;
# G. Smolka [https://courses.ps.uni-saarland.de/icl_18/2/Resources Introduction to computational logic] (Univ. de Sarre, 2018).&lt;br /&gt;
&lt;br /&gt;
=== Otros cursos ===&lt;br /&gt;
# José A. Alonso [http://www.cs.us.es/~jalonso/cursos/li/ Lógica informática] (Univ. de Sevilla, 2012-13).&lt;br /&gt;
# Thorsten Altenkirch y Peter Morris [http://www.cs.nott.ac.uk/~txa/g52ifr Introduction to formal reasoning] (Univ. de Nottingham, 2010-11).&lt;br /&gt;
# J. Blanchette y J. Höltz [https://lean-forward.github.io/logical-verification/2018 Logical verification]. (Vrije Universiteit Amsterdam, 2018-19). &lt;br /&gt;
# Pierre Castéran [http://www.labri.fr/perso/casteran/FM/Logique/index.html Logic (Master In Verification)] (Univ. de Burdeos, 2011-12).&lt;br /&gt;
# Robby Findler [http://www.eecs.northwestern.edu/~robby/courses/395-495-2013-fall Certified programming with dependent types]. (Northwestern, 2013-14).&lt;br /&gt;
# Carlos Luna y Gustavo Betarte. [https://eva.fing.edu.uy/course/view.php?id=363 Construcción formal de programas en teoría de tipos]. (Univ. de la República, Uruguay, 2013-14).&lt;br /&gt;
# Ian Hodkinson [http://www.doc.ic.ac.uk/~imh/teaching/140_logic/logic.html Logic] (Imperial College, Londres, 2010-11).&lt;br /&gt;
# Peter Lucas [http://www.cs.ru.nl/~peterl/teaching/KeR/ Knowledge Representation and Reasoning] (Radboud University # egen, 2011-12).&lt;br /&gt;
# Larry Paulson [http://www.cl.cam.ac.uk/Teaching/current/LogicProof/ Logic and Proof] (Univ. de Cambridge, 2011-12).&lt;br /&gt;
# David Pichardie [http://www.irisa.fr/celtique/pichardie/teaching/M2/MDV/ Méthode de vérification] (Universidad de Rennes, 2006-07).&lt;br /&gt;
&lt;br /&gt;
== Bibliotecas de ejemplos de verificación ==&lt;br /&gt;
# [http://afp.sourceforge.net Archive of Formal Proofs].&lt;br /&gt;
# [http://www.cs.ru.nl/~freek/100 Formalizing 100 Theorems].&lt;br /&gt;
# [http://toccata.lri.fr/gallery Gallery of verified programs].&lt;br /&gt;
# [http://automatedreasoning.net/ Larry Wos&amp;#039; Notebooks].&lt;br /&gt;
# [http://www.cs.miami.edu/~tptp/ The TPTP Problem Library for Automated Theorem Proving].&lt;br /&gt;
# [http://www.macs.hw.ac.uk/vstte10/Competition.html The 1st Verified Software Competition].&lt;br /&gt;
# [https://sites.google.com/site/vstte2012/compet The 2nd Verified Software Competition].&lt;br /&gt;
# [http://verifythis.cost-ic0701.org VerifyThis (A collection of verification benchmarks].&lt;br /&gt;
&lt;br /&gt;
== Artículos recientes ==&lt;br /&gt;
&lt;br /&gt;
Hay dos listas de artículos recientes:&lt;br /&gt;
&lt;br /&gt;
* en [https://twitter.com/search?f=tweets&amp;amp;q=%23ITP%20OR%20%23IsabelleHOL%20OR%20%23Coq%20OR%20%23Agda%20OR%20%23LeanProver%20OR%20%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd Twitter] que contiene enlaces a los artículos de razonamiento automático y demostración asistida por ordenador que se están publicando y&lt;br /&gt;
* en [https://www.glc.us.es/~jalonso/vestigium/category/resena/ Vestigium] que contiene una reseña de los más destacados.&lt;br /&gt;
&lt;br /&gt;
== Ofertas de trabajo ==&lt;br /&gt;
&lt;br /&gt;
En [https://github.com/jaalonso/Trabajos-MULCIA GitHub] se encuentra una recopilaciónn las ofertas de trabajo de interés para los estudiantes del Máster Universitario en Lógica, Computación e Inteligencia Artificial de la Universidad de Sevilla.&lt;br /&gt;
&lt;br /&gt;
Están en orden cronológico inverso por la fecha de su publicación en [https://twitter.com/search?l=&amp;amp;q=%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd&amp;amp;lang=es Twitter].&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1064</id>
		<title>Documentación</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1064"/>
		<updated>2022-02-08T15:51:20Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* Programación funcional */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En esta página se recogen en enlaces que sirven de documentación al curso de &amp;quot;Razonamiento automático&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Vídeos ==&lt;br /&gt;
&lt;br /&gt;
* Vídeos de deducción natural con Pandora: [http://bit.ly/1tqZIOe ejemplo 1] y [http://bit.ly/1nWAVp4 ejemplo 2].&lt;br /&gt;
&lt;br /&gt;
== Visiones generales de la DAO ==&lt;br /&gt;
&lt;br /&gt;
# J.A. Alonso. [http://goo.gl/NWk7b Razonamiento formalizado: Del sueño a la realidad de las pruebas]. &lt;br /&gt;
# J.M. Aransay y C. Domínguez. [http://gaceta.rsme.es/abrir.php?id=1057 Demostración asistida por ordenador]. &lt;br /&gt;
# A. Asperti. [https://arxiv.org/abs/1701.03602 Automatic verification and interactive theorem proving]. &lt;br /&gt;
# A. Asperti. [http://www.cs.unibo.it/~asperti/SLIDES/itp.pdf A survey on interactive theorem proving]. &lt;br /&gt;
# J. Avigad. [http://bit.ly/1hsA8Ew Formal verification, interactive theorem proving, and automated reasoning].&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/icerm.pdf Interactive theorem proving, automated reasoning, and mathematical computation]. ICERM, 14 de diciembre de 2012.&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/london.pdf Automated reasoning for the working mathematician].&lt;br /&gt;
# J. Avigad, J. Harrison. [https://www.cl.cam.ac.uk/~jrh13/papers/cacm.pdf Formally verified Mathematics]. &lt;br /&gt;
# H. Barendregt y F. Wiedijk. [http://ftp.science.ru.nl/CSI/CompMath.Found/Barendregt-Wiedijk.pdf The challenge of computer mathematics].&lt;br /&gt;
# K. Buzzard. [http://wwwf.imperial.ac.uk/~buzzard/one_off_lectures/msr.pdf The future of mathematics?]&lt;br /&gt;
# C.S. Calude y C. Müller [https://www.cs.auckland.ac.nz/~cristian/crispapers/56250217.pdf Formal proof: reconciling correctness and understanding].&lt;br /&gt;
# R. David. [http://www.lama.univ-savoie.fr/~david/ftp/amphis.pdf Peut-on faire des Mathématiques avec un ordinateur?]&lt;br /&gt;
# R. David y C. Raffalli. [http://www.lama.univ-savoie.fr/~david/ftp/amphi07.pdf Peut-on avoir confiance en l’informatique?]&lt;br /&gt;
# M. Davis. [http://www.cs.nyu.edu/cs/faculty/davism/early.ps The early history of automated deduction].&lt;br /&gt;
# J.P. Delahaye [http://interstices.info/jcms/int_63417/du-reve-a-la-realite-des-preuves Du rêve à la réalité des preuves]. &amp;#039;&amp;#039;Interstices&amp;#039;&amp;#039;, 8 de julio de 2012.&lt;br /&gt;
# J. Germoni [http://images.math.cnrs.fr/Coq-et-caracteres.html Coq et caractères: Preuve formelle du théorème de Feit et Thompson]. &amp;#039;&amp;#039;Images des Mathématiques&amp;#039;&amp;#039;, CNRS, 23 de noviembre de 2012. &lt;br /&gt;
# H. Geuvers [http://www.ias.ac.in/article/fulltext/sadh/034/01/0003-0025 Proof assistants: History, ideas and future]. &amp;#039;&amp;#039;Sadhana&amp;#039;&amp;#039;, Vol. 34-1, pp. 3-25, février 2009.&lt;br /&gt;
# H. Geuvers. [http://www.cs.ru.nl/~herman/ictopen.pdf Can the computer really help us to prove theorems?]&lt;br /&gt;
# G. Gonthier [http://www.ams.org/notices/200811/tx081101382p.pdf The four-color theorem]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1382-1393, 2008.&lt;br /&gt;
# T. Hales. [http://www.ams.org/notices/200811/tx081101370p.pdf Formal proof]. &amp;#039;&amp;#039;Notices of AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) pp. 1370-1380.&lt;br /&gt;
# J. Harrison. [http://www.cl.cam.ac.uk/~jrh13/papers/ab.html A short survey of automated reasoning]. &amp;#039;&amp;#039;Lecture Notes in Computer Science&amp;#039;&amp;#039;, Vol. 4545, pp. 334-349, 2007.&lt;br /&gt;
# J. Harrison. [http://www.ams.org/notices/200811/tx081101395p.pdf Formal proof: Theory and practice]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) p.1395-1406. &lt;br /&gt;
# J. Harrison, J. Urban y F. Wiedijk [http://www.cl.cam.ac.uk/~jrh13/papers/joerg.pdf History of interactive theorem proving].&lt;br /&gt;
# A. Koutsoukou-Argyraki. [https://www.researchgate.net/profile/Angeliki_Koutsoukou-Argyraki/publication/334549483_FORMALISING_MATHEMATICS_-IN_PRAXIS_A_MATHEMATICIAN%27S_VERY_FIRST_EXPERIENCES_WITH_ISABELLEHOL/links/5d30f782299bf1547cc25f63/FORMALISING-MATHEMATICS-IN-PRAXIS-A-MATHEMATICIANS-VERY-FIRST-EXPERIENCES-WITH-ISABELLE-HOL.pdf Formalising Mathematics-in praxis; A mathematician&amp;#039;s very first experiences with Isabelle/HOL]]. &lt;br /&gt;
# G. Kolata. [http://www.nytimes.com/library/cyber/week/1210math.html Computer math proof shows reasoning power]. &amp;#039;&amp;#039;The New York Times&amp;#039;&amp;#039;, 10 de diciembre de 1996.&lt;br /&gt;
# A. Mahboubi [https://jncf2018.lip6.fr/files/lecture-notes/jncf2018-mahboubi.pdf Calcul formel et preuves formelles].&lt;br /&gt;
# A. Mahboubi. [http://bit.ly/2ch3xEa Machine-checked mathematics]. &lt;br /&gt;
# A. Mahboubi. [http://bit.ly/1qLTVBm Un ordinateur pour vérifier les preuves mathématiques]. &lt;br /&gt;
# D. MacKenzie [https://backspaces.net/temp/Spring2010Seminar/18%20unconventional%20essays%20on%20the%20nature%20of%20mathematics.pdf#page=147 Computers and the sociology of mathematical proof].&lt;br /&gt;
# C. Nalon. [https://www.mat.ufrn.br/cade-27/wp-content/uploads/2019/09/2019CN-CADE.pdf Machine-oriented reasoning].&lt;br /&gt;
# J. Narboux. [https://hal.inria.fr/hal-00809448/document Les assistants de preuve, ou comment avoir confiance en ses démonstrations].&lt;br /&gt;
# L.C. Paulson. [https://www.cl.cam.ac.uk/~lp15/papers/Formath/Sophia2017.pdf Proof assistants: from symbolic logic to real mathematics?] &lt;br /&gt;
# L.C. Paulson, T. Nipkow y M. Wenzel. [https://arxiv.org/abs/1907.02836 From LCF to Isabelle/HOL].&lt;br /&gt;
# T. Ringer et als. [https://arxiv.org/abs/2003.06458 QED at large: A survey of engineering of formally verified software].  &lt;br /&gt;
# P. Schnider. [http://bit.ly/1Gxxmx6 An introduction to proof assistants]. &lt;br /&gt;
# J. Schöpf y S. Widauer [http://cl-informatik.uibk.ac.at/teaching/ws17/vs/reports/SWreport.pdf History of interactive theorem proving].&lt;br /&gt;
# F.R. Villatoro. [http://francis.naukas.com/2017/07/29/la-demostracion-matematica-mas-larga La demostración matemática más larga]. &lt;br /&gt;
# F. Wiedijk [http://www.cs.ru.nl/~freek/100/ Formalizing the «top 100» of mathematical theorems].&lt;br /&gt;
# F. Wiedijk [http://www.ams.org/notices/200811/tx081101408p.pdf Formal proof - Getting started]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1408-1414, 2008.&lt;br /&gt;
# F. Wiedijk, [http://mizar.org/trybulec65/8.pdf The QED manifesto revisited]. &amp;#039;&amp;#039;Studies in Logic, Grammar and Rhetoric&amp;#039;&amp;#039;, Vol. 10(23), pp. 121-133, 2007.&lt;br /&gt;
&lt;br /&gt;
== Referencias sobre Isabelle/HOL ==&lt;br /&gt;
# B. Blumson [https://philpapers.org/go.pl?id=BLUIFP&amp;amp;u=https%3A%2F%2Fphilpapers.org%2Farchive%2FBLUIFP.pdf Isabelle for philosophers]. &lt;br /&gt;
# B. Grechuk [https://web.cs.wpi.edu/~dd/resources_isabelle/isabelle_primer_mathematicians.pdf Isabelle primer for mathematicians].&lt;br /&gt;
# T. Nipkow [https://isabelle.in.tum.de/doc/prog-prove.pdf Programming and proving in Isabelle/HOL]. &lt;br /&gt;
# T. Nipkow, M. Wenzel y L.C. Paulson [http://isabelle.in.tum.de/doc/tutorial.pdf A proof assistant for higher-order logic].&lt;br /&gt;
# A. Steen [https://git.imp.fu-berlin.de/leo-iii/compmeta_pub/raw/master/exercises/resources/Isabelle_ND_cheatsheet.pdf Mapping of ND proof templates to Isabelle formalization].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/dist/library/HOL/HOL/document.pdf Isabelle/HOL — Higher-Order Logic]. &lt;br /&gt;
# M. Wenzel [http://isabelle.in.tum.de/doc/isar-ref.pdf The Isabelle/Isar Reference Manual]. &lt;br /&gt;
# M. Wenzel [http://typessummerschool07.cs.unibo.it/courses/wenzel-isar-quickref.pdf The Isabelle/Isar quick reference].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/documentation.html Tutorials and manuals for Isabelle].&lt;br /&gt;
&lt;br /&gt;
== Lecturas complementarias ==&lt;br /&gt;
=== Programación funcional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/i1m-19/temas/2019-20-I1M-temas-PF.pdf Temas de &amp;quot;Programación funcional&amp;quot;]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2019.&lt;br /&gt;
# J.A. Alonso y M.J. Hidalgo [http://www.cs.us.es/~jalonso/publicaciones/Piensa_en_Haskell.pdf Piensa en Haskell (Ejercicios de programación funcional con Haskell)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2012.&lt;br /&gt;
# G. Hutton [http://bit.ly/2pQofC2 Programming in Haskell]. Cambridge University Press, 2007. &lt;br /&gt;
# M. Lipovača [http://aprendehaskell.es ¡Aprende Haskell por el bien de todos!].&lt;br /&gt;
# M. Lipovaca y J. Brock [https://mybinder.org/v2/gh/jamesdbrock/learn-you-a-haskell-notebook/master?urlpath=lab/tree/learn_you_a_haskell/00-preface.ipynb Learn you a Haskell for great good!]&lt;br /&gt;
# T. Nipkow [https://www21.in.tum.de/teaching/fpv/WS1920/slides.pdf Functional programmingand verification]. TUM, 2019.&lt;br /&gt;
&lt;br /&gt;
=== Lógica computacional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/li-15/temas/temas-LI-2015-16.pdf Temas de &amp;quot;Lógica informática&amp;quot; (2015-16)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2015.&lt;br /&gt;
# K. Broda, S. Eisenbach, H. Khoshnevisan y S. Vickers [http://pubs.doc.ic.ac.uk/reasoned-programming/reasoned-programming.pdf Reasoned programming]. Imperial College, 1994.&lt;br /&gt;
# K. Doets y J. van Eijck [http://www.ldc.usb.ve/~astorga/Haskell.Road.pdf The Haskell Road to Logic, Maths and Programming].&lt;br /&gt;
# M. Huth y M. Ryan [http://bit.ly/2e8dFEm Logic in computer science: Modelling and reasoning about systems]. Cambridge University Press, 2004. (Incluye el [http://www.cs.bham.ac.uk/research/lics/tutor/index.html tutor en la Red]).&lt;br /&gt;
&lt;br /&gt;
== Cursos relacionados ==&lt;br /&gt;
=== Cursos con Isabelle/HOL ===&lt;br /&gt;
# Jeremy Avigad. [http://www.phil.cmu.edu/~avigad/formal/ Logic and Formal Verification]. (Carnegie Mellon, 2009).&lt;br /&gt;
# Clemens Ballarin. [http://cl-informatik.uibk.ac.at/teaching/ss08/atp/introduction.php Automatic Deduction]. (Univ de Innsbruck, 2008).&lt;br /&gt;
# Clemens Ballarin. [http://www4.in.tum.de/~ballarin/belgrade08-tut/ Introduction to the Isabelle Proof Assistant]. (Belgrado, 2008). &lt;br /&gt;
# Clemens Ballarin y Gerwin Klein [http://isabelle.in.tum.de/coursematerial/IJCAR04 Introduction to the Isabelle Proof Assistant]. (en el IJCAR-2004).&lt;br /&gt;
# Clemens Ballarin y Tjark Weber. [http://cl-informatik.uibk.ac.at/teaching/ws06/atp/introduction.php Automated Theorem Proving in Isabelle/HOL]. (Univ. de Innsbruck, 2006-07).&lt;br /&gt;
# Jasmin Blanchette, Mathias Fleury y Daniel Wand [http://people.mpi-inf.mpg.de/~jblanche/cswi/ss2015/ Concrete semantics with Isabelle/HOL]. (Univ. del Sarre, 2015-16).&lt;br /&gt;
# A.D. Brucker, D. Basin, J.G. Smaus y B. Wolff. [http://archiv.infsec.ethz.ch/education/permanent/csmr.html Computer-supported Modeling and Reasoning]. (ETH Zurich, 2011).&lt;br /&gt;
# Mads Dam. [http://www.csc.kth.se/utbildning/kth/kurser/DD2453/aform07/ Advanced formal methods]. (KTH Royal Institute of Technology, 2007).&lt;br /&gt;
# Jacques Fleuriot. [http://www.inf.ed.ac.uk/teaching/courses/ar Automated reasoning]. (Univ. de Edimburgo, 2016-17).&lt;br /&gt;
# Thomas Genet [http://www.irisa.fr/celtique/genet/ACF Software formal analysis and design]. (Univ. de Rennes)&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~kleing/teaching/thprv-04 Theorem Proving - Principles, Techniques, Applications]. (NICTA, 2004).&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~cs4161/index.html Advanced Topics in Software Verification]. (NICTA, 2012).&lt;br /&gt;
# Joao Marcos. [http://www.dimap.ufrn.br/~jmarcos/courses/LC/Ementa.htm Lógica computacional: Demonstração assistida e semi-automática de teoremas].(UFRN, 2000).&lt;br /&gt;
# Tobias Nipkow. [http://www21.in.tum.de/teaching/semantik/WS1617/ Semantics of programming languages]. (Univ. de Munich, 2012-13).&lt;br /&gt;
# Tobias Nipkow. [http://isabelle.in.tum.de/coursematerial/PSV2009-1 Theorem Proving with Isabelle/HOL An Intensive Course]. &lt;br /&gt;
# Larry Paulson. [http://www.cl.cam.ac.uk/teaching/0910/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2009-10).&lt;br /&gt;
# Arnd Poetzsch-Heffter. [https://softech.informatik.uni-kl.de/homepage/de/teaching/SVHOL14/ Specification and Verification with Higher-Order Logic]. &lt;br /&gt;
# Jeremy G. Siek. [http://www.cs.colorado.edu/~siek/7000/spring07/ Practical Theorem Proving with Isabelle/Isar]. (Univ. de Colorado, 2007).&lt;br /&gt;
# Jeremy G. Siek. [http://ecee.colorado.edu/~siek/ecen5013/spring11/ Theorem proving in Isabelle]. (Univ. de Colorado, 2011).&lt;br /&gt;
# Jan-Georg Smaus. [http://www.informatik.uni-freiburg.de/~ki/teaching/ws0910/csmr/lecture.html Computer-supported modeling and reasoning]. (Univ. de Feiburgo, 2009).&lt;br /&gt;
# Christian Sternagel [http://cl-informatik.uibk.ac.at/teaching/ss11/eve/content.php Experiments in Verification – Introduction to Isabelle/HOL]. (Univ. de Innsbruck, 2011-12).&lt;br /&gt;
# Tjark Weber. [http://www.cl.cam.ac.uk/teaching/1011/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2010-11).&lt;br /&gt;
&lt;br /&gt;
=== Cursos con Coq ===&lt;br /&gt;
# Yves Bertot, Pierre Casteran, Benjamin Gregoire, Pierre Letouzey y Assia Mahboubi [http://www.di.ens.fr/~zappa/teaching/coq/ecole11 Modelling and verifying algorithms in Coq: an introduction]. (INRIA Paris-Rocquencourt, 14-18 noviembre 2011).&lt;br /&gt;
# Adam Chlipala [http://stellar.mit.edu/S/course/6/fa11/6.892/ Interactive computer theorem proving]. (MIT, 2012-13).&lt;br /&gt;
# Adam Chlipala y Armando Solar Lezama [https://stellar.mit.edu/S/course/6/fa13/6.820/index.html Foundations of program analysis]. (MIT, 2013-14).&lt;br /&gt;
# M. Greenberg [http://www.cs.pomona.edu/~michael/courses/csci054s18/ Discrete mathematics and functional programming]. &lt;br /&gt;
# Benjamin C. Pierce et als. [https://softwarefoundations.cis.upenn.edu/lf-current/index.html Software foundations (Vol. 1: Logical foundations)].&lt;br /&gt;
# Benjamin C. Pierce [https://www.seas.upenn.edu/~cis500/current/index.html Software foundations] (Univ. de Pensilvania, 2018).&lt;br /&gt;
# G. Smolka [https://courses.ps.uni-saarland.de/icl_18/2/Resources Introduction to computational logic] (Univ. de Sarre, 2018).&lt;br /&gt;
&lt;br /&gt;
=== Otros cursos ===&lt;br /&gt;
# José A. Alonso [http://www.cs.us.es/~jalonso/cursos/li/ Lógica informática] (Univ. de Sevilla, 2012-13).&lt;br /&gt;
# Thorsten Altenkirch y Peter Morris [http://www.cs.nott.ac.uk/~txa/g52ifr Introduction to formal reasoning] (Univ. de Nottingham, 2010-11).&lt;br /&gt;
# J. Blanchette y J. Höltz [https://lean-forward.github.io/logical-verification/2018 Logical verification]. (Vrije Universiteit Amsterdam, 2018-19). &lt;br /&gt;
# Pierre Castéran [http://www.labri.fr/perso/casteran/FM/Logique/index.html Logic (Master In Verification)] (Univ. de Burdeos, 2011-12).&lt;br /&gt;
# Robby Findler [http://www.eecs.northwestern.edu/~robby/courses/395-495-2013-fall Certified programming with dependent types]. (Northwestern, 2013-14).&lt;br /&gt;
# Carlos Luna y Gustavo Betarte. [https://eva.fing.edu.uy/course/view.php?id=363 Construcción formal de programas en teoría de tipos]. (Univ. de la República, Uruguay, 2013-14).&lt;br /&gt;
# Ian Hodkinson [http://www.doc.ic.ac.uk/~imh/teaching/140_logic/logic.html Logic] (Imperial College, Londres, 2010-11).&lt;br /&gt;
# Peter Lucas [http://www.cs.ru.nl/~peterl/teaching/KeR/ Knowledge Representation and Reasoning] (Radboud University # egen, 2011-12).&lt;br /&gt;
# Larry Paulson [http://www.cl.cam.ac.uk/Teaching/current/LogicProof/ Logic and Proof] (Univ. de Cambridge, 2011-12).&lt;br /&gt;
# David Pichardie [http://www.irisa.fr/celtique/pichardie/teaching/M2/MDV/ Méthode de vérification] (Universidad de Rennes, 2006-07).&lt;br /&gt;
&lt;br /&gt;
== Bibliotecas de ejemplos de verificación ==&lt;br /&gt;
# [http://afp.sourceforge.net Archive of Formal Proofs].&lt;br /&gt;
# [http://www.cs.ru.nl/~freek/100 Formalizing 100 Theorems].&lt;br /&gt;
# [http://toccata.lri.fr/gallery Gallery of verified programs].&lt;br /&gt;
# [http://automatedreasoning.net/ Larry Wos&amp;#039; Notebooks].&lt;br /&gt;
# [http://www.cs.miami.edu/~tptp/ The TPTP Problem Library for Automated Theorem Proving].&lt;br /&gt;
# [http://www.macs.hw.ac.uk/vstte10/Competition.html The 1st Verified Software Competition].&lt;br /&gt;
# [https://sites.google.com/site/vstte2012/compet The 2nd Verified Software Competition].&lt;br /&gt;
# [http://verifythis.cost-ic0701.org VerifyThis (A collection of verification benchmarks].&lt;br /&gt;
&lt;br /&gt;
== Artículos recientes ==&lt;br /&gt;
&lt;br /&gt;
Hay dos listas de artículos recientes:&lt;br /&gt;
&lt;br /&gt;
* en [https://twitter.com/search?f=tweets&amp;amp;q=%23ITP%20OR%20%23IsabelleHOL%20OR%20%23Coq%20OR%20%23Agda%20OR%20%23LeanProver%20OR%20%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd Twitter] que contiene enlaces a los artículos de razonamiento automático y demostración asistida por ordenador que se están publicando y&lt;br /&gt;
* en [https://www.glc.us.es/~jalonso/vestigium/category/resena/ Vestigium] que contiene una reseña de los más destacados.&lt;br /&gt;
&lt;br /&gt;
== Ofertas de trabajo ==&lt;br /&gt;
&lt;br /&gt;
En [https://github.com/jaalonso/Trabajos-MULCIA GitHub] se encuentra una recopilaciónn las ofertas de trabajo de interés para los estudiantes del Máster Universitario en Lógica, Computación e Inteligencia Artificial de la Universidad de Sevilla.&lt;br /&gt;
&lt;br /&gt;
Están en orden cronológico inverso por la fecha de su publicación en [https://twitter.com/search?l=&amp;amp;q=%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd&amp;amp;lang=es Twitter].&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1063</id>
		<title>Documentación</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1063"/>
		<updated>2022-02-08T15:50:50Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* Referencias sobre Isabelle/HOL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En esta página se recogen en enlaces que sirven de documentación al curso de &amp;quot;Razonamiento automático&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Vídeos ==&lt;br /&gt;
&lt;br /&gt;
* Vídeos de deducción natural con Pandora: [http://bit.ly/1tqZIOe ejemplo 1] y [http://bit.ly/1nWAVp4 ejemplo 2].&lt;br /&gt;
&lt;br /&gt;
== Visiones generales de la DAO ==&lt;br /&gt;
&lt;br /&gt;
# J.A. Alonso. [http://goo.gl/NWk7b Razonamiento formalizado: Del sueño a la realidad de las pruebas]. &lt;br /&gt;
# J.M. Aransay y C. Domínguez. [http://gaceta.rsme.es/abrir.php?id=1057 Demostración asistida por ordenador]. &lt;br /&gt;
# A. Asperti. [https://arxiv.org/abs/1701.03602 Automatic verification and interactive theorem proving]. &lt;br /&gt;
# A. Asperti. [http://www.cs.unibo.it/~asperti/SLIDES/itp.pdf A survey on interactive theorem proving]. &lt;br /&gt;
# J. Avigad. [http://bit.ly/1hsA8Ew Formal verification, interactive theorem proving, and automated reasoning].&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/icerm.pdf Interactive theorem proving, automated reasoning, and mathematical computation]. ICERM, 14 de diciembre de 2012.&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/london.pdf Automated reasoning for the working mathematician].&lt;br /&gt;
# J. Avigad, J. Harrison. [https://www.cl.cam.ac.uk/~jrh13/papers/cacm.pdf Formally verified Mathematics]. &lt;br /&gt;
# H. Barendregt y F. Wiedijk. [http://ftp.science.ru.nl/CSI/CompMath.Found/Barendregt-Wiedijk.pdf The challenge of computer mathematics].&lt;br /&gt;
# K. Buzzard. [http://wwwf.imperial.ac.uk/~buzzard/one_off_lectures/msr.pdf The future of mathematics?]&lt;br /&gt;
# C.S. Calude y C. Müller [https://www.cs.auckland.ac.nz/~cristian/crispapers/56250217.pdf Formal proof: reconciling correctness and understanding].&lt;br /&gt;
# R. David. [http://www.lama.univ-savoie.fr/~david/ftp/amphis.pdf Peut-on faire des Mathématiques avec un ordinateur?]&lt;br /&gt;
# R. David y C. Raffalli. [http://www.lama.univ-savoie.fr/~david/ftp/amphi07.pdf Peut-on avoir confiance en l’informatique?]&lt;br /&gt;
# M. Davis. [http://www.cs.nyu.edu/cs/faculty/davism/early.ps The early history of automated deduction].&lt;br /&gt;
# J.P. Delahaye [http://interstices.info/jcms/int_63417/du-reve-a-la-realite-des-preuves Du rêve à la réalité des preuves]. &amp;#039;&amp;#039;Interstices&amp;#039;&amp;#039;, 8 de julio de 2012.&lt;br /&gt;
# J. Germoni [http://images.math.cnrs.fr/Coq-et-caracteres.html Coq et caractères: Preuve formelle du théorème de Feit et Thompson]. &amp;#039;&amp;#039;Images des Mathématiques&amp;#039;&amp;#039;, CNRS, 23 de noviembre de 2012. &lt;br /&gt;
# H. Geuvers [http://www.ias.ac.in/article/fulltext/sadh/034/01/0003-0025 Proof assistants: History, ideas and future]. &amp;#039;&amp;#039;Sadhana&amp;#039;&amp;#039;, Vol. 34-1, pp. 3-25, février 2009.&lt;br /&gt;
# H. Geuvers. [http://www.cs.ru.nl/~herman/ictopen.pdf Can the computer really help us to prove theorems?]&lt;br /&gt;
# G. Gonthier [http://www.ams.org/notices/200811/tx081101382p.pdf The four-color theorem]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1382-1393, 2008.&lt;br /&gt;
# T. Hales. [http://www.ams.org/notices/200811/tx081101370p.pdf Formal proof]. &amp;#039;&amp;#039;Notices of AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) pp. 1370-1380.&lt;br /&gt;
# J. Harrison. [http://www.cl.cam.ac.uk/~jrh13/papers/ab.html A short survey of automated reasoning]. &amp;#039;&amp;#039;Lecture Notes in Computer Science&amp;#039;&amp;#039;, Vol. 4545, pp. 334-349, 2007.&lt;br /&gt;
# J. Harrison. [http://www.ams.org/notices/200811/tx081101395p.pdf Formal proof: Theory and practice]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) p.1395-1406. &lt;br /&gt;
# J. Harrison, J. Urban y F. Wiedijk [http://www.cl.cam.ac.uk/~jrh13/papers/joerg.pdf History of interactive theorem proving].&lt;br /&gt;
# A. Koutsoukou-Argyraki. [https://www.researchgate.net/profile/Angeliki_Koutsoukou-Argyraki/publication/334549483_FORMALISING_MATHEMATICS_-IN_PRAXIS_A_MATHEMATICIAN%27S_VERY_FIRST_EXPERIENCES_WITH_ISABELLEHOL/links/5d30f782299bf1547cc25f63/FORMALISING-MATHEMATICS-IN-PRAXIS-A-MATHEMATICIANS-VERY-FIRST-EXPERIENCES-WITH-ISABELLE-HOL.pdf Formalising Mathematics-in praxis; A mathematician&amp;#039;s very first experiences with Isabelle/HOL]]. &lt;br /&gt;
# G. Kolata. [http://www.nytimes.com/library/cyber/week/1210math.html Computer math proof shows reasoning power]. &amp;#039;&amp;#039;The New York Times&amp;#039;&amp;#039;, 10 de diciembre de 1996.&lt;br /&gt;
# A. Mahboubi [https://jncf2018.lip6.fr/files/lecture-notes/jncf2018-mahboubi.pdf Calcul formel et preuves formelles].&lt;br /&gt;
# A. Mahboubi. [http://bit.ly/2ch3xEa Machine-checked mathematics]. &lt;br /&gt;
# A. Mahboubi. [http://bit.ly/1qLTVBm Un ordinateur pour vérifier les preuves mathématiques]. &lt;br /&gt;
# D. MacKenzie [https://backspaces.net/temp/Spring2010Seminar/18%20unconventional%20essays%20on%20the%20nature%20of%20mathematics.pdf#page=147 Computers and the sociology of mathematical proof].&lt;br /&gt;
# C. Nalon. [https://www.mat.ufrn.br/cade-27/wp-content/uploads/2019/09/2019CN-CADE.pdf Machine-oriented reasoning].&lt;br /&gt;
# J. Narboux. [https://hal.inria.fr/hal-00809448/document Les assistants de preuve, ou comment avoir confiance en ses démonstrations].&lt;br /&gt;
# L.C. Paulson. [https://www.cl.cam.ac.uk/~lp15/papers/Formath/Sophia2017.pdf Proof assistants: from symbolic logic to real mathematics?] &lt;br /&gt;
# L.C. Paulson, T. Nipkow y M. Wenzel. [https://arxiv.org/abs/1907.02836 From LCF to Isabelle/HOL].&lt;br /&gt;
# T. Ringer et als. [https://arxiv.org/abs/2003.06458 QED at large: A survey of engineering of formally verified software].  &lt;br /&gt;
# P. Schnider. [http://bit.ly/1Gxxmx6 An introduction to proof assistants]. &lt;br /&gt;
# J. Schöpf y S. Widauer [http://cl-informatik.uibk.ac.at/teaching/ws17/vs/reports/SWreport.pdf History of interactive theorem proving].&lt;br /&gt;
# F.R. Villatoro. [http://francis.naukas.com/2017/07/29/la-demostracion-matematica-mas-larga La demostración matemática más larga]. &lt;br /&gt;
# F. Wiedijk [http://www.cs.ru.nl/~freek/100/ Formalizing the «top 100» of mathematical theorems].&lt;br /&gt;
# F. Wiedijk [http://www.ams.org/notices/200811/tx081101408p.pdf Formal proof - Getting started]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1408-1414, 2008.&lt;br /&gt;
# F. Wiedijk, [http://mizar.org/trybulec65/8.pdf The QED manifesto revisited]. &amp;#039;&amp;#039;Studies in Logic, Grammar and Rhetoric&amp;#039;&amp;#039;, Vol. 10(23), pp. 121-133, 2007.&lt;br /&gt;
&lt;br /&gt;
== Referencias sobre Isabelle/HOL ==&lt;br /&gt;
# B. Blumson [https://philpapers.org/go.pl?id=BLUIFP&amp;amp;u=https%3A%2F%2Fphilpapers.org%2Farchive%2FBLUIFP.pdf Isabelle for philosophers]. &lt;br /&gt;
# B. Grechuk [https://web.cs.wpi.edu/~dd/resources_isabelle/isabelle_primer_mathematicians.pdf Isabelle primer for mathematicians].&lt;br /&gt;
# T. Nipkow [https://isabelle.in.tum.de/doc/prog-prove.pdf Programming and proving in Isabelle/HOL]. &lt;br /&gt;
# T. Nipkow, M. Wenzel y L.C. Paulson [http://isabelle.in.tum.de/doc/tutorial.pdf A proof assistant for higher-order logic].&lt;br /&gt;
# A. Steen [https://git.imp.fu-berlin.de/leo-iii/compmeta_pub/raw/master/exercises/resources/Isabelle_ND_cheatsheet.pdf Mapping of ND proof templates to Isabelle formalization].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/dist/library/HOL/HOL/document.pdf Isabelle/HOL — Higher-Order Logic]. &lt;br /&gt;
# M. Wenzel [http://isabelle.in.tum.de/doc/isar-ref.pdf The Isabelle/Isar Reference Manual]. &lt;br /&gt;
# M. Wenzel [http://typessummerschool07.cs.unibo.it/courses/wenzel-isar-quickref.pdf The Isabelle/Isar quick reference].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/documentation.html Tutorials and manuals for Isabelle].&lt;br /&gt;
&lt;br /&gt;
== Lecturas complementarias ==&lt;br /&gt;
=== Programación funcional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/i1m/temas/2019-20-I1M-temas-PF.pdf Temas de &amp;quot;Programación funcional&amp;quot;]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2019.&lt;br /&gt;
# J.A. Alonso y M.J. Hidalgo [http://www.cs.us.es/~jalonso/publicaciones/Piensa_en_Haskell.pdf Piensa en Haskell (Ejercicios de programación funcional con Haskell)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2012.&lt;br /&gt;
# G. Hutton [http://bit.ly/2pQofC2 Programming in Haskell]. Cambridge University Press, 2007. &lt;br /&gt;
# M. Lipovača [http://aprendehaskell.es ¡Aprende Haskell por el bien de todos!].&lt;br /&gt;
# M. Lipovaca y J. Brock [https://mybinder.org/v2/gh/jamesdbrock/learn-you-a-haskell-notebook/master?urlpath=lab/tree/learn_you_a_haskell/00-preface.ipynb Learn you a Haskell for great good!]&lt;br /&gt;
# T. Nipkow [https://www21.in.tum.de/teaching/fpv/WS1920/slides.pdf Functional programmingand verification]. TUM, 2019.&lt;br /&gt;
&lt;br /&gt;
=== Lógica computacional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/li-15/temas/temas-LI-2015-16.pdf Temas de &amp;quot;Lógica informática&amp;quot; (2015-16)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2015.&lt;br /&gt;
# K. Broda, S. Eisenbach, H. Khoshnevisan y S. Vickers [http://pubs.doc.ic.ac.uk/reasoned-programming/reasoned-programming.pdf Reasoned programming]. Imperial College, 1994.&lt;br /&gt;
# K. Doets y J. van Eijck [http://www.ldc.usb.ve/~astorga/Haskell.Road.pdf The Haskell Road to Logic, Maths and Programming].&lt;br /&gt;
# M. Huth y M. Ryan [http://bit.ly/2e8dFEm Logic in computer science: Modelling and reasoning about systems]. Cambridge University Press, 2004. (Incluye el [http://www.cs.bham.ac.uk/research/lics/tutor/index.html tutor en la Red]).&lt;br /&gt;
&lt;br /&gt;
== Cursos relacionados ==&lt;br /&gt;
=== Cursos con Isabelle/HOL ===&lt;br /&gt;
# Jeremy Avigad. [http://www.phil.cmu.edu/~avigad/formal/ Logic and Formal Verification]. (Carnegie Mellon, 2009).&lt;br /&gt;
# Clemens Ballarin. [http://cl-informatik.uibk.ac.at/teaching/ss08/atp/introduction.php Automatic Deduction]. (Univ de Innsbruck, 2008).&lt;br /&gt;
# Clemens Ballarin. [http://www4.in.tum.de/~ballarin/belgrade08-tut/ Introduction to the Isabelle Proof Assistant]. (Belgrado, 2008). &lt;br /&gt;
# Clemens Ballarin y Gerwin Klein [http://isabelle.in.tum.de/coursematerial/IJCAR04 Introduction to the Isabelle Proof Assistant]. (en el IJCAR-2004).&lt;br /&gt;
# Clemens Ballarin y Tjark Weber. [http://cl-informatik.uibk.ac.at/teaching/ws06/atp/introduction.php Automated Theorem Proving in Isabelle/HOL]. (Univ. de Innsbruck, 2006-07).&lt;br /&gt;
# Jasmin Blanchette, Mathias Fleury y Daniel Wand [http://people.mpi-inf.mpg.de/~jblanche/cswi/ss2015/ Concrete semantics with Isabelle/HOL]. (Univ. del Sarre, 2015-16).&lt;br /&gt;
# A.D. Brucker, D. Basin, J.G. Smaus y B. Wolff. [http://archiv.infsec.ethz.ch/education/permanent/csmr.html Computer-supported Modeling and Reasoning]. (ETH Zurich, 2011).&lt;br /&gt;
# Mads Dam. [http://www.csc.kth.se/utbildning/kth/kurser/DD2453/aform07/ Advanced formal methods]. (KTH Royal Institute of Technology, 2007).&lt;br /&gt;
# Jacques Fleuriot. [http://www.inf.ed.ac.uk/teaching/courses/ar Automated reasoning]. (Univ. de Edimburgo, 2016-17).&lt;br /&gt;
# Thomas Genet [http://www.irisa.fr/celtique/genet/ACF Software formal analysis and design]. (Univ. de Rennes)&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~kleing/teaching/thprv-04 Theorem Proving - Principles, Techniques, Applications]. (NICTA, 2004).&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~cs4161/index.html Advanced Topics in Software Verification]. (NICTA, 2012).&lt;br /&gt;
# Joao Marcos. [http://www.dimap.ufrn.br/~jmarcos/courses/LC/Ementa.htm Lógica computacional: Demonstração assistida e semi-automática de teoremas].(UFRN, 2000).&lt;br /&gt;
# Tobias Nipkow. [http://www21.in.tum.de/teaching/semantik/WS1617/ Semantics of programming languages]. (Univ. de Munich, 2012-13).&lt;br /&gt;
# Tobias Nipkow. [http://isabelle.in.tum.de/coursematerial/PSV2009-1 Theorem Proving with Isabelle/HOL An Intensive Course]. &lt;br /&gt;
# Larry Paulson. [http://www.cl.cam.ac.uk/teaching/0910/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2009-10).&lt;br /&gt;
# Arnd Poetzsch-Heffter. [https://softech.informatik.uni-kl.de/homepage/de/teaching/SVHOL14/ Specification and Verification with Higher-Order Logic]. &lt;br /&gt;
# Jeremy G. Siek. [http://www.cs.colorado.edu/~siek/7000/spring07/ Practical Theorem Proving with Isabelle/Isar]. (Univ. de Colorado, 2007).&lt;br /&gt;
# Jeremy G. Siek. [http://ecee.colorado.edu/~siek/ecen5013/spring11/ Theorem proving in Isabelle]. (Univ. de Colorado, 2011).&lt;br /&gt;
# Jan-Georg Smaus. [http://www.informatik.uni-freiburg.de/~ki/teaching/ws0910/csmr/lecture.html Computer-supported modeling and reasoning]. (Univ. de Feiburgo, 2009).&lt;br /&gt;
# Christian Sternagel [http://cl-informatik.uibk.ac.at/teaching/ss11/eve/content.php Experiments in Verification – Introduction to Isabelle/HOL]. (Univ. de Innsbruck, 2011-12).&lt;br /&gt;
# Tjark Weber. [http://www.cl.cam.ac.uk/teaching/1011/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2010-11).&lt;br /&gt;
&lt;br /&gt;
=== Cursos con Coq ===&lt;br /&gt;
# Yves Bertot, Pierre Casteran, Benjamin Gregoire, Pierre Letouzey y Assia Mahboubi [http://www.di.ens.fr/~zappa/teaching/coq/ecole11 Modelling and verifying algorithms in Coq: an introduction]. (INRIA Paris-Rocquencourt, 14-18 noviembre 2011).&lt;br /&gt;
# Adam Chlipala [http://stellar.mit.edu/S/course/6/fa11/6.892/ Interactive computer theorem proving]. (MIT, 2012-13).&lt;br /&gt;
# Adam Chlipala y Armando Solar Lezama [https://stellar.mit.edu/S/course/6/fa13/6.820/index.html Foundations of program analysis]. (MIT, 2013-14).&lt;br /&gt;
# M. Greenberg [http://www.cs.pomona.edu/~michael/courses/csci054s18/ Discrete mathematics and functional programming]. &lt;br /&gt;
# Benjamin C. Pierce et als. [https://softwarefoundations.cis.upenn.edu/lf-current/index.html Software foundations (Vol. 1: Logical foundations)].&lt;br /&gt;
# Benjamin C. Pierce [https://www.seas.upenn.edu/~cis500/current/index.html Software foundations] (Univ. de Pensilvania, 2018).&lt;br /&gt;
# G. Smolka [https://courses.ps.uni-saarland.de/icl_18/2/Resources Introduction to computational logic] (Univ. de Sarre, 2018).&lt;br /&gt;
&lt;br /&gt;
=== Otros cursos ===&lt;br /&gt;
# José A. Alonso [http://www.cs.us.es/~jalonso/cursos/li/ Lógica informática] (Univ. de Sevilla, 2012-13).&lt;br /&gt;
# Thorsten Altenkirch y Peter Morris [http://www.cs.nott.ac.uk/~txa/g52ifr Introduction to formal reasoning] (Univ. de Nottingham, 2010-11).&lt;br /&gt;
# J. Blanchette y J. Höltz [https://lean-forward.github.io/logical-verification/2018 Logical verification]. (Vrije Universiteit Amsterdam, 2018-19). &lt;br /&gt;
# Pierre Castéran [http://www.labri.fr/perso/casteran/FM/Logique/index.html Logic (Master In Verification)] (Univ. de Burdeos, 2011-12).&lt;br /&gt;
# Robby Findler [http://www.eecs.northwestern.edu/~robby/courses/395-495-2013-fall Certified programming with dependent types]. (Northwestern, 2013-14).&lt;br /&gt;
# Carlos Luna y Gustavo Betarte. [https://eva.fing.edu.uy/course/view.php?id=363 Construcción formal de programas en teoría de tipos]. (Univ. de la República, Uruguay, 2013-14).&lt;br /&gt;
# Ian Hodkinson [http://www.doc.ic.ac.uk/~imh/teaching/140_logic/logic.html Logic] (Imperial College, Londres, 2010-11).&lt;br /&gt;
# Peter Lucas [http://www.cs.ru.nl/~peterl/teaching/KeR/ Knowledge Representation and Reasoning] (Radboud University # egen, 2011-12).&lt;br /&gt;
# Larry Paulson [http://www.cl.cam.ac.uk/Teaching/current/LogicProof/ Logic and Proof] (Univ. de Cambridge, 2011-12).&lt;br /&gt;
# David Pichardie [http://www.irisa.fr/celtique/pichardie/teaching/M2/MDV/ Méthode de vérification] (Universidad de Rennes, 2006-07).&lt;br /&gt;
&lt;br /&gt;
== Bibliotecas de ejemplos de verificación ==&lt;br /&gt;
# [http://afp.sourceforge.net Archive of Formal Proofs].&lt;br /&gt;
# [http://www.cs.ru.nl/~freek/100 Formalizing 100 Theorems].&lt;br /&gt;
# [http://toccata.lri.fr/gallery Gallery of verified programs].&lt;br /&gt;
# [http://automatedreasoning.net/ Larry Wos&amp;#039; Notebooks].&lt;br /&gt;
# [http://www.cs.miami.edu/~tptp/ The TPTP Problem Library for Automated Theorem Proving].&lt;br /&gt;
# [http://www.macs.hw.ac.uk/vstte10/Competition.html The 1st Verified Software Competition].&lt;br /&gt;
# [https://sites.google.com/site/vstte2012/compet The 2nd Verified Software Competition].&lt;br /&gt;
# [http://verifythis.cost-ic0701.org VerifyThis (A collection of verification benchmarks].&lt;br /&gt;
&lt;br /&gt;
== Artículos recientes ==&lt;br /&gt;
&lt;br /&gt;
Hay dos listas de artículos recientes:&lt;br /&gt;
&lt;br /&gt;
* en [https://twitter.com/search?f=tweets&amp;amp;q=%23ITP%20OR%20%23IsabelleHOL%20OR%20%23Coq%20OR%20%23Agda%20OR%20%23LeanProver%20OR%20%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd Twitter] que contiene enlaces a los artículos de razonamiento automático y demostración asistida por ordenador que se están publicando y&lt;br /&gt;
* en [https://www.glc.us.es/~jalonso/vestigium/category/resena/ Vestigium] que contiene una reseña de los más destacados.&lt;br /&gt;
&lt;br /&gt;
== Ofertas de trabajo ==&lt;br /&gt;
&lt;br /&gt;
En [https://github.com/jaalonso/Trabajos-MULCIA GitHub] se encuentra una recopilaciónn las ofertas de trabajo de interés para los estudiantes del Máster Universitario en Lógica, Computación e Inteligencia Artificial de la Universidad de Sevilla.&lt;br /&gt;
&lt;br /&gt;
Están en orden cronológico inverso por la fecha de su publicación en [https://twitter.com/search?l=&amp;amp;q=%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd&amp;amp;lang=es Twitter].&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1062</id>
		<title>Documentación</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1062"/>
		<updated>2022-02-08T13:24:05Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* Referencias sobre Isabelle/HOL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En esta página se recogen en enlaces que sirven de documentación al curso de &amp;quot;Razonamiento automático&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Vídeos ==&lt;br /&gt;
&lt;br /&gt;
* Vídeos de deducción natural con Pandora: [http://bit.ly/1tqZIOe ejemplo 1] y [http://bit.ly/1nWAVp4 ejemplo 2].&lt;br /&gt;
&lt;br /&gt;
== Visiones generales de la DAO ==&lt;br /&gt;
&lt;br /&gt;
# J.A. Alonso. [http://goo.gl/NWk7b Razonamiento formalizado: Del sueño a la realidad de las pruebas]. &lt;br /&gt;
# J.M. Aransay y C. Domínguez. [http://gaceta.rsme.es/abrir.php?id=1057 Demostración asistida por ordenador]. &lt;br /&gt;
# A. Asperti. [https://arxiv.org/abs/1701.03602 Automatic verification and interactive theorem proving]. &lt;br /&gt;
# A. Asperti. [http://www.cs.unibo.it/~asperti/SLIDES/itp.pdf A survey on interactive theorem proving]. &lt;br /&gt;
# J. Avigad. [http://bit.ly/1hsA8Ew Formal verification, interactive theorem proving, and automated reasoning].&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/icerm.pdf Interactive theorem proving, automated reasoning, and mathematical computation]. ICERM, 14 de diciembre de 2012.&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/london.pdf Automated reasoning for the working mathematician].&lt;br /&gt;
# J. Avigad, J. Harrison. [https://www.cl.cam.ac.uk/~jrh13/papers/cacm.pdf Formally verified Mathematics]. &lt;br /&gt;
# H. Barendregt y F. Wiedijk. [http://ftp.science.ru.nl/CSI/CompMath.Found/Barendregt-Wiedijk.pdf The challenge of computer mathematics].&lt;br /&gt;
# K. Buzzard. [http://wwwf.imperial.ac.uk/~buzzard/one_off_lectures/msr.pdf The future of mathematics?]&lt;br /&gt;
# C.S. Calude y C. Müller [https://www.cs.auckland.ac.nz/~cristian/crispapers/56250217.pdf Formal proof: reconciling correctness and understanding].&lt;br /&gt;
# R. David. [http://www.lama.univ-savoie.fr/~david/ftp/amphis.pdf Peut-on faire des Mathématiques avec un ordinateur?]&lt;br /&gt;
# R. David y C. Raffalli. [http://www.lama.univ-savoie.fr/~david/ftp/amphi07.pdf Peut-on avoir confiance en l’informatique?]&lt;br /&gt;
# M. Davis. [http://www.cs.nyu.edu/cs/faculty/davism/early.ps The early history of automated deduction].&lt;br /&gt;
# J.P. Delahaye [http://interstices.info/jcms/int_63417/du-reve-a-la-realite-des-preuves Du rêve à la réalité des preuves]. &amp;#039;&amp;#039;Interstices&amp;#039;&amp;#039;, 8 de julio de 2012.&lt;br /&gt;
# J. Germoni [http://images.math.cnrs.fr/Coq-et-caracteres.html Coq et caractères: Preuve formelle du théorème de Feit et Thompson]. &amp;#039;&amp;#039;Images des Mathématiques&amp;#039;&amp;#039;, CNRS, 23 de noviembre de 2012. &lt;br /&gt;
# H. Geuvers [http://www.ias.ac.in/article/fulltext/sadh/034/01/0003-0025 Proof assistants: History, ideas and future]. &amp;#039;&amp;#039;Sadhana&amp;#039;&amp;#039;, Vol. 34-1, pp. 3-25, février 2009.&lt;br /&gt;
# H. Geuvers. [http://www.cs.ru.nl/~herman/ictopen.pdf Can the computer really help us to prove theorems?]&lt;br /&gt;
# G. Gonthier [http://www.ams.org/notices/200811/tx081101382p.pdf The four-color theorem]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1382-1393, 2008.&lt;br /&gt;
# T. Hales. [http://www.ams.org/notices/200811/tx081101370p.pdf Formal proof]. &amp;#039;&amp;#039;Notices of AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) pp. 1370-1380.&lt;br /&gt;
# J. Harrison. [http://www.cl.cam.ac.uk/~jrh13/papers/ab.html A short survey of automated reasoning]. &amp;#039;&amp;#039;Lecture Notes in Computer Science&amp;#039;&amp;#039;, Vol. 4545, pp. 334-349, 2007.&lt;br /&gt;
# J. Harrison. [http://www.ams.org/notices/200811/tx081101395p.pdf Formal proof: Theory and practice]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) p.1395-1406. &lt;br /&gt;
# J. Harrison, J. Urban y F. Wiedijk [http://www.cl.cam.ac.uk/~jrh13/papers/joerg.pdf History of interactive theorem proving].&lt;br /&gt;
# A. Koutsoukou-Argyraki. [https://www.researchgate.net/profile/Angeliki_Koutsoukou-Argyraki/publication/334549483_FORMALISING_MATHEMATICS_-IN_PRAXIS_A_MATHEMATICIAN%27S_VERY_FIRST_EXPERIENCES_WITH_ISABELLEHOL/links/5d30f782299bf1547cc25f63/FORMALISING-MATHEMATICS-IN-PRAXIS-A-MATHEMATICIANS-VERY-FIRST-EXPERIENCES-WITH-ISABELLE-HOL.pdf Formalising Mathematics-in praxis; A mathematician&amp;#039;s very first experiences with Isabelle/HOL]]. &lt;br /&gt;
# G. Kolata. [http://www.nytimes.com/library/cyber/week/1210math.html Computer math proof shows reasoning power]. &amp;#039;&amp;#039;The New York Times&amp;#039;&amp;#039;, 10 de diciembre de 1996.&lt;br /&gt;
# A. Mahboubi [https://jncf2018.lip6.fr/files/lecture-notes/jncf2018-mahboubi.pdf Calcul formel et preuves formelles].&lt;br /&gt;
# A. Mahboubi. [http://bit.ly/2ch3xEa Machine-checked mathematics]. &lt;br /&gt;
# A. Mahboubi. [http://bit.ly/1qLTVBm Un ordinateur pour vérifier les preuves mathématiques]. &lt;br /&gt;
# D. MacKenzie [https://backspaces.net/temp/Spring2010Seminar/18%20unconventional%20essays%20on%20the%20nature%20of%20mathematics.pdf#page=147 Computers and the sociology of mathematical proof].&lt;br /&gt;
# C. Nalon. [https://www.mat.ufrn.br/cade-27/wp-content/uploads/2019/09/2019CN-CADE.pdf Machine-oriented reasoning].&lt;br /&gt;
# J. Narboux. [https://hal.inria.fr/hal-00809448/document Les assistants de preuve, ou comment avoir confiance en ses démonstrations].&lt;br /&gt;
# L.C. Paulson. [https://www.cl.cam.ac.uk/~lp15/papers/Formath/Sophia2017.pdf Proof assistants: from symbolic logic to real mathematics?] &lt;br /&gt;
# L.C. Paulson, T. Nipkow y M. Wenzel. [https://arxiv.org/abs/1907.02836 From LCF to Isabelle/HOL].&lt;br /&gt;
# T. Ringer et als. [https://arxiv.org/abs/2003.06458 QED at large: A survey of engineering of formally verified software].  &lt;br /&gt;
# P. Schnider. [http://bit.ly/1Gxxmx6 An introduction to proof assistants]. &lt;br /&gt;
# J. Schöpf y S. Widauer [http://cl-informatik.uibk.ac.at/teaching/ws17/vs/reports/SWreport.pdf History of interactive theorem proving].&lt;br /&gt;
# F.R. Villatoro. [http://francis.naukas.com/2017/07/29/la-demostracion-matematica-mas-larga La demostración matemática más larga]. &lt;br /&gt;
# F. Wiedijk [http://www.cs.ru.nl/~freek/100/ Formalizing the «top 100» of mathematical theorems].&lt;br /&gt;
# F. Wiedijk [http://www.ams.org/notices/200811/tx081101408p.pdf Formal proof - Getting started]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1408-1414, 2008.&lt;br /&gt;
# F. Wiedijk, [http://mizar.org/trybulec65/8.pdf The QED manifesto revisited]. &amp;#039;&amp;#039;Studies in Logic, Grammar and Rhetoric&amp;#039;&amp;#039;, Vol. 10(23), pp. 121-133, 2007.&lt;br /&gt;
&lt;br /&gt;
== Referencias sobre Isabelle/HOL ==&lt;br /&gt;
# B. Blumson [https://philpapers.org/go.pl?id=BLUIFP&amp;amp;u=https%3A%2F%2Fphilpapers.org%2Farchive%2FBLUIFP.pdf Isabelle for philosophers]. &lt;br /&gt;
# B. Grechuk [https://web.cs.wpi.edu/~dd/resources_isabelle/isabelle_primer_mathematicians.pdf Isabelle primer for mathematicians].&lt;br /&gt;
# T. Nipkow [https://isabelle.in.tum.de/doc/prog-prove.pdf Programming and proving in Isabelle/HOL]. &lt;br /&gt;
# T. Nipkow, M. Wenzel y L.C. Paulson [http://isabelle.in.tum.de/doc/tutorial.pdf A proof assistant for higher-order logic].&lt;br /&gt;
# A. Steen [https://git.imp.fu-berlin.de/leo-iii/compmeta_pub/raw/master/exercises/resources/Isabelle_ND_cheatsheet.pdf Mapping of ND proof templates to Isabelle formalization].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/dist/library/HOL/HOL/document.pdf Isabelle/HOL — Higher-Order Logic]. &lt;br /&gt;
# M. Wenzel [http://isabelle.in.tum.de/doc/isar-ref.pdf The Isabelle/Isar Reference Manual]. &lt;br /&gt;
# M. Wenzel [http://typessummerschool07.cs.unibo.it/courses/wenzel-isar-quickref.pdf The Isabelle/Isar quick reference].&lt;br /&gt;
# J. Siek [http://ecee.colorado.edu/~siek/ecen3703/spring10/quick-ref.pdf Quick Reference for Isabelle/Isar Propositional Logic].&lt;br /&gt;
# J. Siek [http://ecee.colorado.edu/~siek/ecen3703/spring10/quick-ref2.pdf Quick Reference for Isabelle/Isar More Proof Techniques].&lt;br /&gt;
# J. Siek [http://ecee.colorado.edu/~siek/ecen3703/spring10/quick-ref3.pdf Quick Reference for Isabelle/Isar First-Order Logic].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/documentation.html Tutorials and manuals for Isabelle].&lt;br /&gt;
&lt;br /&gt;
== Lecturas complementarias ==&lt;br /&gt;
=== Programación funcional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/i1m/temas/2019-20-I1M-temas-PF.pdf Temas de &amp;quot;Programación funcional&amp;quot;]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2019.&lt;br /&gt;
# J.A. Alonso y M.J. Hidalgo [http://www.cs.us.es/~jalonso/publicaciones/Piensa_en_Haskell.pdf Piensa en Haskell (Ejercicios de programación funcional con Haskell)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2012.&lt;br /&gt;
# G. Hutton [http://bit.ly/2pQofC2 Programming in Haskell]. Cambridge University Press, 2007. &lt;br /&gt;
# M. Lipovača [http://aprendehaskell.es ¡Aprende Haskell por el bien de todos!].&lt;br /&gt;
# M. Lipovaca y J. Brock [https://mybinder.org/v2/gh/jamesdbrock/learn-you-a-haskell-notebook/master?urlpath=lab/tree/learn_you_a_haskell/00-preface.ipynb Learn you a Haskell for great good!]&lt;br /&gt;
# T. Nipkow [https://www21.in.tum.de/teaching/fpv/WS1920/slides.pdf Functional programmingand verification]. TUM, 2019.&lt;br /&gt;
&lt;br /&gt;
=== Lógica computacional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/li-15/temas/temas-LI-2015-16.pdf Temas de &amp;quot;Lógica informática&amp;quot; (2015-16)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2015.&lt;br /&gt;
# K. Broda, S. Eisenbach, H. Khoshnevisan y S. Vickers [http://pubs.doc.ic.ac.uk/reasoned-programming/reasoned-programming.pdf Reasoned programming]. Imperial College, 1994.&lt;br /&gt;
# K. Doets y J. van Eijck [http://www.ldc.usb.ve/~astorga/Haskell.Road.pdf The Haskell Road to Logic, Maths and Programming].&lt;br /&gt;
# M. Huth y M. Ryan [http://bit.ly/2e8dFEm Logic in computer science: Modelling and reasoning about systems]. Cambridge University Press, 2004. (Incluye el [http://www.cs.bham.ac.uk/research/lics/tutor/index.html tutor en la Red]).&lt;br /&gt;
&lt;br /&gt;
== Cursos relacionados ==&lt;br /&gt;
=== Cursos con Isabelle/HOL ===&lt;br /&gt;
# Jeremy Avigad. [http://www.phil.cmu.edu/~avigad/formal/ Logic and Formal Verification]. (Carnegie Mellon, 2009).&lt;br /&gt;
# Clemens Ballarin. [http://cl-informatik.uibk.ac.at/teaching/ss08/atp/introduction.php Automatic Deduction]. (Univ de Innsbruck, 2008).&lt;br /&gt;
# Clemens Ballarin. [http://www4.in.tum.de/~ballarin/belgrade08-tut/ Introduction to the Isabelle Proof Assistant]. (Belgrado, 2008). &lt;br /&gt;
# Clemens Ballarin y Gerwin Klein [http://isabelle.in.tum.de/coursematerial/IJCAR04 Introduction to the Isabelle Proof Assistant]. (en el IJCAR-2004).&lt;br /&gt;
# Clemens Ballarin y Tjark Weber. [http://cl-informatik.uibk.ac.at/teaching/ws06/atp/introduction.php Automated Theorem Proving in Isabelle/HOL]. (Univ. de Innsbruck, 2006-07).&lt;br /&gt;
# Jasmin Blanchette, Mathias Fleury y Daniel Wand [http://people.mpi-inf.mpg.de/~jblanche/cswi/ss2015/ Concrete semantics with Isabelle/HOL]. (Univ. del Sarre, 2015-16).&lt;br /&gt;
# A.D. Brucker, D. Basin, J.G. Smaus y B. Wolff. [http://archiv.infsec.ethz.ch/education/permanent/csmr.html Computer-supported Modeling and Reasoning]. (ETH Zurich, 2011).&lt;br /&gt;
# Mads Dam. [http://www.csc.kth.se/utbildning/kth/kurser/DD2453/aform07/ Advanced formal methods]. (KTH Royal Institute of Technology, 2007).&lt;br /&gt;
# Jacques Fleuriot. [http://www.inf.ed.ac.uk/teaching/courses/ar Automated reasoning]. (Univ. de Edimburgo, 2016-17).&lt;br /&gt;
# Thomas Genet [http://www.irisa.fr/celtique/genet/ACF Software formal analysis and design]. (Univ. de Rennes)&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~kleing/teaching/thprv-04 Theorem Proving - Principles, Techniques, Applications]. (NICTA, 2004).&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~cs4161/index.html Advanced Topics in Software Verification]. (NICTA, 2012).&lt;br /&gt;
# Joao Marcos. [http://www.dimap.ufrn.br/~jmarcos/courses/LC/Ementa.htm Lógica computacional: Demonstração assistida e semi-automática de teoremas].(UFRN, 2000).&lt;br /&gt;
# Tobias Nipkow. [http://www21.in.tum.de/teaching/semantik/WS1617/ Semantics of programming languages]. (Univ. de Munich, 2012-13).&lt;br /&gt;
# Tobias Nipkow. [http://isabelle.in.tum.de/coursematerial/PSV2009-1 Theorem Proving with Isabelle/HOL An Intensive Course]. &lt;br /&gt;
# Larry Paulson. [http://www.cl.cam.ac.uk/teaching/0910/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2009-10).&lt;br /&gt;
# Arnd Poetzsch-Heffter. [https://softech.informatik.uni-kl.de/homepage/de/teaching/SVHOL14/ Specification and Verification with Higher-Order Logic]. &lt;br /&gt;
# Jeremy G. Siek. [http://www.cs.colorado.edu/~siek/7000/spring07/ Practical Theorem Proving with Isabelle/Isar]. (Univ. de Colorado, 2007).&lt;br /&gt;
# Jeremy G. Siek. [http://ecee.colorado.edu/~siek/ecen5013/spring11/ Theorem proving in Isabelle]. (Univ. de Colorado, 2011).&lt;br /&gt;
# Jan-Georg Smaus. [http://www.informatik.uni-freiburg.de/~ki/teaching/ws0910/csmr/lecture.html Computer-supported modeling and reasoning]. (Univ. de Feiburgo, 2009).&lt;br /&gt;
# Christian Sternagel [http://cl-informatik.uibk.ac.at/teaching/ss11/eve/content.php Experiments in Verification – Introduction to Isabelle/HOL]. (Univ. de Innsbruck, 2011-12).&lt;br /&gt;
# Tjark Weber. [http://www.cl.cam.ac.uk/teaching/1011/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2010-11).&lt;br /&gt;
&lt;br /&gt;
=== Cursos con Coq ===&lt;br /&gt;
# Yves Bertot, Pierre Casteran, Benjamin Gregoire, Pierre Letouzey y Assia Mahboubi [http://www.di.ens.fr/~zappa/teaching/coq/ecole11 Modelling and verifying algorithms in Coq: an introduction]. (INRIA Paris-Rocquencourt, 14-18 noviembre 2011).&lt;br /&gt;
# Adam Chlipala [http://stellar.mit.edu/S/course/6/fa11/6.892/ Interactive computer theorem proving]. (MIT, 2012-13).&lt;br /&gt;
# Adam Chlipala y Armando Solar Lezama [https://stellar.mit.edu/S/course/6/fa13/6.820/index.html Foundations of program analysis]. (MIT, 2013-14).&lt;br /&gt;
# M. Greenberg [http://www.cs.pomona.edu/~michael/courses/csci054s18/ Discrete mathematics and functional programming]. &lt;br /&gt;
# Benjamin C. Pierce et als. [https://softwarefoundations.cis.upenn.edu/lf-current/index.html Software foundations (Vol. 1: Logical foundations)].&lt;br /&gt;
# Benjamin C. Pierce [https://www.seas.upenn.edu/~cis500/current/index.html Software foundations] (Univ. de Pensilvania, 2018).&lt;br /&gt;
# G. Smolka [https://courses.ps.uni-saarland.de/icl_18/2/Resources Introduction to computational logic] (Univ. de Sarre, 2018).&lt;br /&gt;
&lt;br /&gt;
=== Otros cursos ===&lt;br /&gt;
# José A. Alonso [http://www.cs.us.es/~jalonso/cursos/li/ Lógica informática] (Univ. de Sevilla, 2012-13).&lt;br /&gt;
# Thorsten Altenkirch y Peter Morris [http://www.cs.nott.ac.uk/~txa/g52ifr Introduction to formal reasoning] (Univ. de Nottingham, 2010-11).&lt;br /&gt;
# J. Blanchette y J. Höltz [https://lean-forward.github.io/logical-verification/2018 Logical verification]. (Vrije Universiteit Amsterdam, 2018-19). &lt;br /&gt;
# Pierre Castéran [http://www.labri.fr/perso/casteran/FM/Logique/index.html Logic (Master In Verification)] (Univ. de Burdeos, 2011-12).&lt;br /&gt;
# Robby Findler [http://www.eecs.northwestern.edu/~robby/courses/395-495-2013-fall Certified programming with dependent types]. (Northwestern, 2013-14).&lt;br /&gt;
# Carlos Luna y Gustavo Betarte. [https://eva.fing.edu.uy/course/view.php?id=363 Construcción formal de programas en teoría de tipos]. (Univ. de la República, Uruguay, 2013-14).&lt;br /&gt;
# Ian Hodkinson [http://www.doc.ic.ac.uk/~imh/teaching/140_logic/logic.html Logic] (Imperial College, Londres, 2010-11).&lt;br /&gt;
# Peter Lucas [http://www.cs.ru.nl/~peterl/teaching/KeR/ Knowledge Representation and Reasoning] (Radboud University # egen, 2011-12).&lt;br /&gt;
# Larry Paulson [http://www.cl.cam.ac.uk/Teaching/current/LogicProof/ Logic and Proof] (Univ. de Cambridge, 2011-12).&lt;br /&gt;
# David Pichardie [http://www.irisa.fr/celtique/pichardie/teaching/M2/MDV/ Méthode de vérification] (Universidad de Rennes, 2006-07).&lt;br /&gt;
&lt;br /&gt;
== Bibliotecas de ejemplos de verificación ==&lt;br /&gt;
# [http://afp.sourceforge.net Archive of Formal Proofs].&lt;br /&gt;
# [http://www.cs.ru.nl/~freek/100 Formalizing 100 Theorems].&lt;br /&gt;
# [http://toccata.lri.fr/gallery Gallery of verified programs].&lt;br /&gt;
# [http://automatedreasoning.net/ Larry Wos&amp;#039; Notebooks].&lt;br /&gt;
# [http://www.cs.miami.edu/~tptp/ The TPTP Problem Library for Automated Theorem Proving].&lt;br /&gt;
# [http://www.macs.hw.ac.uk/vstte10/Competition.html The 1st Verified Software Competition].&lt;br /&gt;
# [https://sites.google.com/site/vstte2012/compet The 2nd Verified Software Competition].&lt;br /&gt;
# [http://verifythis.cost-ic0701.org VerifyThis (A collection of verification benchmarks].&lt;br /&gt;
&lt;br /&gt;
== Artículos recientes ==&lt;br /&gt;
&lt;br /&gt;
Hay dos listas de artículos recientes:&lt;br /&gt;
&lt;br /&gt;
* en [https://twitter.com/search?f=tweets&amp;amp;q=%23ITP%20OR%20%23IsabelleHOL%20OR%20%23Coq%20OR%20%23Agda%20OR%20%23LeanProver%20OR%20%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd Twitter] que contiene enlaces a los artículos de razonamiento automático y demostración asistida por ordenador que se están publicando y&lt;br /&gt;
* en [https://www.glc.us.es/~jalonso/vestigium/category/resena/ Vestigium] que contiene una reseña de los más destacados.&lt;br /&gt;
&lt;br /&gt;
== Ofertas de trabajo ==&lt;br /&gt;
&lt;br /&gt;
En [https://github.com/jaalonso/Trabajos-MULCIA GitHub] se encuentra una recopilaciónn las ofertas de trabajo de interés para los estudiantes del Máster Universitario en Lógica, Computación e Inteligencia Artificial de la Universidad de Sevilla.&lt;br /&gt;
&lt;br /&gt;
Están en orden cronológico inverso por la fecha de su publicación en [https://twitter.com/search?l=&amp;amp;q=%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd&amp;amp;lang=es Twitter].&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1061</id>
		<title>Documentación</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1061"/>
		<updated>2022-02-08T13:21:43Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* Visiones generales de la DAO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En esta página se recogen en enlaces que sirven de documentación al curso de &amp;quot;Razonamiento automático&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Vídeos ==&lt;br /&gt;
&lt;br /&gt;
* Vídeos de deducción natural con Pandora: [http://bit.ly/1tqZIOe ejemplo 1] y [http://bit.ly/1nWAVp4 ejemplo 2].&lt;br /&gt;
&lt;br /&gt;
== Visiones generales de la DAO ==&lt;br /&gt;
&lt;br /&gt;
# J.A. Alonso. [http://goo.gl/NWk7b Razonamiento formalizado: Del sueño a la realidad de las pruebas]. &lt;br /&gt;
# J.M. Aransay y C. Domínguez. [http://gaceta.rsme.es/abrir.php?id=1057 Demostración asistida por ordenador]. &lt;br /&gt;
# A. Asperti. [https://arxiv.org/abs/1701.03602 Automatic verification and interactive theorem proving]. &lt;br /&gt;
# A. Asperti. [http://www.cs.unibo.it/~asperti/SLIDES/itp.pdf A survey on interactive theorem proving]. &lt;br /&gt;
# J. Avigad. [http://bit.ly/1hsA8Ew Formal verification, interactive theorem proving, and automated reasoning].&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/icerm.pdf Interactive theorem proving, automated reasoning, and mathematical computation]. ICERM, 14 de diciembre de 2012.&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/london.pdf Automated reasoning for the working mathematician].&lt;br /&gt;
# J. Avigad, J. Harrison. [https://www.cl.cam.ac.uk/~jrh13/papers/cacm.pdf Formally verified Mathematics]. &lt;br /&gt;
# H. Barendregt y F. Wiedijk. [http://ftp.science.ru.nl/CSI/CompMath.Found/Barendregt-Wiedijk.pdf The challenge of computer mathematics].&lt;br /&gt;
# K. Buzzard. [http://wwwf.imperial.ac.uk/~buzzard/one_off_lectures/msr.pdf The future of mathematics?]&lt;br /&gt;
# C.S. Calude y C. Müller [https://www.cs.auckland.ac.nz/~cristian/crispapers/56250217.pdf Formal proof: reconciling correctness and understanding].&lt;br /&gt;
# R. David. [http://www.lama.univ-savoie.fr/~david/ftp/amphis.pdf Peut-on faire des Mathématiques avec un ordinateur?]&lt;br /&gt;
# R. David y C. Raffalli. [http://www.lama.univ-savoie.fr/~david/ftp/amphi07.pdf Peut-on avoir confiance en l’informatique?]&lt;br /&gt;
# M. Davis. [http://www.cs.nyu.edu/cs/faculty/davism/early.ps The early history of automated deduction].&lt;br /&gt;
# J.P. Delahaye [http://interstices.info/jcms/int_63417/du-reve-a-la-realite-des-preuves Du rêve à la réalité des preuves]. &amp;#039;&amp;#039;Interstices&amp;#039;&amp;#039;, 8 de julio de 2012.&lt;br /&gt;
# J. Germoni [http://images.math.cnrs.fr/Coq-et-caracteres.html Coq et caractères: Preuve formelle du théorème de Feit et Thompson]. &amp;#039;&amp;#039;Images des Mathématiques&amp;#039;&amp;#039;, CNRS, 23 de noviembre de 2012. &lt;br /&gt;
# H. Geuvers [http://www.ias.ac.in/article/fulltext/sadh/034/01/0003-0025 Proof assistants: History, ideas and future]. &amp;#039;&amp;#039;Sadhana&amp;#039;&amp;#039;, Vol. 34-1, pp. 3-25, février 2009.&lt;br /&gt;
# H. Geuvers. [http://www.cs.ru.nl/~herman/ictopen.pdf Can the computer really help us to prove theorems?]&lt;br /&gt;
# G. Gonthier [http://www.ams.org/notices/200811/tx081101382p.pdf The four-color theorem]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1382-1393, 2008.&lt;br /&gt;
# T. Hales. [http://www.ams.org/notices/200811/tx081101370p.pdf Formal proof]. &amp;#039;&amp;#039;Notices of AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) pp. 1370-1380.&lt;br /&gt;
# J. Harrison. [http://www.cl.cam.ac.uk/~jrh13/papers/ab.html A short survey of automated reasoning]. &amp;#039;&amp;#039;Lecture Notes in Computer Science&amp;#039;&amp;#039;, Vol. 4545, pp. 334-349, 2007.&lt;br /&gt;
# J. Harrison. [http://www.ams.org/notices/200811/tx081101395p.pdf Formal proof: Theory and practice]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) p.1395-1406. &lt;br /&gt;
# J. Harrison, J. Urban y F. Wiedijk [http://www.cl.cam.ac.uk/~jrh13/papers/joerg.pdf History of interactive theorem proving].&lt;br /&gt;
# A. Koutsoukou-Argyraki. [https://www.researchgate.net/profile/Angeliki_Koutsoukou-Argyraki/publication/334549483_FORMALISING_MATHEMATICS_-IN_PRAXIS_A_MATHEMATICIAN%27S_VERY_FIRST_EXPERIENCES_WITH_ISABELLEHOL/links/5d30f782299bf1547cc25f63/FORMALISING-MATHEMATICS-IN-PRAXIS-A-MATHEMATICIANS-VERY-FIRST-EXPERIENCES-WITH-ISABELLE-HOL.pdf Formalising Mathematics-in praxis; A mathematician&amp;#039;s very first experiences with Isabelle/HOL]]. &lt;br /&gt;
# G. Kolata. [http://www.nytimes.com/library/cyber/week/1210math.html Computer math proof shows reasoning power]. &amp;#039;&amp;#039;The New York Times&amp;#039;&amp;#039;, 10 de diciembre de 1996.&lt;br /&gt;
# A. Mahboubi [https://jncf2018.lip6.fr/files/lecture-notes/jncf2018-mahboubi.pdf Calcul formel et preuves formelles].&lt;br /&gt;
# A. Mahboubi. [http://bit.ly/2ch3xEa Machine-checked mathematics]. &lt;br /&gt;
# A. Mahboubi. [http://bit.ly/1qLTVBm Un ordinateur pour vérifier les preuves mathématiques]. &lt;br /&gt;
# D. MacKenzie [https://backspaces.net/temp/Spring2010Seminar/18%20unconventional%20essays%20on%20the%20nature%20of%20mathematics.pdf#page=147 Computers and the sociology of mathematical proof].&lt;br /&gt;
# C. Nalon. [https://www.mat.ufrn.br/cade-27/wp-content/uploads/2019/09/2019CN-CADE.pdf Machine-oriented reasoning].&lt;br /&gt;
# J. Narboux. [https://hal.inria.fr/hal-00809448/document Les assistants de preuve, ou comment avoir confiance en ses démonstrations].&lt;br /&gt;
# L.C. Paulson. [https://www.cl.cam.ac.uk/~lp15/papers/Formath/Sophia2017.pdf Proof assistants: from symbolic logic to real mathematics?] &lt;br /&gt;
# L.C. Paulson, T. Nipkow y M. Wenzel. [https://arxiv.org/abs/1907.02836 From LCF to Isabelle/HOL].&lt;br /&gt;
# T. Ringer et als. [https://arxiv.org/abs/2003.06458 QED at large: A survey of engineering of formally verified software].  &lt;br /&gt;
# P. Schnider. [http://bit.ly/1Gxxmx6 An introduction to proof assistants]. &lt;br /&gt;
# J. Schöpf y S. Widauer [http://cl-informatik.uibk.ac.at/teaching/ws17/vs/reports/SWreport.pdf History of interactive theorem proving].&lt;br /&gt;
# F.R. Villatoro. [http://francis.naukas.com/2017/07/29/la-demostracion-matematica-mas-larga La demostración matemática más larga]. &lt;br /&gt;
# F. Wiedijk [http://www.cs.ru.nl/~freek/100/ Formalizing the «top 100» of mathematical theorems].&lt;br /&gt;
# F. Wiedijk [http://www.ams.org/notices/200811/tx081101408p.pdf Formal proof - Getting started]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1408-1414, 2008.&lt;br /&gt;
# F. Wiedijk, [http://mizar.org/trybulec65/8.pdf The QED manifesto revisited]. &amp;#039;&amp;#039;Studies in Logic, Grammar and Rhetoric&amp;#039;&amp;#039;, Vol. 10(23), pp. 121-133, 2007.&lt;br /&gt;
&lt;br /&gt;
== Referencias sobre Isabelle/HOL ==&lt;br /&gt;
# B. Blumson [https://philpapers.org/go.pl?id=BLUIFP&amp;amp;u=https%3A%2F%2Fphilpapers.org%2Farchive%2FBLUIFP.pdf Isabelle for philosophers]. &lt;br /&gt;
# B. Grechuk [http://dream.inf.ed.ac.uk/projects/isabelle/Isabelle_Primer.pdf Isabelle primer for mathematicians].&lt;br /&gt;
# T. Nipkow [https://isabelle.in.tum.de/doc/prog-prove.pdf Programming and proving in Isabelle/HOL]. &lt;br /&gt;
# T. Nipkow, M. Wenzel y L.C. Paulson [http://isabelle.in.tum.de/doc/tutorial.pdf A proof assistant for higher-order logic].&lt;br /&gt;
# A. Steen [https://git.imp.fu-berlin.de/leo-iii/compmeta_pub/raw/master/exercises/resources/Isabelle_ND_cheatsheet.pdf Mapping of ND proof templates to Isabelle formalization].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/dist/library/HOL/HOL/document.pdf Isabelle/HOL — Higher-Order Logic]. &lt;br /&gt;
# M. Wenzel [http://isabelle.in.tum.de/doc/isar-ref.pdf The Isabelle/Isar Reference Manual]. &lt;br /&gt;
# M. Wenzel [http://typessummerschool07.cs.unibo.it/courses/wenzel-isar-quickref.pdf The Isabelle/Isar quick reference].&lt;br /&gt;
# J. Siek [http://ecee.colorado.edu/~siek/ecen3703/spring10/quick-ref.pdf Quick Reference for Isabelle/Isar Propositional Logic].&lt;br /&gt;
# J. Siek [http://ecee.colorado.edu/~siek/ecen3703/spring10/quick-ref2.pdf Quick Reference for Isabelle/Isar More Proof Techniques].&lt;br /&gt;
# J. Siek [http://ecee.colorado.edu/~siek/ecen3703/spring10/quick-ref3.pdf Quick Reference for Isabelle/Isar First-Order Logic].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/documentation.html Tutorials and manuals for Isabelle].&lt;br /&gt;
&lt;br /&gt;
== Lecturas complementarias ==&lt;br /&gt;
=== Programación funcional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/i1m/temas/2019-20-I1M-temas-PF.pdf Temas de &amp;quot;Programación funcional&amp;quot;]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2019.&lt;br /&gt;
# J.A. Alonso y M.J. Hidalgo [http://www.cs.us.es/~jalonso/publicaciones/Piensa_en_Haskell.pdf Piensa en Haskell (Ejercicios de programación funcional con Haskell)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2012.&lt;br /&gt;
# G. Hutton [http://bit.ly/2pQofC2 Programming in Haskell]. Cambridge University Press, 2007. &lt;br /&gt;
# M. Lipovača [http://aprendehaskell.es ¡Aprende Haskell por el bien de todos!].&lt;br /&gt;
# M. Lipovaca y J. Brock [https://mybinder.org/v2/gh/jamesdbrock/learn-you-a-haskell-notebook/master?urlpath=lab/tree/learn_you_a_haskell/00-preface.ipynb Learn you a Haskell for great good!]&lt;br /&gt;
# T. Nipkow [https://www21.in.tum.de/teaching/fpv/WS1920/slides.pdf Functional programmingand verification]. TUM, 2019.&lt;br /&gt;
&lt;br /&gt;
=== Lógica computacional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/li-15/temas/temas-LI-2015-16.pdf Temas de &amp;quot;Lógica informática&amp;quot; (2015-16)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2015.&lt;br /&gt;
# K. Broda, S. Eisenbach, H. Khoshnevisan y S. Vickers [http://pubs.doc.ic.ac.uk/reasoned-programming/reasoned-programming.pdf Reasoned programming]. Imperial College, 1994.&lt;br /&gt;
# K. Doets y J. van Eijck [http://www.ldc.usb.ve/~astorga/Haskell.Road.pdf The Haskell Road to Logic, Maths and Programming].&lt;br /&gt;
# M. Huth y M. Ryan [http://bit.ly/2e8dFEm Logic in computer science: Modelling and reasoning about systems]. Cambridge University Press, 2004. (Incluye el [http://www.cs.bham.ac.uk/research/lics/tutor/index.html tutor en la Red]).&lt;br /&gt;
&lt;br /&gt;
== Cursos relacionados ==&lt;br /&gt;
=== Cursos con Isabelle/HOL ===&lt;br /&gt;
# Jeremy Avigad. [http://www.phil.cmu.edu/~avigad/formal/ Logic and Formal Verification]. (Carnegie Mellon, 2009).&lt;br /&gt;
# Clemens Ballarin. [http://cl-informatik.uibk.ac.at/teaching/ss08/atp/introduction.php Automatic Deduction]. (Univ de Innsbruck, 2008).&lt;br /&gt;
# Clemens Ballarin. [http://www4.in.tum.de/~ballarin/belgrade08-tut/ Introduction to the Isabelle Proof Assistant]. (Belgrado, 2008). &lt;br /&gt;
# Clemens Ballarin y Gerwin Klein [http://isabelle.in.tum.de/coursematerial/IJCAR04 Introduction to the Isabelle Proof Assistant]. (en el IJCAR-2004).&lt;br /&gt;
# Clemens Ballarin y Tjark Weber. [http://cl-informatik.uibk.ac.at/teaching/ws06/atp/introduction.php Automated Theorem Proving in Isabelle/HOL]. (Univ. de Innsbruck, 2006-07).&lt;br /&gt;
# Jasmin Blanchette, Mathias Fleury y Daniel Wand [http://people.mpi-inf.mpg.de/~jblanche/cswi/ss2015/ Concrete semantics with Isabelle/HOL]. (Univ. del Sarre, 2015-16).&lt;br /&gt;
# A.D. Brucker, D. Basin, J.G. Smaus y B. Wolff. [http://archiv.infsec.ethz.ch/education/permanent/csmr.html Computer-supported Modeling and Reasoning]. (ETH Zurich, 2011).&lt;br /&gt;
# Mads Dam. [http://www.csc.kth.se/utbildning/kth/kurser/DD2453/aform07/ Advanced formal methods]. (KTH Royal Institute of Technology, 2007).&lt;br /&gt;
# Jacques Fleuriot. [http://www.inf.ed.ac.uk/teaching/courses/ar Automated reasoning]. (Univ. de Edimburgo, 2016-17).&lt;br /&gt;
# Thomas Genet [http://www.irisa.fr/celtique/genet/ACF Software formal analysis and design]. (Univ. de Rennes)&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~kleing/teaching/thprv-04 Theorem Proving - Principles, Techniques, Applications]. (NICTA, 2004).&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~cs4161/index.html Advanced Topics in Software Verification]. (NICTA, 2012).&lt;br /&gt;
# Joao Marcos. [http://www.dimap.ufrn.br/~jmarcos/courses/LC/Ementa.htm Lógica computacional: Demonstração assistida e semi-automática de teoremas].(UFRN, 2000).&lt;br /&gt;
# Tobias Nipkow. [http://www21.in.tum.de/teaching/semantik/WS1617/ Semantics of programming languages]. (Univ. de Munich, 2012-13).&lt;br /&gt;
# Tobias Nipkow. [http://isabelle.in.tum.de/coursematerial/PSV2009-1 Theorem Proving with Isabelle/HOL An Intensive Course]. &lt;br /&gt;
# Larry Paulson. [http://www.cl.cam.ac.uk/teaching/0910/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2009-10).&lt;br /&gt;
# Arnd Poetzsch-Heffter. [https://softech.informatik.uni-kl.de/homepage/de/teaching/SVHOL14/ Specification and Verification with Higher-Order Logic]. &lt;br /&gt;
# Jeremy G. Siek. [http://www.cs.colorado.edu/~siek/7000/spring07/ Practical Theorem Proving with Isabelle/Isar]. (Univ. de Colorado, 2007).&lt;br /&gt;
# Jeremy G. Siek. [http://ecee.colorado.edu/~siek/ecen5013/spring11/ Theorem proving in Isabelle]. (Univ. de Colorado, 2011).&lt;br /&gt;
# Jan-Georg Smaus. [http://www.informatik.uni-freiburg.de/~ki/teaching/ws0910/csmr/lecture.html Computer-supported modeling and reasoning]. (Univ. de Feiburgo, 2009).&lt;br /&gt;
# Christian Sternagel [http://cl-informatik.uibk.ac.at/teaching/ss11/eve/content.php Experiments in Verification – Introduction to Isabelle/HOL]. (Univ. de Innsbruck, 2011-12).&lt;br /&gt;
# Tjark Weber. [http://www.cl.cam.ac.uk/teaching/1011/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2010-11).&lt;br /&gt;
&lt;br /&gt;
=== Cursos con Coq ===&lt;br /&gt;
# Yves Bertot, Pierre Casteran, Benjamin Gregoire, Pierre Letouzey y Assia Mahboubi [http://www.di.ens.fr/~zappa/teaching/coq/ecole11 Modelling and verifying algorithms in Coq: an introduction]. (INRIA Paris-Rocquencourt, 14-18 noviembre 2011).&lt;br /&gt;
# Adam Chlipala [http://stellar.mit.edu/S/course/6/fa11/6.892/ Interactive computer theorem proving]. (MIT, 2012-13).&lt;br /&gt;
# Adam Chlipala y Armando Solar Lezama [https://stellar.mit.edu/S/course/6/fa13/6.820/index.html Foundations of program analysis]. (MIT, 2013-14).&lt;br /&gt;
# M. Greenberg [http://www.cs.pomona.edu/~michael/courses/csci054s18/ Discrete mathematics and functional programming]. &lt;br /&gt;
# Benjamin C. Pierce et als. [https://softwarefoundations.cis.upenn.edu/lf-current/index.html Software foundations (Vol. 1: Logical foundations)].&lt;br /&gt;
# Benjamin C. Pierce [https://www.seas.upenn.edu/~cis500/current/index.html Software foundations] (Univ. de Pensilvania, 2018).&lt;br /&gt;
# G. Smolka [https://courses.ps.uni-saarland.de/icl_18/2/Resources Introduction to computational logic] (Univ. de Sarre, 2018).&lt;br /&gt;
&lt;br /&gt;
=== Otros cursos ===&lt;br /&gt;
# José A. Alonso [http://www.cs.us.es/~jalonso/cursos/li/ Lógica informática] (Univ. de Sevilla, 2012-13).&lt;br /&gt;
# Thorsten Altenkirch y Peter Morris [http://www.cs.nott.ac.uk/~txa/g52ifr Introduction to formal reasoning] (Univ. de Nottingham, 2010-11).&lt;br /&gt;
# J. Blanchette y J. Höltz [https://lean-forward.github.io/logical-verification/2018 Logical verification]. (Vrije Universiteit Amsterdam, 2018-19). &lt;br /&gt;
# Pierre Castéran [http://www.labri.fr/perso/casteran/FM/Logique/index.html Logic (Master In Verification)] (Univ. de Burdeos, 2011-12).&lt;br /&gt;
# Robby Findler [http://www.eecs.northwestern.edu/~robby/courses/395-495-2013-fall Certified programming with dependent types]. (Northwestern, 2013-14).&lt;br /&gt;
# Carlos Luna y Gustavo Betarte. [https://eva.fing.edu.uy/course/view.php?id=363 Construcción formal de programas en teoría de tipos]. (Univ. de la República, Uruguay, 2013-14).&lt;br /&gt;
# Ian Hodkinson [http://www.doc.ic.ac.uk/~imh/teaching/140_logic/logic.html Logic] (Imperial College, Londres, 2010-11).&lt;br /&gt;
# Peter Lucas [http://www.cs.ru.nl/~peterl/teaching/KeR/ Knowledge Representation and Reasoning] (Radboud University # egen, 2011-12).&lt;br /&gt;
# Larry Paulson [http://www.cl.cam.ac.uk/Teaching/current/LogicProof/ Logic and Proof] (Univ. de Cambridge, 2011-12).&lt;br /&gt;
# David Pichardie [http://www.irisa.fr/celtique/pichardie/teaching/M2/MDV/ Méthode de vérification] (Universidad de Rennes, 2006-07).&lt;br /&gt;
&lt;br /&gt;
== Bibliotecas de ejemplos de verificación ==&lt;br /&gt;
# [http://afp.sourceforge.net Archive of Formal Proofs].&lt;br /&gt;
# [http://www.cs.ru.nl/~freek/100 Formalizing 100 Theorems].&lt;br /&gt;
# [http://toccata.lri.fr/gallery Gallery of verified programs].&lt;br /&gt;
# [http://automatedreasoning.net/ Larry Wos&amp;#039; Notebooks].&lt;br /&gt;
# [http://www.cs.miami.edu/~tptp/ The TPTP Problem Library for Automated Theorem Proving].&lt;br /&gt;
# [http://www.macs.hw.ac.uk/vstte10/Competition.html The 1st Verified Software Competition].&lt;br /&gt;
# [https://sites.google.com/site/vstte2012/compet The 2nd Verified Software Competition].&lt;br /&gt;
# [http://verifythis.cost-ic0701.org VerifyThis (A collection of verification benchmarks].&lt;br /&gt;
&lt;br /&gt;
== Artículos recientes ==&lt;br /&gt;
&lt;br /&gt;
Hay dos listas de artículos recientes:&lt;br /&gt;
&lt;br /&gt;
* en [https://twitter.com/search?f=tweets&amp;amp;q=%23ITP%20OR%20%23IsabelleHOL%20OR%20%23Coq%20OR%20%23Agda%20OR%20%23LeanProver%20OR%20%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd Twitter] que contiene enlaces a los artículos de razonamiento automático y demostración asistida por ordenador que se están publicando y&lt;br /&gt;
* en [https://www.glc.us.es/~jalonso/vestigium/category/resena/ Vestigium] que contiene una reseña de los más destacados.&lt;br /&gt;
&lt;br /&gt;
== Ofertas de trabajo ==&lt;br /&gt;
&lt;br /&gt;
En [https://github.com/jaalonso/Trabajos-MULCIA GitHub] se encuentra una recopilaciónn las ofertas de trabajo de interés para los estudiantes del Máster Universitario en Lógica, Computación e Inteligencia Artificial de la Universidad de Sevilla.&lt;br /&gt;
&lt;br /&gt;
Están en orden cronológico inverso por la fecha de su publicación en [https://twitter.com/search?l=&amp;amp;q=%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd&amp;amp;lang=es Twitter].&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1060</id>
		<title>Documentación</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1060"/>
		<updated>2022-02-08T13:17:04Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* Visiones generales de la DAO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En esta página se recogen en enlaces que sirven de documentación al curso de &amp;quot;Razonamiento automático&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Vídeos ==&lt;br /&gt;
&lt;br /&gt;
* Vídeos de deducción natural con Pandora: [http://bit.ly/1tqZIOe ejemplo 1] y [http://bit.ly/1nWAVp4 ejemplo 2].&lt;br /&gt;
&lt;br /&gt;
== Visiones generales de la DAO ==&lt;br /&gt;
&lt;br /&gt;
# J.A. Alonso. [http://goo.gl/NWk7b Razonamiento formalizado: Del sueño a la realidad de las pruebas]. &lt;br /&gt;
# J.M. Aransay y C. Domínguez. [http://gaceta.rsme.es/abrir.php?id=1057 Demostración asistida por ordenador]. &lt;br /&gt;
# A. Asperti. [https://arxiv.org/abs/1701.03602 Automatic verification and interactive theorem proving]. &lt;br /&gt;
# A. Asperti. [http://www.cs.unibo.it/~asperti/SLIDES/itp.pdf A survey on interactive theorem proving]. &lt;br /&gt;
# J. Avigad. [http://bit.ly/1hsA8Ew Formal verification, interactive theorem proving, and automated reasoning].&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/icerm.pdf Interactive theorem proving, automated reasoning, and mathematical computation]. ICERM, 14 de diciembre de 2012.&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/london.pdf Automated reasoning for the working mathematician].&lt;br /&gt;
# J. Avigad, J. Harrison. [https://www.cl.cam.ac.uk/~jrh13/papers/cacm.pdf Formally verified Mathematics]. &lt;br /&gt;
# H. Barendregt y F. Wiedijk. [http://ftp.science.ru.nl/CSI/CompMath.Found/Barendregt-Wiedijk.pdf The challenge of computer mathematics].&lt;br /&gt;
# K. Buzzard. [http://wwwf.imperial.ac.uk/~buzzard/one_off_lectures/msr.pdf The future of mathematics?]&lt;br /&gt;
# C.S. Calude y C. Müller [https://www.cs.auckland.ac.nz/~cristian/crispapers/56250217.pdf Formal proof: reconciling correctness and understanding].&lt;br /&gt;
# R. David. [http://www.lama.univ-savoie.fr/~david/ftp/amphis.pdf Peut-on faire des Mathématiques avec un ordinateur?]&lt;br /&gt;
# R. David y C. Raffalli. [http://www.lama.univ-savoie.fr/~david/ftp/amphi07.pdf Peut-on avoir confiance en l’informatique?]&lt;br /&gt;
# M. Davis. [http://www.cs.nyu.edu/cs/faculty/davism/early.ps The early history of automated deduction].&lt;br /&gt;
# J.P. Delahaye [http://interstices.info/jcms/int_63417/du-reve-a-la-realite-des-preuves Du rêve à la réalité des preuves]. &amp;#039;&amp;#039;Interstices&amp;#039;&amp;#039;, 8 de julio de 2012.&lt;br /&gt;
# J. Germoni [http://images.math.cnrs.fr/Coq-et-caracteres.html Coq et caractères: Preuve formelle du théorème de Feit et Thompson]. &amp;#039;&amp;#039;Images des Mathématiques&amp;#039;&amp;#039;, CNRS, 23 de noviembre de 2012. &lt;br /&gt;
# H. Geuvers [http://www.ias.ac.in/article/fulltext/sadh/034/01/0003-0025 Proof assistants: History, ideas and future]. &amp;#039;&amp;#039;Sadhana&amp;#039;&amp;#039;, Vol. 34-1, pp. 3-25, février 2009.&lt;br /&gt;
# H. Geuvers. [http://www.cs.ru.nl/~herman/ictopen.pdf Can the computer really help us to prove theorems?]&lt;br /&gt;
# G. Gonthier [http://www.ams.org/notices/200811/tx081101382p.pdf The four-color theorem]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1382-1393, 2008.&lt;br /&gt;
# T. Hales. [http://www.ams.org/notices/200811/tx081101370p.pdf Formal proof]. &amp;#039;&amp;#039;Notices of AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) pp. 1370-1380.&lt;br /&gt;
# J. Harrison. [http://www.cl.cam.ac.uk/~jrh13/papers/ab.html A short survey of automated reasoning]. &amp;#039;&amp;#039;Lecture Notes in Computer Science&amp;#039;&amp;#039;, Vol. 4545, pp. 334-349, 2007.&lt;br /&gt;
# J. Harrison. [http://www.ams.org/notices/200811/tx081101395p.pdf Formal proof: Theory and practice]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) p.1395-1406. &lt;br /&gt;
# J. Harrison, J. Urban y F. Wiedijk [http://www.cl.cam.ac.uk/~jrh13/papers/joerg.pdf History of interactive theorem proving].&lt;br /&gt;
# A. Koutsoukou-Argyraki. [https://www.researchgate.net/profile/Angeliki_Koutsoukou-Argyraki/publication/334549483_FORMALISING_MATHEMATICS_-IN_PRAXIS_A_MATHEMATICIAN%27S_VERY_FIRST_EXPERIENCES_WITH_ISABELLEHOL/links/5d30f782299bf1547cc25f63/FORMALISING-MATHEMATICS-IN-PRAXIS-A-MATHEMATICIANS-VERY-FIRST-EXPERIENCES-WITH-ISABELLE-HOL.pdf Formalising Mathematics-in praxis; A mathematician&amp;#039;s very first experiences with Isabelle/HOL]]. &lt;br /&gt;
# G. Kolata. [http://www.nytimes.com/library/cyber/week/1210math.html Computer math proof shows reasoning power]. &amp;#039;&amp;#039;The New York Times&amp;#039;&amp;#039;, 10 de diciembre de 1996.&lt;br /&gt;
# A. Mahboubi [https://jncf2018.lip6.fr/files/lecture-notes/jncf2018-mahboubi.pdf Calcul formel et preuves formelles].&lt;br /&gt;
# A. Mahboubi. [http://bit.ly/2ch3xEa Machine-checked mathematics]. &lt;br /&gt;
# A. Mahboubi. [http://bit.ly/1qLTVBm Un ordinateur pour vérifier les preuves mathématiques]. &lt;br /&gt;
# D. MacKenzie [https://backspaces.net/temp/Spring2010Seminar/18%20unconventional%20essays%20on%20the%20nature%20of%20mathematics.pdf#page=147 Computers and the sociology of mathematical proof].&lt;br /&gt;
# C. Nalon. [https://www.mat.ufrn.br/cade-27/wp-content/uploads/2019/09/2019CN-CADE.pdf Machine-oriented reasoning].&lt;br /&gt;
# J. Narboux. [https://hal.inria.fr/hal-00809448/document Les assistants de preuve, ou comment avoir confiance en ses démonstrations].&lt;br /&gt;
# L.C. Paulson. [https://www.cl.cam.ac.uk/~lp15/papers/Formath/Sophia2017.pdf Proof assistants: from symbolic logic to real mathematics?] &lt;br /&gt;
# L.C. Paulson, T. Nipkow y M. Wenzel. [https://arxiv.org/abs/1907.02836 From LCF to Isabelle/HOL].&lt;br /&gt;
# T. Ringer et als. [https://www.nowpublishers.com/article/Details/PGL-045 QED at large: A survey of engineering of formally verified software].  &lt;br /&gt;
# P. Schnider. [http://bit.ly/1Gxxmx6 An introduction to proof assistants]. &lt;br /&gt;
# J. Schöpf y S. Widauer [http://cl-informatik.uibk.ac.at/teaching/ws17/vs/reports/SWreport.pdf History of interactive theorem proving].&lt;br /&gt;
# F.R. Villatoro. [http://francis.naukas.com/2017/07/29/la-demostracion-matematica-mas-larga La demostración matemática más larga]. &lt;br /&gt;
# F. Wiedijk [http://www.cs.ru.nl/~freek/100/ Formalizing the «top 100» of mathematical theorems].&lt;br /&gt;
# F. Wiedijk [http://www.ams.org/notices/200811/tx081101408p.pdf Formal proof - Getting started]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1408-1414, 2008.&lt;br /&gt;
# F. Wiedijk, [http://mizar.org/trybulec65/8.pdf The QED manifesto revisited]. &amp;#039;&amp;#039;Studies in Logic, Grammar and Rhetoric&amp;#039;&amp;#039;, Vol. 10(23), pp. 121-133, 2007.&lt;br /&gt;
&lt;br /&gt;
== Referencias sobre Isabelle/HOL ==&lt;br /&gt;
# B. Blumson [https://philpapers.org/go.pl?id=BLUIFP&amp;amp;u=https%3A%2F%2Fphilpapers.org%2Farchive%2FBLUIFP.pdf Isabelle for philosophers]. &lt;br /&gt;
# B. Grechuk [http://dream.inf.ed.ac.uk/projects/isabelle/Isabelle_Primer.pdf Isabelle primer for mathematicians].&lt;br /&gt;
# T. Nipkow [https://isabelle.in.tum.de/doc/prog-prove.pdf Programming and proving in Isabelle/HOL]. &lt;br /&gt;
# T. Nipkow, M. Wenzel y L.C. Paulson [http://isabelle.in.tum.de/doc/tutorial.pdf A proof assistant for higher-order logic].&lt;br /&gt;
# A. Steen [https://git.imp.fu-berlin.de/leo-iii/compmeta_pub/raw/master/exercises/resources/Isabelle_ND_cheatsheet.pdf Mapping of ND proof templates to Isabelle formalization].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/dist/library/HOL/HOL/document.pdf Isabelle/HOL — Higher-Order Logic]. &lt;br /&gt;
# M. Wenzel [http://isabelle.in.tum.de/doc/isar-ref.pdf The Isabelle/Isar Reference Manual]. &lt;br /&gt;
# M. Wenzel [http://typessummerschool07.cs.unibo.it/courses/wenzel-isar-quickref.pdf The Isabelle/Isar quick reference].&lt;br /&gt;
# J. Siek [http://ecee.colorado.edu/~siek/ecen3703/spring10/quick-ref.pdf Quick Reference for Isabelle/Isar Propositional Logic].&lt;br /&gt;
# J. Siek [http://ecee.colorado.edu/~siek/ecen3703/spring10/quick-ref2.pdf Quick Reference for Isabelle/Isar More Proof Techniques].&lt;br /&gt;
# J. Siek [http://ecee.colorado.edu/~siek/ecen3703/spring10/quick-ref3.pdf Quick Reference for Isabelle/Isar First-Order Logic].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/documentation.html Tutorials and manuals for Isabelle].&lt;br /&gt;
&lt;br /&gt;
== Lecturas complementarias ==&lt;br /&gt;
=== Programación funcional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/i1m/temas/2019-20-I1M-temas-PF.pdf Temas de &amp;quot;Programación funcional&amp;quot;]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2019.&lt;br /&gt;
# J.A. Alonso y M.J. Hidalgo [http://www.cs.us.es/~jalonso/publicaciones/Piensa_en_Haskell.pdf Piensa en Haskell (Ejercicios de programación funcional con Haskell)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2012.&lt;br /&gt;
# G. Hutton [http://bit.ly/2pQofC2 Programming in Haskell]. Cambridge University Press, 2007. &lt;br /&gt;
# M. Lipovača [http://aprendehaskell.es ¡Aprende Haskell por el bien de todos!].&lt;br /&gt;
# M. Lipovaca y J. Brock [https://mybinder.org/v2/gh/jamesdbrock/learn-you-a-haskell-notebook/master?urlpath=lab/tree/learn_you_a_haskell/00-preface.ipynb Learn you a Haskell for great good!]&lt;br /&gt;
# T. Nipkow [https://www21.in.tum.de/teaching/fpv/WS1920/slides.pdf Functional programmingand verification]. TUM, 2019.&lt;br /&gt;
&lt;br /&gt;
=== Lógica computacional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/li-15/temas/temas-LI-2015-16.pdf Temas de &amp;quot;Lógica informática&amp;quot; (2015-16)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2015.&lt;br /&gt;
# K. Broda, S. Eisenbach, H. Khoshnevisan y S. Vickers [http://pubs.doc.ic.ac.uk/reasoned-programming/reasoned-programming.pdf Reasoned programming]. Imperial College, 1994.&lt;br /&gt;
# K. Doets y J. van Eijck [http://www.ldc.usb.ve/~astorga/Haskell.Road.pdf The Haskell Road to Logic, Maths and Programming].&lt;br /&gt;
# M. Huth y M. Ryan [http://bit.ly/2e8dFEm Logic in computer science: Modelling and reasoning about systems]. Cambridge University Press, 2004. (Incluye el [http://www.cs.bham.ac.uk/research/lics/tutor/index.html tutor en la Red]).&lt;br /&gt;
&lt;br /&gt;
== Cursos relacionados ==&lt;br /&gt;
=== Cursos con Isabelle/HOL ===&lt;br /&gt;
# Jeremy Avigad. [http://www.phil.cmu.edu/~avigad/formal/ Logic and Formal Verification]. (Carnegie Mellon, 2009).&lt;br /&gt;
# Clemens Ballarin. [http://cl-informatik.uibk.ac.at/teaching/ss08/atp/introduction.php Automatic Deduction]. (Univ de Innsbruck, 2008).&lt;br /&gt;
# Clemens Ballarin. [http://www4.in.tum.de/~ballarin/belgrade08-tut/ Introduction to the Isabelle Proof Assistant]. (Belgrado, 2008). &lt;br /&gt;
# Clemens Ballarin y Gerwin Klein [http://isabelle.in.tum.de/coursematerial/IJCAR04 Introduction to the Isabelle Proof Assistant]. (en el IJCAR-2004).&lt;br /&gt;
# Clemens Ballarin y Tjark Weber. [http://cl-informatik.uibk.ac.at/teaching/ws06/atp/introduction.php Automated Theorem Proving in Isabelle/HOL]. (Univ. de Innsbruck, 2006-07).&lt;br /&gt;
# Jasmin Blanchette, Mathias Fleury y Daniel Wand [http://people.mpi-inf.mpg.de/~jblanche/cswi/ss2015/ Concrete semantics with Isabelle/HOL]. (Univ. del Sarre, 2015-16).&lt;br /&gt;
# A.D. Brucker, D. Basin, J.G. Smaus y B. Wolff. [http://archiv.infsec.ethz.ch/education/permanent/csmr.html Computer-supported Modeling and Reasoning]. (ETH Zurich, 2011).&lt;br /&gt;
# Mads Dam. [http://www.csc.kth.se/utbildning/kth/kurser/DD2453/aform07/ Advanced formal methods]. (KTH Royal Institute of Technology, 2007).&lt;br /&gt;
# Jacques Fleuriot. [http://www.inf.ed.ac.uk/teaching/courses/ar Automated reasoning]. (Univ. de Edimburgo, 2016-17).&lt;br /&gt;
# Thomas Genet [http://www.irisa.fr/celtique/genet/ACF Software formal analysis and design]. (Univ. de Rennes)&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~kleing/teaching/thprv-04 Theorem Proving - Principles, Techniques, Applications]. (NICTA, 2004).&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~cs4161/index.html Advanced Topics in Software Verification]. (NICTA, 2012).&lt;br /&gt;
# Joao Marcos. [http://www.dimap.ufrn.br/~jmarcos/courses/LC/Ementa.htm Lógica computacional: Demonstração assistida e semi-automática de teoremas].(UFRN, 2000).&lt;br /&gt;
# Tobias Nipkow. [http://www21.in.tum.de/teaching/semantik/WS1617/ Semantics of programming languages]. (Univ. de Munich, 2012-13).&lt;br /&gt;
# Tobias Nipkow. [http://isabelle.in.tum.de/coursematerial/PSV2009-1 Theorem Proving with Isabelle/HOL An Intensive Course]. &lt;br /&gt;
# Larry Paulson. [http://www.cl.cam.ac.uk/teaching/0910/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2009-10).&lt;br /&gt;
# Arnd Poetzsch-Heffter. [https://softech.informatik.uni-kl.de/homepage/de/teaching/SVHOL14/ Specification and Verification with Higher-Order Logic]. &lt;br /&gt;
# Jeremy G. Siek. [http://www.cs.colorado.edu/~siek/7000/spring07/ Practical Theorem Proving with Isabelle/Isar]. (Univ. de Colorado, 2007).&lt;br /&gt;
# Jeremy G. Siek. [http://ecee.colorado.edu/~siek/ecen5013/spring11/ Theorem proving in Isabelle]. (Univ. de Colorado, 2011).&lt;br /&gt;
# Jan-Georg Smaus. [http://www.informatik.uni-freiburg.de/~ki/teaching/ws0910/csmr/lecture.html Computer-supported modeling and reasoning]. (Univ. de Feiburgo, 2009).&lt;br /&gt;
# Christian Sternagel [http://cl-informatik.uibk.ac.at/teaching/ss11/eve/content.php Experiments in Verification – Introduction to Isabelle/HOL]. (Univ. de Innsbruck, 2011-12).&lt;br /&gt;
# Tjark Weber. [http://www.cl.cam.ac.uk/teaching/1011/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2010-11).&lt;br /&gt;
&lt;br /&gt;
=== Cursos con Coq ===&lt;br /&gt;
# Yves Bertot, Pierre Casteran, Benjamin Gregoire, Pierre Letouzey y Assia Mahboubi [http://www.di.ens.fr/~zappa/teaching/coq/ecole11 Modelling and verifying algorithms in Coq: an introduction]. (INRIA Paris-Rocquencourt, 14-18 noviembre 2011).&lt;br /&gt;
# Adam Chlipala [http://stellar.mit.edu/S/course/6/fa11/6.892/ Interactive computer theorem proving]. (MIT, 2012-13).&lt;br /&gt;
# Adam Chlipala y Armando Solar Lezama [https://stellar.mit.edu/S/course/6/fa13/6.820/index.html Foundations of program analysis]. (MIT, 2013-14).&lt;br /&gt;
# M. Greenberg [http://www.cs.pomona.edu/~michael/courses/csci054s18/ Discrete mathematics and functional programming]. &lt;br /&gt;
# Benjamin C. Pierce et als. [https://softwarefoundations.cis.upenn.edu/lf-current/index.html Software foundations (Vol. 1: Logical foundations)].&lt;br /&gt;
# Benjamin C. Pierce [https://www.seas.upenn.edu/~cis500/current/index.html Software foundations] (Univ. de Pensilvania, 2018).&lt;br /&gt;
# G. Smolka [https://courses.ps.uni-saarland.de/icl_18/2/Resources Introduction to computational logic] (Univ. de Sarre, 2018).&lt;br /&gt;
&lt;br /&gt;
=== Otros cursos ===&lt;br /&gt;
# José A. Alonso [http://www.cs.us.es/~jalonso/cursos/li/ Lógica informática] (Univ. de Sevilla, 2012-13).&lt;br /&gt;
# Thorsten Altenkirch y Peter Morris [http://www.cs.nott.ac.uk/~txa/g52ifr Introduction to formal reasoning] (Univ. de Nottingham, 2010-11).&lt;br /&gt;
# J. Blanchette y J. Höltz [https://lean-forward.github.io/logical-verification/2018 Logical verification]. (Vrije Universiteit Amsterdam, 2018-19). &lt;br /&gt;
# Pierre Castéran [http://www.labri.fr/perso/casteran/FM/Logique/index.html Logic (Master In Verification)] (Univ. de Burdeos, 2011-12).&lt;br /&gt;
# Robby Findler [http://www.eecs.northwestern.edu/~robby/courses/395-495-2013-fall Certified programming with dependent types]. (Northwestern, 2013-14).&lt;br /&gt;
# Carlos Luna y Gustavo Betarte. [https://eva.fing.edu.uy/course/view.php?id=363 Construcción formal de programas en teoría de tipos]. (Univ. de la República, Uruguay, 2013-14).&lt;br /&gt;
# Ian Hodkinson [http://www.doc.ic.ac.uk/~imh/teaching/140_logic/logic.html Logic] (Imperial College, Londres, 2010-11).&lt;br /&gt;
# Peter Lucas [http://www.cs.ru.nl/~peterl/teaching/KeR/ Knowledge Representation and Reasoning] (Radboud University # egen, 2011-12).&lt;br /&gt;
# Larry Paulson [http://www.cl.cam.ac.uk/Teaching/current/LogicProof/ Logic and Proof] (Univ. de Cambridge, 2011-12).&lt;br /&gt;
# David Pichardie [http://www.irisa.fr/celtique/pichardie/teaching/M2/MDV/ Méthode de vérification] (Universidad de Rennes, 2006-07).&lt;br /&gt;
&lt;br /&gt;
== Bibliotecas de ejemplos de verificación ==&lt;br /&gt;
# [http://afp.sourceforge.net Archive of Formal Proofs].&lt;br /&gt;
# [http://www.cs.ru.nl/~freek/100 Formalizing 100 Theorems].&lt;br /&gt;
# [http://toccata.lri.fr/gallery Gallery of verified programs].&lt;br /&gt;
# [http://automatedreasoning.net/ Larry Wos&amp;#039; Notebooks].&lt;br /&gt;
# [http://www.cs.miami.edu/~tptp/ The TPTP Problem Library for Automated Theorem Proving].&lt;br /&gt;
# [http://www.macs.hw.ac.uk/vstte10/Competition.html The 1st Verified Software Competition].&lt;br /&gt;
# [https://sites.google.com/site/vstte2012/compet The 2nd Verified Software Competition].&lt;br /&gt;
# [http://verifythis.cost-ic0701.org VerifyThis (A collection of verification benchmarks].&lt;br /&gt;
&lt;br /&gt;
== Artículos recientes ==&lt;br /&gt;
&lt;br /&gt;
Hay dos listas de artículos recientes:&lt;br /&gt;
&lt;br /&gt;
* en [https://twitter.com/search?f=tweets&amp;amp;q=%23ITP%20OR%20%23IsabelleHOL%20OR%20%23Coq%20OR%20%23Agda%20OR%20%23LeanProver%20OR%20%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd Twitter] que contiene enlaces a los artículos de razonamiento automático y demostración asistida por ordenador que se están publicando y&lt;br /&gt;
* en [https://www.glc.us.es/~jalonso/vestigium/category/resena/ Vestigium] que contiene una reseña de los más destacados.&lt;br /&gt;
&lt;br /&gt;
== Ofertas de trabajo ==&lt;br /&gt;
&lt;br /&gt;
En [https://github.com/jaalonso/Trabajos-MULCIA GitHub] se encuentra una recopilaciónn las ofertas de trabajo de interés para los estudiantes del Máster Universitario en Lógica, Computación e Inteligencia Artificial de la Universidad de Sevilla.&lt;br /&gt;
&lt;br /&gt;
Están en orden cronológico inverso por la fecha de su publicación en [https://twitter.com/search?l=&amp;amp;q=%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd&amp;amp;lang=es Twitter].&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1059</id>
		<title>Documentación</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1059"/>
		<updated>2022-02-08T13:15:03Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* Visiones generales de la DAO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En esta página se recogen en enlaces que sirven de documentación al curso de &amp;quot;Razonamiento automático&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Vídeos ==&lt;br /&gt;
&lt;br /&gt;
* Vídeos de deducción natural con Pandora: [http://bit.ly/1tqZIOe ejemplo 1] y [http://bit.ly/1nWAVp4 ejemplo 2].&lt;br /&gt;
&lt;br /&gt;
== Visiones generales de la DAO ==&lt;br /&gt;
&lt;br /&gt;
# J.A. Alonso. [http://goo.gl/NWk7b Razonamiento formalizado: Del sueño a la realidad de las pruebas]. &lt;br /&gt;
# J.M. Aransay y C. Domínguez. [http://gaceta.rsme.es/abrir.php?id=1057 Demostración asistida por ordenador]. &lt;br /&gt;
# A. Asperti. [https://arxiv.org/abs/1701.03602 Automatic verification and interactive theorem proving]. &lt;br /&gt;
# A. Asperti. [http://www.cs.unibo.it/~asperti/SLIDES/itp.pdf A survey on interactive theorem proving]. &lt;br /&gt;
# J. Avigad. [http://bit.ly/1hsA8Ew Formal verification, interactive theorem proving, and automated reasoning].&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/icerm.pdf Interactive theorem proving, automated reasoning, and mathematical computation]. ICERM, 14 de diciembre de 2012.&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/london.pdf Automated reasoning for the working mathematician].&lt;br /&gt;
# J. Avigad, J. Harrison. [https://www.cl.cam.ac.uk/~jrh13/papers/cacm.pdf Formally verified Mathematics]. &lt;br /&gt;
# H. Barendregt y F. Wiedijk. [http://ftp.science.ru.nl/CSI/CompMath.Found/Barendregt-Wiedijk.pdf The challenge of computer mathematics].&lt;br /&gt;
# K. Buzzard. [http://wwwf.imperial.ac.uk/~buzzard/one_off_lectures/msr.pdf The future of mathematics?]&lt;br /&gt;
# C.S. Calude y C. Müller [https://www.cs.auckland.ac.nz/~cristian/crispapers/56250217.pdf Formal proof: reconciling correctness and understanding].&lt;br /&gt;
# R. David. [http://www.lama.univ-savoie.fr/~david/ftp/amphis.pdf Peut-on faire des Mathématiques avec un ordinateur?]&lt;br /&gt;
# R. David y C. Raffalli. [http://www.lama.univ-savoie.fr/~david/ftp/amphi07.pdf Peut-on avoir confiance en l’informatique?]&lt;br /&gt;
# M. Davis. [http://www.cs.nyu.edu/cs/faculty/davism/early.ps The early history of automated deduction].&lt;br /&gt;
# J.P. Delahaye [http://interstices.info/jcms/int_63417/du-reve-a-la-realite-des-preuves Du rêve à la réalité des preuves]. &amp;#039;&amp;#039;Interstices&amp;#039;&amp;#039;, 8 de julio de 2012.&lt;br /&gt;
# J. Germoni [http://images.math.cnrs.fr/Coq-et-caracteres.html Coq et caractères: Preuve formelle du théorème de Feit et Thompson]. &amp;#039;&amp;#039;Images des Mathématiques&amp;#039;&amp;#039;, CNRS, 23 de noviembre de 2012. &lt;br /&gt;
# H. Geuvers [http://www.ias.ac.in/article/fulltext/sadh/034/01/0003-0025 Proof assistants: History, ideas and future]. &amp;#039;&amp;#039;Sadhana&amp;#039;&amp;#039;, Vol. 34-1, pp. 3-25, février 2009.&lt;br /&gt;
# H. Geuvers. [http://www.cs.ru.nl/~herman/ictopen.pdf Can the computer really help us to prove theorems?]&lt;br /&gt;
# G. Gonthier [http://www.ams.org/notices/200811/tx081101382p.pdf The four-color theorem]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1382-1393, 2008.&lt;br /&gt;
# T. Hales. [http://www.ams.org/notices/200811/tx081101370p.pdf Formal proof]. &amp;#039;&amp;#039;Notices of AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) pp. 1370-1380.&lt;br /&gt;
# J. Harrison. [http://www.cl.cam.ac.uk/~jrh13/papers/ab.html A short survey of automated reasoning]. &amp;#039;&amp;#039;Lecture Notes in Computer Science&amp;#039;&amp;#039;, Vol. 4545, pp. 334-349, 2007.&lt;br /&gt;
# J. Harrison. [http://www.ams.org/notices/200811/tx081101395p.pdf Formal proof: Theory and practice]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) p.1395-1406. &lt;br /&gt;
# J. Harrison, J. Urban y F. Wiedijk [http://www.cl.cam.ac.uk/~jrh13/papers/joerg.pdf History of interactive theorem proving].&lt;br /&gt;
# A. Koutsoukou-Argyraki. [https://www.researchgate.net/profile/Angeliki_Koutsoukou-Argyraki/publication/334549483_FORMALISING_MATHEMATICS_-IN_PRAXIS_A_MATHEMATICIAN%27S_VERY_FIRST_EXPERIENCES_WITH_ISABELLEHOL/links/5d30f782299bf1547cc25f63/FORMALISING-MATHEMATICS-IN-PRAXIS-A-MATHEMATICIANS-VERY-FIRST-EXPERIENCES-WITH-ISABELLE-HOL.pdf Formalising Mathematics-in praxis; A mathematician&amp;#039;s very first experiences with Isabelle/HOL]]. &lt;br /&gt;
# G. Kolata. [http://www.nytimes.com/library/cyber/week/1210math.html Computer math proof shows reasoning power]. &amp;#039;&amp;#039;The New York Times&amp;#039;&amp;#039;, 10 de diciembre de 1996.&lt;br /&gt;
# A. Mahboubi [https://jncf2018.lip6.fr/files/lecture-notes/jncf2018-mahboubi.pdf Calcul formel et preuves formelles].&lt;br /&gt;
# A. Mahboubi. [http://bit.ly/2ch3xEa Machine-checked mathematics]. &lt;br /&gt;
# A. Mahboubi. [http://bit.ly/1qLTVBm Un ordinateur pour vérifier les preuves mathématiques]. &lt;br /&gt;
# D. MacKenzie [https://backspaces.net/temp/Spring2010Seminar/18%20unconventional%20essays%20on%20the%20nature%20of%20mathematics.pdf#page=147 Computers and the sociology of mathematical proof].&lt;br /&gt;
# C. Nalon. [https://www.mat.ufrn.br/cade-27/wp-content/uploads/2019/09/2019CN-CADE.pdf Machine-oriented reasoning].&lt;br /&gt;
# J. Narboux. [https://hal.inria.fr/hal-00809448/document Les assistants de preuve, ou comment avoir confiance en ses démonstrations].&lt;br /&gt;
# L.C. Paulson. [https://www.newton.ac.uk/seminar/20170710143015301 Proof assistants: from symbolic logic to real mathematics?] &lt;br /&gt;
# L.C. Paulson, T. Nipkow y M. Wenzel. [https://arxiv.org/abs/1907.02836 From LCF to Isabelle/HOL].&lt;br /&gt;
# T. Ringer et als. [https://www.nowpublishers.com/article/Details/PGL-045 QED at large: A survey of engineering of formally verified software].  &lt;br /&gt;
# P. Schnider. [http://bit.ly/1Gxxmx6 An introduction to proof assistants]. &lt;br /&gt;
# J. Schöpf y S. Widauer [http://cl-informatik.uibk.ac.at/teaching/ws17/vs/reports/SWreport.pdf History of interactive theorem proving].&lt;br /&gt;
# F.R. Villatoro. [http://francis.naukas.com/2017/07/29/la-demostracion-matematica-mas-larga La demostración matemática más larga]. &lt;br /&gt;
# F. Wiedijk [http://www.cs.ru.nl/~freek/100/ Formalizing the «top 100» of mathematical theorems].&lt;br /&gt;
# F. Wiedijk [http://www.ams.org/notices/200811/tx081101408p.pdf Formal proof - Getting started]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1408-1414, 2008.&lt;br /&gt;
# F. Wiedijk, [http://mizar.org/trybulec65/8.pdf The QED manifesto revisited]. &amp;#039;&amp;#039;Studies in Logic, Grammar and Rhetoric&amp;#039;&amp;#039;, Vol. 10(23), pp. 121-133, 2007.&lt;br /&gt;
&lt;br /&gt;
== Referencias sobre Isabelle/HOL ==&lt;br /&gt;
# B. Blumson [https://philpapers.org/go.pl?id=BLUIFP&amp;amp;u=https%3A%2F%2Fphilpapers.org%2Farchive%2FBLUIFP.pdf Isabelle for philosophers]. &lt;br /&gt;
# B. Grechuk [http://dream.inf.ed.ac.uk/projects/isabelle/Isabelle_Primer.pdf Isabelle primer for mathematicians].&lt;br /&gt;
# T. Nipkow [https://isabelle.in.tum.de/doc/prog-prove.pdf Programming and proving in Isabelle/HOL]. &lt;br /&gt;
# T. Nipkow, M. Wenzel y L.C. Paulson [http://isabelle.in.tum.de/doc/tutorial.pdf A proof assistant for higher-order logic].&lt;br /&gt;
# A. Steen [https://git.imp.fu-berlin.de/leo-iii/compmeta_pub/raw/master/exercises/resources/Isabelle_ND_cheatsheet.pdf Mapping of ND proof templates to Isabelle formalization].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/dist/library/HOL/HOL/document.pdf Isabelle/HOL — Higher-Order Logic]. &lt;br /&gt;
# M. Wenzel [http://isabelle.in.tum.de/doc/isar-ref.pdf The Isabelle/Isar Reference Manual]. &lt;br /&gt;
# M. Wenzel [http://typessummerschool07.cs.unibo.it/courses/wenzel-isar-quickref.pdf The Isabelle/Isar quick reference].&lt;br /&gt;
# J. Siek [http://ecee.colorado.edu/~siek/ecen3703/spring10/quick-ref.pdf Quick Reference for Isabelle/Isar Propositional Logic].&lt;br /&gt;
# J. Siek [http://ecee.colorado.edu/~siek/ecen3703/spring10/quick-ref2.pdf Quick Reference for Isabelle/Isar More Proof Techniques].&lt;br /&gt;
# J. Siek [http://ecee.colorado.edu/~siek/ecen3703/spring10/quick-ref3.pdf Quick Reference for Isabelle/Isar First-Order Logic].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/documentation.html Tutorials and manuals for Isabelle].&lt;br /&gt;
&lt;br /&gt;
== Lecturas complementarias ==&lt;br /&gt;
=== Programación funcional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/i1m/temas/2019-20-I1M-temas-PF.pdf Temas de &amp;quot;Programación funcional&amp;quot;]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2019.&lt;br /&gt;
# J.A. Alonso y M.J. Hidalgo [http://www.cs.us.es/~jalonso/publicaciones/Piensa_en_Haskell.pdf Piensa en Haskell (Ejercicios de programación funcional con Haskell)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2012.&lt;br /&gt;
# G. Hutton [http://bit.ly/2pQofC2 Programming in Haskell]. Cambridge University Press, 2007. &lt;br /&gt;
# M. Lipovača [http://aprendehaskell.es ¡Aprende Haskell por el bien de todos!].&lt;br /&gt;
# M. Lipovaca y J. Brock [https://mybinder.org/v2/gh/jamesdbrock/learn-you-a-haskell-notebook/master?urlpath=lab/tree/learn_you_a_haskell/00-preface.ipynb Learn you a Haskell for great good!]&lt;br /&gt;
# T. Nipkow [https://www21.in.tum.de/teaching/fpv/WS1920/slides.pdf Functional programmingand verification]. TUM, 2019.&lt;br /&gt;
&lt;br /&gt;
=== Lógica computacional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/li-15/temas/temas-LI-2015-16.pdf Temas de &amp;quot;Lógica informática&amp;quot; (2015-16)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2015.&lt;br /&gt;
# K. Broda, S. Eisenbach, H. Khoshnevisan y S. Vickers [http://pubs.doc.ic.ac.uk/reasoned-programming/reasoned-programming.pdf Reasoned programming]. Imperial College, 1994.&lt;br /&gt;
# K. Doets y J. van Eijck [http://www.ldc.usb.ve/~astorga/Haskell.Road.pdf The Haskell Road to Logic, Maths and Programming].&lt;br /&gt;
# M. Huth y M. Ryan [http://bit.ly/2e8dFEm Logic in computer science: Modelling and reasoning about systems]. Cambridge University Press, 2004. (Incluye el [http://www.cs.bham.ac.uk/research/lics/tutor/index.html tutor en la Red]).&lt;br /&gt;
&lt;br /&gt;
== Cursos relacionados ==&lt;br /&gt;
=== Cursos con Isabelle/HOL ===&lt;br /&gt;
# Jeremy Avigad. [http://www.phil.cmu.edu/~avigad/formal/ Logic and Formal Verification]. (Carnegie Mellon, 2009).&lt;br /&gt;
# Clemens Ballarin. [http://cl-informatik.uibk.ac.at/teaching/ss08/atp/introduction.php Automatic Deduction]. (Univ de Innsbruck, 2008).&lt;br /&gt;
# Clemens Ballarin. [http://www4.in.tum.de/~ballarin/belgrade08-tut/ Introduction to the Isabelle Proof Assistant]. (Belgrado, 2008). &lt;br /&gt;
# Clemens Ballarin y Gerwin Klein [http://isabelle.in.tum.de/coursematerial/IJCAR04 Introduction to the Isabelle Proof Assistant]. (en el IJCAR-2004).&lt;br /&gt;
# Clemens Ballarin y Tjark Weber. [http://cl-informatik.uibk.ac.at/teaching/ws06/atp/introduction.php Automated Theorem Proving in Isabelle/HOL]. (Univ. de Innsbruck, 2006-07).&lt;br /&gt;
# Jasmin Blanchette, Mathias Fleury y Daniel Wand [http://people.mpi-inf.mpg.de/~jblanche/cswi/ss2015/ Concrete semantics with Isabelle/HOL]. (Univ. del Sarre, 2015-16).&lt;br /&gt;
# A.D. Brucker, D. Basin, J.G. Smaus y B. Wolff. [http://archiv.infsec.ethz.ch/education/permanent/csmr.html Computer-supported Modeling and Reasoning]. (ETH Zurich, 2011).&lt;br /&gt;
# Mads Dam. [http://www.csc.kth.se/utbildning/kth/kurser/DD2453/aform07/ Advanced formal methods]. (KTH Royal Institute of Technology, 2007).&lt;br /&gt;
# Jacques Fleuriot. [http://www.inf.ed.ac.uk/teaching/courses/ar Automated reasoning]. (Univ. de Edimburgo, 2016-17).&lt;br /&gt;
# Thomas Genet [http://www.irisa.fr/celtique/genet/ACF Software formal analysis and design]. (Univ. de Rennes)&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~kleing/teaching/thprv-04 Theorem Proving - Principles, Techniques, Applications]. (NICTA, 2004).&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~cs4161/index.html Advanced Topics in Software Verification]. (NICTA, 2012).&lt;br /&gt;
# Joao Marcos. [http://www.dimap.ufrn.br/~jmarcos/courses/LC/Ementa.htm Lógica computacional: Demonstração assistida e semi-automática de teoremas].(UFRN, 2000).&lt;br /&gt;
# Tobias Nipkow. [http://www21.in.tum.de/teaching/semantik/WS1617/ Semantics of programming languages]. (Univ. de Munich, 2012-13).&lt;br /&gt;
# Tobias Nipkow. [http://isabelle.in.tum.de/coursematerial/PSV2009-1 Theorem Proving with Isabelle/HOL An Intensive Course]. &lt;br /&gt;
# Larry Paulson. [http://www.cl.cam.ac.uk/teaching/0910/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2009-10).&lt;br /&gt;
# Arnd Poetzsch-Heffter. [https://softech.informatik.uni-kl.de/homepage/de/teaching/SVHOL14/ Specification and Verification with Higher-Order Logic]. &lt;br /&gt;
# Jeremy G. Siek. [http://www.cs.colorado.edu/~siek/7000/spring07/ Practical Theorem Proving with Isabelle/Isar]. (Univ. de Colorado, 2007).&lt;br /&gt;
# Jeremy G. Siek. [http://ecee.colorado.edu/~siek/ecen5013/spring11/ Theorem proving in Isabelle]. (Univ. de Colorado, 2011).&lt;br /&gt;
# Jan-Georg Smaus. [http://www.informatik.uni-freiburg.de/~ki/teaching/ws0910/csmr/lecture.html Computer-supported modeling and reasoning]. (Univ. de Feiburgo, 2009).&lt;br /&gt;
# Christian Sternagel [http://cl-informatik.uibk.ac.at/teaching/ss11/eve/content.php Experiments in Verification – Introduction to Isabelle/HOL]. (Univ. de Innsbruck, 2011-12).&lt;br /&gt;
# Tjark Weber. [http://www.cl.cam.ac.uk/teaching/1011/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2010-11).&lt;br /&gt;
&lt;br /&gt;
=== Cursos con Coq ===&lt;br /&gt;
# Yves Bertot, Pierre Casteran, Benjamin Gregoire, Pierre Letouzey y Assia Mahboubi [http://www.di.ens.fr/~zappa/teaching/coq/ecole11 Modelling and verifying algorithms in Coq: an introduction]. (INRIA Paris-Rocquencourt, 14-18 noviembre 2011).&lt;br /&gt;
# Adam Chlipala [http://stellar.mit.edu/S/course/6/fa11/6.892/ Interactive computer theorem proving]. (MIT, 2012-13).&lt;br /&gt;
# Adam Chlipala y Armando Solar Lezama [https://stellar.mit.edu/S/course/6/fa13/6.820/index.html Foundations of program analysis]. (MIT, 2013-14).&lt;br /&gt;
# M. Greenberg [http://www.cs.pomona.edu/~michael/courses/csci054s18/ Discrete mathematics and functional programming]. &lt;br /&gt;
# Benjamin C. Pierce et als. [https://softwarefoundations.cis.upenn.edu/lf-current/index.html Software foundations (Vol. 1: Logical foundations)].&lt;br /&gt;
# Benjamin C. Pierce [https://www.seas.upenn.edu/~cis500/current/index.html Software foundations] (Univ. de Pensilvania, 2018).&lt;br /&gt;
# G. Smolka [https://courses.ps.uni-saarland.de/icl_18/2/Resources Introduction to computational logic] (Univ. de Sarre, 2018).&lt;br /&gt;
&lt;br /&gt;
=== Otros cursos ===&lt;br /&gt;
# José A. Alonso [http://www.cs.us.es/~jalonso/cursos/li/ Lógica informática] (Univ. de Sevilla, 2012-13).&lt;br /&gt;
# Thorsten Altenkirch y Peter Morris [http://www.cs.nott.ac.uk/~txa/g52ifr Introduction to formal reasoning] (Univ. de Nottingham, 2010-11).&lt;br /&gt;
# J. Blanchette y J. Höltz [https://lean-forward.github.io/logical-verification/2018 Logical verification]. (Vrije Universiteit Amsterdam, 2018-19). &lt;br /&gt;
# Pierre Castéran [http://www.labri.fr/perso/casteran/FM/Logique/index.html Logic (Master In Verification)] (Univ. de Burdeos, 2011-12).&lt;br /&gt;
# Robby Findler [http://www.eecs.northwestern.edu/~robby/courses/395-495-2013-fall Certified programming with dependent types]. (Northwestern, 2013-14).&lt;br /&gt;
# Carlos Luna y Gustavo Betarte. [https://eva.fing.edu.uy/course/view.php?id=363 Construcción formal de programas en teoría de tipos]. (Univ. de la República, Uruguay, 2013-14).&lt;br /&gt;
# Ian Hodkinson [http://www.doc.ic.ac.uk/~imh/teaching/140_logic/logic.html Logic] (Imperial College, Londres, 2010-11).&lt;br /&gt;
# Peter Lucas [http://www.cs.ru.nl/~peterl/teaching/KeR/ Knowledge Representation and Reasoning] (Radboud University # egen, 2011-12).&lt;br /&gt;
# Larry Paulson [http://www.cl.cam.ac.uk/Teaching/current/LogicProof/ Logic and Proof] (Univ. de Cambridge, 2011-12).&lt;br /&gt;
# David Pichardie [http://www.irisa.fr/celtique/pichardie/teaching/M2/MDV/ Méthode de vérification] (Universidad de Rennes, 2006-07).&lt;br /&gt;
&lt;br /&gt;
== Bibliotecas de ejemplos de verificación ==&lt;br /&gt;
# [http://afp.sourceforge.net Archive of Formal Proofs].&lt;br /&gt;
# [http://www.cs.ru.nl/~freek/100 Formalizing 100 Theorems].&lt;br /&gt;
# [http://toccata.lri.fr/gallery Gallery of verified programs].&lt;br /&gt;
# [http://automatedreasoning.net/ Larry Wos&amp;#039; Notebooks].&lt;br /&gt;
# [http://www.cs.miami.edu/~tptp/ The TPTP Problem Library for Automated Theorem Proving].&lt;br /&gt;
# [http://www.macs.hw.ac.uk/vstte10/Competition.html The 1st Verified Software Competition].&lt;br /&gt;
# [https://sites.google.com/site/vstte2012/compet The 2nd Verified Software Competition].&lt;br /&gt;
# [http://verifythis.cost-ic0701.org VerifyThis (A collection of verification benchmarks].&lt;br /&gt;
&lt;br /&gt;
== Artículos recientes ==&lt;br /&gt;
&lt;br /&gt;
Hay dos listas de artículos recientes:&lt;br /&gt;
&lt;br /&gt;
* en [https://twitter.com/search?f=tweets&amp;amp;q=%23ITP%20OR%20%23IsabelleHOL%20OR%20%23Coq%20OR%20%23Agda%20OR%20%23LeanProver%20OR%20%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd Twitter] que contiene enlaces a los artículos de razonamiento automático y demostración asistida por ordenador que se están publicando y&lt;br /&gt;
* en [https://www.glc.us.es/~jalonso/vestigium/category/resena/ Vestigium] que contiene una reseña de los más destacados.&lt;br /&gt;
&lt;br /&gt;
== Ofertas de trabajo ==&lt;br /&gt;
&lt;br /&gt;
En [https://github.com/jaalonso/Trabajos-MULCIA GitHub] se encuentra una recopilaciónn las ofertas de trabajo de interés para los estudiantes del Máster Universitario en Lógica, Computación e Inteligencia Artificial de la Universidad de Sevilla.&lt;br /&gt;
&lt;br /&gt;
Están en orden cronológico inverso por la fecha de su publicación en [https://twitter.com/search?l=&amp;amp;q=%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd&amp;amp;lang=es Twitter].&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1058</id>
		<title>Documentación</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1058"/>
		<updated>2022-02-08T13:04:41Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* Visiones generales de la DAO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En esta página se recogen en enlaces que sirven de documentación al curso de &amp;quot;Razonamiento automático&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Vídeos ==&lt;br /&gt;
&lt;br /&gt;
* Vídeos de deducción natural con Pandora: [http://bit.ly/1tqZIOe ejemplo 1] y [http://bit.ly/1nWAVp4 ejemplo 2].&lt;br /&gt;
&lt;br /&gt;
== Visiones generales de la DAO ==&lt;br /&gt;
&lt;br /&gt;
# J.A. Alonso. [http://goo.gl/NWk7b Razonamiento formalizado: Del sueño a la realidad de las pruebas]. &lt;br /&gt;
# J.M. Aransay y C. Domínguez. [http://gaceta.rsme.es/abrir.php?id=1057 Demostración asistida por ordenador]. &lt;br /&gt;
# A. Asperti. [https://arxiv.org/abs/1701.03602 Automatic verification and interactive theorem proving]. &lt;br /&gt;
# A. Asperti. [http://www.cs.unibo.it/~asperti/SLIDES/itp.pdf A survey on interactive theorem proving]. &lt;br /&gt;
# J. Avigad. [http://bit.ly/1hsA8Ew Formal verification, interactive theorem proving, and automated reasoning].&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/icerm.pdf Interactive theorem proving, automated reasoning, and mathematical computation]. ICERM, 14 de diciembre de 2012.&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/london.pdf Automated reasoning for the working mathematician].&lt;br /&gt;
# J. Avigad, J. Harrison. [https://www.cl.cam.ac.uk/~jrh13/papers/cacm.pdf Formally verified Mathematics]. &lt;br /&gt;
# H. Barendregt y F. Wiedijk. [http://ftp.science.ru.nl/CSI/CompMath.Found/Barendregt-Wiedijk.pdf The challenge of computer mathematics].&lt;br /&gt;
# K. Buzzard. [http://wwwf.imperial.ac.uk/~buzzard/one_off_lectures/msr.pdf The future of mathematics?]&lt;br /&gt;
# C.S. Calude y C. Müller [https://www.cs.auckland.ac.nz/~cristian/crispapers/56250217.pdf Formal proof: reconciling correctness and understanding].&lt;br /&gt;
# R. David. [http://www.lama.univ-savoie.fr/~david/ftp/amphis.pdf Peut-on faire des Mathématiques avec un ordinateur?]&lt;br /&gt;
# R. David y C. Raffalli. [http://www.lama.univ-savoie.fr/~david/ftp/amphi07.pdf Peut-on avoir confiance en l’informatique?]&lt;br /&gt;
# M. Davis. [http://www.cs.nyu.edu/cs/faculty/davism/early.ps The early history of automated deduction].&lt;br /&gt;
# J.P. Delahaye [http://interstices.info/jcms/int_63417/du-reve-a-la-realite-des-preuves Du rêve à la réalité des preuves]. &amp;#039;&amp;#039;Interstices&amp;#039;&amp;#039;, 8 de julio de 2012.&lt;br /&gt;
# J. Germoni [http://images.math.cnrs.fr/Coq-et-caracteres.html Coq et caractères: Preuve formelle du théorème de Feit et Thompson]. &amp;#039;&amp;#039;Images des Mathématiques&amp;#039;&amp;#039;, CNRS, 23 de noviembre de 2012. &lt;br /&gt;
# H. Geuvers [http://www.ias.ac.in/article/fulltext/sadh/034/01/0003-0025 Proof assistants: History, ideas and future]. &amp;#039;&amp;#039;Sadhana&amp;#039;&amp;#039;, Vol. 34-1, pp. 3-25, février 2009.&lt;br /&gt;
# H. Geuvers. [http://www.cs.ru.nl/~herman/ictopen.pdf Can the computer really help us to prove theorems?]&lt;br /&gt;
# G. Gonthier [http://www.ams.org/notices/200811/tx081101382p.pdf The four-color theorem]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1382-1393, 2008.&lt;br /&gt;
# T. Hales. [http://www.ams.org/notices/200811/tx081101370p.pdf Formal proof]. &amp;#039;&amp;#039;Notices of AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) pp. 1370-1380.&lt;br /&gt;
# J. Harrison. [http://www.cl.cam.ac.uk/~jrh13/papers/ab.html A short survey of automated reasoning]. &amp;#039;&amp;#039;Lecture Notes in Computer Science&amp;#039;&amp;#039;, Vol. 4545, pp. 334-349, 2007.&lt;br /&gt;
# J. Harrison. [http://www.ams.org/notices/200811/tx081101395p.pdf Formal proof: Theory and practice]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) p.1395-1406. &lt;br /&gt;
# J. Harrison, J. Urban y F. Wiedijk [http://www.cl.cam.ac.uk/~jrh13/papers/joerg.pdf History of interactive theorem proving].&lt;br /&gt;
# A. Koutsoukou-Argyraki. [https://www.researchgate.net/profile/Angeliki_Koutsoukou-Argyraki/publication/334549483_FORMALISING_MATHEMATICS_-IN_PRAXIS_A_MATHEMATICIAN%27S_VERY_FIRST_EXPERIENCES_WITH_ISABELLEHOL/links/5d30f782299bf1547cc25f63/FORMALISING-MATHEMATICS-IN-PRAXIS-A-MATHEMATICIANS-VERY-FIRST-EXPERIENCES-WITH-ISABELLE-HOL.pdf Formalising Mathematics-in praxis; A mathematician&amp;#039;s very first experiences with Isabelle/HOL]]. &lt;br /&gt;
# G. Kolata. [http://www.nytimes.com/library/cyber/week/1210math.html Computer math proof shows reasoning power]. &amp;#039;&amp;#039;The New York Times&amp;#039;&amp;#039;, 10 de diciembre de 1996.&lt;br /&gt;
# A. Mahboubi [https://jncf2018.lip6.fr/files/lecture-notes/jncf2018-mahboubi.pdf Calcul formel et preuves formelles].&lt;br /&gt;
# A. Mahboubi. [http://bit.ly/2ch3xEa Machine-checked mathematics]. &lt;br /&gt;
# A. Mahboubi. [http://bit.ly/1qLTVBm Un ordinateur pour vérifier les preuves mathématiques]. &lt;br /&gt;
# D. MacKenzie [http://www.bcs.org/server.php?show=ConWebDoc.4364 Computers and the sociology of mathematical proof].&lt;br /&gt;
# C. Nalon. [https://www.mat.ufrn.br/cade-27/wp-content/uploads/2019/09/2019CN-CADE.pdf Machine-oriented reasoning].&lt;br /&gt;
# J. Narboux. [https://hal.inria.fr/hal-00809448/document Les assistants de preuve, ou comment avoir confiance en ses démonstrations].&lt;br /&gt;
# L.C. Paulson. [https://www.newton.ac.uk/seminar/20170710143015301 Proof assistants: from symbolic logic to real mathematics?] &lt;br /&gt;
# L.C. Paulson, T. Nipkow y M. Wenzel. [https://arxiv.org/abs/1907.02836 From LCF to Isabelle/HOL].&lt;br /&gt;
# T. Ringer et als. [https://www.nowpublishers.com/article/Details/PGL-045 QED at large: A survey of engineering of formally verified software].  &lt;br /&gt;
# P. Schnider. [http://bit.ly/1Gxxmx6 An introduction to proof assistants]. &lt;br /&gt;
# J. Schöpf y S. Widauer [http://cl-informatik.uibk.ac.at/teaching/ws17/vs/reports/SWreport.pdf History of interactive theorem proving].&lt;br /&gt;
# F.R. Villatoro. [http://francis.naukas.com/2017/07/29/la-demostracion-matematica-mas-larga La demostración matemática más larga]. &lt;br /&gt;
# F. Wiedijk [http://www.cs.ru.nl/~freek/100/ Formalizing the «top 100» of mathematical theorems].&lt;br /&gt;
# F. Wiedijk [http://www.ams.org/notices/200811/tx081101408p.pdf Formal proof - Getting started]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1408-1414, 2008.&lt;br /&gt;
# F. Wiedijk, [http://mizar.org/trybulec65/8.pdf The QED manifesto revisited]. &amp;#039;&amp;#039;Studies in Logic, Grammar and Rhetoric&amp;#039;&amp;#039;, Vol. 10(23), pp. 121-133, 2007.&lt;br /&gt;
&lt;br /&gt;
== Referencias sobre Isabelle/HOL ==&lt;br /&gt;
# B. Blumson [https://philpapers.org/go.pl?id=BLUIFP&amp;amp;u=https%3A%2F%2Fphilpapers.org%2Farchive%2FBLUIFP.pdf Isabelle for philosophers]. &lt;br /&gt;
# B. Grechuk [http://dream.inf.ed.ac.uk/projects/isabelle/Isabelle_Primer.pdf Isabelle primer for mathematicians].&lt;br /&gt;
# T. Nipkow [https://isabelle.in.tum.de/doc/prog-prove.pdf Programming and proving in Isabelle/HOL]. &lt;br /&gt;
# T. Nipkow, M. Wenzel y L.C. Paulson [http://isabelle.in.tum.de/doc/tutorial.pdf A proof assistant for higher-order logic].&lt;br /&gt;
# A. Steen [https://git.imp.fu-berlin.de/leo-iii/compmeta_pub/raw/master/exercises/resources/Isabelle_ND_cheatsheet.pdf Mapping of ND proof templates to Isabelle formalization].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/dist/library/HOL/HOL/document.pdf Isabelle/HOL — Higher-Order Logic]. &lt;br /&gt;
# M. Wenzel [http://isabelle.in.tum.de/doc/isar-ref.pdf The Isabelle/Isar Reference Manual]. &lt;br /&gt;
# M. Wenzel [http://typessummerschool07.cs.unibo.it/courses/wenzel-isar-quickref.pdf The Isabelle/Isar quick reference].&lt;br /&gt;
# J. Siek [http://ecee.colorado.edu/~siek/ecen3703/spring10/quick-ref.pdf Quick Reference for Isabelle/Isar Propositional Logic].&lt;br /&gt;
# J. Siek [http://ecee.colorado.edu/~siek/ecen3703/spring10/quick-ref2.pdf Quick Reference for Isabelle/Isar More Proof Techniques].&lt;br /&gt;
# J. Siek [http://ecee.colorado.edu/~siek/ecen3703/spring10/quick-ref3.pdf Quick Reference for Isabelle/Isar First-Order Logic].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/documentation.html Tutorials and manuals for Isabelle].&lt;br /&gt;
&lt;br /&gt;
== Lecturas complementarias ==&lt;br /&gt;
=== Programación funcional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/i1m/temas/2019-20-I1M-temas-PF.pdf Temas de &amp;quot;Programación funcional&amp;quot;]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2019.&lt;br /&gt;
# J.A. Alonso y M.J. Hidalgo [http://www.cs.us.es/~jalonso/publicaciones/Piensa_en_Haskell.pdf Piensa en Haskell (Ejercicios de programación funcional con Haskell)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2012.&lt;br /&gt;
# G. Hutton [http://bit.ly/2pQofC2 Programming in Haskell]. Cambridge University Press, 2007. &lt;br /&gt;
# M. Lipovača [http://aprendehaskell.es ¡Aprende Haskell por el bien de todos!].&lt;br /&gt;
# M. Lipovaca y J. Brock [https://mybinder.org/v2/gh/jamesdbrock/learn-you-a-haskell-notebook/master?urlpath=lab/tree/learn_you_a_haskell/00-preface.ipynb Learn you a Haskell for great good!]&lt;br /&gt;
# T. Nipkow [https://www21.in.tum.de/teaching/fpv/WS1920/slides.pdf Functional programmingand verification]. TUM, 2019.&lt;br /&gt;
&lt;br /&gt;
=== Lógica computacional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/li-15/temas/temas-LI-2015-16.pdf Temas de &amp;quot;Lógica informática&amp;quot; (2015-16)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2015.&lt;br /&gt;
# K. Broda, S. Eisenbach, H. Khoshnevisan y S. Vickers [http://pubs.doc.ic.ac.uk/reasoned-programming/reasoned-programming.pdf Reasoned programming]. Imperial College, 1994.&lt;br /&gt;
# K. Doets y J. van Eijck [http://www.ldc.usb.ve/~astorga/Haskell.Road.pdf The Haskell Road to Logic, Maths and Programming].&lt;br /&gt;
# M. Huth y M. Ryan [http://bit.ly/2e8dFEm Logic in computer science: Modelling and reasoning about systems]. Cambridge University Press, 2004. (Incluye el [http://www.cs.bham.ac.uk/research/lics/tutor/index.html tutor en la Red]).&lt;br /&gt;
&lt;br /&gt;
== Cursos relacionados ==&lt;br /&gt;
=== Cursos con Isabelle/HOL ===&lt;br /&gt;
# Jeremy Avigad. [http://www.phil.cmu.edu/~avigad/formal/ Logic and Formal Verification]. (Carnegie Mellon, 2009).&lt;br /&gt;
# Clemens Ballarin. [http://cl-informatik.uibk.ac.at/teaching/ss08/atp/introduction.php Automatic Deduction]. (Univ de Innsbruck, 2008).&lt;br /&gt;
# Clemens Ballarin. [http://www4.in.tum.de/~ballarin/belgrade08-tut/ Introduction to the Isabelle Proof Assistant]. (Belgrado, 2008). &lt;br /&gt;
# Clemens Ballarin y Gerwin Klein [http://isabelle.in.tum.de/coursematerial/IJCAR04 Introduction to the Isabelle Proof Assistant]. (en el IJCAR-2004).&lt;br /&gt;
# Clemens Ballarin y Tjark Weber. [http://cl-informatik.uibk.ac.at/teaching/ws06/atp/introduction.php Automated Theorem Proving in Isabelle/HOL]. (Univ. de Innsbruck, 2006-07).&lt;br /&gt;
# Jasmin Blanchette, Mathias Fleury y Daniel Wand [http://people.mpi-inf.mpg.de/~jblanche/cswi/ss2015/ Concrete semantics with Isabelle/HOL]. (Univ. del Sarre, 2015-16).&lt;br /&gt;
# A.D. Brucker, D. Basin, J.G. Smaus y B. Wolff. [http://archiv.infsec.ethz.ch/education/permanent/csmr.html Computer-supported Modeling and Reasoning]. (ETH Zurich, 2011).&lt;br /&gt;
# Mads Dam. [http://www.csc.kth.se/utbildning/kth/kurser/DD2453/aform07/ Advanced formal methods]. (KTH Royal Institute of Technology, 2007).&lt;br /&gt;
# Jacques Fleuriot. [http://www.inf.ed.ac.uk/teaching/courses/ar Automated reasoning]. (Univ. de Edimburgo, 2016-17).&lt;br /&gt;
# Thomas Genet [http://www.irisa.fr/celtique/genet/ACF Software formal analysis and design]. (Univ. de Rennes)&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~kleing/teaching/thprv-04 Theorem Proving - Principles, Techniques, Applications]. (NICTA, 2004).&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~cs4161/index.html Advanced Topics in Software Verification]. (NICTA, 2012).&lt;br /&gt;
# Joao Marcos. [http://www.dimap.ufrn.br/~jmarcos/courses/LC/Ementa.htm Lógica computacional: Demonstração assistida e semi-automática de teoremas].(UFRN, 2000).&lt;br /&gt;
# Tobias Nipkow. [http://www21.in.tum.de/teaching/semantik/WS1617/ Semantics of programming languages]. (Univ. de Munich, 2012-13).&lt;br /&gt;
# Tobias Nipkow. [http://isabelle.in.tum.de/coursematerial/PSV2009-1 Theorem Proving with Isabelle/HOL An Intensive Course]. &lt;br /&gt;
# Larry Paulson. [http://www.cl.cam.ac.uk/teaching/0910/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2009-10).&lt;br /&gt;
# Arnd Poetzsch-Heffter. [https://softech.informatik.uni-kl.de/homepage/de/teaching/SVHOL14/ Specification and Verification with Higher-Order Logic]. &lt;br /&gt;
# Jeremy G. Siek. [http://www.cs.colorado.edu/~siek/7000/spring07/ Practical Theorem Proving with Isabelle/Isar]. (Univ. de Colorado, 2007).&lt;br /&gt;
# Jeremy G. Siek. [http://ecee.colorado.edu/~siek/ecen5013/spring11/ Theorem proving in Isabelle]. (Univ. de Colorado, 2011).&lt;br /&gt;
# Jan-Georg Smaus. [http://www.informatik.uni-freiburg.de/~ki/teaching/ws0910/csmr/lecture.html Computer-supported modeling and reasoning]. (Univ. de Feiburgo, 2009).&lt;br /&gt;
# Christian Sternagel [http://cl-informatik.uibk.ac.at/teaching/ss11/eve/content.php Experiments in Verification – Introduction to Isabelle/HOL]. (Univ. de Innsbruck, 2011-12).&lt;br /&gt;
# Tjark Weber. [http://www.cl.cam.ac.uk/teaching/1011/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2010-11).&lt;br /&gt;
&lt;br /&gt;
=== Cursos con Coq ===&lt;br /&gt;
# Yves Bertot, Pierre Casteran, Benjamin Gregoire, Pierre Letouzey y Assia Mahboubi [http://www.di.ens.fr/~zappa/teaching/coq/ecole11 Modelling and verifying algorithms in Coq: an introduction]. (INRIA Paris-Rocquencourt, 14-18 noviembre 2011).&lt;br /&gt;
# Adam Chlipala [http://stellar.mit.edu/S/course/6/fa11/6.892/ Interactive computer theorem proving]. (MIT, 2012-13).&lt;br /&gt;
# Adam Chlipala y Armando Solar Lezama [https://stellar.mit.edu/S/course/6/fa13/6.820/index.html Foundations of program analysis]. (MIT, 2013-14).&lt;br /&gt;
# M. Greenberg [http://www.cs.pomona.edu/~michael/courses/csci054s18/ Discrete mathematics and functional programming]. &lt;br /&gt;
# Benjamin C. Pierce et als. [https://softwarefoundations.cis.upenn.edu/lf-current/index.html Software foundations (Vol. 1: Logical foundations)].&lt;br /&gt;
# Benjamin C. Pierce [https://www.seas.upenn.edu/~cis500/current/index.html Software foundations] (Univ. de Pensilvania, 2018).&lt;br /&gt;
# G. Smolka [https://courses.ps.uni-saarland.de/icl_18/2/Resources Introduction to computational logic] (Univ. de Sarre, 2018).&lt;br /&gt;
&lt;br /&gt;
=== Otros cursos ===&lt;br /&gt;
# José A. Alonso [http://www.cs.us.es/~jalonso/cursos/li/ Lógica informática] (Univ. de Sevilla, 2012-13).&lt;br /&gt;
# Thorsten Altenkirch y Peter Morris [http://www.cs.nott.ac.uk/~txa/g52ifr Introduction to formal reasoning] (Univ. de Nottingham, 2010-11).&lt;br /&gt;
# J. Blanchette y J. Höltz [https://lean-forward.github.io/logical-verification/2018 Logical verification]. (Vrije Universiteit Amsterdam, 2018-19). &lt;br /&gt;
# Pierre Castéran [http://www.labri.fr/perso/casteran/FM/Logique/index.html Logic (Master In Verification)] (Univ. de Burdeos, 2011-12).&lt;br /&gt;
# Robby Findler [http://www.eecs.northwestern.edu/~robby/courses/395-495-2013-fall Certified programming with dependent types]. (Northwestern, 2013-14).&lt;br /&gt;
# Carlos Luna y Gustavo Betarte. [https://eva.fing.edu.uy/course/view.php?id=363 Construcción formal de programas en teoría de tipos]. (Univ. de la República, Uruguay, 2013-14).&lt;br /&gt;
# Ian Hodkinson [http://www.doc.ic.ac.uk/~imh/teaching/140_logic/logic.html Logic] (Imperial College, Londres, 2010-11).&lt;br /&gt;
# Peter Lucas [http://www.cs.ru.nl/~peterl/teaching/KeR/ Knowledge Representation and Reasoning] (Radboud University # egen, 2011-12).&lt;br /&gt;
# Larry Paulson [http://www.cl.cam.ac.uk/Teaching/current/LogicProof/ Logic and Proof] (Univ. de Cambridge, 2011-12).&lt;br /&gt;
# David Pichardie [http://www.irisa.fr/celtique/pichardie/teaching/M2/MDV/ Méthode de vérification] (Universidad de Rennes, 2006-07).&lt;br /&gt;
&lt;br /&gt;
== Bibliotecas de ejemplos de verificación ==&lt;br /&gt;
# [http://afp.sourceforge.net Archive of Formal Proofs].&lt;br /&gt;
# [http://www.cs.ru.nl/~freek/100 Formalizing 100 Theorems].&lt;br /&gt;
# [http://toccata.lri.fr/gallery Gallery of verified programs].&lt;br /&gt;
# [http://automatedreasoning.net/ Larry Wos&amp;#039; Notebooks].&lt;br /&gt;
# [http://www.cs.miami.edu/~tptp/ The TPTP Problem Library for Automated Theorem Proving].&lt;br /&gt;
# [http://www.macs.hw.ac.uk/vstte10/Competition.html The 1st Verified Software Competition].&lt;br /&gt;
# [https://sites.google.com/site/vstte2012/compet The 2nd Verified Software Competition].&lt;br /&gt;
# [http://verifythis.cost-ic0701.org VerifyThis (A collection of verification benchmarks].&lt;br /&gt;
&lt;br /&gt;
== Artículos recientes ==&lt;br /&gt;
&lt;br /&gt;
Hay dos listas de artículos recientes:&lt;br /&gt;
&lt;br /&gt;
* en [https://twitter.com/search?f=tweets&amp;amp;q=%23ITP%20OR%20%23IsabelleHOL%20OR%20%23Coq%20OR%20%23Agda%20OR%20%23LeanProver%20OR%20%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd Twitter] que contiene enlaces a los artículos de razonamiento automático y demostración asistida por ordenador que se están publicando y&lt;br /&gt;
* en [https://www.glc.us.es/~jalonso/vestigium/category/resena/ Vestigium] que contiene una reseña de los más destacados.&lt;br /&gt;
&lt;br /&gt;
== Ofertas de trabajo ==&lt;br /&gt;
&lt;br /&gt;
En [https://github.com/jaalonso/Trabajos-MULCIA GitHub] se encuentra una recopilaciónn las ofertas de trabajo de interés para los estudiantes del Máster Universitario en Lógica, Computación e Inteligencia Artificial de la Universidad de Sevilla.&lt;br /&gt;
&lt;br /&gt;
Están en orden cronológico inverso por la fecha de su publicación en [https://twitter.com/search?l=&amp;amp;q=%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd&amp;amp;lang=es Twitter].&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1057</id>
		<title>Documentación</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Documentaci%C3%B3n&amp;diff=1057"/>
		<updated>2022-02-08T13:01:57Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* Visiones generales de la DAO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En esta página se recogen en enlaces que sirven de documentación al curso de &amp;quot;Razonamiento automático&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Vídeos ==&lt;br /&gt;
&lt;br /&gt;
* Vídeos de deducción natural con Pandora: [http://bit.ly/1tqZIOe ejemplo 1] y [http://bit.ly/1nWAVp4 ejemplo 2].&lt;br /&gt;
&lt;br /&gt;
== Visiones generales de la DAO ==&lt;br /&gt;
&lt;br /&gt;
# J.A. Alonso. [http://goo.gl/NWk7b Razonamiento formalizado: Del sueño a la realidad de las pruebas]. &lt;br /&gt;
# J.M. Aransay y C. Domínguez. [http://gaceta.rsme.es/abrir.php?id=1057 Demostración asistida por ordenador]. &lt;br /&gt;
# A. Asperti. [https://arxiv.org/abs/1701.03602 Automatic verification and interactive theorem proving]. &lt;br /&gt;
# A. Asperti. [http://www.cs.unibo.it/~asperti/SLIDES/itp.pdf A survey on interactive theorem proving]. &lt;br /&gt;
# J. Avigad. [http://bit.ly/1hsA8Ew Formal verification, interactive theorem proving, and automated reasoning].&lt;br /&gt;
# J. Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/icerm.pdf Interactive theorem proving, automated reasoning, and mathematical computation]. ICERM, 14 de diciembre de 2012.&lt;br /&gt;
# J, Avigad. [http://www.andrew.cmu.edu/user/avigad/Talks/london.pdf Automated reasoning for the working mathematician].&lt;br /&gt;
# J. Avigad, J. Harrison. [https://www.cl.cam.ac.uk/~jrh13/papers/cacm.pdf Formally verified Mathematics]. &lt;br /&gt;
# H. Barendregt y F. Wiedijk. [http://ftp.science.ru.nl/CSI/CompMath.Found/Barendregt-Wiedijk.pdf The challenge of computer mathematics].&lt;br /&gt;
# K. Buzzard. [http://wwwf.imperial.ac.uk/~buzzard/one_off_lectures/msr.pdf The future of mathematics?]&lt;br /&gt;
# C.S. Calude y C. Müller [https://www.cs.auckland.ac.nz/~cristian/crispapers/56250217.pdf Formal proof: reconciling correctness and understanding].&lt;br /&gt;
# R. David. [http://www.lama.univ-savoie.fr/~david/ftp/amphis.pdf Peut-on faire des Mathématiques avec un ordinateur?]&lt;br /&gt;
# R. David y C. Raffalli. [http://www.lama.univ-savoie.fr/~david/ftp/amphi07.pdf Peut-on avoir confiance en l’informatique?]&lt;br /&gt;
# M. Davis. [http://www.cs.nyu.edu/cs/faculty/davism/early.ps The early history of automated deduction].&lt;br /&gt;
# J.P. Delahaye [http://interstices.info/jcms/int_63417/du-reve-a-la-realite-des-preuves Du rêve à la réalité des preuves]. &amp;#039;&amp;#039;Interstices&amp;#039;&amp;#039;, 8 de julio de 2012.&lt;br /&gt;
# J. Germoni [http://images.math.cnrs.fr/Coq-et-caracteres.html Coq et caractères: Preuve formelle du théorème de Feit et Thompson]. &amp;#039;&amp;#039;Images des Mathématiques&amp;#039;&amp;#039;, CNRS, 23 de noviembre de 2012. &lt;br /&gt;
# H. Geuvers [http://www.ias.ac.in/article/fulltext/sadh/034/01/0003-0025 Proof assistants: History, ideas and future]. &amp;#039;&amp;#039;Sadhana&amp;#039;&amp;#039;, Vol. 34-1, pp. 3-25, février 2009.&lt;br /&gt;
# H. Geuvers. [http://www.cs.ru.nl/~herman/ictopen.pdf Can the computer really help us to prove theorems?]&lt;br /&gt;
# G. Gonthier [http://www.ams.org/notices/200811/tx081101382p.pdf The four-color theorem]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1382-1393, 2008.&lt;br /&gt;
# T. Hales. [http://www.ams.org/notices/200811/tx081101370p.pdf Formal proof]. &amp;#039;&amp;#039;Notices of AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) pp. 1370-1380.&lt;br /&gt;
# J. Harrison. [http://www.cl.cam.ac.uk/~jrh13/papers/ab.html A short survey of automated reasoning]. &amp;#039;&amp;#039;Lecture Notes in Computer Science&amp;#039;&amp;#039;, Vol. 4545, pp. 334-349, 2007.&lt;br /&gt;
# J. Harrison. [http://www.ams.org/notices/200811/tx081101395p.pdf Formal proof: Theory and practice]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, N. 11 (2008) p.1395-1406. &lt;br /&gt;
# J. Harrison, J. Urban y F. Wiedijk [http://www.cl.cam.ac.uk/~jrh13/papers/joerg.pdf History of interactive theorem proving].&lt;br /&gt;
# A. Koutsoukou-Argyraki. [https://www.researchgate.net/profile/Angeliki_Koutsoukou-Argyraki/publication/334549483_FORMALISING_MATHEMATICS_-IN_PRAXIS_A_MATHEMATICIAN%27S_VERY_FIRST_EXPERIENCES_WITH_ISABELLEHOL/links/5d30f782299bf1547cc25f63/FORMALISING-MATHEMATICS-IN-PRAXIS-A-MATHEMATICIANS-VERY-FIRST-EXPERIENCES-WITH-ISABELLE-HOL.pdf Formalising Mathematics-in praxis; A mathematician&amp;#039;s very first experiences with Isabelle/HOL]]. &lt;br /&gt;
# G. Kolata. [http://www.nytimes.com/library/cyber/week/1210math.html Computer math proof shows reasoning power]. &amp;#039;&amp;#039;The New York Times&amp;#039;&amp;#039;, 10 de diciembre de 1996.&lt;br /&gt;
# A. Mahboubi [https://jncf2018.lip6.fr/files/lecture-notes/jncf2018-mahboubi.pdf Calcul formel et preuves formelles].&lt;br /&gt;
# A. Mahboubi. [http://bit.ly/2ch3xEa Machine-checked mathematics]. &lt;br /&gt;
# A. Mahboubi. [http://bit.ly/1qLTVBm Un ordinateur pour vérifier les preuves mathématiques]. &lt;br /&gt;
# D. MacKenzie [http://www.bcs.org/server.php?show=ConWebDoc.4364 Computers and the sociology of mathematical proof].&lt;br /&gt;
# C. Nalon. [https://www.mat.ufrn.br/cade-27/wp-content/uploads/2019/09/2019CN-CADE.pdf Machine-oriented reasoning].&lt;br /&gt;
# J. Narboux. [https://hal.inria.fr/hal-00809448/document Les assistants de preuve, ou comment avoir confiance en ses démonstrations].&lt;br /&gt;
# L.C. Paulson. [https://www.newton.ac.uk/seminar/20170710143015301 Proof assistants: from symbolic logic to real mathematics?] &lt;br /&gt;
# L.C. Paulson, T. Nipkow y M. Wenzel. [https://arxiv.org/abs/1907.02836 From LCF to Isabelle/HOL].&lt;br /&gt;
# T. Ringer et als. [https://www.nowpublishers.com/article/Details/PGL-045 QED at large: A survey of engineering of formally verified software].  &lt;br /&gt;
# P. Schnider. [http://bit.ly/1Gxxmx6 An introduction to proof assistants]. &lt;br /&gt;
# J. Schöpf y S. Widauer [http://cl-informatik.uibk.ac.at/teaching/ws17/vs/reports/SWreport.pdf History of interactive theorem proving].&lt;br /&gt;
# F.R. Villatoro. [http://francis.naukas.com/2017/07/29/la-demostracion-matematica-mas-larga La demostración matemática más larga]. &lt;br /&gt;
# F. Wiedijk [http://www.cs.ru.nl/~freek/100/ Formalizing the «top 100» of mathematical theorems].&lt;br /&gt;
# F. Wiedijk [http://www.ams.org/notices/200811/tx081101408p.pdf Formal proof - Getting started]. &amp;#039;&amp;#039;Notices of the AMS&amp;#039;&amp;#039;, Vol. 55, n° 11, pp. 1408-1414, 2008.&lt;br /&gt;
# F. Wiedijk, [http://mizar.org/trybulec65/8.pdf The QED manifesto revisited]. &amp;#039;&amp;#039;Studies in Logic, Grammar and Rhetoric&amp;#039;&amp;#039;, Vol. 10(23), pp. 121-133, 2007.&lt;br /&gt;
&lt;br /&gt;
== Referencias sobre Isabelle/HOL ==&lt;br /&gt;
# B. Blumson [https://philpapers.org/go.pl?id=BLUIFP&amp;amp;u=https%3A%2F%2Fphilpapers.org%2Farchive%2FBLUIFP.pdf Isabelle for philosophers]. &lt;br /&gt;
# B. Grechuk [http://dream.inf.ed.ac.uk/projects/isabelle/Isabelle_Primer.pdf Isabelle primer for mathematicians].&lt;br /&gt;
# T. Nipkow [https://isabelle.in.tum.de/doc/prog-prove.pdf Programming and proving in Isabelle/HOL]. &lt;br /&gt;
# T. Nipkow, M. Wenzel y L.C. Paulson [http://isabelle.in.tum.de/doc/tutorial.pdf A proof assistant for higher-order logic].&lt;br /&gt;
# A. Steen [https://git.imp.fu-berlin.de/leo-iii/compmeta_pub/raw/master/exercises/resources/Isabelle_ND_cheatsheet.pdf Mapping of ND proof templates to Isabelle formalization].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/dist/library/HOL/HOL/document.pdf Isabelle/HOL — Higher-Order Logic]. &lt;br /&gt;
# M. Wenzel [http://isabelle.in.tum.de/doc/isar-ref.pdf The Isabelle/Isar Reference Manual]. &lt;br /&gt;
# M. Wenzel [http://typessummerschool07.cs.unibo.it/courses/wenzel-isar-quickref.pdf The Isabelle/Isar quick reference].&lt;br /&gt;
# J. Siek [http://ecee.colorado.edu/~siek/ecen3703/spring10/quick-ref.pdf Quick Reference for Isabelle/Isar Propositional Logic].&lt;br /&gt;
# J. Siek [http://ecee.colorado.edu/~siek/ecen3703/spring10/quick-ref2.pdf Quick Reference for Isabelle/Isar More Proof Techniques].&lt;br /&gt;
# J. Siek [http://ecee.colorado.edu/~siek/ecen3703/spring10/quick-ref3.pdf Quick Reference for Isabelle/Isar First-Order Logic].&lt;br /&gt;
# [http://www.cl.cam.ac.uk/research/hvg/Isabelle/documentation.html Tutorials and manuals for Isabelle].&lt;br /&gt;
&lt;br /&gt;
== Lecturas complementarias ==&lt;br /&gt;
=== Programación funcional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/i1m/temas/2019-20-I1M-temas-PF.pdf Temas de &amp;quot;Programación funcional&amp;quot;]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2019.&lt;br /&gt;
# J.A. Alonso y M.J. Hidalgo [http://www.cs.us.es/~jalonso/publicaciones/Piensa_en_Haskell.pdf Piensa en Haskell (Ejercicios de programación funcional con Haskell)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2012.&lt;br /&gt;
# G. Hutton [http://bit.ly/2pQofC2 Programming in Haskell]. Cambridge University Press, 2007. &lt;br /&gt;
# M. Lipovača [http://aprendehaskell.es ¡Aprende Haskell por el bien de todos!].&lt;br /&gt;
# M. Lipovaca y J. Brock [https://mybinder.org/v2/gh/jamesdbrock/learn-you-a-haskell-notebook/master?urlpath=lab/tree/learn_you_a_haskell/00-preface.ipynb Learn you a Haskell for great good!]&lt;br /&gt;
# T. Nipkow [https://www21.in.tum.de/teaching/fpv/WS1920/slides.pdf Functional programmingand verification]. TUM, 2019.&lt;br /&gt;
&lt;br /&gt;
=== Lógica computacional ===&lt;br /&gt;
# J.A. Alonso [https://www.cs.us.es/~jalonso/cursos/li-15/temas/temas-LI-2015-16.pdf Temas de &amp;quot;Lógica informática&amp;quot; (2015-16)]. Publicaciones del Grupo de Lógica Computacional. Universidad de Sevilla, 2015.&lt;br /&gt;
# K. Broda, S. Eisenbach, H. Khoshnevisan y S. Vickers [http://pubs.doc.ic.ac.uk/reasoned-programming/reasoned-programming.pdf Reasoned programming]. Imperial College, 1994.&lt;br /&gt;
# K. Doets y J. van Eijck [http://www.ldc.usb.ve/~astorga/Haskell.Road.pdf The Haskell Road to Logic, Maths and Programming].&lt;br /&gt;
# M. Huth y M. Ryan [http://bit.ly/2e8dFEm Logic in computer science: Modelling and reasoning about systems]. Cambridge University Press, 2004. (Incluye el [http://www.cs.bham.ac.uk/research/lics/tutor/index.html tutor en la Red]).&lt;br /&gt;
&lt;br /&gt;
== Cursos relacionados ==&lt;br /&gt;
=== Cursos con Isabelle/HOL ===&lt;br /&gt;
# Jeremy Avigad. [http://www.phil.cmu.edu/~avigad/formal/ Logic and Formal Verification]. (Carnegie Mellon, 2009).&lt;br /&gt;
# Clemens Ballarin. [http://cl-informatik.uibk.ac.at/teaching/ss08/atp/introduction.php Automatic Deduction]. (Univ de Innsbruck, 2008).&lt;br /&gt;
# Clemens Ballarin. [http://www4.in.tum.de/~ballarin/belgrade08-tut/ Introduction to the Isabelle Proof Assistant]. (Belgrado, 2008). &lt;br /&gt;
# Clemens Ballarin y Gerwin Klein [http://isabelle.in.tum.de/coursematerial/IJCAR04 Introduction to the Isabelle Proof Assistant]. (en el IJCAR-2004).&lt;br /&gt;
# Clemens Ballarin y Tjark Weber. [http://cl-informatik.uibk.ac.at/teaching/ws06/atp/introduction.php Automated Theorem Proving in Isabelle/HOL]. (Univ. de Innsbruck, 2006-07).&lt;br /&gt;
# Jasmin Blanchette, Mathias Fleury y Daniel Wand [http://people.mpi-inf.mpg.de/~jblanche/cswi/ss2015/ Concrete semantics with Isabelle/HOL]. (Univ. del Sarre, 2015-16).&lt;br /&gt;
# A.D. Brucker, D. Basin, J.G. Smaus y B. Wolff. [http://archiv.infsec.ethz.ch/education/permanent/csmr.html Computer-supported Modeling and Reasoning]. (ETH Zurich, 2011).&lt;br /&gt;
# Mads Dam. [http://www.csc.kth.se/utbildning/kth/kurser/DD2453/aform07/ Advanced formal methods]. (KTH Royal Institute of Technology, 2007).&lt;br /&gt;
# Jacques Fleuriot. [http://www.inf.ed.ac.uk/teaching/courses/ar Automated reasoning]. (Univ. de Edimburgo, 2016-17).&lt;br /&gt;
# Thomas Genet [http://www.irisa.fr/celtique/genet/ACF Software formal analysis and design]. (Univ. de Rennes)&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~kleing/teaching/thprv-04 Theorem Proving - Principles, Techniques, Applications]. (NICTA, 2004).&lt;br /&gt;
# Gerwin Klein. [http://www.cse.unsw.edu.au/~cs4161/index.html Advanced Topics in Software Verification]. (NICTA, 2012).&lt;br /&gt;
# Joao Marcos. [http://www.dimap.ufrn.br/~jmarcos/courses/LC/Ementa.htm Lógica computacional: Demonstração assistida e semi-automática de teoremas].(UFRN, 2000).&lt;br /&gt;
# Tobias Nipkow. [http://www21.in.tum.de/teaching/semantik/WS1617/ Semantics of programming languages]. (Univ. de Munich, 2012-13).&lt;br /&gt;
# Tobias Nipkow. [http://isabelle.in.tum.de/coursematerial/PSV2009-1 Theorem Proving with Isabelle/HOL An Intensive Course]. &lt;br /&gt;
# Larry Paulson. [http://www.cl.cam.ac.uk/teaching/0910/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2009-10).&lt;br /&gt;
# Arnd Poetzsch-Heffter. [https://softech.informatik.uni-kl.de/homepage/de/teaching/SVHOL14/ Specification and Verification with Higher-Order Logic]. &lt;br /&gt;
# Jeremy G. Siek. [http://www.cs.colorado.edu/~siek/7000/spring07/ Practical Theorem Proving with Isabelle/Isar]. (Univ. de Colorado, 2007).&lt;br /&gt;
# Jeremy G. Siek. [http://ecee.colorado.edu/~siek/ecen5013/spring11/ Theorem proving in Isabelle]. (Univ. de Colorado, 2011).&lt;br /&gt;
# Jan-Georg Smaus. [http://www.informatik.uni-freiburg.de/~ki/teaching/ws0910/csmr/lecture.html Computer-supported modeling and reasoning]. (Univ. de Feiburgo, 2009).&lt;br /&gt;
# Christian Sternagel [http://cl-informatik.uibk.ac.at/teaching/ss11/eve/content.php Experiments in Verification – Introduction to Isabelle/HOL]. (Univ. de Innsbruck, 2011-12).&lt;br /&gt;
# Tjark Weber. [http://www.cl.cam.ac.uk/teaching/1011/L21/ Interactive Formal Verification]. (Univ. de Cambridge, 2010-11).&lt;br /&gt;
&lt;br /&gt;
=== Cursos con Coq ===&lt;br /&gt;
# Yves Bertot, Pierre Casteran, Benjamin Gregoire, Pierre Letouzey y Assia Mahboubi [http://www.di.ens.fr/~zappa/teaching/coq/ecole11 Modelling and verifying algorithms in Coq: an introduction]. (INRIA Paris-Rocquencourt, 14-18 noviembre 2011).&lt;br /&gt;
# Adam Chlipala [http://stellar.mit.edu/S/course/6/fa11/6.892/ Interactive computer theorem proving]. (MIT, 2012-13).&lt;br /&gt;
# Adam Chlipala y Armando Solar Lezama [https://stellar.mit.edu/S/course/6/fa13/6.820/index.html Foundations of program analysis]. (MIT, 2013-14).&lt;br /&gt;
# M. Greenberg [http://www.cs.pomona.edu/~michael/courses/csci054s18/ Discrete mathematics and functional programming]. &lt;br /&gt;
# Benjamin C. Pierce et als. [https://softwarefoundations.cis.upenn.edu/lf-current/index.html Software foundations (Vol. 1: Logical foundations)].&lt;br /&gt;
# Benjamin C. Pierce [https://www.seas.upenn.edu/~cis500/current/index.html Software foundations] (Univ. de Pensilvania, 2018).&lt;br /&gt;
# G. Smolka [https://courses.ps.uni-saarland.de/icl_18/2/Resources Introduction to computational logic] (Univ. de Sarre, 2018).&lt;br /&gt;
&lt;br /&gt;
=== Otros cursos ===&lt;br /&gt;
# José A. Alonso [http://www.cs.us.es/~jalonso/cursos/li/ Lógica informática] (Univ. de Sevilla, 2012-13).&lt;br /&gt;
# Thorsten Altenkirch y Peter Morris [http://www.cs.nott.ac.uk/~txa/g52ifr Introduction to formal reasoning] (Univ. de Nottingham, 2010-11).&lt;br /&gt;
# J. Blanchette y J. Höltz [https://lean-forward.github.io/logical-verification/2018 Logical verification]. (Vrije Universiteit Amsterdam, 2018-19). &lt;br /&gt;
# Pierre Castéran [http://www.labri.fr/perso/casteran/FM/Logique/index.html Logic (Master In Verification)] (Univ. de Burdeos, 2011-12).&lt;br /&gt;
# Robby Findler [http://www.eecs.northwestern.edu/~robby/courses/395-495-2013-fall Certified programming with dependent types]. (Northwestern, 2013-14).&lt;br /&gt;
# Carlos Luna y Gustavo Betarte. [https://eva.fing.edu.uy/course/view.php?id=363 Construcción formal de programas en teoría de tipos]. (Univ. de la República, Uruguay, 2013-14).&lt;br /&gt;
# Ian Hodkinson [http://www.doc.ic.ac.uk/~imh/teaching/140_logic/logic.html Logic] (Imperial College, Londres, 2010-11).&lt;br /&gt;
# Peter Lucas [http://www.cs.ru.nl/~peterl/teaching/KeR/ Knowledge Representation and Reasoning] (Radboud University # egen, 2011-12).&lt;br /&gt;
# Larry Paulson [http://www.cl.cam.ac.uk/Teaching/current/LogicProof/ Logic and Proof] (Univ. de Cambridge, 2011-12).&lt;br /&gt;
# David Pichardie [http://www.irisa.fr/celtique/pichardie/teaching/M2/MDV/ Méthode de vérification] (Universidad de Rennes, 2006-07).&lt;br /&gt;
&lt;br /&gt;
== Bibliotecas de ejemplos de verificación ==&lt;br /&gt;
# [http://afp.sourceforge.net Archive of Formal Proofs].&lt;br /&gt;
# [http://www.cs.ru.nl/~freek/100 Formalizing 100 Theorems].&lt;br /&gt;
# [http://toccata.lri.fr/gallery Gallery of verified programs].&lt;br /&gt;
# [http://automatedreasoning.net/ Larry Wos&amp;#039; Notebooks].&lt;br /&gt;
# [http://www.cs.miami.edu/~tptp/ The TPTP Problem Library for Automated Theorem Proving].&lt;br /&gt;
# [http://www.macs.hw.ac.uk/vstte10/Competition.html The 1st Verified Software Competition].&lt;br /&gt;
# [https://sites.google.com/site/vstte2012/compet The 2nd Verified Software Competition].&lt;br /&gt;
# [http://verifythis.cost-ic0701.org VerifyThis (A collection of verification benchmarks].&lt;br /&gt;
&lt;br /&gt;
== Artículos recientes ==&lt;br /&gt;
&lt;br /&gt;
Hay dos listas de artículos recientes:&lt;br /&gt;
&lt;br /&gt;
* en [https://twitter.com/search?f=tweets&amp;amp;q=%23ITP%20OR%20%23IsabelleHOL%20OR%20%23Coq%20OR%20%23Agda%20OR%20%23LeanProver%20OR%20%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd Twitter] que contiene enlaces a los artículos de razonamiento automático y demostración asistida por ordenador que se están publicando y&lt;br /&gt;
* en [https://www.glc.us.es/~jalonso/vestigium/category/resena/ Vestigium] que contiene una reseña de los más destacados.&lt;br /&gt;
&lt;br /&gt;
== Ofertas de trabajo ==&lt;br /&gt;
&lt;br /&gt;
En [https://github.com/jaalonso/Trabajos-MULCIA GitHub] se encuentra una recopilaciónn las ofertas de trabajo de interés para los estudiantes del Máster Universitario en Lógica, Computación e Inteligencia Artificial de la Universidad de Sevilla.&lt;br /&gt;
&lt;br /&gt;
Están en orden cronológico inverso por la fecha de su publicación en [https://twitter.com/search?l=&amp;amp;q=%23MULCIA%20from%3AJose_A_Alonso&amp;amp;src=typd&amp;amp;lang=es Twitter].&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=R3&amp;diff=1056</id>
		<title>R3</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=R3&amp;diff=1056"/>
		<updated>2021-09-13T17:55:07Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isabelle&amp;quot;&amp;gt;&lt;br /&gt;
chapter ‹R3: Razonamiento estructurado sobre programas›&lt;br /&gt;
&lt;br /&gt;
theory R3_Razonamiento_estructurado_sobre_programas&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1.1. Definir la función&lt;br /&gt;
     sumaImpares :: nat ⇒ nat&lt;br /&gt;
  tal que (sumaImpares n) es la suma de los n primeros números&lt;br /&gt;
  impares. Por ejemplo,&lt;br /&gt;
     sumaImpares 5  =  25&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
fun sumaImpares :: &amp;quot;nat ⇒ nat&amp;quot; where&lt;br /&gt;
  &amp;quot;sumaImpares 0 = 0&amp;quot;&lt;br /&gt;
| &amp;quot;sumaImpares (Suc n) = sumaImpares n + (2*n+1)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1.2. Escribir la demostración detallada de &lt;br /&gt;
     sumaImpares n = n*n&lt;br /&gt;
  -------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma &amp;quot;sumaImpares n = n*n&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2.1. Definir la función&lt;br /&gt;
     sumaPotenciasDeDosMasUno :: nat ⇒ nat&lt;br /&gt;
  tal que &lt;br /&gt;
     (sumaPotenciasDeDosMasUno n) = 1 + 2^0 + 2^1 + 2^2 + ... + 2^n. &lt;br /&gt;
  Por ejemplo, &lt;br /&gt;
     sumaPotenciasDeDosMasUno 3  =  16&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
fun sumaPotenciasDeDosMasUno :: &amp;quot;nat ⇒ nat&amp;quot; where&lt;br /&gt;
  &amp;quot;sumaPotenciasDeDosMasUno 0 = 2&amp;quot;&lt;br /&gt;
| &amp;quot;sumaPotenciasDeDosMasUno (Suc n) = &lt;br /&gt;
      sumaPotenciasDeDosMasUno n + 2^(n+1)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2.2. Escribir la demostración detallada de &lt;br /&gt;
     sumaPotenciasDeDosMasUno n = 2^(n+1)&lt;br /&gt;
  -------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma &amp;quot;sumaPotenciasDeDosMasUno n = 2^(n+1)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3.1. Definir la función&lt;br /&gt;
     copia :: nat ⇒ &amp;#039;a ⇒ &amp;#039;a list&lt;br /&gt;
  tal que (copia n x) es la lista formado por n copias del elemento&lt;br /&gt;
  x. Por ejemplo, &lt;br /&gt;
     copia 3 x = [x,x,x]&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
fun copia :: &amp;quot;nat ⇒ &amp;#039;a ⇒ &amp;#039;a list&amp;quot; where&lt;br /&gt;
  &amp;quot;copia 0 x       = []&amp;quot;&lt;br /&gt;
| &amp;quot;copia (Suc n) x = x # copia n x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3.2. Definir la función&lt;br /&gt;
     todos :: (&amp;#039;a ⇒ bool) ⇒ &amp;#039;a list ⇒ bool&lt;br /&gt;
  tal que (todos p xs) se verifica si todos los elementos de xs cumplen&lt;br /&gt;
  la propiedad p. Por ejemplo,&lt;br /&gt;
     todos (λx. x&amp;gt;(1::nat)) [2,6,4] = True&lt;br /&gt;
     todos (λx. x&amp;gt;(2::nat)) [2,6,4] = False&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
fun todos :: &amp;quot;(&amp;#039;a ⇒ bool) ⇒ &amp;#039;a list ⇒ bool&amp;quot; where&lt;br /&gt;
  &amp;quot;todos p []     = True&amp;quot;&lt;br /&gt;
| &amp;quot;todos p (x#xs) = (p x ∧ todos p xs)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3.2. Demostrar detalladamente que todos los elementos de&lt;br /&gt;
  (copia n x) son iguales a x. &lt;br /&gt;
  -------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma &amp;quot;todos (λy. y=x) (copia n x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4.1. Definir la función&lt;br /&gt;
    factR :: nat ⇒ nat&lt;br /&gt;
  tal que (factR n) es el factorial de n. Por ejemplo,&lt;br /&gt;
    factR 4 = 24&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
fun factR :: &amp;quot;nat ⇒ nat&amp;quot; where&lt;br /&gt;
  &amp;quot;factR 0       = 1&amp;quot;&lt;br /&gt;
| &amp;quot;factR (Suc n) = Suc n * factR n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4.2. Se considera la siguiente definición iterativa de la&lt;br /&gt;
  función factorial &lt;br /&gt;
     factI :: &amp;quot;nat ⇒ nat&amp;quot; where&lt;br /&gt;
     factI n = factI&amp;#039; n 1&lt;br /&gt;
     &lt;br /&gt;
     factI&amp;#039; :: &amp;quot;nat ⇒ nat ⇒ nat&amp;quot; where&lt;br /&gt;
     factI&amp;#039; 0       x = x&lt;br /&gt;
     factI&amp;#039; (Suc n) x = factI&amp;#039; n (Suc n)*x&lt;br /&gt;
  Demostrar que, para todo n y todo x, se tiene &lt;br /&gt;
     factI&amp;#039; n x = x * factR n&lt;br /&gt;
  Indicación: La propiedad mult_Suc es &lt;br /&gt;
     (Suc m) * n = n + m * n&lt;br /&gt;
  Puede que se necesite desactivarla en un paso con &lt;br /&gt;
     (simp del: mult_Suc)&lt;br /&gt;
  -------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
fun factI&amp;#039; :: &amp;quot;nat ⇒ nat ⇒ nat&amp;quot; where&lt;br /&gt;
  &amp;quot;factI&amp;#039; 0       x = x&amp;quot;&lt;br /&gt;
| &amp;quot;factI&amp;#039; (Suc n) x = factI&amp;#039; n (x * Suc n)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
fun factI :: &amp;quot;nat ⇒ nat&amp;quot; where&lt;br /&gt;
  &amp;quot;factI n = factI&amp;#039; n 1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma fact: &amp;quot;factI&amp;#039; n x = x * factR n&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4.3. Escribir la demostración detallada de&lt;br /&gt;
     factI n = factR n&lt;br /&gt;
  -------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
corollary &amp;quot;factI n = factR n&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5.1. Definir, recursivamente y sin usar (@), la función&lt;br /&gt;
     amplia :: &amp;#039;a list ⇒ &amp;#039;a ⇒ &amp;#039;a list&lt;br /&gt;
  tal que (amplia xs y) es la lista obtenida añadiendo el elemento y al&lt;br /&gt;
  final de la lista xs. Por ejemplo,&lt;br /&gt;
     amplia [d,a] t = [d,a,t]&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
fun amplia :: &amp;quot;&amp;#039;a list ⇒ &amp;#039;a ⇒ &amp;#039;a list&amp;quot; where&lt;br /&gt;
  &amp;quot;amplia []     y = [y]&amp;quot;&lt;br /&gt;
| &amp;quot;amplia (x#xs) y = x # amplia xs y&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5.2. Escribir la demostración detallada de&lt;br /&gt;
     amplia xs y = xs @ [y]&lt;br /&gt;
  -------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma &amp;quot;amplia xs y = xs @ [y]&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Ejercicios&amp;diff=1055</id>
		<title>Ejercicios</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Ejercicios&amp;diff=1055"/>
		<updated>2021-07-24T14:46:20Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En esta sección se publicarán las relaciones de ejercicios. Las soluciones se escriben de forma colaborativa por los alumnos del curso y no deben tomarse como definitivas.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 1&amp;#039;&amp;#039;&amp;#039;: Programación funcional en Isabelle/HOL. ([[R1 |Enunciado]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 2&amp;#039;&amp;#039;&amp;#039;: Razonamiento sobre programas con Isabelle/HOL. ([[R2 |Enunciado]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 3&amp;#039;&amp;#039;&amp;#039;: Razonamiento estructurado sobre programas en Isabelle/HOL. ([[R3 |Enunciado]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Cuantificadores sobre listas. ([[R4 |Enunciado]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Recorridos de árboles. ([[R5 |Enunciado]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Deducción natural proposicional en Isabelle/HOL (1). ([[R6 |Enunciado]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 7&amp;#039;&amp;#039;&amp;#039;: Deducción natural proposicional en Isabelle/HOL (2). ([[R7 |Enunciado]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Formalización y argumentación. ([[R8 |Enunciado]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Deducción natural LPO en Isabelle/HOL. ([[R9 |Enunciado]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Verificación de la ordenación por mezcla. ([[R10 |Enunciado]]).&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Ejercicios&amp;diff=1054</id>
		<title>Ejercicios</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Ejercicios&amp;diff=1054"/>
		<updated>2021-07-24T14:44:35Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En esta sección se publicarán las relaciones de ejercicios. Las soluciones se escriben de forma colaborativa por los alumnos del curso y no deben tomarse como definitivas.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 1&amp;#039;&amp;#039;&amp;#039;: Programación funcional en Isabelle/HOL. ([[R1 |Enunciado]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 2&amp;#039;&amp;#039;&amp;#039;: Razonamiento sobre programas con Isabelle/HOL. ([[R2 |Enunciado]] y [[Relación 2 | Solución colaborativa]]). &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 3&amp;#039;&amp;#039;&amp;#039;: Razonamiento estructurado sobre programas en Isabelle/HOL. ([[R3 |Enunciado]] y [[Relación 3 | Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Cuantificadores sobre listas. ([[R4 |Enunciado]] y [[Relación 4 | Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Recorridos de árboles. ([[R5 |Enunciado]] y [[Relación 5 | Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Deducción natural proposicional en Isabelle/HOL (1). ([[R6 |Enunciado]] y [[Relación 6 | Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 7&amp;#039;&amp;#039;&amp;#039;: Deducción natural proposicional en Isabelle/HOL (2). ([[R7 |Enunciado]] y [[Relación 7 | Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Formalización y argumentación. ([[R8 |Enunciado]] y [[Relación 8 | Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Deducción natural LPO en Isabelle/HOL. ([[R9 |Enunciado]] y [[Relación 9 | Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Verificación de la ordenación por mezcla. ([[R10 |Enunciado]] y [[Relación 10 | Solución colaborativa]]).&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Ejercicios&amp;diff=1051</id>
		<title>Ejercicios</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Ejercicios&amp;diff=1051"/>
		<updated>2020-03-05T19:42:38Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En esta sección se publicarán las relaciones de ejercicios. Las soluciones se escriben de forma colaborativa por los alumnos del curso y no deben tomarse como definitivas.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 1&amp;#039;&amp;#039;&amp;#039;: Programación funcional en Isabelle/HOL. ([[R1 |Enunciado]] y [[Relación 1 | Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 2&amp;#039;&amp;#039;&amp;#039;: Razonamiento sobre programas con Isabelle/HOL. ([[R2 |Enunciado]] y [[Relación 2 | Solución colaborativa]]). &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 3&amp;#039;&amp;#039;&amp;#039;: Razonamiento estructurado sobre programas en Isabelle/HOL. ([[R3 |Enunciado]] y [[Relación 3 | Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Cuantificadores sobre listas. ([[R4 |Enunciado]] y [[Relación 4 | Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Recorridos de árboles. ([[R5 |Enunciado]] y [[Relación 5 | Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Deducción natural proposicional en Isabelle/HOL (1). ([[R6 |Enunciado]] y [[Relación 6 | Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 7&amp;#039;&amp;#039;&amp;#039;: Deducción natural proposicional en Isabelle/HOL (2). ([[R7 |Enunciado]] y [[Relación 7 | Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Formalización y argumentación. ([[R8 |Enunciado]] y [[Relación 8 | Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Deducción natural LPO en Isabelle/HOL. ([[R9 |Enunciado]] y [[Relación 9 | Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Verificación de la ordenación por mezcla. ([[R10 |Enunciado]] y [[Relación 10 | Solución colaborativa]]).&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Tema_11:_Verificaci%C3%B3n_de_la_ordenaci%C3%B3n_por_inserci%C3%B3n&amp;diff=986</id>
		<title>Tema 11: Verificación de la ordenación por inserción</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Tema_11:_Verificaci%C3%B3n_de_la_ordenaci%C3%B3n_por_inserci%C3%B3n&amp;diff=986"/>
		<updated>2020-02-13T14:19:22Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: Protegió «Tema 11: Verificación de la ordenación por inserción» ([Editar=Solo administradores] (indefinido) [Trasladar=Solo administradores] (indefinido))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isabelle&amp;quot;&amp;gt;&lt;br /&gt;
chapter ‹T11: Verificación de la ordenación por inserción›&lt;br /&gt;
&lt;br /&gt;
theory T11_Verificacion_de_la_ordenacion_por_insercion&lt;br /&gt;
imports Main&lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text ‹En este de tema se define el algoritmo de ordenación de listas &lt;br /&gt;
  por inserción y se demuestra que es correcto.›&lt;br /&gt;
&lt;br /&gt;
text ‹----------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Definir la función&lt;br /&gt;
     inserta :: int ⇒ int list ⇒ int list&lt;br /&gt;
  tal que (inserta a xs) es la lista obtenida insertando a delante del&lt;br /&gt;
  primer elemento de xs que es mayor o igual que a. Por ejemplo,&lt;br /&gt;
     inserta 3 [2,5,1,7] = [2,3,5,1,7]&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
fun inserta :: &amp;quot;int ⇒ int list ⇒ int list&amp;quot; where&lt;br /&gt;
  &amp;quot;inserta a []     = [a]&amp;quot;&lt;br /&gt;
| &amp;quot;inserta a (x#xs) = (if a ≤ x &lt;br /&gt;
                       then a # x # xs &lt;br /&gt;
                       else x # inserta a xs)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
value &amp;quot;inserta 3 [2,5,1,7] = [2,3,5,1,7]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text ‹----------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Definir la función&lt;br /&gt;
     ordena :: int list ⇒ int list&lt;br /&gt;
  tal que (ordena xs) es la lista obtenida ordenando xs por inserción. &lt;br /&gt;
  Por ejemplo, &lt;br /&gt;
     ordena [3,2,5,3] = [2,3,3,5]&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
fun ordena :: &amp;quot;int list ⇒ int list&amp;quot; where&lt;br /&gt;
  &amp;quot;ordena []     = []&amp;quot;&lt;br /&gt;
| &amp;quot;ordena (x#xs) = inserta x (ordena xs)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
value &amp;quot;ordena [3,2,5,3] = [2,3,3,5]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text ‹----------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Definir la función&lt;br /&gt;
     menor :: int ⇒ int list ⇒ bool&lt;br /&gt;
  tal que (menor a xs) se verifica si a es menor o igual que todos los&lt;br /&gt;
  elementos de xs.Por ejemplo,  &lt;br /&gt;
     menor 2 [3,2,5] = True&lt;br /&gt;
     menor 2 [3,0,5] = False&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
fun menor :: &amp;quot;int ⇒ int list ⇒ bool&amp;quot; where&lt;br /&gt;
  &amp;quot;menor a []     = True&amp;quot;&lt;br /&gt;
| &amp;quot;menor a (x#xs) = (a ≤ x ∧ menor a xs)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
value &amp;quot;menor 2 [3,2,5] = True&amp;quot;&lt;br /&gt;
value &amp;quot;menor 2 [3,0,5] = False&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text ‹----------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Definir la función&lt;br /&gt;
     ordenada :: int list ⇒ bool&lt;br /&gt;
  tal que (ordenada xs) se verifica si xs es una lista ordenada de&lt;br /&gt;
  manera creciente. Por ejemplo,  &lt;br /&gt;
     ordenada [2,3,3,5] = True &lt;br /&gt;
     ordenada [2,4,3,5] = False &lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
fun ordenada :: &amp;quot;int list ⇒ bool&amp;quot; where&lt;br /&gt;
  &amp;quot;ordenada []     = True&amp;quot;&lt;br /&gt;
| &amp;quot;ordenada (x#xs) = (menor x xs ∧ ordenada xs)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
value &amp;quot;ordenada [2,3,3,5] = True&amp;quot; &lt;br /&gt;
value &amp;quot;ordenada [2,4,3,5] = False&amp;quot; &lt;br /&gt;
&lt;br /&gt;
text ‹----------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Demostrar que si y es una cota inferior de zs y x ≤ y,&lt;br /&gt;
  entonces x es una cota inferior de zs.&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración automática es›&lt;br /&gt;
lemma menor_menor: &lt;br /&gt;
  assumes &amp;quot;x ≤ y&amp;quot;  &lt;br /&gt;
  shows   &amp;quot;menor y zs ⟶ menor x zs&amp;quot;&lt;br /&gt;
  using assms&lt;br /&gt;
  by (induct zs) auto&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración detallada es›&lt;br /&gt;
lemma menor_menor_2: &lt;br /&gt;
  assumes &amp;quot;x ≤ y&amp;quot;  &lt;br /&gt;
  shows   &amp;quot;menor y zs ⟶ menor x zs&amp;quot;&lt;br /&gt;
proof (induct zs)&lt;br /&gt;
  show &amp;quot;menor y [] ⟶ menor x []&amp;quot;&lt;br /&gt;
    by (simp only: menor.simps(1) &lt;br /&gt;
                   simp_thms(17))&lt;br /&gt;
next&lt;br /&gt;
  fix z zs&lt;br /&gt;
  assume HI: &amp;quot;menor y zs ⟶ menor x zs&amp;quot;  &lt;br /&gt;
  show &amp;quot;menor y (z # zs) ⟶ menor x (z # zs)&amp;quot;&lt;br /&gt;
  proof (rule impI)&lt;br /&gt;
    assume sup: &amp;quot;menor y (z # zs)&amp;quot;&lt;br /&gt;
    show &amp;quot;menor x (z # zs)&amp;quot;&lt;br /&gt;
    proof (simp only: menor.simps(2))&lt;br /&gt;
      show &amp;quot;x ≤ z ∧ menor x zs&amp;quot;&lt;br /&gt;
      proof (rule conjI)&lt;br /&gt;
        have &amp;quot;x ≤ y&amp;quot; &lt;br /&gt;
          using assms &lt;br /&gt;
          by this&lt;br /&gt;
        also have &amp;quot;y ≤ z&amp;quot; &lt;br /&gt;
          using sup &lt;br /&gt;
          by (simp only: menor.simps(2))&lt;br /&gt;
        finally show &amp;quot;x ≤ z&amp;quot; &lt;br /&gt;
          by this&lt;br /&gt;
      next&lt;br /&gt;
        have &amp;quot;menor y zs&amp;quot; &lt;br /&gt;
          using sup &lt;br /&gt;
          by (simp only: menor.simps(2))&lt;br /&gt;
        with HI show &amp;quot;menor x zs&amp;quot; &lt;br /&gt;
          by (rule mp)&lt;br /&gt;
      qed&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text ‹----------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Demostrar el siguiente teorema de corrección: x es una&lt;br /&gt;
  cota inferior de la lista obtenida insertando y en zs syss x ≤ y y x&lt;br /&gt;
  es una cota inferior de zs.&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración automática es›&lt;br /&gt;
lemma menor_inserta:&lt;br /&gt;
  &amp;quot;menor x (inserta y zs) = (x ≤ y ∧ menor x zs)&amp;quot;&lt;br /&gt;
  by (induct zs) auto&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración detallada es›&lt;br /&gt;
lemma menor_inserta_2: &lt;br /&gt;
  &amp;quot;menor x (inserta y zs) = (x ≤ y ∧ menor x zs)&amp;quot;&lt;br /&gt;
proof (induct zs)&lt;br /&gt;
  show &amp;quot;menor x (inserta y []) = (x ≤ y ∧ menor x [])&amp;quot;&lt;br /&gt;
    by (simp only: menor.simps(2)&lt;br /&gt;
                   inserta.simps(1))&lt;br /&gt;
next &lt;br /&gt;
  fix z zs&lt;br /&gt;
  assume HI: &amp;quot;menor x (inserta y zs) = (x ≤ y ∧ menor x zs)&amp;quot;&lt;br /&gt;
  show &amp;quot;menor x (inserta y (z#zs)) = (x ≤ y ∧ menor x (z#zs))&amp;quot; &lt;br /&gt;
  proof (cases &amp;quot;y ≤ z&amp;quot;)&lt;br /&gt;
    assume &amp;quot;y ≤ z&amp;quot;&lt;br /&gt;
    then have &amp;quot;menor x (inserta y (z#zs)) = menor x (y#z#zs)&amp;quot; &lt;br /&gt;
      by (simp only: inserta.simps(2)&lt;br /&gt;
                     if_True)&lt;br /&gt;
    also have &amp;quot;… = (x ≤ y ∧ menor x (z#zs))&amp;quot; &lt;br /&gt;
      by (simp only: menor.simps(2))&lt;br /&gt;
    finally show ?thesis &lt;br /&gt;
      by this&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;¬(y ≤ z)&amp;quot;&lt;br /&gt;
    then have &amp;quot;menor x (inserta y (z#zs)) = &lt;br /&gt;
               menor x (z # inserta y zs)&amp;quot; &lt;br /&gt;
      by (simp only: inserta.simps(2)&lt;br /&gt;
                     if_False)&lt;br /&gt;
    also have &amp;quot;… = (x ≤ z ∧ menor x (inserta y zs))&amp;quot; &lt;br /&gt;
      by (simp only: menor.simps(2))&lt;br /&gt;
    also have &amp;quot;… = (x ≤ z ∧ (x ≤ y ∧ menor x zs))&amp;quot; &lt;br /&gt;
      by (simp only: HI)&lt;br /&gt;
    also have &amp;quot;… = ((x ≤ z ∧ x ≤ y) ∧ menor x zs)&amp;quot;&lt;br /&gt;
      by (simp only: conj_assoc)&lt;br /&gt;
    also have &amp;quot;… = ((x ≤ y ∧ x ≤ z) ∧ menor x zs)&amp;quot;&lt;br /&gt;
      by (simp only: conj_commute)&lt;br /&gt;
    also have &amp;quot;… = (x ≤ y ∧ (x ≤ z ∧ menor x zs))&amp;quot;&lt;br /&gt;
      by (simp only: conj_assoc)&lt;br /&gt;
    also have &amp;quot;… = (x ≤ y ∧ menor x (z#zs))&amp;quot;&lt;br /&gt;
      by (simp only: menor.simps(2))&lt;br /&gt;
    finally show ?thesis &lt;br /&gt;
      by this&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text ‹----------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Demostrar que al insertar un elemento la lista obtenida&lt;br /&gt;
  está ordenada syss lo estaba la original.&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración automática es›&lt;br /&gt;
lemma &lt;br /&gt;
  &amp;quot;ordenada (inserta a xs) = ordenada xs&amp;quot;&lt;br /&gt;
  by (induct xs) (auto simp add: menor_menor menor_inserta)&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración estructurada es›&lt;br /&gt;
lemma &lt;br /&gt;
  &amp;quot;ordenada (inserta a xs) = ordenada xs&amp;quot;&lt;br /&gt;
proof (induct xs)&lt;br /&gt;
  case Nil&lt;br /&gt;
  then show ?case try&lt;br /&gt;
    by simp&lt;br /&gt;
next&lt;br /&gt;
  case (Cons a xs)&lt;br /&gt;
  then show ?case &lt;br /&gt;
    using menor_inserta &lt;br /&gt;
         menor_menor &lt;br /&gt;
    by auto&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ordenada_inserta:&lt;br /&gt;
  &amp;quot;ordenada (inserta a xs) = ordenada xs&amp;quot;&lt;br /&gt;
proof (induct xs)&lt;br /&gt;
  show &amp;quot;ordenada (inserta a []) = ordenada []&amp;quot;&lt;br /&gt;
  proof -&lt;br /&gt;
    have &amp;quot;ordenada (inserta a []) = ordenada [a]&amp;quot;&lt;br /&gt;
      by (simp only: inserta.simps(1))&lt;br /&gt;
    also have &amp;quot;… = (menor a [] ∧ ordenada [])&amp;quot;&lt;br /&gt;
      by (simp only: ordenada.simps(2))&lt;br /&gt;
    also have &amp;quot;… = (True ∧ ordenada [])&amp;quot;&lt;br /&gt;
      by (simp only: menor.simps(1))&lt;br /&gt;
    also have &amp;quot;… = ordenada []&amp;quot;&lt;br /&gt;
      by (simp only: simp_thms(22))&lt;br /&gt;
    finally show ?thesis&lt;br /&gt;
      by this&lt;br /&gt;
  qed&lt;br /&gt;
next&lt;br /&gt;
  fix x xs&lt;br /&gt;
  assume HI: &amp;quot;ordenada (inserta a xs) = ordenada xs&amp;quot; &lt;br /&gt;
  show &amp;quot;ordenada (inserta a (x # xs)) = ordenada (x # xs)&amp;quot; &lt;br /&gt;
  proof (cases &amp;quot;a ≤ x&amp;quot;)&lt;br /&gt;
    assume &amp;quot;a ≤ x&amp;quot;&lt;br /&gt;
    then show &amp;quot;ordenada (inserta a (x # xs)) = ordenada (x # xs)&amp;quot;&lt;br /&gt;
      using menor_menor by auto&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;¬(a ≤ x)&amp;quot;&lt;br /&gt;
    then have &amp;quot;ordenada (inserta a (x # xs)) = &lt;br /&gt;
           ordenada (x # inserta a xs)&amp;quot; by simp&lt;br /&gt;
    also have &amp;quot;… = (menor x (inserta a xs) ∧ ordenada (inserta a xs))&amp;quot; &lt;br /&gt;
      by simp&lt;br /&gt;
    also have &amp;quot;… = (menor x (inserta a xs) ∧ ordenada xs)&amp;quot; &lt;br /&gt;
      using HI by simp&lt;br /&gt;
    also have &amp;quot;… = (menor x xs ∧ ordenada xs)&amp;quot; &lt;br /&gt;
      using ‹¬(a ≤ x)› &lt;br /&gt;
      by (simp add: menor_inserta)&lt;br /&gt;
    also have &amp;quot;… = ordenada (x # xs)&amp;quot; &lt;br /&gt;
      by simp&lt;br /&gt;
    finally show &amp;quot;ordenada (inserta a (x # xs)) = ordenada (x # xs)&amp;quot; &lt;br /&gt;
      by simp&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text ‹---------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Demostrar que, para toda lista xs, (ordena xs) está&lt;br /&gt;
  ordenada. &lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración automática es›&lt;br /&gt;
theorem &lt;br /&gt;
  &amp;quot;ordenada (ordena xs)&amp;quot;&lt;br /&gt;
by (induct xs) (auto simp add: ordenada_inserta)&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración estructurada es›&lt;br /&gt;
theorem &lt;br /&gt;
  &amp;quot;ordenada (ordena xs)&amp;quot;&lt;br /&gt;
proof (induct xs) &lt;br /&gt;
  case Nil&lt;br /&gt;
  then show ?case &lt;br /&gt;
    by simp&lt;br /&gt;
next&lt;br /&gt;
  case (Cons a xs)&lt;br /&gt;
  then show ?case &lt;br /&gt;
    by (simp add: ordenada_inserta)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
theorem ordenada_ordena:&lt;br /&gt;
  &amp;quot;ordenada (ordena xs)&amp;quot;&lt;br /&gt;
proof (induct xs) &lt;br /&gt;
  show &amp;quot;ordenada (ordena [])&amp;quot; by simp&lt;br /&gt;
next&lt;br /&gt;
  fix x xs&lt;br /&gt;
  assume &amp;quot;ordenada (ordena xs)&amp;quot; &lt;br /&gt;
  then have &amp;quot;ordenada (inserta x (ordena xs))&amp;quot; &lt;br /&gt;
    by (simp add: ordenada_inserta)  &lt;br /&gt;
  then show &amp;quot;ordenada (ordena (x # xs))&amp;quot; by simp&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text ‹------------------------------------------------------------------ &lt;br /&gt;
  Nota. El teorema anterior no garantiza que ordena sea correcta, ya que&lt;br /&gt;
  puede que (ordena xs) no tenga los mismos elementos que xs. Por&lt;br /&gt;
  ejemplo, si se define (ordena xs) como [] se tiene que (ordena xs)&lt;br /&gt;
  está ordenada pero no es una ordenación de xs. &lt;br /&gt;
&lt;br /&gt;
  Para garantizarlo, definimos la función cuenta.&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
text ‹----------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Definir la función&lt;br /&gt;
     cuenta :: int list ⇒ int ⇒ nat&lt;br /&gt;
  tal que (cuenta xs y) es el número de veces que aparece el elemento y&lt;br /&gt;
  en la lista xs. Por ejemplo, &lt;br /&gt;
     cuenta [1,3,4,3,5] 3 = 2&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
fun cuenta :: &amp;quot;int list ⇒ int ⇒ nat&amp;quot; where&lt;br /&gt;
  &amp;quot;cuenta []     y = 0&amp;quot;&lt;br /&gt;
| &amp;quot;cuenta (x#xs) y = (if x=y &lt;br /&gt;
                      then Suc (cuenta xs y) &lt;br /&gt;
                      else cuenta xs y)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
value &amp;quot;cuenta [1,3,4,3,5] 3 = 2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text ‹----------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Demostrar que el número de veces que aparece y en &lt;br /&gt;
  (inserta x xs) es &lt;br /&gt;
  * uno más el número de veces que aparece en xs, si y = x; &lt;br /&gt;
  * el número de veces que aparece en xs, si y ≠ x; &lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración automática es›&lt;br /&gt;
lemma cuenta_inserta:&lt;br /&gt;
  &amp;quot;cuenta (inserta x xs) y =&lt;br /&gt;
   (if x=y then Suc (cuenta xs y) else cuenta xs y)&amp;quot;&lt;br /&gt;
  by (induct xs) auto&lt;br /&gt;
&lt;br /&gt;
text ‹----------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Demostrar que el número de veces que aparece y en &lt;br /&gt;
  (ordena xs) es el número de veces que aparece en xs.&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración automática es›&lt;br /&gt;
theorem &lt;br /&gt;
  &amp;quot;cuenta (ordena xs) y = cuenta xs y&amp;quot;&lt;br /&gt;
  by (induct xs) (auto simp add: cuenta_inserta)&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración estructurada es›&lt;br /&gt;
theorem &lt;br /&gt;
  &amp;quot;cuenta (ordena xs) y = cuenta xs y&amp;quot;&lt;br /&gt;
proof (induct xs)&lt;br /&gt;
  case Nil&lt;br /&gt;
  then show ?case &lt;br /&gt;
    by simp&lt;br /&gt;
next&lt;br /&gt;
  case (Cons a xs)&lt;br /&gt;
  then show ?case &lt;br /&gt;
    by (simp add: cuenta_inserta)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración estructurada es›&lt;br /&gt;
theorem cuenta_ordena:&lt;br /&gt;
  &amp;quot;cuenta (ordena xs) y = cuenta xs y&amp;quot;&lt;br /&gt;
proof (induct xs)&lt;br /&gt;
  show &amp;quot;cuenta (ordena []) y = cuenta [] y&amp;quot; by simp&lt;br /&gt;
next&lt;br /&gt;
  fix x xs&lt;br /&gt;
  assume HI: &amp;quot;cuenta (ordena xs) y = cuenta xs y&amp;quot;&lt;br /&gt;
  show &amp;quot;cuenta (ordena (x # xs)) y = cuenta (x # xs) y&amp;quot; &lt;br /&gt;
  proof (cases &amp;quot;x = y&amp;quot;)&lt;br /&gt;
    assume &amp;quot;x = y&amp;quot;&lt;br /&gt;
    have &amp;quot;cuenta (ordena (x # xs)) y = cuenta (inserta x (ordena xs)) y&amp;quot; &lt;br /&gt;
      by simp&lt;br /&gt;
    also have &amp;quot;… = Suc (cuenta (ordena xs) y)&amp;quot; using ‹x = y› &lt;br /&gt;
      by (simp add: cuenta_inserta) &lt;br /&gt;
    also have &amp;quot;… = Suc (cuenta xs y)&amp;quot; using HI by simp&lt;br /&gt;
    also have &amp;quot;… = cuenta (x # xs) y&amp;quot; using ‹x = y› by simp&lt;br /&gt;
    finally show &amp;quot;cuenta (ordena (x # xs)) y = cuenta (x # xs) y&amp;quot; by simp&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;x ≠ y&amp;quot;&lt;br /&gt;
    have &amp;quot;cuenta (ordena (x # xs)) y = cuenta (inserta x (ordena xs)) y&amp;quot; &lt;br /&gt;
      by simp&lt;br /&gt;
    also have &amp;quot;… = cuenta (ordena xs) y&amp;quot; using ‹x ≠ y› &lt;br /&gt;
      by (simp add: cuenta_inserta) &lt;br /&gt;
    also have &amp;quot;… = cuenta xs y&amp;quot; using HI by simp&lt;br /&gt;
    also have &amp;quot;… = cuenta (x # xs) y&amp;quot; using ‹x ≠ y› by simp&lt;br /&gt;
    finally show &amp;quot;cuenta (ordena (x # xs)) y = cuenta (x # xs) y&amp;quot; &lt;br /&gt;
      by simp&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text ‹Para exportar el código Haskell de la función snoc se usa›&lt;br /&gt;
&lt;br /&gt;
export_code ordena in Haskell &lt;br /&gt;
  module_name OrdInsercion &lt;br /&gt;
  file_prefix &amp;quot;CodigoGenerado/&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Tema_11:_Verificaci%C3%B3n_de_la_ordenaci%C3%B3n_por_inserci%C3%B3n&amp;diff=985</id>
		<title>Tema 11: Verificación de la ordenación por inserción</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Tema_11:_Verificaci%C3%B3n_de_la_ordenaci%C3%B3n_por_inserci%C3%B3n&amp;diff=985"/>
		<updated>2020-02-13T14:19:10Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isabelle&amp;quot;&amp;gt;&lt;br /&gt;
chapter ‹T11: Verificación de la ordenación por inserción›&lt;br /&gt;
&lt;br /&gt;
theory T11_Verificacion_de_la_ordenacion_por_insercion&lt;br /&gt;
imports Main&lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text ‹En este de tema se define el algoritmo de ordenación de listas &lt;br /&gt;
  por inserción y se demuestra que es correcto.›&lt;br /&gt;
&lt;br /&gt;
text ‹----------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Definir la función&lt;br /&gt;
     inserta :: int ⇒ int list ⇒ int list&lt;br /&gt;
  tal que (inserta a xs) es la lista obtenida insertando a delante del&lt;br /&gt;
  primer elemento de xs que es mayor o igual que a. Por ejemplo,&lt;br /&gt;
     inserta 3 [2,5,1,7] = [2,3,5,1,7]&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
fun inserta :: &amp;quot;int ⇒ int list ⇒ int list&amp;quot; where&lt;br /&gt;
  &amp;quot;inserta a []     = [a]&amp;quot;&lt;br /&gt;
| &amp;quot;inserta a (x#xs) = (if a ≤ x &lt;br /&gt;
                       then a # x # xs &lt;br /&gt;
                       else x # inserta a xs)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
value &amp;quot;inserta 3 [2,5,1,7] = [2,3,5,1,7]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text ‹----------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Definir la función&lt;br /&gt;
     ordena :: int list ⇒ int list&lt;br /&gt;
  tal que (ordena xs) es la lista obtenida ordenando xs por inserción. &lt;br /&gt;
  Por ejemplo, &lt;br /&gt;
     ordena [3,2,5,3] = [2,3,3,5]&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
fun ordena :: &amp;quot;int list ⇒ int list&amp;quot; where&lt;br /&gt;
  &amp;quot;ordena []     = []&amp;quot;&lt;br /&gt;
| &amp;quot;ordena (x#xs) = inserta x (ordena xs)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
value &amp;quot;ordena [3,2,5,3] = [2,3,3,5]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text ‹----------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Definir la función&lt;br /&gt;
     menor :: int ⇒ int list ⇒ bool&lt;br /&gt;
  tal que (menor a xs) se verifica si a es menor o igual que todos los&lt;br /&gt;
  elementos de xs.Por ejemplo,  &lt;br /&gt;
     menor 2 [3,2,5] = True&lt;br /&gt;
     menor 2 [3,0,5] = False&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
fun menor :: &amp;quot;int ⇒ int list ⇒ bool&amp;quot; where&lt;br /&gt;
  &amp;quot;menor a []     = True&amp;quot;&lt;br /&gt;
| &amp;quot;menor a (x#xs) = (a ≤ x ∧ menor a xs)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
value &amp;quot;menor 2 [3,2,5] = True&amp;quot;&lt;br /&gt;
value &amp;quot;menor 2 [3,0,5] = False&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text ‹----------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Definir la función&lt;br /&gt;
     ordenada :: int list ⇒ bool&lt;br /&gt;
  tal que (ordenada xs) se verifica si xs es una lista ordenada de&lt;br /&gt;
  manera creciente. Por ejemplo,  &lt;br /&gt;
     ordenada [2,3,3,5] = True &lt;br /&gt;
     ordenada [2,4,3,5] = False &lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
fun ordenada :: &amp;quot;int list ⇒ bool&amp;quot; where&lt;br /&gt;
  &amp;quot;ordenada []     = True&amp;quot;&lt;br /&gt;
| &amp;quot;ordenada (x#xs) = (menor x xs ∧ ordenada xs)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
value &amp;quot;ordenada [2,3,3,5] = True&amp;quot; &lt;br /&gt;
value &amp;quot;ordenada [2,4,3,5] = False&amp;quot; &lt;br /&gt;
&lt;br /&gt;
text ‹----------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Demostrar que si y es una cota inferior de zs y x ≤ y,&lt;br /&gt;
  entonces x es una cota inferior de zs.&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración automática es›&lt;br /&gt;
lemma menor_menor: &lt;br /&gt;
  assumes &amp;quot;x ≤ y&amp;quot;  &lt;br /&gt;
  shows   &amp;quot;menor y zs ⟶ menor x zs&amp;quot;&lt;br /&gt;
  using assms&lt;br /&gt;
  by (induct zs) auto&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración detallada es›&lt;br /&gt;
lemma menor_menor_2: &lt;br /&gt;
  assumes &amp;quot;x ≤ y&amp;quot;  &lt;br /&gt;
  shows   &amp;quot;menor y zs ⟶ menor x zs&amp;quot;&lt;br /&gt;
proof (induct zs)&lt;br /&gt;
  show &amp;quot;menor y [] ⟶ menor x []&amp;quot;&lt;br /&gt;
    by (simp only: menor.simps(1) &lt;br /&gt;
                   simp_thms(17))&lt;br /&gt;
next&lt;br /&gt;
  fix z zs&lt;br /&gt;
  assume HI: &amp;quot;menor y zs ⟶ menor x zs&amp;quot;  &lt;br /&gt;
  show &amp;quot;menor y (z # zs) ⟶ menor x (z # zs)&amp;quot;&lt;br /&gt;
  proof (rule impI)&lt;br /&gt;
    assume sup: &amp;quot;menor y (z # zs)&amp;quot;&lt;br /&gt;
    show &amp;quot;menor x (z # zs)&amp;quot;&lt;br /&gt;
    proof (simp only: menor.simps(2))&lt;br /&gt;
      show &amp;quot;x ≤ z ∧ menor x zs&amp;quot;&lt;br /&gt;
      proof (rule conjI)&lt;br /&gt;
        have &amp;quot;x ≤ y&amp;quot; &lt;br /&gt;
          using assms &lt;br /&gt;
          by this&lt;br /&gt;
        also have &amp;quot;y ≤ z&amp;quot; &lt;br /&gt;
          using sup &lt;br /&gt;
          by (simp only: menor.simps(2))&lt;br /&gt;
        finally show &amp;quot;x ≤ z&amp;quot; &lt;br /&gt;
          by this&lt;br /&gt;
      next&lt;br /&gt;
        have &amp;quot;menor y zs&amp;quot; &lt;br /&gt;
          using sup &lt;br /&gt;
          by (simp only: menor.simps(2))&lt;br /&gt;
        with HI show &amp;quot;menor x zs&amp;quot; &lt;br /&gt;
          by (rule mp)&lt;br /&gt;
      qed&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text ‹----------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Demostrar el siguiente teorema de corrección: x es una&lt;br /&gt;
  cota inferior de la lista obtenida insertando y en zs syss x ≤ y y x&lt;br /&gt;
  es una cota inferior de zs.&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración automática es›&lt;br /&gt;
lemma menor_inserta:&lt;br /&gt;
  &amp;quot;menor x (inserta y zs) = (x ≤ y ∧ menor x zs)&amp;quot;&lt;br /&gt;
  by (induct zs) auto&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración detallada es›&lt;br /&gt;
lemma menor_inserta_2: &lt;br /&gt;
  &amp;quot;menor x (inserta y zs) = (x ≤ y ∧ menor x zs)&amp;quot;&lt;br /&gt;
proof (induct zs)&lt;br /&gt;
  show &amp;quot;menor x (inserta y []) = (x ≤ y ∧ menor x [])&amp;quot;&lt;br /&gt;
    by (simp only: menor.simps(2)&lt;br /&gt;
                   inserta.simps(1))&lt;br /&gt;
next &lt;br /&gt;
  fix z zs&lt;br /&gt;
  assume HI: &amp;quot;menor x (inserta y zs) = (x ≤ y ∧ menor x zs)&amp;quot;&lt;br /&gt;
  show &amp;quot;menor x (inserta y (z#zs)) = (x ≤ y ∧ menor x (z#zs))&amp;quot; &lt;br /&gt;
  proof (cases &amp;quot;y ≤ z&amp;quot;)&lt;br /&gt;
    assume &amp;quot;y ≤ z&amp;quot;&lt;br /&gt;
    then have &amp;quot;menor x (inserta y (z#zs)) = menor x (y#z#zs)&amp;quot; &lt;br /&gt;
      by (simp only: inserta.simps(2)&lt;br /&gt;
                     if_True)&lt;br /&gt;
    also have &amp;quot;… = (x ≤ y ∧ menor x (z#zs))&amp;quot; &lt;br /&gt;
      by (simp only: menor.simps(2))&lt;br /&gt;
    finally show ?thesis &lt;br /&gt;
      by this&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;¬(y ≤ z)&amp;quot;&lt;br /&gt;
    then have &amp;quot;menor x (inserta y (z#zs)) = &lt;br /&gt;
               menor x (z # inserta y zs)&amp;quot; &lt;br /&gt;
      by (simp only: inserta.simps(2)&lt;br /&gt;
                     if_False)&lt;br /&gt;
    also have &amp;quot;… = (x ≤ z ∧ menor x (inserta y zs))&amp;quot; &lt;br /&gt;
      by (simp only: menor.simps(2))&lt;br /&gt;
    also have &amp;quot;… = (x ≤ z ∧ (x ≤ y ∧ menor x zs))&amp;quot; &lt;br /&gt;
      by (simp only: HI)&lt;br /&gt;
    also have &amp;quot;… = ((x ≤ z ∧ x ≤ y) ∧ menor x zs)&amp;quot;&lt;br /&gt;
      by (simp only: conj_assoc)&lt;br /&gt;
    also have &amp;quot;… = ((x ≤ y ∧ x ≤ z) ∧ menor x zs)&amp;quot;&lt;br /&gt;
      by (simp only: conj_commute)&lt;br /&gt;
    also have &amp;quot;… = (x ≤ y ∧ (x ≤ z ∧ menor x zs))&amp;quot;&lt;br /&gt;
      by (simp only: conj_assoc)&lt;br /&gt;
    also have &amp;quot;… = (x ≤ y ∧ menor x (z#zs))&amp;quot;&lt;br /&gt;
      by (simp only: menor.simps(2))&lt;br /&gt;
    finally show ?thesis &lt;br /&gt;
      by this&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text ‹----------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Demostrar que al insertar un elemento la lista obtenida&lt;br /&gt;
  está ordenada syss lo estaba la original.&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración automática es›&lt;br /&gt;
lemma &lt;br /&gt;
  &amp;quot;ordenada (inserta a xs) = ordenada xs&amp;quot;&lt;br /&gt;
  by (induct xs) (auto simp add: menor_menor menor_inserta)&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración estructurada es›&lt;br /&gt;
lemma &lt;br /&gt;
  &amp;quot;ordenada (inserta a xs) = ordenada xs&amp;quot;&lt;br /&gt;
proof (induct xs)&lt;br /&gt;
  case Nil&lt;br /&gt;
  then show ?case try&lt;br /&gt;
    by simp&lt;br /&gt;
next&lt;br /&gt;
  case (Cons a xs)&lt;br /&gt;
  then show ?case &lt;br /&gt;
    using menor_inserta &lt;br /&gt;
         menor_menor &lt;br /&gt;
    by auto&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ordenada_inserta:&lt;br /&gt;
  &amp;quot;ordenada (inserta a xs) = ordenada xs&amp;quot;&lt;br /&gt;
proof (induct xs)&lt;br /&gt;
  show &amp;quot;ordenada (inserta a []) = ordenada []&amp;quot;&lt;br /&gt;
  proof -&lt;br /&gt;
    have &amp;quot;ordenada (inserta a []) = ordenada [a]&amp;quot;&lt;br /&gt;
      by (simp only: inserta.simps(1))&lt;br /&gt;
    also have &amp;quot;… = (menor a [] ∧ ordenada [])&amp;quot;&lt;br /&gt;
      by (simp only: ordenada.simps(2))&lt;br /&gt;
    also have &amp;quot;… = (True ∧ ordenada [])&amp;quot;&lt;br /&gt;
      by (simp only: menor.simps(1))&lt;br /&gt;
    also have &amp;quot;… = ordenada []&amp;quot;&lt;br /&gt;
      by (simp only: simp_thms(22))&lt;br /&gt;
    finally show ?thesis&lt;br /&gt;
      by this&lt;br /&gt;
  qed&lt;br /&gt;
next&lt;br /&gt;
  fix x xs&lt;br /&gt;
  assume HI: &amp;quot;ordenada (inserta a xs) = ordenada xs&amp;quot; &lt;br /&gt;
  show &amp;quot;ordenada (inserta a (x # xs)) = ordenada (x # xs)&amp;quot; &lt;br /&gt;
  proof (cases &amp;quot;a ≤ x&amp;quot;)&lt;br /&gt;
    assume &amp;quot;a ≤ x&amp;quot;&lt;br /&gt;
    then show &amp;quot;ordenada (inserta a (x # xs)) = ordenada (x # xs)&amp;quot;&lt;br /&gt;
      using menor_menor by auto&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;¬(a ≤ x)&amp;quot;&lt;br /&gt;
    then have &amp;quot;ordenada (inserta a (x # xs)) = &lt;br /&gt;
           ordenada (x # inserta a xs)&amp;quot; by simp&lt;br /&gt;
    also have &amp;quot;… = (menor x (inserta a xs) ∧ ordenada (inserta a xs))&amp;quot; &lt;br /&gt;
      by simp&lt;br /&gt;
    also have &amp;quot;… = (menor x (inserta a xs) ∧ ordenada xs)&amp;quot; &lt;br /&gt;
      using HI by simp&lt;br /&gt;
    also have &amp;quot;… = (menor x xs ∧ ordenada xs)&amp;quot; &lt;br /&gt;
      using ‹¬(a ≤ x)› &lt;br /&gt;
      by (simp add: menor_inserta)&lt;br /&gt;
    also have &amp;quot;… = ordenada (x # xs)&amp;quot; &lt;br /&gt;
      by simp&lt;br /&gt;
    finally show &amp;quot;ordenada (inserta a (x # xs)) = ordenada (x # xs)&amp;quot; &lt;br /&gt;
      by simp&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text ‹---------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Demostrar que, para toda lista xs, (ordena xs) está&lt;br /&gt;
  ordenada. &lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración automática es›&lt;br /&gt;
theorem &lt;br /&gt;
  &amp;quot;ordenada (ordena xs)&amp;quot;&lt;br /&gt;
by (induct xs) (auto simp add: ordenada_inserta)&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración estructurada es›&lt;br /&gt;
theorem &lt;br /&gt;
  &amp;quot;ordenada (ordena xs)&amp;quot;&lt;br /&gt;
proof (induct xs) &lt;br /&gt;
  case Nil&lt;br /&gt;
  then show ?case &lt;br /&gt;
    by simp&lt;br /&gt;
next&lt;br /&gt;
  case (Cons a xs)&lt;br /&gt;
  then show ?case &lt;br /&gt;
    by (simp add: ordenada_inserta)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
theorem ordenada_ordena:&lt;br /&gt;
  &amp;quot;ordenada (ordena xs)&amp;quot;&lt;br /&gt;
proof (induct xs) &lt;br /&gt;
  show &amp;quot;ordenada (ordena [])&amp;quot; by simp&lt;br /&gt;
next&lt;br /&gt;
  fix x xs&lt;br /&gt;
  assume &amp;quot;ordenada (ordena xs)&amp;quot; &lt;br /&gt;
  then have &amp;quot;ordenada (inserta x (ordena xs))&amp;quot; &lt;br /&gt;
    by (simp add: ordenada_inserta)  &lt;br /&gt;
  then show &amp;quot;ordenada (ordena (x # xs))&amp;quot; by simp&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text ‹------------------------------------------------------------------ &lt;br /&gt;
  Nota. El teorema anterior no garantiza que ordena sea correcta, ya que&lt;br /&gt;
  puede que (ordena xs) no tenga los mismos elementos que xs. Por&lt;br /&gt;
  ejemplo, si se define (ordena xs) como [] se tiene que (ordena xs)&lt;br /&gt;
  está ordenada pero no es una ordenación de xs. &lt;br /&gt;
&lt;br /&gt;
  Para garantizarlo, definimos la función cuenta.&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
text ‹----------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Definir la función&lt;br /&gt;
     cuenta :: int list ⇒ int ⇒ nat&lt;br /&gt;
  tal que (cuenta xs y) es el número de veces que aparece el elemento y&lt;br /&gt;
  en la lista xs. Por ejemplo, &lt;br /&gt;
     cuenta [1,3,4,3,5] 3 = 2&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
fun cuenta :: &amp;quot;int list ⇒ int ⇒ nat&amp;quot; where&lt;br /&gt;
  &amp;quot;cuenta []     y = 0&amp;quot;&lt;br /&gt;
| &amp;quot;cuenta (x#xs) y = (if x=y &lt;br /&gt;
                      then Suc (cuenta xs y) &lt;br /&gt;
                      else cuenta xs y)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
value &amp;quot;cuenta [1,3,4,3,5] 3 = 2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text ‹----------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Demostrar que el número de veces que aparece y en &lt;br /&gt;
  (inserta x xs) es &lt;br /&gt;
  * uno más el número de veces que aparece en xs, si y = x; &lt;br /&gt;
  * el número de veces que aparece en xs, si y ≠ x; &lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración automática es›&lt;br /&gt;
lemma cuenta_inserta:&lt;br /&gt;
  &amp;quot;cuenta (inserta x xs) y =&lt;br /&gt;
   (if x=y then Suc (cuenta xs y) else cuenta xs y)&amp;quot;&lt;br /&gt;
  by (induct xs) auto&lt;br /&gt;
&lt;br /&gt;
text ‹----------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Demostrar que el número de veces que aparece y en &lt;br /&gt;
  (ordena xs) es el número de veces que aparece en xs.&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración automática es›&lt;br /&gt;
theorem &lt;br /&gt;
  &amp;quot;cuenta (ordena xs) y = cuenta xs y&amp;quot;&lt;br /&gt;
  by (induct xs) (auto simp add: cuenta_inserta)&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración estructurada es›&lt;br /&gt;
theorem &lt;br /&gt;
  &amp;quot;cuenta (ordena xs) y = cuenta xs y&amp;quot;&lt;br /&gt;
proof (induct xs)&lt;br /&gt;
  case Nil&lt;br /&gt;
  then show ?case &lt;br /&gt;
    by simp&lt;br /&gt;
next&lt;br /&gt;
  case (Cons a xs)&lt;br /&gt;
  then show ?case &lt;br /&gt;
    by (simp add: cuenta_inserta)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración estructurada es›&lt;br /&gt;
theorem cuenta_ordena:&lt;br /&gt;
  &amp;quot;cuenta (ordena xs) y = cuenta xs y&amp;quot;&lt;br /&gt;
proof (induct xs)&lt;br /&gt;
  show &amp;quot;cuenta (ordena []) y = cuenta [] y&amp;quot; by simp&lt;br /&gt;
next&lt;br /&gt;
  fix x xs&lt;br /&gt;
  assume HI: &amp;quot;cuenta (ordena xs) y = cuenta xs y&amp;quot;&lt;br /&gt;
  show &amp;quot;cuenta (ordena (x # xs)) y = cuenta (x # xs) y&amp;quot; &lt;br /&gt;
  proof (cases &amp;quot;x = y&amp;quot;)&lt;br /&gt;
    assume &amp;quot;x = y&amp;quot;&lt;br /&gt;
    have &amp;quot;cuenta (ordena (x # xs)) y = cuenta (inserta x (ordena xs)) y&amp;quot; &lt;br /&gt;
      by simp&lt;br /&gt;
    also have &amp;quot;… = Suc (cuenta (ordena xs) y)&amp;quot; using ‹x = y› &lt;br /&gt;
      by (simp add: cuenta_inserta) &lt;br /&gt;
    also have &amp;quot;… = Suc (cuenta xs y)&amp;quot; using HI by simp&lt;br /&gt;
    also have &amp;quot;… = cuenta (x # xs) y&amp;quot; using ‹x = y› by simp&lt;br /&gt;
    finally show &amp;quot;cuenta (ordena (x # xs)) y = cuenta (x # xs) y&amp;quot; by simp&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;x ≠ y&amp;quot;&lt;br /&gt;
    have &amp;quot;cuenta (ordena (x # xs)) y = cuenta (inserta x (ordena xs)) y&amp;quot; &lt;br /&gt;
      by simp&lt;br /&gt;
    also have &amp;quot;… = cuenta (ordena xs) y&amp;quot; using ‹x ≠ y› &lt;br /&gt;
      by (simp add: cuenta_inserta) &lt;br /&gt;
    also have &amp;quot;… = cuenta xs y&amp;quot; using HI by simp&lt;br /&gt;
    also have &amp;quot;… = cuenta (x # xs) y&amp;quot; using ‹x ≠ y› by simp&lt;br /&gt;
    finally show &amp;quot;cuenta (ordena (x # xs)) y = cuenta (x # xs) y&amp;quot; &lt;br /&gt;
      by simp&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text ‹Para exportar el código Haskell de la función snoc se usa›&lt;br /&gt;
&lt;br /&gt;
export_code ordena in Haskell &lt;br /&gt;
  module_name OrdInsercion &lt;br /&gt;
  file_prefix &amp;quot;CodigoGenerado/&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Tema_11:_Verificaci%C3%B3n_de_la_ordenaci%C3%B3n_por_inserci%C3%B3n&amp;diff=984</id>
		<title>Tema 11: Verificación de la ordenación por inserción</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Tema_11:_Verificaci%C3%B3n_de_la_ordenaci%C3%B3n_por_inserci%C3%B3n&amp;diff=984"/>
		<updated>2020-02-13T14:18:56Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: Página creada con «&amp;lt;soure lang=&amp;quot;isabelle&amp;quot;&amp;gt; chapter ‹T11: Verificación de la ordenación por inserción›  theory T11_Verificacion_de_la_ordenacion_por_insercion imports Main begin  text…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;soure lang=&amp;quot;isabelle&amp;quot;&amp;gt;&lt;br /&gt;
chapter ‹T11: Verificación de la ordenación por inserción›&lt;br /&gt;
&lt;br /&gt;
theory T11_Verificacion_de_la_ordenacion_por_insercion&lt;br /&gt;
imports Main&lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text ‹En este de tema se define el algoritmo de ordenación de listas &lt;br /&gt;
  por inserción y se demuestra que es correcto.›&lt;br /&gt;
&lt;br /&gt;
text ‹----------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Definir la función&lt;br /&gt;
     inserta :: int ⇒ int list ⇒ int list&lt;br /&gt;
  tal que (inserta a xs) es la lista obtenida insertando a delante del&lt;br /&gt;
  primer elemento de xs que es mayor o igual que a. Por ejemplo,&lt;br /&gt;
     inserta 3 [2,5,1,7] = [2,3,5,1,7]&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
fun inserta :: &amp;quot;int ⇒ int list ⇒ int list&amp;quot; where&lt;br /&gt;
  &amp;quot;inserta a []     = [a]&amp;quot;&lt;br /&gt;
| &amp;quot;inserta a (x#xs) = (if a ≤ x &lt;br /&gt;
                       then a # x # xs &lt;br /&gt;
                       else x # inserta a xs)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
value &amp;quot;inserta 3 [2,5,1,7] = [2,3,5,1,7]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text ‹----------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Definir la función&lt;br /&gt;
     ordena :: int list ⇒ int list&lt;br /&gt;
  tal que (ordena xs) es la lista obtenida ordenando xs por inserción. &lt;br /&gt;
  Por ejemplo, &lt;br /&gt;
     ordena [3,2,5,3] = [2,3,3,5]&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
fun ordena :: &amp;quot;int list ⇒ int list&amp;quot; where&lt;br /&gt;
  &amp;quot;ordena []     = []&amp;quot;&lt;br /&gt;
| &amp;quot;ordena (x#xs) = inserta x (ordena xs)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
value &amp;quot;ordena [3,2,5,3] = [2,3,3,5]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text ‹----------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Definir la función&lt;br /&gt;
     menor :: int ⇒ int list ⇒ bool&lt;br /&gt;
  tal que (menor a xs) se verifica si a es menor o igual que todos los&lt;br /&gt;
  elementos de xs.Por ejemplo,  &lt;br /&gt;
     menor 2 [3,2,5] = True&lt;br /&gt;
     menor 2 [3,0,5] = False&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
fun menor :: &amp;quot;int ⇒ int list ⇒ bool&amp;quot; where&lt;br /&gt;
  &amp;quot;menor a []     = True&amp;quot;&lt;br /&gt;
| &amp;quot;menor a (x#xs) = (a ≤ x ∧ menor a xs)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
value &amp;quot;menor 2 [3,2,5] = True&amp;quot;&lt;br /&gt;
value &amp;quot;menor 2 [3,0,5] = False&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text ‹----------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Definir la función&lt;br /&gt;
     ordenada :: int list ⇒ bool&lt;br /&gt;
  tal que (ordenada xs) se verifica si xs es una lista ordenada de&lt;br /&gt;
  manera creciente. Por ejemplo,  &lt;br /&gt;
     ordenada [2,3,3,5] = True &lt;br /&gt;
     ordenada [2,4,3,5] = False &lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
fun ordenada :: &amp;quot;int list ⇒ bool&amp;quot; where&lt;br /&gt;
  &amp;quot;ordenada []     = True&amp;quot;&lt;br /&gt;
| &amp;quot;ordenada (x#xs) = (menor x xs ∧ ordenada xs)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
value &amp;quot;ordenada [2,3,3,5] = True&amp;quot; &lt;br /&gt;
value &amp;quot;ordenada [2,4,3,5] = False&amp;quot; &lt;br /&gt;
&lt;br /&gt;
text ‹----------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Demostrar que si y es una cota inferior de zs y x ≤ y,&lt;br /&gt;
  entonces x es una cota inferior de zs.&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración automática es›&lt;br /&gt;
lemma menor_menor: &lt;br /&gt;
  assumes &amp;quot;x ≤ y&amp;quot;  &lt;br /&gt;
  shows   &amp;quot;menor y zs ⟶ menor x zs&amp;quot;&lt;br /&gt;
  using assms&lt;br /&gt;
  by (induct zs) auto&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración detallada es›&lt;br /&gt;
lemma menor_menor_2: &lt;br /&gt;
  assumes &amp;quot;x ≤ y&amp;quot;  &lt;br /&gt;
  shows   &amp;quot;menor y zs ⟶ menor x zs&amp;quot;&lt;br /&gt;
proof (induct zs)&lt;br /&gt;
  show &amp;quot;menor y [] ⟶ menor x []&amp;quot;&lt;br /&gt;
    by (simp only: menor.simps(1) &lt;br /&gt;
                   simp_thms(17))&lt;br /&gt;
next&lt;br /&gt;
  fix z zs&lt;br /&gt;
  assume HI: &amp;quot;menor y zs ⟶ menor x zs&amp;quot;  &lt;br /&gt;
  show &amp;quot;menor y (z # zs) ⟶ menor x (z # zs)&amp;quot;&lt;br /&gt;
  proof (rule impI)&lt;br /&gt;
    assume sup: &amp;quot;menor y (z # zs)&amp;quot;&lt;br /&gt;
    show &amp;quot;menor x (z # zs)&amp;quot;&lt;br /&gt;
    proof (simp only: menor.simps(2))&lt;br /&gt;
      show &amp;quot;x ≤ z ∧ menor x zs&amp;quot;&lt;br /&gt;
      proof (rule conjI)&lt;br /&gt;
        have &amp;quot;x ≤ y&amp;quot; &lt;br /&gt;
          using assms &lt;br /&gt;
          by this&lt;br /&gt;
        also have &amp;quot;y ≤ z&amp;quot; &lt;br /&gt;
          using sup &lt;br /&gt;
          by (simp only: menor.simps(2))&lt;br /&gt;
        finally show &amp;quot;x ≤ z&amp;quot; &lt;br /&gt;
          by this&lt;br /&gt;
      next&lt;br /&gt;
        have &amp;quot;menor y zs&amp;quot; &lt;br /&gt;
          using sup &lt;br /&gt;
          by (simp only: menor.simps(2))&lt;br /&gt;
        with HI show &amp;quot;menor x zs&amp;quot; &lt;br /&gt;
          by (rule mp)&lt;br /&gt;
      qed&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text ‹----------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Demostrar el siguiente teorema de corrección: x es una&lt;br /&gt;
  cota inferior de la lista obtenida insertando y en zs syss x ≤ y y x&lt;br /&gt;
  es una cota inferior de zs.&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración automática es›&lt;br /&gt;
lemma menor_inserta:&lt;br /&gt;
  &amp;quot;menor x (inserta y zs) = (x ≤ y ∧ menor x zs)&amp;quot;&lt;br /&gt;
  by (induct zs) auto&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración detallada es›&lt;br /&gt;
lemma menor_inserta_2: &lt;br /&gt;
  &amp;quot;menor x (inserta y zs) = (x ≤ y ∧ menor x zs)&amp;quot;&lt;br /&gt;
proof (induct zs)&lt;br /&gt;
  show &amp;quot;menor x (inserta y []) = (x ≤ y ∧ menor x [])&amp;quot;&lt;br /&gt;
    by (simp only: menor.simps(2)&lt;br /&gt;
                   inserta.simps(1))&lt;br /&gt;
next &lt;br /&gt;
  fix z zs&lt;br /&gt;
  assume HI: &amp;quot;menor x (inserta y zs) = (x ≤ y ∧ menor x zs)&amp;quot;&lt;br /&gt;
  show &amp;quot;menor x (inserta y (z#zs)) = (x ≤ y ∧ menor x (z#zs))&amp;quot; &lt;br /&gt;
  proof (cases &amp;quot;y ≤ z&amp;quot;)&lt;br /&gt;
    assume &amp;quot;y ≤ z&amp;quot;&lt;br /&gt;
    then have &amp;quot;menor x (inserta y (z#zs)) = menor x (y#z#zs)&amp;quot; &lt;br /&gt;
      by (simp only: inserta.simps(2)&lt;br /&gt;
                     if_True)&lt;br /&gt;
    also have &amp;quot;… = (x ≤ y ∧ menor x (z#zs))&amp;quot; &lt;br /&gt;
      by (simp only: menor.simps(2))&lt;br /&gt;
    finally show ?thesis &lt;br /&gt;
      by this&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;¬(y ≤ z)&amp;quot;&lt;br /&gt;
    then have &amp;quot;menor x (inserta y (z#zs)) = &lt;br /&gt;
               menor x (z # inserta y zs)&amp;quot; &lt;br /&gt;
      by (simp only: inserta.simps(2)&lt;br /&gt;
                     if_False)&lt;br /&gt;
    also have &amp;quot;… = (x ≤ z ∧ menor x (inserta y zs))&amp;quot; &lt;br /&gt;
      by (simp only: menor.simps(2))&lt;br /&gt;
    also have &amp;quot;… = (x ≤ z ∧ (x ≤ y ∧ menor x zs))&amp;quot; &lt;br /&gt;
      by (simp only: HI)&lt;br /&gt;
    also have &amp;quot;… = ((x ≤ z ∧ x ≤ y) ∧ menor x zs)&amp;quot;&lt;br /&gt;
      by (simp only: conj_assoc)&lt;br /&gt;
    also have &amp;quot;… = ((x ≤ y ∧ x ≤ z) ∧ menor x zs)&amp;quot;&lt;br /&gt;
      by (simp only: conj_commute)&lt;br /&gt;
    also have &amp;quot;… = (x ≤ y ∧ (x ≤ z ∧ menor x zs))&amp;quot;&lt;br /&gt;
      by (simp only: conj_assoc)&lt;br /&gt;
    also have &amp;quot;… = (x ≤ y ∧ menor x (z#zs))&amp;quot;&lt;br /&gt;
      by (simp only: menor.simps(2))&lt;br /&gt;
    finally show ?thesis &lt;br /&gt;
      by this&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text ‹----------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Demostrar que al insertar un elemento la lista obtenida&lt;br /&gt;
  está ordenada syss lo estaba la original.&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración automática es›&lt;br /&gt;
lemma &lt;br /&gt;
  &amp;quot;ordenada (inserta a xs) = ordenada xs&amp;quot;&lt;br /&gt;
  by (induct xs) (auto simp add: menor_menor menor_inserta)&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración estructurada es›&lt;br /&gt;
lemma &lt;br /&gt;
  &amp;quot;ordenada (inserta a xs) = ordenada xs&amp;quot;&lt;br /&gt;
proof (induct xs)&lt;br /&gt;
  case Nil&lt;br /&gt;
  then show ?case try&lt;br /&gt;
    by simp&lt;br /&gt;
next&lt;br /&gt;
  case (Cons a xs)&lt;br /&gt;
  then show ?case &lt;br /&gt;
    using menor_inserta &lt;br /&gt;
         menor_menor &lt;br /&gt;
    by auto&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ordenada_inserta:&lt;br /&gt;
  &amp;quot;ordenada (inserta a xs) = ordenada xs&amp;quot;&lt;br /&gt;
proof (induct xs)&lt;br /&gt;
  show &amp;quot;ordenada (inserta a []) = ordenada []&amp;quot;&lt;br /&gt;
  proof -&lt;br /&gt;
    have &amp;quot;ordenada (inserta a []) = ordenada [a]&amp;quot;&lt;br /&gt;
      by (simp only: inserta.simps(1))&lt;br /&gt;
    also have &amp;quot;… = (menor a [] ∧ ordenada [])&amp;quot;&lt;br /&gt;
      by (simp only: ordenada.simps(2))&lt;br /&gt;
    also have &amp;quot;… = (True ∧ ordenada [])&amp;quot;&lt;br /&gt;
      by (simp only: menor.simps(1))&lt;br /&gt;
    also have &amp;quot;… = ordenada []&amp;quot;&lt;br /&gt;
      by (simp only: simp_thms(22))&lt;br /&gt;
    finally show ?thesis&lt;br /&gt;
      by this&lt;br /&gt;
  qed&lt;br /&gt;
next&lt;br /&gt;
  fix x xs&lt;br /&gt;
  assume HI: &amp;quot;ordenada (inserta a xs) = ordenada xs&amp;quot; &lt;br /&gt;
  show &amp;quot;ordenada (inserta a (x # xs)) = ordenada (x # xs)&amp;quot; &lt;br /&gt;
  proof (cases &amp;quot;a ≤ x&amp;quot;)&lt;br /&gt;
    assume &amp;quot;a ≤ x&amp;quot;&lt;br /&gt;
    then show &amp;quot;ordenada (inserta a (x # xs)) = ordenada (x # xs)&amp;quot;&lt;br /&gt;
      using menor_menor by auto&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;¬(a ≤ x)&amp;quot;&lt;br /&gt;
    then have &amp;quot;ordenada (inserta a (x # xs)) = &lt;br /&gt;
           ordenada (x # inserta a xs)&amp;quot; by simp&lt;br /&gt;
    also have &amp;quot;… = (menor x (inserta a xs) ∧ ordenada (inserta a xs))&amp;quot; &lt;br /&gt;
      by simp&lt;br /&gt;
    also have &amp;quot;… = (menor x (inserta a xs) ∧ ordenada xs)&amp;quot; &lt;br /&gt;
      using HI by simp&lt;br /&gt;
    also have &amp;quot;… = (menor x xs ∧ ordenada xs)&amp;quot; &lt;br /&gt;
      using ‹¬(a ≤ x)› &lt;br /&gt;
      by (simp add: menor_inserta)&lt;br /&gt;
    also have &amp;quot;… = ordenada (x # xs)&amp;quot; &lt;br /&gt;
      by simp&lt;br /&gt;
    finally show &amp;quot;ordenada (inserta a (x # xs)) = ordenada (x # xs)&amp;quot; &lt;br /&gt;
      by simp&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text ‹---------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Demostrar que, para toda lista xs, (ordena xs) está&lt;br /&gt;
  ordenada. &lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración automática es›&lt;br /&gt;
theorem &lt;br /&gt;
  &amp;quot;ordenada (ordena xs)&amp;quot;&lt;br /&gt;
by (induct xs) (auto simp add: ordenada_inserta)&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración estructurada es›&lt;br /&gt;
theorem &lt;br /&gt;
  &amp;quot;ordenada (ordena xs)&amp;quot;&lt;br /&gt;
proof (induct xs) &lt;br /&gt;
  case Nil&lt;br /&gt;
  then show ?case &lt;br /&gt;
    by simp&lt;br /&gt;
next&lt;br /&gt;
  case (Cons a xs)&lt;br /&gt;
  then show ?case &lt;br /&gt;
    by (simp add: ordenada_inserta)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
theorem ordenada_ordena:&lt;br /&gt;
  &amp;quot;ordenada (ordena xs)&amp;quot;&lt;br /&gt;
proof (induct xs) &lt;br /&gt;
  show &amp;quot;ordenada (ordena [])&amp;quot; by simp&lt;br /&gt;
next&lt;br /&gt;
  fix x xs&lt;br /&gt;
  assume &amp;quot;ordenada (ordena xs)&amp;quot; &lt;br /&gt;
  then have &amp;quot;ordenada (inserta x (ordena xs))&amp;quot; &lt;br /&gt;
    by (simp add: ordenada_inserta)  &lt;br /&gt;
  then show &amp;quot;ordenada (ordena (x # xs))&amp;quot; by simp&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text ‹------------------------------------------------------------------ &lt;br /&gt;
  Nota. El teorema anterior no garantiza que ordena sea correcta, ya que&lt;br /&gt;
  puede que (ordena xs) no tenga los mismos elementos que xs. Por&lt;br /&gt;
  ejemplo, si se define (ordena xs) como [] se tiene que (ordena xs)&lt;br /&gt;
  está ordenada pero no es una ordenación de xs. &lt;br /&gt;
&lt;br /&gt;
  Para garantizarlo, definimos la función cuenta.&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
text ‹----------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Definir la función&lt;br /&gt;
     cuenta :: int list ⇒ int ⇒ nat&lt;br /&gt;
  tal que (cuenta xs y) es el número de veces que aparece el elemento y&lt;br /&gt;
  en la lista xs. Por ejemplo, &lt;br /&gt;
     cuenta [1,3,4,3,5] 3 = 2&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
fun cuenta :: &amp;quot;int list ⇒ int ⇒ nat&amp;quot; where&lt;br /&gt;
  &amp;quot;cuenta []     y = 0&amp;quot;&lt;br /&gt;
| &amp;quot;cuenta (x#xs) y = (if x=y &lt;br /&gt;
                      then Suc (cuenta xs y) &lt;br /&gt;
                      else cuenta xs y)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
value &amp;quot;cuenta [1,3,4,3,5] 3 = 2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text ‹----------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Demostrar que el número de veces que aparece y en &lt;br /&gt;
  (inserta x xs) es &lt;br /&gt;
  * uno más el número de veces que aparece en xs, si y = x; &lt;br /&gt;
  * el número de veces que aparece en xs, si y ≠ x; &lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración automática es›&lt;br /&gt;
lemma cuenta_inserta:&lt;br /&gt;
  &amp;quot;cuenta (inserta x xs) y =&lt;br /&gt;
   (if x=y then Suc (cuenta xs y) else cuenta xs y)&amp;quot;&lt;br /&gt;
  by (induct xs) auto&lt;br /&gt;
&lt;br /&gt;
text ‹----------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Demostrar que el número de veces que aparece y en &lt;br /&gt;
  (ordena xs) es el número de veces que aparece en xs.&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración automática es›&lt;br /&gt;
theorem &lt;br /&gt;
  &amp;quot;cuenta (ordena xs) y = cuenta xs y&amp;quot;&lt;br /&gt;
  by (induct xs) (auto simp add: cuenta_inserta)&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración estructurada es›&lt;br /&gt;
theorem &lt;br /&gt;
  &amp;quot;cuenta (ordena xs) y = cuenta xs y&amp;quot;&lt;br /&gt;
proof (induct xs)&lt;br /&gt;
  case Nil&lt;br /&gt;
  then show ?case &lt;br /&gt;
    by simp&lt;br /&gt;
next&lt;br /&gt;
  case (Cons a xs)&lt;br /&gt;
  then show ?case &lt;br /&gt;
    by (simp add: cuenta_inserta)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración estructurada es›&lt;br /&gt;
theorem cuenta_ordena:&lt;br /&gt;
  &amp;quot;cuenta (ordena xs) y = cuenta xs y&amp;quot;&lt;br /&gt;
proof (induct xs)&lt;br /&gt;
  show &amp;quot;cuenta (ordena []) y = cuenta [] y&amp;quot; by simp&lt;br /&gt;
next&lt;br /&gt;
  fix x xs&lt;br /&gt;
  assume HI: &amp;quot;cuenta (ordena xs) y = cuenta xs y&amp;quot;&lt;br /&gt;
  show &amp;quot;cuenta (ordena (x # xs)) y = cuenta (x # xs) y&amp;quot; &lt;br /&gt;
  proof (cases &amp;quot;x = y&amp;quot;)&lt;br /&gt;
    assume &amp;quot;x = y&amp;quot;&lt;br /&gt;
    have &amp;quot;cuenta (ordena (x # xs)) y = cuenta (inserta x (ordena xs)) y&amp;quot; &lt;br /&gt;
      by simp&lt;br /&gt;
    also have &amp;quot;… = Suc (cuenta (ordena xs) y)&amp;quot; using ‹x = y› &lt;br /&gt;
      by (simp add: cuenta_inserta) &lt;br /&gt;
    also have &amp;quot;… = Suc (cuenta xs y)&amp;quot; using HI by simp&lt;br /&gt;
    also have &amp;quot;… = cuenta (x # xs) y&amp;quot; using ‹x = y› by simp&lt;br /&gt;
    finally show &amp;quot;cuenta (ordena (x # xs)) y = cuenta (x # xs) y&amp;quot; by simp&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;x ≠ y&amp;quot;&lt;br /&gt;
    have &amp;quot;cuenta (ordena (x # xs)) y = cuenta (inserta x (ordena xs)) y&amp;quot; &lt;br /&gt;
      by simp&lt;br /&gt;
    also have &amp;quot;… = cuenta (ordena xs) y&amp;quot; using ‹x ≠ y› &lt;br /&gt;
      by (simp add: cuenta_inserta) &lt;br /&gt;
    also have &amp;quot;… = cuenta xs y&amp;quot; using HI by simp&lt;br /&gt;
    also have &amp;quot;… = cuenta (x # xs) y&amp;quot; using ‹x ≠ y› by simp&lt;br /&gt;
    finally show &amp;quot;cuenta (ordena (x # xs)) y = cuenta (x # xs) y&amp;quot; &lt;br /&gt;
      by simp&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text ‹Para exportar el código Haskell de la función snoc se usa›&lt;br /&gt;
&lt;br /&gt;
export_code ordena in Haskell &lt;br /&gt;
  module_name OrdInsercion &lt;br /&gt;
  file_prefix &amp;quot;CodigoGenerado/&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Tema_10:_Caso_de_estudio:_Compilaci%C3%B3n_de_expresiones&amp;diff=983</id>
		<title>Tema 10: Caso de estudio: Compilación de expresiones</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Tema_10:_Caso_de_estudio:_Compilaci%C3%B3n_de_expresiones&amp;diff=983"/>
		<updated>2020-02-13T14:17:47Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: Protegió «Tema 10: Caso de estudio: Compilación de expresiones» ([Editar=Solo administradores] (indefinido) [Trasladar=Solo administradores] (indefinido))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isabelle&amp;quot;&amp;gt;&lt;br /&gt;
chapter ‹Tema 10: Caso de estudio: Compilación de expresiones›&lt;br /&gt;
&lt;br /&gt;
theory T10_Caso_de_estudio_Compilacion_de_expresiones&lt;br /&gt;
&lt;br /&gt;
imports Main&lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
declare [[names_short]]&lt;br /&gt;
&lt;br /&gt;
text ‹El objetivo de este tema es contruir un compilador de expresiones&lt;br /&gt;
  genéricas (construidas con variables, constantes y operaciones&lt;br /&gt;
  binarias) a una máquina de pila y demostrar su corrección.›&lt;br /&gt;
&lt;br /&gt;
section ‹Las expresiones y el intérprete›&lt;br /&gt;
&lt;br /&gt;
text ‹Definición. Las expresiones son las constantes, las variables&lt;br /&gt;
  (representadas por números naturales) y las aplicaciones de operadores&lt;br /&gt;
  binarios a dos expresiones.›&lt;br /&gt;
&lt;br /&gt;
type_synonym &amp;#039;v binop = &amp;quot;&amp;#039;v ⇒ &amp;#039;v ⇒ &amp;#039;v&amp;quot;&lt;br /&gt;
&lt;br /&gt;
datatype &amp;#039;v expr = &lt;br /&gt;
  Const &amp;#039;v &lt;br /&gt;
| Var nat &lt;br /&gt;
| App &amp;quot;&amp;#039;v binop&amp;quot; &amp;quot;&amp;#039;v expr&amp;quot; &amp;quot;&amp;#039;v expr&amp;quot; &lt;br /&gt;
&lt;br /&gt;
text ‹Definición. [Intérprete] &lt;br /&gt;
  La función &amp;quot;valor&amp;quot; toma como argumentos una expresión y un entorno&lt;br /&gt;
  (i.e. una aplicación de las variables en elementos del lenguaje) y&lt;br /&gt;
  devuelve el valor de la expresión en el entorno.›&lt;br /&gt;
&lt;br /&gt;
fun valor :: &amp;quot;&amp;#039;v expr ⇒ (nat ⇒ &amp;#039;v) ⇒ &amp;#039;v&amp;quot; where&lt;br /&gt;
  &amp;quot;valor (Const b)     ent = b&amp;quot;&lt;br /&gt;
| &amp;quot;valor (Var x)       ent = ent x&amp;quot;&lt;br /&gt;
| &amp;quot;valor (App f e1 e2) ent = (f (valor e1 ent) (valor e2 ent))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text ‹Ejemplo. A continuación mostramos algunos ejemplos de evaluación &lt;br /&gt;
  con el intérprete.›&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  &amp;quot;valor (Const 3) id = 3 ∧&lt;br /&gt;
   valor (Var 2) id = 2 ∧&lt;br /&gt;
   valor (Var 2) (λx. x+1) = 3 ∧ &lt;br /&gt;
   valor (App (+) (Const 3) (Var 2)) (λx. x+1) = 6 ∧&lt;br /&gt;
   valor (App (+) (Const 3) (Var 2)) (λx. x+4) = 9&amp;quot; &lt;br /&gt;
  by simp&lt;br /&gt;
&lt;br /&gt;
section ‹La máquina de pila›&lt;br /&gt;
&lt;br /&gt;
text ‹Nota. La máquina de pila tiene tres clases de intrucciones:&lt;br /&gt;
  · cargar en la pila una constante,&lt;br /&gt;
  · cargar en la pila el contenido de una dirección y&lt;br /&gt;
  · aplicar un operador binario a los dos elementos superiores de la &lt;br /&gt;
    pila.›&lt;br /&gt;
&lt;br /&gt;
datatype &amp;#039;v instr = &lt;br /&gt;
  IConst &amp;#039;v &lt;br /&gt;
| ILoad nat &lt;br /&gt;
| IApp &amp;quot;&amp;#039;v binop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text ‹Definición. [Ejecución]&lt;br /&gt;
  La ejecución de la máquina de pila se modeliza mediante la función &lt;br /&gt;
  &amp;quot;ejec&amp;quot; que toma una lista de intrucciones, una memoria (representada &lt;br /&gt;
  como una función de las direcciones a los valores, análogamente a los &lt;br /&gt;
  entornos) y una pila (representada como una lista) y devuelve la pila&lt;br /&gt;
  al final de la ejecución.›&lt;br /&gt;
&lt;br /&gt;
fun ejec :: &amp;quot;&amp;#039;v instr list ⇒ (nat ⇒ &amp;#039;v) ⇒ &amp;#039;v list ⇒ &amp;#039;v list&amp;quot; where&lt;br /&gt;
  &amp;quot;ejec []     ent vs = vs&amp;quot;&lt;br /&gt;
| &amp;quot;ejec (i#is) ent vs = &lt;br /&gt;
     (case i of&lt;br /&gt;
        IConst v ⇒ ejec is ent (v#vs)&lt;br /&gt;
      | ILoad x  ⇒ ejec is ent ((ent x)#vs)&lt;br /&gt;
      | IApp f   ⇒ ejec is ent ((f (hd vs) (hd (tl vs)))#(tl(tl vs))))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text ‹  A continuación se muestran ejemplos de ejecución.›&lt;br /&gt;
&lt;br /&gt;
lemma&lt;br /&gt;
  &amp;quot;ejec [IConst 3]          id                  [7] = [3,7] ∧&lt;br /&gt;
   ejec [ILoad 2, IConst 3] id                  [7] = [3,2,7] ∧&lt;br /&gt;
   ejec [ILoad 2, IConst 3] (λx. x+4)           [7] = [3,6,7] ∧&lt;br /&gt;
   ejec [ILoad 2, IConst 3, IApp (+)] (λx. x+4) [7] = [9,7]&amp;quot;&lt;br /&gt;
  by simp&lt;br /&gt;
&lt;br /&gt;
section ‹El compilador›&lt;br /&gt;
&lt;br /&gt;
text ‹Definición. El compilador &amp;quot;comp&amp;quot; traduce una expresión en una &lt;br /&gt;
  lista de instrucciones.›&lt;br /&gt;
&lt;br /&gt;
fun comp :: &amp;quot;&amp;#039;v expr ⇒ &amp;#039;v instr list&amp;quot; where&lt;br /&gt;
  &amp;quot;comp (Const v)     = [IConst v]&amp;quot;&lt;br /&gt;
| &amp;quot;comp (Var x)       = [ILoad x]&amp;quot;&lt;br /&gt;
| &amp;quot;comp (App f e1 e2) = (comp e2) @ (comp e1) @ [IApp f]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text ‹A continuación se muestran ejemplos de compilación.›&lt;br /&gt;
&lt;br /&gt;
lemma&lt;br /&gt;
  &amp;quot;comp (Const 3)                   = [IConst 3] ∧&lt;br /&gt;
   comp (Var 2)                     = [ILoad 2] ∧&lt;br /&gt;
   comp (App (+) (Const 3) (Var 2)) = [ILoad 2, IConst 3, IApp (+)]&amp;quot;&lt;br /&gt;
  by simp&lt;br /&gt;
&lt;br /&gt;
section ‹Corrección del compilador›&lt;br /&gt;
&lt;br /&gt;
text ‹Para demostrar que el compilador es correcto, probamos que el&lt;br /&gt;
  resultado de compilar una expresión y a continuación ejecutarla es lo&lt;br /&gt;
  mismo que interpretarla; es decir,›&lt;br /&gt;
&lt;br /&gt;
theorem &amp;quot;ejec (comp e) ent [] = [valor e ent]&amp;quot; &lt;br /&gt;
  apply (induct e)&lt;br /&gt;
    apply auto&lt;br /&gt;
  oops&lt;br /&gt;
&lt;br /&gt;
text ‹El teorema anterior no puede demostrarse por inducción en e. Para&lt;br /&gt;
  demostrarlo, lo generalizamos a›&lt;br /&gt;
&lt;br /&gt;
theorem &amp;quot;∀vs. ejec (comp e) ent vs = (valor e ent)#vs&amp;quot;&lt;br /&gt;
  oops&lt;br /&gt;
&lt;br /&gt;
text ‹En la demostración del teorema anterior usaremos el siguiente &lt;br /&gt;
  lema.›&lt;br /&gt;
&lt;br /&gt;
lemma&lt;br /&gt;
  &amp;quot;∀ vs. ejec (xs@ys) ent vs = ejec ys ent (ejec xs ent vs)&amp;quot; (is &amp;quot;?P xs&amp;quot;)&lt;br /&gt;
proof (induct xs)&lt;br /&gt;
  show &amp;quot;?P []&amp;quot; by simp&lt;br /&gt;
next&lt;br /&gt;
  fix a xs&lt;br /&gt;
  assume &amp;quot;?P xs&amp;quot;&lt;br /&gt;
  then show &amp;quot;?P (a#xs)&amp;quot; by (cases &amp;quot;a&amp;quot;, auto)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración estructurada es› &lt;br /&gt;
lemma &lt;br /&gt;
  &amp;quot;∀ vs. ejec (xs@ys) ent vs = ejec ys ent (ejec xs ent vs)&amp;quot; &lt;br /&gt;
proof (induct xs)&lt;br /&gt;
  case Nil&lt;br /&gt;
  then show ?case &lt;br /&gt;
    by simp&lt;br /&gt;
next&lt;br /&gt;
  case (Cons a xs)&lt;br /&gt;
  then show ?case &lt;br /&gt;
    by (cases &amp;quot;a&amp;quot;; simp)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración detallada es› &lt;br /&gt;
lemma &lt;br /&gt;
  &amp;quot;∀ vs. ejec (xs@ys) ent vs = ejec ys ent (ejec xs ent vs)&amp;quot; (is &amp;quot;?P xs&amp;quot;)&lt;br /&gt;
proof (induct xs)&lt;br /&gt;
  show &amp;quot;?P []&amp;quot; by simp&lt;br /&gt;
next&lt;br /&gt;
  fix a xs&lt;br /&gt;
  assume HI: &amp;quot;?P xs&amp;quot;&lt;br /&gt;
  then show &amp;quot;?P (a#xs)&amp;quot;&lt;br /&gt;
  proof (cases &amp;quot;a&amp;quot;)&lt;br /&gt;
    case (IConst x1)&lt;br /&gt;
    then show ?thesis using HI by simp&lt;br /&gt;
  next&lt;br /&gt;
    case (ILoad x2)&lt;br /&gt;
    then show ?thesis using HI by simp&lt;br /&gt;
  next&lt;br /&gt;
    case (IApp x3)&lt;br /&gt;
    then show ?thesis using HI by simp&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
― ‹Una demostración más detallada del lema es la siguiente:›&lt;br /&gt;
lemma ejec_append:&lt;br /&gt;
  &amp;quot;∀vs. ejec (xs@ys) ent vs = ejec ys ent (ejec xs ent vs)&amp;quot; (is &amp;quot;?P xs&amp;quot;)&lt;br /&gt;
proof (induct xs)&lt;br /&gt;
  show &amp;quot;?P []&amp;quot; by simp&lt;br /&gt;
next&lt;br /&gt;
  fix a xs&lt;br /&gt;
  assume HI: &amp;quot;?P xs&amp;quot;&lt;br /&gt;
  then show &amp;quot;?P (a#xs)&amp;quot;&lt;br /&gt;
  proof (cases &amp;quot;a&amp;quot;)&lt;br /&gt;
    fix v &lt;br /&gt;
    assume C1: &amp;quot;a = IConst v&amp;quot;&lt;br /&gt;
    show &amp;quot; ∀vs. ejec ((a#xs)@ys) ent vs = ejec ys ent (ejec (a#xs) ent vs)&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      fix vs&lt;br /&gt;
      have &amp;quot;ejec ((a#xs)@ys) ent vs = ejec (((IConst v)#xs)@ys) ent vs&amp;quot;&lt;br /&gt;
        using C1 by simp&lt;br /&gt;
      also have &amp;quot;… = ejec (xs@ys) ent (v#vs)&amp;quot; &lt;br /&gt;
        by simp&lt;br /&gt;
      also have &amp;quot;… = ejec ys ent (ejec xs ent (v#vs))&amp;quot; &lt;br /&gt;
        using HI by simp&lt;br /&gt;
      also have &amp;quot;… = ejec ys ent (ejec ((IConst v)#xs) ent vs)&amp;quot; &lt;br /&gt;
        by simp&lt;br /&gt;
      also have &amp;quot;… = ejec ys ent (ejec (a#xs) ent vs)&amp;quot; using C1 &lt;br /&gt;
        by simp&lt;br /&gt;
      finally show &amp;quot;ejec ((a#xs)@ys) ent vs = &lt;br /&gt;
                    ejec ys ent (ejec (a#xs) ent vs)&amp;quot; .&lt;br /&gt;
    qed&lt;br /&gt;
  next&lt;br /&gt;
    fix n &lt;br /&gt;
    assume C2: &amp;quot;a=ILoad n&amp;quot;&lt;br /&gt;
    show &amp;quot; ∀vs. ejec ((a#xs)@ys) ent vs = ejec ys ent (ejec (a#xs) ent vs)&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      fix vs&lt;br /&gt;
      have &amp;quot;ejec ((a#xs)@ys) ent vs = ejec (((ILoad n)#xs)@ys) ent vs&amp;quot;&lt;br /&gt;
        using C2 by simp&lt;br /&gt;
      also have &amp;quot;… = ejec (xs@ys) ent ((ent n)#vs)&amp;quot; &lt;br /&gt;
        by simp&lt;br /&gt;
      also have &amp;quot;… = ejec ys ent (ejec xs ent ((ent n)#vs))&amp;quot; &lt;br /&gt;
        using HI by simp&lt;br /&gt;
      also have &amp;quot;… = ejec ys ent (ejec ((ILoad n)#xs) ent vs)&amp;quot; &lt;br /&gt;
        by simp&lt;br /&gt;
      also have &amp;quot;… = ejec ys ent (ejec (a#xs) ent vs)&amp;quot; &lt;br /&gt;
        using C2 by simp&lt;br /&gt;
      finally show &amp;quot;ejec ((a#xs)@ys) ent vs = &lt;br /&gt;
                    ejec ys ent (ejec (a#xs) ent vs)&amp;quot; .&lt;br /&gt;
    qed&lt;br /&gt;
  next&lt;br /&gt;
    fix f &lt;br /&gt;
    assume C3: &amp;quot;a=IApp f&amp;quot;&lt;br /&gt;
    show &amp;quot;∀vs. ejec ((a#xs)@ys) ent vs = ejec ys ent (ejec (a#xs) ent vs)&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      fix vs&lt;br /&gt;
      have &amp;quot;ejec ((a#xs)@ys) ent vs = ejec (((IApp f)#xs)@ys) ent vs&amp;quot;&lt;br /&gt;
        using C3 by simp&lt;br /&gt;
      also have &amp;quot;… = ejec (xs@ys) ent ((f (hd vs) (hd (tl vs)))#(tl(tl vs)))&amp;quot; &lt;br /&gt;
        by simp&lt;br /&gt;
      also have &amp;quot;… = ejec ys &lt;br /&gt;
                          ent &lt;br /&gt;
                          (ejec xs ent ((f (hd vs) (hd (tl vs)))#(tl(tl vs))))&amp;quot; &lt;br /&gt;
        using HI by simp&lt;br /&gt;
      also have &amp;quot;… = ejec ys ent (ejec ((IApp f)#xs) ent vs)&amp;quot; &lt;br /&gt;
        by simp&lt;br /&gt;
      also have &amp;quot;… = ejec ys ent (ejec (a#xs) ent vs)&amp;quot; &lt;br /&gt;
        using C3 by simp&lt;br /&gt;
      finally show &amp;quot;ejec ((a#xs)@ys) ent vs = &lt;br /&gt;
                    ejec ys ent (ejec (a#xs) ent vs)&amp;quot; .&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text ‹La demostración automática del teorema es›&lt;br /&gt;
&lt;br /&gt;
theorem &amp;quot;∀vs. ejec (comp e) ent vs = (valor e ent)#vs&amp;quot;&lt;br /&gt;
  by (induct e) (auto simp add: ejec_append)&lt;br /&gt;
&lt;br /&gt;
text ‹La demostración estructurada del teorema es›&lt;br /&gt;
theorem &amp;quot;∀vs. ejec (comp e) ent vs = (valor e ent)#vs&amp;quot;&lt;br /&gt;
proof (induct e)&lt;br /&gt;
  case (Const x)&lt;br /&gt;
  then show ?case by simp&lt;br /&gt;
next&lt;br /&gt;
  case (Var x)&lt;br /&gt;
  then show ?case by simp&lt;br /&gt;
next&lt;br /&gt;
  case (App x1a e1 e2)&lt;br /&gt;
  then show ?case by (simp add: ejec_append)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text ‹La demostración detallada del teorema es›&lt;br /&gt;
theorem &amp;quot;∀vs. ejec (comp e) ent vs = (valor e ent)#vs&amp;quot;&lt;br /&gt;
proof (induct e)&lt;br /&gt;
  fix v&lt;br /&gt;
  show &amp;quot;∀vs. ejec (comp (Const v)) ent vs = (valor (Const v) ent)#vs&amp;quot; &lt;br /&gt;
    by simp&lt;br /&gt;
next&lt;br /&gt;
  fix x&lt;br /&gt;
  show &amp;quot;∀vs. ejec (comp (Var x)) ent vs = (valor (Var x) ent) # vs&amp;quot; &lt;br /&gt;
    by simp&lt;br /&gt;
next&lt;br /&gt;
  fix f e1 e2&lt;br /&gt;
  assume HI1: &amp;quot;∀vs. ejec (comp e1) ent vs = (valor e1 ent) # vs&amp;quot;&lt;br /&gt;
    and HI2: &amp;quot;∀vs. ejec (comp e2) ent vs = (valor e2 ent) # vs&amp;quot;&lt;br /&gt;
  show &amp;quot;∀vs. ejec (comp (App f e1 e2)) ent vs = &lt;br /&gt;
             (valor (App f e1 e2) ent) # vs&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    fix vs&lt;br /&gt;
    have &amp;quot;ejec (comp (App f e1 e2)) ent vs&lt;br /&gt;
          = ejec ((comp e2) @ (comp e1) @ [IApp f]) ent vs&amp;quot; &lt;br /&gt;
      by simp&lt;br /&gt;
    also have &amp;quot;… = ejec ((comp e1) @ [IApp f]) ent (ejec (comp e2) ent vs)&amp;quot;&lt;br /&gt;
      using ejec_append by blast&lt;br /&gt;
    also have &amp;quot;… = ejec [IApp f] &lt;br /&gt;
                         ent &lt;br /&gt;
                         (ejec (comp e1) ent (ejec (comp e2) ent vs))&amp;quot; &lt;br /&gt;
      using ejec_append by blast&lt;br /&gt;
    also have &amp;quot;… =  ejec [IApp f] ent (ejec (comp e1) ent ((valor e2 ent)#vs))&amp;quot;&lt;br /&gt;
      using HI2 by simp&lt;br /&gt;
    also have &amp;quot;… = ejec [IApp f] ent ((valor e1 ent)#((valor e2 ent)#vs))&amp;quot;&lt;br /&gt;
      using HI1 by simp&lt;br /&gt;
    also have &amp;quot;… = (f (valor e1 ent) (valor e2 ent))#vs&amp;quot; by simp&lt;br /&gt;
    also have &amp;quot;… = (valor (App f e1 e2) ent) # vs&amp;quot; by simp&lt;br /&gt;
    finally &lt;br /&gt;
    show &amp;quot;ejec (comp (App f e1 e2)) ent vs = (valor (App f e1 e2) ent) # vs&amp;quot; &lt;br /&gt;
      by blast&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Tema_10:_Caso_de_estudio:_Compilaci%C3%B3n_de_expresiones&amp;diff=982</id>
		<title>Tema 10: Caso de estudio: Compilación de expresiones</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Tema_10:_Caso_de_estudio:_Compilaci%C3%B3n_de_expresiones&amp;diff=982"/>
		<updated>2020-02-13T14:17:30Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: Página creada con «&amp;lt;source lang=&amp;quot;isabelle&amp;quot;&amp;gt; chapter ‹Tema 10: Caso de estudio: Compilación de expresiones›  theory T10_Caso_de_estudio_Compilacion_de_expresiones  imports Main begin  dec…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isabelle&amp;quot;&amp;gt;&lt;br /&gt;
chapter ‹Tema 10: Caso de estudio: Compilación de expresiones›&lt;br /&gt;
&lt;br /&gt;
theory T10_Caso_de_estudio_Compilacion_de_expresiones&lt;br /&gt;
&lt;br /&gt;
imports Main&lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
declare [[names_short]]&lt;br /&gt;
&lt;br /&gt;
text ‹El objetivo de este tema es contruir un compilador de expresiones&lt;br /&gt;
  genéricas (construidas con variables, constantes y operaciones&lt;br /&gt;
  binarias) a una máquina de pila y demostrar su corrección.›&lt;br /&gt;
&lt;br /&gt;
section ‹Las expresiones y el intérprete›&lt;br /&gt;
&lt;br /&gt;
text ‹Definición. Las expresiones son las constantes, las variables&lt;br /&gt;
  (representadas por números naturales) y las aplicaciones de operadores&lt;br /&gt;
  binarios a dos expresiones.›&lt;br /&gt;
&lt;br /&gt;
type_synonym &amp;#039;v binop = &amp;quot;&amp;#039;v ⇒ &amp;#039;v ⇒ &amp;#039;v&amp;quot;&lt;br /&gt;
&lt;br /&gt;
datatype &amp;#039;v expr = &lt;br /&gt;
  Const &amp;#039;v &lt;br /&gt;
| Var nat &lt;br /&gt;
| App &amp;quot;&amp;#039;v binop&amp;quot; &amp;quot;&amp;#039;v expr&amp;quot; &amp;quot;&amp;#039;v expr&amp;quot; &lt;br /&gt;
&lt;br /&gt;
text ‹Definición. [Intérprete] &lt;br /&gt;
  La función &amp;quot;valor&amp;quot; toma como argumentos una expresión y un entorno&lt;br /&gt;
  (i.e. una aplicación de las variables en elementos del lenguaje) y&lt;br /&gt;
  devuelve el valor de la expresión en el entorno.›&lt;br /&gt;
&lt;br /&gt;
fun valor :: &amp;quot;&amp;#039;v expr ⇒ (nat ⇒ &amp;#039;v) ⇒ &amp;#039;v&amp;quot; where&lt;br /&gt;
  &amp;quot;valor (Const b)     ent = b&amp;quot;&lt;br /&gt;
| &amp;quot;valor (Var x)       ent = ent x&amp;quot;&lt;br /&gt;
| &amp;quot;valor (App f e1 e2) ent = (f (valor e1 ent) (valor e2 ent))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text ‹Ejemplo. A continuación mostramos algunos ejemplos de evaluación &lt;br /&gt;
  con el intérprete.›&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  &amp;quot;valor (Const 3) id = 3 ∧&lt;br /&gt;
   valor (Var 2) id = 2 ∧&lt;br /&gt;
   valor (Var 2) (λx. x+1) = 3 ∧ &lt;br /&gt;
   valor (App (+) (Const 3) (Var 2)) (λx. x+1) = 6 ∧&lt;br /&gt;
   valor (App (+) (Const 3) (Var 2)) (λx. x+4) = 9&amp;quot; &lt;br /&gt;
  by simp&lt;br /&gt;
&lt;br /&gt;
section ‹La máquina de pila›&lt;br /&gt;
&lt;br /&gt;
text ‹Nota. La máquina de pila tiene tres clases de intrucciones:&lt;br /&gt;
  · cargar en la pila una constante,&lt;br /&gt;
  · cargar en la pila el contenido de una dirección y&lt;br /&gt;
  · aplicar un operador binario a los dos elementos superiores de la &lt;br /&gt;
    pila.›&lt;br /&gt;
&lt;br /&gt;
datatype &amp;#039;v instr = &lt;br /&gt;
  IConst &amp;#039;v &lt;br /&gt;
| ILoad nat &lt;br /&gt;
| IApp &amp;quot;&amp;#039;v binop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text ‹Definición. [Ejecución]&lt;br /&gt;
  La ejecución de la máquina de pila se modeliza mediante la función &lt;br /&gt;
  &amp;quot;ejec&amp;quot; que toma una lista de intrucciones, una memoria (representada &lt;br /&gt;
  como una función de las direcciones a los valores, análogamente a los &lt;br /&gt;
  entornos) y una pila (representada como una lista) y devuelve la pila&lt;br /&gt;
  al final de la ejecución.›&lt;br /&gt;
&lt;br /&gt;
fun ejec :: &amp;quot;&amp;#039;v instr list ⇒ (nat ⇒ &amp;#039;v) ⇒ &amp;#039;v list ⇒ &amp;#039;v list&amp;quot; where&lt;br /&gt;
  &amp;quot;ejec []     ent vs = vs&amp;quot;&lt;br /&gt;
| &amp;quot;ejec (i#is) ent vs = &lt;br /&gt;
     (case i of&lt;br /&gt;
        IConst v ⇒ ejec is ent (v#vs)&lt;br /&gt;
      | ILoad x  ⇒ ejec is ent ((ent x)#vs)&lt;br /&gt;
      | IApp f   ⇒ ejec is ent ((f (hd vs) (hd (tl vs)))#(tl(tl vs))))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text ‹  A continuación se muestran ejemplos de ejecución.›&lt;br /&gt;
&lt;br /&gt;
lemma&lt;br /&gt;
  &amp;quot;ejec [IConst 3]          id                  [7] = [3,7] ∧&lt;br /&gt;
   ejec [ILoad 2, IConst 3] id                  [7] = [3,2,7] ∧&lt;br /&gt;
   ejec [ILoad 2, IConst 3] (λx. x+4)           [7] = [3,6,7] ∧&lt;br /&gt;
   ejec [ILoad 2, IConst 3, IApp (+)] (λx. x+4) [7] = [9,7]&amp;quot;&lt;br /&gt;
  by simp&lt;br /&gt;
&lt;br /&gt;
section ‹El compilador›&lt;br /&gt;
&lt;br /&gt;
text ‹Definición. El compilador &amp;quot;comp&amp;quot; traduce una expresión en una &lt;br /&gt;
  lista de instrucciones.›&lt;br /&gt;
&lt;br /&gt;
fun comp :: &amp;quot;&amp;#039;v expr ⇒ &amp;#039;v instr list&amp;quot; where&lt;br /&gt;
  &amp;quot;comp (Const v)     = [IConst v]&amp;quot;&lt;br /&gt;
| &amp;quot;comp (Var x)       = [ILoad x]&amp;quot;&lt;br /&gt;
| &amp;quot;comp (App f e1 e2) = (comp e2) @ (comp e1) @ [IApp f]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text ‹A continuación se muestran ejemplos de compilación.›&lt;br /&gt;
&lt;br /&gt;
lemma&lt;br /&gt;
  &amp;quot;comp (Const 3)                   = [IConst 3] ∧&lt;br /&gt;
   comp (Var 2)                     = [ILoad 2] ∧&lt;br /&gt;
   comp (App (+) (Const 3) (Var 2)) = [ILoad 2, IConst 3, IApp (+)]&amp;quot;&lt;br /&gt;
  by simp&lt;br /&gt;
&lt;br /&gt;
section ‹Corrección del compilador›&lt;br /&gt;
&lt;br /&gt;
text ‹Para demostrar que el compilador es correcto, probamos que el&lt;br /&gt;
  resultado de compilar una expresión y a continuación ejecutarla es lo&lt;br /&gt;
  mismo que interpretarla; es decir,›&lt;br /&gt;
&lt;br /&gt;
theorem &amp;quot;ejec (comp e) ent [] = [valor e ent]&amp;quot; &lt;br /&gt;
  apply (induct e)&lt;br /&gt;
    apply auto&lt;br /&gt;
  oops&lt;br /&gt;
&lt;br /&gt;
text ‹El teorema anterior no puede demostrarse por inducción en e. Para&lt;br /&gt;
  demostrarlo, lo generalizamos a›&lt;br /&gt;
&lt;br /&gt;
theorem &amp;quot;∀vs. ejec (comp e) ent vs = (valor e ent)#vs&amp;quot;&lt;br /&gt;
  oops&lt;br /&gt;
&lt;br /&gt;
text ‹En la demostración del teorema anterior usaremos el siguiente &lt;br /&gt;
  lema.›&lt;br /&gt;
&lt;br /&gt;
lemma&lt;br /&gt;
  &amp;quot;∀ vs. ejec (xs@ys) ent vs = ejec ys ent (ejec xs ent vs)&amp;quot; (is &amp;quot;?P xs&amp;quot;)&lt;br /&gt;
proof (induct xs)&lt;br /&gt;
  show &amp;quot;?P []&amp;quot; by simp&lt;br /&gt;
next&lt;br /&gt;
  fix a xs&lt;br /&gt;
  assume &amp;quot;?P xs&amp;quot;&lt;br /&gt;
  then show &amp;quot;?P (a#xs)&amp;quot; by (cases &amp;quot;a&amp;quot;, auto)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración estructurada es› &lt;br /&gt;
lemma &lt;br /&gt;
  &amp;quot;∀ vs. ejec (xs@ys) ent vs = ejec ys ent (ejec xs ent vs)&amp;quot; &lt;br /&gt;
proof (induct xs)&lt;br /&gt;
  case Nil&lt;br /&gt;
  then show ?case &lt;br /&gt;
    by simp&lt;br /&gt;
next&lt;br /&gt;
  case (Cons a xs)&lt;br /&gt;
  then show ?case &lt;br /&gt;
    by (cases &amp;quot;a&amp;quot;; simp)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
― ‹La demostración detallada es› &lt;br /&gt;
lemma &lt;br /&gt;
  &amp;quot;∀ vs. ejec (xs@ys) ent vs = ejec ys ent (ejec xs ent vs)&amp;quot; (is &amp;quot;?P xs&amp;quot;)&lt;br /&gt;
proof (induct xs)&lt;br /&gt;
  show &amp;quot;?P []&amp;quot; by simp&lt;br /&gt;
next&lt;br /&gt;
  fix a xs&lt;br /&gt;
  assume HI: &amp;quot;?P xs&amp;quot;&lt;br /&gt;
  then show &amp;quot;?P (a#xs)&amp;quot;&lt;br /&gt;
  proof (cases &amp;quot;a&amp;quot;)&lt;br /&gt;
    case (IConst x1)&lt;br /&gt;
    then show ?thesis using HI by simp&lt;br /&gt;
  next&lt;br /&gt;
    case (ILoad x2)&lt;br /&gt;
    then show ?thesis using HI by simp&lt;br /&gt;
  next&lt;br /&gt;
    case (IApp x3)&lt;br /&gt;
    then show ?thesis using HI by simp&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
― ‹Una demostración más detallada del lema es la siguiente:›&lt;br /&gt;
lemma ejec_append:&lt;br /&gt;
  &amp;quot;∀vs. ejec (xs@ys) ent vs = ejec ys ent (ejec xs ent vs)&amp;quot; (is &amp;quot;?P xs&amp;quot;)&lt;br /&gt;
proof (induct xs)&lt;br /&gt;
  show &amp;quot;?P []&amp;quot; by simp&lt;br /&gt;
next&lt;br /&gt;
  fix a xs&lt;br /&gt;
  assume HI: &amp;quot;?P xs&amp;quot;&lt;br /&gt;
  then show &amp;quot;?P (a#xs)&amp;quot;&lt;br /&gt;
  proof (cases &amp;quot;a&amp;quot;)&lt;br /&gt;
    fix v &lt;br /&gt;
    assume C1: &amp;quot;a = IConst v&amp;quot;&lt;br /&gt;
    show &amp;quot; ∀vs. ejec ((a#xs)@ys) ent vs = ejec ys ent (ejec (a#xs) ent vs)&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      fix vs&lt;br /&gt;
      have &amp;quot;ejec ((a#xs)@ys) ent vs = ejec (((IConst v)#xs)@ys) ent vs&amp;quot;&lt;br /&gt;
        using C1 by simp&lt;br /&gt;
      also have &amp;quot;… = ejec (xs@ys) ent (v#vs)&amp;quot; &lt;br /&gt;
        by simp&lt;br /&gt;
      also have &amp;quot;… = ejec ys ent (ejec xs ent (v#vs))&amp;quot; &lt;br /&gt;
        using HI by simp&lt;br /&gt;
      also have &amp;quot;… = ejec ys ent (ejec ((IConst v)#xs) ent vs)&amp;quot; &lt;br /&gt;
        by simp&lt;br /&gt;
      also have &amp;quot;… = ejec ys ent (ejec (a#xs) ent vs)&amp;quot; using C1 &lt;br /&gt;
        by simp&lt;br /&gt;
      finally show &amp;quot;ejec ((a#xs)@ys) ent vs = &lt;br /&gt;
                    ejec ys ent (ejec (a#xs) ent vs)&amp;quot; .&lt;br /&gt;
    qed&lt;br /&gt;
  next&lt;br /&gt;
    fix n &lt;br /&gt;
    assume C2: &amp;quot;a=ILoad n&amp;quot;&lt;br /&gt;
    show &amp;quot; ∀vs. ejec ((a#xs)@ys) ent vs = ejec ys ent (ejec (a#xs) ent vs)&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      fix vs&lt;br /&gt;
      have &amp;quot;ejec ((a#xs)@ys) ent vs = ejec (((ILoad n)#xs)@ys) ent vs&amp;quot;&lt;br /&gt;
        using C2 by simp&lt;br /&gt;
      also have &amp;quot;… = ejec (xs@ys) ent ((ent n)#vs)&amp;quot; &lt;br /&gt;
        by simp&lt;br /&gt;
      also have &amp;quot;… = ejec ys ent (ejec xs ent ((ent n)#vs))&amp;quot; &lt;br /&gt;
        using HI by simp&lt;br /&gt;
      also have &amp;quot;… = ejec ys ent (ejec ((ILoad n)#xs) ent vs)&amp;quot; &lt;br /&gt;
        by simp&lt;br /&gt;
      also have &amp;quot;… = ejec ys ent (ejec (a#xs) ent vs)&amp;quot; &lt;br /&gt;
        using C2 by simp&lt;br /&gt;
      finally show &amp;quot;ejec ((a#xs)@ys) ent vs = &lt;br /&gt;
                    ejec ys ent (ejec (a#xs) ent vs)&amp;quot; .&lt;br /&gt;
    qed&lt;br /&gt;
  next&lt;br /&gt;
    fix f &lt;br /&gt;
    assume C3: &amp;quot;a=IApp f&amp;quot;&lt;br /&gt;
    show &amp;quot;∀vs. ejec ((a#xs)@ys) ent vs = ejec ys ent (ejec (a#xs) ent vs)&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      fix vs&lt;br /&gt;
      have &amp;quot;ejec ((a#xs)@ys) ent vs = ejec (((IApp f)#xs)@ys) ent vs&amp;quot;&lt;br /&gt;
        using C3 by simp&lt;br /&gt;
      also have &amp;quot;… = ejec (xs@ys) ent ((f (hd vs) (hd (tl vs)))#(tl(tl vs)))&amp;quot; &lt;br /&gt;
        by simp&lt;br /&gt;
      also have &amp;quot;… = ejec ys &lt;br /&gt;
                          ent &lt;br /&gt;
                          (ejec xs ent ((f (hd vs) (hd (tl vs)))#(tl(tl vs))))&amp;quot; &lt;br /&gt;
        using HI by simp&lt;br /&gt;
      also have &amp;quot;… = ejec ys ent (ejec ((IApp f)#xs) ent vs)&amp;quot; &lt;br /&gt;
        by simp&lt;br /&gt;
      also have &amp;quot;… = ejec ys ent (ejec (a#xs) ent vs)&amp;quot; &lt;br /&gt;
        using C3 by simp&lt;br /&gt;
      finally show &amp;quot;ejec ((a#xs)@ys) ent vs = &lt;br /&gt;
                    ejec ys ent (ejec (a#xs) ent vs)&amp;quot; .&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text ‹La demostración automática del teorema es›&lt;br /&gt;
&lt;br /&gt;
theorem &amp;quot;∀vs. ejec (comp e) ent vs = (valor e ent)#vs&amp;quot;&lt;br /&gt;
  by (induct e) (auto simp add: ejec_append)&lt;br /&gt;
&lt;br /&gt;
text ‹La demostración estructurada del teorema es›&lt;br /&gt;
theorem &amp;quot;∀vs. ejec (comp e) ent vs = (valor e ent)#vs&amp;quot;&lt;br /&gt;
proof (induct e)&lt;br /&gt;
  case (Const x)&lt;br /&gt;
  then show ?case by simp&lt;br /&gt;
next&lt;br /&gt;
  case (Var x)&lt;br /&gt;
  then show ?case by simp&lt;br /&gt;
next&lt;br /&gt;
  case (App x1a e1 e2)&lt;br /&gt;
  then show ?case by (simp add: ejec_append)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text ‹La demostración detallada del teorema es›&lt;br /&gt;
theorem &amp;quot;∀vs. ejec (comp e) ent vs = (valor e ent)#vs&amp;quot;&lt;br /&gt;
proof (induct e)&lt;br /&gt;
  fix v&lt;br /&gt;
  show &amp;quot;∀vs. ejec (comp (Const v)) ent vs = (valor (Const v) ent)#vs&amp;quot; &lt;br /&gt;
    by simp&lt;br /&gt;
next&lt;br /&gt;
  fix x&lt;br /&gt;
  show &amp;quot;∀vs. ejec (comp (Var x)) ent vs = (valor (Var x) ent) # vs&amp;quot; &lt;br /&gt;
    by simp&lt;br /&gt;
next&lt;br /&gt;
  fix f e1 e2&lt;br /&gt;
  assume HI1: &amp;quot;∀vs. ejec (comp e1) ent vs = (valor e1 ent) # vs&amp;quot;&lt;br /&gt;
    and HI2: &amp;quot;∀vs. ejec (comp e2) ent vs = (valor e2 ent) # vs&amp;quot;&lt;br /&gt;
  show &amp;quot;∀vs. ejec (comp (App f e1 e2)) ent vs = &lt;br /&gt;
             (valor (App f e1 e2) ent) # vs&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    fix vs&lt;br /&gt;
    have &amp;quot;ejec (comp (App f e1 e2)) ent vs&lt;br /&gt;
          = ejec ((comp e2) @ (comp e1) @ [IApp f]) ent vs&amp;quot; &lt;br /&gt;
      by simp&lt;br /&gt;
    also have &amp;quot;… = ejec ((comp e1) @ [IApp f]) ent (ejec (comp e2) ent vs)&amp;quot;&lt;br /&gt;
      using ejec_append by blast&lt;br /&gt;
    also have &amp;quot;… = ejec [IApp f] &lt;br /&gt;
                         ent &lt;br /&gt;
                         (ejec (comp e1) ent (ejec (comp e2) ent vs))&amp;quot; &lt;br /&gt;
      using ejec_append by blast&lt;br /&gt;
    also have &amp;quot;… =  ejec [IApp f] ent (ejec (comp e1) ent ((valor e2 ent)#vs))&amp;quot;&lt;br /&gt;
      using HI2 by simp&lt;br /&gt;
    also have &amp;quot;… = ejec [IApp f] ent ((valor e1 ent)#((valor e2 ent)#vs))&amp;quot;&lt;br /&gt;
      using HI1 by simp&lt;br /&gt;
    also have &amp;quot;… = (f (valor e1 ent) (valor e2 ent))#vs&amp;quot; by simp&lt;br /&gt;
    also have &amp;quot;… = (valor (App f e1 e2) ent) # vs&amp;quot; by simp&lt;br /&gt;
    finally &lt;br /&gt;
    show &amp;quot;ejec (comp (App f e1 e2)) ent vs = (valor (App f e1 e2) ent) # vs&amp;quot; &lt;br /&gt;
      by blast&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Temas&amp;diff=981</id>
		<title>Temas</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Temas&amp;diff=981"/>
		<updated>2020-02-13T14:16:12Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En esta página se irán publicando los temas conforme se vayan estudiando.&lt;br /&gt;
&lt;br /&gt;
== RA con Isabelle/HOL ==&lt;br /&gt;
* [[Tema 1: Programación funcional en Isabelle]].&lt;br /&gt;
* Tema 2: Razonamiento sobre programas:&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/i1m-16/temas/tema-8.pdf Tema 2a: Razonamiento sobre programas Haskell]&lt;br /&gt;
** [[Tema 2b: Razonamiento sobre programas con Isabelle/HOL]].&lt;br /&gt;
* [[Tema 3: Razonamiento estructurado sobre programas en Isabelle/HOL]].&lt;br /&gt;
* [[Tema 4: Razonamiento por casos y por inducción]].&lt;br /&gt;
* [[Tema 5: Razonamiento sobre árboles y bosques]].&lt;br /&gt;
* Tema 6: Deducción natural proposicional:&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/li/temas/tema-1.pdf Tema 6a: Sintaxis y semántica de la lógica proposicional].&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/li/temas/tema-2.pdf Tema 6b: Deducción natural proposicional].&lt;br /&gt;
** [[Tema 6c: Deducción natural proposicional con Isabelle/HOL | Tema 6c: Deducción natural proposicional con Isabelle/HOL]].&lt;br /&gt;
* Tema 7: Deducción natural de primer orden:&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/li/temas/tema-7.pdf Tema 7a: Sintaxis y semántica de la lógica de primer orden].&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/li/temas/tema-8.pdf Tema 7b: Deducción natural en lógica de primer orden].&lt;br /&gt;
** [[Tema 7c: Deducción natural en lógica de primer orden con Isabelle/HOL | Tema 7c: Deducción natural en lógica de primer orden con Isabelle/HOL]]&lt;br /&gt;
* Tema 8: [https://www.cs.us.es/~jalonso/cursos/m-ra/temas/T8-SAT_solving.pdf SAT (solving)] por Jesús Giráldez Crú.&lt;br /&gt;
* Tema 9: SAT, el procedimiento de Davis-Putnam y reducción de SAT a Clique.&lt;br /&gt;
** Tema 9a: [[El problema SAT en Haskell]].&lt;br /&gt;
** Tema 9b: [https://www.cs.us.es/~jalonso/cursos/lmf-17/temas/tema-6.pdf El algoritmo de Davis-Putnam para SAT].&lt;br /&gt;
** Tema 9c: [[El algoritmo de Davis-Putnam en Haskell]].&lt;br /&gt;
** Tema 9d: [[El problema Clique en Haskel]].&lt;br /&gt;
** Tema 9e: [[Reducción de SAT a Clique en Haskell]].&lt;br /&gt;
** Tema 9f: [[Comparaciones de algoritmos de SAT]].&lt;br /&gt;
* [[Tema 10: Caso de estudio: Compilación de expresiones]].&lt;br /&gt;
* [[Tema 11: Verificación de la ordenación por inserción]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* Tema 6: Verificación de algoritmos de ordenación:&lt;br /&gt;
** [[Tema 6b: Verificación de la ordenación por mezcla]].&lt;br /&gt;
* [[Tema 9: Editores lógicos]]. &lt;br /&gt;
* [[Tema 11: Definiciones inductivas]].&lt;br /&gt;
* [[Tema 12: Conjuntos, funciones y relaciones]].&lt;br /&gt;
&lt;br /&gt;
== RA con Coq ==&lt;br /&gt;
* [[Tema 1: Programación funcional y métodos elementales de demostración en Coq]].&lt;br /&gt;
* [[Tema 2: Demostraciones por inducción sobre los números naturales en Coq]].&lt;br /&gt;
* [[Tema 3: Datos estructurados en Coq]].&lt;br /&gt;
* [[Tema 4: Polimorfismo y funciones de orden superior en Coq]].&lt;br /&gt;
* [[Tema 5: Tácticas básicas de Coq]].&lt;br /&gt;
* [[Tema 6: Lógica en Coq]].&lt;br /&gt;
* [[Tema 7: Definiciones inductivas en Coq]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* [[Tema 10: Conjuntos, funciones y relaciones]].&lt;br /&gt;
* [http://www.cs.us.es/~jalonso/cursos/dao-12/temas/tema-1.pdf Tema 11: Panorama de la demostración asistida por ordenador].&lt;br /&gt;
* [[Tema 11: Gramáticas libre de contexto]].&lt;br /&gt;
* Tema 12: Misceláneas:&lt;br /&gt;
** [[Tema 12a: Razonamiento modular (Teoría de grupos)]].&lt;br /&gt;
** [[Tema 12b: Razonamiento modular]].&lt;br /&gt;
** [[Tema 12c: Automatización]].&lt;br /&gt;
** [[Tema 12d: Pasos elementales]].&lt;br /&gt;
** [[Tema 12e: Sudoku]].&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=R10&amp;diff=979</id>
		<title>R10</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=R10&amp;diff=979"/>
		<updated>2020-02-13T14:14:34Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: Protegió «R10» ([Editar=Solo administradores] (indefinido) [Trasladar=Solo administradores] (indefinido))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isabelle&amp;quot;&amp;gt;&lt;br /&gt;
chapter ‹R10: Verificación de la ordenación por mezcla›&lt;br /&gt;
&lt;br /&gt;
theory R10_Verificacion_de_la_ordenacion_por_mezcla&lt;br /&gt;
imports Main&lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text ‹En esta relación de ejercicios se define el algoritmo de &lt;br /&gt;
  ordenación de listas por mezcla y se demuestra que es correcto.›&lt;br /&gt;
&lt;br /&gt;
section ‹Ordenación de listas›&lt;br /&gt;
&lt;br /&gt;
text ‹----------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Definir la función&lt;br /&gt;
     menor :: int ⇒ int list ⇒ bool&lt;br /&gt;
  tal que (menor a xs) se verifica si a es menor o igual que todos los&lt;br /&gt;
  elementos de xs.Por ejemplo,  &lt;br /&gt;
     menor 2 [3,2,5] = True&lt;br /&gt;
     menor 2 [3,0,5] = False&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
fun menor :: &amp;quot;int ⇒ int list ⇒ bool&amp;quot; where&lt;br /&gt;
 &amp;quot;menor a xs = undefined&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text ‹------------------------------------------------------------------ &lt;br /&gt;
  Ejercicio 2. Definir la función&lt;br /&gt;
     ordenada :: int list ⇒ bool&lt;br /&gt;
  tal que (ordenada xs) se verifica si xs es una lista ordenada de&lt;br /&gt;
  manera creciente. Por ejemplo,  &lt;br /&gt;
     ordenada [2,3,3,5] = True &lt;br /&gt;
     ordenada [2,4,3,5] = False &lt;br /&gt;
  ---------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
fun ordenada :: &amp;quot;int list ⇒ bool&amp;quot; where&lt;br /&gt;
  &amp;quot;ordenada xs = undefined&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text ‹------------------------------------------------------------------ &lt;br /&gt;
  Ejercicio 3. Definir la función&lt;br /&gt;
     cuenta :: int list =&amp;gt; int =&amp;gt; nat&lt;br /&gt;
  tal que (cuenta xs y) es el número de veces que aparece el elemento y&lt;br /&gt;
  en la lista xs. Por ejemplo, &lt;br /&gt;
     cuenta [1,3,4,3,5] 3 = 2&lt;br /&gt;
  ---------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
fun cuenta :: &amp;quot;int list =&amp;gt; int =&amp;gt; nat&amp;quot; where&lt;br /&gt;
  &amp;quot;cuenta xs y = undefined&amp;quot;&lt;br /&gt;
&lt;br /&gt;
section ‹Ordenación por mezcla›&lt;br /&gt;
&lt;br /&gt;
text ‹------------------------------------------------------------------ &lt;br /&gt;
  Ejercicio 4. Definir la función&lt;br /&gt;
     mezcla :: int list ⇒ int list ⇒ int list&lt;br /&gt;
  tal que (mezcla xs ys) es la lista obtenida mezclando las listas&lt;br /&gt;
  ordenadas xs e ys. Por ejemplo, &lt;br /&gt;
     mezcla [1,2,5] [3,5,7] = [1,2,3,5,5,7]&lt;br /&gt;
  ---------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
fun mezcla :: &amp;quot;int list ⇒ int list ⇒ int list&amp;quot; where&lt;br /&gt;
  &amp;quot;mezcla xs ys = undefined&amp;quot; &lt;br /&gt;
&lt;br /&gt;
text ‹------------------------------------------------------------------ &lt;br /&gt;
  Ejercicio 5. Definir la función&lt;br /&gt;
     ordenaM :: int list ⇒ int list&lt;br /&gt;
  tal que (ordenaM xs) es la lista obtenida ordenando la lista xs&lt;br /&gt;
  mediante mezclas; es decir, la divide en dos mitades, las ordena y las&lt;br /&gt;
  mezcla. Por ejemplo, &lt;br /&gt;
     ordenaM [3,2,5,2] = [2,2,3,5]&lt;br /&gt;
  ---------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
fun ordenaM :: &amp;quot;int list ⇒ int list&amp;quot; where&lt;br /&gt;
  &amp;quot;ordenaM xs  = undefined&amp;quot; &lt;br /&gt;
&lt;br /&gt;
text ‹------------------------------------------------------------------ &lt;br /&gt;
  Ejercicio 6. Sea x ≤ y. Si y es menor o igual que todos los elementos&lt;br /&gt;
  de xs, entonces x es menor o igual que todos los elementos de xs&lt;br /&gt;
  ---------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma menor_menor: &lt;br /&gt;
  &amp;quot;x ≤ y ⟹ menor y xs ⟶ menor x xs&amp;quot;&lt;br /&gt;
  oops&lt;br /&gt;
&lt;br /&gt;
text ‹------------------------------------------------------------------ &lt;br /&gt;
  Ejercicio 7. Demostrar que el número de veces que aparece n en la&lt;br /&gt;
  mezcla de dos listas es igual a la suma del número de apariciones en&lt;br /&gt;
  cada una de las listas&lt;br /&gt;
  ---------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma cuenta_mezcla: &lt;br /&gt;
  &amp;quot;cuenta (mezcla xs ys) n = cuenta xs n + cuenta ys n&amp;quot;&lt;br /&gt;
  oops&lt;br /&gt;
&lt;br /&gt;
text ‹------------------------------------------------------------------ &lt;br /&gt;
  Ejercicio 8. Demostrar que si x es menor que todos los elementos de&lt;br /&gt;
  ys y de zs, entonces también lo es de su mezcla.&lt;br /&gt;
  ---------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma menor_mezcla:&lt;br /&gt;
  assumes &amp;quot;menor x ys&amp;quot; &lt;br /&gt;
          &amp;quot;menor x zs&amp;quot; &lt;br /&gt;
  shows   &amp;quot;menor x (mezcla ys zs)&amp;quot;&lt;br /&gt;
  oops&lt;br /&gt;
&lt;br /&gt;
text ‹------------------------------------------------------------------ &lt;br /&gt;
  Ejercicio 9. Demostrar que la mezcla de dos listas ordenadas es una&lt;br /&gt;
  lista ordenada. &lt;br /&gt;
&lt;br /&gt;
  Indicación: Usar los siguientes lemas&lt;br /&gt;
  · linorder_not_le: (¬ x ≤ y) = (y &amp;lt; x)&lt;br /&gt;
  · order_less_le:   (x &amp;lt; y) = (x ≤ y ∧ x ≠ y)&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ordenada_mezcla:&lt;br /&gt;
  assumes &amp;quot;ordenada xs&amp;quot; &lt;br /&gt;
    &amp;quot;ordenada ys&amp;quot; &lt;br /&gt;
  shows   &amp;quot;ordenada (mezcla xs ys)&amp;quot;&lt;br /&gt;
  oops&lt;br /&gt;
&lt;br /&gt;
text ‹------------------------------------------------------------------ &lt;br /&gt;
  Ejercicio 10. Demostrar que si x es mayor que 1, entonces el mínimo de&lt;br /&gt;
  x y su mitad es menor que x.&lt;br /&gt;
  ---------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma min_mitad: &lt;br /&gt;
  &amp;quot;1 &amp;lt; x ⟹ min x (x div 2::int) &amp;lt; x&amp;quot;&lt;br /&gt;
  oops&lt;br /&gt;
&lt;br /&gt;
text ‹------------------------------------------------------------------ &lt;br /&gt;
  Ejercicio 11. Demostrar que si x es mayor que 1, entonces x menos su&lt;br /&gt;
  mitad es menor que x. &lt;br /&gt;
  ---------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma menos_mitad: &lt;br /&gt;
  &amp;quot;1 &amp;lt; x ⟹ x - x div (2::int) &amp;lt; x&amp;quot;&lt;br /&gt;
  oops&lt;br /&gt;
&lt;br /&gt;
text ‹------------------------------------------------------------------ &lt;br /&gt;
  Ejercicio 11. Demostrar que (ordenaM xs) está ordenada.&lt;br /&gt;
  ---------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
theorem ordenada_ordenaM:&lt;br /&gt;
  &amp;quot;ordenada (ordenaM xs)&amp;quot;&lt;br /&gt;
  oops&lt;br /&gt;
&lt;br /&gt;
text ‹------------------------------------------------------------------ &lt;br /&gt;
  Ejercicio 12. Demostrar que el número de apariciones de un elemento en&lt;br /&gt;
  la concatenación de dos listas es la suma del número de apariciones en&lt;br /&gt;
  cada una.&lt;br /&gt;
  ---------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma cuenta_conc: &lt;br /&gt;
  &amp;quot;cuenta (xs @ ys) x = cuenta xs x + cuenta ys x&amp;quot;&lt;br /&gt;
  oops&lt;br /&gt;
&lt;br /&gt;
text ‹------------------------------------------------------------------ &lt;br /&gt;
  Ejercicio 13. Demostrar que las listas xs y (ordenaM xs) tienen los&lt;br /&gt;
  mismos elementos.&lt;br /&gt;
  ---------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
theorem cuenta_ordenaM: &lt;br /&gt;
  &amp;quot;cuenta (ordenaM xs) x = cuenta xs x&amp;quot;&lt;br /&gt;
  oops&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=R10&amp;diff=977</id>
		<title>R10</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=R10&amp;diff=977"/>
		<updated>2020-02-13T14:13:24Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: Página creada con «&amp;lt;source lang=&amp;quot;isabelle&amp;quot;&amp;gt; chapter ‹R10: Verificación de la ordenación por mezcla›  theory R10_Verificacion_de_la_ordenacion_por_mezcla imports Main begin  text ‹En e…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isabelle&amp;quot;&amp;gt;&lt;br /&gt;
chapter ‹R10: Verificación de la ordenación por mezcla›&lt;br /&gt;
&lt;br /&gt;
theory R10_Verificacion_de_la_ordenacion_por_mezcla&lt;br /&gt;
imports Main&lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text ‹En esta relación de ejercicios se define el algoritmo de &lt;br /&gt;
  ordenación de listas por mezcla y se demuestra que es correcto.›&lt;br /&gt;
&lt;br /&gt;
section ‹Ordenación de listas›&lt;br /&gt;
&lt;br /&gt;
text ‹----------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Definir la función&lt;br /&gt;
     menor :: int ⇒ int list ⇒ bool&lt;br /&gt;
  tal que (menor a xs) se verifica si a es menor o igual que todos los&lt;br /&gt;
  elementos de xs.Por ejemplo,  &lt;br /&gt;
     menor 2 [3,2,5] = True&lt;br /&gt;
     menor 2 [3,0,5] = False&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
fun menor :: &amp;quot;int ⇒ int list ⇒ bool&amp;quot; where&lt;br /&gt;
 &amp;quot;menor a xs = undefined&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text ‹------------------------------------------------------------------ &lt;br /&gt;
  Ejercicio 2. Definir la función&lt;br /&gt;
     ordenada :: int list ⇒ bool&lt;br /&gt;
  tal que (ordenada xs) se verifica si xs es una lista ordenada de&lt;br /&gt;
  manera creciente. Por ejemplo,  &lt;br /&gt;
     ordenada [2,3,3,5] = True &lt;br /&gt;
     ordenada [2,4,3,5] = False &lt;br /&gt;
  ---------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
fun ordenada :: &amp;quot;int list ⇒ bool&amp;quot; where&lt;br /&gt;
  &amp;quot;ordenada xs = undefined&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text ‹------------------------------------------------------------------ &lt;br /&gt;
  Ejercicio 3. Definir la función&lt;br /&gt;
     cuenta :: int list =&amp;gt; int =&amp;gt; nat&lt;br /&gt;
  tal que (cuenta xs y) es el número de veces que aparece el elemento y&lt;br /&gt;
  en la lista xs. Por ejemplo, &lt;br /&gt;
     cuenta [1,3,4,3,5] 3 = 2&lt;br /&gt;
  ---------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
fun cuenta :: &amp;quot;int list =&amp;gt; int =&amp;gt; nat&amp;quot; where&lt;br /&gt;
  &amp;quot;cuenta xs y = undefined&amp;quot;&lt;br /&gt;
&lt;br /&gt;
section ‹Ordenación por mezcla›&lt;br /&gt;
&lt;br /&gt;
text ‹------------------------------------------------------------------ &lt;br /&gt;
  Ejercicio 4. Definir la función&lt;br /&gt;
     mezcla :: int list ⇒ int list ⇒ int list&lt;br /&gt;
  tal que (mezcla xs ys) es la lista obtenida mezclando las listas&lt;br /&gt;
  ordenadas xs e ys. Por ejemplo, &lt;br /&gt;
     mezcla [1,2,5] [3,5,7] = [1,2,3,5,5,7]&lt;br /&gt;
  ---------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
fun mezcla :: &amp;quot;int list ⇒ int list ⇒ int list&amp;quot; where&lt;br /&gt;
  &amp;quot;mezcla xs ys = undefined&amp;quot; &lt;br /&gt;
&lt;br /&gt;
text ‹------------------------------------------------------------------ &lt;br /&gt;
  Ejercicio 5. Definir la función&lt;br /&gt;
     ordenaM :: int list ⇒ int list&lt;br /&gt;
  tal que (ordenaM xs) es la lista obtenida ordenando la lista xs&lt;br /&gt;
  mediante mezclas; es decir, la divide en dos mitades, las ordena y las&lt;br /&gt;
  mezcla. Por ejemplo, &lt;br /&gt;
     ordenaM [3,2,5,2] = [2,2,3,5]&lt;br /&gt;
  ---------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
fun ordenaM :: &amp;quot;int list ⇒ int list&amp;quot; where&lt;br /&gt;
  &amp;quot;ordenaM xs  = undefined&amp;quot; &lt;br /&gt;
&lt;br /&gt;
text ‹------------------------------------------------------------------ &lt;br /&gt;
  Ejercicio 6. Sea x ≤ y. Si y es menor o igual que todos los elementos&lt;br /&gt;
  de xs, entonces x es menor o igual que todos los elementos de xs&lt;br /&gt;
  ---------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma menor_menor: &lt;br /&gt;
  &amp;quot;x ≤ y ⟹ menor y xs ⟶ menor x xs&amp;quot;&lt;br /&gt;
  oops&lt;br /&gt;
&lt;br /&gt;
text ‹------------------------------------------------------------------ &lt;br /&gt;
  Ejercicio 7. Demostrar que el número de veces que aparece n en la&lt;br /&gt;
  mezcla de dos listas es igual a la suma del número de apariciones en&lt;br /&gt;
  cada una de las listas&lt;br /&gt;
  ---------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma cuenta_mezcla: &lt;br /&gt;
  &amp;quot;cuenta (mezcla xs ys) n = cuenta xs n + cuenta ys n&amp;quot;&lt;br /&gt;
  oops&lt;br /&gt;
&lt;br /&gt;
text ‹------------------------------------------------------------------ &lt;br /&gt;
  Ejercicio 8. Demostrar que si x es menor que todos los elementos de&lt;br /&gt;
  ys y de zs, entonces también lo es de su mezcla.&lt;br /&gt;
  ---------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma menor_mezcla:&lt;br /&gt;
  assumes &amp;quot;menor x ys&amp;quot; &lt;br /&gt;
          &amp;quot;menor x zs&amp;quot; &lt;br /&gt;
  shows   &amp;quot;menor x (mezcla ys zs)&amp;quot;&lt;br /&gt;
  oops&lt;br /&gt;
&lt;br /&gt;
text ‹------------------------------------------------------------------ &lt;br /&gt;
  Ejercicio 9. Demostrar que la mezcla de dos listas ordenadas es una&lt;br /&gt;
  lista ordenada. &lt;br /&gt;
&lt;br /&gt;
  Indicación: Usar los siguientes lemas&lt;br /&gt;
  · linorder_not_le: (¬ x ≤ y) = (y &amp;lt; x)&lt;br /&gt;
  · order_less_le:   (x &amp;lt; y) = (x ≤ y ∧ x ≠ y)&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ordenada_mezcla:&lt;br /&gt;
  assumes &amp;quot;ordenada xs&amp;quot; &lt;br /&gt;
    &amp;quot;ordenada ys&amp;quot; &lt;br /&gt;
  shows   &amp;quot;ordenada (mezcla xs ys)&amp;quot;&lt;br /&gt;
  oops&lt;br /&gt;
&lt;br /&gt;
text ‹------------------------------------------------------------------ &lt;br /&gt;
  Ejercicio 10. Demostrar que si x es mayor que 1, entonces el mínimo de&lt;br /&gt;
  x y su mitad es menor que x.&lt;br /&gt;
  ---------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma min_mitad: &lt;br /&gt;
  &amp;quot;1 &amp;lt; x ⟹ min x (x div 2::int) &amp;lt; x&amp;quot;&lt;br /&gt;
  oops&lt;br /&gt;
&lt;br /&gt;
text ‹------------------------------------------------------------------ &lt;br /&gt;
  Ejercicio 11. Demostrar que si x es mayor que 1, entonces x menos su&lt;br /&gt;
  mitad es menor que x. &lt;br /&gt;
  ---------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma menos_mitad: &lt;br /&gt;
  &amp;quot;1 &amp;lt; x ⟹ x - x div (2::int) &amp;lt; x&amp;quot;&lt;br /&gt;
  oops&lt;br /&gt;
&lt;br /&gt;
text ‹------------------------------------------------------------------ &lt;br /&gt;
  Ejercicio 11. Demostrar que (ordenaM xs) está ordenada.&lt;br /&gt;
  ---------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
theorem ordenada_ordenaM:&lt;br /&gt;
  &amp;quot;ordenada (ordenaM xs)&amp;quot;&lt;br /&gt;
  oops&lt;br /&gt;
&lt;br /&gt;
text ‹------------------------------------------------------------------ &lt;br /&gt;
  Ejercicio 12. Demostrar que el número de apariciones de un elemento en&lt;br /&gt;
  la concatenación de dos listas es la suma del número de apariciones en&lt;br /&gt;
  cada una.&lt;br /&gt;
  ---------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma cuenta_conc: &lt;br /&gt;
  &amp;quot;cuenta (xs @ ys) x = cuenta xs x + cuenta ys x&amp;quot;&lt;br /&gt;
  oops&lt;br /&gt;
&lt;br /&gt;
text ‹------------------------------------------------------------------ &lt;br /&gt;
  Ejercicio 13. Demostrar que las listas xs y (ordenaM xs) tienen los&lt;br /&gt;
  mismos elementos.&lt;br /&gt;
  ---------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
theorem cuenta_ordenaM: &lt;br /&gt;
  &amp;quot;cuenta (ordenaM xs) x = cuenta xs x&amp;quot;&lt;br /&gt;
  oops&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Ejercicios&amp;diff=976</id>
		<title>Ejercicios</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Ejercicios&amp;diff=976"/>
		<updated>2020-02-13T14:12:21Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En esta sección se publicarán las relaciones de ejercicios. Las soluciones se escriben de forma colaborativa por los alumnos del curso y no deben tomarse como definitivas.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 1&amp;#039;&amp;#039;&amp;#039;: Programación funcional en Isabelle/HOL. ([[R1 |Enunciado]] y [[Relación 1 | Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 2&amp;#039;&amp;#039;&amp;#039;: Razonamiento sobre programas con Isabelle/HOL. ([[R2 |Enunciado]] y [[Relación 2 | Solución colaborativa]]). &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 3&amp;#039;&amp;#039;&amp;#039;: Razonamiento estructurado sobre programas en Isabelle/HOL. ([[R3 |Enunciado]] y [[Relación 3 | Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Cuantificadores sobre listas. ([[R4 |Enunciado]] y [[Relación 4 | Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Recorridos de árboles. ([[R5 |Enunciado]] y [[Relación 5 | Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Deducción natural proposicional en Isabelle/HOL (1). ([[R6 |Enunciado]] y [[Relación 6 | Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 7&amp;#039;&amp;#039;&amp;#039;: Deducción natural proposicional en Isabelle/HOL (2). ([[R7 |Enunciado]] y [[Relación 7 | Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Formalización y argumentación. ([[R8 |Enunciado]] y [[Relación 8 | Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Deducción natural LPO en Isabelle/HOL. ([[R9 |Enunciado]] y [[Relación 9 | Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Verificación de la ordenación por mezcla. ([[R10 |Enunciado]] y [[Relación 10 | Solución colaborativa]]).&lt;br /&gt;
** &amp;#039;&amp;#039;&amp;#039;Nota&amp;#039;&amp;#039;&amp;#039; Se pueden publicar las soluciones hasta el jueves 20 de febrero a las 6:00.&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Reducci%C3%B3n_de_SAT_a_Clique_en_Haskell&amp;diff=975</id>
		<title>Reducción de SAT a Clique en Haskell</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Reducci%C3%B3n_de_SAT_a_Clique_en_Haskell&amp;diff=975"/>
		<updated>2020-02-06T11:09:55Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;haskell&amp;quot;&amp;gt;&lt;br /&gt;
-- SAT_Clique.hs&lt;br /&gt;
-- Reducción de SAT a Clique.&lt;br /&gt;
-- José A. Alonso Jiménez&lt;br /&gt;
-- Sevilla, 6 de febrero de 2020&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
module SAT_Clique where&lt;br /&gt;
&lt;br /&gt;
import SAT&lt;br /&gt;
import Cliques&lt;br /&gt;
import Data.List&lt;br /&gt;
import Test.QuickCheck&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    nodosFNC :: FNC -&amp;gt; [(Int,Literal)]&lt;br /&gt;
-- tal que (nodosFNC f) es la lista de los literales de las cláuslas de&lt;br /&gt;
-- f junto con el número de la cláusula. Por ejemplo,&lt;br /&gt;
--    λ&amp;gt; nodosFNC [[1,-2,3],[-1,2],[-2,3]]&lt;br /&gt;
--    [(0,1),(0,-2),(0,3),(1,-1),(1,2),(2,-2),(2,3)]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
nodosFNC :: FNC -&amp;gt; [(Int,Literal)]&lt;br /&gt;
nodosFNC f = &lt;br /&gt;
  [(i,x) | (i,xs) &amp;lt;- zip [0..] f&lt;br /&gt;
         , x &amp;lt;- xs]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. El grafo correspondiente a una fórmula f en FNC tiene como&lt;br /&gt;
-- nodos (nodosFNC f). Hay un arco entre los nodos correspondientes a&lt;br /&gt;
-- cláusulas distintas cuyos literales no son complementarios. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
-- &lt;br /&gt;
-- Definir la función&lt;br /&gt;
--    grafoFNC :: FNC -&amp;gt; Grafo (Int,Literal)&lt;br /&gt;
-- tal que (grafo FNC f) es el grafo de f. Por ejemplo, &lt;br /&gt;
--    λ&amp;gt; grafoFNC [[1,-2,3],[-1,2],[-2,3]]&lt;br /&gt;
--    [ ((0,1),(1,2)),  ((0,1),(2,-2)), ((0,1),(2,3)),&lt;br /&gt;
--      ((0,-2),(1,-1)),((0,-2),(2,-2)),((0,-2),(2,3)),&lt;br /&gt;
--      ((0,3),(1,-1)), ((0,3),(1,2)),  ((0,3),(2,-2)),((0,3),(2,3)),&lt;br /&gt;
--      ((1,-1),(2,-2)),((1,-1),(2,3)),&lt;br /&gt;
--      ((1,2),(2,3))]&lt;br /&gt;
--    λ&amp;gt; grafoFNC [[1,2],[1,-2],[-1,2],[-1,-2]]&lt;br /&gt;
--    [((0,1),(1,1)),((0,1),(1,-2)),((0,1),(2,2)),((0,1),(3,-2)),&lt;br /&gt;
--     ((0,2),(1,1)),((0,2),(2,-1)),((0,2),(2,2)),((0,2),(3,-1)),&lt;br /&gt;
--     ((1,1),(2,2)),((1,1),(3,-2)),&lt;br /&gt;
--     ((1,-2),(2,-1)),((1,-2),(3,-1)),((1,-2),(3,-2)),&lt;br /&gt;
--     ((2,-1),(3,-1)),((2,-1),(3,-2)),&lt;br /&gt;
--     ((2,2),(3,-1))]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
grafoFNC :: FNC -&amp;gt; Grafo (Int,Literal)&lt;br /&gt;
grafoFNC f = &lt;br /&gt;
  [ ((i,x),(i&amp;#039;,x&amp;#039;))&lt;br /&gt;
  | ((i,x),(i&amp;#039;,x&amp;#039;)) &amp;lt;- parejas (nodosFNC f)&lt;br /&gt;
  , i&amp;#039; /= i&lt;br /&gt;
  , x&amp;#039; /= complementario x]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    cliquesFNC :: FNC -&amp;gt; [[(Int,Literal)]]&lt;br /&gt;
-- tal que (cliquesFNCf) es la lista de los cliques del grafo de f. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    λ&amp;gt; cliquesFNC [[1,-2,3],[-1,2],[-2,3]]&lt;br /&gt;
--    [[], [(0,1)], [(1,2)], [(0,1),(1,2)], [(2,-2)],&lt;br /&gt;
--     [(0,1),(2,-2)], [(2,3)], [(0,1),(2,3)], [(1,2),(2,3)],&lt;br /&gt;
--     [(0,1),(1,2),(2,3)], [(0,-2)], [(2,-2),(0,-2)], [(2,3),(0,-2)],&lt;br /&gt;
--     [(1,-1)], [(2,-2),(1,-1)], [(2,3),(1,-1)], [(0,-2),(1,-1)],&lt;br /&gt;
--     [(2,-2),(0,-2),(1,-1)], [(2,3),(0,-2),(1,-1)], [(0,3)],&lt;br /&gt;
--     [(1,2),(0,3)], [(2,-2),(0,3)], [(2,3),(0,3)],&lt;br /&gt;
--     [(1,2),(2,3),(0,3)], [(1,-1),(0,3)],&lt;br /&gt;
--     [(2,-2),(1,-1),(0,3)], [(2,3),(1,-1),(0,3)]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
cliquesFNC :: FNC -&amp;gt; [[(Int,Literal)]]&lt;br /&gt;
cliquesFNC f = cliques (grafoFNC f)&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    cliquesCompletos :: FNC -&amp;gt; [[(Int,Literal)]]&lt;br /&gt;
-- tal que (cliquesCompletos f) es la lista de los cliques del grafo de&lt;br /&gt;
-- f que tiene elmismo número de elementos que el número de cláusulas de&lt;br /&gt;
-- f. Por ejemplo,&lt;br /&gt;
--    λ&amp;gt; cliquesCompletos [[1,-2,3],[-1,2],[-2,3]]&lt;br /&gt;
--    [[(0,1),(1,2),(2,3)],   [(2,-2),(0,-2),(1,-1)],&lt;br /&gt;
--     [(2,3),(0,-2),(1,-1)], [(1,2),(2,3),(0,3)],&lt;br /&gt;
--     [(2,-2),(1,-1),(0,3)], [(2,3),(1,-1),(0,3)]]&lt;br /&gt;
--    λ&amp;gt; cliquesCompletos [[1,2],[1,-2],[-1,2],[-1,-2]]&lt;br /&gt;
--    []&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
cliquesCompletos :: FNC -&amp;gt; [[(Int,Literal)]]&lt;br /&gt;
cliquesCompletos cs = kCliques (grafoFNC cs) (length cs)&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    esSatisfaciblePorClique :: FNC -&amp;gt; Bool&lt;br /&gt;
-- tal que (esSatisfaciblePorClique f) se verifica si f no contiene la&lt;br /&gt;
-- cláusula vacía, tiene má de una cláusula y posee algún clique&lt;br /&gt;
-- completo. Por ejemplo, &lt;br /&gt;
--    λ&amp;gt; esSatisfaciblePorClique [[1,-2,3],[-1,2],[-2,3]]&lt;br /&gt;
--    True&lt;br /&gt;
--    λ&amp;gt; esSatisfaciblePorClique [[1,2],[1,-2],[-1,2],[-1,-2]]&lt;br /&gt;
--    False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esSatisfaciblePorClique :: FNC -&amp;gt; Bool&lt;br /&gt;
esSatisfaciblePorClique f =&lt;br /&gt;
     [] `notElem` f&amp;#039;&lt;br /&gt;
  &amp;amp;&amp;amp; (length f&amp;#039; &amp;lt;= 1 || not (null (cliquesCompletos f&amp;#039;)))&lt;br /&gt;
  where f&amp;#039; = nub (map (nub . sort) f) &lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Comprobar con QuickCheck que toda fórmula es satisfacible&lt;br /&gt;
-- si, y solo si, es satisfacible por Clique.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
prop_esSatisfaciblePorClique :: FNC -&amp;gt; Bool&lt;br /&gt;
prop_esSatisfaciblePorClique f =&lt;br /&gt;
  esSatisfacible f == esSatisfaciblePorClique f&lt;br /&gt;
&lt;br /&gt;
-- La comprobación es&lt;br /&gt;
--    λ&amp;gt; quickCheckWith (stdArgs {maxSize=7}) prop_esSatisfaciblePorClique&lt;br /&gt;
--    +++ OK, passed 100 tests.&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    modelosCliqueFNC :: FNC -&amp;gt; [Interpretacion]&lt;br /&gt;
-- tales que (modelosCliqueFNC f) es la lista de los modelos de f&lt;br /&gt;
-- calculados mediante los cliques completos del grafo de f. Por ejemplo,&lt;br /&gt;
--    λ&amp;gt; modelosCliqueFNC [[1,-2,3],[-1,2],[-2,3]]&lt;br /&gt;
--    [[],[1,2,3],[2,3],[3]]&lt;br /&gt;
--    λ&amp;gt; modelosCliqueFNC [[1,-2,3],[3,2],[-2,3]]&lt;br /&gt;
--    [[1,2,3],[1,3],[2,3],[3]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
modelosCliqueFNC :: FNC -&amp;gt; [Interpretacion]&lt;br /&gt;
modelosCliqueFNC f &lt;br /&gt;
  | [] `elem` f&amp;#039;   = []&lt;br /&gt;
  | length f&amp;#039; == 1 = [[a | c &amp;lt;- f&amp;#039;, a &amp;lt;- c, a &amp;gt; 0]]&lt;br /&gt;
  |otherwise       = sort (nub (map nub [ modeloClique xs&lt;br /&gt;
                                        | xs &amp;lt;- cliquesCompletos f]))&lt;br /&gt;
  where f&amp;#039; = nub (map (nub . sort) f) &lt;br /&gt;
        modeloClique xs = [x | (_,x) &amp;lt;- xs, x &amp;gt; 0]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Comprobar con QuickCheck que, para toda fórmula f en FNC,&lt;br /&gt;
-- todos los elementos de (modelosCliqueFNC f) son modelos de f.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
prop_modelosPorClique :: FNC -&amp;gt; Bool&lt;br /&gt;
prop_modelosPorClique f =&lt;br /&gt;
  and [esModelo i f | i &amp;lt;- modelosCliqueFNC f]&lt;br /&gt;
&lt;br /&gt;
-- La comprobación es&lt;br /&gt;
--    λ&amp;gt; quickCheckWith (stdArgs {maxSize=7}) prop_modelosPorClique&lt;br /&gt;
--    +++ OK, passed 100 tests.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=El_problema_Clique_en_Haskel&amp;diff=974</id>
		<title>El problema Clique en Haskel</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=El_problema_Clique_en_Haskel&amp;diff=974"/>
		<updated>2020-02-06T10:59:20Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;haskell&amp;quot;&amp;gt;&lt;br /&gt;
-- Cliques.hs&lt;br /&gt;
-- El problema del clique.&lt;br /&gt;
-- José A. Alonso Jiménez&lt;br /&gt;
-- Sevilla, 6 de febrero de 2020&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
module Cliques where&lt;br /&gt;
&lt;br /&gt;
import Data.List&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Un grafo no dirigido se representa por la lista de sus arcos. Por &lt;br /&gt;
-- ejemplo, el grafo&lt;br /&gt;
--              1  -- 2 -- 4&lt;br /&gt;
--                    | \  |&lt;br /&gt;
--                    |  \ |&lt;br /&gt;
--                    3 -- 5&lt;br /&gt;
-- se representa por [(1,2),(2,3),(2,4),(2,5),(3,5),(4,5)].&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
-- Definir el tipo Grafo.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
type Grafo a = [(a,a)]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    nodos :: Eq a =&amp;gt; Grafo a -&amp;gt; [a]&lt;br /&gt;
-- tal que (nodos g) es la lista de los nodos del grafo g. Por ejemplo,&lt;br /&gt;
--    nodos [(1,2),(2,3),(2,4),(2,5),(3,5),(4,5)]  ==  [1,2,3,4,5]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
nodos :: Eq a =&amp;gt; Grafo a -&amp;gt; [a]&lt;br /&gt;
nodos g = nub (concat [[x,y] | (x,y) &amp;lt;- g])&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio: Definir la función&lt;br /&gt;
--    conectados :: Eq a =&amp;gt; Grafo a -&amp;gt; a -&amp;gt; a -&amp;gt; Bool&lt;br /&gt;
-- tal que (conectados g x y) se verifica si el grafo no dirigido g&lt;br /&gt;
-- posee un arco con extremos x e y. Por ejemplo,&lt;br /&gt;
--    conectados [(1,2),(2,3),(2,4),(2,5),(3,5),(4,5)] 3 2  ==  True&lt;br /&gt;
--    conectados [(1,2),(2,3),(2,4),(2,5),(3,5),(4,5)] 2 3  ==  True&lt;br /&gt;
--    conectados [(1,2),(2,3),(2,4),(2,5),(3,5),(4,5)] 3 4  ==  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
conectados :: Eq a =&amp;gt; Grafo a -&amp;gt; a -&amp;gt; a -&amp;gt; Bool&lt;br /&gt;
conectados g x y =&lt;br /&gt;
  (x,y) `elem` g || (y,x) `elem` g &lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio: Definir la función&lt;br /&gt;
--    parejas :: [a] -&amp;gt; [(a,a)]&lt;br /&gt;
-- tal que (parejas xs) es la lista de las parejas formados por los&lt;br /&gt;
-- elementos de xs y sus siguientes en xs. Por ejemplo,&lt;br /&gt;
--    parejas [1..4] == [(1,2),(1,3),(1,4),(2,3),(2,4),(3,4)]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
parejas :: [a] -&amp;gt; [(a,a)]&lt;br /&gt;
parejas xs =&lt;br /&gt;
  [(x,y) | (x:ys) &amp;lt;- tails xs&lt;br /&gt;
         , y &amp;lt;- ys]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Un clique (en español, pandilla) de un grafo g es un&lt;br /&gt;
-- conjunto de nodos de g tal que todos sus elementos están conectados&lt;br /&gt;
-- en g.&lt;br /&gt;
--&lt;br /&gt;
-- Definir la función&lt;br /&gt;
--    esClique :: Eq a =&amp;gt; Grafo a -&amp;gt; [a] -&amp;gt; Bool&lt;br /&gt;
-- tal que (esClique g xs) se verifica si el conjunto de nodos xs del&lt;br /&gt;
-- grafo g es un clique de g.Por ejemplo,&lt;br /&gt;
--    esClique [(1,2),(2,3),(2,4),(2,5),(3,5),(4,5)] [2,3,5]  ==  True&lt;br /&gt;
--    esClique [(1,2),(2,3),(2,4),(2,5),(3,5),(4,5)] [2,3,4]  ==  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esClique :: Eq a =&amp;gt; Grafo a -&amp;gt; [a] -&amp;gt; Bool&lt;br /&gt;
esClique g xs =&lt;br /&gt;
  and [conectados g x y | (x,y) &amp;lt;- parejas xs]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    cliques :: Eq a =&amp;gt; Grafo a -&amp;gt; [[a]]&lt;br /&gt;
-- tal que (cliques g) es la lista de los cliques del grafo g. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    λ&amp;gt; cliques [(1,2),(2,3),(2,4),(2,5),(3,5),(4,5)]&lt;br /&gt;
--    [[],[1],[2],[1,2],[3],[2,3],[4],[2,4],&lt;br /&gt;
--     [5],[2,5],[3,5],[2,3,5],[4,5],[2,4,5]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
cliques :: Eq a =&amp;gt; Grafo a -&amp;gt; [[a]]&lt;br /&gt;
cliques g =&lt;br /&gt;
  [xs | xs &amp;lt;- subsequences (nodos g)&lt;br /&gt;
      , esClique g xs]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función &lt;br /&gt;
--    kSubconjuntos :: [a] -&amp;gt; Int -&amp;gt; [[a]]&lt;br /&gt;
-- tal que (kSubconjuntos xs k) es la lista de los subconjuntos de xs&lt;br /&gt;
-- con k elementos. Por ejemplo,&lt;br /&gt;
--    ghci&amp;gt; kSubconjuntos &amp;quot;bcde&amp;quot; 2&lt;br /&gt;
--    [&amp;quot;bc&amp;quot;,&amp;quot;bd&amp;quot;,&amp;quot;be&amp;quot;,&amp;quot;cd&amp;quot;,&amp;quot;ce&amp;quot;,&amp;quot;de&amp;quot;]&lt;br /&gt;
--    ghci&amp;gt; kSubconjuntos &amp;quot;bcde&amp;quot; 3&lt;br /&gt;
--    [&amp;quot;bcd&amp;quot;,&amp;quot;bce&amp;quot;,&amp;quot;bde&amp;quot;,&amp;quot;cde&amp;quot;]&lt;br /&gt;
--    ghci&amp;gt; kSubconjuntos &amp;quot;abcde&amp;quot; 3&lt;br /&gt;
--    [&amp;quot;abc&amp;quot;,&amp;quot;abd&amp;quot;,&amp;quot;abe&amp;quot;,&amp;quot;acd&amp;quot;,&amp;quot;ace&amp;quot;,&amp;quot;ade&amp;quot;,&amp;quot;bcd&amp;quot;,&amp;quot;bce&amp;quot;,&amp;quot;bde&amp;quot;,&amp;quot;cde&amp;quot;]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
kSubconjuntos :: [a] -&amp;gt; Int -&amp;gt; [[a]]&lt;br /&gt;
kSubconjuntos _ 0      = [[]]&lt;br /&gt;
kSubconjuntos [] _     = []&lt;br /&gt;
kSubconjuntos (x:xs) k = &lt;br /&gt;
  [x:ys | ys &amp;lt;- kSubconjuntos xs (k-1)] ++ kSubconjuntos xs k  &lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    kCliques :: Eq a =&amp;gt; Grafo a -&amp;gt; Int -&amp;gt; [[a]]&lt;br /&gt;
-- tal que (cliques g k) es la lista de los cliques del grafo g de&lt;br /&gt;
-- tamaño k. Por ejemplo, &lt;br /&gt;
--    λ&amp;gt; kCliques [(1,2),(2,3),(2,4),(2,5),(3,5),(4,5)] 3&lt;br /&gt;
--    [[2,3,5],[2,4,5]]&lt;br /&gt;
--    λ&amp;gt; kCliques [(1,2),(2,3),(2,4),(2,5),(3,5),(4,5)] 2&lt;br /&gt;
--    [[1,2],[2,3],[2,4],[2,5],[3,5],[4,5]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- 1ª definición&lt;br /&gt;
kCliques1 :: Eq a =&amp;gt; Grafo a -&amp;gt; Int -&amp;gt; [[a]]&lt;br /&gt;
kCliques1 g k =&lt;br /&gt;
  [xs | xs &amp;lt;- cliques g&lt;br /&gt;
      , length xs == k]&lt;br /&gt;
&lt;br /&gt;
-- 2ª definición&lt;br /&gt;
kCliques :: Eq a =&amp;gt; Grafo a -&amp;gt; Int -&amp;gt; [[a]]&lt;br /&gt;
kCliques g k =&lt;br /&gt;
  [xs | xs &amp;lt;- kSubconjuntos (nodos g) k&lt;br /&gt;
      , esClique g xs]&lt;br /&gt;
&lt;br /&gt;
-- Comparación de eficiencia&lt;br /&gt;
-- =========================&lt;br /&gt;
&lt;br /&gt;
--    λ&amp;gt; kCliques1 [(n,n+1) | n &amp;lt;- [1..20]] 3&lt;br /&gt;
--    []&lt;br /&gt;
--    (4.28 secs, 3,204,548,608 bytes)&lt;br /&gt;
--    λ&amp;gt; kCliques [(n,n+1) | n &amp;lt;- [1..20]] 3&lt;br /&gt;
--    []&lt;br /&gt;
--    (0.01 secs, 3,075,768 bytes)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Temas&amp;diff=973</id>
		<title>Temas</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Temas&amp;diff=973"/>
		<updated>2020-02-06T10:30:35Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En esta página se irán publicando los temas conforme se vayan estudiando.&lt;br /&gt;
&lt;br /&gt;
== RA con Isabelle/HOL ==&lt;br /&gt;
* [[Tema 1: Programación funcional en Isabelle]].&lt;br /&gt;
* Tema 2: Razonamiento sobre programas:&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/i1m-16/temas/tema-8.pdf Tema 2a: Razonamiento sobre programas Haskell]&lt;br /&gt;
** [[Tema 2b: Razonamiento sobre programas con Isabelle/HOL]].&lt;br /&gt;
* [[Tema 3: Razonamiento estructurado sobre programas en Isabelle/HOL]].&lt;br /&gt;
* [[Tema 4: Razonamiento por casos y por inducción]].&lt;br /&gt;
* [[Tema 5: Razonamiento sobre árboles y bosques]].&lt;br /&gt;
* Tema 6: Deducción natural proposicional:&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/li/temas/tema-1.pdf Tema 6a: Sintaxis y semántica de la lógica proposicional].&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/li/temas/tema-2.pdf Tema 6b: Deducción natural proposicional].&lt;br /&gt;
** [[Tema 6c: Deducción natural proposicional con Isabelle/HOL | Tema 6c: Deducción natural proposicional con Isabelle/HOL]].&lt;br /&gt;
* Tema 7: Deducción natural de primer orden:&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/li/temas/tema-7.pdf Tema 7a: Sintaxis y semántica de la lógica de primer orden].&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/li/temas/tema-8.pdf Tema 7b: Deducción natural en lógica de primer orden].&lt;br /&gt;
** [[Tema 7c: Deducción natural en lógica de primer orden con Isabelle/HOL | Tema 7c: Deducción natural en lógica de primer orden con Isabelle/HOL]]&lt;br /&gt;
&lt;br /&gt;
== Problema SAT ==&lt;br /&gt;
* Tema 8: [https://www.cs.us.es/~jalonso/cursos/m-ra/temas/T8-SAT_solving.pdf SAT (solving)] por Jesús Giráldez Crú.&lt;br /&gt;
* Tema 9: SAT, el procedimiento de Davis-Putnam y reducción de SAT a Clique.&lt;br /&gt;
** Tema 9a: [[El problema SAT en Haskell]].&lt;br /&gt;
** Tema 9b: [https://www.cs.us.es/~jalonso/cursos/lmf-17/temas/tema-6.pdf El algoritmo de Davis-Putnam para SAT].&lt;br /&gt;
** Tema 9c: [[El algoritmo de Davis-Putnam en Haskell]].&lt;br /&gt;
** Tema 9d: [[El problema Clique en Haskel]].&lt;br /&gt;
** Tema 9e: [[Reducción de SAT a Clique en Haskell]].&lt;br /&gt;
** Tema 9f: [[Comparaciones de algoritmos de SAT]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* Tema 6: Verificación de algoritmos de ordenación:&lt;br /&gt;
** [[Tema 6a: Verificación de la ordenación por inserción]].&lt;br /&gt;
** [[Tema 6b: Verificación de la ordenación por mezcla]].&lt;br /&gt;
* [[Tema 9: Editores lógicos]]. &lt;br /&gt;
* [[Tema 10: Caso de estudio: Compilación de expresiones]].&lt;br /&gt;
* [[Tema 11: Definiciones inductivas]].&lt;br /&gt;
* [[Tema 12: Conjuntos, funciones y relaciones]].&lt;br /&gt;
&lt;br /&gt;
== RA con Coq ==&lt;br /&gt;
* [[Tema 1: Programación funcional y métodos elementales de demostración en Coq]].&lt;br /&gt;
* [[Tema 2: Demostraciones por inducción sobre los números naturales en Coq]].&lt;br /&gt;
* [[Tema 3: Datos estructurados en Coq]].&lt;br /&gt;
* [[Tema 4: Polimorfismo y funciones de orden superior en Coq]].&lt;br /&gt;
* [[Tema 5: Tácticas básicas de Coq]].&lt;br /&gt;
* [[Tema 6: Lógica en Coq]].&lt;br /&gt;
* [[Tema 7: Definiciones inductivas en Coq]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* [[Tema 10: Conjuntos, funciones y relaciones]].&lt;br /&gt;
* [http://www.cs.us.es/~jalonso/cursos/dao-12/temas/tema-1.pdf Tema 11: Panorama de la demostración asistida por ordenador].&lt;br /&gt;
* [[Tema 11: Gramáticas libre de contexto]].&lt;br /&gt;
* Tema 12: Misceláneas:&lt;br /&gt;
** [[Tema 12a: Razonamiento modular (Teoría de grupos)]].&lt;br /&gt;
** [[Tema 12b: Razonamiento modular]].&lt;br /&gt;
** [[Tema 12c: Automatización]].&lt;br /&gt;
** [[Tema 12d: Pasos elementales]].&lt;br /&gt;
** [[Tema 12e: Sudoku]].&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Comparaciones_de_algoritmos_de_SAT&amp;diff=972</id>
		<title>Comparaciones de algoritmos de SAT</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Comparaciones_de_algoritmos_de_SAT&amp;diff=972"/>
		<updated>2020-02-06T10:27:06Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: Página creada con «&amp;lt;source lang=&amp;quot;haskell&amp;quot;&amp;gt; -- SAT_DP_Clique.hs -- Comparación de algoritmos de satisfacibilidad. -- José A. Alonso Jiménez -- Sevilla, 6 de febrero de 2020 -- -------------…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;haskell&amp;quot;&amp;gt;&lt;br /&gt;
-- SAT_DP_Clique.hs&lt;br /&gt;
-- Comparación de algoritmos de satisfacibilidad.&lt;br /&gt;
-- José A. Alonso Jiménez&lt;br /&gt;
-- Sevilla, 6 de febrero de 2020&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
import SAT&lt;br /&gt;
import SAT_DavisPutnam&lt;br /&gt;
import SAT_Clique&lt;br /&gt;
&lt;br /&gt;
ejemploSAT, ejemploUNSAT :: Int -&amp;gt; FNC&lt;br /&gt;
ejemploSAT   k = [[-n,n+1] | n &amp;lt;- [1..k]]&lt;br /&gt;
ejemploUNSAT k = [[-n,n+1] | n &amp;lt;- [1..k]] ++ [[1],[-(k+1)]]&lt;br /&gt;
&lt;br /&gt;
-- Comparaciones:&lt;br /&gt;
--    λ&amp;gt; esSatisfacible (ejemploSAT 12) &lt;br /&gt;
--    True&lt;br /&gt;
--    (0.01 secs, 115,664 bytes)&lt;br /&gt;
--    λ&amp;gt; esSatisfaciblePorDP (ejemploSAT 12) &lt;br /&gt;
--    True&lt;br /&gt;
--    (0.01 secs, 169,240 bytes)&lt;br /&gt;
--    λ&amp;gt; esSatisfaciblePorClique (ejemploSAT 12) &lt;br /&gt;
--    True&lt;br /&gt;
--    (16.08 secs, 4,709,712,560 bytes)&lt;br /&gt;
--    &lt;br /&gt;
--    λ&amp;gt; esSatisfacible (ejemploSAT 2000) &lt;br /&gt;
--    True&lt;br /&gt;
--    (0.02 secs, 2,358,672 bytes)&lt;br /&gt;
--    λ&amp;gt; esSatisfaciblePorDP (ejemploSAT 2000) &lt;br /&gt;
--    True&lt;br /&gt;
--    (1.16 secs, 997,415,248 bytes)&lt;br /&gt;
--    &lt;br /&gt;
--    λ&amp;gt; esSatisfacible (ejemploUNSAT 9)&lt;br /&gt;
--    False&lt;br /&gt;
--    (0.03 secs, 3,880,952 bytes)&lt;br /&gt;
--    λ&amp;gt; esSatisfaciblePorDP (ejemploUNSAT 9)&lt;br /&gt;
--    False&lt;br /&gt;
--    (0.01 secs, 153,144 bytes)&lt;br /&gt;
--    λ&amp;gt; esSatisfaciblePorClique (ejemploUNSAT 9)&lt;br /&gt;
--    False&lt;br /&gt;
--    (5.36 secs, 1,621,747,704 bytes)&lt;br /&gt;
--    &lt;br /&gt;
--    λ&amp;gt; esSatisfacible (ejemploUNSAT 20)&lt;br /&gt;
--    False&lt;br /&gt;
--    (9.40 secs, 7,734,421,008 bytes)&lt;br /&gt;
--    λ&amp;gt; esSatisfaciblePorDP (ejemploUNSAT 20)&lt;br /&gt;
--    False&lt;br /&gt;
--    (0.01 secs, 271,552 bytes)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Reducci%C3%B3n_de_SAT_a_Clique_en_Haskell&amp;diff=971</id>
		<title>Reducción de SAT a Clique en Haskell</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Reducci%C3%B3n_de_SAT_a_Clique_en_Haskell&amp;diff=971"/>
		<updated>2020-02-06T10:26:11Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: Página creada con «&amp;lt;source lang=&amp;quot;haskell&amp;quot;&amp;gt; -- SAT_Clique.hs -- Reducción de SAT a Clique. -- José A. Alonso Jiménez -- Sevilla, 6 de febrero de 2020 -- ------------------------------------…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;haskell&amp;quot;&amp;gt;&lt;br /&gt;
-- SAT_Clique.hs&lt;br /&gt;
-- Reducción de SAT a Clique.&lt;br /&gt;
-- José A. Alonso Jiménez&lt;br /&gt;
-- Sevilla, 6 de febrero de 2020&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
module SAT_Clique where&lt;br /&gt;
&lt;br /&gt;
import SAT&lt;br /&gt;
import Cliques&lt;br /&gt;
import Data.List&lt;br /&gt;
import Test.QuickCheck&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    nodosFNC :: FNC -&amp;gt; [(Int,Literal)]&lt;br /&gt;
-- tal que (nodosFNC f) es la lista de los literales de las cláuslas de&lt;br /&gt;
-- f junto con el número de la cláusula. Por ejemplo,&lt;br /&gt;
--    λ&amp;gt; nodosFNC [[1,-2,3],[-1,2],[-2,3]]&lt;br /&gt;
--    [(0,1),(0,-2),(0,3),(1,-1),(1,2),(2,-2),(2,3)]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
nodosFNC :: FNC -&amp;gt; [(Int,Literal)]&lt;br /&gt;
nodosFNC f = &lt;br /&gt;
  [(i,x) | (i,xs) &amp;lt;- zip [0..] f&lt;br /&gt;
         , x &amp;lt;- xs]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. El grafo correspondiente a una fórmula f en FNC tiene como&lt;br /&gt;
-- nodos (nodosFNC f) y hay un arco entre los nodos de cláusulas&lt;br /&gt;
-- distintas cuyos literales no son complementarios. Por ejemplo,&lt;br /&gt;
-- &lt;br /&gt;
-- Definir la función&lt;br /&gt;
--    grafoFNC :: FNC -&amp;gt; Grafo (Int,Literal)&lt;br /&gt;
-- tal que (grafo FNC f) es el grafo de f. Por ejemplo, &lt;br /&gt;
--    λ&amp;gt; grafoFNC [[1,-2,3],[-1,2],[-2,3]]&lt;br /&gt;
--    [ ((0,1),(1,2)),  ((0,1),(2,-2)), ((0,1),(2,3)),&lt;br /&gt;
--      ((0,-2),(1,-1)),((0,-2),(2,-2)),((0,-2),(2,3)),&lt;br /&gt;
--      ((0,3),(1,-1)), ((0,3),(1,2)),  ((0,3),(2,-2)),((0,3),(2,3)),&lt;br /&gt;
--      ((1,-1),(2,-2)),((1,-1),(2,3)),&lt;br /&gt;
--      ((1,2),(2,3))]&lt;br /&gt;
--    λ&amp;gt; grafoFNC [[1,2],[1,-2],[-1,2],[-1,-2]]&lt;br /&gt;
--    [((0,1),(1,1)),((0,1),(1,-2)),((0,1),(2,2)),((0,1),(3,-2)),&lt;br /&gt;
--     ((0,2),(1,1)),((0,2),(2,-1)),((0,2),(2,2)),((0,2),(3,-1)),&lt;br /&gt;
--     ((1,1),(2,2)),((1,1),(3,-2)),&lt;br /&gt;
--     ((1,-2),(2,-1)),((1,-2),(3,-1)),((1,-2),(3,-2)),&lt;br /&gt;
--     ((2,-1),(3,-1)),((2,-1),(3,-2)),&lt;br /&gt;
--     ((2,2),(3,-1))]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
grafoFNC :: FNC -&amp;gt; Grafo (Int,Literal)&lt;br /&gt;
grafoFNC f = &lt;br /&gt;
  [ ((i,x),(i&amp;#039;,x&amp;#039;))&lt;br /&gt;
  | ((i,x),(i&amp;#039;,x&amp;#039;)) &amp;lt;- parejas (nodosFNC f)&lt;br /&gt;
  , i&amp;#039; /= i&lt;br /&gt;
  , x&amp;#039; /= complementario x]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    cliquesFNC :: FNC -&amp;gt; [[(Int,Literal)]]&lt;br /&gt;
-- tal que (cliquesFNCf) es la lista de los cliques del grafo de f. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    λ&amp;gt; cliquesFNC [[1,-2,3],[-1,2],[-2,3]]&lt;br /&gt;
--    [[], [(0,1)], [(1,2)], [(0,1),(1,2)], [(2,-2)],&lt;br /&gt;
--     [(0,1),(2,-2)], [(2,3)], [(0,1),(2,3)], [(1,2),(2,3)],&lt;br /&gt;
--     [(0,1),(1,2),(2,3)], [(0,-2)], [(2,-2),(0,-2)], [(2,3),(0,-2)],&lt;br /&gt;
--     [(1,-1)], [(2,-2),(1,-1)], [(2,3),(1,-1)], [(0,-2),(1,-1)],&lt;br /&gt;
--     [(2,-2),(0,-2),(1,-1)], [(2,3),(0,-2),(1,-1)], [(0,3)],&lt;br /&gt;
--     [(1,2),(0,3)], [(2,-2),(0,3)], [(2,3),(0,3)],&lt;br /&gt;
--     [(1,2),(2,3),(0,3)], [(1,-1),(0,3)],&lt;br /&gt;
--     [(2,-2),(1,-1),(0,3)], [(2,3),(1,-1),(0,3)]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
cliquesFNC :: FNC -&amp;gt; [[(Int,Literal)]]&lt;br /&gt;
cliquesFNC f = cliques (grafoFNC f)&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    cliquesCompletos :: FNC -&amp;gt; [[(Int,Literal)]]&lt;br /&gt;
-- tal que (cliquesCompletos f) es la lista de los cliques del grafo de&lt;br /&gt;
-- f que tiene elmismo número de elementos que el número de cláusulas de&lt;br /&gt;
-- f. Por ejemplo,&lt;br /&gt;
--    λ&amp;gt; cliquesCompletos [[1,-2,3],[-1,2],[-2,3]]&lt;br /&gt;
--    [[(0,1),(1,2),(2,3)],   [(2,-2),(0,-2),(1,-1)],&lt;br /&gt;
--     [(2,3),(0,-2),(1,-1)], [(1,2),(2,3),(0,3)],&lt;br /&gt;
--     [(2,-2),(1,-1),(0,3)], [(2,3),(1,-1),(0,3)]]&lt;br /&gt;
--    λ&amp;gt; cliquesCompletos [[1,2],[1,-2],[-1,2],[-1,-2]]&lt;br /&gt;
--    []&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
cliquesCompletos :: FNC -&amp;gt; [[(Int,Literal)]]&lt;br /&gt;
cliquesCompletos cs = kCliques (grafoFNC cs) (length cs)&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    esSatisfaciblePorClique :: FNC -&amp;gt; Bool&lt;br /&gt;
-- tal que (esSatisfaciblePorClique f) se verifica si f no contiene la&lt;br /&gt;
-- cláusula vacía, tiene má de una cláusula y posee algún clique&lt;br /&gt;
-- completo. Por ejemplo, &lt;br /&gt;
--    λ&amp;gt; esSatisfaciblePorClique [[1,-2,3],[-1,2],[-2,3]]&lt;br /&gt;
--    True&lt;br /&gt;
--    λ&amp;gt; esSatisfaciblePorClique [[1,2],[1,-2],[-1,2],[-1,-2]]&lt;br /&gt;
--    False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esSatisfaciblePorClique :: FNC -&amp;gt; Bool&lt;br /&gt;
esSatisfaciblePorClique f =&lt;br /&gt;
     [] `notElem` f&amp;#039;&lt;br /&gt;
  &amp;amp;&amp;amp; (length f&amp;#039; &amp;lt;= 1 || not (null (cliquesCompletos f&amp;#039;)))&lt;br /&gt;
  where f&amp;#039; = nub (map (nub . sort) f) &lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Comprobar con QuickCheck que toda fórmula es satisfacible&lt;br /&gt;
-- si, y solo si, es satisfacible por Clique.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
prop_esSatisfaciblePorClique :: FNC -&amp;gt; Bool&lt;br /&gt;
prop_esSatisfaciblePorClique f =&lt;br /&gt;
  esSatisfacible f == esSatisfaciblePorClique f&lt;br /&gt;
&lt;br /&gt;
-- La comprobación es&lt;br /&gt;
--    λ&amp;gt; quickCheckWith (stdArgs {maxSize=7}) prop_esSatisfaciblePorClique&lt;br /&gt;
--    +++ OK, passed 100 tests.&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    modelosCliqueFNC :: FNC -&amp;gt; [Interpretacion]&lt;br /&gt;
-- tales que (modelosCliqueFNC f) es la lista de los modelos de f&lt;br /&gt;
-- calculados mediante los cliques completos del grafo de f. Por ejemplo,&lt;br /&gt;
--    λ&amp;gt; modelosCliqueFNC [[1,-2,3],[-1,2],[-2,3]]&lt;br /&gt;
--    [[],[1,2,3],[2,3],[3]]&lt;br /&gt;
--    λ&amp;gt; modelosCliqueFNC [[1,-2,3],[3,2],[-2,3]]&lt;br /&gt;
--    [[1,2,3],[1,3],[2,3],[3]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
modelosCliqueFNC :: FNC -&amp;gt; [Interpretacion]&lt;br /&gt;
modelosCliqueFNC f &lt;br /&gt;
  | [] `elem` f&amp;#039;   = []&lt;br /&gt;
  | length f&amp;#039; == 1 = [[a | c &amp;lt;- f&amp;#039;, a &amp;lt;- c, a &amp;gt; 0]]&lt;br /&gt;
  |otherwise       = sort (nub (map nub [ modeloClique xs&lt;br /&gt;
                                        | xs &amp;lt;- cliquesCompletos f]))&lt;br /&gt;
  where f&amp;#039; = nub (map (nub . sort) f) &lt;br /&gt;
        modeloClique xs = [x | (_,x) &amp;lt;- xs, x &amp;gt; 0]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Comprobar con QuickCheck que, para toda fórmula f en FNC,&lt;br /&gt;
-- todos los elementos de (modelosCliqueFNC f) son modelos de f.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
prop_modelosPorClique :: FNC -&amp;gt; Bool&lt;br /&gt;
prop_modelosPorClique f =&lt;br /&gt;
  and [esModelo i f | i &amp;lt;- modelosCliqueFNC f]&lt;br /&gt;
&lt;br /&gt;
-- La comprobación es&lt;br /&gt;
--    λ&amp;gt; quickCheckWith (stdArgs {maxSize=7}) prop_modelosPorClique&lt;br /&gt;
--    +++ OK, passed 100 tests.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=El_problema_Clique_en_Haskel&amp;diff=970</id>
		<title>El problema Clique en Haskel</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=El_problema_Clique_en_Haskel&amp;diff=970"/>
		<updated>2020-02-06T10:25:01Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: Página creada con «&amp;lt;source lang=&amp;quot;haskell&amp;quot;&amp;gt; -- Cliques.hs -- El problema del clique. -- José A. Alonso Jiménez -- Sevilla, 6 de febrero de 2020 -- -------------------------------------------…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;haskell&amp;quot;&amp;gt;&lt;br /&gt;
-- Cliques.hs&lt;br /&gt;
-- El problema del clique.&lt;br /&gt;
-- José A. Alonso Jiménez&lt;br /&gt;
-- Sevilla, 6 de febrero de 2020&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
module Cliques where&lt;br /&gt;
&lt;br /&gt;
import Data.List&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Un grafo se representa por la lista de sus arcos. Por ejemplo, el&lt;br /&gt;
-- grafo&lt;br /&gt;
--              1  -- 2 -- 4&lt;br /&gt;
--                    | \  |&lt;br /&gt;
--                    |  \ |&lt;br /&gt;
--                    3 -- 5&lt;br /&gt;
-- se representa por [(1,2),(2,3),(2,4),(2,5),(3,5),(4,5)].&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
-- Definir el tipo Grafo.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
type Grafo a = [(a,a)]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    nodos :: Eq a =&amp;gt; Grafo a -&amp;gt; [a]&lt;br /&gt;
-- tal que (nodos g) es la lista de los nodos del grafo g. Por ejemplo,&lt;br /&gt;
--    nodos [(1,2),(2,3),(2,4),(2,5),(3,5),(4,5)]  ==  [1,2,3,4,5]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
nodos :: Eq a =&amp;gt; Grafo a -&amp;gt; [a]&lt;br /&gt;
nodos g = nub (concat [[x,y] | (x,y) &amp;lt;- g])&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio: Definir la función&lt;br /&gt;
--    conectados :: Eq a =&amp;gt; Grafo a -&amp;gt; a -&amp;gt; a -&amp;gt; Bool&lt;br /&gt;
-- tal que (conectados g x y) se verifica si el grafo no dirigido g&lt;br /&gt;
-- posee un arco con extremos x e y. Por ejemplo,&lt;br /&gt;
--    conectados [(1,2),(2,3),(2,4),(2,5),(3,5),(4,5)] 3 2  ==  True&lt;br /&gt;
--    conectados [(1,2),(2,3),(2,4),(2,5),(3,5),(4,5)] 2 3  ==  True&lt;br /&gt;
--    conectados [(1,2),(2,3),(2,4),(2,5),(3,5),(4,5)] 3 4  ==  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
conectados :: Eq a =&amp;gt; Grafo a -&amp;gt; a -&amp;gt; a -&amp;gt; Bool&lt;br /&gt;
conectados g x y =&lt;br /&gt;
  (x,y) `elem` g || (y,x) `elem` g &lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio: Definir la función&lt;br /&gt;
--    parejas :: [a] -&amp;gt; [(a,a)]&lt;br /&gt;
-- tal que (parejas xs) es la lista de las parejas formados por los&lt;br /&gt;
-- elementos de xs y sus siguientes en xs. Por ejemplo,&lt;br /&gt;
--    parejas [1..4] == [(1,2),(1,3),(1,4),(2,3),(2,4),(3,4)]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
parejas :: [a] -&amp;gt; [(a,a)]&lt;br /&gt;
parejas xs =&lt;br /&gt;
  [(x,y) | (x:ys) &amp;lt;- tails xs&lt;br /&gt;
         , y &amp;lt;- ys]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Un clique (en español, pandilla) de un grafo g es un&lt;br /&gt;
-- conjunto de nodos de g tal que todos sus elementos están conectados&lt;br /&gt;
-- en g.&lt;br /&gt;
--&lt;br /&gt;
-- Definir la función&lt;br /&gt;
--    esClique :: Eq a =&amp;gt; Grafo a -&amp;gt; [a] -&amp;gt; Bool&lt;br /&gt;
-- tal que (esClique g xs) se verifica si el conjunto de nodos xs del&lt;br /&gt;
-- grafo g es un clique de g.Por ejemplo,&lt;br /&gt;
--    esClique [(1,2),(2,3),(2,4),(2,5),(3,5),(4,5)] [2,3,5]  ==  True&lt;br /&gt;
--    esClique [(1,2),(2,3),(2,4),(2,5),(3,5),(4,5)] [2,3,4]  ==  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esClique :: Eq a =&amp;gt; Grafo a -&amp;gt; [a] -&amp;gt; Bool&lt;br /&gt;
esClique g xs =&lt;br /&gt;
  and [conectados g x y | (x,y) &amp;lt;- parejas xs]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    cliques :: Eq a =&amp;gt; Grafo a -&amp;gt; [[a]]&lt;br /&gt;
-- tal que (cliques g) es la lista de los cliques del grafo g. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    λ&amp;gt; cliques [(1,2),(2,3),(2,4),(2,5),(3,5),(4,5)]&lt;br /&gt;
--    [[],[1],[2],[1,2],[3],[2,3],[4],[2,4],&lt;br /&gt;
--     [5],[2,5],[3,5],[2,3,5],[4,5],[2,4,5]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
cliques :: Eq a =&amp;gt; Grafo a -&amp;gt; [[a]]&lt;br /&gt;
cliques g =&lt;br /&gt;
  [xs | xs &amp;lt;- subsequences (nodos g)&lt;br /&gt;
      , esClique g xs]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función &lt;br /&gt;
--    kSubconjuntos :: [a] -&amp;gt; Int -&amp;gt; [[a]]&lt;br /&gt;
-- tal que (kSubconjuntos xs k) es la lista de los subconjuntos de xs&lt;br /&gt;
-- con k elementos. Por ejemplo,&lt;br /&gt;
--    ghci&amp;gt; kSubconjuntos &amp;quot;bcde&amp;quot; 2&lt;br /&gt;
--    [&amp;quot;bc&amp;quot;,&amp;quot;bd&amp;quot;,&amp;quot;be&amp;quot;,&amp;quot;cd&amp;quot;,&amp;quot;ce&amp;quot;,&amp;quot;de&amp;quot;]&lt;br /&gt;
--    ghci&amp;gt; kSubconjuntos &amp;quot;bcde&amp;quot; 3&lt;br /&gt;
--    [&amp;quot;bcd&amp;quot;,&amp;quot;bce&amp;quot;,&amp;quot;bde&amp;quot;,&amp;quot;cde&amp;quot;]&lt;br /&gt;
--    ghci&amp;gt; kSubconjuntos &amp;quot;abcde&amp;quot; 3&lt;br /&gt;
--    [&amp;quot;abc&amp;quot;,&amp;quot;abd&amp;quot;,&amp;quot;abe&amp;quot;,&amp;quot;acd&amp;quot;,&amp;quot;ace&amp;quot;,&amp;quot;ade&amp;quot;,&amp;quot;bcd&amp;quot;,&amp;quot;bce&amp;quot;,&amp;quot;bde&amp;quot;,&amp;quot;cde&amp;quot;]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
kSubconjuntos :: [a] -&amp;gt; Int -&amp;gt; [[a]]&lt;br /&gt;
kSubconjuntos _ 0      = [[]]&lt;br /&gt;
kSubconjuntos [] _     = []&lt;br /&gt;
kSubconjuntos (x:xs) k = &lt;br /&gt;
  [x:ys | ys &amp;lt;- kSubconjuntos xs (k-1)] ++ kSubconjuntos xs k  &lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    kCliques :: Eq a =&amp;gt; Grafo a -&amp;gt; Int -&amp;gt; [[a]]&lt;br /&gt;
-- tal que (cliques g k) es la lista de los cliques del grafo g de&lt;br /&gt;
-- tamaño k. Por ejemplo, &lt;br /&gt;
--    λ&amp;gt; kCliques [(1,2),(2,3),(2,4),(2,5),(3,5),(4,5)] 3&lt;br /&gt;
--    [[2,3,5],[2,4,5]]&lt;br /&gt;
--    λ&amp;gt; kCliques [(1,2),(2,3),(2,4),(2,5),(3,5),(4,5)] 2&lt;br /&gt;
--    [[1,2],[2,3],[2,4],[2,5],[3,5],[4,5]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- 1ª definición&lt;br /&gt;
kCliques1 :: Eq a =&amp;gt; Grafo a -&amp;gt; Int -&amp;gt; [[a]]&lt;br /&gt;
kCliques1 g k =&lt;br /&gt;
  [xs | xs &amp;lt;- cliques g&lt;br /&gt;
      , length xs == k]&lt;br /&gt;
&lt;br /&gt;
-- 2ª definición&lt;br /&gt;
kCliques :: Eq a =&amp;gt; Grafo a -&amp;gt; Int -&amp;gt; [[a]]&lt;br /&gt;
kCliques g k =&lt;br /&gt;
  [xs | xs &amp;lt;- kSubconjuntos (nodos g) k&lt;br /&gt;
      , esClique g xs]&lt;br /&gt;
&lt;br /&gt;
-- Comparación de eficiencia&lt;br /&gt;
-- =========================&lt;br /&gt;
&lt;br /&gt;
--    λ&amp;gt; kCliques1 [(n,n+1) | n &amp;lt;- [1..20]] 3&lt;br /&gt;
--    []&lt;br /&gt;
--    (4.28 secs, 3,204,548,608 bytes)&lt;br /&gt;
--    λ&amp;gt; kCliques [(n,n+1) | n &amp;lt;- [1..20]] 3&lt;br /&gt;
--    []&lt;br /&gt;
--    (0.01 secs, 3,075,768 bytes)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=El_algoritmo_de_Davis-Putnam_en_Haskell&amp;diff=969</id>
		<title>El algoritmo de Davis-Putnam en Haskell</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=El_algoritmo_de_Davis-Putnam_en_Haskell&amp;diff=969"/>
		<updated>2020-02-06T10:24:11Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: Página creada con «&amp;lt;source lang=&amp;quot;haskell&amp;quot;&amp;gt; -- DavisPutnam.hs -- El procedimiento de Davis y Putnam para SAT -- José A. Alonso Jiménez &amp;lt;jalonso@us,es&amp;gt; -- Sevilla, 4 de febrero de 2020 -- ---…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;haskell&amp;quot;&amp;gt;&lt;br /&gt;
-- DavisPutnam.hs&lt;br /&gt;
-- El procedimiento de Davis y Putnam para SAT&lt;br /&gt;
-- José A. Alonso Jiménez &amp;lt;jalonso@us,es&amp;gt;&lt;br /&gt;
-- Sevilla, 4 de febrero de 2020&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
module SAT_DavisPutnam where&lt;br /&gt;
&lt;br /&gt;
import SAT&lt;br /&gt;
import Data.List &lt;br /&gt;
import Test.QuickCheck&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- § Eliminación de tautologías&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    esTautologia :: Clausula -&amp;gt; Bool&lt;br /&gt;
-- tal que (esTautologia c) se verifica si c es una tautología. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    esTautologia [1,2,-1]  ==  True&lt;br /&gt;
--    esTautologia [1,2,-3]  ==  False&lt;br /&gt;
--    esTautologia []        ==  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esTautologia :: Clausula -&amp;gt; Bool&lt;br /&gt;
esTautologia = esValidaClausula&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    eliminaTautologias :: FNC -&amp;gt; FNC&lt;br /&gt;
-- tal que (eliminaTautologias s) es el conjunto obtenido eliminando las&lt;br /&gt;
-- tautologías de s. Por ejemplo,&lt;br /&gt;
--    eliminaTautologias [[1,2],[1,3,-1]]  ==  [[1,2]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
eliminaTautologias :: FNC -&amp;gt; FNC&lt;br /&gt;
eliminaTautologias s =&lt;br /&gt;
  [c | c &amp;lt;- s, not (esTautologia c)]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- § Eliminación de cláusulas unitarias&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    esUnitaria :: Clausula -&amp;gt; Bool&lt;br /&gt;
-- tal que (esUnitaria c) se verifica si la cláusula c es unitaria . Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    esUnitaria [3]    ==  True&lt;br /&gt;
--    esUnitaria [-3]   ==  True&lt;br /&gt;
--    esUnitaria [3,2]  ==  False&lt;br /&gt;
--    esUnitaria []     ==  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esUnitaria :: Clausula -&amp;gt; Bool&lt;br /&gt;
esUnitaria [_] = True&lt;br /&gt;
esUnitaria _   = False&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    eliminaClausulaUnitaria :: Literal -&amp;gt; FNC -&amp;gt; FNC&lt;br /&gt;
-- tal que (eliminaClausulaUnitaria l s) es el conjunto obtenido al&lt;br /&gt;
-- reducir s por la eliminación de la cláusula unitaria formada por el&lt;br /&gt;
-- literal l. Por ejemplo,&lt;br /&gt;
--    λ&amp;gt; eliminaClausulaUnitaria (-1) [[1,2,-3],[1,-2],[-1],[3]]&lt;br /&gt;
--    [[2,-3],[-2],[3]]&lt;br /&gt;
--    λ&amp;gt; eliminaClausulaUnitaria (-2) [[2,-3],[-2],[3]]&lt;br /&gt;
--    [[-3],[3]]&lt;br /&gt;
--    λ&amp;gt; eliminaClausulaUnitaria (-3) [[-3],[3],[1]]&lt;br /&gt;
--    [[],[1]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
eliminaClausulaUnitaria :: Literal -&amp;gt; FNC -&amp;gt; FNC&lt;br /&gt;
eliminaClausulaUnitaria l s =&lt;br /&gt;
  [delete (complementario l) c | c &amp;lt;- s, notElem l c]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    clausulaUnitaria :: FNC -&amp;gt; Maybe Literal&lt;br /&gt;
-- tal que (clausulaUnitaria s) es la primera cláusula unitaria de s, si&lt;br /&gt;
-- s tiene cláusulas unitarias y nada en caso contrario. Por ejemplo,&lt;br /&gt;
--    clausulaUnitaria [[1,2],[1],[-2]]  ==  Just 1&lt;br /&gt;
--    clausulaUnitaria [[1,2],[1,-2]]  ==  Nothing&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
clausulaUnitaria :: FNC -&amp;gt; Maybe Literal&lt;br /&gt;
clausulaUnitaria [] = Nothing&lt;br /&gt;
clausulaUnitaria (c:cs) &lt;br /&gt;
  | esUnitaria c = Just (head c)&lt;br /&gt;
  | otherwise    = clausulaUnitaria cs&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    eliminaClausulasUnitarias :: FNC -&amp;gt; FNC&lt;br /&gt;
-- tal que (eliminaClausulasUnitarias s) es el conjunto obtenido&lt;br /&gt;
-- aplicando el proceso de eliminación de cláusulas unitarias a s. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    λ&amp;gt; eliminaClausulasUnitarias [[1,2,-3],[1,-2],[-1],[3],[5]]&lt;br /&gt;
--    [[],[5]]&lt;br /&gt;
--    λ&amp;gt; eliminaClausulasUnitarias [[1,2],[-2],[-1,2,-3]]&lt;br /&gt;
--    []&lt;br /&gt;
--    λ&amp;gt; eliminaClausulasUnitarias [[-1,2],[1],[3,5]]&lt;br /&gt;
--    [[3,5]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
eliminaClausulasUnitarias :: FNC -&amp;gt; FNC&lt;br /&gt;
eliminaClausulasUnitarias s &lt;br /&gt;
  | elem [] s                     = s&lt;br /&gt;
  | clausulaUnitaria s == Nothing = s &lt;br /&gt;
  | otherwise                     =&lt;br /&gt;
      eliminaClausulasUnitarias (eliminaClausulaUnitaria c s)&lt;br /&gt;
  where Just c = clausulaUnitaria s&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Eliminación de literales puros                                     --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    literales :: FNC -&amp;gt; [Literal]&lt;br /&gt;
-- tal que (literales f) es el conjunto de literales de f. Por ejemplo,&lt;br /&gt;
--    literales [[1,2,-3],[1,2,-1]]  ==  [1,2,-3,-1]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
literales :: FNC -&amp;gt; [Literal]&lt;br /&gt;
literales = unionGeneral&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    esLiteralPuro :: Literal -&amp;gt; FNC -&amp;gt; Bool&lt;br /&gt;
-- tal que (esLiteralPuro l f) se verifica si l es puro en f. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    esLiteralPuro 1 [[1,2],[1,-2],[3,2],[3,-2]]  ==  True&lt;br /&gt;
--    esLiteralPuro 2 [[1,2],[1,-2],[3,2],[3,-2]]  ==  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esLiteralPuro :: Literal -&amp;gt; FNC -&amp;gt; Bool&lt;br /&gt;
esLiteralPuro l f =&lt;br /&gt;
  and [notElem l&amp;#039; c | c &amp;lt;- f]&lt;br /&gt;
  where l&amp;#039; = complementario l&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    eliminaLiteralPuro :: Literal -&amp;gt; FNC -&amp;gt; FNC&lt;br /&gt;
-- tal que (eliminaLiteralPuro l f) es el conjunto obtenido eliminando&lt;br /&gt;
-- el literal puro l de f. Por ejemplo,&lt;br /&gt;
--    eliminaLiteralPuro 1 [[1,2],[1,-2],[3,2],[3,-2]]  ==  [[3,2],[3,-2]]&lt;br /&gt;
--    eliminaLiteralPuro 3 [[3,2],[3,-2]]  ==  []&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
eliminaLiteralPuro :: Literal -&amp;gt; FNC -&amp;gt; FNC&lt;br /&gt;
eliminaLiteralPuro l f =&lt;br /&gt;
  [c | c &amp;lt;- f, l `notElem` c]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    literalesPuros :: FNC -&amp;gt; [Literal]&lt;br /&gt;
-- tal que (literalesPuros f) es el conjunto de los literales puros de&lt;br /&gt;
-- f. Por ejemplo, &lt;br /&gt;
--    literalesPuros [[1,2],[1,-2],[3,2],[3,-2]]  ==  [1,3]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
literalesPuros :: FNC -&amp;gt; [Literal]&lt;br /&gt;
literalesPuros f =&lt;br /&gt;
  [l | l &amp;lt;- literales f, esLiteralPuro l f] &lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    eliminaLiteralesPuros :: FNC -&amp;gt; FNC&lt;br /&gt;
-- tal que (eliminaLiteralesPuros f) es el conjunto obtenido aplicando a&lt;br /&gt;
-- f el proceso de eliminación de literales puros. Por ejemplo,&lt;br /&gt;
--    eliminaLiteralesPuros [[1,2],[1,-2],[3,2],[3,-2]]  ==  []&lt;br /&gt;
--    eliminaLiteralesPuros [[1,2],[3,-5],[-3,5]]  ==  [[3,-5],[-3,5]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
eliminaLiteralesPuros :: FNC -&amp;gt; FNC&lt;br /&gt;
eliminaLiteralesPuros f &lt;br /&gt;
  | null lp   = f&lt;br /&gt;
  | otherwise = &lt;br /&gt;
      eliminaLiteralesPuros (eliminaLiteralPuro (head lp) f)&lt;br /&gt;
  where lp = literalesPuros f&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- § Bifurcación&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    bifurcacion :: FNC -&amp;gt; Literal -&amp;gt; (FNC,FNC)&lt;br /&gt;
-- tal que (bifurcacion f l) es la bifurcación de f según el literal&lt;br /&gt;
-- l. Por ejemplo, &lt;br /&gt;
--    λ&amp;gt; bifurcacion [[1,-2],[-1,2],[2,-3],[-2,-3]] 1&lt;br /&gt;
--    ([[-2],[2,-3],[-2,-3]],[[2],[2,-3],[-2,-3]])&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
bifurcacion :: FNC -&amp;gt; Literal -&amp;gt; (FNC,FNC)&lt;br /&gt;
bifurcacion f l =&lt;br /&gt;
  ([delete l c  | c &amp;lt;- f, elem l c]  ++ cláusulas_sin_l_ni_l&amp;#039;,&lt;br /&gt;
   [delete l&amp;#039; c | c &amp;lt;- f, elem l&amp;#039; c] ++ cláusulas_sin_l_ni_l&amp;#039;)&lt;br /&gt;
  where l&amp;#039;                    = complementario l&lt;br /&gt;
        cláusulas_sin_l_ni_l&amp;#039; = [c | c &amp;lt;- f, notElem l c, notElem l&amp;#039; c]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- § Algoritmo de Davis y Putnam (DP)&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    tieneClausulasUnitarias :: FNC -&amp;gt; Bool&lt;br /&gt;
-- tal que (tieneClausulasUnitarias f) se verifica si f tiene cláusulas&lt;br /&gt;
-- unitarias. Por ejemplo, &lt;br /&gt;
--    tieneClausulasUnitarias [[1,2],[1],[-2]]  ==  True&lt;br /&gt;
--    tieneClausulasUnitarias [[1,2],[1,-2]]  ==  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
tieneClausulasUnitarias :: FNC -&amp;gt; Bool&lt;br /&gt;
tieneClausulasUnitarias f =&lt;br /&gt;
  clausulaUnitaria f /= Nothing&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    tieneLiteralesPuros :: FNC -&amp;gt; Bool&lt;br /&gt;
-- tal que (tieneLiteralesPuros f) se verifica si f tiene literales&lt;br /&gt;
-- puros. Por ejemplo, &lt;br /&gt;
--    tieneLiteralesPuros [[1,2],[1,-2],[3,2],[3,-2]]    ==  True&lt;br /&gt;
--    tieneLiteralesPuros [[1,2],[-1,-2],[-3,2],[3,-2]]  ==  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
tieneLiteralesPuros :: FNC -&amp;gt; Bool&lt;br /&gt;
tieneLiteralesPuros f =&lt;br /&gt;
  not (null (literalesPuros f))&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    esInsatisfaciblePorDP :: FNC -&amp;gt; Bool&lt;br /&gt;
-- tal que (esInsatisfaciblePorDP f) se verifica si f es insatisfacible&lt;br /&gt;
-- mediante el algoritmo de Davis y Putnam. Por ejemplo, &lt;br /&gt;
--    esInsatisfaciblePorDP [[1,2],[1,2,-1]]                ==  False&lt;br /&gt;
--    esInsatisfaciblePorDP [[1,2,-3],[1,-2],[-1],[3],[5]]  ==  True&lt;br /&gt;
--    esInsatisfaciblePorDP [[1,2],[-2],[-1,2,-3]]          ==  False&lt;br /&gt;
--    esInsatisfaciblePorDP [[-1,2],[1],[3,5]]              ==  False&lt;br /&gt;
--    esInsatisfaciblePorDP [[1,2],[1,-2],[3,2],[3,-2]]     ==  False&lt;br /&gt;
--    esInsatisfaciblePorDP [[1,2],[3,-4],[-3,4]]           ==  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esInsatisfaciblePorDP :: FNC -&amp;gt; Bool&lt;br /&gt;
esInsatisfaciblePorDP f =&lt;br /&gt;
  esInsatisfaciblePorDP&amp;#039; (eliminaTautologias f)&lt;br /&gt;
&lt;br /&gt;
esInsatisfaciblePorDP&amp;#039; :: FNC -&amp;gt; Bool&lt;br /&gt;
esInsatisfaciblePorDP&amp;#039; f&lt;br /&gt;
  | null f = False&lt;br /&gt;
  | elem [] f = True&lt;br /&gt;
  | tieneClausulasUnitarias f = &lt;br /&gt;
      esInsatisfaciblePorDP&amp;#039; (eliminaClausulasUnitarias f)&lt;br /&gt;
  | tieneLiteralesPuros f =&lt;br /&gt;
      esInsatisfaciblePorDP&amp;#039; (eliminaLiteralesPuros f)&lt;br /&gt;
  | otherwise = &lt;br /&gt;
      (esInsatisfaciblePorDP&amp;#039; s1) &amp;amp;&amp;amp; (esInsatisfaciblePorDP&amp;#039; s2)&lt;br /&gt;
  where l       = head (head f)&lt;br /&gt;
        (s1,s2) = bifurcacion f l&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    esSatisfaciblePorDP :: FNC -&amp;gt; Bool&lt;br /&gt;
-- tal que (esSatisfaciblePorDP f) se verifica si f es satisfacible&lt;br /&gt;
-- mediante el algoritmo de Davis y Putnam. Por ejemplo, &lt;br /&gt;
--    esSatisfaciblePorDP [[1,2],[1,2,-1]]                ==  True&lt;br /&gt;
--    esSatisfaciblePorDP [[1,2,-3],[1,-2],[-1],[3],[5]]  ==  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esSatisfaciblePorDP :: FNC -&amp;gt; Bool&lt;br /&gt;
esSatisfaciblePorDP = not . esInsatisfaciblePorDP &lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- § Corrección del algoritmo de Davis y Putnam                       --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Comprobar con QuickCheck que el algoritmo De Davis y&lt;br /&gt;
-- Putnam es correcto; es decir, para toda fórmula f, f es&lt;br /&gt;
-- insatisfacible según el algoritmo de Davis y Putnam si,y solo si, f&lt;br /&gt;
-- es insatisfacible.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
prop_CorreccionDP :: FNC -&amp;gt; Bool&lt;br /&gt;
prop_CorreccionDP f =&lt;br /&gt;
  esInsatisfaciblePorDP f == esInsatisfacible f&lt;br /&gt;
&lt;br /&gt;
-- La comprobación es&lt;br /&gt;
--    λ&amp;gt; quickCheckWith (stdArgs {maxSize=10}) prop_CorreccionDP&lt;br /&gt;
--    +++ OK, passed 100 tests.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=El_problema_SAT_en_Haskell&amp;diff=968</id>
		<title>El problema SAT en Haskell</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=El_problema_SAT_en_Haskell&amp;diff=968"/>
		<updated>2020-02-06T10:23:09Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: Página creada con «&amp;lt;source lang=&amp;quot;haskell&amp;quot;&amp;gt; -- SAT.hs -- El problema SAT para fóemulas en FNC. -- José A. Alonso Jiménez &amp;lt;jalonso@us,es&amp;gt; -- Sevilla, 4 de febrero de 2020 -- ----------------…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;haskell&amp;quot;&amp;gt;&lt;br /&gt;
-- SAT.hs&lt;br /&gt;
-- El problema SAT para fóemulas en FNC.&lt;br /&gt;
-- José A. Alonso Jiménez &amp;lt;jalonso@us,es&amp;gt;&lt;br /&gt;
-- Sevilla, 4 de febrero de 2020&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
module SAT where&lt;br /&gt;
&lt;br /&gt;
import Data.List&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- § Átomos, literales, cláusulas y FNC&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Usareremos las siguientes representaciones:&lt;br /&gt;
-- + Los átomos se representan por enteros positivos. Por ejemplo, 3&lt;br /&gt;
--   representa x(3). &lt;br /&gt;
-- + Los literales se representa por enteros. Por ejemplo, 3 reprsenta&lt;br /&gt;
--   el literal positivo x(3) y -5 el literal negativo -x(3).&lt;br /&gt;
-- + Una cláusula es una lista de literales que representa su&lt;br /&gt;
--   disyunción. Por ejemplo, [3,2,-4] representa a x(3) v x(2) v -x(4).&lt;br /&gt;
-- + Una fórmula en forma normal conjuntiva (FNC) es una lista de&lt;br /&gt;
--   cláusulas que representa su conjunción. Por ejemplo, [[3,2],[-1,2,5]]&lt;br /&gt;
--   representa a (x(3) v x(2)) &amp;amp; (-x(1) v x(2) v x(5)).&lt;br /&gt;
--&lt;br /&gt;
-- Definir los tipo de datos Atomo, Literal, Clausula y FNC.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
type Atomo    = Int&lt;br /&gt;
type Literal  = Int&lt;br /&gt;
type Clausula = [Literal]&lt;br /&gt;
type FNC      = [Clausula]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    complementario :: Literal -&amp;gt; Literal&lt;br /&gt;
-- tal que (complementario l) es el complementario de l. Por ejemplo,&lt;br /&gt;
--    complementario 3  ==  -3&lt;br /&gt;
--    complementario (-3)  ==  3&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
complementario :: Literal -&amp;gt; Literal&lt;br /&gt;
complementario l = (-1) * l&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- § Átomos de cláusulas y de FNC&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    atomosClausula :: Clausula -&amp;gt; [Prop]&lt;br /&gt;
-- tal que (atomosClausula c) es el conjunto de los átomos de c. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    atomosClausula [1,3,-1] == [1,3]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
atomosClausula :: Clausula -&amp;gt; [Atomo]&lt;br /&gt;
atomosClausula c = nub (map abs c)&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    unionGeneral :: Eq a =&amp;gt; [[a]] -&amp;gt; [a]&lt;br /&gt;
-- tal que (unionGeneral x) es la unión de los conjuntos de la lista de&lt;br /&gt;
-- conjuntos x. Por ejemplo,&lt;br /&gt;
--    unionGeneral []                 ==  []&lt;br /&gt;
--    unionGeneral [[1]]              ==  [1]&lt;br /&gt;
--    unionGeneral [[1],[1,2],[2,3]]  ==  [1,2,3]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
unionGeneral :: Eq a =&amp;gt; [[a]] -&amp;gt; [a]&lt;br /&gt;
unionGeneral []     = []&lt;br /&gt;
unionGeneral (x:xs) = x `union` unionGeneral xs &lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    atomosFNC :: FNC -&amp;gt; [Prop]&lt;br /&gt;
-- tal que (atomosFNC f) es el conjunto de los átomos de f. Por ejemplo, &lt;br /&gt;
--    atomosFNC [[1,2],[4,-2]] == [1,2,4]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
atomosFNC :: FNC -&amp;gt; [Atomo]&lt;br /&gt;
atomosFNC f = unionGeneral [atomosClausula c | c &amp;lt;- f]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- § Interpretaciones &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Una interpretación I es un conjunto de átomos. Se supone&lt;br /&gt;
-- que los átomos de I son verdaderos y los restantes son falsos.&lt;br /&gt;
--&lt;br /&gt;
-- Definir el tipo de dato Interpretacion.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
type Interpretacion = [Atomo]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    interpretacionesClausula :: Clausula -&amp;gt; [Interpretacion]&lt;br /&gt;
-- tal que (interpretacionesClausula c) es el conjunto de&lt;br /&gt;
-- interpretaciones de c. Por ejemplo,&lt;br /&gt;
--    interpretacionesClausula [1,2,-1]  ==  [[],[1],[2],[1,2]]&lt;br /&gt;
--    interpretacionesClausula []        ==  [[]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
interpretacionesClausula :: Clausula -&amp;gt; [Interpretacion]&lt;br /&gt;
interpretacionesClausula c = subsequences (atomosClausula c)&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    interpretaciones :: FNC -&amp;gt; [Interpretacion]&lt;br /&gt;
-- tal que (interpretaciones f) es el conjunto de interpretaciones de&lt;br /&gt;
-- f. Por ejemplo, &lt;br /&gt;
--    interpretaciones [[1,-2],[-1,2]] == [[],[1],[2],[1,2]]&lt;br /&gt;
--    interpretaciones []              == [[]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
interpretaciones :: FNC -&amp;gt; [Interpretacion]&lt;br /&gt;
interpretaciones f = subsequences (atomosFNC f)&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- § Modelos de literales, cláusulas y FNC &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    esModeloLiteral :: Interpretacion -&amp;gt; Literal -&amp;gt; Bool&lt;br /&gt;
-- tal que (esModeloLiteral i l) se verifica si i es modelo de l. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    esModeloLiteral [3,5] 3     ==  True&lt;br /&gt;
--    esModeloLiteral [3,5] 4     ==  False&lt;br /&gt;
--    esModeloLiteral [3,5] (-3)  ==  False&lt;br /&gt;
--    esModeloLiteral [3,5] (-4)  ==  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esModeloLiteral :: Interpretacion -&amp;gt; Literal -&amp;gt; Bool&lt;br /&gt;
esModeloLiteral i l&lt;br /&gt;
  | l &amp;gt; 0     = l `elem` i&lt;br /&gt;
  | otherwise = complementario l `notElem` i&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    esModeloClausula :: Interpretacion -&amp;gt; Clausula -&amp;gt; Bool&lt;br /&gt;
-- tal que (esModeloClausula i c) se verifica si i es modelo de c . Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    esModeloClausula [3,5] [2,3,-5]  ==  True&lt;br /&gt;
--    esModeloClausula [3,5] [2,4,-1]  ==  True&lt;br /&gt;
--    esModeloClausula [3,5] [2,4,1]  ==  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esModeloClausula :: Interpretacion -&amp;gt; Clausula -&amp;gt; Bool&lt;br /&gt;
esModeloClausula i c = or [esModeloLiteral i l | l &amp;lt;- c]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    modelosClausula :: Clausula -&amp;gt; [Interpretacion]&lt;br /&gt;
-- tal que (modelosClausula c) es la lista de los modelos de c. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    modelosClausula [-1,2]  ==  [[],[2],[1,2]]&lt;br /&gt;
--    modelosClausula [-1,1]  ==  [[],[1]]&lt;br /&gt;
--    modelosClausula []      ==  []&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
modelosClausula :: Clausula -&amp;gt; [Interpretacion]&lt;br /&gt;
modelosClausula c =&lt;br /&gt;
  [i | i &amp;lt;- interpretacionesClausula c,&lt;br /&gt;
       esModeloClausula i c]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    esModelo :: Interpretacion -&amp;gt; FNC -&amp;gt; Bool&lt;br /&gt;
-- tal que (esModelo i f) se verifica si i es modelo de f. Por ejemplo,&lt;br /&gt;
--    esModelo [1,3] [[1,-2],[3]]  ==  True&lt;br /&gt;
--    esModelo [1]   [[1,-2],[3]]  ==  False&lt;br /&gt;
--    esModelo [1]   []            ==  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esModelo :: Interpretacion -&amp;gt; FNC -&amp;gt; Bool&lt;br /&gt;
esModelo i s =&lt;br /&gt;
  and [esModeloClausula i c | c &amp;lt;- s]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    modelos :: FNC -&amp;gt; [Interpretacion]&lt;br /&gt;
-- tal que (modelos f) es la lista de los modelos de f. Por ejemplo, &lt;br /&gt;
--    modelos [[-1,2],[-2,1]]    ==  [[],[1,2]]&lt;br /&gt;
--    modelos [[-1,2],[-2],[1]]  ==  []&lt;br /&gt;
--    modelos [[1,-1,2]]         ==  [[],[1],[2],[1,2]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
modelos :: FNC -&amp;gt; [Interpretacion]&lt;br /&gt;
modelos s =&lt;br /&gt;
  [i | i &amp;lt;- interpretaciones s,&lt;br /&gt;
       esModelo i s] &lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- § Cláusulas válidas, satisfacibles e insatisfacibles                &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    esSatisfacibleClausula :: Clausula -&amp;gt; Bool&lt;br /&gt;
-- tal que (esSatisfacibleClausula c) se verifica si la cláusula c es&lt;br /&gt;
-- satisfacible. Por ejemplo, &lt;br /&gt;
--    esSatisfacibleClausula [1,2,-1]  ==  True&lt;br /&gt;
--    esSatisfacibleClausula [1,2,-3]  ==  True&lt;br /&gt;
--    esSatisfacibleClausula []        ==  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- 1ª definición&lt;br /&gt;
esSatisfacibleClausula1 :: Clausula -&amp;gt; Bool&lt;br /&gt;
esSatisfacibleClausula1 c =&lt;br /&gt;
  or [esModeloClausula i c | i &amp;lt;- interpretacionesClausula c]&lt;br /&gt;
&lt;br /&gt;
-- 2ª definición&lt;br /&gt;
esSatisfacibleClausula :: Clausula -&amp;gt; Bool&lt;br /&gt;
esSatisfacibleClausula = not . null &lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    esInsatisfacibleClausula :: Clausula -&amp;gt; Bool&lt;br /&gt;
-- tal que (esInsatisfacibleClausula c) se verifica si la cláusula c es&lt;br /&gt;
-- insatisfacible. Por ejemplo, &lt;br /&gt;
--    esInsatisfacibleClausula [1,2,-1]  ==  False&lt;br /&gt;
--    esInsatisfacibleClausula [1,2,-3]  ==  False&lt;br /&gt;
--    esInsatisfacibleClausula []        ==  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- 1ª definición&lt;br /&gt;
esInsatisfacibleClausula1 :: Clausula -&amp;gt; Bool&lt;br /&gt;
esInsatisfacibleClausula1 c =&lt;br /&gt;
   and [not (esModeloClausula i c) | i &amp;lt;- interpretacionesClausula c]&lt;br /&gt;
&lt;br /&gt;
-- 2ª definición&lt;br /&gt;
esInsatisfacibleClausula :: Clausula -&amp;gt; Bool&lt;br /&gt;
esInsatisfacibleClausula  = null&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    esValidaClausula :: Clausula -&amp;gt; Bool&lt;br /&gt;
-- tal que (esValidaClausula c) se verifica si la cláusula c es&lt;br /&gt;
-- válida. Por ejemplo, &lt;br /&gt;
--    esValidaClausula [1,2,-1]  ==  True&lt;br /&gt;
--    esValidaClausula [1,2,-3]  ==  False&lt;br /&gt;
--    esValidaClausula []        ==  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- 1ª definición&lt;br /&gt;
esValidaClausula1 :: Clausula -&amp;gt; Bool&lt;br /&gt;
esValidaClausula1 c =&lt;br /&gt;
  and [esModeloClausula i c | i &amp;lt;- interpretacionesClausula c]&lt;br /&gt;
&lt;br /&gt;
-- 2ª definición&lt;br /&gt;
esValidaClausula :: Clausula -&amp;gt; Bool&lt;br /&gt;
esValidaClausula c =&lt;br /&gt;
  not (null [l | l &amp;lt;- c, complementario l `elem` c])&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- § FNC válidas, satisfacible e insatisfacibles&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    esSatisfacible :: FNC -&amp;gt; Bool&lt;br /&gt;
-- tal que (esSatisfacible f) se verifica si la FNC f es&lt;br /&gt;
-- satistacible. Por ejemplo, &lt;br /&gt;
--    esSatisfacible [[-1,2],[-2,1]]  ==  True&lt;br /&gt;
--    esSatisfacible [[-1,2],[-2,2]]  ==  True&lt;br /&gt;
--    esSatisfacible [[-1,1],[-2,2]]  ==  True&lt;br /&gt;
--    esSatisfacible []               ==  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esSatisfacible :: FNC -&amp;gt; Bool&lt;br /&gt;
esSatisfacible s =&lt;br /&gt;
  not (null (modelos s))&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    esInsatisfacible :: FNC -&amp;gt; Bool&lt;br /&gt;
-- tal que (esInsatisfacible f) se verifica si la FNC f es&lt;br /&gt;
-- insatisfacible. Por ejemplo,&lt;br /&gt;
--    esInsatisfacible [[-1,2],[-2,1]]  ==  False&lt;br /&gt;
--    esInsatisfacible [[-1],[1]]       ==  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esInsatisfacible :: FNC -&amp;gt; Bool&lt;br /&gt;
esInsatisfacible f =&lt;br /&gt;
  null (modelos f)&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio. Definir la función&lt;br /&gt;
--    esValida :: FNC -&amp;gt; Bool&lt;br /&gt;
-- tal que (esValida f) se verifica si f es válida. Por ejemplo, &lt;br /&gt;
--    esValida [[-1,2],[-2,1]]  ==  False&lt;br /&gt;
--    esValida [[-1,1],[-2,2]]  ==  True&lt;br /&gt;
--    esValida []               ==  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- 1ª definición&lt;br /&gt;
esValida1 :: FNC -&amp;gt; Bool&lt;br /&gt;
esValida1 f =&lt;br /&gt;
  modelos f == interpretaciones f&lt;br /&gt;
&lt;br /&gt;
-- 2ª definición&lt;br /&gt;
esValida :: FNC -&amp;gt; Bool&lt;br /&gt;
esValida f =&lt;br /&gt;
  and [esValidaClausula c | c &amp;lt;- f]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Temas&amp;diff=967</id>
		<title>Temas</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Temas&amp;diff=967"/>
		<updated>2020-02-06T10:22:09Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En esta página se irán publicando los temas conforme se vayan estudiando.&lt;br /&gt;
&lt;br /&gt;
== RA con Isabelle/HOL ==&lt;br /&gt;
* [[Tema 1: Programación funcional en Isabelle]].&lt;br /&gt;
* Tema 2: Razonamiento sobre programas:&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/i1m-16/temas/tema-8.pdf Tema 2a: Razonamiento sobre programas Haskell]&lt;br /&gt;
** [[Tema 2b: Razonamiento sobre programas con Isabelle/HOL]].&lt;br /&gt;
* [[Tema 3: Razonamiento estructurado sobre programas en Isabelle/HOL]].&lt;br /&gt;
* [[Tema 4: Razonamiento por casos y por inducción]].&lt;br /&gt;
* [[Tema 5: Razonamiento sobre árboles y bosques]].&lt;br /&gt;
* Tema 6: Deducción natural proposicional:&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/li/temas/tema-1.pdf Tema 6a: Sintaxis y semántica de la lógica proposicional].&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/li/temas/tema-2.pdf Tema 6b: Deducción natural proposicional].&lt;br /&gt;
** [[Tema 6c: Deducción natural proposicional con Isabelle/HOL | Tema 6c: Deducción natural proposicional con Isabelle/HOL]].&lt;br /&gt;
* Tema 7: Deducción natural de primer orden:&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/li/temas/tema-7.pdf Tema 7a: Sintaxis y semántica de la lógica de primer orden].&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/li/temas/tema-8.pdf Tema 7b: Deducción natural en lógica de primer orden].&lt;br /&gt;
** [[Tema 7c: Deducción natural en lógica de primer orden con Isabelle/HOL | Tema 7c: Deducción natural en lógica de primer orden con Isabelle/HOL]]&lt;br /&gt;
&lt;br /&gt;
== Problema SAT ==&lt;br /&gt;
* Tema 8: [https://www.cs.us.es/~jalonso/cursos/m-ra/temas/T8-SAT_solving.pdf SAT (solving)] por Jesús Giráldez Crú.&lt;br /&gt;
* Tema 9: SAT, el procedimiento de Davis-Putnam y reducción de SAT a clique.&lt;br /&gt;
** Tema 9a: [[El problema SAT en Haskell]].&lt;br /&gt;
** Tema 9b: [https://www.cs.us.es/~jalonso/cursos/lmf-17/temas/tema-6.pdf El algoritmo de Davis-Putnam para SAT].&lt;br /&gt;
** Tema 9c: [[El algoritmo de Davis-Putnam en Haskell]].&lt;br /&gt;
** Tema 9d: [[El problema Clique en Haskel]].&lt;br /&gt;
** Tema 9e: [[Reducción de SAT a Clique en Haskell]].&lt;br /&gt;
** Tema 9f: [[Comparaciones de algoritmos de SAT]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* Tema 6: Verificación de algoritmos de ordenación:&lt;br /&gt;
** [[Tema 6a: Verificación de la ordenación por inserción]].&lt;br /&gt;
** [[Tema 6b: Verificación de la ordenación por mezcla]].&lt;br /&gt;
* [[Tema 9: Editores lógicos]]. &lt;br /&gt;
* [[Tema 10: Caso de estudio: Compilación de expresiones]].&lt;br /&gt;
* [[Tema 11: Definiciones inductivas]].&lt;br /&gt;
* [[Tema 12: Conjuntos, funciones y relaciones]].&lt;br /&gt;
&lt;br /&gt;
== RA con Coq ==&lt;br /&gt;
* [[Tema 1: Programación funcional y métodos elementales de demostración en Coq]].&lt;br /&gt;
* [[Tema 2: Demostraciones por inducción sobre los números naturales en Coq]].&lt;br /&gt;
* [[Tema 3: Datos estructurados en Coq]].&lt;br /&gt;
* [[Tema 4: Polimorfismo y funciones de orden superior en Coq]].&lt;br /&gt;
* [[Tema 5: Tácticas básicas de Coq]].&lt;br /&gt;
* [[Tema 6: Lógica en Coq]].&lt;br /&gt;
* [[Tema 7: Definiciones inductivas en Coq]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* [[Tema 10: Conjuntos, funciones y relaciones]].&lt;br /&gt;
* [http://www.cs.us.es/~jalonso/cursos/dao-12/temas/tema-1.pdf Tema 11: Panorama de la demostración asistida por ordenador].&lt;br /&gt;
* [[Tema 11: Gramáticas libre de contexto]].&lt;br /&gt;
* Tema 12: Misceláneas:&lt;br /&gt;
** [[Tema 12a: Razonamiento modular (Teoría de grupos)]].&lt;br /&gt;
** [[Tema 12b: Razonamiento modular]].&lt;br /&gt;
** [[Tema 12c: Automatización]].&lt;br /&gt;
** [[Tema 12d: Pasos elementales]].&lt;br /&gt;
** [[Tema 12e: Sudoku]].&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Temas&amp;diff=966</id>
		<title>Temas</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Temas&amp;diff=966"/>
		<updated>2020-02-06T10:18:25Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En esta página se irán publicando los temas conforme se vayan estudiando.&lt;br /&gt;
&lt;br /&gt;
== RA con Isabelle/HOL ==&lt;br /&gt;
* [[Tema 1: Programación funcional en Isabelle]].&lt;br /&gt;
* Tema 2: Razonamiento sobre programas:&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/i1m-16/temas/tema-8.pdf Tema 2a: Razonamiento sobre programas Haskell]&lt;br /&gt;
** [[Tema 2b: Razonamiento sobre programas con Isabelle/HOL]].&lt;br /&gt;
* [[Tema 3: Razonamiento estructurado sobre programas en Isabelle/HOL]].&lt;br /&gt;
* [[Tema 4: Razonamiento por casos y por inducción]].&lt;br /&gt;
* [[Tema 5: Razonamiento sobre árboles y bosques]].&lt;br /&gt;
* Tema 6: Deducción natural proposicional:&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/li/temas/tema-1.pdf Tema 6a: Sintaxis y semántica de la lógica proposicional].&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/li/temas/tema-2.pdf Tema 6b: Deducción natural proposicional].&lt;br /&gt;
** [[Tema 6c: Deducción natural proposicional con Isabelle/HOL | Tema 6c: Deducción natural proposicional con Isabelle/HOL]].&lt;br /&gt;
* Tema 7: Deducción natural de primer orden:&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/li/temas/tema-7.pdf Tema 7a: Sintaxis y semántica de la lógica de primer orden].&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/li/temas/tema-8.pdf Tema 7b: Deducción natural en lógica de primer orden].&lt;br /&gt;
** [[Tema 7c: Deducción natural en lógica de primer orden con Isabelle/HOL | Tema 7c: Deducción natural en lógica de primer orden con Isabelle/HOL]]&lt;br /&gt;
&lt;br /&gt;
== Problema SAT ==&lt;br /&gt;
* Tema 8: [https://www.cs.us.es/~jalonso/cursos/m-ra/temas/T8-SAT_solving.pdf SAT (solving)] por Jesús Giráldez Crú.&lt;br /&gt;
* Tema 9: SAT, el procedimiento de Davis-Putnam y reducción de SAT a clique.&lt;br /&gt;
** [[Tema 9a: El problema SAT en Haskell]].*&lt;br /&gt;
** [[Tema 9b: El algoritmo de Davis-Putnam en Haskell]].&lt;br /&gt;
*** [https://www.cs.us.es/~jalonso/cursos/lmf-17/temas/tema-6.pdf El algoritmo de Davis-Putnam para SAT]].&lt;br /&gt;
** [[Tema 9c: El problema Clique]].&lt;br /&gt;
** [[Tema 9d: Reducción de SAT a Clique]].&lt;br /&gt;
** [[Tema 9e: Comparaciones de algoritmos de SAT]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* Tema 6: Verificación de algoritmos de ordenación:&lt;br /&gt;
** [[Tema 6a: Verificación de la ordenación por inserción]].&lt;br /&gt;
** [[Tema 6b: Verificación de la ordenación por mezcla]].&lt;br /&gt;
* [[Tema 9: Editores lógicos]]. &lt;br /&gt;
* [[Tema 10: Caso de estudio: Compilación de expresiones]].&lt;br /&gt;
* [[Tema 11: Definiciones inductivas]].&lt;br /&gt;
* [[Tema 12: Conjuntos, funciones y relaciones]].&lt;br /&gt;
&lt;br /&gt;
== RA con Coq ==&lt;br /&gt;
* [[Tema 1: Programación funcional y métodos elementales de demostración en Coq]].&lt;br /&gt;
* [[Tema 2: Demostraciones por inducción sobre los números naturales en Coq]].&lt;br /&gt;
* [[Tema 3: Datos estructurados en Coq]].&lt;br /&gt;
* [[Tema 4: Polimorfismo y funciones de orden superior en Coq]].&lt;br /&gt;
* [[Tema 5: Tácticas básicas de Coq]].&lt;br /&gt;
* [[Tema 6: Lógica en Coq]].&lt;br /&gt;
* [[Tema 7: Definiciones inductivas en Coq]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* [[Tema 10: Conjuntos, funciones y relaciones]].&lt;br /&gt;
* [http://www.cs.us.es/~jalonso/cursos/dao-12/temas/tema-1.pdf Tema 11: Panorama de la demostración asistida por ordenador].&lt;br /&gt;
* [[Tema 11: Gramáticas libre de contexto]].&lt;br /&gt;
* Tema 12: Misceláneas:&lt;br /&gt;
** [[Tema 12a: Razonamiento modular (Teoría de grupos)]].&lt;br /&gt;
** [[Tema 12b: Razonamiento modular]].&lt;br /&gt;
** [[Tema 12c: Automatización]].&lt;br /&gt;
** [[Tema 12d: Pasos elementales]].&lt;br /&gt;
** [[Tema 12e: Sudoku]].&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Temas&amp;diff=880</id>
		<title>Temas</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Temas&amp;diff=880"/>
		<updated>2020-01-21T05:50:54Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* RA y SAT */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En esta página se irán publicando los temas conforme se vayan estudiando.&lt;br /&gt;
&lt;br /&gt;
== RA con Isabelle/HOL ==&lt;br /&gt;
* [[Tema 1: Programación funcional en Isabelle]].&lt;br /&gt;
* Tema 2: Razonamiento sobre programas:&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/i1m-16/temas/tema-8.pdf Tema 2a: Razonamiento sobre programas Haskell]&lt;br /&gt;
** [[Tema 2b: Razonamiento sobre programas con Isabelle/HOL]].&lt;br /&gt;
* [[Tema 3: Razonamiento estructurado sobre programas en Isabelle/HOL]].&lt;br /&gt;
* [[Tema 4: Razonamiento por casos y por inducción]].&lt;br /&gt;
* [[Tema 5: Razonamiento sobre árboles y bosques]].&lt;br /&gt;
* Tema 6: Deducción natural proposicional:&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/li/temas/tema-1.pdf Tema 6a: Sintaxis y semántica de la lógica proposicional].&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/li/temas/tema-2.pdf Tema 6b: Deducción natural proposicional].&lt;br /&gt;
** [[Tema 6c: Deducción natural proposicional con Isabelle/HOL | Tema 6c: Deducción natural proposicional con Isabelle/HOL]].&lt;br /&gt;
* Tema 7: Deducción natural de primer orden:&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/li/temas/tema-7.pdf Tema 7a: Sintaxis y semántica de la lógica de primer orden].&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/li/temas/tema-8.pdf Tema 7b: Deducción natural en lógica de primer orden].&lt;br /&gt;
** [[Tema 7c: Deducción natural en lógica de primer orden con Isabelle/HOL | Tema 7c: Deducción natural en lógica de primer orden con Isabelle/HOL]]&lt;br /&gt;
&lt;br /&gt;
== RA con SAT ==&lt;br /&gt;
* [https://www.cs.us.es/~jalonso/cursos/m-ra/temas/T8-SAT_solving.pdf SAT (solving)] por Jesús Giráldez Crú.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* Tema 6: Verificación de algoritmos de ordenación:&lt;br /&gt;
** [[Tema 6a: Verificación de la ordenación por inserción]].&lt;br /&gt;
** [[Tema 6b: Verificación de la ordenación por mezcla]].&lt;br /&gt;
* [[Tema 9: Editores lógicos]]. &lt;br /&gt;
* [[Tema 10: Caso de estudio: Compilación de expresiones]].&lt;br /&gt;
* [[Tema 11: Definiciones inductivas]].&lt;br /&gt;
* [[Tema 12: Conjuntos, funciones y relaciones]].&lt;br /&gt;
&lt;br /&gt;
== RA con Coq ==&lt;br /&gt;
* [[Tema 1: Programación funcional y métodos elementales de demostración en Coq]].&lt;br /&gt;
* [[Tema 2: Demostraciones por inducción sobre los números naturales en Coq]].&lt;br /&gt;
* [[Tema 3: Datos estructurados en Coq]].&lt;br /&gt;
* [[Tema 4: Polimorfismo y funciones de orden superior en Coq]].&lt;br /&gt;
* [[Tema 5: Tácticas básicas de Coq]].&lt;br /&gt;
* [[Tema 6: Lógica en Coq]].&lt;br /&gt;
* [[Tema 7: Definiciones inductivas en Coq]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* [[Tema 10: Conjuntos, funciones y relaciones]].&lt;br /&gt;
* [http://www.cs.us.es/~jalonso/cursos/dao-12/temas/tema-1.pdf Tema 11: Panorama de la demostración asistida por ordenador].&lt;br /&gt;
* [[Tema 11: Gramáticas libre de contexto]].&lt;br /&gt;
* Tema 12: Misceláneas:&lt;br /&gt;
** [[Tema 12a: Razonamiento modular (Teoría de grupos)]].&lt;br /&gt;
** [[Tema 12b: Razonamiento modular]].&lt;br /&gt;
** [[Tema 12c: Automatización]].&lt;br /&gt;
** [[Tema 12d: Pasos elementales]].&lt;br /&gt;
** [[Tema 12e: Sudoku]].&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Temas&amp;diff=879</id>
		<title>Temas</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Temas&amp;diff=879"/>
		<updated>2020-01-21T05:49:48Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En esta página se irán publicando los temas conforme se vayan estudiando.&lt;br /&gt;
&lt;br /&gt;
== RA con Isabelle/HOL ==&lt;br /&gt;
* [[Tema 1: Programación funcional en Isabelle]].&lt;br /&gt;
* Tema 2: Razonamiento sobre programas:&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/i1m-16/temas/tema-8.pdf Tema 2a: Razonamiento sobre programas Haskell]&lt;br /&gt;
** [[Tema 2b: Razonamiento sobre programas con Isabelle/HOL]].&lt;br /&gt;
* [[Tema 3: Razonamiento estructurado sobre programas en Isabelle/HOL]].&lt;br /&gt;
* [[Tema 4: Razonamiento por casos y por inducción]].&lt;br /&gt;
* [[Tema 5: Razonamiento sobre árboles y bosques]].&lt;br /&gt;
* Tema 6: Deducción natural proposicional:&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/li/temas/tema-1.pdf Tema 6a: Sintaxis y semántica de la lógica proposicional].&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/li/temas/tema-2.pdf Tema 6b: Deducción natural proposicional].&lt;br /&gt;
** [[Tema 6c: Deducción natural proposicional con Isabelle/HOL | Tema 6c: Deducción natural proposicional con Isabelle/HOL]].&lt;br /&gt;
* Tema 7: Deducción natural de primer orden:&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/li/temas/tema-7.pdf Tema 7a: Sintaxis y semántica de la lógica de primer orden].&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/li/temas/tema-8.pdf Tema 7b: Deducción natural en lógica de primer orden].&lt;br /&gt;
** [[Tema 7c: Deducción natural en lógica de primer orden con Isabelle/HOL | Tema 7c: Deducción natural en lógica de primer orden con Isabelle/HOL]]&lt;br /&gt;
&lt;br /&gt;
== RA y SAT ==&lt;br /&gt;
* [https://www.cs.us.es/~jalonso/cursos/m-ra/temas/T8-SAT_solving.pdf SAT (solving)] por Jesús Giráldez Crú.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* Tema 6: Verificación de algoritmos de ordenación:&lt;br /&gt;
** [[Tema 6a: Verificación de la ordenación por inserción]].&lt;br /&gt;
** [[Tema 6b: Verificación de la ordenación por mezcla]].&lt;br /&gt;
* [[Tema 9: Editores lógicos]]. &lt;br /&gt;
* [[Tema 10: Caso de estudio: Compilación de expresiones]].&lt;br /&gt;
* [[Tema 11: Definiciones inductivas]].&lt;br /&gt;
* [[Tema 12: Conjuntos, funciones y relaciones]].&lt;br /&gt;
&lt;br /&gt;
== RA con Coq ==&lt;br /&gt;
* [[Tema 1: Programación funcional y métodos elementales de demostración en Coq]].&lt;br /&gt;
* [[Tema 2: Demostraciones por inducción sobre los números naturales en Coq]].&lt;br /&gt;
* [[Tema 3: Datos estructurados en Coq]].&lt;br /&gt;
* [[Tema 4: Polimorfismo y funciones de orden superior en Coq]].&lt;br /&gt;
* [[Tema 5: Tácticas básicas de Coq]].&lt;br /&gt;
* [[Tema 6: Lógica en Coq]].&lt;br /&gt;
* [[Tema 7: Definiciones inductivas en Coq]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* [[Tema 10: Conjuntos, funciones y relaciones]].&lt;br /&gt;
* [http://www.cs.us.es/~jalonso/cursos/dao-12/temas/tema-1.pdf Tema 11: Panorama de la demostración asistida por ordenador].&lt;br /&gt;
* [[Tema 11: Gramáticas libre de contexto]].&lt;br /&gt;
* Tema 12: Misceláneas:&lt;br /&gt;
** [[Tema 12a: Razonamiento modular (Teoría de grupos)]].&lt;br /&gt;
** [[Tema 12b: Razonamiento modular]].&lt;br /&gt;
** [[Tema 12c: Automatización]].&lt;br /&gt;
** [[Tema 12d: Pasos elementales]].&lt;br /&gt;
** [[Tema 12e: Sudoku]].&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Temas&amp;diff=878</id>
		<title>Temas</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Temas&amp;diff=878"/>
		<updated>2020-01-21T05:47:39Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En esta página se irán publicando los temas conforme se vayan estudiando.&lt;br /&gt;
&lt;br /&gt;
== RA con Isabelle/HOL ==&lt;br /&gt;
* [[Tema 1: Programación funcional en Isabelle]].&lt;br /&gt;
* Tema 2: Razonamiento sobre programas:&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/i1m-16/temas/tema-8.pdf Tema 2a: Razonamiento sobre programas Haskell]&lt;br /&gt;
** [[Tema 2b: Razonamiento sobre programas con Isabelle/HOL]].&lt;br /&gt;
* [[Tema 3: Razonamiento estructurado sobre programas en Isabelle/HOL]].&lt;br /&gt;
* [[Tema 4: Razonamiento por casos y por inducción]].&lt;br /&gt;
* [[Tema 5: Razonamiento sobre árboles y bosques]].&lt;br /&gt;
* Tema 6: Deducción natural proposicional:&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/li/temas/tema-1.pdf Tema 6a: Sintaxis y semántica de la lógica proposicional].&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/li/temas/tema-2.pdf Tema 6b: Deducción natural proposicional].&lt;br /&gt;
** [[Tema 6c: Deducción natural proposicional con Isabelle/HOL | Tema 6c: Deducción natural proposicional con Isabelle/HOL]].&lt;br /&gt;
* Tema 7: Deducción natural de primer orden:&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/li/temas/tema-7.pdf Tema 7a: Sintaxis y semántica de la lógica de primer orden].&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/li/temas/tema-8.pdf Tema 7b: Deducción natural en lógica de primer orden].&lt;br /&gt;
** [[Tema 7c: Deducción natural en lógica de primer orden con Isabelle/HOL | Tema 7c: Deducción natural en lógica de primer orden con Isabelle/HOL]]&lt;br /&gt;
* [https://www.cs.us.es/~jalonso/cursos/m-ra/temas/T8-SAT_solving.pdf Tema 8: SAT (solving)] por Jesús Giráldez Crú.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* Tema 6: Verificación de algoritmos de ordenación:&lt;br /&gt;
** [[Tema 6a: Verificación de la ordenación por inserción]].&lt;br /&gt;
** [[Tema 6b: Verificación de la ordenación por mezcla]].&lt;br /&gt;
* [[Tema 9: Editores lógicos]]. &lt;br /&gt;
* [[Tema 10: Caso de estudio: Compilación de expresiones]].&lt;br /&gt;
* [[Tema 11: Definiciones inductivas]].&lt;br /&gt;
* [[Tema 12: Conjuntos, funciones y relaciones]].&lt;br /&gt;
&lt;br /&gt;
== RA con Coq ==&lt;br /&gt;
* [[Tema 1: Programación funcional y métodos elementales de demostración en Coq]].&lt;br /&gt;
* [[Tema 2: Demostraciones por inducción sobre los números naturales en Coq]].&lt;br /&gt;
* [[Tema 3: Datos estructurados en Coq]].&lt;br /&gt;
* [[Tema 4: Polimorfismo y funciones de orden superior en Coq]].&lt;br /&gt;
* [[Tema 5: Tácticas básicas de Coq]].&lt;br /&gt;
* [[Tema 6: Lógica en Coq]].&lt;br /&gt;
* [[Tema 7: Definiciones inductivas en Coq]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* [[Tema 10: Conjuntos, funciones y relaciones]].&lt;br /&gt;
* [http://www.cs.us.es/~jalonso/cursos/dao-12/temas/tema-1.pdf Tema 11: Panorama de la demostración asistida por ordenador].&lt;br /&gt;
* [[Tema 11: Gramáticas libre de contexto]].&lt;br /&gt;
* Tema 12: Misceláneas:&lt;br /&gt;
** [[Tema 12a: Razonamiento modular (Teoría de grupos)]].&lt;br /&gt;
** [[Tema 12b: Razonamiento modular]].&lt;br /&gt;
** [[Tema 12c: Automatización]].&lt;br /&gt;
** [[Tema 12d: Pasos elementales]].&lt;br /&gt;
** [[Tema 12e: Sudoku]].&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=Temas&amp;diff=877</id>
		<title>Temas</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=Temas&amp;diff=877"/>
		<updated>2020-01-21T05:46:55Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En esta página se irán publicando los temas conforme se vayan estudiando.&lt;br /&gt;
&lt;br /&gt;
== RA con Isabelle/HOL ==&lt;br /&gt;
* [[Tema 1: Programación funcional en Isabelle]].&lt;br /&gt;
* Tema 2: Razonamiento sobre programas:&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/i1m-16/temas/tema-8.pdf Tema 2a: Razonamiento sobre programas Haskell]&lt;br /&gt;
** [[Tema 2b: Razonamiento sobre programas con Isabelle/HOL]].&lt;br /&gt;
* [[Tema 3: Razonamiento estructurado sobre programas en Isabelle/HOL]].&lt;br /&gt;
* [[Tema 4: Razonamiento por casos y por inducción]].&lt;br /&gt;
* [[Tema 5: Razonamiento sobre árboles y bosques]].&lt;br /&gt;
* Tema 6: Deducción natural proposicional:&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/li/temas/tema-1.pdf Tema 6a: Sintaxis y semántica de la lógica proposicional].&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/li/temas/tema-2.pdf Tema 6b: Deducción natural proposicional].&lt;br /&gt;
** [[Tema 6c: Deducción natural proposicional con Isabelle/HOL | Tema 6c: Deducción natural proposicional con Isabelle/HOL]].&lt;br /&gt;
* Tema 7: Deducción natural de primer orden:&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/li/temas/tema-7.pdf Tema 7a: Sintaxis y semántica de la lógica de primer orden].&lt;br /&gt;
** [http://www.cs.us.es/~jalonso/cursos/li/temas/tema-8.pdf Tema 7b: Deducción natural en lógica de primer orden].&lt;br /&gt;
** [[Tema 7c: Deducción natural en lógica de primer orden con Isabelle/HOL | Tema 7c: Deducción natural en lógica de primer orden con Isabelle/HOL]]&lt;br /&gt;
** [https://www.cs.us.es/~jalonso/cursos/m-ra/temas/T8-SAT_solving.pdf Tema 8: SAT (solving)] por Jesús Giráldez Crú.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* Tema 6: Verificación de algoritmos de ordenación:&lt;br /&gt;
** [[Tema 6a: Verificación de la ordenación por inserción]].&lt;br /&gt;
** [[Tema 6b: Verificación de la ordenación por mezcla]].&lt;br /&gt;
* [[Tema 9: Editores lógicos]]. &lt;br /&gt;
* [[Tema 10: Caso de estudio: Compilación de expresiones]].&lt;br /&gt;
* [[Tema 11: Definiciones inductivas]].&lt;br /&gt;
* [[Tema 12: Conjuntos, funciones y relaciones]].&lt;br /&gt;
&lt;br /&gt;
== RA con Coq ==&lt;br /&gt;
* [[Tema 1: Programación funcional y métodos elementales de demostración en Coq]].&lt;br /&gt;
* [[Tema 2: Demostraciones por inducción sobre los números naturales en Coq]].&lt;br /&gt;
* [[Tema 3: Datos estructurados en Coq]].&lt;br /&gt;
* [[Tema 4: Polimorfismo y funciones de orden superior en Coq]].&lt;br /&gt;
* [[Tema 5: Tácticas básicas de Coq]].&lt;br /&gt;
* [[Tema 6: Lógica en Coq]].&lt;br /&gt;
* [[Tema 7: Definiciones inductivas en Coq]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* [[Tema 10: Conjuntos, funciones y relaciones]].&lt;br /&gt;
* [http://www.cs.us.es/~jalonso/cursos/dao-12/temas/tema-1.pdf Tema 11: Panorama de la demostración asistida por ordenador].&lt;br /&gt;
* [[Tema 11: Gramáticas libre de contexto]].&lt;br /&gt;
* Tema 12: Misceláneas:&lt;br /&gt;
** [[Tema 12a: Razonamiento modular (Teoría de grupos)]].&lt;br /&gt;
** [[Tema 12b: Razonamiento modular]].&lt;br /&gt;
** [[Tema 12c: Automatización]].&lt;br /&gt;
** [[Tema 12d: Pasos elementales]].&lt;br /&gt;
** [[Tema 12e: Sudoku]].&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2019/index.php?title=R9&amp;diff=873</id>
		<title>R9</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2019/index.php?title=R9&amp;diff=873"/>
		<updated>2020-01-16T13:04:39Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: Protegió «R9» ([Editar=Solo administradores] (indefinido) [Trasladar=Solo administradores] (indefinido))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isabelle&amp;quot;&amp;gt;&lt;br /&gt;
chapter ‹9: Deducción natural de primer orden›&lt;br /&gt;
&lt;br /&gt;
theory R9_Deduccion_natural_de_primer_orden&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text ‹Demostrar o refutar los siguientes lemas usando sólo las reglas&lt;br /&gt;
  básicas de deducción natural de la lógica proposicional, de los&lt;br /&gt;
  cuantificadores y de la igualdad: &lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
  · notnotD:    ¬¬ P ⟹ P&lt;br /&gt;
  · mp:         ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
  · impI:       (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
  · disjI1:     P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2:     Q ⟹ P ∨ Q&lt;br /&gt;
  · disjE:      ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
  · FalseE:     False ⟹ P&lt;br /&gt;
  · notE:       ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  · notI:       (P ⟹ False) ⟹ ¬P&lt;br /&gt;
  · iffI:       ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P = Q&lt;br /&gt;
  · iffD1:      ⟦Q = P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2:      ⟦P = Q; Q⟧ ⟹ P&lt;br /&gt;
  · ccontr:     (¬P ⟹ False) ⟹ P&lt;br /&gt;
&lt;br /&gt;
  · allI:       ⟦∀x. P x; P x ⟹ R⟧ ⟹ R&lt;br /&gt;
  · allE:       (⋀x. P x) ⟹ ∀x. P x&lt;br /&gt;
  · exI:        P x ⟹ ∃x. P x&lt;br /&gt;
  · exE:        ⟦∃x. P x; ⋀x. P x ⟹ Q⟧ ⟹ Q&lt;br /&gt;
&lt;br /&gt;
  · refl:       t = t&lt;br /&gt;
  · subst:      ⟦s = t; P s⟧ ⟹ P t&lt;br /&gt;
  · trans:      ⟦r = s; s = t⟧ ⟹ r = t&lt;br /&gt;
  · sym:        s = t ⟹ t = s&lt;br /&gt;
  · not_sym:    t ≠ s ⟹ s ≠ t&lt;br /&gt;
  · ssubst:     ⟦t = s; P s⟧ ⟹ P t&lt;br /&gt;
  · box_equals: ⟦a = b; a = c; b = d⟧ ⟹ a: = d&lt;br /&gt;
  · arg_cong:   x = y ⟹ f x = f y&lt;br /&gt;
  · fun_cong:   f = g ⟹ f x = g x&lt;br /&gt;
  · cong:       ⟦f = g; x = y⟧ ⟹ f x = g y&lt;br /&gt;
›&lt;br /&gt;
&lt;br /&gt;
text ‹Se usarán las reglas notnotI y mt que demostramos a continuación.›&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
  by auto&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
  by auto&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. P x) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_1: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. P x) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Demostrar&lt;br /&gt;
       ∃x. ¬(P x) ⊢ ¬(∀x. P x)&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_2: &lt;br /&gt;
  assumes &amp;quot;∃x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. P x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Demostrar&lt;br /&gt;
       ∀x. P x ⊢ ∀y. P y&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_3: &lt;br /&gt;
  assumes &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. P y&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_4: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Demostrar&lt;br /&gt;
       ∀x. P x  ⟶ ¬(Q x) ⊢ ¬(∃x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_5: &lt;br /&gt;
  assumes &amp;quot;∀x. P x  ⟶ ¬(Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Demostrar&lt;br /&gt;
       ∀x y. P x y ⊢ ∀u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_6: &lt;br /&gt;
  assumes &amp;quot;∀x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀u v. P u v&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Demostrar&lt;br /&gt;
       ∃x y. P x y ⟹ ∃u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_7: &lt;br /&gt;
  assumes &amp;quot;∃x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃u v. P u v&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Demostrar&lt;br /&gt;
       ∃x. ∀y. P x y ⊢ ∀y. ∃x. P x y&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_8: &lt;br /&gt;
  assumes &amp;quot;∃x. ∀y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. ∃x. P x y&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Demostrar&lt;br /&gt;
       ∃x. P a ⟶ Q x ⊢ P a ⟶ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_9: &lt;br /&gt;
  assumes &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Demostrar&lt;br /&gt;
       P a ⟶ (∃x. Q x) ⊢ ∃x. P a ⟶ Q x &lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_10: &lt;br /&gt;
  fixes P Q :: &amp;quot;&amp;#039;b ⇒ bool&amp;quot; &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Demostrar&lt;br /&gt;
       (∃x. P x) ⟶ Q a ⊢ ∀x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_11: &lt;br /&gt;
  assumes &amp;quot;(∃x. P x) ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q a ⊢ ∃ x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_12: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Demostrar&lt;br /&gt;
       (∀x. P x) ∨ (∀x. Q x) ⊢ ∀x. P x ∨ Q x&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_13: &lt;br /&gt;
  assumes &amp;quot;(∀x. P x) ∨ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ∨ Q x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Demostrar&lt;br /&gt;
       ∃x. P x ∧ Q x ⊢ (∃x. P x) ∧ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_14: &lt;br /&gt;
  assumes &amp;quot;∃x. P x ∧ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃x. P x) ∧ (∃x. Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Demostrar&lt;br /&gt;
       ∀x y. P y ⟶ Q x ⊢ (∃y. P y) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_15: &lt;br /&gt;
  assumes &amp;quot;∀x y. P y ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃y. P y) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Demostrar&lt;br /&gt;
       ¬(∀x. ¬(P x)) ⊢ ∃x. P x&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_16: &lt;br /&gt;
  assumes &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Demostrar&lt;br /&gt;
       ∀x. ¬(P x) ⊢ ¬(∃x. P x)&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_17: &lt;br /&gt;
  assumes &amp;quot;∀x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Demostrar&lt;br /&gt;
       ∃x. P x ⊢ ¬(∀x. ¬(P x))&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_18: &lt;br /&gt;
  assumes &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. Demostrar&lt;br /&gt;
       P a ⟶ (∀x. Q x) ⊢ ∀x. P a ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_19: &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Demostrar&lt;br /&gt;
       {∀x y z. R x y ∧ R y z ⟶ R x z, &lt;br /&gt;
        ∀x. ¬(R x x)}&lt;br /&gt;
       ⊢ ∀x y. R x y ⟶ ¬(R y x)&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_20: &lt;br /&gt;
  assumes &amp;quot;∀x y z. R x y ∧ R y z ⟶ R x z&amp;quot;&lt;br /&gt;
          &amp;quot;∀x. ¬(R x x)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∀x y. R x y ⟶ ¬(R y x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Demostrar&lt;br /&gt;
     {∀x. P x ∨ Q x, ∃x. ¬(Q x), ∀x. R x ⟶ ¬(P x)} ⊢ ∃x. ¬(R x)&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ∨ Q x&amp;quot; &lt;br /&gt;
          &amp;quot;∃x. ¬(Q x)&amp;quot; &lt;br /&gt;
          &amp;quot;∀x. R x ⟶ ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. ¬(R x)&amp;quot; &lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Demostrar&lt;br /&gt;
     {∀x. P x ⟶ Q x ∨ R x, ¬(∃x. P x ∧ R x)} ⊢ ∀x. P x ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x ∨ R x&amp;quot; &lt;br /&gt;
          &amp;quot;¬(∃x. P x ∧ R x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Demostrar&lt;br /&gt;
     ∃x y. R x y ∨ R y x ⊢ ∃x y. R x y&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x y. R x y&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Demostrar&lt;br /&gt;
       (∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_24: &lt;br /&gt;
  &amp;quot;(∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Demostrar&lt;br /&gt;
       (∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_25: &lt;br /&gt;
  &amp;quot;(∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Demostrar&lt;br /&gt;
       ((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_26: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Demostrar o refutar&lt;br /&gt;
       ((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_27: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Demostrar o refutar&lt;br /&gt;
       ((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_28: &lt;br /&gt;
  &amp;quot;((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Demostrar o refutar&lt;br /&gt;
       (∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29: &lt;br /&gt;
  &amp;quot;(∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Demostrar o refutar&lt;br /&gt;
       (¬(∀x. P x)) ⟷ (∃x. ¬P x)&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_30: &lt;br /&gt;
  &amp;quot;(¬(∀x. P x)) ⟷ (∃x. ¬P x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
section ‹Ejercicios sobre igualdad›&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Demostrar o refutar&lt;br /&gt;
       P a ⟹ ∀x. x = a ⟶ P x&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_31b:&lt;br /&gt;
  assumes &amp;quot;P a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. x = a ⟶ P x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Demostrar o refutar&lt;br /&gt;
       ∃x y. R x y ∨ R y x; ¬(∃x. R x x)⟧ ⟹ ∃x y. x ≠ y&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  fixes R :: &amp;quot;&amp;#039;c ⇒ &amp;#039;c ⇒ bool&amp;quot;&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
          &amp;quot;¬(∃x. R x x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃(x::&amp;#039;c) y. x ≠ y&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)} &lt;br /&gt;
     ⊢ P (f a) a (f a)&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot;&lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P (f a) a (f a)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)⟧&lt;br /&gt;
     ⊢ ∃z. P (f a) z (f (f a))&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_34:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃z. P (f a) z (f (f a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Demostrar o refutar&lt;br /&gt;
     {∀y. Q a y, &lt;br /&gt;
      ∀x y. Q x y ⟶ Q (s x) (s y)} &lt;br /&gt;
     ⊢ ∃z. Qa z ∧ Q z (s (s a))&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes &amp;quot;∀y. Q a y&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y. Q x y ⟶ Q (s x) (s y)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∃z. Q a z ∧ Q z (s (s a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Demostrar o refutar&lt;br /&gt;
     {x = f x, odd (f x)} ⊢ odd x&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_36:&lt;br /&gt;
  &amp;quot;⟦x = f x; odd (f x)⟧ ⟹ odd x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text ‹--------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 37. Demostrar o refutar&lt;br /&gt;
     {x = f x, triple (f x) (f x) x} ⊢ triple x x x&lt;br /&gt;
  ------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_37:&lt;br /&gt;
  &amp;quot;⟦x = f x; triple (f x) (f x) x⟧ ⟹ triple x x x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
	</entry>
</feed>