0.5.7 • Published 5 years ago

formality-lang v0.5.7

Weekly downloads
5
License
MIT
Repository
-
Last release
5 years ago

npm.io

An efficient proof-gramming language. It aims to be:

  • Fast: no garbage-collection, optimal beta-reduction and a massively parallel GPU compiler make it fast.

  • Safe: a type system capable of proving mathematical theorems about its own programs make it secure.

  • Portable: the full language is implemented in a 400-LOC runtime, making it easily available everywhere.

Check the official documentation, browse our base-libraries and come hang out with us on Telegram.

Examples

  • Adding all numbers of a list:

    sum(xs : List(Number)) : Number
      case xs
      | nil  => 0
      | cons => xs.head + sum(xs.tail)
  • A proof that negating a bool twice returns the same bool:

    not_not_is_same(b : Bool) : not(not(b)) == b
      case b
      | true  => equal(__)
      | false => equal(__)
      : not(not(b)) == b
  • Extracting the first element of a list statically checked to be non-empty:

    safe_head(A; xs: List(A), e: length(_ xs) != 0n) : A
      case xs
      with e : length(_ xs) != 0n
      | nil  => absurd(e(equal(__)), _) -- provably unreachable!
      | cons => xs.head

Usage

Multiple implementations (Haskell, Rust, Go, etc.) will be available in a future. Right now, you can already use the JavaScript one (requires Node v0.12).

Install it via npm with:

$ npm i -g formality-lang

Or via nix, using node2nix, we can also install Formality using the Nix package manager:

$ git clone git@github.com:moonad/Formality.git
$ cd Formality
$ nix-channel --add https://nixos.org/channels/nixpkgs-unstable unstable
$ nix-env -f '<unstable>' -iA nodePackages.node2nix
$ node2nix -d -i package.json --nodejs-12
$ nix-env -i -f override.nix

It can be used from the terminal with the fm command, or as a library with require("formality-lang").


Interaction-Net compilation

Formality can be fully compiled to a 600-LOC Interaction-Net Runtime.

0.5.7

5 years ago

0.5.6

5 years ago

0.5.5

5 years ago

0.5.3

5 years ago

0.5.2

5 years ago

0.5.1

5 years ago

0.5.0

5 years ago

0.5.0-beta.14

5 years ago

0.5.0-beta.13

5 years ago

0.5.0-beta.12

5 years ago

0.5.0-beta.11

5 years ago

0.5.0-beta.9

5 years ago

0.5.0-beta.8

5 years ago

0.5.0-beta.7

5 years ago

0.5.0-beta.6

5 years ago

0.5.0-beta.5

5 years ago

0.5.0-beta.4

5 years ago

0.5.0-beta.3

5 years ago

0.5.0-beta.1

5 years ago

0.5.0-beta.2

5 years ago

0.5.0-beta.0

5 years ago

0.4.119

5 years ago

0.4.118

5 years ago

0.4.117

5 years ago

0.4.116

5 years ago

0.4.115

5 years ago

0.4.114

5 years ago

0.4.113

5 years ago

0.4.112

5 years ago

0.4.111

5 years ago

0.4.110

5 years ago

0.4.106

5 years ago

0.4.109

5 years ago

0.4.107

5 years ago

0.4.105

5 years ago

0.4.104

5 years ago

0.4.102

5 years ago

0.4.103

5 years ago

0.4.100

5 years ago

0.4.99

5 years ago

0.4.98

5 years ago

0.4.97

5 years ago

0.4.95

5 years ago

0.4.96

5 years ago

0.4.94

5 years ago

0.4.93

5 years ago

0.4.92

5 years ago

0.4.91

5 years ago

0.4.90

5 years ago

0.4.89

5 years ago

0.4.86

5 years ago

0.4.87

5 years ago

0.4.88

5 years ago

0.4.84

5 years ago

0.4.85

5 years ago

0.4.82

5 years ago

0.4.83

5 years ago

0.4.81

5 years ago

0.4.79

5 years ago

0.4.77

5 years ago

0.4.76

5 years ago

0.4.75

5 years ago

0.4.73

5 years ago

0.4.71

5 years ago

0.4.72

5 years ago

0.4.70

5 years ago

0.4.68

5 years ago

0.4.69

5 years ago

0.4.64

5 years ago

0.4.66

5 years ago

0.4.62

5 years ago

0.4.63

5 years ago

0.4.60

5 years ago

0.4.59

5 years ago

0.4.58

