Definition sub_mask_correct' : ltac:(auto_for_auto sub_mask_correct) := sub_mask_correct.
Hint Resolve sub_mask_correct' : eval.

Lemma compare_cont_correct p: forall tp tq q,
evaluates tp (value_of_pos p) ->
evaluates tq (value_of_pos q) ->
evaluates (compare_contEqF (: term_from_value (value_of_pos p),
term_from_value (value_of_pos q) :))
(value_of_comp (Pos.compare_cont Eq p q)) /\
evaluates (compare_contLtF (: term_from_value (value_of_pos p),
term_from_value (value_of_pos q) :))
(value_of_comp (Pos.compare_cont Lt p q)) /\
evaluates (compare_contGtF (: term_from_value (value_of_pos p),
term_from_value (value_of_pos q) :))
(value_of_comp (Pos.compare_cont Gt p q)).