#[local] Instance Op_max_length : ZifyClasses.CstOp max_length :=
  { TCst := 16777211%Z ; TCstInj := eq_refl }.#[local] Ltac case_if :=
  lazymatch goal with
  | |- context C [if ?b then _ else _] => destruct b eqn:?
  | H : context C [if ?b then _ else _] |- _ => destruct b eqn:?
  end.

Lemma cat_length_spec_no_overflow (s1 s2 : string) : to_Z (length s1) + to_Z (length s2) <= to_Z max_length -> length (cat s1 s2) = (length s1 + length s2)%uint63.