Admitted. (* Leo: OUT-OF-SCOPE *)

(* Specifications: *)
Theorem zero_nbeq_plus_1 : forall n : nat,
beq_nat 0 (n + 1) = false.
Theorem silly2 : forall (n m o p : nat),
n = m  ->
(forall (q r : nat), q = r -> [q;o] = [r;p]) ->
[n;o] = [m;p].
Theorem beq_nat_0_l : forall n,
0 = n -> n = 0.
Theorem f_equal : forall (A B : Type) (f: A -> B) (x y: A),
x = y -> f x = f y.
Theorem double_injective : forall n m,
double n = double m ->
n = m.
Theorem beq_id_true : forall (x y : id),
x = y -> x = y.
Theorem bool_fn_applied_thrice :
forall (f : bool -> bool) (b : bool),
f (f (f b)) = f b.
Theorem filter_exercise : forall (X : Type) (test : X -> bool)
(x : X) (l lf : list X),
filter test l = x :: lf ->
test x = true.