From 6335426c320d199bf821a0507b0e26d3ad67ff88 Mon Sep 17 00:00:00 2001 From: Jason Gross Date: Thu, 23 Jun 2016 16:13:22 -0700 Subject: Add equality on sum types --- src/Util/Sum.v | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 src/Util/Sum.v (limited to 'src/Util/Sum.v') diff --git a/src/Util/Sum.v b/src/Util/Sum.v new file mode 100644 index 000000000..2f03639b2 --- /dev/null +++ b/src/Util/Sum.v @@ -0,0 +1,18 @@ +Require Import Coq.Classes.Morphisms. +Require Import Relation_Definitions. + +Definition sumwise {A B} (RA:relation A) (RB : relation B) : relation (A + B) + := fun x y => match x, y with + | inl x', inl y' => RA x' y' + | inr x', inr y' => RB x' y' + | _, _ => False + end. + +Global Instance Equivalence_sumwise {A B} {RA:relation A} {RB:relation B} + {RA_equiv:Equivalence RA} {RB_equiv:Equivalence RB} + : Equivalence (sumwise RA RB). +Proof. + split; repeat intros [?|?]; simpl; trivial; destruct RA_equiv, RB_equiv; try tauto; eauto. +Qed. + +Arguments sumwise {A B} _ _ _ _. -- cgit v1.2.3