¿Cuáles son las pautas generales para verificar sus pruebas? Creo que esto es importante para los estudiantes graduados como yo. Ya sé lo que tenemos que hacer para probar algo, pero siempre debes verificar todo antes de enviarlo. Incluso a tu propio asesor.
Desarrollé algunas estrategias por prueba y error, y recibí muchos consejos de mi asesor. Pero este es siempre un trabajo muy tedioso. Normalmente, cuando terminas con algo, solo quieres pasar al siguiente problema, pero aún tienes que seguir con el problema actual hasta que todo esté perfecto. Aquí presento un ejemplo de mi propia lista de trucos:
- Completa los detalles. Hay muchos errores en los lugares donde escribe "está claro que ...", "sin pérdida de generalidad ...", etc.
- Prueba algunos números. Pruebe casos extremos, como "lo que sucede cuando configuro o ".
- Mantenga un cuaderno limpio. Escriba todos los días en él y compárelo con sus notas generales. Intento escribir también en látex, he encontrado muchos errores de esta manera.
¿Cuáles son las estrategias generales que aplica para verificar sus pruebas?
El objetivo de esta pregunta es convertirlo en un wiki comunitario.
fuente
Respuestas:
Los ingenieros de software tienen una noción que llaman " olores de código ". Estos son síntomas en el código que pueden indicar un problema más profundo. Los ingenieros de software recopilan listas mentales de olores para tener en cuenta (es decir, métodos excesivamente largos o demasiados parámetros). No significa necesariamente que haya un problema, sino que simplemente indica que el escritor puede querer verificar dos veces.
Propongo que también deberíamos considerar los "olores a prueba" . Esto no le dará un algoritmo para verificar sus pruebas, pero le dará un lenguaje y una metáfora para reconocer posibles problemas en las pruebas. Algunos ejemplos de olores de pruebas:
También hay olores más sutiles. Por ejemplo, si una prueba usa el teorema binomial para expandir una expresión y luego usa el teorema binomial para volver a una forma cerrada, entonces tal vez haya una manipulación directa en la forma cerrada que dé el mismo resultado.
Mi sugerencia es recopilar una lista (mental o escrita) de tales olores y verificarlos a medida que lee su trabajo. El buen efecto secundario de este enfoque es que también te hará un mejor lector.
Nota: Mi esperanza en esta respuesta fue dar un lado intuitivo a la respuesta rigurosa proporcionada por Cómo escribir una prueba de Lamport a la que se hace referencia en la respuesta de M. Alaggan.
fuente
Hay un muy buen trabajo de Leslie Lamport ( Cómo escribir una prueba ). En realidad, es una propuesta suya sobre un estilo de escritura de pruebas detalladas de tal manera que:
(1) Permite detectar errores de forma directa
(2) Deja en claro qué suposiciones y teoremas se usan en qué partes, lo que hace que sea bastante fácil ver qué sucede si quieres (por ejemplo) usar suposiciones más débiles
También hay algo de experiencia comunitaria y comentarios inspiradores sobre esta técnica en MO que muestra una experiencia positiva en general (y también algunos otros recursos).
Actualización: hay una nueva versión Cómo escribir una prueba del siglo XXI .
fuente
Dick Lipton tiene un buen artículo titulado ' Cómo demostrar que una prueba es una prueba '
fuente
Me parece recordar haber leído un relato popular hace mucho tiempo sobre cómo los físicos tratan un problema análogo. Quién sabe cuán precisa es la siguiente versión; Las correcciones son bienvenidas. Pero encontré la estrategia subyacente bastante notable.
Explicaron cómo llegaron a creer en los agujeros negros. Los agujeros negros fueron inicialmente construcciones puramente matemáticas, como otros objetos extraños en física como agujeros de gusano. Su estrategia fue sorprendente: matemáticamente arrojarían otros objetos al objeto a probar. Los agujeros de gusano fallaron sus pruebas porque encontraron que el agujero de gusano colapsaría incluso en presencia de un objeto físico normal, tal vez un asteroide. Pero los agujeros negros pasaron esta prueba: el agujero negro sobreviviría si le lanzaran un asteroide. Entonces intentaron lanzarle una estrella. Mismo resultado. Finalmente, arrojaron otro agujero negro al agujero negro y sobrevivió. Como resultado de esto, se volvieron lo suficientemente seguros de la existencia de agujeros negros para comenzar a buscarlos en el universo real.
Entonces, la relevancia y la aplicación de la estrategia anterior es comenzar a arrojar cosas a su prueba. ¿Sobrevive a los controles de cordura ? Si elimina una suposición necesaria, ¿se derrumba como debería? ¿Colapsa como debería cuando se aplica a casos fuera de su alcance? ¿Soporta generalizaciones y especializaciones razonables? Eche un vistazo a la lista de heurísticas en Cómo resolverlo de Polya . Intente mutar su prueba con estas heurísticas y vea si se para y cae como debería.
fuente
Creo que uno de los enfoques más seguros es crear múltiples pruebas independientes. Entonces puede estar seguro de que su resultado principal es correcto, incluso si tiene un error en algunos detalles de una prueba.
fuente
Una técnica que he encontrado útil es pensar en qué otros resultados podría probar la estrategia de prueba. Si puedo adaptar fácilmente la estrategia de prueba para probar un gran problema abierto o incluso un problema que no está abierto pero que tiene una solución demasiado complicada en comparación con la complejidad de la estrategia de prueba, entonces esa es una gran razón para dudar la prueba.
fuente
Siempre reviso mis pruebas con un verificador de pruebas como COQ o ISABELLE . Si puede probar su prueba en cualquiera de estos lenguajes de programación, puede estar seguro de que su prueba es correcta. Tan simple como un término lambda;).
fuente