module DPRLR.Simplicial.BinaryContravariant where

open import Cubical.Foundations.Prelude
open import Cubical.Data.Sigma

open import DPRLR.Simplicial.Contravariant

private
  variable
     ℓ' ℓ'' : Level
    A : Type 
    B : Type ℓ'

SlicesContravariant :
  {A : Type } {B : Type ℓ'}
   (A × B  Type ℓ'')
   Type (ℓ-max (ℓ-max  ℓ') ℓ'')
SlicesContravariant {A = A} {B = B} R =
  ((a : A)  isContravariant  b  R (a , b)))
  ×
  ((b : B)  isContravariant  a  R (a , b)))

binary-contravariance :
  {R : A × B  Type ℓ''}
   isContravariant R
   SlicesContravariant R
binary-contravariance c =
   a  contravariant-reindex  b  a , b) c)
  ,
   b  contravariant-reindex  a  a , b) c)