Home

依存和型

module foundations.sigma-type where
Imports
open import foundations.universe

依存和型を定義する。

private variable  ℓ′ : Level

record Σ (A : Type ) (B : A  Type ℓ′) : Type (  ℓ′) where
  constructor _,_

  field
    fst : A
    snd : B fst

open Σ using (fst; snd) public

以下のようなsyntax宣言を使うことで、依存和型をΣ[ x ∈ A ] Bと書けるようになる。

syntax Σ A  x  B) = Σ[ x  A ] B

_ :  (A : Type ) (B : A  Type ℓ′) (x : A) (y : B x)  Σ[ a  A ] B a
_ = λ A B x y  x , y