Open
Description
For P : Pred A _, f : A → A
,
what is the standard library type definition for {x : A} → P x → P (f x)
?
A natural definition would be f Preserves P
, but _Preserves_
is for _≈_
. Congruent
also is for equality.
May be, introduce _PreservesPred_
?
Like this:
PreservesPreds : ∀ {α β p q}{A : Set α}{B : Set β} → (A → B) →
Pred A p → Pred B q → Set (α ⊔ p ⊔ q)
PreservesPreds f P Q = ∀ {x} → P x → Q (f x)
_PreservesPred_ : ∀ {α p}{A : Set α} → (A → A) → Pred A p → Set (α ⊔ p)
f PreservesPred P = PreservesPreds f P P