Definition var_upto (v: var): Ensemble var := fun x => Ile x v.

(* Specifications: *)
Lemma expr_bound_freshmax: forall e, expr_bound (var_upto (freshmax_expr e)) e.
Lemma S_nat_of_P_id2pos_le: forall x y, Ile x y -> S (nat_of_P (id2pos x)) <= S (nat_of_P (id2pos y)).
Lemma included_var_upto: forall a b, Ile a b -> Included _ (var_upto a) (var_upto b).
Lemma pure_bound_freshmax: forall a, pure_bound (var_upto (freshmax_pure_atom a)) a.
Lemma pures_bound_freshmax: forall gamma, pures_bound' (var_upto (freshmax_list freshmax_pure_atom gamma)) gamma.
Lemma space_bound_freshmax: forall a, space_bound (var_upto (freshmax_space_atom a)) a.
Lemma spaces_bound'_freshmax: forall gamma, spaces_bound' (var_upto (freshmax_list freshmax_space_atom gamma)) gamma.
Lemma clause_bound'_freshmax: forall c, clause_bound' (var_upto (freshmax_clause c)) c.