aboutsummaryrefslogtreecommitdiff
path: root/src/Util
diff options
context:
space:
mode:
authorGravatar Andres Erbsen <andreser@mit.edu>2016-09-21 20:45:01 -0400
committerGravatar Andres Erbsen <andreser@mit.edu>2016-09-22 10:44:07 -0400
commit5357fe92e65712a3e2506fe0a939b358d14183d7 (patch)
treeea0328c53e10620d9a46cd13606a5b6646ce7d6f /src/Util
parentfd5cba50d8743149e7ca4e386716126f2fc03e63 (diff)
alternative signing derivation
cleanup
Diffstat (limited to 'src/Util')
-rw-r--r--src/Util/LetIn.v8
-rw-r--r--src/Util/Relations.v5
2 files changed, 10 insertions, 3 deletions
diff --git a/src/Util/LetIn.v b/src/Util/LetIn.v
index a472f4090..80310b833 100644
--- a/src/Util/LetIn.v
+++ b/src/Util/LetIn.v
@@ -14,9 +14,11 @@ Global Instance Proper_Let_In_nd_changevalue {A B} (RA:relation A) {RB:relation
: Proper (RA ==> (RA ==> RB) ==> RB) (Let_In (P:=fun _=>B)).
Proof. cbv; intuition. Qed.
-Lemma app_Let_In_nd {A B C} (f:B -> C) : forall (e:A) (C:A -> B),
- f (Let_In e C) = Let_In e (fun v => f (C v)).
-Proof. cbv; intuition. Qed.
+Definition app_Let_In_nd {A B T} (f:B->T) (e:A) (C:A->B)
+ : f (Let_In e C) = Let_In e (fun v => f (C v)) := eq_refl.
+
+Definition Let_app_In_nd {A B T} (f:A->B) (e:A) (C:B->T)
+ : Let_In (f e) C = Let_In e (fun v => C (f v)) := eq_refl.
Class _call_let_in_to_Let_In {T} (e:T) := _let_in_to_Let_In_return : T.
(* : forall T, gallina T -> gallina T, structurally recursive in the argument *)
diff --git a/src/Util/Relations.v b/src/Util/Relations.v
index aa280db26..4612fa8a8 100644
--- a/src/Util/Relations.v
+++ b/src/Util/Relations.v
@@ -27,3 +27,8 @@ Proof.
logic; try match goal with [H:_|-_] => (rewrite H || rewrite <-H); assumption end.
repeat (assumption||reflexivity||econstructor); assumption. (* WHY the last [assumption]?*)
Qed.
+
+Lemma iff_R_R_same_r {T R} {Req:@Equivalence T R} x y ref : R x y -> (R x ref <-> R y ref).
+Proof.
+ intro Hx; rewrite Hx; clear Hx. reflexivity.
+Qed. \ No newline at end of file