mirror of
https://github.com/idris-lang/Idris2.git
synced 2024-12-21 10:41:59 +03:00
22 lines
1014 B
Idris
22 lines
1014 B
Idris
|
||| A telescope is the variable context in a dependently typed program.
|
||
|
||| Dependent types with free varialbes are really only well-defined in a telescope.
|
||
|
|||
|
||
|
||| A segment of a telescope is a tuple of types in that
|
||
|
||| telescope. These are usually implicit in formal developments, but
|
||
|
||| seem to be crucial to get a compositional account. Here we use
|
||
|
||| them to get 'n-ary dependent function' (compare with `Data.Fun`
|
||
|
||| and `Data.Rel`).
|
||
|
|||
|
||
|
||| I've learned this from Conor McBride on an SPLV'19 bus ride.
|
||
|
||| A literary reference would be welcome. This paper is a start:
|
||
|
||| Unifiers as Equivalences: Proof-Relevant Unification of Dependently Typed Data.
|
||
|
||| Jesper Cockx, Dominique Devriese, Frank Piessens, ICFP'16.
|
||
|
||| but they don't seem to have segments and their left action on contexts.
|
||
|
module Data.Telescope
|
||
|
|
||
|
import public Data.Telescope.Telescope
|
||
|
import public Data.Telescope.Segment
|
||
|
import public Data.Telescope.SimpleFun
|
||
|
import public Data.Telescope.Fun
|
||
|
import public Data.Telescope.Congruence
|