proposition: Fact lb_nat_lb n : ⟦⟬ n ⟭⟧ = n.
proof: Proof. induction on n as IHn with measure n. destruct (eq_nat_dec n 0) as [ | Hn ]. + subst; rewrite nat_lb_fix_0; auto. + destruct (euclid_2 n) as (q & [ Hq | Hq ]); subst n. * rewrite nat_lb_fix_1; try lia. rewrite lb_nat_fix_1; f_equal. apply IHn; lia. * rewrite nat_lb_fix_2; try lia. rewrite lb_nat_fix_2; do 2 f_equal. apply IHn; lia. Qed.
imports: Arith Nat Lia List Bool Setoid Undecidability.Shared.Libs.DLW.Utils(utils_tac utils_list utils_nat bool_list gcd sums power_decomp)