<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://www.glc.us.es/~jalonso/SLC2018/index.php?action=history&amp;feed=atom&amp;title=R1</id>
	<title>R1 - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://www.glc.us.es/~jalonso/SLC2018/index.php?action=history&amp;feed=atom&amp;title=R1"/>
	<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/SLC2018/index.php?title=R1&amp;action=history"/>
	<updated>2026-07-21T10:26:10Z</updated>
	<subtitle>Historial de revisiones para esta página en el wiki</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://www.glc.us.es/~jalonso/SLC2018/index.php?title=R1&amp;diff=38&amp;oldid=prev</id>
		<title>Jalonso en 16:08 26 feb 2018</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/SLC2018/index.php?title=R1&amp;diff=38&amp;oldid=prev"/>
		<updated>2018-02-26T16:08:29Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://www.glc.us.es/~jalonso/SLC2018/index.php?title=R1&amp;amp;diff=38&amp;amp;oldid=37&quot;&gt;Mostrar los cambios&lt;/a&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/SLC2018/index.php?title=R1&amp;diff=37&amp;oldid=prev</id>
		<title>Jalonso en 16:06 26 feb 2018</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/SLC2018/index.php?title=R1&amp;diff=37&amp;oldid=prev"/>
		<updated>2018-02-26T16:06:44Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://www.glc.us.es/~jalonso/SLC2018/index.php?title=R1&amp;amp;diff=37&amp;amp;oldid=10&quot;&gt;Mostrar los cambios&lt;/a&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/SLC2018/index.php?title=R1&amp;diff=10&amp;oldid=prev</id>
		<title>WikiSysop: Protegió «R1» ([edit=sysop] (indefinido) [move=sysop] (indefinido))</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/SLC2018/index.php?title=R1&amp;diff=10&amp;oldid=prev"/>
		<updated>2018-02-21T19:00:59Z</updated>

		<summary type="html">&lt;p&gt;Protegió «&lt;a href=&quot;/~jalonso/SLC2018/index.php/R1&quot; title=&quot;R1&quot;&gt;R1&lt;/a&gt;» ([edit=sysop] (indefinido) [move=sysop] (indefinido))&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revisión del 19:00 21 feb 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;es&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Sin diferencias)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/SLC2018/index.php?title=R1&amp;diff=9&amp;oldid=prev</id>
		<title>WikiSysop en 18:59 21 feb 2018</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/SLC2018/index.php?title=R1&amp;diff=9&amp;oldid=prev"/>
		<updated>2018-02-21T18:59:56Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revisión del 18:59 21 feb 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Línea 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;coq&lt;/del&gt;&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ocaml&lt;/ins&gt;&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;(* Relación 1: Programación funcional en Coq *)&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;(* Relación 1: Programación funcional en Coq *)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/SLC2018/index.php?title=R1&amp;diff=8&amp;oldid=prev</id>
		<title>WikiSysop: Página creada con &#039;&lt;source lang=&quot;coq&quot;&gt; (* Relación 1: Programación funcional en Coq *)  Require Export Basics.  Definition admit {T: Type} : T.  Admitted.  (* -----------------------------------...&#039;</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/SLC2018/index.php?title=R1&amp;diff=8&amp;oldid=prev"/>
		<updated>2018-02-21T18:59:19Z</updated>

		<summary type="html">&lt;p&gt;Página creada con &amp;#039;&amp;lt;source lang=&amp;quot;coq&amp;quot;&amp;gt; (* Relación 1: Programación funcional en Coq *)  Require Export Basics.  Definition admit {T: Type} : T.  Admitted.  (* -----------------------------------...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;coq&amp;quot;&amp;gt;&lt;br /&gt;
(* Relación 1: Programación funcional en Coq *)&lt;br /&gt;
&lt;br /&gt;
Require Export Basics.&lt;br /&gt;
&lt;br /&gt;
Definition admit {T: Type} : T.  Admitted.&lt;br /&gt;
&lt;br /&gt;
(* ---------------------------------------------------------------------&lt;br /&gt;
   Ejercicio 1. Definir la función &lt;br /&gt;
      nandb :: bool -&amp;gt; bool -&amp;gt; bool &lt;br /&gt;
   tal que (nanb x y) se verifica si x e y no son verdaderos.&lt;br /&gt;
&lt;br /&gt;
   Demostrar las siguientes propiedades de nand&lt;br /&gt;
      (nandb true  false) = true.&lt;br /&gt;
      (nandb false false) = true.&lt;br /&gt;
      (nandb false true)  = true.&lt;br /&gt;
      (nandb true  true)  = false.&lt;br /&gt;
   ------------------------------------------------------------------ *)&lt;br /&gt;
&lt;br /&gt;
Definition nandb (b1:bool) (b2:bool) : bool :=&lt;br /&gt;
  admit. &lt;br /&gt;
