diff --git a/theories/program_logic/language.v b/theories/program_logic/language.v index 9efd4250d8369dc2525c98f74c10de560a69520d..e6f6e0f33987ff0d21e8f7191e532a94b2ef4f54 100644 --- a/theories/program_logic/language.v +++ b/theories/program_logic/language.v @@ -119,13 +119,12 @@ Section language. (** [rtc erased_step] and [nsteps] encode the same thing, just packaged in a different way. *) Lemma erased_steps_nsteps Ï1 Ï2 : - rtc erased_step Ï1 Ï2 ↔ - ∃ n κs, nsteps n Ï1 κs Ï2. + rtc erased_step Ï1 Ï2 ↔ ∃ n κs, nsteps n Ï1 κs Ï2. Proof. split. - - induction 1; firstorder; eauto. (* FIXME: [naive_solver eauto] should be able to handle this *) - - intros (n & κs & Hsteps). induction Hsteps; first done. econstructor; last done. - eexists. done. + - induction 1; firstorder eauto. (* FIXME: [naive_solver eauto] should be able to handle this *) + - intros (n & κs & Hsteps). unfold erased_step. + induction Hsteps; eauto using rtc_refl, rtc_l. Qed. Lemma of_to_val_flip v e : of_val v = e → to_val e = Some v.