0 | module Data.Sigma 1 | 2 | import Data.Ops 3 | 4 | ||| Dependent pairs 5 | public export 6 | record Σ (a : Type) (b : a -> Type) where 7 | constructor (##) 8 | ||| First projection of sigma 9 | π1 : a 10 | ||| Second projection of sigma 11 | π2 : b π1 12 | 13 | public export 14 | projBoth : (x : Σ a b) -> x.π1 ## x.π2 = x 15 | projBoth (p1 ## p2) = Refl 16 | 17 |