From cc2072ee09657aac25a71a11868b4e65ba30964c Mon Sep 17 00:00:00 2001
From: Regis Blanc <regwblanc@gmail.com>
Date: Tue, 14 Jul 2015 09:53:00 +0200
Subject: [PATCH] proving properties of equivalence over rationals

---
 .../verification/math/RationalProps.scala     | 20 +++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/testcases/verification/math/RationalProps.scala b/testcases/verification/math/RationalProps.scala
index 60d30a6c6..aec07246e 100644
--- a/testcases/verification/math/RationalProps.scala
+++ b/testcases/verification/math/RationalProps.scala
@@ -66,4 +66,24 @@ object RationalProps {
     require(p.isRational && q.isRational && q.nonZero)
     ((p / q) * q) ~ p
   } holds
+  
+
+  /*
+   * properties of equivalence
+   */
+
+  def equivalentIsReflexive(p: Rational): Boolean = {
+    require(p.isRational)
+    p ~ p
+  } holds
+
+  def equivalentIsSymmetric(p: Rational, q: Rational): Boolean = {
+    require(p.isRational && q.isRational && p ~ q)
+    q ~ p
+  } holds
+
+  def equivalentIsTransitive(p: Rational, q: Rational, r: Rational): Boolean = {
+    require(p.isRational && q.isRational && r.isRational && p ~ q && q ~ r)
+    p ~ r
+  } holds
 }
-- 
GitLab