&lt;br /&gt;
Example prop_nandb1: (nandb true false) = true.&lt;br /&gt;
Admitted.&lt;br /&gt;
&lt;br /&gt;
Example prop_nandb2: (nandb false false) = true.&lt;br /&gt;
Admitted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example prop_nandb3: (nandb false true) = true.&lt;br /&gt;
Admitted.&lt;br /&gt;
&lt;br /&gt;
Example prop_nandb4: (nandb true true) = false.&lt;br /&gt;
Admitted.&lt;br /&gt;
&lt;br /&gt;
(* ---------------------------------------------------------------------&lt;br /&gt;
   Ejercicio 2.1. Definir la función&lt;br /&gt;
      andb3 :: bool -&amp;gt; bool -&amp;gt; bool -&amp;gt; bool&lt;br /&gt;
   tal que (andb3 x y z) se verifica si x, y y z son verdaderos.&lt;br /&gt;
&lt;br /&gt;
   Demostrar las siguientes propiedades de andb3&lt;br /&gt;
      (andb3 true  true  true)  = true.&lt;br /&gt;
      (andb3 false true  true)  = false.&lt;br /&gt;
      (andb3 true  false true)  = false.&lt;br /&gt;
      (andb3 true  true  false) = false.&lt;br /&gt;
   ------------------------------------------------------------------ *)&lt;br /&gt;
&lt;br /&gt;
Definition andb3 (x:bool) (y:bool) (z:bool) : bool :=&lt;br /&gt;
  admit.&lt;br /&gt;
&lt;br /&gt;
Example prop_andb31: (andb3 true true true) = true.&lt;br /&gt;
Admitted.&lt;br /&gt;
&lt;br /&gt;
Example prop_andb32: (andb3 false true true) = false.&lt;br /&gt;
Admitted. &lt;br /&gt;
&lt;br /&gt;
Example prop_andb33: (andb3 true false true) = false.&lt;br /&gt;
Admitted.&lt;br /&gt;
&lt;br /&gt;
Example prop_andb34: (andb3 true true false) = false.&lt;br /&gt;
Admitted.&lt;br /&gt;
&lt;br /&gt;
(* ---------------------------------------------------------------------&lt;br /&gt;
   Ejercicio 3. Definir la función&lt;br /&gt;
      factorial :: nat -&amp;gt; nat1&lt;br /&gt;
   tal que (factorial n) es el factorial de n. &lt;br /&gt;
&lt;br /&gt;
      (factorial 3) = 6.&lt;br /&gt;
      (factorial 5) = (mult 10 12).&lt;br /&gt;
   ------------------------------------------------------------------ *)&lt;br /&gt;
&lt;br /&gt;
Fixpoint factorial (n:nat) : nat := &lt;br /&gt;
  admit.&lt;br /&gt;
&lt;br /&gt;
Example prop_factorial1: (factorial 3) = 6.&lt;br /&gt;
Admitted.&lt;br /&gt;
&lt;br /&gt;
Example prop_factorial2: (factorial 5) = (mult 10 12).&lt;br /&gt;
Admitted.&lt;br /&gt;
&lt;br /&gt;
(* ---------------------------------------------------------------------&lt;br /&gt;
   Ejercicio 4. Definir la función&lt;br /&gt;
      blt_nat :: nat -&amp;gt; nat -&amp;gt; bool&lt;br /&gt;
   tal que (blt n m) se verifica si n es menor que m.&lt;br /&gt;
&lt;br /&gt;
   Demostrar las siguientes propiedades&lt;br /&gt;
      (blt_nat 2 2) = false.&lt;br /&gt;
      (blt_nat 2 4) = true.&lt;br /&gt;
      (blt_nat 4 2) = false.&lt;br /&gt;
   ------------------------------------------------------------------ *)&lt;br /&gt;
&lt;br /&gt;
Definition blt_nat (n m : nat) : bool :=&lt;br /&gt;
  admit.&lt;br /&gt;
                                   &lt;br /&gt;
Example prop_blt_nat1: (blt_nat 2 2) = false.&lt;br /&gt;
Admitted.&lt;br /&gt;
&lt;br /&gt;
Example prop_blt_nat2: (blt_nat 2 4) = true.&lt;br /&gt;
Admitted.&lt;br /&gt;
&lt;br /&gt;
Example prop_blt_nat3: (blt_nat 4 2) = false.&lt;br /&gt;
Admitted.&lt;br /&gt;
&lt;br /&gt;
(* ---------------------------------------------------------------------&lt;br /&gt;
   Ejercicio 5. Demostrar que&lt;br /&gt;
      forall n m o : nat,&lt;br /&gt;
         n = m -&amp;gt; m = o -&amp;gt; n + m = m + o.&lt;br /&gt;
   ------------------------------------------------------------------ *)&lt;br /&gt;
&lt;br /&gt;
Theorem plus_id_exercise: forall n m o : nat,&lt;br /&gt;
  n = m -&amp;gt; m = o -&amp;gt; n + m = m + o.&lt;br /&gt;
