Notation "x ≤ y ≤ z" := (x ≤ y ∧ y ≤ z) (at level 70, y at next level).
Notation "x < y ≤ z" := (x < y ∧ y ≤ z) (at level 70, y at next level).
Notation "x ≤ y < z" := (x ≤ y ∧ y < z) (at level 70, y at next level).
Infix "∈" := In (at level 70).
(* Compatibilité 8.4 *)
Infix "=?" := beq_nat (at level 70, no associativity).
Obligation Tactic := idtac.
Scheme Equality for prod.
Scheme Equality for list.
Set Implicit Arguments.
Section Trivial.

Lemma prod_beq_eq A B
(A_beq : A -> A -> bool) (B_beq : B -> B -> bool)
(A_beq_eq : forall a1 a2, A_beq a1 a2 = true <-> a1 = a2) (B_beq_eq : forall b1 b2, B_beq b1 b2 = true <-> b1 = b2)
p1 p2 : prod_beq _ _ A_beq B_beq p1 p2 = true <-> p1 = p2.