aboutsummaryrefslogtreecommitdiff
path: root/dev
diff options
context:
space:
mode:
authorMatthieu Sozeau2014-06-15 14:15:30 +0200
committerMatthieu Sozeau2014-06-15 14:15:30 +0200
commita0141c0ccc295af0d7938e8e515c9eef40449d73 (patch)
tree45b9b4432cf8b342e6578efca2cadd9d25b1d1d8 /dev
parent0082e3c26ede3f1cabc3237f82be15d013817385 (diff)
Change Ltac constr matching semantics to consider universes when merging two
bindings of the same variable (fixing HoTT bug #52). Document the unification of universes in Ltac/tactics.
Diffstat (limited to 'dev')
-rw-r--r--dev/doc/univpoly.txt18
1 files changed, 18 insertions, 0 deletions
diff --git a/dev/doc/univpoly.txt b/dev/doc/univpoly.txt
index ad0fd9eb22..4c89af01db 100644
--- a/dev/doc/univpoly.txt
+++ b/dev/doc/univpoly.txt
@@ -235,3 +235,21 @@ typing constraint. Adding the correct type annotations will always fix
this.
+Unification semantics
+=====================
+
+In Ltac, matching with:
+
+- a universe polymorphic constant [c] matches any instance of the
+ constant.
+- a variable ?x already bound to a term [t] (non-linear pattern) uses
+ strict equality of universes (e.g., Type@{i} and Type@{j} are not
+ equal).
+
+In tactics:
+
+- [change foo with bar], [pattern foo] will unify all instances of [foo]
+ (and convert them with [bar]). This might incur unifications of
+ universes. [change] uses conversion while [pattern] only does
+ syntactic matching up-to unification of universes.
+- [apply], [refine] use unification up to universes.