module Cat.Displayed.Instances.Simple.Properties
  {o β„“} (B : Precategory o β„“)
  (has-prods : βˆ€ X Y β†’ Product B X Y)
  where

Properties of simple fibrationsπŸ”—

This module collects some useful properties of simple fibrations.

Total products in simple fibrationsπŸ”—

Every simple fibration has all total products.

simple-total-product
  : βˆ€ {Ξ“ Ξ” A B : Ob}
  β†’ Total-product Simple[B] (has-prods Ξ“ Ξ”) A B
simple-total-product {Ξ“} {Ξ”} {A} {B} = total-prod where
  open is-total-product
  open Total-product

  total-prod : Total-product Simple[B] (has-prods Ξ“ Ξ”) A B

The apex of the total product is simply given by a product in We can obtain the projections and by composing projections.

  total-prod .apex' = A βŠ—β‚€ B
  total-prod .π₁' = π₁ ∘ Ο€β‚‚
  total-prod .Ο€β‚‚' = Ο€β‚‚ ∘ Ο€β‚‚

The universal property follows from some straightforward algebra.

  total-prod .has-is-total-product .⟨_,_⟩' f g = ⟨ f , g ⟩
  total-prod .has-is-total-product .Ο€β‚βˆ˜βŸ¨βŸ©' =
    pullr Ο€β‚‚βˆ˜βŸ¨βŸ© βˆ™ Ο€β‚βˆ˜βŸ¨βŸ©
  total-prod .has-is-total-product .Ο€β‚‚βˆ˜βŸ¨βŸ©' =
    pullr Ο€β‚‚βˆ˜βŸ¨βŸ© βˆ™ Ο€β‚‚βˆ˜βŸ¨βŸ©
  total-prod .has-is-total-product .unique' p q =
    ⟨⟩-unique (pushr (sym Ο€β‚‚βˆ˜βŸ¨βŸ©) βˆ™ p) (pushr (sym Ο€β‚‚βˆ˜βŸ¨βŸ©) βˆ™ q)