Definition Z_to_K (z: Z) :=
  match z with
  | Z0 => 0
  | Zpos _ => n_to_K (Z.abs_nat z)
  | Zneg _ => - (n_to_K (Z.abs_nat z))
  end.

(* Specifications: *)
Lemma Z_to_K_opp (z: Z): Z_to_K (-z)%Z = - Z_to_K z.
Lemma Z_to_K_pos (z: Z): (0 <= z)%Z -> Z_to_K z = n_to_K (Z.abs_nat z).
Lemma Z_to_K_add (z1 z2: Z): Z_to_K (z1 + z2)%Z = Z_to_K z1 + Z_to_K z2.
Lemma Z_to_K_minus (z1 z2: Z): Z_to_K (z1 - z2)%Z = Z_to_K z1 + - Z_to_K z2.
Lemma Z_to_K_mult (z1 z2: Z): Z_to_K (z1 * z2)%Z = Z_to_K z1 * Z_to_K z2.