proposition: Lemma confluence : confluent M' <-> confluent M.
proof: Proof. Proof using derivable. constructor. - move=> HM' ? ? ? /simulation H1 /simulation H2. have [z [? ?]] := HM' _ _ _ H1 H2. exists z. constructor; by apply /simulation. - move=> HM ? ? ? /simulation H1 /simulation H2. have [z [? ?]] := HM _ _ _ H1 H2. exists z. constructor; by apply /simulation. Qed.
imports: Relation_Operators Operators_Properties List Lia PeanoNat Undecidability.StackMachines.SMN Undecidability.StackMachines.Util(List_facts SMN_facts) ssreflect ssrbool ssrfun