packages feed

MiniAgda-0.2025.7.23: test/succeed/HVec.golden

--- opening "HVec.ma" ---
--- scope checking ---
--- type checking ---
type  Unit : Set
term  Unit.unit : < Unit.unit : Unit >
ty-u  Prod : .[i : Size] -> ^(A : Set i) -> ^(B : Set i) -> Set i
term  Prod.pair : .[i : Size] -> .[A : Set i] -> .[B : Set i] -> ^(fst : A) -> ^(snd : B) -> < Prod.pair fst snd : Prod [i] A B >
mixk  fst : .[i : Size] -> .[A : Set i] -> .[B : Set i] -> (pair : Prod [i] A B) -> A
{ fst [i] [A] [B] (Prod.pair #fst #snd) = #fst
}
mixk  snd : .[i : Size] -> .[A : Set i] -> .[B : Set i] -> (pair : Prod [i] A B) -> B
{ snd [i] [A] [B] (Prod.pair #fst #snd) = #snd
}
mixk  fst' : .[i : Size] -> .[A : Set i] -> .[B : Set i] -> Prod [i] A B -> A
{ fst' [i] [A] [B] (Prod.pair a b) = a
}
ty-u  List : .[i : Size] -> ^(A : Set i) -> Set i
term  List.nil : .[i : Size] -> .[A : Set i] -> < List.nil : List [i] A >
term  List.cons : .[i : Size] -> .[A : Set i] -> ^(y0 : A) -> ^(y1 : List [i] A) -> < List.cons y0 y1 : List [i] A >
type  HVecR : List [1] Set -> Set
{ HVecR List.nil = Unit
; HVecR (List.cons A As) = Prod [0] A (HVecR As)
}
ty-u  HVec : ^ List [1] Set -> Set 1
term  HVec.vnil : < HVec.vnil : HVec List.nil >
term  HVec.vcons : .[A : Set] -> .[As : List [1] Set] -> ^(y2 : A) -> ^(y3 : HVec As) -> < HVec.vcons A As y2 y3 : HVec (List.cons A As) >
--- evaluating ---
--- closing "HVec.ma" ---