package alba
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=4817038301d3e45bac9edf7e6f2fc8bf0a6d78e76e02ad7ea33ef69bcc17df3b
md5=25234357587126685d64f16236167937
doc/alba.core/Alba_core/Gamma_algo/Make/index.html
Module Gamma_algo.Make
Parameters
Signature
type_of_term term gamma
Compute the type of term
Precondition: term must be welltyped and the context valid.
val split_type :
Term.typ ->
Gamma.t ->
(Term.Pi_info.t * Term.typ) list * Term.typval split_kind :
Term.typ ->
Gamma.t ->
((Term.Pi_info.t * Term.typ) list * Sort.t) optionsplit_kind k gamma:
Compute the arguments and the sort of the kind k. If typ does not reduce to a kind, then return None.
Precondition: k must be welltyped and the context gamma must be valid.
A kind has the form
all (x: A) (y: B) .... : swhere s is a sort.
sort_of_kind typ gamma
Compute the sort of the kind typ. If typ does not reduce to a kind, then return None.
Precondition: typ must be welltyped and the context gamma must be valid.
A kind has the form
all (x: A) (y: B) .... : swhere s is a sort.
is_kind typ gamma
Is the welltyped term typ in the valid context gamma a kind?
val key_split :
Term.t ->
Gamma.t ->
Term.t * (Term.t * Term.Application_info.t) listkeynormal term gamma
Compute the key normal form of the welltyped term term in the valid context gamma.
normalize_pi typ gamma
Precondition:
typ must be a valid type
Result: typ is expanded until the form
all (a: A) (b: B) ... : Ris reached where R cannot be expanded further into a product type.
normalize term gamma
Compute the normal form of the welltyped term term in the valid context gamma.
val check_naming_convention :
string ->
Term.typ ->
Gamma.t ->
(unit, name_violation) result