proposition: Lemma alg_state_nochange: forall s1 l s2 n', let n := label_node l in let as1 := alg_state (node_states s1 n') in let as2 := alg_state (node_states s2 n') in (step s1 l s2 /\ not (n' = n)) -> as1 = as2.
proof: Proof. intros. open_conjs. inversion H; subst as1; subst as2; subst s1; subst s2; simpl; subst n; subst l; simpl in *; simpl_override; simpl_override; reflexivity. Qed.
imports: Coq(FunctionalExtensionality Arith Lia) Coq(Arith.Peano_dec Arith.Compare_dec) Coq(Relations.Relation_Operators) Coq(List) Chapar(Predefs)