Library MetaCoq.Template.utils.MCSquash


Record squash (A : Type) : Prop := sq { _ : A }.

Notation "∥ T ∥" := (squash T) (at level 10).
Arguments sq {_} _.

Lemma map_squash {A B} (f : A B) : A B .
Proof.
  intros []; constructor; auto.
Qed.

Ltac sq :=
  repeat match goal with
  | H : _ |- _case H; clear H; intro H
  end; try eapply sq.