Poner o no el tipo en constructores (depende de versión de Coq?)

Poner o no el tipo en constructores (depende de versión de Coq?)

de Agustin Leonardo Lucas Millan -
Número de respuestas: 2

Buenas, nos está pasando con mi compañera que para el mismo código si yo agrego un underscore en el lugar del tipo en una definición que usa match a mí me funciona mientras que a ella Coq le dice "Error: The constructor X expects no arguments". Por otro lado, si ella omite el underscore le funciona bien, mientras que a mí me da error "The constructor X is expected to be applied to 1 argument while it is actually applied to no arguments".
Ejemplo:

Como me funciona a mí:
Definition is_nil (A:Set) (l : list A) :=
match l with
  | nil _ => true
  | cons _ _ l => false
end.

Como le funciona a mi compañera:
Definition is_nil (A:Set) (l : list A) :=
match l with
  | nil => true
  | cons _ l => false
end.

Puede ser que sean versiones distintas de Coq? Se puede entregar cualquiera de las dos formas?

Gracias de antemano, saludos.

En respuesta a Agustin Leonardo Lucas Millan

Re: Poner o no el tipo en constructores (depende de versión de Coq?)

de Carlos Luna -

Hola.

En el segundo caso, se usan argumentos implícitos (Set Implicit Arguments) ? 

Las definiciones de list son exactamente iguales?

Podría ser por un tema de versión, pero no lo creo. Si fuera esto, no hay problemas con entregar en cualquiera de las dos versiones.

Saludos, Carlos 


En respuesta a Carlos Luna

Re: Poner o no el tipo en constructores (depende de versión de Coq?)

de Agustin Leonardo Lucas Millan -
Hola, son las mismas definiciones sí, y nos pasa con muchas otras también, incluso con alguna demostración que en un caso es válida y en el otro no (tenemos un git con nuestra solución en conjunto, o sea que el código es exactamente el mismo). Nos fijamos las versiones y ella estaba usando la 8.4pl6 y yo la 8.16.1. Probamos actualizando la más vieja a 8.17.1 y ahora se comportan igual, así que confirmo que era un tema de versiones.
Gracias por la respuesta.
Saludos,
Agustín.