5 years ago

0.4.57

5 years ago

0.4.55

5 years ago

0.4.56

5 years ago

0.4.54

5 years ago

0.4.52

5 years ago

0.4.51

5 years ago

0.4.50

5 years ago

0.4.42

5 years ago

0.4.44

5 years ago

0.4.45

5 years ago

0.4.40

5 years ago

0.4.41

5 years ago

0.4.39

5 years ago

0.4.38

5 years ago

0.4.37

5 years ago

0.4.36

5 years ago

0.4.35

5 years ago

0.4.33

5 years ago

0.4.34

5 years ago

0.4.32

5 years ago

0.4.31

5 years ago

0.4.30

5 years ago

0.4.29

5 years ago

0.4.28

5 years ago

0.4.27

5 years ago

0.4.26

5 years ago

0.4.25

5 years ago

0.4.24

5 years ago

0.4.23

5 years ago

0.4.22

5 years ago

0.4.21

5 years ago

0.4.20

5 years ago

0.4.19

5 years ago

0.4.18

5 years ago

0.4.17

5 years ago

0.4.10

5 years ago

0.4.15

5 years ago

0.4.13

5 years ago

0.4.14

5 years ago

0.4.11

5 years ago

0.4.12

5 years ago

0.4.9

5 years ago

0.4.8

5 years ago

0.4.7

5 years ago

0.4.6

5 years ago

0.4.4

5 years ago

0.4.3

5 years ago

0.4.1

5 years ago

0.4.2

5 years ago

0.4.0

5 years ago

0.1.254

5 years ago

0.1.253

5 years ago

0.1.252

5 years ago

0.1.251

5 years ago

0.1.250

5 years ago

0.1.249

5 years ago

0.1.246

5 years ago

0.1.248

5 years ago

0.1.247

5 years ago

0.1.245

5 years ago

0.1.244

5 years ago

0.1.243

5 years ago

0.1.242

5 years ago

0.1.241

5 years ago

0.1.240

5 years ago

0.1.239

5 years ago

0.1.238

5 years ago

0.1.237

5 years ago

0.1.236

5 years ago

0.1.235

5 years ago

0.1.233

5 years ago

0.1.232

5 years ago

0.1.231

5 years ago

0.1.230

5 years ago

0.1.229

5 years ago

0.1.228

6 years ago

0.1.219

6 years ago

0.1.227

6 years ago

0.1.224

6 years ago

0.1.223

6 years ago

0.1.226

6 years ago

0.1.225

6 years ago

0.1.220

6 years ago

0.1.222

6 years ago

0.1.221

6 years ago

0.1.217

6 years ago

0.1.216

6 years ago

0.1.215

6 years ago

0.1.214

6 years ago

0.1.213

6 years ago

0.1.212

6 years ago

0.1.211

6 years ago

0.1.209

6 years ago

0.1.208

6 years ago

0.1.207

6 years ago

0.1.206

6 years ago

0.1.205

6 years ago

0.1.204

6 years ago

0.1.203

6 years ago

0.1.202

6 years ago

0.1.201

6 years ago

0.1.200

6 years ago

0.1.199

6 years ago

0.1.198

6 years ago

0.1.197

6 years ago

0.1.195

6 years ago

0.1.194

6 years ago

0.1.193

6 years ago

0.1.192

6 years ago

0.1.190

6 years ago

0.1.191

6 years ago

0.1.188

6 years ago

0.1.187

6 years ago

0.1.186

6 years ago

0.1.185

6 years ago

0.1.184

6 years ago

0.1.183

6 years ago

0.1.181

6 years ago

0.1.180

6 years ago

0.1.179

6 years ago

0.1.178

6 years ago

0.1.177

6 years ago

0.1.175

6 years ago

0.1.174

6 years ago

0.1.173

6 years ago

0.1.172

6 years ago

0.1.171

6 years ago

0.1.170

6 years ago

0.1.169

6 years ago

0.1.168

6 years ago

0.1.167

6 years ago

0.1.166

6 years ago

0.1.165

6 years ago

0.1.164

6 years ago

0.1.163

6 years ago

0.3.162

6 years ago

0.3.161

6 years ago

0.3.160

6 years ago

0.3.157

6 years ago

0.3.154

6 years ago

0.3.153

6 years ago

0.3.152

6 years ago

0.3.151

6 years ago

0.3.150

6 years ago

0.3.149

6 years ago

0.3.147

6 years ago

0.3.146

