mirror of
https://github.com/achlipala/frap.git
synced 2024-11-27 23:06:20 +00:00
Polymorphism: add a comment about the infamous quantifier-ordering issue with induction
This commit is contained in:
parent
cf4d06c222
commit
643d44e524
1 changed files with 7 additions and 0 deletions
|
@ -189,6 +189,13 @@ Proof.
|
|||
equality.
|
||||
Qed.
|
||||
|
||||
(* IMPORTANT NOTE: the proof above would *not* have worked with the orders of
|
||||
* variables [ls] and [acc] swapped in the lemma statement! Try the proof that
|
||||
* way to see what goes wrong. The problem is that the induction hypothesis
|
||||
* would be too weak. A single [acc] value would be fixed for the whole proof,
|
||||
* while we need [acc] to *vary* throughout the induction, by retaining a
|
||||
* universal quantifier for it in the IH. *)
|
||||
|
||||
(* Concatenating the empty list has no effect. *)
|
||||
Lemma app_nil : forall A (ls : list A),
|
||||
ls ++ [] = ls.
|
||||
|
|
Loading…
Reference in a new issue