Similarity preserving binary maps on cumulative large sets
Content created by Louis Wasserman.
Created on 2026-02-15.
Last modified on 2026-02-15.
module foundation.similarity-preserving-binary-maps-cumulative-large-sets where
Imports
open import foundation.cumulative-large-sets open import foundation.identity-types open import foundation.similarity-preserving-binary-maps-large-similarity-relations open import foundation.universe-levels
Idea
Given cumulative large sets X Y Z, a
binary map f : X → Y → Z
preserves similarity¶
if whenever x is similar to x' and y is similar to y', f x y is
similar to f x' y'.
Definition
module _ {αX αY αZ : Level → Level} {βX βY βZ : Level → Level → Level} (SX : Cumulative-Large-Set αX βX) (SY : Cumulative-Large-Set αY βY) (SZ : Cumulative-Large-Set αZ βZ) where preserves-sim-binary-map-Cumulative-Large-Set : ( {l1 l2 : Level} → type-Cumulative-Large-Set SX l1 → type-Cumulative-Large-Set SY l2 → type-Cumulative-Large-Set SZ (l1 ⊔ l2)) → UUω preserves-sim-binary-map-Cumulative-Large-Set f = preserves-sim-binary-map-Large-Similarity-Relation ( large-similarity-relation-Cumulative-Large-Set SX) ( large-similarity-relation-Cumulative-Large-Set SY) ( large-similarity-relation-Cumulative-Large-Set SZ) ( f) sim-preserving-binary-map-Cumulative-Large-Set : UUω sim-preserving-binary-map-Cumulative-Large-Set = sim-preserving-binary-map-Large-Similarity-Relation ( large-similarity-relation-Cumulative-Large-Set SX) ( large-similarity-relation-Cumulative-Large-Set SY) ( large-similarity-relation-Cumulative-Large-Set SZ) map-sim-preserving-binary-map-Cumulative-Large-Set : sim-preserving-binary-map-Cumulative-Large-Set → {l1 l2 : Level} → type-Cumulative-Large-Set SX l1 → type-Cumulative-Large-Set SY l2 → type-Cumulative-Large-Set SZ (l1 ⊔ l2) map-sim-preserving-binary-map-Cumulative-Large-Set = map-sim-preserving-binary-map-Large-Similarity-Relation preserves-sim-map-sim-preserving-binary-map-Cumulative-Large-Set : (f : sim-preserving-binary-map-Cumulative-Large-Set) → preserves-sim-binary-map-Cumulative-Large-Set ( map-sim-preserving-binary-map-Cumulative-Large-Set f) preserves-sim-map-sim-preserving-binary-map-Cumulative-Large-Set = preserves-sim-map-sim-preserving-binary-map-Large-Similarity-Relation
Similarity preserving binary operators
module _ {α : Level → Level} {β : Level → Level → Level} (S : Cumulative-Large-Set α β) where preserves-sim-binary-operator-Cumulative-Large-Set : ( {l1 l2 : Level} → type-Cumulative-Large-Set S l1 → type-Cumulative-Large-Set S l2 → type-Cumulative-Large-Set S (l1 ⊔ l2)) → UUω preserves-sim-binary-operator-Cumulative-Large-Set = preserves-sim-binary-map-Cumulative-Large-Set S S S sim-preserving-binary-operator-Cumulative-Large-Set : UUω sim-preserving-binary-operator-Cumulative-Large-Set = sim-preserving-binary-map-Cumulative-Large-Set S S S map-sim-preserving-binary-operator-Cumulative-Large-Set : sim-preserving-binary-operator-Cumulative-Large-Set → {l1 l2 : Level} → type-Cumulative-Large-Set S l1 → type-Cumulative-Large-Set S l2 → type-Cumulative-Large-Set S (l1 ⊔ l2) map-sim-preserving-binary-operator-Cumulative-Large-Set = map-sim-preserving-binary-map-Large-Similarity-Relation preserves-sim-map-sim-preserving-binary-operator-Cumulative-Large-Set : (f : sim-preserving-binary-operator-Cumulative-Large-Set) → preserves-sim-binary-operator-Cumulative-Large-Set ( map-sim-preserving-binary-operator-Cumulative-Large-Set f) preserves-sim-map-sim-preserving-binary-operator-Cumulative-Large-Set = preserves-sim-map-sim-preserving-binary-map-Large-Similarity-Relation
Properties
Raising universe levels on similarity preserving binary maps
module _ {αX αY αZ : Level → Level} {βX βY βZ : Level → Level → Level} (SX : Cumulative-Large-Set αX βX) (SY : Cumulative-Large-Set αY βY) (SZ : Cumulative-Large-Set αZ βZ) where abstract map-raise-left-preserves-sim-binary-map-Cumulative-Large-Set : (f : {l1 l2 : Level} → type-Cumulative-Large-Set SX l1 → type-Cumulative-Large-Set SY l2 → type-Cumulative-Large-Set SZ (l1 ⊔ l2)) → preserves-sim-binary-map-Cumulative-Large-Set SX SY SZ f → {l1 l2 : Level} (l3 : Level) (x : type-Cumulative-Large-Set SX l1) (y : type-Cumulative-Large-Set SY l2) → f (raise-Cumulative-Large-Set SX l3 x) y = raise-Cumulative-Large-Set SZ l3 (f x y) map-raise-left-preserves-sim-binary-map-Cumulative-Large-Set f preserves-sim-f l3 x y = eq-sim-Cumulative-Large-Set SZ _ _ ( transitive-sim-Cumulative-Large-Set SZ _ _ _ ( sim-raise-Cumulative-Large-Set SZ l3 (f x y)) ( preserves-sim-f _ _ _ _ ( sim-raise-Cumulative-Large-Set' SX l3 x) ( refl-sim-Cumulative-Large-Set SY y))) map-raise-right-preserves-sim-binary-map-Cumulative-Large-Set : (f : {l1 l2 : Level} → type-Cumulative-Large-Set SX l1 → type-Cumulative-Large-Set SY l2 → type-Cumulative-Large-Set SZ (l1 ⊔ l2)) → preserves-sim-binary-map-Cumulative-Large-Set SX SY SZ f → {l1 l2 : Level} (l3 : Level) (x : type-Cumulative-Large-Set SX l1) (y : type-Cumulative-Large-Set SY l2) → f x (raise-Cumulative-Large-Set SY l3 y) = raise-Cumulative-Large-Set SZ l3 (f x y) map-raise-right-preserves-sim-binary-map-Cumulative-Large-Set f preserves-sim-f l3 x y = eq-sim-Cumulative-Large-Set SZ _ _ ( transitive-sim-Cumulative-Large-Set SZ _ _ _ ( sim-raise-Cumulative-Large-Set SZ l3 (f x y)) ( preserves-sim-f _ _ _ _ ( refl-sim-Cumulative-Large-Set SX x) ( sim-raise-Cumulative-Large-Set' SY l3 y))) map-raise-raise-preserves-sim-binary-map-Cumulative-Large-Set : (f : {l1 l2 : Level} → type-Cumulative-Large-Set SX l1 → type-Cumulative-Large-Set SY l2 → type-Cumulative-Large-Set SZ (l1 ⊔ l2)) → preserves-sim-binary-map-Cumulative-Large-Set SX SY SZ f → {l1 l2 : Level} (l3 l4 : Level) (x : type-Cumulative-Large-Set SX l1) (y : type-Cumulative-Large-Set SY l2) → f ( raise-Cumulative-Large-Set SX l3 x) ( raise-Cumulative-Large-Set SY l4 y) = raise-Cumulative-Large-Set SZ (l3 ⊔ l4) (f x y) map-raise-raise-preserves-sim-binary-map-Cumulative-Large-Set f preserves-sim-f l3 l4 x y = eq-sim-Cumulative-Large-Set SZ _ _ ( transitive-sim-Cumulative-Large-Set SZ _ _ _ ( sim-raise-Cumulative-Large-Set SZ (l3 ⊔ l4) (f x y)) ( preserves-sim-f _ _ _ _ ( sim-raise-Cumulative-Large-Set' SX l3 x) ( sim-raise-Cumulative-Large-Set' SY l4 y))) module _ {αX αY αZ : Level → Level} {βX βY βZ : Level → Level → Level} (SX : Cumulative-Large-Set αX βX) (SY : Cumulative-Large-Set αY βY) (SZ : Cumulative-Large-Set αZ βZ) (f : sim-preserving-binary-map-Cumulative-Large-Set SX SY SZ) where abstract map-raise-left-sim-preserving-binary-map-Cumulative-Large-Set : {l1 l2 : Level} (l3 : Level) (x : type-Cumulative-Large-Set SX l1) (y : type-Cumulative-Large-Set SY l2) → map-sim-preserving-binary-map-Cumulative-Large-Set SX SY SZ ( f) ( raise-Cumulative-Large-Set SX l3 x) ( y) = raise-Cumulative-Large-Set SZ ( l3) ( map-sim-preserving-binary-map-Cumulative-Large-Set SX SY SZ f x y) map-raise-left-sim-preserving-binary-map-Cumulative-Large-Set = map-raise-left-preserves-sim-binary-map-Cumulative-Large-Set SX SY SZ ( map-sim-preserving-binary-map-Cumulative-Large-Set SX SY SZ f) ( preserves-sim-map-sim-preserving-binary-map-Cumulative-Large-Set ( SX) ( SY) ( SZ) ( f)) map-raise-right-sim-preserving-binary-map-Cumulative-Large-Set : {l1 l2 : Level} (l3 : Level) (x : type-Cumulative-Large-Set SX l1) (y : type-Cumulative-Large-Set SY l2) → map-sim-preserving-binary-map-Cumulative-Large-Set SX SY SZ ( f) ( x) ( raise-Cumulative-Large-Set SY l3 y) = raise-Cumulative-Large-Set SZ ( l3) ( map-sim-preserving-binary-map-Cumulative-Large-Set SX SY SZ f x y) map-raise-right-sim-preserving-binary-map-Cumulative-Large-Set = map-raise-right-preserves-sim-binary-map-Cumulative-Large-Set SX SY SZ ( map-sim-preserving-binary-map-Cumulative-Large-Set SX SY SZ f) ( preserves-sim-map-sim-preserving-binary-map-Cumulative-Large-Set ( SX) ( SY) ( SZ) ( f)) map-raise-raise-sim-preserving-binary-map-Cumulative-Large-Set : {l1 l2 : Level} (l3 l4 : Level) (x : type-Cumulative-Large-Set SX l1) (y : type-Cumulative-Large-Set SY l2) → map-sim-preserving-binary-map-Cumulative-Large-Set SX SY SZ ( f) ( raise-Cumulative-Large-Set SX l3 x) ( raise-Cumulative-Large-Set SY l4 y) = raise-Cumulative-Large-Set SZ ( l3 ⊔ l4) ( map-sim-preserving-binary-map-Cumulative-Large-Set SX SY SZ f x y) map-raise-raise-sim-preserving-binary-map-Cumulative-Large-Set = map-raise-raise-preserves-sim-binary-map-Cumulative-Large-Set SX SY SZ ( map-sim-preserving-binary-map-Cumulative-Large-Set SX SY SZ f) ( preserves-sim-map-sim-preserving-binary-map-Cumulative-Large-Set ( SX) ( SY) ( SZ) ( f))
Recent changes
- 2026-02-15. Louis Wasserman. Cumulative large sets (#1833).