Module Import ValidSafe := Validator_safe.Make A.
(** A few helpers for dependent types. *)
(** Decidable propositions. *)
Class Decidable (P : Prop) := decide : {P} + {~P}.
Arguments decide _ {_}.
(** A [Comparable] type has decidable equality. *)
Instance comparable_decidable_eq T `{ComparableLeibnizEq T} (x y : T) :
Decidable (x = y).

Lemma pop_preserves_invariant symbols_to_pop stk Hp A action :
stack_invariant stk ->
stack_invariant (fst (pop symbols_to_pop stk Hp (A:=A) action)).