Set Implicit Arguments.
Definition ijs (n: nat): list (nat * nat) :=
concat (map (fun j => map (fun i => (i, j)) (nats 0 j)) (nats 0 n)).

(* Specifications: *)
Lemma In_ijs n i j: lt i j -> lt j n -> List.In (i, j) (ijs n).
Proof with auto with arith.