proposition: Lemma app_eq_suffix A (l : list A) l' : l ++ l' = l' <-> l = nil.
proof: Proof. split; ins; desf; revert H. induction l' using rev_induction; rewrite ?app_nil_r; ins. rewrite app_assoc, snoc_eq_snoc in *; desf; eauto. Qed.
imports: HahnBase HahnSets Arith Lia Setoid Morphisms Sorted IndefiniteDescription List Permutation