fact: Variables (A : Set) (f : A -> A -> A) (zero_A : A) (assoc : forall (x y z : A), f x (f y z) = f (f x y) z) (zero_left : forall (x : A), f zero_A x = x) (zero_right : forall (x : A), f x zero_A = x).
imports: ZArith List Arith Zwf Relations Inverse_Image Transitive_Closure Zdiv