(* Trivial cannot resolve a general real0 hint. *)

(* Specifications: *)
Lemma algCrect x : x = 'Re x + 'i * 'Im x.
Lemma intCK : cancel intr floorC.
Lemma floorCK : {in Cint, cancel floorC intr}. Proof. by move=> z /eqP. Qed.
Lemma floorC0 : floorC 0 = 0. Proof. exact: (intCK 0). Qed.
Lemma floorC1 : floorC 1 = 1. Proof. exact: (intCK 1). Qed.
Hint Resolve floorC0 floorC1 : core.
Lemma floorCpK (p : {poly algC}) :
p \is a polyOver Cint -> map_poly intr (map_poly floorC p) = p.
Lemma floorCpP (p : {poly algC}) :
p \is a polyOver Cint -> {q | p = map_poly intr q}.
Lemma floorCD : {in Cint & Creal, {morph floorC : x y / x + y}}.
Lemma floorCN : {in Cint, {morph floorC : x / - x}}.
Canonical Cint_keyed := KeyedPred Cint_key.