/dklib

General purpose, hand-written, dedukti files

Primary LanguageMakefile

Dklib

This is a small human-written Dedukti library. It contains some definitions of simple datatypes and logical constructs.

Dependencies

  • GNU Make
  • Dedukti: versions 2.4 and 2.5 have been tested, for version 2.3.1 use the v2.3.1 branch
  • (Optional) CSI^HO higher-order confluence checker: version 0.1.1 has been tested

Usage

To compile all the files, invoke make.

Installation

Dedukti has no default load path so it is not very useful to install the compiled .dko files system wide. To copy the compiled file to some place <dir>, invoke

cp -t <DIR> *.dko

Confluence Checking

To check for confluence, invoke

make CSIHO_PATH=<path> all

where <path> is the path to the csiho.sh script.

Please note that the experimental files dk_monads.dk and dk_monads_coc.dk are purposely not confluent

Content

The library contains the following files:

FileDescriptionOperations
ccEncoding of polymorphismPolymorphic product and arrow types
dk_typeBasic type constructionsCartesian product, Sigma-types, Sum-types
dk_boolBooleansdependent pattern-matching, alternative, logical connectives
dk_listPolymorphic listsdependent pattern-matching, concatenation, map
dk_natPeano (unary) natural numbersordering, equality, addition, multiplication, min, max, division, exponentiation, conversion from lists of digits
dk_intUnary integers from smart constructorabs, ordering, equality, addition, multiplication, opposite, subtraction, min, max, division
dk_machine_intN-bits machine integerssame as dk_int + signed and unsigned orderings, conversion from unary
dk_binary_natSame but not dependentsame as dk_int + conversion to machine_int
dk_charChars are 7-bits integersequality, representations for digits and letters
dk_stringStrings are lists of chars
dk_optPolymorphic option type
dk_faildk_fail.fail : A : cc.uT -> cc.eT A
dk_logicImpredicative Prop : typeintuitionistic logical connectives, reasoning on booleans and equality

Obsolete

FileDescription
dk_tupleUse dk_type instead
dk_builtinsBasic types for the translation of FoCaLiZe standard library into Dedukti

Experimental

FileDescription
slistLists of natural numbers sorted by construction
dk_monadsMonadic laws enforced by rewriting (non-linear)
dk_monads_cocGoing further by not encoding polymorphism (non-linear and requires -coc)