Fact rem_equiv p x r : r = rem x p <-> (p = 0 /\ x = r)
\/ (p <> 0 /\ r < p /\ exists n, x = n*p + r).

(* Specifications: *)
Lemma dio_rel_remainder p x r : 𝔻P p -> 𝔻P x -> 𝔻P r
-> 𝔻R (fun ν => r ν = rem (x ν) (p ν)).
Lemma dio_rel_congruence x y p : 𝔻P x -> 𝔻P y -> 𝔻P p
-> 𝔻R (fun ν => rem (x ν) (p ν) = rem (y ν) (p ν)).
Lemma dio_rel_not_divides x p : 𝔻P x -> 𝔻P p -> 𝔻R (fun ν => ~ divides (x ν) (p ν)).
Fact df_mexists_size_Z n f : df_size_Z (df_mexists n f) = (Z.of_nat n + df_size_Z f)%Z.