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 list_beq_refl (A : Type) (A_beq : A -> A -> bool) l :
(forall a1 a2 : A, In a1 l -> In a2 l -> (A_beq a1 a2 = true <-> a1 = a2)) ->
list_beq _ A_beq l l = true.