File: bug_15568.v

package info (click to toggle)
coq 8.20.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 44,116 kB
  • sloc: ml: 234,160; sh: 4,301; python: 3,270; ansic: 2,644; makefile: 882; lisp: 172; javascript: 63; xml: 24; sed: 2
file content (18 lines) | stat: -rw-r--r-- 576 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Require Import Coq.ZArith.BinInt.
Require Import Coq.Classes.RelationClasses.

Axiom mod_mod : forall a b : Z, Z.modulo (Z.modulo b a) a = Z.modulo b a.

#[global] Hint Rewrite Z.add_0_r mod_mod : bu.

Definition modEq (d:Z) := fun (a b :Z)=> Z.modulo a d = Z.modulo b d.

#[global] Instance modEqR (d:Z): Reflexive  (modEq d). Admitted.
#[global] Instance modEqT (d:Z): Transitive (modEq d). Admitted.

Lemma foo d a e : (a mod d)%Z = e -> Z.modulo (Z.modulo a d + 0) d = e.
Proof.
  intro H.
  rewrite_strat try (bottomup (hints bu)). (* Should not fail. *)
  exact H.
Qed.