fact: Record morphism R S (phi : val R -> val S) : Prop := Morphism { morph_le x y : le (phi x) (phi y) <-> le x y; morph_sup (E : set R) : has_sup E -> eq (phi (sup E)) (sup (image phi E)); morph_add x y : eq (phi (add x y)) (add (phi x) (phi y)); morph_zero : eq (phi (zero R)) (zero S); morph_opp x : eq (phi (opp x)) (opp (phi x)); morph_mul x y : eq (phi (mul x y)) (mul (phi x) (phi y)); morph_one : eq (phi (one R)) (one S); morph_inv x : ~ eq x (zero R) -> eq (phi (inv x)) (inv (phi x)) }.