(* Specifications: *)
Lemma trivial : monoid nat.
Lemma obsolete_debug : forall n : nat, power nat trivial n 1 = n.
Lemma plus_n_1 : forall n : nat, S n = n + 1.
Lemma lt_b_qbr : forall b q r : nat, 0 < r -> 0 < q -> r < b -> b < q * b + r.
Lemma lt_q_qbr : forall b q r : nat, 0 < r -> one < b -> q < q * b + r.
Lemma lt_q_qbr' : forall b q r : nat, 0 < q -> one < b -> q < q * b + r.
Lemma le_q_qbr : forall b q r : nat, 0 < b -> q <= q * b + r.
Lemma lt_O_q : forall b q r : nat, b < q * b + r -> 0 < r -> r < b -> 0 < q.
Lemma mult_le_l : forall a b c : nat, b <= c -> a * b <= a * c.
Lemma mult_lt_l : forall a b c : nat, 0 < a -> b < c -> a * b < a * c.
Lemma mult_le_r : forall a b c : nat, b <= c -> b * a <= c * a.
Lemma mult_lt_r : forall a b c : nat, 0 < a -> b < c -> b * a < c * a.
Lemma mult_inj_l : forall a b c : nat, a * c < b * c -> a < b.
Lemma mult_p_lt_qp : forall p q : nat, 0 < p -> one < q -> p < q * p.
Lemma mult_p_le_qp : forall p q : nat, 0 < q -> p <= q * p.
Lemma mult_p_lt_pq : forall p q : nat, 0 < p -> one < q -> p < p * q.
Lemma mult_p_le_pq : forall p q : nat, 0 < q -> p <= p * q.
Lemma quotient_positive : forall q n n0 : nat, n = q * n0 -> 0 < n -> 0 < q.
Lemma quotient_gt_one : forall q n n0 : nat, n0 < n -> n = q * n0 -> one < q.
Lemma standard : monoid nat.
Lemma Prop_wfi : forall P : A -> Prop, (forall x : A, (forall y : A, R y x -> P y) -> P x) -> forall a : A, P a.
Lemma dicho : strategy.
Lemma M3 : gencode (Call_M three).
Lemma M2q : forall q : nat, gencode (Call_M (two_power q)).
Lemma C2M : forall p q : nat, gencode (Call_C p q) -> gencode (Call_M p).
Lemma MMC : forall p q : nat, gencode (Call_M p) -> gencode (Call_M q) -> gencode (Call_C (q * p) p).
Lemma KMC : forall p q r : nat, gencode (Call_K p r) -> gencode (Call_M q) -> gencode (Call_C (q * p + r) p).
Lemma MMK : forall p q : nat, gencode (Call_M p) -> gencode (Call_M q) -> gencode (Call_K (q * p) p).
Lemma KMK : forall p q r : nat, gencode (Call_K p r) -> gencode (Call_M q) -> gencode (Call_K (q * p + r) p).
Lemma lt_or_Zero : forall q : nat, 0 < q \/ q = 0.
Lemma one_cases : forall q : nat, 1 < q \/ q = 0 \/ q = 1.
Lemma enum1 : forall n : nat, n < two -> n = 0 \/ n = 1.
Lemma le5 : forall P : nat -> Prop, P 0 -> P one -> P two -> P three -> P four -> (forall n : nat, four < n -> P n) -> forall n : nat, P n.
Lemma enum4 : forall n : nat, n < S four -> n = 0 \/ n = one \/ n = two \/ n = three \/ n = four.
Lemma not_le_lt : forall n m : nat, ~ n <= m -> m < n.
Lemma not_lt_le : forall n m : nat, ~ n < m -> m <= n.
Lemma lt_not_lt : forall n p : nat, n < p -> ~ p < S n.
Lemma lt_a_a_plus_b : forall a b : nat, 0 < b -> a < a + b.
Lemma funmono : monoid (A -> A).
Lemma binary : strategy.