J'ai du mal à comprendre la signification du mot-clé 'fun' dans Coq.Que fait un mot-clé amusant dans Coq?
Il existe plusieurs types tous et la fonction forallb:
Inductive all (X : Type) (P : X -> Prop) : list X -> Prop :=
| all_nil : all X P []
| all_cons : forall (x:X) (l: list X) , P x -> all X P l -> all X P (x::l).
Fixpoint forallb {X : Type} (test : X -> bool) (l : list X) : bool :=
match l with
| [] => true
| x :: l' => andb (test x) (forallb test l')
end.
et le théorème:
Theorem all_spec: forall (X:Type) (test : X -> bool) (l: list X),
forallb test l = true <-> all X (fun x => test x = true) l.
Je comprends la partie gauche, mais confus sur ce plaisir fait sur le côté droit du < -> .
Cette réponse est correcte, mais je ne pense pas que ce soit une bonne idée d'expliquer les choses en termes de Haskell. – Ptival
@Ptival Je suis d'accord avec votre remarque en général, bien sûr. Mais je ne pouvais pas faire mieux parce que je suis habitué à Haskell, mais intéressé par la compréhension profonde du coq, donc j'ai besoin de traduire les notions de base entre les deux systèmes de programmation. Après cela, j'ai le sentiment d'une image plus claire. –