Inductive verify_BezoutZ (a b : Z) : Set :=
Bezout_i :
forall u v : Z, (a * u + b * v)%Z = gcdZ a b -> verify_BezoutZ a b.
Definition Q (a : Z) := forall b : Z, verify_BezoutZ a b.

(* Specifications: *)
Lemma acc_Q : forall n : Z, (forall m : Z, (Zabs m < Zabs n)%Z -> Q m) -> Q n.
Lemma Bezout_exists : forall a b : Z, verify_BezoutZ a b.
Definition congruentZ (x y n : Z) := divide Z IdZ Zmult 0%Z n (x + - y)%Z.
Lemma divide_selfZ : forall x : Z, divide Z IdZ Zmult 0%Z x x.
Theorem chinese_remaindering_theorem :
forall a b x y : Z,
gcdZ a b = 1%Z -> {z : Z | congruentZ z x a /\ congruentZ z y b}.