From 0b0728b5a447d6f7ff5fdf80c87d66ac714c3151 Mon Sep 17 00:00:00 2001 From: Jason Gross Date: Fri, 29 Jul 2016 10:46:55 -0700 Subject: Set Asymmetric Patterns, add util lemmas about sig --- src/Util/Equality.v | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/Util/Equality.v (limited to 'src/Util/Equality.v') diff --git a/src/Util/Equality.v b/src/Util/Equality.v new file mode 100644 index 000000000..1ff76a009 --- /dev/null +++ b/src/Util/Equality.v @@ -0,0 +1,25 @@ +(** * Lemmas about [eq] *) + +Definition concat_1p {A x y} (p : x = y :> A) : eq_trans eq_refl p = p. +Proof. case p; reflexivity. Defined. +Definition concat_p1 {A x y} (p : x = y :> A) : eq_trans p eq_refl = p. +Proof. case p; reflexivity. Defined. +Definition concat_pV {A x y} (p : x = y :> A) : eq_trans p (eq_sym p) = eq_refl. +Proof. case p; reflexivity. Defined. +Definition concat_Vp {A x y} (p : x = y :> A) : eq_trans (eq_sym p) p = eq_refl. +Proof. case p; reflexivity. Defined. +Definition transport_pp {A} {P : A -> Type} {x y z} (p : x = y) (q : y = z) (k : P x) +: eq_rect _ P k _ (eq_trans p q) = eq_rect _ P (eq_rect _ P k _ p) _ q. +Proof. case q; simpl; reflexivity. Defined. +Lemma transport_const {A P x y} (p : x = y :> A) k +: eq_rect _ (fun _ : A => P) k _ p = k. +Proof. case p; reflexivity. Defined. +Lemma ap_const {A B x y} (b : B) (p : x = y :> A) +: f_equal (fun _ => b) p = eq_refl. +Proof. case p; reflexivity. Defined. +Lemma inv_pp {A x y z} (p : x = y :> A) (q : y = z :> A) +: eq_sym (eq_trans p q) = eq_trans (eq_sym q) (eq_sym p). +Proof. case q; case p; reflexivity. Defined. +Lemma inv_V {A x y} (p : x = y :> A) +: eq_sym (eq_sym p) = p. +Proof. case p; reflexivity. Defined. -- cgit v1.2.3