diff options
Diffstat (limited to 'theories/Vectors')
-rw-r--r-- | theories/Vectors/VectorDef.v | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/theories/Vectors/VectorDef.v b/theories/Vectors/VectorDef.v index 777e68b45..adc2c09a3 100644 --- a/theories/Vectors/VectorDef.v +++ b/theories/Vectors/VectorDef.v @@ -197,18 +197,18 @@ Fixpoint rev_append_tail {A n p} (v : t A n) (w: t A p) | a :: v' => rev_append_tail v' (a :: w) end. +Import EqdepFacts. + (** This one has a better type *) Definition rev_append {A n p} (v: t A n) (w: t A p) :t A (n + p) := -eq_rect _ (fun n => t A n) (rev_append_tail v w) _ - (eq_sym _ _ _ (plus_tail_plus n p)). + rew <- (plus_tail_plus n p) in (rev_append_tail v w). (** rev [a₁ ; a₂ ; .. ; an] is [an ; a{n-1} ; .. ; a₁] Caution : There is a lot of rewrite garbage in this definition *) Definition rev {A n} (v : t A n) : t A n := - eq_rect _ (fun n => t A n) (rev_append v []) - _ (eq_sym _ _ _ (plus_n_O _)). + rew <- (plus_n_O _) in (rev_append v []). End BASES. Local Notation "v [@ p ]" := (nth v p) (at level 1). |