fact: Fixpoint log (x:nat)(h:log_domain x){struct h} : nat := match x as y return x = y -> nat with | 0 => fun h' => False_rec nat (log_domain_non_O x h h') | S 0 => fun h' => 0 | S (S p) => fun h' => S (log (S (div2 p))(log_domain_inv x p h h')) end (refl_equal x).
imports: ZArith List Arith Lia Zwf Relations Inverse_Image Transitive_Closure chap9