Diferencia entre revisiones de «RA12 Relación 13»
De DAO (Demostración asistida por ordenador)
(Página creada con '<source lang="isar"> header {* R13: Número de elementos válidos *} theory R13 imports Main begin text {* ----------------------------------------------------------------...') |
m (Texto reemplazado: «"isar"» por «"isabelle"») |
||
Línea 1: | Línea 1: | ||
− | <source lang=" | + | <source lang="isabelle"> |
header {* R13: Número de elementos válidos *} | header {* R13: Número de elementos válidos *} | ||
Revisión actual del 13:55 15 jul 2018
header {* R13: Número de elementos válidos *}
theory R13
imports Main
begin
text {*
---------------------------------------------------------------------
Ejercicio 1. Definir la función
cuentaP :: "('a ⇒ bool) ⇒ 'a list ⇒ nat"
tal que (cuentaP Q xs) es el número de elementos de la lista xs que
satisfacen el predicado Q. Por ejemplo,
cuentaP (λx. 2<x) [1,3,4,0,5] = 3
---------------------------------------------------------------------
*}
fun cuentaP :: "('a ⇒ bool) ⇒ 'a list ⇒ nat" where
"cuentaP Q xs = undefined"
text {*
---------------------------------------------------------------------
Ejercicio 2. Demostrar o refutar:
cuentaP P (xs @ ys) = cuentaP P xs + cuentaP P ys*
---------------------------------------------------------------------
*}
lemma cuentaP_append_auto:
"cuentaP P (xs @ ys) = cuentaP P xs + cuentaP P ys"
oops
text {*
---------------------------------------------------------------------
Ejercicio 3. Demostrar que el número de elementos de una lista que
cumplen una determinada propiedad es el mismo que el de esa lista
invertida.
---------------------------------------------------------------------
*}
lemma cuentaP_rev:
"cuentaP P xs = cuentaP P (rev xs)"
oops
text {*
---------------------------------------------------------------------
Ejercicio 4. Encontrar y demostrar una relación entre las funciones
filter y cuentaP.
---------------------------------------------------------------------
*}
end