proposition: Lemma EquivAssignables_sym: forall p st st', EquivAssignables p st st' -> EquivAssignables p st' st.
proof: Proof. intros. unfold EquivAssignables in *. unfold level in *. case_eq (Nat.compare (length st @fr @assignables) (length st' @fr @assignables)); intros; rewrite H0 in H. apply nat_compare_eq_sym in H0. rewrite H0 in |- *. apply EquivAssignables_ind_sym;trivial. apply nat_compare_lt_gt_sym in H0. rewrite H0 in |- *. apply EquivAssignables_ind_sym;trivial. apply nat_compare_lt_gt_sym in H0. rewrite H0 in |- *. apply EquivAssignables_ind_sym;trivial. Qed.
imports: Coq(List) JML(Stack) Coq(ListSet) Coq(Bool) Coq(ZArith) Coq(Relation_Operators) JML(ListHelpers) Coq(Classical)