Section dimension_one.
Variable A : nat -> Prop.
Variable YA : (nat -> nat) -> nat.
Definition FYA (x n : nat) := n + S (enumerate YA x).
unfold increasing, FYA in |- *.
intros; apply plus_lt_compat_r; trivial with arith.
Qed.
Hint Resolve increasing_FYA.
intro YAfull; unfold enumerate in |- *; simple induction x.
apply (YAfull (fun n : nat => n)).
unfold increasing in |- *; trivial with arith.
intros y H.
change (A (FYA y (YA (FYA y)))) in |- *.
apply YAfull; auto with arith.
Qed.
Variable B : nat -> Prop.
Variable YB : (nat -> nat) -> nat.

Lemma YB_enumerate_YA : full B YB -> B (enumerate YA (YB (enumerate YA))).