(* QuickChick Prelude *)
Set Warnings "-extraction-opaque-accessed,-extraction".
Set Warnings "-notation-overridden,-parsing".
Set Bullet Behavior "Strict Subproofs".
(* End prelude *)
Require Export Poly.
Admitted. (* Leo: OUT-OF-SCOPE *)
Admitted. (* Higher-order *)
(*     true = beq_nat n 5  -> *)
Admitted. (* (*N*) QuickChick silly3_firsttry. *)
Admitted. (* (*N*) QuickChick rev_exercise1. *)
Admitted. (* (*N*) QuickChick trans_eq. *)
Example trans_eq_example' : forall (a b c d e f : nat),
[a;b] = [c;d] ->
[c;d] = [e;f] ->
[a;b] = [e;f].
Admitted. (* Leo: OUT-OF-SCOPE *)
Example trans_eq_exercise : forall (n m o p : nat),
m = (minustwo o) ->
(n + p) = m ->
(n + p) = (minustwo o).
Admitted. (* Leo: OUT-OF-SCOPE *)
Admitted. (* Leo: OUT-OF-SCOPE *)
Admitted. (* (*N*) QuickChick beq_nat_0_l. *)
Admitted. (* Leo: OUT-OF-SCOPE *)
Admitted. (* Leo: CoArb Weirdness *)
Admitted. (* Leo: OUT-OF-SCOPE *)
Admitted. (* Leo: OUT-OF-SCOPE *)
Admitted. (* (*N*) QuickChick beq_id_true. *)
Admitted. (* (*N*) QuickChick nth_error_after_last. *)
Definition square n := n * n.

Lemma square_mult : forall n m, square (n * m) = square n * square m.