A modern proof language
Go to file
Victor Taelin 558ebed9ad
Merge pull request #589 from HigherOrderCO/chr
Change Num (U32) to Word32; parse Chars as u32 values
2024-10-03 15:44:28 -03:00
app split files 2024-08-22 18:47:38 -03:00
src Change Num (U32) to Word32; parse Chars as u32 values 2024-10-03 10:53:57 -03:00
.gitignore tons of stuff 2024-08-28 20:26:43 -03:00
cabal.project add cabal project 2024-09-29 20:01:18 -03:00
CHANGELOG.md initial commit 2024-08-22 15:01:53 -03:00
kind-lang.cabal Merge branch 'main' into refactor-highlight 2024-08-28 12:52:56 -03:00
LICENSE initial commit 2024-08-22 15:01:53 -03:00
main.kindc add example 2024-08-22 20:15:45 -03:00
README.md Update README.md 2024-09-29 21:10:06 -03:00

Kind-Core

Kind is a minimal Proof Checker.

Examples on MonoBook (search for .kind files)

Usage

  1. Clone and install this project

  2. 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> ::=
  | "+" | "-"  | "*"  | "/"
  | "%" | "<=" | ">=" | "<"
  | ">" | "==" | "!=" | "&"
  | "|" | "^"  | "<<" | ">>"