diff options
author | Matthieu Sozeau <mattam@mattam.org> | 2014-06-20 12:29:04 +0200 |
---|---|---|
committer | Matthieu Sozeau <mattam@mattam.org> | 2014-06-20 12:29:04 +0200 |
commit | cbf1315572bdb86dd5fc9102690f3585194bbc30 (patch) | |
tree | 9172ad81c7b9381e4ffd7aeeae5589493320cf0d /theories/FSets | |
parent | 8b90dc406730123640f186c8b39f6329a3f434a4 (diff) |
Cleanup treatment of template universe polymorphism (thanks to E. Tassi
for helping fixing this).
Now the issue is handled solely through refreshing of the terms assigned
to evars during unification.
If ?X = list ?Y, then Y's type is refreshed so that it doesn't mention
a template universe and in turn, ?X won't. Same goes when typechecking
(nil ?X, nil ?Y), the pair constructor levels will be set higher than fresh
universes for the lists carriers. This also handles user-defined functions
on template polymorphic inductives, which was fragile before.
Pretyping and Evd are now uncluttered from template-specific code.
Diffstat (limited to 'theories/FSets')
-rw-r--r-- | theories/FSets/FMapPositive.v | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/theories/FSets/FMapPositive.v b/theories/FSets/FMapPositive.v index a0ecdb756..c9d868c40 100644 --- a/theories/FSets/FMapPositive.v +++ b/theories/FSets/FMapPositive.v @@ -212,7 +212,7 @@ Module PositiveMap <: S with Module E:=PositiveOrderedTypeBits. try rewrite <- (gleaf i); auto; try apply IHi; congruence. Qed. - Lemma rleaf : forall (i : key), remove i (Leaf : t A) = Leaf. + Lemma rleaf : forall (i : key), remove i Leaf = Leaf. Proof. destruct i; simpl; auto. Qed. Theorem grs: |