(** * Greatest common divisor can be written as linear combination. *)

(* Specifications: *)
Lemma gcd_lincomb_nat :
forall x y d : nat,
x > 0 ->
gcd (Z_of_nat x) (Z_of_nat y) d ->
LinComb (Z_of_nat d) (Z_of_nat x) (Z_of_nat y).
Lemma gcd_lincomb_pos :
forall (x y : Z) (d : nat),
(x > 0)%Z -> gcd x y d -> LinComb (Z_of_nat d) x y.
Theorem gcd_lincomb :
forall (x y : Z) (d : nat),
x <> 0%Z -> gcd x y d -> LinComb (Z_of_nat d) x y.