6 years ago

0.3.144

6 years ago

0.3.143

6 years ago

0.3.142

6 years ago

0.3.140

6 years ago

0.3.138

6 years ago

0.3.136

6 years ago

0.3.135

6 years ago

0.3.134

6 years ago

0.3.133

6 years ago

0.3.132

6 years ago

0.3.130

6 years ago

0.3.129

6 years ago

0.3.128

6 years ago

0.3.127

6 years ago

0.3.126

6 years ago

0.3.125

6 years ago

0.3.124

6 years ago

0.3.123

6 years ago

0.3.122

6 years ago

0.3.119

6 years ago

0.3.118

6 years ago

0.3.117

6 years ago

0.3.116

6 years ago

0.3.115

6 years ago

0.3.114

6 years ago

0.3.113

6 years ago

0.3.112

6 years ago

0.3.111

6 years ago

0.3.110

6 years ago

0.3.109

6 years ago

0.3.108

6 years ago

0.3.107

6 years ago

0.3.106

6 years ago

0.3.105

6 years ago

0.3.103

6 years ago

0.3.102

6 years ago

0.3.101

6 years ago

0.3.100

6 years ago

0.3.99

6 years ago

0.3.98

6 years ago

0.3.97

6 years ago

0.3.96

6 years ago

0.3.95

6 years ago

0.3.94

6 years ago

0.3.93

6 years ago

0.3.92

6 years ago

0.3.91

6 years ago

0.3.88

6 years ago

0.3.86

6 years ago

0.3.85

6 years ago

0.3.84

6 years ago

0.3.83

6 years ago

0.3.82

6 years ago

0.3.81

6 years ago

0.3.80

6 years ago

0.3.79

6 years ago

0.3.77

6 years ago

0.3.76

6 years ago

0.3.75

6 years ago

0.3.74

6 years ago

0.3.73

6 years ago

0.3.72

6 years ago

0.3.71

6 years ago

0.3.70

6 years ago

0.3.69

6 years ago

0.3.68

6 years ago

0.3.65

6 years ago

0.3.63

6 years ago

0.3.62

6 years ago

0.3.61

6 years ago

0.3.60

6 years ago

0.3.58

6 years ago

0.3.57

6 years ago

0.3.54

6 years ago

0.3.52

6 years ago

0.3.51

6 years ago

0.3.50

6 years ago

0.3.49

6 years ago

0.3.47

6 years ago

0.3.46

6 years ago

0.3.44

6 years ago

0.3.43

6 years ago

0.3.42

6 years ago

0.3.41

6 years ago

0.3.40

6 years ago

0.3.37

6 years ago

0.3.34

6 years ago

0.3.33

6 years ago

0.3.32

6 years ago

0.3.31

6 years ago

0.3.30

6 years ago

0.3.29

6 years ago

0.3.28

6 years ago

0.3.26

6 years ago

0.3.23

6 years ago

0.3.21

6 years ago

0.3.20

6 years ago

0.3.19

6 years ago

0.3.18

6 years ago

0.3.17

6 years ago

0.3.16

6 years ago

0.3.14

6 years ago

0.3.12

6 years ago

0.3.10

6 years ago

0.3.9

6 years ago

0.3.8

6 years ago

0.3.6

6 years ago

0.3.4

6 years ago

0.3.3

6 years ago

0.3.2

6 years ago

0.3.0

6 years ago

0.2.16

6 years ago

0.2.15

6 years ago

0.2.13

6 years ago

0.2.12

6 years ago

0.2.11

6 years ago

0.2.10

6 years ago

0.2.9

6 years ago

0.2.8

6 years ago

0.2.7

6 years ago

0.2.6

6 years ago

0.2.5

6 years ago

0.2.4

6 years ago

0.2.3

6 years ago

0.2.2-b

6 years ago

0.2.2

6 years ago

0.2.1

6 years ago

0.2.0

6 years ago

0.1.20

6 years ago

0.1.19

6 years ago

0.1.18

6 years ago

0.1.17

6 years ago

0.1.16

6 years ago

0.1.15

6 years ago

0.1.13

6 years ago

0.1.12

6 years ago

0.1.11

6 years ago

0.1.10

6 years ago

0.1.9

6 years ago

0.1.8

6 years ago

0.1.7

6 years ago

0.1.6

6 years ago

0.1.5

6 years ago

0.1.4

6 years ago

0.1.3

6 years ago

0.1.2

6 years ago

0.1.0

6 years ago