aboutsummaryrefslogtreecommitdiff
path: root/test-suite
diff options
context:
space:
mode:
authorErik Martin-Dorel2019-04-03 01:08:38 +0200
committerErik Martin-Dorel2019-04-23 20:22:33 +0200
commit04da1739139c8d96469a2b86280e520e532beb39 (patch)
tree49ae5e3e443a06da427da268fe0452f3ebb406a9 /test-suite
parent6835590f6e0a8e96719c7f37ef6f8bb789bd349b (diff)
[ssr] under: Fix the defective form ("=> [*|*]" implied) and its doc
* Add tests accordingly.
Diffstat (limited to 'test-suite')
-rw-r--r--test-suite/ssr/under.v36
1 files changed, 36 insertions, 0 deletions
diff --git a/test-suite/ssr/under.v b/test-suite/ssr/under.v
index 1e3b0f678b..ba3aa9d621 100644
--- a/test-suite/ssr/under.v
+++ b/test-suite/ssr/under.v
@@ -104,6 +104,42 @@ under eq_bigr => i Hi do under eq_big => [j|j Hj] do [rewrite muln1 | rewrite ad
done.
Qed.
+Lemma test_big_2cond_0intro (F : nat -> nat) (m : nat) :
+ \sum_(0 <= i < m | odd (i + 1)) (i + 2) >= 0.
+Proof.
+(* in interactive mode *)
+under eq_big.
+{ move=> n; rewrite (addnC n 1); over. }
+{ move=> i Hi; rewrite (addnC i 2); over. }
+done.
+Qed.
+
+Lemma test_big_2cond_1intro (F : nat -> nat) (m : nat) :
+ \sum_(0 <= i < m | odd (i + 1)) (i + 2) >= 0.
+Proof.
+(* in interactive mode *)
+Fail under eq_big => i.
+(* as it amounts to [under eq_big => [i]] *)
+Abort.
+
+Lemma test_big_2cond_all (F : nat -> nat) (m : nat) :
+ \sum_(0 <= i < m | odd (i + 1)) (i + 2) >= 0.
+Proof.
+(* in interactive mode *)
+Fail under eq_big => *.
+(* as it amounts to [under eq_big => [*]] *)
+Abort.
+
+Lemma test_big_2cond_all_implied (F : nat -> nat) (m : nat) :
+ \sum_(0 <= i < m | odd (i + 1)) (i + 2) >= 0.
+Proof.
+(* in one-liner mode *)
+under eq_big do [move=> ? (* due to delta-head-cst *); rewrite addnC
+ |rewrite addnC].
+(* amounts to [under eq_big => [*|*] do [...|...]] *)
+done.
+Qed.
+
Lemma test_big_patt1 (F G : nat -> nat) (n : nat) :
\sum_(0 <= i < n) (F i + G i) = \sum_(0 <= i < n) (G i + F i) + 0.
Proof.