mirror of
https://github.com/Kindelia/Kind.git
synced 2024-10-05 13:17:33 +03:00
A modern proof language
dependent-typesformalityfunctional-programminglambda-calculusmoonadproof-languageproof-languagesstarred-kindelia-repostarred-repotheorem-provertype-theory
558ebed9ad
Change Num (U32) to Word32; parse Chars as u32 values |
||
---|---|---|
app | ||
src | ||
.gitignore | ||
cabal.project | ||
CHANGELOG.md | ||
kind-lang.cabal | ||
LICENSE | ||
main.kindc | ||
README.md |
Kind-Core
Kind is a minimal Proof Checker.
Examples on MonoBook (search for .kind
files)
Usage
-
Clone and install this project
-
Use the
kind
command to check/run terms
Grammar:
<Name> ::=
<alphanumeric-string>
<Numb> ::=
<json-number-literal>
<Term> ::=
| ALL: "∀(" <Name> ":" <Term> ")" <Term>
| LAM: "λ" <Name> <Term>
| APP: "(" <Term> <Term> ")"
| ANN: "{" <Name> ":" <Term> "}"
| SLF: "$(" <Name> ":" <Term> ")" <Term>
| INS: "~" <Term>
| DAT: "#[" <Term>* "]" "{" (<Ctor>)* "}"
| CON: "#" <Name> "{" <Term>* "}"
| SWI: "λ{0:" <Term> "_:" <Term> "}"
| MAT: "λ{" ("#" <Name> ":" <Term>)* "}"
| REF: <Name>
| LET: "let" <Name> "=" <Term> <Term>
| SET: "*"
| NUM: <Numb>
| OP2: "(" <Oper> <Term> <Term> ")"
| TXT: '"' <string-literal> '"'
| HOL: "?" <Name> ("[" <Term> ("," <Term>)* "]")?
| MET: "_" <Numb>
<Ctor> ::=
| "#" <Name> <Tele>
<Tele> ::=
| "{" (<Name> ":" <Term>)* "}" ":" <Term>
<Oper> ::=
| "+" | "-" | "*" | "/"
| "%" | "<=" | ">=" | "<"
| ">" | "==" | "!=" | "&"
| "|" | "^" | "<<" | ">>"