diff options
author | Andres Erbsen <andreser@mit.edu> | 2016-09-21 20:45:01 -0400 |
---|---|---|
committer | Andres Erbsen <andreser@mit.edu> | 2016-09-22 10:44:07 -0400 |
commit | 5357fe92e65712a3e2506fe0a939b358d14183d7 (patch) | |
tree | ea0328c53e10620d9a46cd13606a5b6646ce7d6f /src/Util | |
parent | fd5cba50d8743149e7ca4e386716126f2fc03e63 (diff) |
alternative signing derivation
cleanup
Diffstat (limited to 'src/Util')
-rw-r--r-- | src/Util/LetIn.v | 8 | ||||
-rw-r--r-- | src/Util/Relations.v | 5 |
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 |