proposition: Lemma refine_UnConstrFreshIdx_Same_Set_Equiv {ElementType} : forall (ensemble ensemble' : @IndexedEnsemble ElementType), Same_set _ ensemble ensemble' -> refine {idx : nat | UnConstrFreshIdx ensemble idx} {idx : nat | UnConstrFreshIdx ensemble' idx}.
proof: Proof. intros. unfold refine; intros; computes_to_inv; computes_to_econstructor. rewrite UnConstrFreshIdx_Same_Set_Equiv; eauto. Qed.
imports: Fiat.Common.Coq__8_4__8_5__Compat Coq.Vectors.Vector Coq.Strings.Ascii Coq.Bool.Bool Coq.Lists.List Fiat.Common.SumType Fiat.Computation.ListComputations Fiat.QueryStructure.Automation.AutoDB Bedrock.Word Bedrock.Memory