Admitted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(* ---------------------------------------------------------------------&lt;br /&gt;
   Ejercicio 6. Demostrar que&lt;br /&gt;
      forall n m : nat,&lt;br /&gt;
        m = S n -&amp;gt;&lt;br /&gt;
        m * (1 + n) = m * m.&lt;br /&gt;
   ------------------------------------------------------------------ *)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Theorem mult_S_1 : forall n m : nat,&lt;br /&gt;
  m = S n -&amp;gt;&lt;br /&gt;
  m * (1 + n) = m * m.&lt;br /&gt;
Admitted.&lt;br /&gt;
&lt;br /&gt;
(* ---------------------------------------------------------------------&lt;br /&gt;
   Ejercicio 7. Demostrar que&lt;br /&gt;
      forall b c : bool,&lt;br /&gt;
        andb b c = true -&amp;gt; c = true.&lt;br /&gt;
   ------------------------------------------------------------------ *)&lt;br /&gt;
&lt;br /&gt;
Theorem andb_true_elim2 : forall b c : bool,&lt;br /&gt;
  andb b c = true -&amp;gt; c = true.&lt;br /&gt;
Admitted.&lt;br /&gt;
&lt;br /&gt;
(* ---------------------------------------------------------------------&lt;br /&gt;
   Ejercicio 8. Dmostrar que&lt;br /&gt;
      forall n : nat,&lt;br /&gt;
        beq_nat 0 (n + 1) = false.&lt;br /&gt;
   ------------------------------------------------------------------ *)&lt;br /&gt;
&lt;br /&gt;
Theorem zero_nbeq_plus_1: forall n : nat,&lt;br /&gt;
  beq_nat 0 (n + 1) = false.&lt;br /&gt;
Admitted.&lt;br /&gt;
&lt;br /&gt;
(* ---------------------------------------------------------------------&lt;br /&gt;
   Ejercicio 9. Demostrar que&lt;br /&gt;
      forall (f : bool -&amp;gt; bool),&lt;br /&gt;
        (forall (x : bool), f x = x) -&amp;gt; &lt;br /&gt;
        forall (b : bool), f (f b) = b.&lt;br /&gt;
   ------------------------------------------------------------------ *)&lt;br /&gt;
&lt;br /&gt;
Theorem identity_fn_applied_twice :&lt;br /&gt;
  forall (f : bool -&amp;gt; bool),&lt;br /&gt;
    (forall (x : bool), f x = x) -&amp;gt;&lt;br /&gt;
    forall (b : bool), f (f b) = b.&lt;br /&gt;
Admitted.&lt;br /&gt;
&lt;br /&gt;
(* ---------------------------------------------------------------------&lt;br /&gt;
   Ejercicio 10. Demostrar que&lt;br /&gt;
      forall (b c : bool),&lt;br /&gt;
        (andb b c = orb b c) -&amp;gt; b = c.&lt;br /&gt;
   ------------------------------------------------------------------ *)&lt;br /&gt;
&lt;br /&gt;
Theorem andb_eq_orb :&lt;br /&gt;
  forall (b c : bool),&lt;br /&gt;
    (andb b c = orb b c) -&amp;gt; b = c.&lt;br /&gt;
Admitted.&lt;br /&gt;
&lt;br /&gt;
(* ---------------------------------------------------------------------&lt;br /&gt;
   Ejercicio 11. En este ejercicio se considera la siguiente&lt;br /&gt;
   representación de los números naturales&lt;br /&gt;
      Inductive nat2 : Type :=&lt;br /&gt;
        | C  : nat2&lt;br /&gt;
        | D  : nat2 -&amp;gt; nat2&lt;br /&gt;
        | SD : nat2 -&amp;gt; nat2.&lt;br /&gt;
   donde C representa el cero, D el doble y SD el siguiente del doble.&lt;br /&gt;
&lt;br /&gt;
   Definir la función&lt;br /&gt;
      nat2Anat :: nat2 -&amp;gt; nat&lt;br /&gt;
   tal que (nat2Anat x) es el número natural representado por x. &lt;br /&gt;
&lt;br /&gt;
   Demostrar que &lt;br /&gt;
      nat2Anat (SD (SD C))     = 3&lt;br /&gt;
      nat2Anat (D (SD (SD C))) = 6.&lt;br /&gt;
   ------------------------------------------------------------------ *)&lt;br /&gt;
&lt;br /&gt;
Inductive nat2 : Type :=&lt;br /&gt;
  | C  : nat2&lt;br /&gt;
  | D  : nat2 -&amp;gt; nat2&lt;br /&gt;
  | SD : nat2 -&amp;gt; nat2.&lt;br /&gt;
&lt;br /&gt;
Fixpoint nat2Anat (x:nat2) : nat :=&lt;br /&gt;
  admit.&lt;br /&gt;
&lt;br /&gt;
Example prop_nat2Anat1: (nat2Anat (SD (SD C))) = 3.&lt;br /&gt;
Admitted.&lt;br /&gt;
&lt;br /&gt;
Example prop_nat2Anat2: (nat2Anat (D (SD (SD C)))) = 6.&lt;br /&gt;
Admitted.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
</feed>