diff --git a/theories/algebra/ofe.v b/theories/algebra/ofe.v index 58c0040912bb3374b05936cca31d9654ac750967..beddd2adcd59118feb26b0f74e1843d45c6967c1 100644 --- a/theories/algebra/ofe.v +++ b/theories/algebra/ofe.v @@ -330,6 +330,16 @@ Section fixpointK. Lemma fixpointK_proper : (∀ z, f z ≡ g z) → fixpointK k f ≡ fixpointK k g. Proof. setoid_rewrite equiv_dist; naive_solver eauto using fixpointK_ne. Qed. End fixpointK_ne. + + Lemma fixpointK_ind (P : A → Prop) : + Proper ((≡) ==> impl) P → + (∃ x, P x) → (∀ x, P x → P (f x)) → + (∀ (c : chain A), (∀ n, P (c n)) → P (compl c)) → + P (fixpointK k f). + Proof. + intros ? Hst Hincr Hlim. rewrite /fixpointK. eapply fixpoint_ind; [done..| |done]. + clear- Hincr. intros. induction k; first done. simpl. auto. + Qed. End fixpointK. (** Mutual fixpoints *)